hud-sdk 1.6.31 → 1.6.32

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/dist/cjs/cli.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var r in i)("object"==typeof exports?exports:e)[r]=i[r]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},1638:e=>{e.exports=require("./declarations")},1943:e=>{e.exports=require("fs/promises")},1952:function(e,t,i){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createDirectoryExcludeCheckers=u,t.shouldExcludeDirectory=c,t.getAllFilesInDirectory=p,t.getNodeModulesFiles=f,t.getFiles=async function(e,t,i,r){const o=[],n=u(r||[]);for(const t of e){const e=await p(t,n);o.push(...e)}if(i){const e=await f(i,t);o.push(...e)}return o};const o=i(2030),n=i(1943),a=r(i(6928));function s(e){return e.endsWith(".js")}function l(e){return e.split(a.default.sep).join("/")}function u(e){const t=[];for(const i of e){let e,r=l(i);if(r.endsWith("/")||(r+="/"),r.startsWith("/")||a.default.isAbsolute(i)||(r="/"+r),r.includes("*")){const t=r.split(".").join("\\.").split("*").join(".*?"),i=new RegExp(t);e=e=>{const t=l(e),r=t.endsWith("/")?t:t+"/";return i.test(r)}}else e=e=>{const t=l(e);return(t.endsWith("/")?t:t+"/").includes(r)};t.push(e)}return t}function c(e,t){for(const i of t)if(i(e))return!0;return!1}async function d(e,t,i){const r=[];let o;try{o=await(0,n.readdir)(e,{withFileTypes:!0})}catch{return r}for(const n of o){const o=a.default.join(e,n.name);if(n.isFile())s(o)&&!t(o)&&r.push(n);else if(n.isDirectory()&&!i(o)){const e=await d(o,t,i);r.push(...e)}}return r}async function p(e,t){const i=t||[];return d(e,()=>!1,e=>"node_modules"===a.default.basename(e)||c(e,i))}async function f(e,t){return d(e.endsWith(a.default.sep)?e:e+a.default.sep,e=>(0,o.skip)(e,t),()=>!1)}},2030:e=>{e.exports=require("./instrument")},2546:e=>{e.exports=require("./lib")},2698:e=>{e.exports=require("p-limit")},3106:e=>{e.exports=require("zlib")},3903:e=>{e.exports=require("uuid")},4672:e=>{e.exports=require("./client")},5258:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initCliLoggerContext=function(e,t,i){o=e,a=t,n=i},t.flushAllLogs=s,t.wrapMainWithAutoFlush=function(e){return async()=>{try{await e(),await s()}catch(e){throw await s(),e}}};const r=i(523);let o,n,a;async function s(){try{if(!o)return;if(!a)return;const e=(0,r.getSavedLogs)();if(0===e.length)return;for(const t of e)try{await a.sessionslessLogs(t,o,n,"cli")}catch(e){r.app_logger.error("Failed to flush logs",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch{}}},5809:e=>{e.exports=require("./config")},6858:e=>{e.exports=require("commander")},6928:e=>{e.exports=require("path")},8184:function(e,t,i){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(5809),n=i(1638),a=i(8528),s=i(2030),l=i(2546),u=i(523),c=r(i(8938)),d=i(6858),p=i(4672),f=i(9896),g=i(1943),h=r(i(2698)),m=r(i(6928)),y=i(9561),w=i(3903),x=r(i(3106)),_=i(5258),F=i(1952);function v(e){const t=(0,u.formatLogMessage)(e.message,e.errCode,e.moreInfo);console.log(t)}async function C(e,t,i){try{return await(0,g.writeFile)(e,t,i),!0}catch{return!1}}async function P(e,t){try{return await(0,g.rename)(e,t),!0}catch{return!1}}async function M(e){try{await(0,g.unlink)(e)}catch{}}async function E(e){const t=(0,h.default)(20);await Promise.all(e.map(e=>t(async()=>{await Promise.all([M(e.filePath+".hud"),M(e.filePath+".hud.map")])})))}async function I(e,t,i,r){const s=(await t.getUploadUrls(i,r,1))[0];u.app_logger.info("Got upload URL");const d={...p.HudClient.defaultRequest,send_time:(new Date).toISOString(),build_id:i,token:r,sdk_version:o.SDK_VERSION};let f=[];const g=e.map(e=>e.metadatas[0]);try{f=await(0,l.getFilesForDeclarations)(g,t.sendFileDeclarationsCi.bind(t,d))}catch{f=g}u.app_logger.info("Got files for declarations",{filesCount:f.length});const m=await async function(e){const t=(0,h.default)(process.env.HUD_PARSE_DECLARATIONS_LIMIT?parseInt(process.env.HUD_PARSE_DECLARATIONS_LIMIT):20),i=x.default.createGzip();let r=0;return await Promise.all(e.map(e=>t(async()=>{try{const t=await(0,l.readFile)(e.filename,e.indexOffset,e.indexOffsetEnd);if(!t)return r++,{declarations:[],blacklist:void 0};const o=await(0,n.parseDeclarations)(e,t);i.write(JSON.stringify(function(e){const t=(new Date).toISOString();return{...p.HudClient.defaultRequest,type:"FunctionDeclaration",arr:e,send_time:t,event_version:a.FUNCTION_DECLARATION_VERSION}}(o.declarations))),i.write("\n")}catch{return r++,{declarations:[],blacklist:void 0}}}))),i.end(),r>0&&u.app_logger.error("Failed to parse declarations for files",{failedFiles:r}),i}(f);try{await async function(e,t,i,r,o){const n=await(0,y.buffer)(e);let a=t;for(let e=1;e<=3;e++)try{return await c.default.put(a,n,{headers:{"Content-Encoding":"gzip","Content-Type":"application/x-ndjson"}}),void u.app_logger.info("Uploaded requests")}catch(t){if(!(c.default.isAxiosError(t)&&405===t.response?.status&&e<3))throw t;u.app_logger.warning("Upload failed with 405 status, retrying",{attempt:e+1,totalAttempts:3,currentUploadUrl:a}),a=(await i.getUploadUrls(r,o,1))[0]}}(m,s,t,i,r),u.app_logger.info("Upload completed")}catch(e){u.app_logger.warning("Failed to upload requests, still instrumenting files",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),v(l.UserErrorLogs.HudCliUploadFailed())}}function D(e){const t=m.default.resolve(e);if(!(0,f.existsSync)(t))throw new Error(`Directory does not exist: ${e}`);return t}(0,_.wrapMainWithAutoFlush)(async function(){const e=new d.Command;e.requiredOption("--api-key <string>","Your Hud API key").requiredOption("--dirs <list>","Comma-separated directories to scan").option("--include-modules <list>","Comma-separated module names to trace").option("--node-modules-path <string>","Path to node_modules").option("--max-mapped-functions <number>","Max number of mapped functions").option("--exclude-dirs-patterns <list>","Comma-separated wildcard patterns to exclude directories. Note: relative paths are not supported. Example: 'dist/frontend,*test*'").parse(process.argv);const t=e.opts(),i={apiKey:t.apiKey,modulesToTrace:t.includeModules?t.includeModules.split(",").map(e=>e.trim()):[],dirs:t.dirs.split(",").map(e=>e.trim()),nodeModulesPath:t.nodeModulesPath,maxMappedFunctions:t.maxMappedFunctions,excludeDirsPatterns:t.excludeDirsPatterns?t.excludeDirsPatterns.split(",").map(e=>e.trim()):void 0},r=(0,w.v4)(),n=new p.HudClient;if((0,_.initCliLoggerContext)(t.apiKey,n,r),u.app_logger.info("CLI build started",{buildId:r,args:i}),!await n.validateToken(t.apiKey))return v(l.UserErrorLogs.HudCliInvalidKey()),void u.app_logger.critical("Invalid API key");let c,g;i.maxMappedFunctions&&(o.hudConfig.userConfig.maxMappedFunctions={value:i.maxMappedFunctions,source:"SETUP"});try{({dirs:c,nodeModulesPath:g}=function(e){const t=[];let i;for(const i of e.dirs)try{t.push(D(i))}catch(e){throw v(l.UserErrorLogs.HudCliInvalidDirectory(i)),e}if(e.nodeModulesPath)try{i=D(e.nodeModulesPath)}catch(t){throw v(l.UserErrorLogs.HudCliInvalidDirectory(e.nodeModulesPath)),t}return{dirs:t,nodeModulesPath:i}}(i))}catch{return void u.app_logger.critical("Failed to validate directories")}const y=(0,s.createCheckers)(i.modulesToTrace),x=await(0,F.getFiles)(c,y,g,i.excludeDirsPatterns);if(0===x.length)return u.app_logger.critical("No .js files to instrument"),void v(l.UserErrorLogs.HudCliNoJsFiles());u.app_logger.info("Found files to instrument",{filesCount:x.length});const L=await async function(e,t){const i=(0,h.default)(20);return await Promise.all(e.map(e=>i(async()=>async function(e,t){try{if(globalThis.hudRunningMode===a.HudRunningMode.detached)return{status:"skipped"};const i=m.default.join(e.parentPath??e.path,e.name),r=(0,f.readFileSync)(i,"utf-8");if((0,s.parseCliInstrumentationPattern)(r))return{status:"skipped"};const{transformedCode:o,metadatas:n}=(0,s.editWithCliBuildId)(r,i,a.Format.cjs,t);return n[0].detectedForAwaitLoops>0&&u.instrument_logger.warning(`Detected for-await loops in file ${i}`,{detectedForAwaitLoops:n[0].detectedForAwaitLoops}),await async function(e,t,i){const r=(0,l.combineSourceMaps)(t,i);return!(!r||!await C(i+".hud",e)||!await C(i+".hud.map",r,"utf-8")&&(await M(i+".hud"),1))}(o,n,i)?{status:"success",metadatas:n.map(e=>(0,l.sourceFileMetadataToTransferSourceFileMetadata)(e)),filePath:i}:{status:"failed"}}catch{return{status:"failed"}}}(e,t))))}(x,r);if(globalThis.hudRunningMode===a.HudRunningMode.detached)return u.app_logger.critical("Max mapped functions exceeded",{maxMappedFunctions:o.hudConfig.userConfig.maxMappedFunctions?.value??0}),v(l.UserErrorLogs.HudCliInstrumentedFunctionCountExceeded(o.hudConfig.userConfig.maxMappedFunctions?.value??0)),void await E(L.filter(e=>"success"===e.status).map(e=>({filePath:e.filePath})));const U=await async function(e){const t=e.filter(e=>void 0===e||"failed"===e.status);t.length>0&&u.app_logger.warning("Failed to edit files",{failedFiles:t.length,totalFiles:e.length});const i=e.filter(e=>"skipped"===e.status);if(i.length>0){if(i.length===e.length)return v(l.UserErrorLogs.HudCliAllFilesInstrumented()),void u.app_logger.info("No files instrumented");v(l.UserErrorLogs.HudCliSomeFilesInstrumented()),u.app_logger.info("Skipped files",{skippedFiles:i.length,totalFiles:e.length})}const r=e.filter(e=>"success"===e.status);return r.length>0&&u.app_logger.info("Edited files",{successFiles:r.length}),r}(L);if(U&&0!==U.length)try{u.app_logger.info("Parsing declarations for files",{filesCount:U.length}),await I(U,n,r,i.apiKey),await async function(e){const t=(0,h.default)(20);await Promise.all(e.map(e=>t(async()=>{await P(e.filePath+".hud",e.filePath)?await P(e.filePath+".hud.map",e.filePath+".map"):(await M(e.filePath+".hud"),await M(e.filePath+".hud.map"))})))}(U),u.app_logger.info("Files written to disk"),u.app_logger.info("Done"),v(l.UserLogs.HudCliCompletedSuccessfully(U.length))}catch(e){throw u.app_logger.critical("Failed to instrument files, deleting files",{msg:e instanceof Error?e.message:void 0}),await E(U),e}finally{try{await n.completed(r,i.apiKey),u.app_logger.info("Build completed notification sent")}catch(e){u.app_logger.error("Failed to send completed request",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}})().catch(async()=>{try{v(l.UserErrorLogs.HudCliUnkownError())}catch{}})},8528:e=>{e.exports=require("./dto")},8938:e=>{e.exports=require("axios")},9561:e=>{e.exports=require("stream/consumers")},9896:e=>{e.exports=require("fs")}},t={};return function i(r){var o=t[r];if(void 0!==o)return o.exports;var n=t[r]={exports:{}};return e[r].call(n.exports,n,n.exports,i),n.exports}(8184)})());
2
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var r in i)("object"==typeof exports?exports:e)[r]=i[r]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},1638:e=>{e.exports=require("./declarations")},1943:e=>{e.exports=require("fs/promises")},1952:function(e,t,i){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.createDirectoryExcludeCheckers=c,t.shouldExcludeDirectory=u,t.getAllFilesInDirectory=f,t.getNodeModulesFiles=p,t.getFiles=async function(e,t,i,r){const o=[],n=c(r||[]);for(const t of e){const e=await f(t,n);o.push(...e)}if(i){const e=await p(i,t);o.push(...e)}return o};const o=i(2030),n=i(1943),s=r(i(6928));function a(e){return e.endsWith(".js")}function l(e){return e.split(s.default.sep).join("/")}function c(e){const t=[];for(const i of e){let e,r=l(i);if(r.endsWith("/")||(r+="/"),r.startsWith("/")||s.default.isAbsolute(i)||(r="/"+r),r.includes("*")){const t=r.split(".").join("\\.").split("*").join(".*?"),i=new RegExp(t);e=e=>{const t=l(e),r=t.endsWith("/")?t:t+"/";return i.test(r)}}else e=e=>{const t=l(e);return(t.endsWith("/")?t:t+"/").includes(r)};t.push(e)}return t}function u(e,t){for(const i of t)if(i(e))return!0;return!1}async function d(e,t,i){const r=[];let o;try{o=await(0,n.readdir)(e,{withFileTypes:!0})}catch{return r}for(const n of o){const o=s.default.join(e,n.name);if(n.isFile())a(o)&&!t(o)&&r.push(n);else if(n.isDirectory()&&!i(o)){const e=await d(o,t,i);r.push(...e)}}return r}async function f(e,t){const i=t||[];return d(e,()=>!1,e=>"node_modules"===s.default.basename(e)||u(e,i))}async function p(e,t){return d(e.endsWith(s.default.sep)?e:e+s.default.sep,e=>(0,o.skip)(e,t),()=>!1)}},2030:e=>{e.exports=require("./instrument")},2546:e=>{e.exports=require("./lib")},2698:e=>{e.exports=require("p-limit")},3106:e=>{e.exports=require("zlib")},3903:e=>{e.exports=require("uuid")},4672:e=>{e.exports=require("./client")},5258:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initCliLoggerContext=function(e,t,i){o=e,s=t,n=i},t.flushAllLogs=a,t.wrapMainWithAutoFlush=function(e){return async()=>{try{await e(),await a()}catch(e){throw await a(),e}}};const r=i(523);let o,n,s;async function a(){try{if(!o)return;if(!s)return;const e=(0,r.getSavedLogs)();if(0===e.length)return;for(const t of e)try{await s.sessionslessLogs(t,o,n,"cli")}catch(e){r.cli_logger.error("Failed to flush logs",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch{}}},5809:e=>{e.exports=require("./config")},6858:e=>{e.exports=require("commander")},6928:e=>{e.exports=require("path")},8184:function(e,t,i){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(5809),n=i(1638),s=i(8528),a=i(2030),l=i(2546),c=i(523),u=r(i(8938)),d=i(6858),f=i(4672),p=i(9896),g=i(1943),h=r(i(2698)),m=r(i(6928)),y=i(9561),w=i(3903),x=r(i(3106)),_=i(5258),F=i(1952);function v(e){const t=(0,c.formatLogMessage)(e.message,e.errCode,e.moreInfo);console.log(t)}async function C(e,t,i){try{return await(0,g.writeFile)(e,t,i),!0}catch{return!1}}async function P(e,t){try{return await(0,g.rename)(e,t),!0}catch{return!1}}async function M(e){try{await(0,g.unlink)(e)}catch{}}async function E(e){const t=(0,h.default)(20);await Promise.all(e.map(e=>t(async()=>{await Promise.all([M(e.filePath+".hud"),M(e.filePath+".hud.map")])})))}async function I(e,t,i,r){const a=(await t.getUploadUrls(i,r,1))[0];c.cli_logger.info("Got upload URL");const d={...f.HudClient.defaultRequest,send_time:(new Date).toISOString(),build_id:i,token:r,sdk_version:o.SDK_VERSION};let p=[];const g=e.map(e=>e.metadatas[0]);try{p=await(0,l.getFilesForDeclarations)(g,t.sendFileDeclarationsCi.bind(t,d))}catch{p=g}c.cli_logger.info("Got files for declarations",{filesCount:p.length});const m=await async function(e){const t=(0,h.default)(process.env.HUD_PARSE_DECLARATIONS_LIMIT?parseInt(process.env.HUD_PARSE_DECLARATIONS_LIMIT):20),i=x.default.createGzip();let r=0;return await Promise.all(e.map(e=>t(async()=>{try{const t=await(0,l.readFile)(e.filename,e.indexOffset,e.indexOffsetEnd);if(!t)return r++,{declarations:[],blacklist:void 0};const o=await(0,n.parseDeclarations)(e,t);i.write(JSON.stringify(function(e){const t=(new Date).toISOString();return{...f.HudClient.defaultRequest,type:"FunctionDeclaration",arr:e,send_time:t,event_version:s.FUNCTION_DECLARATION_VERSION}}(o.declarations))),i.write("\n")}catch{return r++,{declarations:[],blacklist:void 0}}}))),i.end(),r>0&&c.cli_logger.error("Failed to parse declarations for files",{failedFiles:r}),i}(p);try{await async function(e,t,i,r,o){const n=await(0,y.buffer)(e);let s=t;for(let e=1;e<=3;e++)try{return await u.default.put(s,n,{headers:{"Content-Encoding":"gzip","Content-Type":"application/x-ndjson"}}),void c.cli_logger.info("Uploaded requests")}catch(t){if(!(u.default.isAxiosError(t)&&405===t.response?.status&&e<3))throw t;c.cli_logger.warning("Upload failed with 405 status, retrying",{attempt:e+1,totalAttempts:3,currentUploadUrl:s}),s=(await i.getUploadUrls(r,o,1))[0]}}(m,a,t,i,r),c.cli_logger.info("Upload completed")}catch(e){c.cli_logger.warning("Failed to upload requests, still instrumenting files",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),v(l.UserErrorLogs.HudCliUploadFailed())}}function D(e){const t=m.default.resolve(e);if(!(0,p.existsSync)(t))throw new Error(`Directory does not exist: ${e}`);return t}(0,_.wrapMainWithAutoFlush)(async function(){const e=new d.Command;e.requiredOption("--api-key <string>","Your Hud API key").requiredOption("--dirs <list>","Comma-separated directories to scan").option("--include-modules <list>","Comma-separated module names to trace").option("--node-modules-path <string>","Path to node_modules").option("--max-mapped-functions <number>","Max number of mapped functions").option("--exclude-dirs-patterns <list>","Comma-separated wildcard patterns to exclude directories. Note: relative paths are not supported. Example: 'dist/frontend,*test*'").parse(process.argv);const t=e.opts(),i={apiKey:t.apiKey,modulesToTrace:t.includeModules?t.includeModules.split(",").map(e=>e.trim()):[],dirs:t.dirs.split(",").map(e=>e.trim()),nodeModulesPath:t.nodeModulesPath,maxMappedFunctions:t.maxMappedFunctions,excludeDirsPatterns:t.excludeDirsPatterns?t.excludeDirsPatterns.split(",").map(e=>e.trim()):void 0},r=(0,w.v4)(),n=new f.HudClient;if((0,_.initCliLoggerContext)(t.apiKey,n,r),c.cli_logger.info("CLI build started",{buildId:r,args:i}),!await n.validateToken(t.apiKey))return v(l.UserErrorLogs.HudCliInvalidKey()),void c.cli_logger.critical("Invalid API key");let u,g;i.maxMappedFunctions&&(o.hudConfig.userConfig.maxMappedFunctions={value:i.maxMappedFunctions,source:"SETUP"});try{({dirs:u,nodeModulesPath:g}=function(e){const t=[];let i;for(const i of e.dirs)try{t.push(D(i))}catch(e){throw v(l.UserErrorLogs.HudCliInvalidDirectory(i)),e}if(e.nodeModulesPath)try{i=D(e.nodeModulesPath)}catch(t){throw v(l.UserErrorLogs.HudCliInvalidDirectory(e.nodeModulesPath)),t}return{dirs:t,nodeModulesPath:i}}(i))}catch{return void c.cli_logger.critical("Failed to validate directories")}const y=(0,a.createCheckers)(i.modulesToTrace),x=await(0,F.getFiles)(u,y,g,i.excludeDirsPatterns);if(0===x.length)return c.cli_logger.critical("No .js files to instrument"),void v(l.UserErrorLogs.HudCliNoJsFiles());c.cli_logger.info("Found files to instrument",{filesCount:x.length});const L=await async function(e,t){const i=(0,h.default)(20);return await Promise.all(e.map(e=>i(async()=>async function(e,t){try{if(globalThis.hudRunningMode===s.HudRunningMode.detached)return{status:"skipped"};const i=m.default.join(e.parentPath??e.path,e.name),r=(0,p.readFileSync)(i,"utf-8");if((0,a.parseCliInstrumentationPattern)(r))return{status:"skipped"};const{transformedCode:o,metadatas:n}=(0,a.editWithCliBuildId)(r,i,s.Format.cjs,t);return n[0].detectedForAwaitLoops>0&&c.instrument_logger.warning(`Detected for-await loops in file ${i}`,{detectedForAwaitLoops:n[0].detectedForAwaitLoops}),await async function(e,t,i){const r=(0,l.combineSourceMaps)(t,i);return!(!r||!await C(i+".hud",e)||!await C(i+".hud.map",r,"utf-8")&&(await M(i+".hud"),1))}(o,n,i)?{status:"success",metadatas:n.map(e=>(0,l.sourceFileMetadataToTransferSourceFileMetadata)(e)),filePath:i}:{status:"failed"}}catch{return{status:"failed"}}}(e,t))))}(x,r);if(globalThis.hudRunningMode===s.HudRunningMode.detached)return c.cli_logger.critical("Max mapped functions exceeded",{maxMappedFunctions:o.hudConfig.userConfig.maxMappedFunctions?.value??0}),v(l.UserErrorLogs.HudCliInstrumentedFunctionCountExceeded(o.hudConfig.userConfig.maxMappedFunctions?.value??0)),void await E(L.filter(e=>"success"===e.status).map(e=>({filePath:e.filePath})));const U=await async function(e){const t=e.filter(e=>void 0===e||"failed"===e.status);t.length>0&&c.cli_logger.warning("Failed to edit files",{failedFiles:t.length,totalFiles:e.length});const i=e.filter(e=>"skipped"===e.status);if(i.length>0){if(i.length===e.length)return v(l.UserErrorLogs.HudCliAllFilesInstrumented()),void c.cli_logger.info("No files instrumented");v(l.UserErrorLogs.HudCliSomeFilesInstrumented()),c.cli_logger.info("Skipped files",{skippedFiles:i.length,totalFiles:e.length})}const r=e.filter(e=>"success"===e.status);return r.length>0&&c.cli_logger.info("Edited files",{successFiles:r.length}),r}(L);if(U&&0!==U.length)try{c.cli_logger.info("Parsing declarations for files",{filesCount:U.length}),await I(U,n,r,i.apiKey),await async function(e){const t=(0,h.default)(20);await Promise.all(e.map(e=>t(async()=>{await P(e.filePath+".hud",e.filePath)?await P(e.filePath+".hud.map",e.filePath+".map"):(await M(e.filePath+".hud"),await M(e.filePath+".hud.map"))})))}(U),c.cli_logger.info("Files written to disk"),c.cli_logger.info("Done"),v(l.UserLogs.HudCliCompletedSuccessfully(U.length))}catch(e){throw c.cli_logger.critical("Failed to instrument files, deleting files",{msg:e instanceof Error?e.message:void 0}),await E(U),e}finally{try{await n.completed(r,i.apiKey),c.cli_logger.info("Build completed notification sent")}catch(e){c.cli_logger.error("Failed to send completed request",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}})().catch(async()=>{try{v(l.UserErrorLogs.HudCliUnkownError())}catch{}})},8528:e=>{e.exports=require("./dto")},8938:e=>{e.exports=require("axios")},9561:e=>{e.exports=require("stream/consumers")},9896:e=>{e.exports=require("fs")}},t={};return function i(r){var o=t[r];if(void 0!==o)return o.exports;var n=t[r]={exports:{}};return e[r].call(n.exports,n,n.exports,i),n.exports}(8184)})());
3
3
  //# sourceMappingURL=cli.js.map
@@ -1,2 +1,2 @@
1
- !function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var i in t)("object"==typeof exports?exports:e)[i]=t[i]}}(global,()=>(()=>{"use strict";var e={1569:e=>{e.exports=require("zod")},2210:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_MODULE_NAME=void 0,n.SDK_MODULE_NAME="hud-sdk"},2509:function(e,n,t){var i=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var r=Object.getOwnPropertyDescriptor(n,t);r&&!("get"in r?!n.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,r)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),r=this&&this.__exportStar||function(e,n){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(n,t)||i(n,e,t)};Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=n.SDK_MODULE_NAME=void 0,r(t(2887),n),r(t(2570),n);var a=t(2210);Object.defineProperty(n,"SDK_MODULE_NAME",{enumerable:!0,get:function(){return a.SDK_MODULE_NAME}}),r(t(7089),n);var s=t(5453);Object.defineProperty(n,"SDK_VERSION",{enumerable:!0,get:function(){return s.SDK_VERSION}})},2570:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.updateDynamicConfig=function(e,n,t){const a=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!a.success)return t.error("Dynamic configuration not updated - Invalid configuration override",{remoteConfigParseResult:a,remoteConfig:e}),n.dynamicConfig;const s=r(n.dynamicConfig,a.data);return void 0!==s.enableInvestigation&&s.enableInvestigation!==n.dynamicConfig.enableInvestigation&&(t.info("Dynamic configuration updated - enableInvestigation",{hudEnableInvestigation:s.enableInvestigation}),n.isInvestigationEnabledByEnv||(globalThis.hudEnableInvestigation=s.enableInvestigation)),void 0!==s.enableInvestigationArgsSending&&s.enableInvestigationArgsSending!==n.dynamicConfig.enableInvestigationArgsSending&&(t.info("Dynamic configuration updated - enableInvestigationArgsSending",{hudEnableInvestigationArgsSending:s.enableInvestigationArgsSending}),globalThis.hudEnableInvestigationArgsSending=s.enableInvestigationArgsSending),s};const i=t(2887);function r(e,n){if(null===n||"object"!=typeof n)return n;if(Array.isArray(e)&&Array.isArray(n))return n;const t={...e};for(const i in n){const a=e[i],s=n[i];t[i]=r(a,s)}return t}},2887:function(e,n,t){var i,r=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var r=Object.getOwnPropertyDescriptor(n,t);r&&!("get"in r?!n.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,r)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),a=this&&this.__setModuleDefault||(Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var n=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[n.length]=t);return n},i(e)},function(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t=i(e),s=0;s<t.length;s++)"default"!==t[s]&&r(n,e,t[s]);return a(n,e),n});Object.defineProperty(n,"__esModule",{value:!0}),n.HudFailedReadConfigError=n.hudConfig=n.HudDynamicConfigSchema=void 0,n.getModulesToTraceFromEnv=function(){const e=process.env.HUD_MONITOR_MODULES||process.env.HUD_INCLUDE_MODULES;if(e)return e.split(",")},n.getFrameworksToEnableFromEnv=function(){const e=process.env.HUD_ENABLE_FRAMEWORKS;let n;if(e)try{n=o.availableFrameworksSchema.parse(JSON.parse(e))}catch{n=new Map}return n},n.isValidParam=function(e){return null!=e&&""!==e&&"string"==typeof e},n.updateInvestigationRateLimitGlobals=function(){globalThis.hudMaxSameInvestigations=n.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations,globalThis.hudMaxTotalInvestigations=n.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations,globalThis.hudSameInvestigationTimeWindowNs=BigInt(n.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs)*BigInt(1e6),globalThis.hudTotalInvestigationTimeWindowNs=BigInt(n.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs)*BigInt(1e6)},n.getConfigContent=function(){if(process.env.HUD_CONFIG)return{content:process.env.HUD_CONFIG,source:"HUD_CONFIG"};const e=function(){try{const e=process.env.HUD_CONFIG_PATH;if(e)return l.existsSync(e)?e:void 0;let n=__dirname,t=0;for(;"/"!==n&&t<10;){const e=`${n}/hud.config`;if(l.existsSync(e))return e;n=d.dirname(n),t++}}catch{return}}();if(e)try{return{content:l.readFileSync(e,"utf8"),source:e}}catch(n){throw new h(e,n.code)}};const o=t(8528),l=s(t(9896)),d=s(t(6928)),u=t(1569),c="globalThis._hudMark";n.HudDynamicConfigSchema=u.z.object({aggregationInterval:u.z.number(),aggregationFirstSendTimeout:u.z.number(),investigationInterval:u.z.number(),investigationFirstSendTimeout:u.z.number(),enableInvestigation:u.z.boolean(),enableInvestigationArgsSending:u.z.boolean(),investigationRateLimits:u.z.object({maxSameInvestigations:u.z.number().int().positive(),sameInvestigationTimeWindowMs:u.z.number().int().positive(),maxTotalInvestigations:u.z.number().int().positive(),totalInvestigationTimeWindowMs:u.z.number().int().positive(),maxUniqLogs:u.z.number().int().positive()}),machineMetricsInterval:u.z.number().int().positive(),blacklistParams:u.z.array(u.z.string()),forensicsBlacklistFields:u.z.array(u.z.string()),forensicsWhitelistFields:u.z.array(u.z.string()),censorshipRegexes:u.z.array(u.z.object({regex:u.z.string(),replacement:u.z.string()})),reingestInterval:u.z.number().int().positive(),extraHeaders:u.z.array(u.z.string())});const m=process.env.HUD_ENABLE_INVESTIGATION,g=process.env.HUD_HOST||"https://api-prod.hud.io",p=process.env.HUD_LOG_DIR,f="_HUD",v=process.env.HUD_LOG_TO_FILE,b={sink:{url:g,timeout:5e3,session_attr:"X-Session-ID"},endpoints:{init:"sink/init",send:"sink/send",batch:"sink/batch",logs:"sink/logs",sessionslessLogs:"sink/sessionless-logs",fatalError:"sink/redline",getMode:"sink/getMode",getRemoteConfig:"sink/remote-config/get",fileDeclarations:"sink/file-declarations",sourceMap:"sink/sourcemap",storeObject:"sink/objects/store",getUploadUrls:"sink/registry/get-upload-urls",triggerReingest:"sink/registry/reingest",validateToken:"sink/registry/validate",fileDeclarationsCi:"sink/registry/file-declarations",completed:"sink/registry/completed"},logger:{default:{levels:{app:"warning",worker:"warning",instrument:"warning"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},investigation:{objectVersion:"1.0.1",store:{type:"s3"},limits:{executionFlowMaxLength:100,exceptionMaxLength:100},maxStringLength:1024,maxArrayLength:100,maxObjectDepth:10},userConfig:{minPodMemoryMB:{value:250,source:"DEFAULT"},maxMappedFunctions:{value:5e4,source:"DEFAULT"},maxFileSizeBytes:{value:2831155,source:"DEFAULT"},maxTimeUntilInitSessionMs:{value:3e4,source:"DEFAULT"},includeModules:{value:[],source:"DEFAULT"},disableRuntimeInstrumentation:{value:!1,source:"DEFAULT"},disableParametersExtraction:{value:!1,source:"DEFAULT"}},loggerWorkerPortSizeLimit:1e4,customerLoggerLevel:"info",logDirectory:p,invocationSampling:new Map([[[300n,null],100],[[200n,300n],50],[[100n,200n],25],[[0n,100n],10]]),callerResetInterval:36e5,modeInterval:3e5,logsSendInterval:6e4,logPerfInterval:3e5,endpointsInterval:3e4,endpointsFirstSendWaitTime:12e4,lazyEndpointsInterval:18e5,staticNextJsEndpointsInterval:1e4,staticNextJsEndpointsMaxAttempts:12,huddBinWidth:1.2,workerGrace:6e4,workerTimeout:2e4,timeoutOnRegister:6e4,timeoutOnMetrics:6e4,workerMessageTimeout:1e4,communicationBatchSize:100,writePatched:!1,defaultOff:!0,disableOnBadApiKey:!0,disableOnBadServiceName:!0,cpuTimeCollection:!1,workloadMetadata:{sendInterval:3e5,aws:{imds:{baseURL:"http://169.254.169.254/latest",tokenURI:"/api/token",identityURI:"/dynamic/instance-identity/document",lifeCycleURI:"/meta-data/instance-life-cycle",requestTimeout:5e3},metadataFile:"/run/cloud-init/instance-data.json"},kubernetes:{namespaceFile:"/var/run/secrets/kubernetes.io/serviceaccount/namespace",uuidFile:"/sys/class/dmi/id/product_uuid",podMemoryLimitFile:"/sys/fs/cgroup/memory/memory.stat",podCPULimitFile:"/sys/fs/cgroup/cpuacct/cpu.shares"}},deleteLogsAfterSending:!0,supportSourceMap:!0,editInline:!0,bundlerBuildIdVarName:"hudFileBuildID",bundlerBuildUuidNamespace:"00c1e90b-af75-4d8e-9935-68485877f759",functionUuidNamespace:"94a210f3-861c-4e18-ab27-6b6c19437c9d",wrapVarPrefix:f,functionIdVarName:`${f}_fid`,frameworksToPatch:new Map([["express",{framework:o.availableFrameworks.express,enable:!0,version:"<=5",patcher:"express",enableEsbuild:!0}],[d.join("express","lib","application.js"),{framework:o.availableFrameworks.express,enable:!0,version:"<=5",patcher:"expressApplication",enableEsbuild:!0}],["router",{framework:o.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"router",enableEsbuild:!0}],["koa",{framework:o.availableFrameworks.koa,enable:!0,version:"^2.0.0",patcher:"koa"}],["http",{framework:o.availableFrameworks.http,enable:!0,version:"*",patcher:"http"}],["https",{framework:o.availableFrameworks.https,enable:!0,version:"*",patcher:"http"}],["next/dist/server/base-server",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextjs"}],["next/dist/server/lib/module-loader/route-module-loader",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsModuleLoader"}],["next/dist/server/config",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsConfig"}],["@nestjs/core/router/router-execution-context",{framework:o.availableFrameworks.nestjs,enable:!0,version:"*",patcher:"nestjsRouterExecutionContext"}],["kafkajs",{framework:o.availableFrameworks.kafkajs,enable:"win32"!==process.platform,version:">=1.4.0",patcher:"kafkajs"}],["@confluentinc/kafka-javascript",{framework:o.availableFrameworks.confluentKafkaJs,enable:!1,version:">=1.4.0",patcher:"confluentKafkaJs"}],["@nestjs/microservices/context/rpc-context-creator",{framework:o.availableFrameworks.nestjs,enable:"win32"!==process.platform,version:">=7.0.0",patcher:"nestjsRpcContextCreator"}],[["@codegenie/serverless-express","src","frameworks","express.js"].join(d.sep),{framework:o.availableFrameworks.codegenieServerlessExpress,enable:!0,version:"^4.1.0",patcher:"codeGenieServerlessExpress",enableEsbuild:!0}],["@codegenie/serverless-express",{framework:o.availableFrameworks.codegenieServerlessExpress,enable:!0,enableEsbuild:!0}],["sqs-consumer",{framework:o.availableFrameworks.sqs,enable:!0,version:"*",patcher:"sqsConsumer",extraInfo:{mondayVersion:">=6.1.0",bbcVersion:">=7.5.0"}}],["serverless-http",{framework:o.availableFrameworks.serverlessHttp,enable:!0,enableEsbuild:!0}],[d.join("serverless-http","lib","framework","get-framework.js"),{framework:o.availableFrameworks.serverlessHttp,enable:!0,version:"^2.7.0",patcher:"serverlessHttp",enableEsbuild:!0}]]),communicationKeepalive:!1,communicationKeepaliveGrace:5e3,express:{routeNamesSymbol:Symbol.for("hudRoutes"),layerStateSymbol:Symbol.for("hudState"),markedSymbol:Symbol.for("hudMarked"),wrapAllCallbacks:!0},supportedNodeVersions:["18","20","21","22","24"],hudPatchedName:"hudPatched",metricSymbol:Symbol.for("hudMetric"),dynamicConfig:{aggregationInterval:3e5,aggregationFirstSendTimeout:3e4,investigationInterval:5e3,investigationFirstSendTimeout:3e4,enableInvestigation:"true"===m,enableInvestigationArgsSending:!0,investigationRateLimits:{maxSameInvestigations:2,sameInvestigationTimeWindowMs:36e5,maxTotalInvestigations:25,totalInvestigationTimeWindowMs:216e5,maxUniqLogs:2},machineMetricsInterval:1e4,reingestInterval:3e4,extraHeaders:[],blacklistParams:[],censorshipRegexes:[],forensicsBlacklistFields:[],forensicsWhitelistFields:[]},machineMetricsSavedLength:2,isInvestigationEnabledByEnv:void 0!==m,suppressTraces:!0,lambdaMinimunMemory:1024,lambdaBaseGivenTime:400,lambdaExtraGivenTimePerRequest:50,lambdaMaxGivenTime:700,throttleStatusCode:202,functionsToInstrument:[{moduleName:"pg",fileToFunctionsMapping:{[d.join(d.sep,"pg","lib","client.js")]:["query","connect","end"]}},{moduleName:"axios",fileToFunctionsMapping:{[d.join(d.sep,"axios","dist","node","axios.cjs")]:["request"]}},{moduleName:"typeorm",fileToFunctionsMapping:{[d.join(d.sep,"typeorm","repository","Repository.js")]:["hasId","getId","create","merge","preload","save","remove","softRemove","recover","insert","update","upsert","delete","softDelete","restore","exist","exists","existsBy","count","countBy","sum","average","minimum","maximum","find","findBy","findAndCount","findAndCountBy","findByIds","findOne","findOneBy","findOneById","findOneOrFail","findOneByOrFail","query","clear","increment","decrement","extend"]}}],esbuildGlobalVar:"hudSGV",esbuildPluginMessagePrefix:"ESBuild plugin ",esbuildMark:"/*modifiedByHudESBuildPlugin-",esbuildMarkLength:67,esbuildUploadSourceMapTimeout:15e3,esbuildPluginLogsChunkSize:100,esbuildPluginLogsBatchSize:10,pluginsLogEndpoint:"https://yqp37dddrsewm6wdwwpwfraxqm0shdmx.lambda-url.eu-central-1.on.aws/",fileless:"true"!==v,uninstrumentedFilesLogThreshold:2,tsNodeConfigTimeout:1e4,allowedEditExtensions:[".ts",".cts",".mts",".js",".cjs",".mjs"],nextJsMarkVarName:c,nextJsMarkStatement:`${c} = "a"`,timeoutOnNextJsPlugin:3e4,logIntervals:{instrumentedFilesCount:5e3,sentEventsCount:12e4},cliBuildIdVarName:"hudCliBuildId",cliSdkVersionVarName:"hudCliSdkVersion"};n.hudConfig=function(e={}){return{...b,...e}}({logger:{default:{levels:{app:"info",worker:"info",instrument:"info"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},deleteLogsAfterSending:!1,communicationKeepalive:!0}),n.default=n.hudConfig;class h extends Error{path;code;constructor(e,n){super(),this.path=e,this.code=n}}n.HudFailedReadConfigError=h},5453:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=void 0,n.SDK_VERSION="1.6.31"},6928:e=>{e.exports=require("path")},7089:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ObjectStoreConfigSchema=void 0;const i=t(1569),r=i.z.object({type:i.z.literal("s3")}),a=i.z.object({type:i.z.literal("disk"),path:i.z.string()});n.ObjectStoreConfigSchema=i.z.union([r,a])},8528:e=>{e.exports=require("./dto")},9896:e=>{e.exports=require("fs")}},n={};return function t(i){var r=n[i];if(void 0!==r)return r.exports;var a=n[i]={exports:{}};return e[i].call(a.exports,a,a.exports,t),a.exports}(2509)})());
1
+ !function(e,n){if("object"==typeof exports&&"object"==typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t=n();for(var i in t)("object"==typeof exports?exports:e)[i]=t[i]}}(global,()=>(()=>{"use strict";var e={1569:e=>{e.exports=require("zod")},2210:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_MODULE_NAME=void 0,n.SDK_MODULE_NAME="hud-sdk"},2509:function(e,n,t){var i=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var r=Object.getOwnPropertyDescriptor(n,t);r&&!("get"in r?!n.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,r)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),r=this&&this.__exportStar||function(e,n){for(var t in e)"default"===t||Object.prototype.hasOwnProperty.call(n,t)||i(n,e,t)};Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=n.SDK_MODULE_NAME=void 0,r(t(2887),n),r(t(2570),n);var a=t(2210);Object.defineProperty(n,"SDK_MODULE_NAME",{enumerable:!0,get:function(){return a.SDK_MODULE_NAME}}),r(t(7089),n);var s=t(5453);Object.defineProperty(n,"SDK_VERSION",{enumerable:!0,get:function(){return s.SDK_VERSION}})},2570:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.updateDynamicConfig=function(e,n,t){const a=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!a.success)return t.error("Dynamic configuration not updated - Invalid configuration override",{remoteConfigParseResult:a,remoteConfig:e}),n.dynamicConfig;const s=r(n.dynamicConfig,a.data);return void 0!==s.enableInvestigation&&s.enableInvestigation!==n.dynamicConfig.enableInvestigation&&(t.info("Dynamic configuration updated - enableInvestigation",{hudEnableInvestigation:s.enableInvestigation}),n.isInvestigationEnabledByEnv||(globalThis.hudEnableInvestigation=s.enableInvestigation)),void 0!==s.enableInvestigationArgsSending&&s.enableInvestigationArgsSending!==n.dynamicConfig.enableInvestigationArgsSending&&(t.info("Dynamic configuration updated - enableInvestigationArgsSending",{hudEnableInvestigationArgsSending:s.enableInvestigationArgsSending}),globalThis.hudEnableInvestigationArgsSending=s.enableInvestigationArgsSending),s};const i=t(2887);function r(e,n){if(null===n||"object"!=typeof n)return n;if(Array.isArray(e)&&Array.isArray(n))return n;const t={...e};for(const i in n){const a=e[i],s=n[i];t[i]=r(a,s)}return t}},2887:function(e,n,t){var i,r=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var r=Object.getOwnPropertyDescriptor(n,t);r&&!("get"in r?!n.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,r)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),a=this&&this.__setModuleDefault||(Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var n=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[n.length]=t);return n},i(e)},function(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t=i(e),s=0;s<t.length;s++)"default"!==t[s]&&r(n,e,t[s]);return a(n,e),n});Object.defineProperty(n,"__esModule",{value:!0}),n.HudFailedReadConfigError=n.hudConfig=n.HudDynamicConfigSchema=void 0,n.getModulesToTraceFromEnv=function(){const e=process.env.HUD_MONITOR_MODULES||process.env.HUD_INCLUDE_MODULES;if(e)return e.split(",")},n.getFrameworksToEnableFromEnv=function(){const e=process.env.HUD_ENABLE_FRAMEWORKS;let n;if(e)try{n=o.availableFrameworksSchema.parse(JSON.parse(e))}catch{n=new Map}return n},n.isValidParam=function(e){return null!=e&&""!==e&&"string"==typeof e},n.updateInvestigationRateLimitGlobals=function(){globalThis.hudMaxSameInvestigations=n.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations,globalThis.hudMaxTotalInvestigations=n.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations,globalThis.hudSameInvestigationTimeWindowNs=BigInt(n.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs)*BigInt(1e6),globalThis.hudTotalInvestigationTimeWindowNs=BigInt(n.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs)*BigInt(1e6)},n.getConfigContent=function(){if(process.env.HUD_CONFIG)return{content:process.env.HUD_CONFIG,source:"HUD_CONFIG"};const e=function(){try{const e=process.env.HUD_CONFIG_PATH;if(e)return l.existsSync(e)?e:void 0;let n=__dirname,t=0;for(;"/"!==n&&t<10;){const e=`${n}/hud.config`;if(l.existsSync(e))return e;n=d.dirname(n),t++}}catch{return}}();if(e)try{return{content:l.readFileSync(e,"utf8"),source:e}}catch(n){throw new f(e,n.code)}};const o=t(8528),l=s(t(9896)),d=s(t(6928)),u=t(1569),c="globalThis._hudMark";n.HudDynamicConfigSchema=u.z.object({aggregationInterval:u.z.number(),aggregationFirstSendTimeout:u.z.number(),investigationInterval:u.z.number(),investigationFirstSendTimeout:u.z.number(),enableInvestigation:u.z.boolean(),enableInvestigationArgsSending:u.z.boolean(),investigationRateLimits:u.z.object({maxSameInvestigations:u.z.number().int().positive(),sameInvestigationTimeWindowMs:u.z.number().int().positive(),maxTotalInvestigations:u.z.number().int().positive(),totalInvestigationTimeWindowMs:u.z.number().int().positive(),maxUniqLogs:u.z.number().int().positive()}),machineMetricsInterval:u.z.number().int().positive(),blacklistParams:u.z.array(u.z.string()),forensicsBlacklistFields:u.z.array(u.z.string()),forensicsWhitelistFields:u.z.array(u.z.string()),censorshipRegexes:u.z.array(u.z.object({regex:u.z.string(),replacement:u.z.string()})),reingestInterval:u.z.number().int().positive(),extraHeaders:u.z.array(u.z.string())});const m=process.env.HUD_ENABLE_INVESTIGATION,g="_HUD",p={sink:{url:process.env.HUD_HOST||"https://api-prod.hud.io",timeout:5e3,session_attr:"X-Session-ID"},endpoints:{init:"sink/init",send:"sink/send",batch:"sink/batch",logs:"sink/logs",sessionslessLogs:"sink/sessionless-logs",fatalError:"sink/redline",getMode:"sink/getMode",getRemoteConfig:"sink/remote-config/get",fileDeclarations:"sink/file-declarations",sourceMap:"sink/sourcemap",storeObject:"sink/objects/store",getUploadUrls:"sink/registry/get-upload-urls",triggerReingest:"sink/registry/reingest",validateToken:"sink/registry/validate",fileDeclarationsCi:"sink/registry/file-declarations",completed:"sink/registry/completed"},logger:{default:{levels:{app:"warning",worker:"warning",instrument:"warning"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},investigation:{objectVersion:"1.0.1",store:{type:"s3"},limits:{executionFlowMaxLength:100,exceptionMaxLength:100},maxStringLength:1024,maxArrayLength:100,maxObjectDepth:10},userConfig:{minPodMemoryMB:{value:250,source:"DEFAULT"},maxMappedFunctions:{value:5e4,source:"DEFAULT"},maxFileSizeBytes:{value:2831155,source:"DEFAULT"},maxTimeUntilInitSessionMs:{value:3e4,source:"DEFAULT"},includeModules:{value:[],source:"DEFAULT"},disableRuntimeInstrumentation:{value:!1,source:"DEFAULT"},disableParametersExtraction:{value:!1,source:"DEFAULT"}},loggerWorkerPortSizeLimit:1e4,customerLoggerLevel:"info",logDirectory:process.env.HUD_LOG_DIR,invocationSampling:new Map([[[300n,null],100],[[200n,300n],50],[[100n,200n],25],[[0n,100n],10]]),callerResetInterval:36e5,modeInterval:3e5,logsSendInterval:6e4,logPerfInterval:3e5,endpointsInterval:3e4,endpointsFirstSendWaitTime:12e4,lazyEndpointsInterval:18e5,staticNextJsEndpointsInterval:1e4,staticNextJsEndpointsMaxAttempts:12,huddBinWidth:1.2,workerGrace:6e4,workerTimeout:2e4,timeoutOnRegister:6e4,timeoutOnMetrics:6e4,workerMessageTimeout:1e4,communicationBatchSize:100,writePatched:!1,defaultOff:!0,disableOnBadApiKey:!0,disableOnBadServiceName:!0,cpuTimeCollection:!1,workloadMetadata:{sendInterval:3e5,aws:{imds:{baseURL:"http://169.254.169.254/latest",tokenURI:"/api/token",identityURI:"/dynamic/instance-identity/document",lifeCycleURI:"/meta-data/instance-life-cycle",requestTimeout:5e3},metadataFile:"/run/cloud-init/instance-data.json"},kubernetes:{namespaceFile:"/var/run/secrets/kubernetes.io/serviceaccount/namespace",uuidFile:"/sys/class/dmi/id/product_uuid",podMemoryLimitFile:"/sys/fs/cgroup/memory/memory.stat",podCPULimitFile:"/sys/fs/cgroup/cpuacct/cpu.shares"}},deleteLogsAfterSending:!0,supportSourceMap:!0,editInline:!0,bundlerBuildIdVarName:"hudFileBuildID",bundlerBuildUuidNamespace:"00c1e90b-af75-4d8e-9935-68485877f759",functionUuidNamespace:"94a210f3-861c-4e18-ab27-6b6c19437c9d",wrapVarPrefix:g,functionIdVarName:`${g}_fid`,frameworksToPatch:new Map([["express",{framework:o.availableFrameworks.express,enable:!0,version:"<=5",patcher:"express",enableEsbuild:!0}],[d.join("express","lib","application.js"),{framework:o.availableFrameworks.express,enable:!0,version:"<=5",patcher:"expressApplication",enableEsbuild:!0}],["router",{framework:o.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"router",enableEsbuild:!0}],["koa",{framework:o.availableFrameworks.koa,enable:!0,version:"^2.0.0",patcher:"koa"}],["http",{framework:o.availableFrameworks.http,enable:!0,version:"*",patcher:"http"}],["https",{framework:o.availableFrameworks.https,enable:!0,version:"*",patcher:"http"}],["next/dist/server/base-server",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextjs"}],["next/dist/server/lib/module-loader/route-module-loader",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsModuleLoader"}],["next/dist/server/config",{framework:o.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsConfig"}],["@nestjs/core/router/router-execution-context",{framework:o.availableFrameworks.nestjs,enable:!0,version:"*",patcher:"nestjsRouterExecutionContext"}],["kafkajs",{framework:o.availableFrameworks.kafkajs,enable:"win32"!==process.platform,version:">=1.4.0",patcher:"kafkajs"}],["@confluentinc/kafka-javascript",{framework:o.availableFrameworks.confluentKafkaJs,enable:!1,version:">=1.4.0",patcher:"confluentKafkaJs"}],["@nestjs/microservices/context/rpc-context-creator",{framework:o.availableFrameworks.nestjs,enable:"win32"!==process.platform,version:">=7.0.0",patcher:"nestjsRpcContextCreator"}],[["@codegenie/serverless-express","src","frameworks","express.js"].join(d.sep),{framework:o.availableFrameworks.codegenieServerlessExpress,enable:!0,version:"^4.1.0",patcher:"codeGenieServerlessExpress",enableEsbuild:!0}],["@codegenie/serverless-express",{framework:o.availableFrameworks.codegenieServerlessExpress,enable:!0,enableEsbuild:!0}],["sqs-consumer",{framework:o.availableFrameworks.sqs,enable:!0,version:"*",patcher:"sqsConsumer",extraInfo:{mondayVersion:">=6.1.0",bbcVersion:">=7.5.0"}}],["serverless-http",{framework:o.availableFrameworks.serverlessHttp,enable:!0,enableEsbuild:!0}],[d.join("serverless-http","lib","framework","get-framework.js"),{framework:o.availableFrameworks.serverlessHttp,enable:!0,version:"^2.7.0",patcher:"serverlessHttp",enableEsbuild:!0}]]),communicationKeepalive:!1,communicationKeepaliveGrace:5e3,express:{routeNamesSymbol:Symbol.for("hudRoutes"),layerStateSymbol:Symbol.for("hudState"),markedSymbol:Symbol.for("hudMarked"),wrapAllCallbacks:!0},supportedNodeVersions:["18","20","21","22","24"],hudPatchedName:"hudPatched",metricSymbol:Symbol.for("hudMetric"),dynamicConfig:{aggregationInterval:3e5,aggregationFirstSendTimeout:3e4,investigationInterval:5e3,investigationFirstSendTimeout:3e4,enableInvestigation:"true"===m,enableInvestigationArgsSending:!0,investigationRateLimits:{maxSameInvestigations:2,sameInvestigationTimeWindowMs:36e5,maxTotalInvestigations:25,totalInvestigationTimeWindowMs:216e5,maxUniqLogs:2},machineMetricsInterval:1e4,reingestInterval:3e4,extraHeaders:[],blacklistParams:[],censorshipRegexes:[],forensicsBlacklistFields:[],forensicsWhitelistFields:[]},machineMetricsSavedLength:2,isInvestigationEnabledByEnv:void 0!==m,suppressTraces:!0,lambdaMinimunMemory:1024,lambdaBaseGivenTime:400,lambdaExtraGivenTimePerRequest:50,lambdaMaxGivenTime:700,throttleStatusCode:202,functionsToInstrument:[{moduleName:"pg",fileToFunctionsMapping:{[d.join(d.sep,"pg","lib","client.js")]:["query","connect","end"]}},{moduleName:"axios",fileToFunctionsMapping:{[d.join(d.sep,"axios","dist","node","axios.cjs")]:["request"]}},{moduleName:"typeorm",fileToFunctionsMapping:{[d.join(d.sep,"typeorm","repository","Repository.js")]:["hasId","getId","create","merge","preload","save","remove","softRemove","recover","insert","update","upsert","delete","softDelete","restore","exist","exists","existsBy","count","countBy","sum","average","minimum","maximum","find","findBy","findAndCount","findAndCountBy","findByIds","findOne","findOneBy","findOneById","findOneOrFail","findOneByOrFail","query","clear","increment","decrement","extend"]}}],esbuildGlobalVar:"hudSGV",esbuildPluginMessagePrefix:"ESBuild plugin ",esbuildMark:"/*modifiedByHudESBuildPlugin-",esbuildMarkLength:67,esbuildUploadSourceMapTimeout:15e3,esbuildPluginLogsChunkSize:100,esbuildPluginLogsBatchSize:10,pluginsLogEndpoint:"https://yqp37dddrsewm6wdwwpwfraxqm0shdmx.lambda-url.eu-central-1.on.aws/",uninstrumentedFilesLogThreshold:2,tsNodeConfigTimeout:1e4,allowedEditExtensions:[".ts",".cts",".mts",".js",".cjs",".mjs"],nextJsMarkVarName:c,nextJsMarkStatement:`${c} = "a"`,timeoutOnNextJsPlugin:3e4,logIntervals:{instrumentedFilesCount:5e3,sentEventsCount:12e4},cliBuildIdVarName:"hudCliBuildId",cliSdkVersionVarName:"hudCliSdkVersion"};n.hudConfig=function(e={}){return{...p,...e}}({logger:{default:{levels:{app:"info",worker:"info",instrument:"info"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},deleteLogsAfterSending:!1,communicationKeepalive:!0}),n.default=n.hudConfig;class f extends Error{path;code;constructor(e,n){super(),this.path=e,this.code=n}}n.HudFailedReadConfigError=f},5453:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=void 0,n.SDK_VERSION="1.6.32"},6928:e=>{e.exports=require("path")},7089:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ObjectStoreConfigSchema=void 0;const i=t(1569),r=i.z.object({type:i.z.literal("s3")}),a=i.z.object({type:i.z.literal("disk"),path:i.z.string()});n.ObjectStoreConfigSchema=i.z.union([r,a])},8528:e=>{e.exports=require("./dto")},9896:e=>{e.exports=require("fs")}},n={};return function t(i){var r=n[i];if(void 0!==r)return r.exports;var a=n[i]={exports:{}};return e[i].call(a.exports,a,a.exports,t),a.exports}(2509)})());
2
2
  //# sourceMappingURL=config.js.map
package/dist/cjs/core.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},2546:e=>{e.exports=require("./lib")},2702:function(e,t,r){var i,o=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),s=0;s<r.length;s++)"default"!==r[s]&&o(t,e,r[s]);return n(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerKeepaliveGuard=void 0;const a=s(r(523)),d=r(8528),c=a.app_logger;t.WorkerKeepaliveGuard=class{worker;keepaliveGrace;timeoutId=void 0;eventHandler=this.keepalive.bind(this);constructor(e,t){this.worker=e,this.keepaliveGrace=t}keepalive(e){try{if(e.msg!==d.KeepAliveMessage.msg)return;this._restartTimeout()}catch(e){c.error("Error in keepalive",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}_restartTimeout(){const e=setTimeout(()=>{},this.keepaliveGrace);clearTimeout(this.timeoutId),this.timeoutId=e}start(){this.stop(),this.worker.on("message",this.eventHandler).unref()}stop(){void 0!==this.timeoutId&&clearTimeout(this.timeoutId),this.worker.off("message",this.eventHandler),this.timeoutId=void 0}}},5119:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const o=i(r(6281));t.init=o.default},5809:e=>{e.exports=require("./config")},5994:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MainThread=void 0;const o=r(8167),n=r(2546),s=r(5809),a=r(8269),d=r(523),c=r(6281),g=i(r(7320));function l(){globalThis.hudInstrumentationOccured&&d.customer_logger.log(n.UserErrorLogs.YesInstrumentationNoMetrics())}t.MainThread=class{apiKey;service;startTime;tags;messenger;constructor(e,t,r,i){this.apiKey=e,this.service=t,this.startTime=r,this.tags=i,(0,a.storeCredentials)(e,t)}startFailed(e){e instanceof n.HudSessionThrottle?(d.customer_logger.log(n.UserLogs.InitIdleMode()),(0,c._detachAndTerminate)(!1,!1,!0)):e instanceof n.HudInitNetworkError&&e.originalAxiosErrorCode?(d.customer_logger.log((0,n.getNetworkError)(e.originalAxiosErrorCode)),d.app_logger.critical("Failed to start worker because of network error",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,c._detachAndTerminate)(!1,!1,!0)):(d.app_logger.critical("Failed to start worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,n.setFirstError)(e.code),(0,c._detachAndTerminate)(!0,!1,!0))}async _registerLambdaExtension(){const e=await(0,n.register)();return(0,a.setLambdaExtensionId)(e),e}async startMessenger(e){try{this.messenger=await this._createMessenger(e),await this._start(),d.customer_logger.log(n.UserLogs.HudInitSuccess())}catch(e){throw this.startFailed(e),e}}async start(){if(o.isMainThread)if(globalThis.hudRuningInsideLambda)try{const e=await this._registerLambdaExtension();d.app_logger.info("Lambda extension registered, not waiting for worker to start",{lambdaExtensionId:e}),(0,n.next)(e).then(async()=>{d.app_logger.info("Lambda got first event, creating messenger");try{await this.startMessenger(e)}catch{}})}catch(e){throw this.startFailed(e),e}else await this.startMessenger(void 0)}async _start(){if(!this.messenger)throw new n.HudInitError("Messenger not initialized");try{const e=await this.messenger.checkWorkerInitialized(s.hudConfig.workerTimeout),t=e?.content?.sessionInfo;t&&(0,a.storeSessionInfo)(t),await this._initDynamicConfig(),globalThis.hudMetricsIndicator=setTimeout(l,s.hudConfig.timeoutOnMetrics),globalThis.hudMetricsIndicator.unref()}catch(e){const t=e instanceof Error?e.message:void 0;if(e instanceof n.HudSessionThrottle)throw e;throw d.app_logger.critical("Failed to start worker",{msg:t}),e}await this.messenger.start()}async _createMessenger(e){const t=n.myRequire.resolve(`${s.SDK_MODULE_NAME}/worker`),r={...process.env};delete r.NODE_OPTIONS;const i=new o.Worker(t,{workerData:{apiKey:this.apiKey,service:this.service,startTime:this.startTime,tags:this.tags,lambdaExtensionId:e,shouldCreateDeclaraionWorker:!!e,userConfig:s.hudConfig.userConfig},execArgv:[],env:r});let a;try{a=new g.default(i),await a.checkWorker(s.hudConfig.workerTimeout)}catch(e){if(e instanceof n.HudSessionThrottle)throw d.app_logger.info("Worker started in idle mode - session throttled"),e;throw d.app_logger.critical("Worker failed to start",{msg:e instanceof Error?e.message:void 0}),e}finally{i.unref()}return a}async _initDynamicConfig(){const e=await(this.messenger?.getRemoteConfig());e?(d.app_logger.info("Remote configuration exists"),s.hudConfig.dynamicConfig=(0,s.updateDynamicConfig)(e,s.hudConfig,d.app_logger),(0,s.updateInvestigationRateLimitGlobals)(),d.app_logger.info("Current dynamic configuration:",{currentDynamicConfig:s.hudConfig.dynamicConfig})):d.app_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:s.hudConfig.dynamicConfig})}async terminateMessenger(){await(this.messenger?.terminateWorker()),this.messenger?.stop(),this.messenger=void 0}}},6261:e=>{e.exports=require("events")},6281:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t,r){try{if(!globalThis.hudRanOnRequire)return;if(globalThis.hudRunMutex)return void o.app_logger.warning("Already ran init!");if(globalThis.hudRunMutex=!0,(0,d.clearInitGuard)(),!o.app_logger.isValid()||!o.customer_logger.isValid())return(0,c.setFirstError)((new c.HudBadLoggerError).code),void h(!0,!0);(0,i.updateUserConfigFromInit)(e,t,r);const g=(0,d.validateAndGetUserInput)();if(!g)return;if(globalThis.hudRunningMode!==a.HudRunningMode.enabled)return void o.app_logger.critical("SDK running mode is not enabled - initialization aborted");if(o.app_logger.info("Initializing hud",{userConfig:Object.entries(s.hudConfig.userConfig).filter(([e,t])=>"DEFAULT"!==t.source)}),l=new n.MainThread(g.apiKey,g.service,globalThis.hudStartTime,s.hudConfig.userConfig.tags?.value),await l.start(),l.messenger&&(0,c.safeCall)(o.app_logger,l.messenger.handleLogsTask()),globalThis.hudImportStartTime){const e=process.uptime()-globalThis.hudImportStartTime;o.app_logger.info("Hud initialized",{importTime:e,startTime:globalThis.hudImportStartTime})}}catch(e){try{if(e instanceof c.HudSessionThrottle)return;o.app_logger.critical("Something went wrong in init",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}catch{o.app_logger.critical("Something went wrong in init & e.stack raised an exception")}h(!0,!1,!0)}},t.isValidParam=function(e){return null!=e&&""!==e&&"string"==typeof e},t._detachAndTerminate=h;const i=r(2546),o=r(523),n=r(5994),s=r(5809),a=r(8528),d=r(8269),c=r(2546),g=r(7274);let l,u=!1;function h(e=!0,t=!1,r=!1){(0,d.detachHud)(e,t),r&&(0,c.safeCall)(o.app_logger,(0,d.flushLogs)()),l&&(0,c.safeCall)(o.app_logger,l.terminateMessenger());const n=(0,d.getLambdaExtensionId)();n&&!u&&(u=!0,(0,c.safeCall)(o.app_logger,(0,i.nextLoopDummy)(n))),(0,d.clearUserIndicatorsTimeouts)(),(0,g.resetCallers)()}},6460:e=>{e.exports=require("timers/promises")},7131:e=>{e.exports=require("./wrap")},7274:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t._liftExceptions=s,t.prepCalls=function(e,t){const r=(new Date).toISOString(),n=[];return Object.entries(hudCalls).map(([i,a])=>{Object.entries(a).forEach(([a,d])=>{Object.entries(d).forEach(([d,c])=>{try{if(0===c.sampledCount)return;const o={function_id:i,wrapped_flow_id:d||void 0,wrapped_caller_id:a||void 0,timestamp:r,timeslice:e,exceptions:s(c.exceptions),count:c.count-c.lastSentCounter,sampled_count:c.sampledCount,sum_duration:c.sum,sum_squared_duration:c.squareSum,sketch:c.sketch?t.encode(c.sketch):void 0,is_linked_function:c.isLinkedFunction};n.push(o),function(e){e.lastSentCounter=e.count,e.sampledCount=0,e.sum=0,e.squareSum=0,e.sketch=null,e.exceptions={}}(c)}catch(e){o.app_logger.error("Failed preparing invocation, skipping",{func:i,wrappedCaller:a,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})})}),n.length>0&&(0,i.clearMetricsIndicator)(),n},t.resetCallers=function(){for(const e in globalThis.hudCalls)for(const t in globalThis.hudCalls[e])for(const r in globalThis.hudCalls[e][t])n(globalThis.hudCalls[e][t][r])};const i=r(8269),o=r(523);function n(e){e.lastSentCounter-=e.count,e.count=0}function s(e){const t={};for(const r in e)t[r]=[{count:e[r]}];return t}},7320:function(e,t,r){var i,o=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),s=0;s<r.length;s++)"default"!==r[s]&&o(t,e,r[s]);return n(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=s(r(523)),d=s(r(6460)),c=r(5809),g=r(2546),l=r(8528),u=r(2546),h=r(7131),f=r(8269),m=r(2546),p=r(7274),v=r(2702),k=r(8269),w=r(2546),y=r(6281),C=r(2546),b=r(6261),_=a.app_logger,E=m.safeCall.bind(m.safeCall,_);t.default=class{worker;tsNodeUpdated=!1;staticNextJsEndpointsSent=!1;abortController;workerKeepaliveGuard;constructor(e){this.worker=e,this.abortController=new AbortController,(0,b.setMaxListeners)(20,this.abortController.signal),this.worker.on("error",this.handleWorkerError).unref(),this.workerKeepaliveGuard=new v.WorkerKeepaliveGuard(e,c.hudConfig.communicationKeepaliveGrace),this._updateTsNodeConfig()&&_.info("ts-node config updated from Messenger constructor")}handleWorkerError=e=>{try{e?.code===(new m.HudClientUnauthorizedError).code&&a.customer_logger.log(m.UserErrorLogs.ApiKeyDenied(c.hudConfig.userConfig.key?.source)),_.critical("Error from worker, stopping hud",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,m.setFirstError)(e?.code),this.stop(),(0,y._detachAndTerminate)(!0,!1,!0)}catch(e){_.critical("Error stopping hud after worker crash",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};stop(){this.abortWorker(),c.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.abortController.abort(),this.abortController=new AbortController,(0,f.resetGlobals)()}abortWorker(){this._sendObject("Abort",{})}async restart(e){this.stop(),globalThis.hudRunningMode=e,await this.start()}_sendArray(e,t){t.length>0&&(this._sendObject(e,t),_.debug("sent data to worker",{msg:e,size:t.length}))}_sendObject(e,t){const r={msg:e,content:t};this.worker.postMessage(r)}async checkWorker(e){const t=["started"];let r;try{r=await this.getMessageFromWorker(t,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;r=await this.getMessageFromWorker(t,e/2,!1)}if(!r)throw new m.HudInitError("Worker not started");return r}async checkWorkerInitialized(e){let t;const r=["initialized","throttled","networkError"];try{t=await this.getMessageFromWorker(r,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;t=await this.getMessageFromWorker(r,e/10,!1)}if("throttled"===t?.msg)throw new m.HudSessionThrottle;if("networkError"===t?.msg)throw _.error("networkError",{error:t.content.error}),new m.HudInitNetworkError(t.content.message,t.content.originalMessage);if(!t||"initialized"!==t?.msg||void 0===t?.content)throw new m.HudInitError("Worker not initialized successfully");if(t?.content.status!==l.HudSessionInitStatus.success)throw new m.HudInitError("Worker not initialized successfully");return t}async start(){switch(c.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.start(),globalThis.hudRunningMode){case l.HudRunningMode.enabled:_.info("Enabled mode"),E(this.getMode()),E(this.startPeriodicTasks()),E(this.periodicSendMetrics()),E(this.highFrequencySendInvestigations()),E(this.periodicSendProcessedFiles()),E(this.periodicSendEndpoints()),E(this.periodicSendLazyEndpoints()),E(this.periodicSendKafkaJS()),E(this.periodicSendSqs()),E(this.sendStaticNextJsEndpointsOnce()),E(this.periodicSaveMachineMetrics()),E(this.periodicSendReingest()),E(this.resetCallerCounters()),E(this.periodicResetGlobalInvestigationCounter()),E(this.periodicResetInvestigationDedupingCache()),E(this.sendLogsPeriodically(c.hudConfig.logsSendInterval)),E(this.sendRuntime()),E(this.sendPatchedModules()),E(this.sendPreloadedModules()),E(this.dumpModulesAfterWhile(6e4)),E((0,m.loopLogThreadPerformance)(_,c.hudConfig.logPerfInterval,this.abortController.signal));break;case l.HudRunningMode.disabled:_.info("Disabled mode"),E(this.getMode());break;case l.HudRunningMode.detached:_.info("Detached"),(0,y._detachAndTerminate)(!1,!1),this.stop();break;default:_.error("Running mode not handled")}}async getMessageFromWorker(e,t,r=!1,i){let o;e=Array.isArray(e)?e:[e];const n=new AbortController,s=()=>{n.abort()};this.abortController.signal.addEventListener("abort",s);const a=d.setTimeout(t,void 0,{signal:n.signal,ref:r}),c=t=>{try{e.includes(t.msg)&&(o=t,n.abort(),_.info("Received message from worker (canceling timeout)",t))}catch(e){_.error("Failed handling message from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};this.worker.on("message",c).unref(),i&&this.worker.postMessage(i);try{throw await a,_.warning("Timeout waiting for message from worker"),new m.HudTimeoutError}catch(e){if(!(0,m.isAbortError)(e))throw(0,m.setFirstError)(e.code),e}finally{this.abortController.signal.removeEventListener("abort",s),this.worker.off("message",c)}return o}async getMode(){for await(const e of(0,u.unrefSetInterval)(c.hudConfig.modeInterval,void 0,{signal:this.abortController.signal}))try{const e={msg:"GetMode",content:{startTime:globalThis.hudStartTime,runningMode:globalThis.hudRunningMode}},t=await this.getMessageFromWorker(e.msg,c.hudConfig.workerMessageTimeout,!1,e);if(t?.msg!==e.msg||void 0===t?.content.mode){_.error("Unexpected message from worker",t);continue}t.content.mode!==globalThis.hudRunningMode&&await this.restart(t?.content.mode)}catch(e){_.error("Failed getting mode from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async getRemoteConfig(){const e="initDynamicConfig";try{const t=await this.getMessageFromWorker(e,c.hudConfig.workerMessageTimeout,!0);if(t?.msg!==e||void 0===t?.content)throw new Error(`Unexpected message from worker: ${t}`);return t?.content}catch(e){_.error("Failed getting remote configuration from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicSaveMachineMetrics(){(0,f.saveMachineMetric)();for await(const e of(0,u.unrefSetInterval)(c.hudConfig.dynamicConfig.machineMetricsInterval,void 0,{signal:this.abortController.signal}))(0,f.saveMachineMetric)()}async resetCallerCounters(){const e=c.hudConfig.callerResetInterval;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting caller",{interval:e}),(0,p.resetCallers)()}catch(e){_.error("Failed reseting caller counters",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicSendProcessedFiles(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;let r=!0;await this.setupPeriodicTask(e,t,()=>{if(r){r=!1;try{this._updateTsNodeConfig()&&_.info("ts-node config updated from periodicSendProcessedFiles")}catch{return!1}}const e=function(){const e=globalThis.hudProcessedFiles;return globalThis.hudProcessedFiles=[],e}();return this._sendArray("ProcessedFiles",e),!0},"periodicSendProcessedFiles")}async periodicSendKafkaJS(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{const e=(0,k.getKafkaJSTopics)();return this._sendArray("KafkaJSTopics",e),!0},"periodicSendKafkaJS")}async periodicSendSqs(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{const e=(0,k.getSqsQueues)();return e.length>0&&this._sendArray("SqsQueue",e),!0},"periodicSendSqs")}async periodicSendMetrics(){const e=new h.SketchManager(c.hudConfig.huddBinWidth),t=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,r=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(t,r,t=>{try{this.refreshInvestigations()}catch(e){_.error("Failed sending investigations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{const r=(0,p.prepCalls)(t,e);r.length>0&&this._sendArray("Invocations",r)}catch(e){_.error("Failed sending invocations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{const e=(0,f.getFlowMetrics)(t);Object.keys(e).length>0&&this._sendObject("FlowMetrics",{aggregatedMetrics:e})}catch(e){_.error("Failed sending flow metrics",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"periodicSendMetrics")}async highFrequencySendInvestigations(){if(!c.hudConfig.dynamicConfig.enableInvestigation)return;const e=c.hudConfig.dynamicConfig.investigationFirstSendTimeout,t=c.hudConfig.dynamicConfig.investigationInterval;await this.setupPeriodicTask(e,t,()=>(this.refreshInvestigations(),!0),"highFrequencySendInvestigations")}refreshInvestigations(){const e=(0,k.getClosedInvestigations)();e.length>0&&this._sendArray("Investigations",e)}async periodicSendEndpoints(){const e=c.hudConfig.endpointsFirstSendWaitTime,t=c.hudConfig.endpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendEndpoints(),!0),"periodicSendEndpoints")}async periodicSendLazyEndpoints(){const e=c.hudConfig.endpointsFirstSendWaitTime,t=c.hudConfig.lazyEndpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendLazyEndpoints(),!0),"periodicSendLazyEndpoints")}sendLazyEndpoints(){const e=(0,k.getExpressEndpointDeclarations)().map(e=>({path:e.path,methods:e.methods,flow_id:e.flow_id,framework:e.framework,partial_path:e.partial_path}));this._sendArray("EndpointDeclaration",e)}sendEndpoints(){const e=(0,f.getEndpointDeclarationsFromStorage)().map(e=>({path:e.path,methods:e.methods,flow_id:e.flow_id,framework:e.framework,partial_path:e.partial_path}));this._sendArray("EndpointDeclaration",e)}async terminateWorker(){try{const e=(0,w.suppressTraces)(a.renewFileTransports),t=a.getSavedLogs(),r=e();await this.getMessageFromWorker("terminated",c.hudConfig.workerGrace,!1,{msg:"Terminate",content:{grace:c.hudConfig.workerGrace,logBuffers:t,logFiles:Array.from(r)}})}catch(e){if(!(e instanceof m.HudTimeoutError))throw _.critical("Unexpected error during worker termination",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),await this.worker.terminate(),e;_.critical("Grace period timeout - terminating worker",{error:e.message}),await this.worker.terminate()}_.info("Worker terminated successfully.")}async sendRuntime(){const e={nodeVersion:process.version,nodeDependencyVersions:process.versions,platform:process.platform,architecture:process.arch,pid:process.pid,cwd:process.cwd(),execPath:process.execPath,execArgv:process.execArgv,argv:process.argv,uptime:process.uptime(),mainModulePath:r.c[r.s]?.filename};this._sendObject("Runtime",e)}async startPeriodicTasks(){this._sendObject("StartPeriodicTasks",{})}async sendPreloadedModules(){globalThis.hudLoadedModules?this._sendObject("PreInitLoadedModules",{modules:globalThis.hudLoadedModules}):_.warning("Didn't get module, weird....")}async dumpModulesAfterWhile(e){await(0,u.unrefSetTimeout)(e,void 0,{signal:this.abortController.signal});const t=Object.keys(w.myRequire.cache);this._sendObject("PostInitLoadedModules",{modules:t})}async sendPatchedModules(){if(!globalThis.hudPatched)return void _.error("Cant find patched modules");const e=Array.from(globalThis.hudPatched);this._sendObject("PatchedModules",{modules:e})}async handleLogsTask(){try{const e=(0,w.suppressTraces)(a.renewFileTransports),t=a.getSavedLogs();for(const e of t)try{this._sendObject("Logs",{logs:e})}catch(e){_.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const r=e();r.size>0&&this._sendObject("LogFilename",{filenames:r})}catch(e){_.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async sendLogsPeriodically(e){for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))await this.handleLogsTask()}async setupPeriodicTask(e,t,r,i){function o(e){let t=!0;try{t=r(e)}catch(e){_.error("Failed in periodic task",{taskName:i,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t}if(await(0,u.unrefSetTimeout)(e,void 0,{signal:this.abortController.signal}),o(e)){for await(const e of(0,u.unrefSetInterval)(t,void 0,{signal:this.abortController.signal}))if(!o(t))return void _.warning("Periodic task failed, stopping task",{firstRun:!1,taskName:i})}else _.warning("Periodic task failed, stopping task",{firstRun:!0,taskName:i})}async periodicResetGlobalInvestigationCounter(){const e=c.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting global investigation counter",{interval:e}),(0,k.setGlobalInvestigationTracking)(0)}catch(e){_.error("Failed resetting global investigation counter",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicResetInvestigationDedupingCache(){const e=c.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting investigation deduping cache",{interval:e}),(0,k.resetInvestigationDedupingCache)()}catch(e){_.error("Failed resetting investigation deduping cache",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}_updateTsNodeConfig(){if(this.tsNodeUpdated)return!1;try{const e=(0,C.getUserTsNodeConfig)();return!!e&&(this.tsNodeUpdated=!0,_.info("tsconfig found, sending config to worker"),this._sendObject("TsNodeConfig",{tsConfig:e}),!0)}catch(e){throw this.tsNodeUpdated=!0,this.stop(),e instanceof m.HudError&&(0,m.setFirstError)(e.code),(0,y._detachAndTerminate)(!1),e}}async sendStaticNextJsEndpointsOnce(){if(!(0,g.isNextJsApp)())return;const e=c.hudConfig.staticNextJsEndpointsInterval,t=c.hudConfig.staticNextJsEndpointsMaxAttempts;let r=0;for await(const i of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal})){if(r++,_.debug("Attempting to send static next.js endpoints",{attemptCount:r}),(0,k.isNextConfigExtracted)()&&!this.staticNextJsEndpointsSent){_.info("Sending static next.js endpoints",{isNextConfigExtracted:(0,k.isNextConfigExtracted)()}),this.staticNextJsEndpointsSent=!0;const e=(0,k.getNextConfig)();this._sendObject("StaticNextJsEndpoints",{NextConfig:JSON.stringify(e)});break}if(r>t){_.warning("Exceeded max attempts to send static next.js endpoints",{isNextConfigExtracted:(0,k.isNextConfigExtracted)(),attemptCount:r});break}}}async periodicSendReingest(){for await(const e of(0,u.unrefSetInterval)(c.hudConfig.dynamicConfig.reingestInterval,void 0,{signal:this.abortController.signal})){const e=(0,f.getAndClearReingestValues)();e.size>0&&this._sendArray("Reingest",Array.from(e))}}}},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")}},t={};function r(i){var o=t[i];if(void 0!==o)return o.exports;var n=t[i]={exports:{}};return e[i].call(n.exports,n,n.exports,r),n.exports}return r.c=t,r(r.s=5119)})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},2546:e=>{e.exports=require("./lib")},2702:function(e,t,r){var i,o=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),s=0;s<r.length;s++)"default"!==r[s]&&o(t,e,r[s]);return n(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerKeepaliveGuard=void 0;const a=s(r(523)),d=r(8528),c=a.app_logger;t.WorkerKeepaliveGuard=class{worker;keepaliveGrace;timeoutId=void 0;eventHandler=this.keepalive.bind(this);constructor(e,t){this.worker=e,this.keepaliveGrace=t}keepalive(e){try{if(e.msg!==d.KeepAliveMessage.msg)return;this._restartTimeout()}catch(e){c.error("Error in keepalive",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}_restartTimeout(){const e=setTimeout(()=>{},this.keepaliveGrace);clearTimeout(this.timeoutId),this.timeoutId=e}start(){this.stop(),this.worker.on("message",this.eventHandler).unref()}stop(){void 0!==this.timeoutId&&clearTimeout(this.timeoutId),this.worker.off("message",this.eventHandler),this.timeoutId=void 0}}},5119:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.init=void 0;const o=i(r(6281));t.init=o.default},5809:e=>{e.exports=require("./config")},5994:function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MainThread=void 0;const o=r(8167),n=r(2546),s=r(5809),a=r(8269),d=r(523),c=r(6281),g=i(r(7320));function l(){globalThis.hudInstrumentationOccured&&d.customer_logger.log(n.UserErrorLogs.YesInstrumentationNoMetrics())}t.MainThread=class{apiKey;service;startTime;tags;messenger;constructor(e,t,r,i){this.apiKey=e,this.service=t,this.startTime=r,this.tags=i,(0,a.storeCredentials)(e,t)}startFailed(e){e instanceof n.HudSessionThrottle?(d.customer_logger.log(n.UserLogs.InitIdleMode()),(0,c._detachAndTerminate)(!1,!1,!0)):e instanceof n.HudInitNetworkError&&e.originalAxiosErrorCode?(d.customer_logger.log((0,n.getNetworkError)(e.originalAxiosErrorCode)),d.app_logger.critical("Failed to start worker because of network error",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,c._detachAndTerminate)(!1,!1,!0)):(d.app_logger.critical("Failed to start worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,n.setFirstError)(e.code),(0,c._detachAndTerminate)(!0,!1,!0))}async _registerLambdaExtension(){const e=await(0,n.register)();return(0,a.setLambdaExtensionId)(e),e}async startMessenger(e){try{this.messenger=await this._createMessenger(e),await this._start(),d.customer_logger.log(n.UserLogs.HudInitSuccess())}catch(e){throw this.startFailed(e),e}}async start(){if(o.isMainThread)if(globalThis.hudRuningInsideLambda)try{const e=await this._registerLambdaExtension();d.app_logger.info("Lambda extension registered, not waiting for worker to start",{lambdaExtensionId:e}),(0,n.next)(e).then(async()=>{d.app_logger.info("Lambda got first event, creating messenger");try{await this.startMessenger(e)}catch{}})}catch(e){throw this.startFailed(e),e}else await this.startMessenger(void 0)}async _start(){if(!this.messenger)throw new n.HudInitError("Messenger not initialized");try{const e=await this.messenger.checkWorkerInitialized(s.hudConfig.workerTimeout),t=e?.content?.sessionInfo;t&&(0,a.storeSessionInfo)(t),await this._initDynamicConfig(),globalThis.hudMetricsIndicator=setTimeout(l,s.hudConfig.timeoutOnMetrics),globalThis.hudMetricsIndicator.unref()}catch(e){const t=e instanceof Error?e.message:void 0;if(e instanceof n.HudSessionThrottle)throw e;throw d.app_logger.critical("Failed to start worker",{msg:t}),e}await this.messenger.start()}async _createMessenger(e){const t=n.myRequire.resolve(`${s.SDK_MODULE_NAME}/worker`),r={...process.env};delete r.NODE_OPTIONS;const i=new o.Worker(t,{workerData:{apiKey:this.apiKey,service:this.service,startTime:this.startTime,tags:this.tags,lambdaExtensionId:e,shouldCreateDeclaraionWorker:!!e,userConfig:s.hudConfig.userConfig},execArgv:[],env:r});let a;try{a=new g.default(i),await a.checkWorker(s.hudConfig.workerTimeout)}catch(e){if(e instanceof n.HudSessionThrottle)throw d.app_logger.info("Worker started in idle mode - session throttled"),e;throw d.app_logger.critical("Worker failed to start",{msg:e instanceof Error?e.message:void 0}),e}finally{i.unref()}return a}async _initDynamicConfig(){const e=await(this.messenger?.getRemoteConfig());e?(d.app_logger.info("Remote configuration exists"),s.hudConfig.dynamicConfig=(0,s.updateDynamicConfig)(e,s.hudConfig,d.app_logger),(0,s.updateInvestigationRateLimitGlobals)(),d.app_logger.info("Current dynamic configuration:",{currentDynamicConfig:s.hudConfig.dynamicConfig})):d.app_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:s.hudConfig.dynamicConfig})}async terminateMessenger(){await(this.messenger?.terminateWorker()),this.messenger?.stop(),this.messenger=void 0}}},6261:e=>{e.exports=require("events")},6281:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t,r){try{if(!globalThis.hudRanOnRequire)return;if(globalThis.hudRunMutex)return void o.app_logger.warning("Already ran init!");if(globalThis.hudRunMutex=!0,(0,d.clearInitGuard)(),!o.app_logger.isValid()||!o.customer_logger.isValid())return(0,c.setFirstError)((new c.HudBadLoggerError).code),void h(!0,!0);(0,i.updateUserConfigFromInit)(e,t,r);const g=(0,d.validateAndGetUserInput)();if(!g)return;if(globalThis.hudRunningMode!==a.HudRunningMode.enabled)return void o.app_logger.critical("SDK running mode is not enabled - initialization aborted");if(o.app_logger.info("Initializing hud",{userConfig:Object.entries(s.hudConfig.userConfig).filter(([e,t])=>"DEFAULT"!==t.source)}),l=new n.MainThread(g.apiKey,g.service,globalThis.hudStartTime,s.hudConfig.userConfig.tags?.value),await l.start(),l.messenger&&(0,c.safeCall)(o.app_logger,l.messenger.handleLogsTask()),globalThis.hudImportStartTime){const e=process.uptime()-globalThis.hudImportStartTime;o.app_logger.info("Hud initialized",{importTime:e,startTime:globalThis.hudImportStartTime})}}catch(e){try{if(e instanceof c.HudSessionThrottle)return;o.app_logger.critical("Something went wrong in init",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}catch{o.app_logger.critical("Something went wrong in init & e.stack raised an exception")}h(!0,!1,!0)}},t.isValidParam=function(e){return null!=e&&""!==e&&"string"==typeof e},t._detachAndTerminate=h;const i=r(2546),o=r(523),n=r(5994),s=r(5809),a=r(8528),d=r(8269),c=r(2546),g=r(7274);let l,u=!1;function h(e=!0,t=!1,r=!1){(0,d.detachHud)(e,t),r&&(0,c.safeCall)(o.app_logger,(0,d.flushLogs)()),l&&(0,c.safeCall)(o.app_logger,l.terminateMessenger());const n=(0,d.getLambdaExtensionId)();n&&!u&&(u=!0,(0,c.safeCall)(o.app_logger,(0,i.nextLoopDummy)(n))),(0,d.clearUserIndicatorsTimeouts)(),(0,g.resetCallers)()}},6460:e=>{e.exports=require("timers/promises")},7131:e=>{e.exports=require("./wrap")},7274:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t._liftExceptions=s,t.prepCalls=function(e,t){const r=(new Date).toISOString(),n=[];return Object.entries(hudCalls).map(([i,a])=>{Object.entries(a).forEach(([a,d])=>{Object.entries(d).forEach(([d,c])=>{try{if(0===c.sampledCount)return;const o={function_id:i,wrapped_flow_id:d||void 0,wrapped_caller_id:a||void 0,timestamp:r,timeslice:e,exceptions:s(c.exceptions),count:c.count-c.lastSentCounter,sampled_count:c.sampledCount,sum_duration:c.sum,sum_squared_duration:c.squareSum,sketch:c.sketch?t.encode(c.sketch):void 0,is_linked_function:c.isLinkedFunction};n.push(o),function(e){e.lastSentCounter=e.count,e.sampledCount=0,e.sum=0,e.squareSum=0,e.sketch=null,e.exceptions={}}(c)}catch(e){o.app_logger.error("Failed preparing invocation, skipping",{func:i,wrappedCaller:a,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})})}),n.length>0&&(0,i.clearMetricsIndicator)(),n},t.resetCallers=function(){for(const e in globalThis.hudCalls)for(const t in globalThis.hudCalls[e])for(const r in globalThis.hudCalls[e][t])n(globalThis.hudCalls[e][t][r])};const i=r(8269),o=r(523);function n(e){e.lastSentCounter-=e.count,e.count=0}function s(e){const t={};for(const r in e)t[r]=[{count:e[r]}];return t}},7320:function(e,t,r){var i,o=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,i,o)}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=i(e),s=0;s<r.length;s++)"default"!==r[s]&&o(t,e,r[s]);return n(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=s(r(523)),d=s(r(6460)),c=r(5809),g=r(2546),l=r(8528),u=r(2546),h=r(7131),f=r(8269),m=r(2546),p=r(7274),v=r(2702),k=r(8269),w=r(2546),y=r(6281),C=r(2546),b=r(6261),_=a.app_logger,E=m.safeCall.bind(m.safeCall,_);t.default=class{worker;tsNodeUpdated=!1;staticNextJsEndpointsSent=!1;abortController;workerKeepaliveGuard;constructor(e){this.worker=e,this.abortController=new AbortController,(0,b.setMaxListeners)(20,this.abortController.signal),this.worker.on("error",this.handleWorkerError).unref(),this.workerKeepaliveGuard=new v.WorkerKeepaliveGuard(e,c.hudConfig.communicationKeepaliveGrace),this._updateTsNodeConfig()&&_.info("ts-node config updated from Messenger constructor")}handleWorkerError=e=>{try{e?.code===(new m.HudClientUnauthorizedError).code&&a.customer_logger.log(m.UserErrorLogs.ApiKeyDenied(c.hudConfig.userConfig.key?.source)),_.critical("Error from worker, stopping hud",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,m.setFirstError)(e?.code),this.stop(),(0,y._detachAndTerminate)(!0,!1,!0)}catch(e){_.critical("Error stopping hud after worker crash",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};stop(){this.abortWorker(),c.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.abortController.abort(),this.abortController=new AbortController,(0,f.resetGlobals)()}abortWorker(){this._sendObject("Abort",{})}async restart(e){this.stop(),globalThis.hudRunningMode=e,await this.start()}_sendArray(e,t){t.length>0&&(this._sendObject(e,t),_.debug("sent data to worker",{msg:e,size:t.length}))}_sendObject(e,t){const r={msg:e,content:t};this.worker.postMessage(r)}async checkWorker(e){const t=["started"];let r;try{r=await this.getMessageFromWorker(t,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;r=await this.getMessageFromWorker(t,e/2,!1)}if(!r)throw new m.HudInitError("Worker not started");return r}async checkWorkerInitialized(e){let t;const r=["initialized","throttled","networkError"];try{t=await this.getMessageFromWorker(r,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;t=await this.getMessageFromWorker(r,e/10,!1)}if("throttled"===t?.msg)throw new m.HudSessionThrottle;if("networkError"===t?.msg)throw _.error("networkError",{error:t.content.error}),new m.HudInitNetworkError(t.content.message,t.content.originalMessage);if(!t||"initialized"!==t?.msg||void 0===t?.content)throw new m.HudInitError("Worker not initialized successfully");if(t?.content.status!==l.HudSessionInitStatus.success)throw new m.HudInitError("Worker not initialized successfully");return t}async start(){switch(c.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.start(),globalThis.hudRunningMode){case l.HudRunningMode.enabled:_.info("Enabled mode"),E(this.getMode()),E(this.startPeriodicTasks()),E(this.periodicSendMetrics()),E(this.highFrequencySendInvestigations()),E(this.periodicSendProcessedFiles()),E(this.periodicSendEndpoints()),E(this.periodicSendLazyEndpoints()),E(this.periodicSendKafkaJS()),E(this.periodicSendSqs()),E(this.sendStaticNextJsEndpointsOnce()),E(this.periodicSaveMachineMetrics()),E(this.periodicSendReingest()),E(this.resetCallerCounters()),E(this.periodicResetGlobalInvestigationCounter()),E(this.periodicResetInvestigationDedupingCache()),E(this.sendLogsPeriodically(c.hudConfig.logsSendInterval)),E(this.sendRuntime()),E(this.sendPatchedModules()),E(this.sendPreloadedModules()),E(this.dumpModulesAfterWhile(6e4)),E((0,m.loopLogThreadPerformance)(_,c.hudConfig.logPerfInterval,this.abortController.signal));break;case l.HudRunningMode.disabled:_.info("Disabled mode"),E(this.getMode());break;case l.HudRunningMode.detached:_.info("Detached"),(0,y._detachAndTerminate)(!1,!1),this.stop();break;default:_.error("Running mode not handled")}}async getMessageFromWorker(e,t,r=!1,i){let o;e=Array.isArray(e)?e:[e];const n=new AbortController,s=()=>{n.abort()};this.abortController.signal.addEventListener("abort",s);const a=d.setTimeout(t,void 0,{signal:n.signal,ref:r}),c=t=>{try{e.includes(t.msg)&&(o=t,n.abort(),_.info("Received message from worker (canceling timeout)",t))}catch(e){_.error("Failed handling message from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};this.worker.on("message",c).unref(),i&&this.worker.postMessage(i);try{throw await a,_.warning("Timeout waiting for message from worker"),new m.HudTimeoutError}catch(e){if(!(0,m.isAbortError)(e))throw(0,m.setFirstError)(e.code),e}finally{this.abortController.signal.removeEventListener("abort",s),this.worker.off("message",c)}return o}async getMode(){for await(const e of(0,u.unrefSetInterval)(c.hudConfig.modeInterval,void 0,{signal:this.abortController.signal}))try{const e={msg:"GetMode",content:{startTime:globalThis.hudStartTime,runningMode:globalThis.hudRunningMode}},t=await this.getMessageFromWorker(e.msg,c.hudConfig.workerMessageTimeout,!1,e);if(t?.msg!==e.msg||void 0===t?.content.mode){_.error("Unexpected message from worker",t);continue}t.content.mode!==globalThis.hudRunningMode&&await this.restart(t?.content.mode)}catch(e){_.error("Failed getting mode from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async getRemoteConfig(){const e="initDynamicConfig";try{const t=await this.getMessageFromWorker(e,c.hudConfig.workerMessageTimeout,!0);if(t?.msg!==e||void 0===t?.content)throw new Error(`Unexpected message from worker: ${t}`);return t?.content}catch(e){_.error("Failed getting remote configuration from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicSaveMachineMetrics(){(0,f.saveMachineMetric)();for await(const e of(0,u.unrefSetInterval)(c.hudConfig.dynamicConfig.machineMetricsInterval,void 0,{signal:this.abortController.signal}))(0,f.saveMachineMetric)()}async resetCallerCounters(){const e=c.hudConfig.callerResetInterval;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting caller",{interval:e}),(0,p.resetCallers)()}catch(e){_.error("Failed reseting caller counters",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicSendProcessedFiles(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;let r=!0;await this.setupPeriodicTask(e,t,()=>{if(r){r=!1;try{this._updateTsNodeConfig()&&_.info("ts-node config updated from periodicSendProcessedFiles")}catch{return!1}}const e=function(){const e=globalThis.hudProcessedFiles;return globalThis.hudProcessedFiles=[],e}();return this._sendArray("ProcessedFiles",e),!0},"periodicSendProcessedFiles")}async periodicSendKafkaJS(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{const e=(0,k.getKafkaJSTopics)();return this._sendArray("KafkaJSTopics",e),!0},"periodicSendKafkaJS")}async periodicSendSqs(){const e=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{const e=(0,k.getSqsQueues)();return e.length>0&&this._sendArray("SqsQueue",e),!0},"periodicSendSqs")}async periodicSendMetrics(){const e=new h.SketchManager(c.hudConfig.huddBinWidth),t=c.hudConfig.dynamicConfig.aggregationFirstSendTimeout,r=c.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(t,r,t=>{try{this.refreshInvestigations()}catch(e){_.error("Failed sending investigations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{const r=(0,p.prepCalls)(t,e);r.length>0&&this._sendArray("Invocations",r)}catch(e){_.error("Failed sending invocations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{const e=(0,f.getFlowMetrics)(t);Object.keys(e).length>0&&this._sendObject("FlowMetrics",{aggregatedMetrics:e})}catch(e){_.error("Failed sending flow metrics",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"periodicSendMetrics")}async highFrequencySendInvestigations(){if(!c.hudConfig.dynamicConfig.enableInvestigation)return;const e=c.hudConfig.dynamicConfig.investigationFirstSendTimeout,t=c.hudConfig.dynamicConfig.investigationInterval;await this.setupPeriodicTask(e,t,()=>(this.refreshInvestigations(),!0),"highFrequencySendInvestigations")}refreshInvestigations(){const e=(0,k.getClosedInvestigations)();e.length>0&&this._sendArray("Investigations",e)}async periodicSendEndpoints(){const e=c.hudConfig.endpointsFirstSendWaitTime,t=c.hudConfig.endpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendEndpoints(),!0),"periodicSendEndpoints")}async periodicSendLazyEndpoints(){const e=c.hudConfig.endpointsFirstSendWaitTime,t=c.hudConfig.lazyEndpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendLazyEndpoints(),!0),"periodicSendLazyEndpoints")}sendLazyEndpoints(){const e=(0,k.getExpressEndpointDeclarations)().map(e=>({path:e.path,methods:e.methods,flow_id:e.flow_id,framework:e.framework,partial_path:e.partial_path}));this._sendArray("EndpointDeclaration",e)}sendEndpoints(){const e=(0,f.getEndpointDeclarationsFromStorage)().map(e=>({path:e.path,methods:e.methods,flow_id:e.flow_id,framework:e.framework,partial_path:e.partial_path}));this._sendArray("EndpointDeclaration",e)}async terminateWorker(){try{const e=a.getSavedLogs();await this.getMessageFromWorker("terminated",c.hudConfig.workerGrace,!1,{msg:"Terminate",content:{grace:c.hudConfig.workerGrace,logBuffers:e}})}catch(e){if(!(e instanceof m.HudTimeoutError))throw _.critical("Unexpected error during worker termination",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),await this.worker.terminate(),e;_.critical("Grace period timeout - terminating worker",{error:e.message}),await this.worker.terminate()}_.info("Worker terminated successfully.")}async sendRuntime(){const e={nodeVersion:process.version,nodeDependencyVersions:process.versions,platform:process.platform,architecture:process.arch,pid:process.pid,cwd:process.cwd(),execPath:process.execPath,execArgv:process.execArgv,argv:process.argv,uptime:process.uptime(),mainModulePath:r.c[r.s]?.filename};this._sendObject("Runtime",e)}async startPeriodicTasks(){this._sendObject("StartPeriodicTasks",{})}async sendPreloadedModules(){globalThis.hudLoadedModules?this._sendObject("PreInitLoadedModules",{modules:globalThis.hudLoadedModules}):_.warning("Didn't get module, weird....")}async dumpModulesAfterWhile(e){await(0,u.unrefSetTimeout)(e,void 0,{signal:this.abortController.signal});const t=Object.keys(w.myRequire.cache);this._sendObject("PostInitLoadedModules",{modules:t})}async sendPatchedModules(){if(!globalThis.hudPatched)return void _.error("Cant find patched modules");const e=Array.from(globalThis.hudPatched);this._sendObject("PatchedModules",{modules:e})}async handleLogsTask(){try{const e=a.getSavedLogs();for(const t of e)try{this._sendObject("Logs",{logs:t})}catch(e){_.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch(e){_.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async sendLogsPeriodically(e){for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))await this.handleLogsTask()}async setupPeriodicTask(e,t,r,i){function o(e){let t=!0;try{t=r(e)}catch(e){_.error("Failed in periodic task",{taskName:i,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t}if(await(0,u.unrefSetTimeout)(e,void 0,{signal:this.abortController.signal}),o(e)){for await(const e of(0,u.unrefSetInterval)(t,void 0,{signal:this.abortController.signal}))if(!o(t))return void _.warning("Periodic task failed, stopping task",{firstRun:!1,taskName:i})}else _.warning("Periodic task failed, stopping task",{firstRun:!0,taskName:i})}async periodicResetGlobalInvestigationCounter(){const e=c.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting global investigation counter",{interval:e}),(0,k.setGlobalInvestigationTracking)(0)}catch(e){_.error("Failed resetting global investigation counter",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicResetInvestigationDedupingCache(){const e=c.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs;for await(const t of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal}))try{_.info("Resetting investigation deduping cache",{interval:e}),(0,k.resetInvestigationDedupingCache)()}catch(e){_.error("Failed resetting investigation deduping cache",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}_updateTsNodeConfig(){if(this.tsNodeUpdated)return!1;try{const e=(0,C.getUserTsNodeConfig)();return!!e&&(this.tsNodeUpdated=!0,_.info("tsconfig found, sending config to worker"),this._sendObject("TsNodeConfig",{tsConfig:e}),!0)}catch(e){throw this.tsNodeUpdated=!0,this.stop(),e instanceof m.HudError&&(0,m.setFirstError)(e.code),(0,y._detachAndTerminate)(!1),e}}async sendStaticNextJsEndpointsOnce(){if(!(0,g.isNextJsApp)())return;const e=c.hudConfig.staticNextJsEndpointsInterval,t=c.hudConfig.staticNextJsEndpointsMaxAttempts;let r=0;for await(const i of(0,u.unrefSetInterval)(e,void 0,{signal:this.abortController.signal})){if(r++,_.debug("Attempting to send static next.js endpoints",{attemptCount:r}),(0,k.isNextConfigExtracted)()&&!this.staticNextJsEndpointsSent){_.info("Sending static next.js endpoints",{isNextConfigExtracted:(0,k.isNextConfigExtracted)()}),this.staticNextJsEndpointsSent=!0;const e=(0,k.getNextConfig)();this._sendObject("StaticNextJsEndpoints",{NextConfig:JSON.stringify(e)});break}if(r>t){_.warning("Exceeded max attempts to send static next.js endpoints",{isNextConfigExtracted:(0,k.isNextConfigExtracted)(),attemptCount:r});break}}}async periodicSendReingest(){for await(const e of(0,u.unrefSetInterval)(c.hudConfig.dynamicConfig.reingestInterval,void 0,{signal:this.abortController.signal})){const e=(0,f.getAndClearReingestValues)();e.size>0&&this._sendArray("Reingest",Array.from(e))}}}},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")}},t={};function r(i){var o=t[i];if(void 0!==o)return o.exports;var n=t[i]={exports:{}};return e[i].call(n.exports,n,n.exports,r),n.exports}return r.c=t,r(r.s=5119)})());
2
2
  //# sourceMappingURL=core.js.map
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(global,()=>(()=>{var e={336:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return this._patchSendRequest(e),n.instrument_logger.info("Patched @codegenie/serverless-express/src/frameworks/express.js successfully"),e}_patchSendRequest(e){const t=e.sendRequest;e.sendRequest=function(e){const r=e?.request,i=e?.response;if(!r||!i)return t.call(this,e);const c=a.HttpEndpointMetric.createUsableMetric(),u=(0,o.getFlowStateStorage)(),d=()=>{try{c.start(),c.setRequestAttributes(r)}catch(e){n.instrument_logger.error("Failed to start flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const o=(0,s.runWithInvestigation)(()=>t.call(this,e));try{i.once("finish",function(){try{(0,s.finishHttpInvestigation)(r,i,c),c.setResponseAttributes(i),c.end()}catch(e){n.instrument_logger.error("Failed to end flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}catch(e){n.instrument_logger.error("Failed to end flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o};return u?u.run({httpMetric:c},d):d()},(0,i.copyPropertiesToTarget)(t,e.sendRequest)}}t.default=u},486:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8544);class o extends n.BaseKafkaJSPatcher{getExportsRoot(e){return e}getGroupId(e){return e[0].groupId}moduleName(){return"KafkaJS"}}t.default=o},523:e=>{"use strict";e.exports=require("./logger")},646:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(8949),s=r(5128),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return this._patchCreate(e),n.instrument_logger.info("Patched NestJS RouterExecutionContext successfully"),e}_patchCreate(e){const t=e.RouterExecutionContext.prototype.create;e.RouterExecutionContext.prototype.create=function(...e){try{const t=e[0],r=e[1];"function"==typeof t.constructor&&"function"==typeof r?e[1]=(0,s.wrapLinkedFunction)(r):n.instrument_logger.error("Invalid args in NestJS RouterExecutionContext.create",{args:e})}catch(e){n.instrument_logger.error("Error in NestJS RouterExecutionContext patcher",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,e)},(0,o.copyPropertiesToTarget)(t,e.RouterExecutionContext.prototype.create)}}t.default=a},714:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.FrameworkPatcher=void 0,t.isSupportedVersion=f,t.extractModuleVersion=g,t.getFrameworkPatcher=function(e){return new(r(2828)(`./${e}`).default)};const a=r(2546),c=r(523),u=r(9896),d=i(r(6928)),l=r(8064);function f(e,t){return""===e||l.satisfies(l.coerce(e),t)}function g(e){try{const t=(0,u.readFileSync)(d.join(e,"package.json"),{encoding:"utf8"}),r=JSON.parse(t).version;return"string"==typeof r?r:""}catch{c.instrument_logger.info("Failed extracting version",{baseDir:e})}return""}t.FrameworkPatcher=class{patch(e,t,r,n,o=this.constructor.name){try{if(this.isSupported(t,o,r,n))return this._patch(e)}catch(e){c.instrument_logger.error("Unhandeled error during patching framework",{framework:o,error:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}isSupported(e,t,r,n){const o=g(e);return!!f(o,r)||(c.instrument_logger.warning("Unsupported version",{framework:t,version:o,supportedVersion:r,basedir:e}),c.customer_logger.log(a.UserErrorLogs.UnsupportedFrameworkVersion(t)),!1)}}},828:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KafkaJSMetric=void 0;const n=r(523),o=r(7131),s=r(9873);class i extends s.FlowMetric{partition;error;producedTimestamp;totalConsumeDuration;constructor(e){super(e)}_createUsableMetric(e){return this}end(){this.producedTimestamp&&(this.totalConsumeDuration=Number(Date.now()-this.producedTimestamp)*Number(1e6)),super.end()}addProducedTimestamp(e){void 0!==e&&(this.producedTimestamp=Number(e))}addPartition(e){this.partition=e}setError(e){this.error=(0,o.extractName)(e)}toRaw(){if(void 0!==this.partition)return{flow_id:this.flowId,type:"KafkaJSMetric",duration:this.duration,partition:this.partition,error:this.error,total_consume_duration:this.totalConsumeDuration};n.instrument_logger.warning("No partition found for message",{flowId:this.flowId})}}t.KafkaJSMetric=i},857:e=>{"use strict";e.exports=require("os")},932:e=>{"use strict";e.exports=require("process")},1326:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(2546),s=r(523),i=r(8949),a=r(714),c=n(r(9589));class u extends a.FrameworkPatcher{static nextJSHudMarked=Symbol.for("hudNextJSMarked");_patch(e){return(0,o.setIsNextJsApp)(!0),this._pathLoad(e),s.instrument_logger.info("Patched Next.js successfully"),e}_pathLoad(e){try{const t=e.RouteModuleLoader;if(t[u.nextJSHudMarked])return e;const r=t.load;t.load=async function(...e){const t=await r.apply(this,e);try{if(t){const e=t.definition?.pathname;e&&!t[u.nextJSHudMarked]&&(c.default._detectAndPatchSupportedMethods(t,e),t[u.nextJSHudMarked]=!0)}}catch(e){s.instrument_logger.error("Failed to patch Next.js route module",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t},t[u.nextJSHudMarked]=!0,(0,i.copyPropertiesToTarget)(r,t.load)}catch(e){s.instrument_logger.error("Failed to patch Next.js base server",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}}t.default=u},1427:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getSystemInfo=function(){return{pod_name:u(),node_name:d()}};const o=n(r(9896)),s=n(r(857)),i=Symbol("not found");let a,c;function u(){if(a!==i){if(a)return a;try{return a=s.default.hostname(),a}catch{return void(a=i)}}}function d(){if(c!==i){if(c)return c;try{const e=o.default.readFileSync("/etc/machine-id","utf8").trim();return c=e,c}catch{return void(c=i)}}}},1502:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8528),s=r(8269),i=r(2546),a=r(523),c=r(8949),u=r(714);class d extends u.FrameworkPatcher{static koaModuleName="koa";static koaPatchedSymbol=Symbol.for(n.hudConfig.hudPatchedName);_patch(e){return this._patchAppUse(e),a.instrument_logger.info("Patched koa successfully"),e}_patchAppUse(e){const t=e.prototype.use;e.prototype.use=function(e){const r=t.apply(this,arguments);try{if(!arguments[0].router)return r;const e=arguments[0].router.stack;for(let t=0;t<e.length;t++)d._wrapRoute(e[t])}catch(e){a.instrument_logger.error("Failed to patch koa.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return r},(0,c.copyPropertiesToTarget)(t,e.prototype.use)}static _wrapRoute(e){if(e.methods&&0===e.methods.length)return;if(!e.stack[0][d.koaPatchedSymbol]){const t=(0,c.wrapFlow)(p,e.stack[0],!0);e.stack[0]=t,e.stack[0][d.koaPatchedSymbol]=!0}const t=(0,i.generateEndpointFlowId)(e.path,e.methods);(0,s.storeEndpointDeclaration)(new o.EndpointDeclaration(t,e.methods,"koa",void 0,e.path));for(const r of e.methods)g(t,e.path,r)}}function l(e,t){return e+"|"+t}t.default=d;const f=new Map;function g(e,t,r){f.set(l(t,r),e)}function p(e){if(0===e.length)return;const t=e[0]._matchedRoute,r=e[0].req?.method;return function(e,t){return f.get(l(e,t))}(t,r)}},2080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SqsMetric=void 0;const n=r(9873);class o extends n.FlowMetric{errors;msgCount;e2eEpocStartTimeMS;e2eDurationNS;_finishedMessageCount;constructor(e){super(e),this._finishedMessageCount=0,this.errors=new Map}addError(e,t=1){this.errors.set(e,(this.errors.get(e)??0)+t)}increaseAndShouldEnd(e=1){return this._finishedMessageCount+=e,!(this.msgCount&&this._finishedMessageCount<this.msgCount)}end(){this.e2eEpocStartTimeMS&&(this.e2eDurationNS=Number(Date.now()-this.e2eEpocStartTimeMS)*Number(1e6)),super.end()}_createUsableMetric(e){return this}toRaw(){return{flow_id:this.flowId,type:"SqsMetric",duration:this.duration,e2e_duration:this.e2eDurationNS,msg_count:this.msgCount,errors:this.errors,error_breakdown:this.errorBreakdown}}}t.SqsMetric=o},2197:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.koa=t.express=t.safeLog=t.registerHook=t.hudRITM=void 0;var c=r(5688);Object.defineProperty(t,"hudRITM",{enumerable:!0,get:function(){return c.hudRITM}}),Object.defineProperty(t,"registerHook",{enumerable:!0,get:function(){return c.registerHook}}),Object.defineProperty(t,"safeLog",{enumerable:!0,get:function(){return c.safeLog}}),i(r(3901),t),t.express=a(r(7127)),i(r(714),t),t.koa=a(r(1502)),i(r(7166),t)},2546:e=>{"use strict";e.exports=require("./lib")},2729:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){const t=this._patchGetFramework(e);return n.instrument_logger.info("Patched serverless-http/lib/framework/get-framework.js successfully"),t}_patchGetFramework(e){const t=e;return e=function(...e){const r=t.apply(t.this,e);async function c(e,...t){const i=a.HttpEndpointMetric.createUsableMetric(),c=(0,o.getFlowStateStorage)(),u=async()=>{try{i.start(),i.setRequestAttributes(e)}catch(e){n.instrument_logger.error("Failed to start flowMetric during framework serverless request handler patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const o=await(0,s.runWithInvestigation)(()=>r.apply(r.this,[e,...t]));return o.once("finish",function(){try{(0,s.finishHttpInvestigation)(e,o,i),i.setResponseAttributes(o),i.end()}catch(e){n.instrument_logger.error("Failed to end flowMetric during framework serverless request handler patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}),o};return c?await c.run({httpMetric:i},u):await u()}return(0,i.copyPropertiesToTarget)(r,c),c},(0,i.copyPropertiesToTarget)(t,e),e}}t.default=u},2741:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(4815),i=r(7225),a=r(714);class c extends a.FrameworkPatcher{_patch(e){return i.isVerboseLoggingEnabled?((0,o.patchMethods)(e,"application_export"),(0,s.patchUse)(e,"application",!1),(0,i.logLazyRouter)(e),n.instrument_logger.info("Patched express.Application successfully"),e):(n.instrument_logger.info("Skipping express.Application patching, verbose logging is not enabled"),e)}}t.default=c},2784:e=>{"use strict";e.exports=require("../native/_index")},2822:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getStackTraceWithoutMessage=g,t.serializableInvestigation=m,t.getBaseInvestigationStorage=_,t.createNewInvestigation=function(){if(!globalThis.hudEnableInvestigation)return;const e=(0,c.getInvestigationStorage)();void 0!==e&&e.enterWith(_())},t.runWithInvestigation=function(e){if(!globalThis.hudEnableInvestigation)return e();const t=(0,c.getInvestigationStorage)();return void 0===t?e():t.run(_(),e)},t.closeInvestigation=y,t.storeInvestigation=v,t.getInvestigationDedupingKey=w,t.minimizeObject=k,t.finishHttpInvestigation=function(e,t,r){if(t.statusCode<500)return;try{h("http requests headers",{headers:Object.keys(e.headers)})}catch{h("failed to log http requests headers")}const n=S(r);if(void 0===n)return void h("finishHttpInvestigation: base investigation return undefined");const o=r.getFlowId(),s=r.getMsStartTime();void 0!==o&&void 0!==r.route&&void 0!==r.method&&void 0!==s?v(n,{type:"http",endpoint_uuid:o,route:r.route,method:r.method,timestamp:s,params:e.params,query:e.query,request_body:k(e.body),status_code:t.statusCode,machine_metrics:(0,d.getMachineMetrics)(),observability_identifiers:(0,l.getObservabilityIdentifiers)(e),extra_headers:(0,l.getExtraHeaders)(e),system_info:(0,f.getSystemInfo)()}):h("route, method, or reqTimestamp are undefined even though they shouldn't",{flowId:o,route:r.route,method:r.method,reqTimestamp:s})},t.finishSqsInvestigation=function(e,t){if(0===t.errors.size)return;const r=S(t);if(void 0===r)return void h("finishSqsInvestigation: investigation is undefined");const n=t.getFlowId(),o=t.getMsStartTime();void 0!==o&&void 0!==n?v(r,{type:"sqs",timestamp:o,flow_id:n,messages:k(e),machine_metrics:(0,d.getMachineMetrics)(),system_info:(0,f.getSystemInfo)()}):h("reqTimestamp is undefined even though it shouldn't",{flowId:n})},t.getErrorRecordsFromInvestigation=M;const o=r(5809),s=r(8528),i=r(8269),a=r(523),c=r(7131),u=n(r(8611)),d=r(7808),l=r(7603),f=r(1427);function g(e,t){if(void 0===t)return;const r=function(e){let t=0;for(let r=0;r<e.length;r++)"\n"===e[r]&&t++;return t}(e)+1;let n=-1;for(let e=0;e<r;e++)if(n=t.indexOf("\n",n+1)??-1,-1===n)return;return-1!==n?t.slice(n+1):void 0}const p={};function h(e,...t){let r="debug";(void 0===p[e]||p[e]<o.hudConfig.dynamicConfig.investigationRateLimits.maxUniqLogs)&&(r="warning",p[e]=p[e]+1||1),a.app_logger.logLevel(r,e,...t)}function m(e){return{status:e.status,context:e.context,exceptions:Array.from(e.exceptions.values()).map(({exception:e,executionFlow:t,caught:r})=>({name:(0,c.extractName)(e),message:(0,c.extractMessage)(e),stackTrace:e instanceof Error?g(e.message,e.stack):void 0,executionFlow:t.map(e=>({function_id:e.function_id,caller_id:e.caller_id,args:void 0!==e.args?k(e.args):void 0})),caught:r})),userContext:e.userContext,caught:e.caught}}function _(){return{status:s.InvestigationStatus.Open,caught:!0,exceptions:new Map}}function y(){if(!globalThis.hudEnableInvestigation)return;const e=(0,c.getInvestigationStorage)();if(void 0===e)return;const t=e.getStore();return void 0!==t&&t.status===s.InvestigationStatus.Open?(t.status=s.InvestigationStatus.Closed,t):void 0}function v(e,t){e.context=t,(0,i.storeClosedInvestigation)(m(e))}function b(e){for(const t of e)if(!t.is_outbound_function)return t.function_id}function w(e,t){let r="";for(const t of e)r+=`${t.error_type}-${t.function_id}|`;return r+=`${t}`,r}function k(e,t=o.hudConfig.investigation.maxObjectDepth,r=new WeakSet){try{if(null!==e&&"object"==typeof e){if(r.has(e))return"[Circular Reference]";if(e instanceof u.default.IncomingMessage)return"[Http Request]";r.add(e)}if(null==e||["number","boolean"].includes(typeof e))return e;if("string"==typeof e)return e.length>o.hudConfig.investigation.maxStringLength?e.slice(0,o.hudConfig.investigation.maxStringLength)+"...":e;if(["bigint","symbol"].includes(typeof e))return k(e.toString(),t-1,r);if("function"==typeof e)return`[Function: ${e.name||"anonymous"}]`;if(void 0===e)return;if(Array.isArray(e))return t<=0?"[Array]":e.slice(0,o.hudConfig.investigation.maxArrayLength).map(e=>k(e,t-1,r));if(e instanceof Map)return t<=0?"[Map]":{"[Map]":Array.from(e.entries()).slice(0,o.hudConfig.investigation.maxArrayLength).map(([e,n])=>[k(e,t-1,r),k(n,t-1,r)])};if(e instanceof Set)return t<=0?"[Set]":{"[Set]":Array.from(e.values()).slice(0,o.hudConfig.investigation.maxArrayLength).map(e=>k(e,t-1,r))};if(e instanceof Date){let n;try{n=e.toISOString()}catch{}return k(n,t-1,r)}if(e instanceof RegExp)return k(e.toString(),t-1,r);if(e&&"Proxy"===e[Symbol.toStringTag])return k(e.target||e,t-1,r);if(e&&e[Symbol.toStringTag])return`[${e[Symbol.toStringTag]}]`;if("object"==typeof e){if(t<=0)return"[Object]";const n={},s=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);for(const i of s.slice(0,o.hudConfig.investigation.maxArrayLength))try{n[i]=k(e[i],t-1,r)}catch{}for(const s of i.slice(0,o.hudConfig.investigation.maxArrayLength))try{n[s.toString()]=k(e[s],t-1,r)}catch{}return n}}catch{}}function S(e){const t=y();if(void 0===t)return void h("finishBaseInvestigation: investigation is undefined");const r=e.getFlowId();if(void 0===r)return void h("finishBaseInvestigation: flowId is undefined");const n=M(t),s=w(n,t.caught);if(e.setErrorBreakdown({key:s,errors:n,caught:t.caught}),i.globalInvestigationTracking>=o.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations)return void h("finishBaseInvestigation: globalInvestigationTracking is greater than maxTotalInvestigations",{globalInvestigationTracking:i.globalInvestigationTracking,maxTotalInvestigations:o.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations});const a=((0,i.getInvestigationDedupingCache)(r).get(s)??0)+1;if(!(a>o.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations))return(0,i.increaseGlobalInvestigationTracking)(),(0,i.increaseInvestigationDedupingCache)(r,s),t;h("finishBaseInvestigation: investigationCount is greater than maxSameInvestigations",{investigationCount:a,maxSameInvestigations:o.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations})}function M(e){const t=new Set,r=[];for(const n of e.exceptions.values()){const e=(0,c.extractName)(n.exception),o=b(n.executionFlow)??"",s=`${e}-${o}`;if(t.has(s))continue;t.add(s);const i={error_type:e,function_id:o};r.push(i)}return r}},2828:(e,t,r)=>{var n={"./baseKafkaJsPatcher":8544,"./baseKafkaJsPatcher.ts":8544,"./codeGenieServerlessExpress":336,"./codeGenieServerlessExpress.ts":336,"./confluentKafkaJs":7276,"./confluentKafkaJs.ts":7276,"./express":7127,"./express.ts":7127,"./express/methods":6730,"./express/methods.ts":6730,"./express/route":2977,"./express/route.ts":2977,"./express/router":4815,"./express/router.ts":4815,"./express/verbosity":7225,"./express/verbosity.ts":7225,"./expressApplication":2741,"./expressApplication.ts":2741,"./flows/flow":9873,"./flows/flow.ts":9873,"./flows/graphql":6504,"./flows/graphql.ts":6504,"./flows/http":4393,"./flows/http.ts":4393,"./flows/kafkajs":828,"./flows/kafkajs.ts":828,"./flows/sqs":2080,"./flows/sqs.ts":2080,"./frameworkPatcher":714,"./frameworkPatcher.ts":714,"./graphql":7214,"./graphql.ts":7214,"./http":5459,"./http.ts":5459,"./kafkajs":486,"./kafkajs.ts":486,"./koa":1502,"./koa.ts":1502,"./nestjsRouterExecutionContext":646,"./nestjsRouterExecutionContext.ts":646,"./nestjsRpcContextCreator":4290,"./nestjsRpcContextCreator.ts":4290,"./nextJsConfig":9723,"./nextJsConfig.ts":9723,"./nextJsModuleLoader":1326,"./nextJsModuleLoader.ts":1326,"./nextjs":9589,"./nextjs.ts":9589,"./router":5946,"./router.ts":5946,"./serverlessHttp":2729,"./serverlessHttp.ts":2729,"./sqsConsumer":5150,"./sqsConsumer.ts":5150};function o(e){var t=s(e);return r(t)}function s(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}o.keys=function(){return Object.keys(n)},o.resolve=s,e.exports=o,o.id=2828},2977:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.patchRoute=function(e){const t=(0,g.getMethods)();t.concat("all").forEach(function(r){const n=e.prototype[r];e.prototype[r]=function(){let e;try{e=p(Array.prototype.slice.call(arguments));let n=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];if(t)return t.flowId}(e);const o=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];if(t)return t.kind}(e),s=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];return!!t&&t.allMethod}(e);if(n||(n=[l.randomUUID()]),"application"===o)if(Array.isArray(this.path)){_(e,void 0);for(let e=0;e<this.path.length;e++)m(n[e],s?t:[r],this.path[e])}else _(e,n[0]),m(n[0],s?t:[r],this.path);else if("router"===o)if(Array.isArray(this.path)){_(e,void 0);for(let e=0;e<this.path.length;e++)h(this,n[e],r,this.path[e])}else _(e,n[0]),h(this,n[0],r,this.path);else _(e,n[0]),h(this,n[0],r,this.path)}catch(e){d.instrument_logger.error("Failed to patch express.Route.route",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n.apply(this,e||arguments)}})};const a=r(5809),c=r(8528),u=r(8269),d=r(523),l=i(r(6982)),f=r(8949),g=r(6730),p=r(5673);function h(e,t,r,n){!function(e,t,r,n){e[a.hudConfig.express.layerStateSymbol]||(e[a.hudConfig.express.layerStateSymbol]={}),e[a.hudConfig.express.layerStateSymbol][t]?e[a.hudConfig.express.layerStateSymbol][t].methods.push(r):e[a.hudConfig.express.layerStateSymbol][t]={layerPath:n,methods:[r]}}(e,t,r,n),function(e,t,r){const n=new c.EndpointDeclaration(e,[t],"express",void 0,void 0,r);(0,u.storePartialEndpointDeclaration)(n),(0,u.storeExpressEndpointDeclaration)(n)}(t,r,n)}function m(e,t,r){const n=new c.EndpointDeclaration(e,t,"express",void 0,r,void 0);(0,u.storeExpressEndpointDeclaration)(n)}function _(e,t){if(e&&!(e.length<1)){if(a.hudConfig.express.wrapAllCallbacks)for(let r=0;r<e.length;r++){const n=(0,f.wrapFlow)(v(t),e[r],!0);e[r]=n}else{const r=(0,f.wrapFlow)(v(t),e[e.length-1],!0);e[e.length-1]=r}return t}}function y(e){return(0,u.getLinkedConsistentFlowId)(e,!1)||(d.instrument_logger.warning("No consistent flowId found, returning temporary flow id",{flowId:e}),e)}function v(e){return e?function(){return y(e)}:function(e){const t=e[0]?.route[a.hudConfig.express.layerStateSymbol],r=e[0]?.url;if(t)for(const[e,n]of Object.entries(t)){if(n.layerPath instanceof RegExp&&n.layerPath.test(r))return y(e);if(r.includes(n.layerPath))return y(e)}d.instrument_logger.warning("No flowId found for path",{states:t,url:r.split("?")[0]})}}},2987:e=>{"use strict";e.exports=require("perf_hooks")},3176:e=>{"use strict";e.exports=require("buffer-crc32")},3339:e=>{"use strict";e.exports=require("module")},3868:e=>{"use strict";e.exports=require("@jridgewell/sourcemap-codec")},3901:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getFunctionWrapperTemplate=b,t.splitCode=E,t.editInSplits=I,t.editWithCliBuildId=function(e,t,r,n){let{transformedCode:o,metadatas:s}=F(e,t,r,[],!0);return o+=`\n//# sourceMappingURL=${y.default.basename(t)}.map`,o+=`\n//"${n}";${d.hudConfig.cliSdkVersionVarName}="${d.SDK_VERSION}";${d.hudConfig.cliBuildIdVarName}`,{transformedCode:o,metadatas:s}},t.edit=F,t.incrementInstrumentedFunctionsCount=j;const c=a(r(3176)),u=r(3903),d=r(5809),l=r(2546),f=r(523),g=r(8528),p=r(8269),h=r(2546),m=r(3868),_=i(r(2784)),y=a(r(6928)),v=/([0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})/;function b(e,t,r=!1,n=!1){const o=`${e}_hudTemp`,s="BODY_PLACEHOLDER",i="FUNCTION_ID_PLACEHOLDER",a="AWAITABLE_PLACEHOLDER",c="EXCEPTION_VARIABLE_PLACEHOLDER",u="ARGS_ARRAY_PLACEHOLDER",l=function(e,t,r=!1){const n=[];if(r)return n;let o;t===g.Format.cjs?o="require":t===g.Format.esm&&(n.push(`import { createRequire as ${e}_createRequire } from "module";`,`const ${e}_require = ${e}_createRequire(import.meta.url);`),o=`${e}_require`);const s=h.myRequire.resolve(d.SDK_MODULE_NAME+"/wrap");return n.push(`let ${e}_temp;`,`try { ${e}_temp = ${o}(String.raw\`${s}\`); } catch (e) { ${e}_temp = { wrapperInitial: () => {}, wrapperCatch: () => {}, wrapperFinally: () => {}, fixStack: () => {}, wrapperUserCatch: () => {} }; globalThis._hud_SI = globalThis._hud_SI || { value: 0 }; globalThis._hud_S = globalThis._hud_S || [];\n }`,`const { wrapperInitial: ${e}_wi, wrapperCatch: ${e}_wc, wrapperFinally: ${e}_wf, fixStack: ${e}_fs, asyncIteratorWrapper: ${e}_aiw, wrapperUserCatch: ${e}_wuc } = ${e}_temp;`),n}(e,t,r),f=`${e}_cc.io = true;`;return{functionWrapper:`{\n let ${o};\n const ${d.hudConfig.functionIdVarName} = ${i};\n const ${e}_cc = {}; ${n?f:""}\n try {\n ${e}_wi(${d.hudConfig.functionIdVarName}, ${e}_cc);\n } catch (e) {\n globalThis._hud_SI = { value: 0 };\n globalThis._hud_S = [];\n }\n try {\n ${s}\n } catch (e) {\n try {\n ${e}_wc(${d.hudConfig.functionIdVarName}, ${e}_cc, e, ${u});\n } catch (e) {}\n throw e;\n } finally {\n try {\n ${e}_wf(${d.hudConfig.functionIdVarName}, ${e}_cc);\n } catch (e) {}\n }\n }`,awaitWrapper:`(${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = await ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})`,yieldWrapper:`\n function* ${e}_generatorWrapper() {\n return (${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = yield ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})\n }`,yieldStarWrapper:`\n function* ${e}_generatorWrapper() {\n return (${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = yield* ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})\n }`,initialStatements:l,bodyPlaceholder:s,functionIdPlaceholder:i,awaitablePlaceholder:a,argsArrayPlaceholder:u,fixStackFunction:`\n try{\n ${e}_fs(${d.hudConfig.functionIdVarName}, ${e}_cc)\n }catch(e){};`,exceptionVariablePlaceholder:c,wrapperUserCatch:`\n try {\n ${e}_wuc(${d.hudConfig.functionIdVarName}, ${e}_cc, ${c}, ${u});\n } catch(e){};`,asyncIteratorWrapper:`${e}_aiw`,awaitableVariable:o}}function w(e,t,r,n=!0,o=!1,s){const i=Error.prepareStackTrace;let a=!1,l=function(e){const t=e.match(`${d.hudConfig.bundlerBuildIdVarName}="${v.source}"`);if(t&&t.length>0)return t[1]}(e);l||(l=function(e){return(0,u.v5)(e,d.hudConfig.bundlerBuildUuidNamespace)}(e),a=!0);const g=(0,u.v5)(e,d.hudConfig.functionUuidNamespace),p=(0,c.default)(t.filename).readUInt32BE(),m=(0,c.default)(e).readUInt32BE(),y=(0,h.isNextJsApp)(),w={data:t,bundlerBuildId:l,prefix:d.hudConfig.wrapVarPrefix,...b(d.hudConfig.wrapVarPrefix,t.format,o,r.length>0),uuidNamespace:d.hudConfig.functionUuidNamespace,fileHash:g,functionsToInstrument:r,useInputSourcemap:n,isNextJsFile:y,markCode:d.hudConfig.nextJsMarkVarName,enableForAwaitInstrumentation:!s,disableParametersExtraction:d.hudConfig.userConfig.disableParametersExtraction?.value},k=_.transform(e,w);return j(k.functionsIds.length,s),y&&k.marksCount!==k.functionsIds.length&&f.instrument_logger.warning("Marks count mismatch while instrumenting functions",{marksCount:k.marksCount,functionsIdsLength:k.functionsIds.length,filename:t.filename}),globalThis.hudNextJsPluginIndicator&&y&&(k.marksCount>0||k.functionsIds.length>0)&&(clearTimeout(globalThis.hudNextJsPluginIndicator),globalThis.hudNextJsPluginIndicator=void 0),Error.prepareStackTrace=i,f.instrument_logger.debug(`Successfully transformed ${t.filename}`),{code:k.code,map:k.map,functionIds:k.functionsIds,filename:t.filename,hasInputMap:k.isInputSourcemap,bundlerBuildId:l,bundlerBuildIdGenerated:a,file_path_checksum:p,file_checksum:m,sourceCodeHash:g,moduleBase:k.moduleBase,isNextJsApp:y,marksCount:k.marksCount,detectedForAwaitLoops:k.detectedForAwaitLoops}}class k extends Error{}function S(e,t){if(e&&t)throw new k("Start mark found inside mark");if(!e&&!t)throw new k("End mark found outside mark")}function M(e,t,r,n){const o=e.split("\n");let s=r,i=n;return s+=o.length-1,s+=t.split("\n").length-1,s===r?i+=o.pop()?.length||0:i=o.pop()?.length||0,{lineOffset:s,columnOffset:i}}function*E(e){let t=!1,r=0,n=0,o=!1,s=0,i=0;const a=new RegExp(`globalThis\\s*?&&\\s*?\\(globalThis\\.${d.hudConfig.esbuildGlobalVar}\\s*?=\\s*?"(Start|End):(?<fileName>.*?)"\\);?`,"g");for(const c of e.matchAll(a)){if(o=!0,!c.groups)throw new k("No groups found in match");const{fileName:a}=c.groups,[u,d]=c,l="Start"===d;S(l,t);let f="";if(t){const t=c.index+u.length;f=e.slice(r,t);const o=n+Buffer.byteLength(f,"utf8");yield{edit:!0,code:f,fileName:a,lineOffset:s,columnOffset:i,indexOffset:n,indexOffsetEnd:o},r=t,n=o}else{const t=c.index;f=e.slice(r,t),n+=Buffer.byteLength(f,"utf8"),r=t,yield{edit:!1,code:f}}t=!!l,({lineOffset:s,columnOffset:i}=M(f,u,s,i))}if(t)throw new k("End mark found outside mark");o?r<e.length&&(yield{edit:!1,code:e.slice(r)}):yield{edit:!1,code:e}}function x(e,t,r){f.instrument_logger.debug("Edit chunk",{fileName:e.fileName,size:e.code.length,edit:t}),r?.push({fileName:e.fileName,size:e.code.length,edit:t})}function C(e,t,r){const n=w(e.code,{filename:t,format:r},[],!1,!0,!1),o=n.code;return n.mapRelativeToChunk=n.map,n.map=function(e,t,r){"string"==typeof e&&(e=JSON.parse(e));const n=(0,m.decode)(e.mappings);return n.forEach(e=>{e.forEach(e=>{e.length>=4&&"number"==typeof e[2]&&("number"==typeof e[3]&&0===e[2]&&(e[3]+=r),e[2]+=t)})}),JSON.stringify({...e,mappings:(0,m.encode)(n),sourcesContent:void 0})}(n.map,e.lineOffset,e.columnOffset),{codeToAppend:o,metadata:{...n,filename:t,lineOffset:e.lineOffset,columnOffset:e.columnOffset}}}function I(e,t,r,n=!1,o=!1,s=()=>!0){const i=e.slice(-1e3);if(!o&&null!==_.getSourceMap(t,i))return f.instrument_logger.critical("Source map found for esbuild split",{filename:t}),f.customer_logger.log(l.UserErrorLogs.EsbuildSourceMapFound()),(0,p.detachHud)(!1,!1),{transformedCode:e,metadatas:[],editedChunksSizes:void 0};let a="",c=0,u=0;const g=[];let h=0;const m=n?[]:void 0,y=b(d.hudConfig.wrapVarPrefix,r).initialStatements.join("\n"),v=function(e){return e.slice(d.hudConfig.esbuildMark.length,d.hudConfig.esbuildMark.length+36)}(e);for(const n of E(e)){h++;try{let e="",o=!1;if(n.edit&&(o=s(n.fileName),m&&x(n,o,m)),n.edit&&o){const o=C(n,t,r);e=o.codeToAppend,g.push({...o.metadata,bundlerBuildId:v,transformedLineOffset:c,transformedColumnOffset:u,indexOffset:n.indexOffset,indexOffsetEnd:n.indexOffsetEnd})}else e=0===a.length?P(n.code,y):n.code;({transformedCodeLineOffset:c,transformedCodeColumnOffset:u}=O(e,c,u)),a+=e}catch(r){return f.instrument_logger.error("Failed to patch index",{index:h,filename:t,msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),{transformedCode:e,metadatas:[],editedChunksSizes:m}}}return{transformedCode:a,metadatas:g,editedChunksSizes:m}}function P(e,t){let r="";return e.startsWith('"use strict";')?(r+='"use strict";',r+=t,r+=e.slice(13),r):(r+=t,r+=e,r)}function O(e,t,r){const n=e.split("\n");return n.length>1?(t+=n.length-1,r=n.pop()?.length||0):r+=e.length,{transformedCodeLineOffset:t,transformedCodeColumnOffset:r}}function F(e,t,r,n,o){if(e.startsWith(d.hudConfig.esbuildMark))return f.instrument_logger.info("Editing in splits"),I(e,t,r,!1);{const s=w(e,{filename:t,format:r},n,d.hudConfig.userConfig.disableSourceMapsResolution?.value??!0,!1,o);return{transformedCode:s.code,metadatas:[s]}}}let T=0;function j(e,t){T+=e;const r=d.hudConfig.userConfig?.maxMappedFunctions?.value??0;T>=r&&(t||f.customer_logger.log(l.UserErrorLogs.InstrumentedFunctionCountExceeded(r)),f.app_logger.error("Instrumented function count exceeded",{instrumentedFunctionsCount:T,maxMappedFunctions:r}),(0,p.detachHud)(!1,!1))}},3903:e=>{"use strict";e.exports=require("uuid")},4290:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(8949),s=r(5128),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return this._patchCreate(e),n.instrument_logger.info("Patched NestJS RpcContextCreator successfully"),e}_patchCreate(e){const t=e.RpcContextCreator.prototype.create;e.RpcContextCreator.prototype.create=function(...e){try{const t=e[0],r=e[1];"function"==typeof t.constructor&&"function"==typeof r?e[1]=(0,s.wrapLinkedFunction)(r):n.instrument_logger.error("Invalid args in NestJS RpcContextCreator.create",{args:e})}catch(e){n.instrument_logger.error("Error in NestJS RpcContextCreator patcher",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,e)},(0,o.copyPropertiesToTarget)(t,e.RpcContextCreator.prototype.create)}}t.default=a},4393:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HttpEndpointMetric=void 0;const n=r(9873);class o extends n.FlowMetric{statusCode;route;method;constructor(e){super(e)}_createUsableMetric(e){return this}setRequestAttributes(e){const t=e.url||e.path;this.route=t?.split("?")[0],this.method=e.method}setResponseAttributes(e){this.statusCode=e.statusCode}toRaw(){if(this.statusCode&&this.route&&this.method)return{flow_id:this.flowId,type:"EndpointMetric",duration:this.duration,status_code:this.statusCode,route:this.route,method:this.method,error_breakdown:this.errorBreakdown}}}t.HttpEndpointMetric=o},4815:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.patchUse=function(e,t,r=!0){const n=e.use;e.use=function(e){const o=n.apply(this,arguments);try{let n=this[f.uuidSymbol];!n&&f.isVerboseLoggingEnabled&&(n=d.randomUUID(),this[f.uuidSymbol]=n,u.instrument_logger.info("Express use setting uuid",{kind:t,uuid:n})),"application"===t?function(e,t,r,n){try{r&&(e._router?p(e._router):e.router?p(e.router):u.instrument_logger.warning("Express application doesn't have router or _router")),n&&f.isVerboseLoggingEnabled&&u.instrument_logger.info("Express use app",{parent:n,child:t[1]?.[f.uuidSymbol]||"no uuid",path:t[0]})}catch(e){u.instrument_logger.error("Failed to save express app router",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(this,arguments,r,n):"router"===t&&function(e,t,r,n,o){try{if(!e.stack)return void u.instrument_logger.error("Express router without stack");if(0===e.stack.length)return void u.instrument_logger.warning("Express router with an empty stack");"query"===e.stack[0].name?p(e):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(e.stack[0].name)&&(f.skipLayerNamesLogs.add(e.stack[0].name),u.instrument_logger.warning("Found unknown stack name",{stack:e.stack[0].name}));const{path:s,offset:i}=function(e){let t=0,r="/";if("function"!=typeof e){let n=e;for(;Array.isArray(n)&&0!==n.length;)n=n[0];"function"!=typeof n&&(t=1,r=e)}return{path:r,offset:t}}(o),c=g(Array.prototype.slice.call(t,i));for(let t=0;t<c.length&&t<e.stack.length;t++){const o=e.stack[e.stack.length-t-1],i=c[c.length-t-1];"router"===o.name?(i&&!i[f.uuidSymbol]&&f.isVerboseLoggingEnabled&&(i[f.uuidSymbol]=d.randomUUID(),u.instrument_logger.info("Express handle router setting uuid",{uuid:i[f.uuidSymbol]})),r&&(o[a.hudConfig.express.routeNamesSymbol]=s)):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(o.name)&&(f.skipLayerNamesLogs.add(o.name),u.instrument_logger.warning("Found unknown layer name",{layer:o.name,parent:n,child:i[f.uuidSymbol]||"no uuid",path:s}))}}catch(e){u.instrument_logger.error("Failed to patch router.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(this,arguments,r,n,e)}catch(e){u.instrument_logger.error("Failed to patch express.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o},(0,l.copyPropertiesToTarget)(n,e.use)},t.extractEndpointsFromRouter=function e(t,r){let n=[];if(!r.stack)return u.instrument_logger.error("Router without stack - bad OTEL version",{router:r}),n;for(const o of r.stack)if("router"===o.name){if(!o[a.hudConfig.express.routeNamesSymbol]){u.instrument_logger.error("Router layer without routes",{layer:o});continue}const r=t+o[a.hudConfig.express.routeNamesSymbol];n=n.concat(e(r,o.handle))}else o.route&&o.route[a.hudConfig.express.layerStateSymbol]?n=n.concat(h(o,t)):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(o.name)&&(f.skipLayerNamesLogs.add(o.name),u.instrument_logger.warning("Found unknown layer name when extracting endpoints",{layer:o.name}));return n};const a=r(5809),c=r(8528),u=r(523),d=i(r(6982)),l=r(8949),f=r(7225),g=r(5673);function p(e){e[a.hudConfig.express.markedSymbol]||(globalThis.hudExpressState.push(e),e[a.hudConfig.express.markedSymbol]=!0)}function h(e,t){const r=[];for(const[n,o]of Object.entries(e.route[a.hudConfig.express.layerStateSymbol]))r.push(new c.EndpointDeclaration(n,o.methods,"express",t,o.layerPath));return Array.from(r.values())}},5128:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isHudLfMarked=void 0,t.wrapLinkedFunction=function(e){if(e[t.isHudLfMarked])return e;let r;e[t.isHudLfMarked]=!0;const a=(0,s.getFlowStateStorage)();return a?(r=e instanceof i.AsyncFunction?async function(...t){if(hudRunningMode!==n.HudRunningMode.enabled)return await e.apply(this,t);let r;try{r=a.getStore()}catch(r){return o.instrument_logger.error("Failed to get flowState",{msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),await e.apply(this,t)}return r?(r.shouldLinkFunction=!0,await e.apply(this,t)):await e.apply(this,t)}:function(...t){if(hudRunningMode!==n.HudRunningMode.enabled)return e.apply(this,t);let r;try{r=a.getStore()}catch(r){return o.instrument_logger.error("Failed to get flowState",{msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),e.apply(this,t)}return r?(r.shouldLinkFunction=!0,e.apply(this,t)):e.apply(this,t)},(0,i.copyPropertiesToTarget)(e,r),r):e};const n=r(8528),o=r(523),s=r(7131),i=r(8949);t.isHudLfMarked=Symbol.for("isHudLfMarked")},5150:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(7131),c=r(2822),u=r(8949),d=r(2080),l=r(714);class f extends l.FrameworkPatcher{isSupported(e,t,r,o){const a=n.hudConfig.userConfig.enableDapulse?.value?o.mondayVersion:o.bbcVersion,c=(0,l.extractModuleVersion)(e);return!!(0,l.isSupportedVersion)(c,a)||(i.instrument_logger.warning("Unsupported sqs-consumer version",{framework:"SqsConsumer",version:c,supportedVersion:a,basedir:e,isDapulse:n.hudConfig.userConfig.enableDapulse?.value}),i.customer_logger.log(s.UserErrorLogs.UnsupportedFrameworkVersion("sqs-consumer")),!1)}_patch(e){return function(e){const t=e.Consumer.create;e.Consumer.create=function(...e){const r=t.apply(this,e);try{!function(e){const t=e.queueUrl;if(!t)throw new s.HudNoQueueUrlInSqsConsumer;const r=h(t);if(e.handleMessageBatch&&"function"==typeof e.handleMessageBatch){const t="handleMessageBatch",n=(0,s.generateSqsFlowId)(r,t);(0,o.storeSqsQueueDeclaration)({flow_id:n,queue_name:r,handle_type:t,batch_size:e.batchSize});const i=e.handleMessageBatch,a=(0,u.wrapFlow)(()=>n,i,!0,m);return void(e.handleMessageBatch=a)}if(e.handleMessage&&"function"==typeof e.handleMessage){const t="handleMessage",n=(0,s.generateSqsFlowId)(r,t);(0,o.storeSqsQueueDeclaration)({flow_id:n,queue_name:r,handle_type:t});const i=e.handleMessage,a=(0,u.wrapFlow)(()=>n,i,!0,m);return void(e.handleMessage=a)}i.instrument_logger.warning("Unable to getFlowId - No handleMessage or handleMessageBatch found in SqsConsumer.Consumer",{queueName:r})}(r),function(e){const t=e.on;e.on=function(...r){try{const t=r[0];if(!t||"string"!=typeof t)throw new s.HudNoEventTypeInSqsConsumerOn;const n=r[1];if(!n||"function"!=typeof n)throw new s.HudNoCallbackInSqsConsumerOn;const i=h(e.queueUrl),a="event",c=(0,s.generateSqsFlowId)(i,a,t);(0,o.storeSqsQueueDeclaration)({flow_id:c,queue_name:i,handle_type:a,event_type:t}),r[1]=(0,u.wrapFlow)(()=>c,n,!0,_,y,v)}catch(e){i.instrument_logger.error("Error in SqsConsumer.Consumer.on patched logic",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,r)},(0,u.copyPropertiesToTarget)(t,e.on)}(r),function(e){const t=e.emit;e.emit=function(...e){return function(e){try{const t=e[0];if(!t||"string"!=typeof t)throw new s.HudNoEventTypeInSqsConsumerEmit;let r,o;if("message_processed"===t&&(r=1),["error","timeout_error","processing_error"].includes(t)&&(o=1,r=2),void 0===r)return;const u=e[r];if(!u)throw new s.HudNoMessageInSqsConsumerEmit;let d;if(void 0!==o){const t=e[o];if(!(t&&t instanceof Error))throw new s.HudNoErrorInSqsConsumerEmit;d=(0,a.extractName)(t),"StandardError"===d&&t.cause&&t.cause instanceof Error&&(d=(0,a.extractName)(t.cause))}const l=(e,t)=>{const r=e[n.hudConfig.metricSymbol];r?(d&&r.addError(d,t),r.increaseAndShouldEnd(t)&&((0,c.finishSqsInvestigation)(Array.isArray(u)?u:[u],r),r.end())):p||(p=!0,i.instrument_logger.warning("No metric found for message"))};Array.isArray(u)&&u.length>=1?l(u[0],u.length):l(u,1)}catch(e){g||(g=!0,i.instrument_logger.error("Error in SqsConsumer.Consumer.emit patched logic",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}))}}(e),t.apply(this,e)},(0,u.copyPropertiesToTarget)(t,e.emit)}(r)}catch(e){i.instrument_logger.error("Error in patching SqsConsumer.Consumer",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return r},(0,u.copyPropertiesToTarget)(t,e.Consumer.create)}(e),i.instrument_logger.info("Patched sqs-consumer successfully",{isDapulse:n.hudConfig.userConfig.enableDapulse?.value}),e}}t.default=f;let g=!1,p=!1;function h(e){const t=e.split("/").pop();if(!t)throw new s.HudFailExtractSqsQueueName(`Url: ${e}`);return t}function m(e,t,r){const o=d.SqsMetric.createUsableMetric(e);o.start();const s=r[0];if(!s)return i.instrument_logger.warning("No messages pass to sqs handler",{flowId:e}),void(t.flowMetric=o);if(Array.isArray(s)){if(o.msgCount=s.length,s.forEach(e=>{e[n.hudConfig.metricSymbol]=o}),s[0]?.Attributes?.SentTimestamp){const t=s.reduce((e,t)=>{const r=Number.parseInt(t?.Attributes?.SentTimestamp);return isNaN(r)?e:Math.min(e,r)},1/0);t!==1/0?o.e2eEpocStartTimeMS=t:i.instrument_logger.warning("No valid SentTimestamp found eventhough the first element had SentTimestamp",{flowId:e})}}else o.msgCount=1,s[n.hudConfig.metricSymbol]=o,s?.Attributes?.SentTimestamp&&(o.e2eEpocStartTimeMS=s.Attributes.SentTimestamp);t.flowMetric=o,(0,c.createNewInvestigation)()}function _(e,t,r){const n=d.SqsMetric.createUsableMetric(e);n.start(),t.flowMetric=n}function y(e,t){const r=t.flowMetric;r?r.end():i.instrument_logger.warning("No flowMetric found for message during catch",{flowId:e})}function v(e,t,r){const n=t.flowMetric;n?(n.addError((0,a.extractName)(r)),n.end()):i.instrument_logger.warning("No flowMetric found for message during catch",{flowId:e})}},5459:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return this._patchEmit(e),n.instrument_logger.info("Patched http successfully"),e}_patchEmit(e){const t=e.Server.prototype.emit;e.Server.prototype.emit=function(e,...r){if("request"!==e)return t.apply(this,[e,...r]);const i=(0,o.getFlowStateStorage)(),c=r?.[0],u=r?.[1],d=a.HttpEndpointMetric.createUsableMetric(),l=()=>{try{d.start(),(0,s.createNewInvestigation)(),d.setRequestAttributes(c),u.once("finish",function(){try{(0,s.finishHttpInvestigation)(c,u,d),d.setResponseAttributes(u),d.end()}catch(e){n.instrument_logger.error("Failed to set response attributes",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}catch(e){n.instrument_logger.error("Failed to patch http.Server.prototype.emit",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,[e,...r])};return i?i.run({httpMetric:d},l):l()},(0,i.copyPropertiesToTarget)(t,e.Server.prototype.emit)}}t.default=u},5673:e=>{"use strict";e.exports=require("array-flatten")},5688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hudRITM=void 0,t.safeLog=function(e){try{i.app_logger.debug(e)}catch{return}},t.registerHook=function(){if(i.app_logger.info("HUD is required"),process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE){if(i.app_logger.info("Running in Lambda environment"),parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE)<n.hudConfig.lambdaMinimunMemory){const e=process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;return i.app_logger.warning("Lambda function memory size is less than required, Hud will not run",{memorySize:e,requiredMemory:n.hudConfig.lambdaMinimunMemory}),i.customer_logger.log(s.UserErrorLogs.UnsupportedLambdaMemory(n.hudConfig.lambdaMinimunMemory)),!1}globalThis.hudRuningInsideLambda=!0}return(0,o.initGlobals)(),i.app_logger.debug("InitGlobals done"),!(globalThis.hudStartFromAutoInit&&!(0,o.validateAndGetUserInput)())&&(i.instrument_logger.isValid()?globalThis.hudRanOnRequire?(i.instrument_logger.warning("Already ran onRequire!"),!1):(globalThis.hudRanOnRequire=!0,i.instrument_logger.info("Using module",{name:n.SDK_MODULE_NAME}),n.hudConfig.userConfig.enableFrameworks&&i.instrument_logger.info("User enabled frameworks",{frameworks:(0,a.getEnabledFrameworks)()}),(0,a.onRequire)(),(0,s.detectNextJsApp)(),i.instrument_logger.debug("onRequire done"),globalThis.hudInitGuard=setTimeout(c,n.hudConfig.userConfig.maxTimeUntilInitSessionMs?.value??0),globalThis.hudInitGuard.unref(),!0):((0,o.detachHud)(!1),!1))};const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(7166);function c(){i.instrument_logger.critical("Init timeout reached - disabling hud"),i.customer_logger.log(s.UserErrorLogs.InitTimeout(globalThis.hudIsRunningFromSetup)),(0,o.detachHud)(!1)}t.hudRITM=a.onRequireFn},5809:e=>{"use strict";e.exports=require("./config")},5946:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(4815),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return(0,s.patchUse)(e.prototype,"router"),(0,o.patchMethods)(e.prototype,"router"),n.instrument_logger.info("Patched router successfully"),e}}t.default=a},6093:e=>{"use strict";e.exports=require("@cspotcode/source-map-support")},6504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GraphQLMetric=void 0;const n=r(9873);class o extends n.FlowMetric{constructor(e){super(e)}_createUsableMetric(e){return this}toRaw(){return{flow_id:this.flowId,type:"GraphQLMetric",duration:this.duration}}}t.GraphQLMetric=o},6730:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.getMethods=f,t.patchMethods=function(e,t){f().concat("all").forEach(function(r){const n=e[r];if(!n)return void(l.isVerboseLoggingEnabled&&c.instrument_logger.warning("Method not found",{method:r}));const o="all"===r;e[r]=function(){try{if(arguments.length<2)return n.apply(this,arguments);let e=this[l.uuidSymbol];l.isVerboseLoggingEnabled&&(e||(e=u.randomUUID(),this[l.uuidSymbol]=e,c.instrument_logger.info("Express method setting uuid",{uuid:e,kind:t})),c.instrument_logger.info("Express added new method",{method:r,uuid:e,path:arguments[0]}));const s=Array.prototype.slice.call(arguments);if(s[1][a.hudConfig.express.layerStateSymbol]={flowId:[],kind:t,allMethod:o},Array.isArray(s[0]))for(const e of s[0]){const e=u.randomUUID();s[1][a.hudConfig.express.layerStateSymbol].flowId.push(e)}else s[1][a.hudConfig.express.layerStateSymbol].flowId.push(u.randomUUID());const i=n.apply(this,s);try{delete s[1][a.hudConfig.express.layerStateSymbol]}catch{}return i}catch(e){c.instrument_logger.error("Failed to patch method",{kind:t,method:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n.apply(this,arguments)},(0,d.copyPropertiesToTarget)(n,e[r])})};const a=r(5809),c=r(523),u=i(r(6982)),d=r(8949),l=r(7225);function f(){const e=r(8611);return e.METHODS&&e.METHODS.map(function(e){return e.toLowerCase()})||["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}},6928:e=>{"use strict";e.exports=require("path")},6982:e=>{"use strict";e.exports=require("crypto")},7127:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(2977),i=r(4815),a=r(7225),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return(0,s.patchRoute)(e.Route),(0,i.patchUse)(e.application,"application"),(0,o.patchMethods)(e.application,"application"),a.isVerboseLoggingEnabled&&(0,a.logLazyRouter)(e.application),e.Router.use?((0,i.patchUse)(e.Router,"router"),(0,o.patchMethods)(e.Router,"router")):n.instrument_logger.warning("Skipping express.Router patching"),n.instrument_logger.info("Patched express successfully"),e}}t.default=u},7131:e=>{"use strict";e.exports=require("./wrap")},7166:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.parseCliInstrumentationPattern=k,t.supportSourceMapInstall=S,t.patch=M,t.patchCompile=I,t.onRequireFn=P,t.patchRequire=O,t.isFrameworkEnabled=F,t.getEnabledFrameworks=function(){const e=new Map;for(const[t,r]of g.hudConfig.frameworksToPatch)e.set(r.framework,F(r,g.hudConfig.userConfig.enableFrameworks));return Object.fromEntries(e)},t.getFunctionsToInstrument=R,t.createCheckers=L,t.updateModuleChecker=A,t.skip=D,t.onRequire=function(){try{(0,d.setInstrumentedFilesCountInterval)(),A();try{I()}catch(e){l.instrument_logger.error("Failed to patch compile",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{(0,d.shouldSupportSourceMap)()&&S()}catch(e){l.instrument_logger.error("Failed to install source map support",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{O()}catch(e){l.instrument_logger.error("Failed to patch require",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch(e){l.instrument_logger.error("Something went wrong in onRequire",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{(0,h.saveMachineMetric)()}catch(e){l.instrument_logger.error("Failed to add metric",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};const a=i(r(9896)),c=i(r(6928)),u=r(8528),d=r(2546),l=r(523),f=r(3901),g=r(5809),p=r(8528),h=r(8269),m=r(2546),_=r(9063),y=r(714),v=function(){const e=g.SDK_MODULE_NAME;try{return c.dirname(c.dirname(m.myRequire.resolve(e)))}catch(t){return l.instrument_logger.error("Failed to resolve own path",{moduleName:e,msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0}),null}}();function b(e){const t=globalThis.HudSourceMapCache.get(e);return t?{map:JSON.parse(t)}:null}const w=new RegExp(`//"([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})";${g.hudConfig.cliSdkVersionVarName}="([^"]+)";${g.hudConfig.cliBuildIdVarName}`);function k(e){if(e.slice(-g.hudConfig.cliBuildIdVarName.length)!==g.hudConfig.cliBuildIdVarName)return null;const t=Math.min(100,e.length),r=e.slice(-t).match(w);return r?{buildId:r[1],sdkVersion:r[2],fullPattern:r[0]}:null}function S(){r(6093).install({handleUncaughtExceptions:!1,hookRequire:!1,environment:"node",retrieveSourceMap:b})}function M(e,t,r,n){const o={code:e,map:void 0};try{if(globalThis.hudRunningMode===p.HudRunningMode.detached)return o;if(r===u.Format.esm&&!n)throw new m.HudError("MessagePort is required for patching ESM modules");const s=k(e);if(s)return s.sdkVersion!==g.SDK_VERSION?(l.instrument_logger.critical("SDK version mismatch detected, disabling SDK",{filename:t,cliSdkVersion:s.sdkVersion,currentSdkVersion:g.SDK_VERSION}),(0,h.detachHud)(!1,!1),o):((0,h.addReingestValue)(s.buildId),globalThis.hudInstrumentationIndicator&&(0,h.clearInstrumentationIndicator)(),o);if(g.hudConfig.userConfig.disableRuntimeInstrumentation?.value)return o;const i=R(t);if(D(t,void 0,i))return o;if(e.length>(g.hudConfig.userConfig.maxFileSizeBytes?.value??0)&&!e.startsWith(g.hudConfig.esbuildMark))return l.instrument_logger.info("Skipping large file",{filename:t,size:e.length}),o;const _=Date.now(),y=(0,f.edit)(e,t,r,i,!1),v=y.metadatas;if(o.code=y.transformedCode,o.map=v,l.instrument_logger.debug("Patched",{filename:t,time:Date.now()-_}),n)for(const e of v)n.postMessage({key:"HudModulePatch",hudPatched:t,hudProcessedFiles:(0,d.sourceFileMetadataToTransferSourceFileMetadata)(e)});else globalThis.hudPatched.add(t),globalThis.hudProcessedFiles.push(...v.map(e=>(0,d.sourceFileMetadataToTransferSourceFileMetadata)(e)));for(const e of v)e.functionIds.length>0&&(globalThis.hudInstrumentationOccured=!0,globalThis.hudInstrumentationIndicator&&(0,h.clearInstrumentationIndicator)(),(0,d.incrementInstrumentedFilesCount)());g.hudConfig.writePatched&&function(e,t){const r=c.parse(e);let n=`${r.dir}/patched.${r.base}`;r.dir.includes("dist")&&(n=c.join(`${r.dir.replace("dist","patched")}`,r.base)),a.existsSync(c.dirname(n))||a.mkdirSync(c.dirname(n),{recursive:!0}),a.writeFileSync(n,t,"utf8"),l.instrument_logger.debug("Dumped patched file",{filename:e,patchedPath:n})}(t,y.transformedCode)}catch(e){l.instrument_logger.error("Failed to patch",{filename:t,format:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o}let E="",x=!0,C=!1;function I(){if(!(0,m.isSupportedNative)())return;const e=r(3339),t=(0,d.shouldSupportSourceMap)();C&&l.instrument_logger.warning("PatchCompile ran twice"),0===Object.keys(globalThis.hudLoadedModules).length&&(globalThis.hudLoadedModules=Object.keys(m.myRequire.cache));const n=e.prototype._compile;e.prototype._compile=function(e,r){if(r===E){try{const e=x?l.instrument_logger.warning.bind(l.instrument_logger):l.instrument_logger.debug.bind(l.instrument_logger);x=!1,e("Skipping compile since already ran",{filename:r})}catch{}return n.call(this,e,r)}E=r,l.instrument_logger.debug("Compiling requirement",{filename:r});const o=M(e,r,u.Format.cjs);try{if(t&&o.map){const e=(0,d.combineSourceMaps)(o.map,r);e&&globalThis.HudSourceMapCache.set(r,e)}}catch(e){l.instrument_logger.error("Failed to combine source maps",{filename:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const s=n.call(this,o.code,r);return E="",s},C=!0,l.instrument_logger.debug("Patched _compile")}function P(e,t,r){try{const n=g.hudConfig.frameworksToPatch.get(t);return F(n,g.hudConfig.userConfig.enableFrameworks)&&n?.patcher&&n.version?(0,y.getFrameworkPatcher)(n.patcher).patch(e,r,n.version,n.extraInfo,t):e}catch(e){l.instrument_logger.error("Failed to patch framework",{name:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}function O(){const e=Array.from(g.hudConfig.frameworksToPatch.entries()).filter(([e,t])=>F(t,g.hudConfig.userConfig.enableFrameworks)).map(([e])=>e);new _.Hook(Array.from(e),{internals:!0},P)}function F(e,t){return!!e&&(t&&t.value?.has(e.framework)?t.value.get(e.framework)||!1:e.enable)}function T(e){const t=c.sep.replace(/\\/g,"\\\\"),r=c.join(e).split(".").join("\\.").split("*").join(".*?"),n=t+"node_modules"+t;return{isAllowdModule:new RegExp(n+r+`(?:${t}|$)`),isAllowdModuleSubModule:new RegExp(n+r+n)}}function j(e,t){return!!t.isAllowdModule.test(e)&&!t.isAllowdModuleSubModule.test(e)}function N(e,t){const r=t.replace(/\//g,c.sep);return e.includes(`node_modules${c.sep}${r}${c.sep}`)&&!e.includes(`node_modules${c.sep}${r}${c.sep}node_modules`)}function R(e){return(0,m.getInstrumentedThirdPartyModuleInfo)(e)?.functions||[]}function L(e){const t=[];for(const r of e){let e;if(r.includes("*")){const t=T(r);e=e=>j(e,t)}else e=e=>N(e,r);t.push(e)}return t}let q=[];function A(){q=L(g.hudConfig.userConfig.includeModules?.value??[])}function D(e,t,r=[]){if(!g.hudConfig.allowedEditExtensions.includes(c.extname(e))&&!e.endsWith(c.sep))return l.instrument_logger.warning("Skipping non-allowed extension",{filename:e}),!0;const n=t??q;return"/var/runtime/index.mjs"===e?(l.instrument_logger.debug("Skipping lambda runtime",{filename:e}),!0):e.includes("node_modules")&&!function(e,t){for(const r of t)if(r(e))return!0;return!1}(e,n)&&0===r.length||e.includes(".yarn")?(l.instrument_logger.debug("Skipping non-monitored imported module",{filename:e}),!0):!(v&&!e.includes(v)||(l.instrument_logger.debug("Skipping hud internal module",{filename:e}),0))}},7214:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8528),s=r(8269),i=r(2546),a=r(523),c=r(8949),u=r(6504),d=r(714);class l extends d.FrameworkPatcher{static graphQLPatchedSymbol=Symbol.for(n.hudConfig.hudPatchedName);_patch(e){return this.patchGraphql(e),a.instrument_logger.info("Patched GraphQL successfully"),e}patchGraphql(e){const t=e.execute;e.execute=function(e){!function(e){try{e&&!e[l.graphQLPatchedSymbol]&&(f(e._queryType),f(e._mutationType),e[l.graphQLPatchedSymbol]=!0,a.instrument_logger.info("Patched GraphQL schema successfully"))}catch(e){a.instrument_logger.error("Failed to patch GraphQL schema",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(e.schema);const r=process.hrtime.bigint();return function(e,t,r){return"function"==typeof e.then?e.then(e=>(m(t,r),e)):(m(t,r),e)}(t.apply(this,arguments),e.document,r)},(0,c.copyPropertiesToTarget)(t,e.execute)}}function f(e){if(!e)return;const t=e._fields;Object.keys(t).forEach(r=>{const n=t[r];!function(e,t,r){if(e.resolve&&!e.resolve[l.graphQLPatchedSymbol]){const n=(0,i.generateGraphqlFlowId)(r,t);(0,s.storeResolverDeclaration)({id:n,operation:t,name:r});const o=e.resolve;e.resolve=(0,c.wrapFlow)(h,o,!0,(e,t)=>{const r=u.GraphQLMetric.createUsableMetric();r.start(),r.setFlowId(e),t.flowMetric=r},(e,t)=>{const r=t.flowMetric;r?r.end():a.instrument_logger.warning("No flowMetric found for resolver",{flowId:e})},(e,t)=>{const r=t.flowMetric;r?r.end():a.instrument_logger.warning("No flowMetric found for resolver",{flowId:e})}),e.resolve[l.graphQLPatchedSymbol]=!0,(0,s.storeResolverIdBySelectionName)(n,r)}}(n,o.GraphQLSupportedOperations[e.name.toLowerCase()],r),n.type._fields&&p(n.type)})}t.default=l;const g=new WeakSet;function p(e){e&&e._fields&&!g.has(e)&&(g.add(e),Object.keys(e._fields).forEach(t=>{const r=e._fields[t];if(!r||!r.type)return;!function(e){const t=e.resolve;t&&!e.resolve[l.graphQLPatchedSymbol]&&(e.resolve=(0,c.wrapFlow)(h,t,!0),e.resolve[l.graphQLPatchedSymbol]=!0)}(r);let n=r.type;for(;n.ofType;)n=n.ofType;p(n)}))}function h(e){if(void 0===e[2]||void 0===e[3])return void a.instrument_logger.warning("GraphQL resolver arguments are unknown");const t=e[3].path;if(t&&!t.prev){const r=t.key,n=(0,s.getResolverIdBySelectionName)(r);return e[2][l.graphQLPatchedSymbol]=n,n}if(e[2][l.graphQLPatchedSymbol])return e[2][l.graphQLPatchedSymbol];a.instrument_logger.warning("GraphQL No functionId found for resolver")}function m(e,t){try{new s.GraphQLDocumentMetadata(e,Number(process.hrtime.bigint()-t)).save()}catch(e){a.instrument_logger.error("Failed to save document metadata",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}},7225:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.skipStackNamesLogs=t.skipLayerNamesLogs=t.isVerboseLoggingEnabled=t.uuidSymbol=void 0,t.logLazyRouter=function(e){const r=e.lazyrouter;e.lazyrouter=function(){let e=!1;try{this._router||(e=!0)}catch(e){a.instrument_logger.error("Failed to check this._router",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const n=r.apply(this,arguments);try{if(e){let e=this[t.uuidSymbol];e||(e=c.randomUUID(),this[t.uuidSymbol]=e,a.instrument_logger.info("Express lazy router setting uuid",{uuid:e})),a.instrument_logger.info("Express lazy router",{parent:e,child:this._router?.[t.uuidSymbol]})}}catch(e){a.instrument_logger.error("Failed to patch express.lazyRouter function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n},(0,d.copyPropertiesToTarget)(r,e.lazyrouter)};const a=r(523),c=i(r(6982)),u=r(932),d=r(8949);t.uuidSymbol=Symbol.for("__hud_uuid__"),t.isVerboseLoggingEnabled="true"===u.env.HUD_LOG_EXPRESS,t.skipLayerNamesLogs=new Set(["query","expressInit","mounted_app"]),t.skipStackNamesLogs=new Set(["router"])},7276:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8544);class o extends n.BaseKafkaJSPatcher{getExportsRoot(e){return e.KafkaJS}getGroupId(e){return e[0].kafkaJS.groupId}moduleName(){return"@confluentinc/kafka-javascript.KafkaJS"}}t.default=o},7603:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getObservabilityIdentifiers=function(e){const t=l();return{datadog_trace_id:t?.trace_id,datadog_span_id:t?.span_id,otel_trace_id:g(),w3c_trace_context:i(e),w3c_baggage:c(e,"baggage"),amazon_trace_id:c(e,"x-amzn-trace-id"),b3_propagation:a(e),jaeger_trace_id:c(e,"uber-trace-id")}},t.getExtraHeaders=function(e){const t={};for(const r of n.hudConfig.dynamicConfig.extraHeaders){const n=c(e,r);void 0!==n&&(t[r]=n)}return t},t.getDatadogIds=l,t.getOtelTraceId=g;const n=r(5809),o=r(2546),s=r(523);function i(e){try{return{traceparent:c(e,"traceparent"),tracestate:c(e,"tracestate")}}catch{return}}function a(e){try{return{full:c(e,"b3"),trace_id:c(e,"x-b3-traceid"),span_id:c(e,"x-b3-spanid"),parent_span_id:c(e,"x-b3-parentspanid")}}catch{return}}function c(e,t){try{return e.headers[t]}catch{return}}function u(e){let t;return()=>(void 0===t&&(t=function(e){try{const t=o.myRequire.resolve(e),r=o.myRequire.cache[t];return void 0===r?(s.instrument_logger.info("requireFromCache: codeModule is undefined",{path:e,fullPath:t}),null):"object"!=typeof r.exports?(s.instrument_logger.warning("requireFromCache: codeModule.exports is not an object",{path:e}),null):r.exports}catch(t){return s.instrument_logger.warning("requireFromCache: error",{path:e,error:t}),null}}(e)),t)}const d=u("dd-trace/packages/datadog-core");function l(){try{const e=d();if(null===e)return;const{storage:t}=e,r=t("legacy").getStore();return{trace_id:r.span._spanContext.toTraceId(),span_id:r.span._spanContext.toSpanId()}}catch{return}}const f=u("@opentelemetry/api");function g(){try{const e=f();if(null===e)return;const{trace:t}=e;return t.getActiveSpan()?.spanContext().traceId}catch{return}}},7808:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getMachineMetrics=function(){try{const e=(0,o.getLastMetrics)();return{cpu_usage:e.cpuUsage?l(e.cpuUsage,e.timestamp):void 0,memory_usage:d(),event_loop_utilization:e.elu?u(e.elu):void 0}}catch(e){return void i.app_logger.error("Error getting machine metrics",e)}},t.getCpuUsage=l;const o=r(8269),s=r(2546),i=r(523),a=n(r(857)),c=r(2987);function u(e){try{return c.performance.eventLoopUtilization(e).utilization}catch(e){return void i.app_logger.error("Error getting event loop utilization",e)}}function d(){try{const e=process.memoryUsage(),t=a.default.totalmem();return{rss:e.rss,heap_total:e.heapTotal,heap_used:e.heapUsed,external:e.external,system_memory:t,rss_percentage:e.rss/t*100}}catch(e){return void i.app_logger.error("Error getting memory usage",e)}}function l(e,t){try{const r=process.cpuUsage(),n=1e3*(Date.now()-t),o=(0,s.getCpuLimit)(i.app_logger),a=(r.user-e.user)/n,c=(r.system-e.system)/n;return{user_time:a,system_time:c,limit:o,user_percent_of_limit:"number"==typeof o?a/o*100:void 0,system_percent_of_limit:"number"==typeof o?c/o*100:void 0}}catch(e){return void i.app_logger.error("Error getting cpu usage",e)}}},8064:e=>{"use strict";e.exports=require("semver")},8269:e=>{"use strict";e.exports=require("./globalstate")},8528:e=>{"use strict";e.exports=require("./dto")},8544:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseKafkaJSPatcher=void 0;const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(8949),c=r(828),u=r(714);class d extends u.FrameworkPatcher{_patch(e){const t=this.getExportsRoot(e);return this._patchConsumer(t),i.instrument_logger.info(`Patched ${this.moduleName()} successfully`),e}_patchConsumer(e){const t=e.Kafka.prototype.consumer;if(!t)return void i.instrument_logger.error("DD presumably ran before HUD - exports.Kafka.prototype.consumer is undefined");const r=this.getGroupId.bind(this);e.Kafka.prototype.consumer=function(...e){const o=t.apply(this,e);try{const t=new Map,s=[],u=[];!function(e,t){const r=e.subscribe;e.subscribe=async function(...e){const n=await r.apply(this,e);try{const r=e[0].topics;r?r.forEach(e=>{t.push(e)}):e[0].topic?t.push(e[0].topic):i.instrument_logger.warning("No topic found in KafkaJS.Consumer.subscribe",{args:e[0]})}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer.subscribe",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n},(0,a.copyPropertiesToTarget)(r,e.subscribe)}(o,u),function(e,t,r,o,s){const u=e.run;function d(e,u){const d="eachBatch"===u;for(const e of s)p(e,o,t,r,u);const h=function(e,t,r){return n=>{const o=n[0],s=r?o.batch.topic:o.topic;return function(e,t,r,n){const o=e.get(g(r,n));if(o)return o;for(const e of t)if(e.isBatch===n&&e.pattern.test(r))return e.flowId;i.instrument_logger.warning("No flowId found for topic",{topicName:r,isBatch:n})}(e,t,s,r)}}(t,r,d),m=function(e){return(t,r,o)=>{const s=c.KafkaJSMetric.createUsableMetric();s.start(),s.setFlowId(t);const i=o[0];void 0!==i&&void 0!==i.message&&(i.message[n.hudConfig.metricSymbol]=s);const a=e?i.batch.partition:i.partition,u=e?i.batch.messages[0]?.timestamp:i.message?.timestamp;s.addPartition(a),s.addProducedTimestamp(u),r.flowMetric=s}}(d),_=(0,a.wrapFlow)(h,e[u],!0,m,l,f);e[u]=_}e.run=async function(...e){try{const t=e[0];t.eachMessage&&d(t,"eachMessage"),t.eachBatch&&d(t,"eachBatch")}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer.run",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return await u.apply(this,e)},(0,a.copyPropertiesToTarget)(u,e.run)}(o,t,s,r(e),u)}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o},(0,a.copyPropertiesToTarget)(t,e.Kafka.prototype.consumer)}}function l(e,t){const r=t.flowMetric;r?r.end():i.instrument_logger.warning("No flowMetric found for message",{flowId:e})}function f(e,t,r){const n=t.flowMetric;n?(n.setError(r),n.end()):i.instrument_logger.warning("No flowMetric found for message",{flowId:e})}function g(e,t){return e+"|"+t}function p(e,t,r,n,i){const a=(0,s.generateKafkaFlowId)(e,t,i),c={flow_id:a,topic_name:e.toString(),group_id:t,pulling_type:i};(0,o.storeKafkaJSTopicDeclaration)(c),function(e,t,r,n,o){"string"==typeof r?e.set(g(r,n),o):t.push({pattern:r,isBatch:n,flowId:o})}(r,n,e,"eachBatch"===i,a)}t.BaseKafkaJSPatcher=d},8611:e=>{"use strict";e.exports=require("http")},8949:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncFunction=void 0,t.wrapFlow=function(e,r,c=!0,u,d,l){let f;const g=(0,s.getFlowStateStorage)();return g?r[i]?r:(f=r instanceof t.AsyncFunction?async function(...t){let i;try{i=e(t)}catch(e){o.instrument_logger.error("Failed to get flowId",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(!i||hudRunningMode!==n.HudRunningMode.enabled)return await r.apply(this,t);const a={};if(u)try{u(i,a,t)}catch(e){o.instrument_logger.error("Failed to execute beforeCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const f=(0,s.getHttpMetricFromFlowState)();f?.setFlowId(i);try{const e=g.run({flowId:i,shouldLinkFunction:c,httpMetric:f},Reflect.apply,r,this,t),n=await e;if(d)try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n}catch(e){if(l)try{l(i,a,e)}catch(e){o.instrument_logger.error("Failed to execute catchCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}throw e}}:function(...t){let i;try{i=e(t)}catch(e){o.instrument_logger.error("Failed to get flowId",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(!i||hudRunningMode!==n.HudRunningMode.enabled)return r.apply(this,t);const a={};if(u)try{u(i,a,t)}catch(e){o.instrument_logger.error("Failed to execute beforeCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const f=(0,s.getHttpMetricFromFlowState)();f?.setFlowId(i);try{const e=g.run({flowId:i,shouldLinkFunction:c,httpMetric:f},Reflect.apply,r,this,t);if(d)if(e instanceof Promise)e.then(()=>{try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}});else try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}catch(e){if(l)try{l(i,a,e)}catch(e){o.instrument_logger.error("Failed to execute catchCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}throw e}},a(r,f),f[i]=!0,f):r},t.copyPropertiesToTarget=a;const n=r(8528),o=r(523),s=r(7131);t.AsyncFunction=(async()=>{}).constructor;const i=Symbol.for("hudMarked");function a(e,t){const r=Object.getOwnPropertyDescriptors(e),n=Reflect.ownKeys(r);Object.setPrototypeOf(t,e),n.forEach(e=>{try{Object.defineProperty(t,e,r[e])}catch{}})}},9063:e=>{"use strict";e.exports=require("require-in-the-middle")},9589:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8528),o=r(8269),s=r(2546),i=r(523),a=r(8949),c=r(714);class u extends c.FrameworkPatcher{static nextJSHudMarked=Symbol.for("hudNextJSMarked");static routeInfoSymbol=Symbol.for("hudNextJSRouteInfo");static standardMethods=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"];_patch(e){return(0,s.setIsNextJsApp)(!0),this._patchBaseServer(e),i.instrument_logger.info("Patched Next.js successfully"),e}_patchBaseServer(e){try{const t=e.default;if(t[u.nextJSHudMarked])return e;const r=t.prototype.renderToResponseWithComponentsImpl;if(!r)return i.instrument_logger.error("Could not find renderToResponseWithComponentsImpl on BaseServer.prototype"),e;t.prototype.renderToResponseWithComponentsImpl=async function(e,t,...n){try{const r=t.components;if(r&&r.routeModule&&!r.routeModule[u.nextJSHudMarked]){const t=r.routeModule,n=t.definition?.pathname||e.pathname;u._detectAndPatchSupportedMethods(t,n),t[u.nextJSHudMarked]=!0}}catch(e){i.instrument_logger.error("Failed to patch Next.js route module",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return await r.apply(this,[e,t,...n])},t[u.nextJSHudMarked]=!0,(0,a.copyPropertiesToTarget)(r,t.prototype.renderToResponseWithComponentsImpl)}catch(e){i.instrument_logger.error("Failed to patch Next.js base server",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}static _detectAndPatchSupportedMethods(e,t){try{switch(i.instrument_logger.debug("Patching Next.js route module",{pathname:t,kind:e.definition?.kind||"unknown"}),e.definition.kind){case"APP_ROUTE":case"PAGES_API":u._patchApiModule(e,t);break;case"PAGES":case"APP_PAGE":u._patchPageModule(e,t);break;default:i.instrument_logger.warning("Unknown Next.js route module kind",{pathname:t,kind:e.definition?.kind||"unknown"})}}catch(e){i.instrument_logger.error("Error detecting and patching supported methods",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}static _patchApiModule(e,t){if(e.methods)for(const r of u.standardMethods)if("function"==typeof e.methods[r]&&"function"==typeof e.userland?.[r]){const c=(0,s.generateEndpointFlowId)(t,[r]);(0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(c,[r],"nextjs","",t));try{const t=e.methods[r];e.methods[r]=(0,a.wrapFlow)(()=>c,t,!0)}catch(e){i.instrument_logger.error("Failed to patch Next.js App Route method",{method:r,pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}if(e.userland?.default){const r=u.standardMethods.filter(t=>!e.methods?.[t]),i=(0,s.generateEndpointFlowId)(t,r);(0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(i,r,"nextjs","",t));const c=e.userland.default;e.userland={...e.userland,default:(0,a.wrapFlow)(()=>i,c,!0)}}}static _patchPageModule(e,t){const r=(0,s.generateEndpointFlowId)(t,["GET"]);if((0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(r,["GET"],"nextjs","",t)),e.render&&"function"==typeof e.render&&!e.render[this.nextJSHudMarked])try{const n=e.render;e.render=function(...e){try{const n=e[2]?.renderOpts?.Component;if(n&&"function"==typeof n){const t=(0,a.wrapFlow)(()=>r,n,!0);e[2].renderOpts.Component=t}const o=e[2]?.renderOpts?.ComponentMod;if(o){for(const t of Object.keys(o))if(o[t]&&"function"==typeof o[t]){const n=(0,a.wrapFlow)(()=>r,o[t],!0);e[2].renderOpts.ComponentMod[t]=n}}else i.instrument_logger.error("No Component found on Next.js page component",{pathname:t})}catch{}return n.apply(this,e)},(0,a.copyPropertiesToTarget)(n,e.render),e.render[this.nextJSHudMarked]=!0}catch(e){i.instrument_logger.error("Failed to patch Next.js Page render method",{pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(e.userland?.loaderTree)try{l(e.userland.loaderTree,r)}catch(e){i.instrument_logger.error("Failed to patch App Router page component",{pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}else i.instrument_logger.info("No loader tree found on Next.js page component, functions will be patched by the render function",{pathname:t})}}function d(e,t,r){return(...n)=>{const o=e(...n),s=e=>{if(e&&"function"==typeof e.default){const n=(0,a.wrapFlow)(()=>r,e.default,t);e={...e,default:n}}return e};return o&&"function"==typeof o.then?o.then(s):s(o)}}function l(e,t){const[,r,n]=e;for(const e of Object.keys(n))try{const r=n[e];if(Array.isArray(r)&&"function"==typeof r[0]){const n="page"===e,o=r[0];r[0]=d(o,n,t),(0,a.copyPropertiesToTarget)(o,r[0])}}catch(e){i.instrument_logger.error("Failed to iterate on Next.js components",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}for(const e of Object.values(r))try{l(e,t)}catch(e){i.instrument_logger.error("Failed to walk on Next.js parallel routes",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}t.default=u},9723:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=r(8269),c=r(2546),u=r(523),d=r(9896),l=i(r(6928)),f=r(8949),g=r(714);class p extends g.FrameworkPatcher{_patch(e){(0,c.setIsNextJsApp)(!0);const t=this._patchLoadConfig(e);return u.instrument_logger.info("Patched next.js config successfully"),t}_patchLoadConfig(e){const t=e.default,r=async function(...e){const r=await t.call(this,...e);if(!r)return r;try{const t=e[1],n=l.join(t,r.distDir||".next"),o=l.join(n,a.apiManifest),s=l.join(n,a.pageManifest),i=await d.promises.access(o).then(()=>!0).catch(()=>!1),c=await d.promises.access(s).then(()=>!0).catch(()=>!1);(0,a.isNextConfigExtracted)()||!i&&!c||(u.instrument_logger.info("Extracted next.js config successfully"),(0,a.setNextConfig)(r))}catch(e){u.instrument_logger.error("Failed to patch next.js loadConfig",{msg:e instanceof Error?e.message:String(e),stack:e instanceof Error?e.stack:void 0})}return r};(0,f.copyPropertiesToTarget)(t,r);const n=Object.create(Object.getPrototypeOf(e));return Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}}),(0,f.copyPropertiesToTarget)(e,n),n}}t.default=p},9873:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FlowMetric=void 0;const o=r(8528),s=r(8269),i=n(r(932));t.FlowMetric=class{_state;flowId;duration;_startTime;_msStartTime;errorBreakdown;constructor(e){this.flowId=e,this.duration=0,this._state="usable"}static createUsableMetric(e){return new this(e)._createUsableMetric(e)}setFlowId(e){this.flowId=e}getFlowId(){return this.flowId}getMsStartTime(){return this._msStartTime}start(){this._startTime=i.default.hrtime.bigint(),this._msStartTime=Date.now()}setErrorBreakdown(e){this.errorBreakdown=e}end(){this._startTime&&(this.duration=Number(i.default.hrtime.bigint()-this._startTime)),this.#e(),this._state="unusable"}#e(){if(hudRunningMode===o.HudRunningMode.enabled){const e=this.toRaw();e&&(0,s.storeFlowMetric)(e)}}}},9896:e=>{"use strict";e.exports=require("fs")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}return r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r(2197)})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)("object"==typeof exports?exports:e)[n]=r[n]}}(global,()=>(()=>{var e={336:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return this._patchSendRequest(e),n.instrument_logger.info("Patched @codegenie/serverless-express/src/frameworks/express.js successfully"),e}_patchSendRequest(e){const t=e.sendRequest;e.sendRequest=function(e){const r=e?.request,i=e?.response;if(!r||!i)return t.call(this,e);const c=a.HttpEndpointMetric.createUsableMetric(),u=(0,o.getFlowStateStorage)(),d=()=>{try{c.start(),c.setRequestAttributes(r)}catch(e){n.instrument_logger.error("Failed to start flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const o=(0,s.runWithInvestigation)(()=>t.call(this,e));try{i.once("finish",function(){try{(0,s.finishHttpInvestigation)(r,i,c),c.setResponseAttributes(i),c.end()}catch(e){n.instrument_logger.error("Failed to end flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}catch(e){n.instrument_logger.error("Failed to end flowMetric during sendRequest patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o};return u?u.run({httpMetric:c},d):d()},(0,i.copyPropertiesToTarget)(t,e.sendRequest)}}t.default=u},486:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8544);class o extends n.BaseKafkaJSPatcher{getExportsRoot(e){return e}getGroupId(e){return e[0].groupId}moduleName(){return"KafkaJS"}}t.default=o},523:e=>{"use strict";e.exports=require("./logger")},646:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(8949),s=r(5128),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return this._patchCreate(e),n.instrument_logger.info("Patched NestJS RouterExecutionContext successfully"),e}_patchCreate(e){const t=e.RouterExecutionContext.prototype.create;e.RouterExecutionContext.prototype.create=function(...e){try{const t=e[0],r=e[1];"function"==typeof t.constructor&&"function"==typeof r?e[1]=(0,s.wrapLinkedFunction)(r):n.instrument_logger.error("Invalid args in NestJS RouterExecutionContext.create",{args:e})}catch(e){n.instrument_logger.error("Error in NestJS RouterExecutionContext patcher",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,e)},(0,o.copyPropertiesToTarget)(t,e.RouterExecutionContext.prototype.create)}}t.default=a},714:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.FrameworkPatcher=void 0,t.isSupportedVersion=f,t.extractModuleVersion=g,t.getFrameworkPatcher=function(e){return new(r(2828)(`./${e}`).default)};const a=r(2546),c=r(523),u=r(9896),d=i(r(6928)),l=r(8064);function f(e,t){return""===e||l.satisfies(l.coerce(e),t)}function g(e){try{const t=(0,u.readFileSync)(d.join(e,"package.json"),{encoding:"utf8"}),r=JSON.parse(t).version;return"string"==typeof r?r:""}catch{c.instrument_logger.info("Failed extracting version",{baseDir:e})}return""}t.FrameworkPatcher=class{patch(e,t,r,n,o=this.constructor.name){try{if(this.isSupported(t,o,r,n))return this._patch(e)}catch(e){c.instrument_logger.error("Unhandeled error during patching framework",{framework:o,error:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}isSupported(e,t,r,n){const o=g(e);return!!f(o,r)||(c.instrument_logger.warning("Unsupported version",{framework:t,version:o,supportedVersion:r,basedir:e}),c.customer_logger.log(a.UserErrorLogs.UnsupportedFrameworkVersion(t)),!1)}}},828:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KafkaJSMetric=void 0;const n=r(523),o=r(7131),s=r(9873);class i extends s.FlowMetric{partition;error;producedTimestamp;totalConsumeDuration;constructor(e){super(e)}_createUsableMetric(e){return this}end(){this.producedTimestamp&&(this.totalConsumeDuration=Number(Date.now()-this.producedTimestamp)*Number(1e6)),super.end()}addProducedTimestamp(e){void 0!==e&&(this.producedTimestamp=Number(e))}addPartition(e){this.partition=e}setError(e){this.error=(0,o.extractName)(e)}toRaw(){if(void 0!==this.partition)return{flow_id:this.flowId,type:"KafkaJSMetric",duration:this.duration,partition:this.partition,error:this.error,total_consume_duration:this.totalConsumeDuration};n.instrument_logger.warning("No partition found for message",{flowId:this.flowId})}}t.KafkaJSMetric=i},857:e=>{"use strict";e.exports=require("os")},932:e=>{"use strict";e.exports=require("process")},1326:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=r(2546),s=r(523),i=r(8949),a=r(714),c=n(r(9589));class u extends a.FrameworkPatcher{static nextJSHudMarked=Symbol.for("hudNextJSMarked");_patch(e){return(0,o.setIsNextJsApp)(!0),this._pathLoad(e),s.instrument_logger.info("Patched Next.js successfully"),e}_pathLoad(e){try{const t=e.RouteModuleLoader;if(t[u.nextJSHudMarked])return e;const r=t.load;t.load=async function(...e){const t=await r.apply(this,e);try{if(t){const e=t.definition?.pathname;e&&!t[u.nextJSHudMarked]&&(c.default._detectAndPatchSupportedMethods(t,e),t[u.nextJSHudMarked]=!0)}}catch(e){s.instrument_logger.error("Failed to patch Next.js route module",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t},t[u.nextJSHudMarked]=!0,(0,i.copyPropertiesToTarget)(r,t.load)}catch(e){s.instrument_logger.error("Failed to patch Next.js base server",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}}t.default=u},1427:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getSystemInfo=function(){return{pod_name:u(),node_name:d()}};const o=n(r(9896)),s=n(r(857)),i=Symbol("not found");let a,c;function u(){if(a!==i){if(a)return a;try{return a=s.default.hostname(),a}catch{return void(a=i)}}}function d(){if(c!==i){if(c)return c;try{const e=o.default.readFileSync("/etc/machine-id","utf8").trim();return c=e,c}catch{return void(c=i)}}}},1502:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8528),s=r(8269),i=r(2546),a=r(523),c=r(8949),u=r(714);class d extends u.FrameworkPatcher{static koaModuleName="koa";static koaPatchedSymbol=Symbol.for(n.hudConfig.hudPatchedName);_patch(e){return this._patchAppUse(e),a.instrument_logger.info("Patched koa successfully"),e}_patchAppUse(e){const t=e.prototype.use;e.prototype.use=function(e){const r=t.apply(this,arguments);try{if(!arguments[0].router)return r;const e=arguments[0].router.stack;for(let t=0;t<e.length;t++)d._wrapRoute(e[t])}catch(e){a.instrument_logger.error("Failed to patch koa.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return r},(0,c.copyPropertiesToTarget)(t,e.prototype.use)}static _wrapRoute(e){if(e.methods&&0===e.methods.length)return;if(!e.stack[0][d.koaPatchedSymbol]){const t=(0,c.wrapFlow)(p,e.stack[0],!0);e.stack[0]=t,e.stack[0][d.koaPatchedSymbol]=!0}const t=(0,i.generateEndpointFlowId)(e.path,e.methods);(0,s.storeEndpointDeclaration)(new o.EndpointDeclaration(t,e.methods,"koa",void 0,e.path));for(const r of e.methods)g(t,e.path,r)}}function l(e,t){return e+"|"+t}t.default=d;const f=new Map;function g(e,t,r){f.set(l(t,r),e)}function p(e){if(0===e.length)return;const t=e[0]._matchedRoute,r=e[0].req?.method;return function(e,t){return f.get(l(e,t))}(t,r)}},2080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SqsMetric=void 0;const n=r(9873);class o extends n.FlowMetric{errors;msgCount;e2eEpocStartTimeMS;e2eDurationNS;_finishedMessageCount;constructor(e){super(e),this._finishedMessageCount=0,this.errors=new Map}addError(e,t=1){this.errors.set(e,(this.errors.get(e)??0)+t)}increaseAndShouldEnd(e=1){return this._finishedMessageCount+=e,!(this.msgCount&&this._finishedMessageCount<this.msgCount)}end(){this.e2eEpocStartTimeMS&&(this.e2eDurationNS=Number(Date.now()-this.e2eEpocStartTimeMS)*Number(1e6)),super.end()}_createUsableMetric(e){return this}toRaw(){return{flow_id:this.flowId,type:"SqsMetric",duration:this.duration,e2e_duration:this.e2eDurationNS,msg_count:this.msgCount,errors:this.errors,error_breakdown:this.errorBreakdown}}}t.SqsMetric=o},2197:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||o(t,e,r)},a=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.koa=t.express=t.safeLog=t.registerHook=t.hudRITM=void 0;var c=r(5688);Object.defineProperty(t,"hudRITM",{enumerable:!0,get:function(){return c.hudRITM}}),Object.defineProperty(t,"registerHook",{enumerable:!0,get:function(){return c.registerHook}}),Object.defineProperty(t,"safeLog",{enumerable:!0,get:function(){return c.safeLog}}),i(r(3901),t),t.express=a(r(7127)),i(r(714),t),t.koa=a(r(1502)),i(r(7166),t)},2546:e=>{"use strict";e.exports=require("./lib")},2729:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){const t=this._patchGetFramework(e);return n.instrument_logger.info("Patched serverless-http/lib/framework/get-framework.js successfully"),t}_patchGetFramework(e){const t=e;return e=function(...e){const r=t.apply(t.this,e);async function c(e,...t){const i=a.HttpEndpointMetric.createUsableMetric(),c=(0,o.getFlowStateStorage)(),u=async()=>{try{i.start(),i.setRequestAttributes(e)}catch(e){n.instrument_logger.error("Failed to start flowMetric during framework serverless request handler patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const o=await(0,s.runWithInvestigation)(()=>r.apply(r.this,[e,...t]));return o.once("finish",function(){try{(0,s.finishHttpInvestigation)(e,o,i),i.setResponseAttributes(o),i.end()}catch(e){n.instrument_logger.error("Failed to end flowMetric during framework serverless request handler patching",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}),o};return c?await c.run({httpMetric:i},u):await u()}return(0,i.copyPropertiesToTarget)(r,c),c},(0,i.copyPropertiesToTarget)(t,e),e}}t.default=u},2741:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(4815),i=r(7225),a=r(714);class c extends a.FrameworkPatcher{_patch(e){return i.isVerboseLoggingEnabled?((0,o.patchMethods)(e,"application_export"),(0,s.patchUse)(e,"application",!1),(0,i.logLazyRouter)(e),n.instrument_logger.info("Patched express.Application successfully"),e):(n.instrument_logger.info("Skipping express.Application patching, verbose logging is not enabled"),e)}}t.default=c},2784:e=>{"use strict";e.exports=require("../native/_index")},2822:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getStackTraceWithoutMessage=l,t.serializableInvestigation=p,t.getBaseInvestigationStorage=h,t.createNewInvestigation=function(){if(!globalThis.hudEnableInvestigation)return;const e=(0,a.getInvestigationStorage)();void 0!==e&&e.enterWith(h())},t.runWithInvestigation=function(e){if(!globalThis.hudEnableInvestigation)return e();const t=(0,a.getInvestigationStorage)();return void 0===t?e():t.run(h(),e)},t.closeInvestigation=m,t.storeInvestigation=_,t.getInvestigationDedupingKey=v,t.minimizeObject=w,t.finishHttpInvestigation=function(e,t,r){if(t.statusCode<500)return;try{g("http requests headers",{headers:Object.keys(e.headers)})}catch{g("failed to log http requests headers")}const n=k(r);if(void 0===n)return void g("finishHttpInvestigation: base investigation return undefined");const o=r.getFlowId(),s=r.getMsStartTime();void 0!==o&&void 0!==r.route&&void 0!==r.method&&void 0!==s?_(n,{type:"http",endpoint_uuid:o,route:r.route,method:r.method,timestamp:s,params:e.params,query:e.query,request_body:w(e.body),status_code:t.statusCode,machine_metrics:(0,c.getMachineMetrics)(),observability_identifiers:(0,u.getObservabilityIdentifiers)(e),extra_headers:(0,u.getExtraHeaders)(e),system_info:(0,d.getSystemInfo)()}):g("route, method, or reqTimestamp are undefined even though they shouldn't",{flowId:o,route:r.route,method:r.method,reqTimestamp:s})},t.finishSqsInvestigation=function(e,t){if(0===t.errors.size)return;const r=k(t);if(void 0===r)return void g("finishSqsInvestigation: investigation is undefined");const n=t.getFlowId(),o=t.getMsStartTime();void 0!==o&&void 0!==n?_(r,{type:"sqs",timestamp:o,flow_id:n,messages:w(e),machine_metrics:(0,c.getMachineMetrics)(),system_info:(0,d.getSystemInfo)()}):g("reqTimestamp is undefined even though it shouldn't",{flowId:n})},t.getErrorRecordsFromInvestigation=S;const n=r(5809),o=r(8528),s=r(8269),i=r(523),a=r(7131),c=r(7808),u=r(7603),d=r(1427);function l(e,t){if(void 0===t)return;const r=function(e){let t=0;for(let r=0;r<e.length;r++)"\n"===e[r]&&t++;return t}(e)+1;let n=-1;for(let e=0;e<r;e++)if(n=t.indexOf("\n",n+1)??-1,-1===n)return;return-1!==n?t.slice(n+1):void 0}const f={};function g(e,...t){let r="debug";(void 0===f[e]||f[e]<n.hudConfig.dynamicConfig.investigationRateLimits.maxUniqLogs)&&(r="warning",f[e]=f[e]+1||1),i.app_logger.logLevel(r,e,...t)}function p(e){return{status:e.status,context:e.context,exceptions:Array.from(e.exceptions.values()).map(({exception:e,executionFlow:t,caught:r})=>({name:(0,a.extractName)(e),message:(0,a.extractMessage)(e),stackTrace:e instanceof Error?l(e.message,e.stack):void 0,executionFlow:t.map(e=>({function_id:e.function_id,caller_id:e.caller_id,args:void 0!==e.args?w(e.args):void 0})),caught:r})),userContext:e.userContext,caught:e.caught}}function h(){return{status:o.InvestigationStatus.Open,caught:!0,exceptions:new Map}}function m(){if(!globalThis.hudEnableInvestigation)return;const e=(0,a.getInvestigationStorage)();if(void 0===e)return;const t=e.getStore();return void 0!==t&&t.status===o.InvestigationStatus.Open?(t.status=o.InvestigationStatus.Closed,t):void 0}function _(e,t){e.context=t,(0,s.storeClosedInvestigation)(p(e))}function y(e){for(const t of e)if(!t.is_outbound_function)return t.function_id}function v(e,t){let r="";for(const t of e)r+=`${t.error_type}-${t.function_id}|`;return r+=`${t}`,r}let b=null;function w(e,t=n.hudConfig.investigation.maxObjectDepth,o=new WeakSet){try{if(null===b&&(b=r(8611).IncomingMessage),null!==e&&"object"==typeof e){if(o.has(e))return"[Circular Reference]";if(b&&e instanceof b)return"[Http Request]";o.add(e)}if(null==e||["number","boolean"].includes(typeof e))return e;if("string"==typeof e)return e.length>n.hudConfig.investigation.maxStringLength?e.slice(0,n.hudConfig.investigation.maxStringLength)+"...":e;if(["bigint","symbol"].includes(typeof e))return w(e.toString(),t-1,o);if("function"==typeof e)return`[Function: ${e.name||"anonymous"}]`;if(void 0===e)return;if(Array.isArray(e))return t<=0?"[Array]":e.slice(0,n.hudConfig.investigation.maxArrayLength).map(e=>w(e,t-1,o));if(e instanceof Map)return t<=0?"[Map]":{"[Map]":Array.from(e.entries()).slice(0,n.hudConfig.investigation.maxArrayLength).map(([e,r])=>[w(e,t-1,o),w(r,t-1,o)])};if(e instanceof Set)return t<=0?"[Set]":{"[Set]":Array.from(e.values()).slice(0,n.hudConfig.investigation.maxArrayLength).map(e=>w(e,t-1,o))};if(e instanceof Date){let r;try{r=e.toISOString()}catch{}return w(r,t-1,o)}if(e instanceof RegExp)return w(e.toString(),t-1,o);if(e&&"Proxy"===e[Symbol.toStringTag])return w(e.target||e,t-1,o);if(e&&e[Symbol.toStringTag])return`[${e[Symbol.toStringTag]}]`;if("object"==typeof e){if(t<=0)return"[Object]";const r={},s=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);for(const i of s.slice(0,n.hudConfig.investigation.maxArrayLength))try{r[i]=w(e[i],t-1,o)}catch{}for(const s of i.slice(0,n.hudConfig.investigation.maxArrayLength))try{r[s.toString()]=w(e[s],t-1,o)}catch{}return r}}catch{}}function k(e){const t=m();if(void 0===t)return void g("finishBaseInvestigation: investigation is undefined");const r=e.getFlowId();if(void 0===r)return void g("finishBaseInvestigation: flowId is undefined");const o=S(t),i=v(o,t.caught);if(e.setErrorBreakdown({key:i,errors:o,caught:t.caught}),s.globalInvestigationTracking>=n.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations)return void g("finishBaseInvestigation: globalInvestigationTracking is greater than maxTotalInvestigations",{globalInvestigationTracking:s.globalInvestigationTracking,maxTotalInvestigations:n.hudConfig.dynamicConfig.investigationRateLimits.maxTotalInvestigations});const a=((0,s.getInvestigationDedupingCache)(r).get(i)??0)+1;if(!(a>n.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations))return(0,s.increaseGlobalInvestigationTracking)(),(0,s.increaseInvestigationDedupingCache)(r,i),t;g("finishBaseInvestigation: investigationCount is greater than maxSameInvestigations",{investigationCount:a,maxSameInvestigations:n.hudConfig.dynamicConfig.investigationRateLimits.maxSameInvestigations})}function S(e){const t=new Set,r=[];for(const n of e.exceptions.values()){const e=(0,a.extractName)(n.exception),o=y(n.executionFlow)??"",s=`${e}-${o}`;if(t.has(s))continue;t.add(s);const i={error_type:e,function_id:o};r.push(i)}return r}},2828:(e,t,r)=>{var n={"./baseKafkaJsPatcher":8544,"./baseKafkaJsPatcher.ts":8544,"./codeGenieServerlessExpress":336,"./codeGenieServerlessExpress.ts":336,"./confluentKafkaJs":7276,"./confluentKafkaJs.ts":7276,"./express":7127,"./express.ts":7127,"./express/methods":6730,"./express/methods.ts":6730,"./express/route":2977,"./express/route.ts":2977,"./express/router":4815,"./express/router.ts":4815,"./express/verbosity":7225,"./express/verbosity.ts":7225,"./expressApplication":2741,"./expressApplication.ts":2741,"./flows/flow":9873,"./flows/flow.ts":9873,"./flows/graphql":6504,"./flows/graphql.ts":6504,"./flows/http":4393,"./flows/http.ts":4393,"./flows/kafkajs":828,"./flows/kafkajs.ts":828,"./flows/sqs":2080,"./flows/sqs.ts":2080,"./frameworkPatcher":714,"./frameworkPatcher.ts":714,"./graphql":7214,"./graphql.ts":7214,"./http":5459,"./http.ts":5459,"./kafkajs":486,"./kafkajs.ts":486,"./koa":1502,"./koa.ts":1502,"./nestjsRouterExecutionContext":646,"./nestjsRouterExecutionContext.ts":646,"./nestjsRpcContextCreator":4290,"./nestjsRpcContextCreator.ts":4290,"./nextJsConfig":9723,"./nextJsConfig.ts":9723,"./nextJsModuleLoader":1326,"./nextJsModuleLoader.ts":1326,"./nextjs":9589,"./nextjs.ts":9589,"./router":5946,"./router.ts":5946,"./serverlessHttp":2729,"./serverlessHttp.ts":2729,"./sqsConsumer":5150,"./sqsConsumer.ts":5150};function o(e){var t=s(e);return r(t)}function s(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}o.keys=function(){return Object.keys(n)},o.resolve=s,e.exports=o,o.id=2828},2977:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.patchRoute=function(e){const t=(0,g.getMethods)();t.concat("all").forEach(function(r){const n=e.prototype[r];e.prototype[r]=function(){let e;try{e=p(Array.prototype.slice.call(arguments));let n=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];if(t)return t.flowId}(e);const o=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];if(t)return t.kind}(e),s=function(e){const t=e[0][a.hudConfig.express.layerStateSymbol];return!!t&&t.allMethod}(e);if(n||(n=[l.randomUUID()]),"application"===o)if(Array.isArray(this.path)){_(e,void 0);for(let e=0;e<this.path.length;e++)m(n[e],s?t:[r],this.path[e])}else _(e,n[0]),m(n[0],s?t:[r],this.path);else if("router"===o)if(Array.isArray(this.path)){_(e,void 0);for(let e=0;e<this.path.length;e++)h(this,n[e],r,this.path[e])}else _(e,n[0]),h(this,n[0],r,this.path);else _(e,n[0]),h(this,n[0],r,this.path)}catch(e){d.instrument_logger.error("Failed to patch express.Route.route",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n.apply(this,e||arguments)}})};const a=r(5809),c=r(8528),u=r(8269),d=r(523),l=i(r(6982)),f=r(8949),g=r(6730),p=r(5673);function h(e,t,r,n){!function(e,t,r,n){e[a.hudConfig.express.layerStateSymbol]||(e[a.hudConfig.express.layerStateSymbol]={}),e[a.hudConfig.express.layerStateSymbol][t]?e[a.hudConfig.express.layerStateSymbol][t].methods.push(r):e[a.hudConfig.express.layerStateSymbol][t]={layerPath:n,methods:[r]}}(e,t,r,n),function(e,t,r){const n=new c.EndpointDeclaration(e,[t],"express",void 0,void 0,r);(0,u.storePartialEndpointDeclaration)(n),(0,u.storeExpressEndpointDeclaration)(n)}(t,r,n)}function m(e,t,r){const n=new c.EndpointDeclaration(e,t,"express",void 0,r,void 0);(0,u.storeExpressEndpointDeclaration)(n)}function _(e,t){if(e&&!(e.length<1)){if(a.hudConfig.express.wrapAllCallbacks)for(let r=0;r<e.length;r++){const n=(0,f.wrapFlow)(v(t),e[r],!0);e[r]=n}else{const r=(0,f.wrapFlow)(v(t),e[e.length-1],!0);e[e.length-1]=r}return t}}function y(e){return(0,u.getLinkedConsistentFlowId)(e,!1)||(d.instrument_logger.warning("No consistent flowId found, returning temporary flow id",{flowId:e}),e)}function v(e){return e?function(){return y(e)}:function(e){const t=e[0]?.route[a.hudConfig.express.layerStateSymbol],r=e[0]?.url;if(t)for(const[e,n]of Object.entries(t)){if(n.layerPath instanceof RegExp&&n.layerPath.test(r))return y(e);if(r.includes(n.layerPath))return y(e)}d.instrument_logger.warning("No flowId found for path",{states:t,url:r.split("?")[0]})}}},2987:e=>{"use strict";e.exports=require("perf_hooks")},3176:e=>{"use strict";e.exports=require("buffer-crc32")},3339:e=>{"use strict";e.exports=require("module")},3868:e=>{"use strict";e.exports=require("@jridgewell/sourcemap-codec")},3901:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getFunctionWrapperTemplate=b,t.splitCode=E,t.editInSplits=I,t.editWithCliBuildId=function(e,t,r,n){let{transformedCode:o,metadatas:s}=F(e,t,r,[],!0);return o+=`\n//# sourceMappingURL=${y.default.basename(t)}.map`,o+=`\n//"${n}";${d.hudConfig.cliSdkVersionVarName}="${d.SDK_VERSION}";${d.hudConfig.cliBuildIdVarName}`,{transformedCode:o,metadatas:s}},t.edit=F,t.incrementInstrumentedFunctionsCount=j;const c=a(r(3176)),u=r(3903),d=r(5809),l=r(2546),f=r(523),g=r(8528),p=r(8269),h=r(2546),m=r(3868),_=i(r(2784)),y=a(r(6928)),v=/([0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})/;function b(e,t,r=!1,n=!1){const o=`${e}_hudTemp`,s="BODY_PLACEHOLDER",i="FUNCTION_ID_PLACEHOLDER",a="AWAITABLE_PLACEHOLDER",c="EXCEPTION_VARIABLE_PLACEHOLDER",u="ARGS_ARRAY_PLACEHOLDER",l=function(e,t,r=!1){const n=[];if(r)return n;let o;t===g.Format.cjs?o="require":t===g.Format.esm&&(n.push(`import { createRequire as ${e}_createRequire } from "module";`,`const ${e}_require = ${e}_createRequire(import.meta.url);`),o=`${e}_require`);const s=h.myRequire.resolve(d.SDK_MODULE_NAME+"/wrap");return n.push(`let ${e}_temp;`,`try { ${e}_temp = ${o}(String.raw\`${s}\`); } catch (e) { ${e}_temp = { wrapperInitial: () => {}, wrapperCatch: () => {}, wrapperFinally: () => {}, fixStack: () => {}, wrapperUserCatch: () => {} }; globalThis._hud_SI = globalThis._hud_SI || { value: 0 }; globalThis._hud_S = globalThis._hud_S || [];\n }`,`const { wrapperInitial: ${e}_wi, wrapperCatch: ${e}_wc, wrapperFinally: ${e}_wf, fixStack: ${e}_fs, asyncIteratorWrapper: ${e}_aiw, wrapperUserCatch: ${e}_wuc } = ${e}_temp;`),n}(e,t,r),f=`${e}_cc.io = true;`;return{functionWrapper:`{\n let ${o};\n const ${d.hudConfig.functionIdVarName} = ${i};\n const ${e}_cc = {}; ${n?f:""}\n try {\n ${e}_wi(${d.hudConfig.functionIdVarName}, ${e}_cc);\n } catch (e) {\n globalThis._hud_SI = { value: 0 };\n globalThis._hud_S = [];\n }\n try {\n ${s}\n } catch (e) {\n try {\n ${e}_wc(${d.hudConfig.functionIdVarName}, ${e}_cc, e, ${u});\n } catch (e) {}\n throw e;\n } finally {\n try {\n ${e}_wf(${d.hudConfig.functionIdVarName}, ${e}_cc);\n } catch (e) {}\n }\n }`,awaitWrapper:`(${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = await ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})`,yieldWrapper:`\n function* ${e}_generatorWrapper() {\n return (${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = yield ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})\n }`,yieldStarWrapper:`\n function* ${e}_generatorWrapper() {\n return (${o} = ${a}, _hud_SI.value--, ${e}_cc.ff = true, ${o} = yield* ${o}, _hud_S[++_hud_SI.value] = ${d.hudConfig.functionIdVarName}, ${e}_cc.ff= false, ${o})\n }`,initialStatements:l,bodyPlaceholder:s,functionIdPlaceholder:i,awaitablePlaceholder:a,argsArrayPlaceholder:u,fixStackFunction:`\n try{\n ${e}_fs(${d.hudConfig.functionIdVarName}, ${e}_cc)\n }catch(e){};`,exceptionVariablePlaceholder:c,wrapperUserCatch:`\n try {\n ${e}_wuc(${d.hudConfig.functionIdVarName}, ${e}_cc, ${c}, ${u});\n } catch(e){};`,asyncIteratorWrapper:`${e}_aiw`,awaitableVariable:o}}function w(e,t,r,n=!0,o=!1,s){const i=Error.prepareStackTrace;let a=!1,l=function(e){const t=e.match(`${d.hudConfig.bundlerBuildIdVarName}="${v.source}"`);if(t&&t.length>0)return t[1]}(e);l||(l=function(e){return(0,u.v5)(e,d.hudConfig.bundlerBuildUuidNamespace)}(e),a=!0);const g=(0,u.v5)(e,d.hudConfig.functionUuidNamespace),p=(0,c.default)(t.filename).readUInt32BE(),m=(0,c.default)(e).readUInt32BE(),y=(0,h.isNextJsApp)(),w={data:t,bundlerBuildId:l,prefix:d.hudConfig.wrapVarPrefix,...b(d.hudConfig.wrapVarPrefix,t.format,o,r.length>0),uuidNamespace:d.hudConfig.functionUuidNamespace,fileHash:g,functionsToInstrument:r,useInputSourcemap:n,isNextJsFile:y,markCode:d.hudConfig.nextJsMarkVarName,enableForAwaitInstrumentation:!s,disableParametersExtraction:d.hudConfig.userConfig.disableParametersExtraction?.value},k=_.transform(e,w);return j(k.functionsIds.length,s),y&&k.marksCount!==k.functionsIds.length&&f.instrument_logger.warning("Marks count mismatch while instrumenting functions",{marksCount:k.marksCount,functionsIdsLength:k.functionsIds.length,filename:t.filename}),globalThis.hudNextJsPluginIndicator&&y&&(k.marksCount>0||k.functionsIds.length>0)&&(clearTimeout(globalThis.hudNextJsPluginIndicator),globalThis.hudNextJsPluginIndicator=void 0),Error.prepareStackTrace=i,f.instrument_logger.debug(`Successfully transformed ${t.filename}`),{code:k.code,map:k.map,functionIds:k.functionsIds,filename:t.filename,hasInputMap:k.isInputSourcemap,bundlerBuildId:l,bundlerBuildIdGenerated:a,file_path_checksum:p,file_checksum:m,sourceCodeHash:g,moduleBase:k.moduleBase,isNextJsApp:y,marksCount:k.marksCount,detectedForAwaitLoops:k.detectedForAwaitLoops}}class k extends Error{}function S(e,t){if(e&&t)throw new k("Start mark found inside mark");if(!e&&!t)throw new k("End mark found outside mark")}function M(e,t,r,n){const o=e.split("\n");let s=r,i=n;return s+=o.length-1,s+=t.split("\n").length-1,s===r?i+=o.pop()?.length||0:i=o.pop()?.length||0,{lineOffset:s,columnOffset:i}}function*E(e){let t=!1,r=0,n=0,o=!1,s=0,i=0;const a=new RegExp(`globalThis\\s*?&&\\s*?\\(globalThis\\.${d.hudConfig.esbuildGlobalVar}\\s*?=\\s*?"(Start|End):(?<fileName>.*?)"\\);?`,"g");for(const c of e.matchAll(a)){if(o=!0,!c.groups)throw new k("No groups found in match");const{fileName:a}=c.groups,[u,d]=c,l="Start"===d;S(l,t);let f="";if(t){const t=c.index+u.length;f=e.slice(r,t);const o=n+Buffer.byteLength(f,"utf8");yield{edit:!0,code:f,fileName:a,lineOffset:s,columnOffset:i,indexOffset:n,indexOffsetEnd:o},r=t,n=o}else{const t=c.index;f=e.slice(r,t),n+=Buffer.byteLength(f,"utf8"),r=t,yield{edit:!1,code:f}}t=!!l,({lineOffset:s,columnOffset:i}=M(f,u,s,i))}if(t)throw new k("End mark found outside mark");o?r<e.length&&(yield{edit:!1,code:e.slice(r)}):yield{edit:!1,code:e}}function x(e,t,r){f.instrument_logger.debug("Edit chunk",{fileName:e.fileName,size:e.code.length,edit:t}),r?.push({fileName:e.fileName,size:e.code.length,edit:t})}function C(e,t,r){const n=w(e.code,{filename:t,format:r},[],!1,!0,!1),o=n.code;return n.mapRelativeToChunk=n.map,n.map=function(e,t,r){"string"==typeof e&&(e=JSON.parse(e));const n=(0,m.decode)(e.mappings);return n.forEach(e=>{e.forEach(e=>{e.length>=4&&"number"==typeof e[2]&&("number"==typeof e[3]&&0===e[2]&&(e[3]+=r),e[2]+=t)})}),JSON.stringify({...e,mappings:(0,m.encode)(n),sourcesContent:void 0})}(n.map,e.lineOffset,e.columnOffset),{codeToAppend:o,metadata:{...n,filename:t,lineOffset:e.lineOffset,columnOffset:e.columnOffset}}}function I(e,t,r,n=!1,o=!1,s=()=>!0){const i=e.slice(-1e3);if(!o&&null!==_.getSourceMap(t,i))return f.instrument_logger.critical("Source map found for esbuild split",{filename:t}),f.customer_logger.log(l.UserErrorLogs.EsbuildSourceMapFound()),(0,p.detachHud)(!1,!1),{transformedCode:e,metadatas:[],editedChunksSizes:void 0};let a="",c=0,u=0;const g=[];let h=0;const m=n?[]:void 0,y=b(d.hudConfig.wrapVarPrefix,r).initialStatements.join("\n"),v=function(e){return e.slice(d.hudConfig.esbuildMark.length,d.hudConfig.esbuildMark.length+36)}(e);for(const n of E(e)){h++;try{let e="",o=!1;if(n.edit&&(o=s(n.fileName),m&&x(n,o,m)),n.edit&&o){const o=C(n,t,r);e=o.codeToAppend,g.push({...o.metadata,bundlerBuildId:v,transformedLineOffset:c,transformedColumnOffset:u,indexOffset:n.indexOffset,indexOffsetEnd:n.indexOffsetEnd})}else e=0===a.length?P(n.code,y):n.code;({transformedCodeLineOffset:c,transformedCodeColumnOffset:u}=O(e,c,u)),a+=e}catch(r){return f.instrument_logger.error("Failed to patch index",{index:h,filename:t,msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),{transformedCode:e,metadatas:[],editedChunksSizes:m}}}return{transformedCode:a,metadatas:g,editedChunksSizes:m}}function P(e,t){let r="";return e.startsWith('"use strict";')?(r+='"use strict";',r+=t,r+=e.slice(13),r):(r+=t,r+=e,r)}function O(e,t,r){const n=e.split("\n");return n.length>1?(t+=n.length-1,r=n.pop()?.length||0):r+=e.length,{transformedCodeLineOffset:t,transformedCodeColumnOffset:r}}function F(e,t,r,n,o){if(e.startsWith(d.hudConfig.esbuildMark))return f.instrument_logger.info("Editing in splits"),I(e,t,r,!1);{const s=w(e,{filename:t,format:r},n,d.hudConfig.userConfig.disableSourceMapsResolution?.value??!0,!1,o);return{transformedCode:s.code,metadatas:[s]}}}let T=0;function j(e,t){T+=e;const r=d.hudConfig.userConfig?.maxMappedFunctions?.value??0;T>=r&&(t||f.customer_logger.log(l.UserErrorLogs.InstrumentedFunctionCountExceeded(r)),f.app_logger.error("Instrumented function count exceeded",{instrumentedFunctionsCount:T,maxMappedFunctions:r}),(0,p.detachHud)(!1,!1))}},3903:e=>{"use strict";e.exports=require("uuid")},4290:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(8949),s=r(5128),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return this._patchCreate(e),n.instrument_logger.info("Patched NestJS RpcContextCreator successfully"),e}_patchCreate(e){const t=e.RpcContextCreator.prototype.create;e.RpcContextCreator.prototype.create=function(...e){try{const t=e[0],r=e[1];"function"==typeof t.constructor&&"function"==typeof r?e[1]=(0,s.wrapLinkedFunction)(r):n.instrument_logger.error("Invalid args in NestJS RpcContextCreator.create",{args:e})}catch(e){n.instrument_logger.error("Error in NestJS RpcContextCreator patcher",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,e)},(0,o.copyPropertiesToTarget)(t,e.RpcContextCreator.prototype.create)}}t.default=a},4393:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HttpEndpointMetric=void 0;const n=r(9873);class o extends n.FlowMetric{statusCode;route;method;constructor(e){super(e)}_createUsableMetric(e){return this}setRequestAttributes(e){const t=e.url||e.path;this.route=t?.split("?")[0],this.method=e.method}setResponseAttributes(e){this.statusCode=e.statusCode}toRaw(){if(this.statusCode&&this.route&&this.method)return{flow_id:this.flowId,type:"EndpointMetric",duration:this.duration,status_code:this.statusCode,route:this.route,method:this.method,error_breakdown:this.errorBreakdown}}}t.HttpEndpointMetric=o},4815:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.patchUse=function(e,t,r=!0){const n=e.use;e.use=function(e){const o=n.apply(this,arguments);try{let n=this[f.uuidSymbol];!n&&f.isVerboseLoggingEnabled&&(n=d.randomUUID(),this[f.uuidSymbol]=n,u.instrument_logger.info("Express use setting uuid",{kind:t,uuid:n})),"application"===t?function(e,t,r,n){try{r&&(e._router?p(e._router):e.router?p(e.router):u.instrument_logger.warning("Express application doesn't have router or _router")),n&&f.isVerboseLoggingEnabled&&u.instrument_logger.info("Express use app",{parent:n,child:t[1]?.[f.uuidSymbol]||"no uuid",path:t[0]})}catch(e){u.instrument_logger.error("Failed to save express app router",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(this,arguments,r,n):"router"===t&&function(e,t,r,n,o){try{if(!e.stack)return void u.instrument_logger.error("Express router without stack");if(0===e.stack.length)return void u.instrument_logger.warning("Express router with an empty stack");"query"===e.stack[0].name?p(e):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(e.stack[0].name)&&(f.skipLayerNamesLogs.add(e.stack[0].name),u.instrument_logger.warning("Found unknown stack name",{stack:e.stack[0].name}));const{path:s,offset:i}=function(e){let t=0,r="/";if("function"!=typeof e){let n=e;for(;Array.isArray(n)&&0!==n.length;)n=n[0];"function"!=typeof n&&(t=1,r=e)}return{path:r,offset:t}}(o),c=g(Array.prototype.slice.call(t,i));for(let t=0;t<c.length&&t<e.stack.length;t++){const o=e.stack[e.stack.length-t-1],i=c[c.length-t-1];"router"===o.name?(i&&!i[f.uuidSymbol]&&f.isVerboseLoggingEnabled&&(i[f.uuidSymbol]=d.randomUUID(),u.instrument_logger.info("Express handle router setting uuid",{uuid:i[f.uuidSymbol]})),r&&(o[a.hudConfig.express.routeNamesSymbol]=s)):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(o.name)&&(f.skipLayerNamesLogs.add(o.name),u.instrument_logger.warning("Found unknown layer name",{layer:o.name,parent:n,child:i[f.uuidSymbol]||"no uuid",path:s}))}}catch(e){u.instrument_logger.error("Failed to patch router.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(this,arguments,r,n,e)}catch(e){u.instrument_logger.error("Failed to patch express.use function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o},(0,l.copyPropertiesToTarget)(n,e.use)},t.extractEndpointsFromRouter=function e(t,r){let n=[];if(!r.stack)return u.instrument_logger.error("Router without stack - bad OTEL version",{router:r}),n;for(const o of r.stack)if("router"===o.name){if(!o[a.hudConfig.express.routeNamesSymbol]){u.instrument_logger.error("Router layer without routes",{layer:o});continue}const r=t+o[a.hudConfig.express.routeNamesSymbol];n=n.concat(e(r,o.handle))}else o.route&&o.route[a.hudConfig.express.layerStateSymbol]?n=n.concat(h(o,t)):f.isVerboseLoggingEnabled&&!f.skipLayerNamesLogs.has(o.name)&&(f.skipLayerNamesLogs.add(o.name),u.instrument_logger.warning("Found unknown layer name when extracting endpoints",{layer:o.name}));return n};const a=r(5809),c=r(8528),u=r(523),d=i(r(6982)),l=r(8949),f=r(7225),g=r(5673);function p(e){e[a.hudConfig.express.markedSymbol]||(globalThis.hudExpressState.push(e),e[a.hudConfig.express.markedSymbol]=!0)}function h(e,t){const r=[];for(const[n,o]of Object.entries(e.route[a.hudConfig.express.layerStateSymbol]))r.push(new c.EndpointDeclaration(n,o.methods,"express",t,o.layerPath));return Array.from(r.values())}},5128:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isHudLfMarked=void 0,t.wrapLinkedFunction=function(e){if(e[t.isHudLfMarked])return e;let r;e[t.isHudLfMarked]=!0;const a=(0,s.getFlowStateStorage)();return a?(r=e instanceof i.AsyncFunction?async function(...t){if(hudRunningMode!==n.HudRunningMode.enabled)return await e.apply(this,t);let r;try{r=a.getStore()}catch(r){return o.instrument_logger.error("Failed to get flowState",{msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),await e.apply(this,t)}return r?(r.shouldLinkFunction=!0,await e.apply(this,t)):await e.apply(this,t)}:function(...t){if(hudRunningMode!==n.HudRunningMode.enabled)return e.apply(this,t);let r;try{r=a.getStore()}catch(r){return o.instrument_logger.error("Failed to get flowState",{msg:r instanceof Error?r.message:void 0,stack:r instanceof Error?r.stack:void 0}),e.apply(this,t)}return r?(r.shouldLinkFunction=!0,e.apply(this,t)):e.apply(this,t)},(0,i.copyPropertiesToTarget)(e,r),r):e};const n=r(8528),o=r(523),s=r(7131),i=r(8949);t.isHudLfMarked=Symbol.for("isHudLfMarked")},5150:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(7131),c=r(2822),u=r(8949),d=r(2080),l=r(714);class f extends l.FrameworkPatcher{isSupported(e,t,r,o){const a=n.hudConfig.userConfig.enableDapulse?.value?o.mondayVersion:o.bbcVersion,c=(0,l.extractModuleVersion)(e);return!!(0,l.isSupportedVersion)(c,a)||(i.instrument_logger.warning("Unsupported sqs-consumer version",{framework:"SqsConsumer",version:c,supportedVersion:a,basedir:e,isDapulse:n.hudConfig.userConfig.enableDapulse?.value}),i.customer_logger.log(s.UserErrorLogs.UnsupportedFrameworkVersion("sqs-consumer")),!1)}_patch(e){return function(e){const t=e.Consumer.create;e.Consumer.create=function(...e){const r=t.apply(this,e);try{!function(e){const t=e.queueUrl;if(!t)throw new s.HudNoQueueUrlInSqsConsumer;const r=h(t);if(e.handleMessageBatch&&"function"==typeof e.handleMessageBatch){const t="handleMessageBatch",n=(0,s.generateSqsFlowId)(r,t);(0,o.storeSqsQueueDeclaration)({flow_id:n,queue_name:r,handle_type:t,batch_size:e.batchSize});const i=e.handleMessageBatch,a=(0,u.wrapFlow)(()=>n,i,!0,m);return void(e.handleMessageBatch=a)}if(e.handleMessage&&"function"==typeof e.handleMessage){const t="handleMessage",n=(0,s.generateSqsFlowId)(r,t);(0,o.storeSqsQueueDeclaration)({flow_id:n,queue_name:r,handle_type:t});const i=e.handleMessage,a=(0,u.wrapFlow)(()=>n,i,!0,m);return void(e.handleMessage=a)}i.instrument_logger.warning("Unable to getFlowId - No handleMessage or handleMessageBatch found in SqsConsumer.Consumer",{queueName:r})}(r),function(e){const t=e.on;e.on=function(...r){try{const t=r[0];if(!t||"string"!=typeof t)throw new s.HudNoEventTypeInSqsConsumerOn;const n=r[1];if(!n||"function"!=typeof n)throw new s.HudNoCallbackInSqsConsumerOn;const i=h(e.queueUrl),a="event",c=(0,s.generateSqsFlowId)(i,a,t);(0,o.storeSqsQueueDeclaration)({flow_id:c,queue_name:i,handle_type:a,event_type:t}),r[1]=(0,u.wrapFlow)(()=>c,n,!0,_,y,v)}catch(e){i.instrument_logger.error("Error in SqsConsumer.Consumer.on patched logic",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,r)},(0,u.copyPropertiesToTarget)(t,e.on)}(r),function(e){const t=e.emit;e.emit=function(...e){return function(e){try{const t=e[0];if(!t||"string"!=typeof t)throw new s.HudNoEventTypeInSqsConsumerEmit;let r,o;if("message_processed"===t&&(r=1),["error","timeout_error","processing_error"].includes(t)&&(o=1,r=2),void 0===r)return;const u=e[r];if(!u)throw new s.HudNoMessageInSqsConsumerEmit;let d;if(void 0!==o){const t=e[o];if(!(t&&t instanceof Error))throw new s.HudNoErrorInSqsConsumerEmit;d=(0,a.extractName)(t),"StandardError"===d&&t.cause&&t.cause instanceof Error&&(d=(0,a.extractName)(t.cause))}const l=(e,t)=>{const r=e[n.hudConfig.metricSymbol];r?(d&&r.addError(d,t),r.increaseAndShouldEnd(t)&&((0,c.finishSqsInvestigation)(Array.isArray(u)?u:[u],r),r.end())):p||(p=!0,i.instrument_logger.warning("No metric found for message"))};Array.isArray(u)&&u.length>=1?l(u[0],u.length):l(u,1)}catch(e){g||(g=!0,i.instrument_logger.error("Error in SqsConsumer.Consumer.emit patched logic",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}))}}(e),t.apply(this,e)},(0,u.copyPropertiesToTarget)(t,e.emit)}(r)}catch(e){i.instrument_logger.error("Error in patching SqsConsumer.Consumer",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return r},(0,u.copyPropertiesToTarget)(t,e.Consumer.create)}(e),i.instrument_logger.info("Patched sqs-consumer successfully",{isDapulse:n.hudConfig.userConfig.enableDapulse?.value}),e}}t.default=f;let g=!1,p=!1;function h(e){const t=e.split("/").pop();if(!t)throw new s.HudFailExtractSqsQueueName(`Url: ${e}`);return t}function m(e,t,r){const o=d.SqsMetric.createUsableMetric(e);o.start();const s=r[0];if(!s)return i.instrument_logger.warning("No messages pass to sqs handler",{flowId:e}),void(t.flowMetric=o);if(Array.isArray(s)){if(o.msgCount=s.length,s.forEach(e=>{e[n.hudConfig.metricSymbol]=o}),s[0]?.Attributes?.SentTimestamp){const t=s.reduce((e,t)=>{const r=Number.parseInt(t?.Attributes?.SentTimestamp);return isNaN(r)?e:Math.min(e,r)},1/0);t!==1/0?o.e2eEpocStartTimeMS=t:i.instrument_logger.warning("No valid SentTimestamp found eventhough the first element had SentTimestamp",{flowId:e})}}else o.msgCount=1,s[n.hudConfig.metricSymbol]=o,s?.Attributes?.SentTimestamp&&(o.e2eEpocStartTimeMS=s.Attributes.SentTimestamp);t.flowMetric=o,(0,c.createNewInvestigation)()}function _(e,t,r){const n=d.SqsMetric.createUsableMetric(e);n.start(),t.flowMetric=n}function y(e,t){const r=t.flowMetric;r?r.end():i.instrument_logger.warning("No flowMetric found for message during catch",{flowId:e})}function v(e,t,r){const n=t.flowMetric;n?(n.addError((0,a.extractName)(r)),n.end()):i.instrument_logger.warning("No flowMetric found for message during catch",{flowId:e})}},5459:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(7131),s=r(2822),i=r(8949),a=r(4393),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return this._patchEmit(e),n.instrument_logger.info("Patched http successfully"),e}_patchEmit(e){const t=e.Server.prototype.emit;e.Server.prototype.emit=function(e,...r){if("request"!==e)return t.apply(this,[e,...r]);const i=(0,o.getFlowStateStorage)(),c=r?.[0],u=r?.[1],d=a.HttpEndpointMetric.createUsableMetric(),l=()=>{try{d.start(),(0,s.createNewInvestigation)(),d.setRequestAttributes(c),u.once("finish",function(){try{(0,s.finishHttpInvestigation)(c,u,d),d.setResponseAttributes(u),d.end()}catch(e){n.instrument_logger.error("Failed to set response attributes",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}catch(e){n.instrument_logger.error("Failed to patch http.Server.prototype.emit",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return t.apply(this,[e,...r])};return i?i.run({httpMetric:d},l):l()},(0,i.copyPropertiesToTarget)(t,e.Server.prototype.emit)}}t.default=u},5673:e=>{"use strict";e.exports=require("array-flatten")},5688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hudRITM=void 0,t.safeLog=function(e){try{i.app_logger.debug(e)}catch{return}},t.registerHook=function(){if(i.app_logger.info("HUD is required"),process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE){if(i.app_logger.info("Running in Lambda environment"),parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE)<n.hudConfig.lambdaMinimunMemory){const e=process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE;return i.app_logger.warning("Lambda function memory size is less than required, Hud will not run",{memorySize:e,requiredMemory:n.hudConfig.lambdaMinimunMemory}),i.customer_logger.log(s.UserErrorLogs.UnsupportedLambdaMemory(n.hudConfig.lambdaMinimunMemory)),!1}globalThis.hudRuningInsideLambda=!0}return(0,o.initGlobals)(),i.app_logger.debug("InitGlobals done"),!(globalThis.hudStartFromAutoInit&&!(0,o.validateAndGetUserInput)())&&(i.instrument_logger.isValid()?globalThis.hudRanOnRequire?(i.instrument_logger.warning("Already ran onRequire!"),!1):(globalThis.hudRanOnRequire=!0,i.instrument_logger.info("Using module",{name:n.SDK_MODULE_NAME}),n.hudConfig.userConfig.enableFrameworks&&i.instrument_logger.info("User enabled frameworks",{frameworks:(0,a.getEnabledFrameworks)()}),(0,a.onRequire)(),(0,s.detectNextJsApp)(),i.instrument_logger.debug("onRequire done"),globalThis.hudInitGuard=setTimeout(c,n.hudConfig.userConfig.maxTimeUntilInitSessionMs?.value??0),globalThis.hudInitGuard.unref(),!0):((0,o.detachHud)(!1),!1))};const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(7166);function c(){i.instrument_logger.critical("Init timeout reached - disabling hud"),i.customer_logger.log(s.UserErrorLogs.InitTimeout(globalThis.hudIsRunningFromSetup)),(0,o.detachHud)(!1)}t.hudRITM=a.onRequireFn},5809:e=>{"use strict";e.exports=require("./config")},5946:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(4815),i=r(714);class a extends i.FrameworkPatcher{_patch(e){return(0,s.patchUse)(e.prototype,"router"),(0,o.patchMethods)(e.prototype,"router"),n.instrument_logger.info("Patched router successfully"),e}}t.default=a},6093:e=>{"use strict";e.exports=require("@cspotcode/source-map-support")},6504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GraphQLMetric=void 0;const n=r(9873);class o extends n.FlowMetric{constructor(e){super(e)}_createUsableMetric(e){return this}toRaw(){return{flow_id:this.flowId,type:"GraphQLMetric",duration:this.duration}}}t.GraphQLMetric=o},6730:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.getMethods=f,t.patchMethods=function(e,t){f().concat("all").forEach(function(r){const n=e[r];if(!n)return void(l.isVerboseLoggingEnabled&&c.instrument_logger.warning("Method not found",{method:r}));const o="all"===r;e[r]=function(){try{if(arguments.length<2)return n.apply(this,arguments);let e=this[l.uuidSymbol];l.isVerboseLoggingEnabled&&(e||(e=u.randomUUID(),this[l.uuidSymbol]=e,c.instrument_logger.info("Express method setting uuid",{uuid:e,kind:t})),c.instrument_logger.info("Express added new method",{method:r,uuid:e,path:arguments[0]}));const s=Array.prototype.slice.call(arguments);if(s[1][a.hudConfig.express.layerStateSymbol]={flowId:[],kind:t,allMethod:o},Array.isArray(s[0]))for(const e of s[0]){const e=u.randomUUID();s[1][a.hudConfig.express.layerStateSymbol].flowId.push(e)}else s[1][a.hudConfig.express.layerStateSymbol].flowId.push(u.randomUUID());const i=n.apply(this,s);try{delete s[1][a.hudConfig.express.layerStateSymbol]}catch{}return i}catch(e){c.instrument_logger.error("Failed to patch method",{kind:t,method:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n.apply(this,arguments)},(0,d.copyPropertiesToTarget)(n,e[r])})};const a=r(5809),c=r(523),u=i(r(6982)),d=r(8949),l=r(7225);function f(){const e=r(8611);return e.METHODS&&e.METHODS.map(function(e){return e.toLowerCase()})||["get","post","put","head","delete","options","trace","copy","lock","mkcol","move","purge","propfind","proppatch","unlock","report","mkactivity","checkout","merge","m-search","notify","subscribe","unsubscribe","patch","search","connect"]}},6928:e=>{"use strict";e.exports=require("path")},6982:e=>{"use strict";e.exports=require("crypto")},7127:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(523),o=r(6730),s=r(2977),i=r(4815),a=r(7225),c=r(714);class u extends c.FrameworkPatcher{_patch(e){return(0,s.patchRoute)(e.Route),(0,i.patchUse)(e.application,"application"),(0,o.patchMethods)(e.application,"application"),a.isVerboseLoggingEnabled&&(0,a.logLazyRouter)(e.application),e.Router.use?((0,i.patchUse)(e.Router,"router"),(0,o.patchMethods)(e.Router,"router")):n.instrument_logger.warning("Skipping express.Router patching"),n.instrument_logger.info("Patched express successfully"),e}}t.default=u},7131:e=>{"use strict";e.exports=require("./wrap")},7166:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.parseCliInstrumentationPattern=k,t.supportSourceMapInstall=S,t.patch=M,t.patchCompile=I,t.onRequireFn=P,t.patchRequire=O,t.isFrameworkEnabled=F,t.getEnabledFrameworks=function(){const e=new Map;for(const[t,r]of g.hudConfig.frameworksToPatch)e.set(r.framework,F(r,g.hudConfig.userConfig.enableFrameworks));return Object.fromEntries(e)},t.getFunctionsToInstrument=R,t.createCheckers=L,t.updateModuleChecker=A,t.skip=D,t.onRequire=function(){try{(0,d.setInstrumentedFilesCountInterval)(),A();try{I()}catch(e){l.instrument_logger.error("Failed to patch compile",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{(0,d.shouldSupportSourceMap)()&&S()}catch(e){l.instrument_logger.error("Failed to install source map support",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{O()}catch(e){l.instrument_logger.error("Failed to patch require",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch(e){l.instrument_logger.error("Something went wrong in onRequire",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{(0,h.saveMachineMetric)()}catch(e){l.instrument_logger.error("Failed to add metric",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};const a=i(r(9896)),c=i(r(6928)),u=r(8528),d=r(2546),l=r(523),f=r(3901),g=r(5809),p=r(8528),h=r(8269),m=r(2546),_=r(9063),y=r(714),v=function(){const e=g.SDK_MODULE_NAME;try{return c.dirname(c.dirname(m.myRequire.resolve(e)))}catch(t){return l.instrument_logger.error("Failed to resolve own path",{moduleName:e,msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0}),null}}();function b(e){const t=globalThis.HudSourceMapCache.get(e);return t?{map:JSON.parse(t)}:null}const w=new RegExp(`//"([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})";${g.hudConfig.cliSdkVersionVarName}="([^"]+)";${g.hudConfig.cliBuildIdVarName}`);function k(e){if(e.slice(-g.hudConfig.cliBuildIdVarName.length)!==g.hudConfig.cliBuildIdVarName)return null;const t=Math.min(100,e.length),r=e.slice(-t).match(w);return r?{buildId:r[1],sdkVersion:r[2],fullPattern:r[0]}:null}function S(){r(6093).install({handleUncaughtExceptions:!1,hookRequire:!1,environment:"node",retrieveSourceMap:b})}function M(e,t,r,n){const o={code:e,map:void 0};try{if(globalThis.hudRunningMode===p.HudRunningMode.detached)return o;if(r===u.Format.esm&&!n)throw new m.HudError("MessagePort is required for patching ESM modules");const s=k(e);if(s)return s.sdkVersion!==g.SDK_VERSION?(l.instrument_logger.critical("SDK version mismatch detected, disabling SDK",{filename:t,cliSdkVersion:s.sdkVersion,currentSdkVersion:g.SDK_VERSION}),(0,h.detachHud)(!1,!1),o):((0,h.addReingestValue)(s.buildId),globalThis.hudInstrumentationIndicator&&(0,h.clearInstrumentationIndicator)(),o);if(g.hudConfig.userConfig.disableRuntimeInstrumentation?.value)return o;const i=R(t);if(D(t,void 0,i))return o;if(e.length>(g.hudConfig.userConfig.maxFileSizeBytes?.value??0)&&!e.startsWith(g.hudConfig.esbuildMark))return l.instrument_logger.info("Skipping large file",{filename:t,size:e.length}),o;const _=Date.now(),y=(0,f.edit)(e,t,r,i,!1),v=y.metadatas;if(o.code=y.transformedCode,o.map=v,l.instrument_logger.debug("Patched",{filename:t,time:Date.now()-_}),n)for(const e of v)n.postMessage({key:"HudModulePatch",hudPatched:t,hudProcessedFiles:(0,d.sourceFileMetadataToTransferSourceFileMetadata)(e)});else globalThis.hudPatched.add(t),globalThis.hudProcessedFiles.push(...v.map(e=>(0,d.sourceFileMetadataToTransferSourceFileMetadata)(e)));for(const e of v)e.functionIds.length>0&&(globalThis.hudInstrumentationOccured=!0,globalThis.hudInstrumentationIndicator&&(0,h.clearInstrumentationIndicator)(),(0,d.incrementInstrumentedFilesCount)());g.hudConfig.writePatched&&function(e,t){const r=c.parse(e);let n=`${r.dir}/patched.${r.base}`;r.dir.includes("dist")&&(n=c.join(`${r.dir.replace("dist","patched")}`,r.base)),a.existsSync(c.dirname(n))||a.mkdirSync(c.dirname(n),{recursive:!0}),a.writeFileSync(n,t,"utf8"),l.instrument_logger.debug("Dumped patched file",{filename:e,patchedPath:n})}(t,y.transformedCode)}catch(e){l.instrument_logger.error("Failed to patch",{filename:t,format:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o}let E="",x=!0,C=!1;function I(){if(!(0,m.isSupportedNative)())return;const e=r(3339),t=(0,d.shouldSupportSourceMap)();C&&l.instrument_logger.warning("PatchCompile ran twice"),0===Object.keys(globalThis.hudLoadedModules).length&&(globalThis.hudLoadedModules=Object.keys(m.myRequire.cache));const n=e.prototype._compile;e.prototype._compile=function(e,r){if(r===E){try{const e=x?l.instrument_logger.warning.bind(l.instrument_logger):l.instrument_logger.debug.bind(l.instrument_logger);x=!1,e("Skipping compile since already ran",{filename:r})}catch{}return n.call(this,e,r)}E=r,l.instrument_logger.debug("Compiling requirement",{filename:r});const o=M(e,r,u.Format.cjs);try{if(t&&o.map){const e=(0,d.combineSourceMaps)(o.map,r);e&&globalThis.HudSourceMapCache.set(r,e)}}catch(e){l.instrument_logger.error("Failed to combine source maps",{filename:r,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const s=n.call(this,o.code,r);return E="",s},C=!0,l.instrument_logger.debug("Patched _compile")}function P(e,t,r){try{const n=g.hudConfig.frameworksToPatch.get(t);return F(n,g.hudConfig.userConfig.enableFrameworks)&&n?.patcher&&n.version?(0,y.getFrameworkPatcher)(n.patcher).patch(e,r,n.version,n.extraInfo,t):e}catch(e){l.instrument_logger.error("Failed to patch framework",{name:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}function O(){const e=Array.from(g.hudConfig.frameworksToPatch.entries()).filter(([e,t])=>F(t,g.hudConfig.userConfig.enableFrameworks)).map(([e])=>e);new _.Hook(Array.from(e),{internals:!0},P)}function F(e,t){return!!e&&(t&&t.value?.has(e.framework)?t.value.get(e.framework)||!1:e.enable)}function T(e){const t=c.sep.replace(/\\/g,"\\\\"),r=c.join(e).split(".").join("\\.").split("*").join(".*?"),n=t+"node_modules"+t;return{isAllowdModule:new RegExp(n+r+`(?:${t}|$)`),isAllowdModuleSubModule:new RegExp(n+r+n)}}function j(e,t){return!!t.isAllowdModule.test(e)&&!t.isAllowdModuleSubModule.test(e)}function N(e,t){const r=t.replace(/\//g,c.sep);return e.includes(`node_modules${c.sep}${r}${c.sep}`)&&!e.includes(`node_modules${c.sep}${r}${c.sep}node_modules`)}function R(e){return(0,m.getInstrumentedThirdPartyModuleInfo)(e)?.functions||[]}function L(e){const t=[];for(const r of e){let e;if(r.includes("*")){const t=T(r);e=e=>j(e,t)}else e=e=>N(e,r);t.push(e)}return t}let q=[];function A(){q=L(g.hudConfig.userConfig.includeModules?.value??[])}function D(e,t,r=[]){if(!g.hudConfig.allowedEditExtensions.includes(c.extname(e))&&!e.endsWith(c.sep))return l.instrument_logger.warning("Skipping non-allowed extension",{filename:e}),!0;const n=t??q;return"/var/runtime/index.mjs"===e?(l.instrument_logger.debug("Skipping lambda runtime",{filename:e}),!0):e.includes("node_modules")&&!function(e,t){for(const r of t)if(r(e))return!0;return!1}(e,n)&&0===r.length||e.includes(".yarn")?(l.instrument_logger.debug("Skipping non-monitored imported module",{filename:e}),!0):!(v&&!e.includes(v)||(l.instrument_logger.debug("Skipping hud internal module",{filename:e}),0))}},7214:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5809),o=r(8528),s=r(8269),i=r(2546),a=r(523),c=r(8949),u=r(6504),d=r(714);class l extends d.FrameworkPatcher{static graphQLPatchedSymbol=Symbol.for(n.hudConfig.hudPatchedName);_patch(e){return this.patchGraphql(e),a.instrument_logger.info("Patched GraphQL successfully"),e}patchGraphql(e){const t=e.execute;e.execute=function(e){!function(e){try{e&&!e[l.graphQLPatchedSymbol]&&(f(e._queryType),f(e._mutationType),e[l.graphQLPatchedSymbol]=!0,a.instrument_logger.info("Patched GraphQL schema successfully"))}catch(e){a.instrument_logger.error("Failed to patch GraphQL schema",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}(e.schema);const r=process.hrtime.bigint();return function(e,t,r){return"function"==typeof e.then?e.then(e=>(m(t,r),e)):(m(t,r),e)}(t.apply(this,arguments),e.document,r)},(0,c.copyPropertiesToTarget)(t,e.execute)}}function f(e){if(!e)return;const t=e._fields;Object.keys(t).forEach(r=>{const n=t[r];!function(e,t,r){if(e.resolve&&!e.resolve[l.graphQLPatchedSymbol]){const n=(0,i.generateGraphqlFlowId)(r,t);(0,s.storeResolverDeclaration)({id:n,operation:t,name:r});const o=e.resolve;e.resolve=(0,c.wrapFlow)(h,o,!0,(e,t)=>{const r=u.GraphQLMetric.createUsableMetric();r.start(),r.setFlowId(e),t.flowMetric=r},(e,t)=>{const r=t.flowMetric;r?r.end():a.instrument_logger.warning("No flowMetric found for resolver",{flowId:e})},(e,t)=>{const r=t.flowMetric;r?r.end():a.instrument_logger.warning("No flowMetric found for resolver",{flowId:e})}),e.resolve[l.graphQLPatchedSymbol]=!0,(0,s.storeResolverIdBySelectionName)(n,r)}}(n,o.GraphQLSupportedOperations[e.name.toLowerCase()],r),n.type._fields&&p(n.type)})}t.default=l;const g=new WeakSet;function p(e){e&&e._fields&&!g.has(e)&&(g.add(e),Object.keys(e._fields).forEach(t=>{const r=e._fields[t];if(!r||!r.type)return;!function(e){const t=e.resolve;t&&!e.resolve[l.graphQLPatchedSymbol]&&(e.resolve=(0,c.wrapFlow)(h,t,!0),e.resolve[l.graphQLPatchedSymbol]=!0)}(r);let n=r.type;for(;n.ofType;)n=n.ofType;p(n)}))}function h(e){if(void 0===e[2]||void 0===e[3])return void a.instrument_logger.warning("GraphQL resolver arguments are unknown");const t=e[3].path;if(t&&!t.prev){const r=t.key,n=(0,s.getResolverIdBySelectionName)(r);return e[2][l.graphQLPatchedSymbol]=n,n}if(e[2][l.graphQLPatchedSymbol])return e[2][l.graphQLPatchedSymbol];a.instrument_logger.warning("GraphQL No functionId found for resolver")}function m(e,t){try{new s.GraphQLDocumentMetadata(e,Number(process.hrtime.bigint()-t)).save()}catch(e){a.instrument_logger.error("Failed to save document metadata",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}},7225:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.skipStackNamesLogs=t.skipLayerNamesLogs=t.isVerboseLoggingEnabled=t.uuidSymbol=void 0,t.logLazyRouter=function(e){const r=e.lazyrouter;e.lazyrouter=function(){let e=!1;try{this._router||(e=!0)}catch(e){a.instrument_logger.error("Failed to check this._router",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const n=r.apply(this,arguments);try{if(e){let e=this[t.uuidSymbol];e||(e=c.randomUUID(),this[t.uuidSymbol]=e,a.instrument_logger.info("Express lazy router setting uuid",{uuid:e})),a.instrument_logger.info("Express lazy router",{parent:e,child:this._router?.[t.uuidSymbol]})}}catch(e){a.instrument_logger.error("Failed to patch express.lazyRouter function",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n},(0,d.copyPropertiesToTarget)(r,e.lazyrouter)};const a=r(523),c=i(r(6982)),u=r(932),d=r(8949);t.uuidSymbol=Symbol.for("__hud_uuid__"),t.isVerboseLoggingEnabled="true"===u.env.HUD_LOG_EXPRESS,t.skipLayerNamesLogs=new Set(["query","expressInit","mounted_app"]),t.skipStackNamesLogs=new Set(["router"])},7276:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8544);class o extends n.BaseKafkaJSPatcher{getExportsRoot(e){return e.KafkaJS}getGroupId(e){return e[0].kafkaJS.groupId}moduleName(){return"@confluentinc/kafka-javascript.KafkaJS"}}t.default=o},7603:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getObservabilityIdentifiers=function(e){const t=l();return{datadog_trace_id:t?.trace_id,datadog_span_id:t?.span_id,otel_trace_id:g(),w3c_trace_context:i(e),w3c_baggage:c(e,"baggage"),amazon_trace_id:c(e,"x-amzn-trace-id"),b3_propagation:a(e),jaeger_trace_id:c(e,"uber-trace-id")}},t.getExtraHeaders=function(e){const t={};for(const r of n.hudConfig.dynamicConfig.extraHeaders){const n=c(e,r);void 0!==n&&(t[r]=n)}return t},t.getDatadogIds=l,t.getOtelTraceId=g;const n=r(5809),o=r(2546),s=r(523);function i(e){try{return{traceparent:c(e,"traceparent"),tracestate:c(e,"tracestate")}}catch{return}}function a(e){try{return{full:c(e,"b3"),trace_id:c(e,"x-b3-traceid"),span_id:c(e,"x-b3-spanid"),parent_span_id:c(e,"x-b3-parentspanid")}}catch{return}}function c(e,t){try{return e.headers[t]}catch{return}}function u(e){let t;return()=>(void 0===t&&(t=function(e){try{const t=o.myRequire.resolve(e),r=o.myRequire.cache[t];return void 0===r?(s.instrument_logger.info("requireFromCache: codeModule is undefined",{path:e,fullPath:t}),null):"object"!=typeof r.exports?(s.instrument_logger.warning("requireFromCache: codeModule.exports is not an object",{path:e}),null):r.exports}catch(t){return s.instrument_logger.warning("requireFromCache: error",{path:e,error:t}),null}}(e)),t)}const d=u("dd-trace/packages/datadog-core");function l(){try{const e=d();if(null===e)return;const{storage:t}=e,r=t("legacy").getStore();return{trace_id:r.span._spanContext.toTraceId(),span_id:r.span._spanContext.toSpanId()}}catch{return}}const f=u("@opentelemetry/api");function g(){try{const e=f();if(null===e)return;const{trace:t}=e;return t.getActiveSpan()?.spanContext().traceId}catch{return}}},7808:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getMachineMetrics=function(){try{const e=(0,o.getLastMetrics)();return{cpu_usage:e.cpuUsage?l(e.cpuUsage,e.timestamp):void 0,memory_usage:d(),event_loop_utilization:e.elu?u(e.elu):void 0}}catch(e){return void i.app_logger.error("Error getting machine metrics",e)}},t.getCpuUsage=l;const o=r(8269),s=r(2546),i=r(523),a=n(r(857)),c=r(2987);function u(e){try{return c.performance.eventLoopUtilization(e).utilization}catch(e){return void i.app_logger.error("Error getting event loop utilization",e)}}function d(){try{const e=process.memoryUsage(),t=a.default.totalmem();return{rss:e.rss,heap_total:e.heapTotal,heap_used:e.heapUsed,external:e.external,system_memory:t,rss_percentage:e.rss/t*100}}catch(e){return void i.app_logger.error("Error getting memory usage",e)}}function l(e,t){try{const r=process.cpuUsage(),n=1e3*(Date.now()-t),o=(0,s.getCpuLimit)(i.app_logger),a=(r.user-e.user)/n,c=(r.system-e.system)/n;return{user_time:a,system_time:c,limit:o,user_percent_of_limit:"number"==typeof o?a/o*100:void 0,system_percent_of_limit:"number"==typeof o?c/o*100:void 0}}catch(e){return void i.app_logger.error("Error getting cpu usage",e)}}},8064:e=>{"use strict";e.exports=require("semver")},8269:e=>{"use strict";e.exports=require("./globalstate")},8528:e=>{"use strict";e.exports=require("./dto")},8544:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseKafkaJSPatcher=void 0;const n=r(5809),o=r(8269),s=r(2546),i=r(523),a=r(8949),c=r(828),u=r(714);class d extends u.FrameworkPatcher{_patch(e){const t=this.getExportsRoot(e);return this._patchConsumer(t),i.instrument_logger.info(`Patched ${this.moduleName()} successfully`),e}_patchConsumer(e){const t=e.Kafka.prototype.consumer;if(!t)return void i.instrument_logger.error("DD presumably ran before HUD - exports.Kafka.prototype.consumer is undefined");const r=this.getGroupId.bind(this);e.Kafka.prototype.consumer=function(...e){const o=t.apply(this,e);try{const t=new Map,s=[],u=[];!function(e,t){const r=e.subscribe;e.subscribe=async function(...e){const n=await r.apply(this,e);try{const r=e[0].topics;r?r.forEach(e=>{t.push(e)}):e[0].topic?t.push(e[0].topic):i.instrument_logger.warning("No topic found in KafkaJS.Consumer.subscribe",{args:e[0]})}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer.subscribe",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n},(0,a.copyPropertiesToTarget)(r,e.subscribe)}(o,u),function(e,t,r,o,s){const u=e.run;function d(e,u){const d="eachBatch"===u;for(const e of s)p(e,o,t,r,u);const h=function(e,t,r){return n=>{const o=n[0],s=r?o.batch.topic:o.topic;return function(e,t,r,n){const o=e.get(g(r,n));if(o)return o;for(const e of t)if(e.isBatch===n&&e.pattern.test(r))return e.flowId;i.instrument_logger.warning("No flowId found for topic",{topicName:r,isBatch:n})}(e,t,s,r)}}(t,r,d),m=function(e){return(t,r,o)=>{const s=c.KafkaJSMetric.createUsableMetric();s.start(),s.setFlowId(t);const i=o[0];void 0!==i&&void 0!==i.message&&(i.message[n.hudConfig.metricSymbol]=s);const a=e?i.batch.partition:i.partition,u=e?i.batch.messages[0]?.timestamp:i.message?.timestamp;s.addPartition(a),s.addProducedTimestamp(u),r.flowMetric=s}}(d),_=(0,a.wrapFlow)(h,e[u],!0,m,l,f);e[u]=_}e.run=async function(...e){try{const t=e[0];t.eachMessage&&d(t,"eachMessage"),t.eachBatch&&d(t,"eachBatch")}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer.run",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return await u.apply(this,e)},(0,a.copyPropertiesToTarget)(u,e.run)}(o,t,s,r(e),u)}catch(e){i.instrument_logger.error("Error in patching KafkaJS.Consumer",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return o},(0,a.copyPropertiesToTarget)(t,e.Kafka.prototype.consumer)}}function l(e,t){const r=t.flowMetric;r?r.end():i.instrument_logger.warning("No flowMetric found for message",{flowId:e})}function f(e,t,r){const n=t.flowMetric;n?(n.setError(r),n.end()):i.instrument_logger.warning("No flowMetric found for message",{flowId:e})}function g(e,t){return e+"|"+t}function p(e,t,r,n,i){const a=(0,s.generateKafkaFlowId)(e,t,i),c={flow_id:a,topic_name:e.toString(),group_id:t,pulling_type:i};(0,o.storeKafkaJSTopicDeclaration)(c),function(e,t,r,n,o){"string"==typeof r?e.set(g(r,n),o):t.push({pattern:r,isBatch:n,flowId:o})}(r,n,e,"eachBatch"===i,a)}t.BaseKafkaJSPatcher=d},8611:e=>{"use strict";e.exports=require("http")},8949:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncFunction=void 0,t.wrapFlow=function(e,r,c=!0,u,d,l){let f;const g=(0,s.getFlowStateStorage)();return g?r[i]?r:(f=r instanceof t.AsyncFunction?async function(...t){let i;try{i=e(t)}catch(e){o.instrument_logger.error("Failed to get flowId",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(!i||hudRunningMode!==n.HudRunningMode.enabled)return await r.apply(this,t);const a={};if(u)try{u(i,a,t)}catch(e){o.instrument_logger.error("Failed to execute beforeCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const f=(0,s.getHttpMetricFromFlowState)();f?.setFlowId(i);try{const e=g.run({flowId:i,shouldLinkFunction:c,httpMetric:f},Reflect.apply,r,this,t),n=await e;if(d)try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return n}catch(e){if(l)try{l(i,a,e)}catch(e){o.instrument_logger.error("Failed to execute catchCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}throw e}}:function(...t){let i;try{i=e(t)}catch(e){o.instrument_logger.error("Failed to get flowId",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(!i||hudRunningMode!==n.HudRunningMode.enabled)return r.apply(this,t);const a={};if(u)try{u(i,a,t)}catch(e){o.instrument_logger.error("Failed to execute beforeCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const f=(0,s.getHttpMetricFromFlowState)();f?.setFlowId(i);try{const e=g.run({flowId:i,shouldLinkFunction:c,httpMetric:f},Reflect.apply,r,this,t);if(d)if(e instanceof Promise)e.then(()=>{try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}});else try{d(i,a)}catch(e){o.instrument_logger.error("Failed to execute afterCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}catch(e){if(l)try{l(i,a,e)}catch(e){o.instrument_logger.error("Failed to execute catchCallbackHook",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}throw e}},a(r,f),f[i]=!0,f):r},t.copyPropertiesToTarget=a;const n=r(8528),o=r(523),s=r(7131);t.AsyncFunction=(async()=>{}).constructor;const i=Symbol.for("hudMarked");function a(e,t){const r=Object.getOwnPropertyDescriptors(e),n=Reflect.ownKeys(r);Object.setPrototypeOf(t,e),n.forEach(e=>{try{Object.defineProperty(t,e,r[e])}catch{}})}},9063:e=>{"use strict";e.exports=require("require-in-the-middle")},9589:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(8528),o=r(8269),s=r(2546),i=r(523),a=r(8949),c=r(714);class u extends c.FrameworkPatcher{static nextJSHudMarked=Symbol.for("hudNextJSMarked");static routeInfoSymbol=Symbol.for("hudNextJSRouteInfo");static standardMethods=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"];_patch(e){return(0,s.setIsNextJsApp)(!0),this._patchBaseServer(e),i.instrument_logger.info("Patched Next.js successfully"),e}_patchBaseServer(e){try{const t=e.default;if(t[u.nextJSHudMarked])return e;const r=t.prototype.renderToResponseWithComponentsImpl;if(!r)return i.instrument_logger.error("Could not find renderToResponseWithComponentsImpl on BaseServer.prototype"),e;t.prototype.renderToResponseWithComponentsImpl=async function(e,t,...n){try{const r=t.components;if(r&&r.routeModule&&!r.routeModule[u.nextJSHudMarked]){const t=r.routeModule,n=t.definition?.pathname||e.pathname;u._detectAndPatchSupportedMethods(t,n),t[u.nextJSHudMarked]=!0}}catch(e){i.instrument_logger.error("Failed to patch Next.js route module",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return await r.apply(this,[e,t,...n])},t[u.nextJSHudMarked]=!0,(0,a.copyPropertiesToTarget)(r,t.prototype.renderToResponseWithComponentsImpl)}catch(e){i.instrument_logger.error("Failed to patch Next.js base server",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return e}static _detectAndPatchSupportedMethods(e,t){try{switch(i.instrument_logger.debug("Patching Next.js route module",{pathname:t,kind:e.definition?.kind||"unknown"}),e.definition.kind){case"APP_ROUTE":case"PAGES_API":u._patchApiModule(e,t);break;case"PAGES":case"APP_PAGE":u._patchPageModule(e,t);break;default:i.instrument_logger.warning("Unknown Next.js route module kind",{pathname:t,kind:e.definition?.kind||"unknown"})}}catch(e){i.instrument_logger.error("Error detecting and patching supported methods",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}static _patchApiModule(e,t){if(e.methods)for(const r of u.standardMethods)if("function"==typeof e.methods[r]&&"function"==typeof e.userland?.[r]){const c=(0,s.generateEndpointFlowId)(t,[r]);(0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(c,[r],"nextjs","",t));try{const t=e.methods[r];e.methods[r]=(0,a.wrapFlow)(()=>c,t,!0)}catch(e){i.instrument_logger.error("Failed to patch Next.js App Route method",{method:r,pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}if(e.userland?.default){const r=u.standardMethods.filter(t=>!e.methods?.[t]),i=(0,s.generateEndpointFlowId)(t,r);(0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(i,r,"nextjs","",t));const c=e.userland.default;e.userland={...e.userland,default:(0,a.wrapFlow)(()=>i,c,!0)}}}static _patchPageModule(e,t){const r=(0,s.generateEndpointFlowId)(t,["GET"]);if((0,o.storeEndpointDeclaration)(new n.EndpointDeclaration(r,["GET"],"nextjs","",t)),e.render&&"function"==typeof e.render&&!e.render[this.nextJSHudMarked])try{const n=e.render;e.render=function(...e){try{const n=e[2]?.renderOpts?.Component;if(n&&"function"==typeof n){const t=(0,a.wrapFlow)(()=>r,n,!0);e[2].renderOpts.Component=t}const o=e[2]?.renderOpts?.ComponentMod;if(o){for(const t of Object.keys(o))if(o[t]&&"function"==typeof o[t]){const n=(0,a.wrapFlow)(()=>r,o[t],!0);e[2].renderOpts.ComponentMod[t]=n}}else i.instrument_logger.error("No Component found on Next.js page component",{pathname:t})}catch{}return n.apply(this,e)},(0,a.copyPropertiesToTarget)(n,e.render),e.render[this.nextJSHudMarked]=!0}catch(e){i.instrument_logger.error("Failed to patch Next.js Page render method",{pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}if(e.userland?.loaderTree)try{l(e.userland.loaderTree,r)}catch(e){i.instrument_logger.error("Failed to patch App Router page component",{pathname:t,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}else i.instrument_logger.info("No loader tree found on Next.js page component, functions will be patched by the render function",{pathname:t})}}function d(e,t,r){return(...n)=>{const o=e(...n),s=e=>{if(e&&"function"==typeof e.default){const n=(0,a.wrapFlow)(()=>r,e.default,t);e={...e,default:n}}return e};return o&&"function"==typeof o.then?o.then(s):s(o)}}function l(e,t){const[,r,n]=e;for(const e of Object.keys(n))try{const r=n[e];if(Array.isArray(r)&&"function"==typeof r[0]){const n="page"===e,o=r[0];r[0]=d(o,n,t),(0,a.copyPropertiesToTarget)(o,r[0])}}catch(e){i.instrument_logger.error("Failed to iterate on Next.js components",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}for(const e of Object.values(r))try{l(e,t)}catch(e){i.instrument_logger.error("Failed to walk on Next.js parallel routes",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}t.default=u},9723:function(e,t,r){"use strict";var n,o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i<r.length;i++)"default"!==r[i]&&o(t,e,r[i]);return s(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=r(8269),c=r(2546),u=r(523),d=r(9896),l=i(r(6928)),f=r(8949),g=r(714);class p extends g.FrameworkPatcher{_patch(e){(0,c.setIsNextJsApp)(!0);const t=this._patchLoadConfig(e);return u.instrument_logger.info("Patched next.js config successfully"),t}_patchLoadConfig(e){const t=e.default,r=async function(...e){const r=await t.call(this,...e);if(!r)return r;try{const t=e[1],n=l.join(t,r.distDir||".next"),o=l.join(n,a.apiManifest),s=l.join(n,a.pageManifest),i=await d.promises.access(o).then(()=>!0).catch(()=>!1),c=await d.promises.access(s).then(()=>!0).catch(()=>!1);(0,a.isNextConfigExtracted)()||!i&&!c||(u.instrument_logger.info("Extracted next.js config successfully"),(0,a.setNextConfig)(r))}catch(e){u.instrument_logger.error("Failed to patch next.js loadConfig",{msg:e instanceof Error?e.message:String(e),stack:e instanceof Error?e.stack:void 0})}return r};(0,f.copyPropertiesToTarget)(t,r);const n=Object.create(Object.getPrototypeOf(e));return Object.defineProperty(n,"default",{enumerable:!0,get:function(){return r}}),(0,f.copyPropertiesToTarget)(e,n),n}}t.default=p},9873:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FlowMetric=void 0;const o=r(8528),s=r(8269),i=n(r(932));t.FlowMetric=class{_state;flowId;duration;_startTime;_msStartTime;errorBreakdown;constructor(e){this.flowId=e,this.duration=0,this._state="usable"}static createUsableMetric(e){return new this(e)._createUsableMetric(e)}setFlowId(e){this.flowId=e}getFlowId(){return this.flowId}getMsStartTime(){return this._msStartTime}start(){hudRunningMode===o.HudRunningMode.enabled&&(this._startTime=i.default.hrtime.bigint(),this._msStartTime=Date.now())}setErrorBreakdown(e){this.errorBreakdown=e}end(){hudRunningMode===o.HudRunningMode.enabled&&(this._startTime&&(this.duration=Number(i.default.hrtime.bigint()-this._startTime)),this.#e(),this._state="unusable")}#e(){const e=this.toRaw();e&&(0,s.storeFlowMetric)(e)}}},9896:e=>{"use strict";e.exports=require("fs")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}return r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r(2197)})());
2
2
  //# sourceMappingURL=instrument.js.map
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(global,()=>(()=>{"use strict";var e={857:e=>{e.exports=require("os")},1620:e=>{e.exports=require("winston-transport")},4275:function(e,t,o){var r,n=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},r(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=r(e),i=0;i<o.length;i++)"default"!==o[i]&&n(t,e,o[i]);return s(t,e),t}),a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.worker_logger=t.instrument_logger=t.app_logger=t.customer_logger=t.SafeLogger=t.WorkerPortTransport=void 0,t.getLogPath=w,t.getSavedLogs=function(){const e=[];for(const[t,o]of Object.entries(j))for(const t of o.transports)try{if(t instanceof h){const r=t.getMessagesToSend();if(!r)continue;const{logsBuf:n,messageDropCount:s}=r;s&&o.info(`Dropped ${s} messages`),e.push(n)}}catch(e){o.error("Failed to get saved logs",e)}return e},t.renewFileTransports=function(){const e=new Date,t=new Set;for(const[o,r]of Object.entries(j)){const o=[],n=[];for(const s of r.transports)if(s instanceof m.transports.File){o.push(s),n.push(new m.transports.File({level:s.level,format:s.format,filename:g.join(s.dirname,s.filename),lazy:!1}));const r=g.join(S(),`${f.randomUUID()}-${e.toISOString().replaceAll(":","")}.log`);c.existsSync(g.join(s.dirname,s.filename))&&(c.renameSync(g.join(s.dirname,s.filename),r),t.add(r))}for(const e of o)r.remove(e),e.close&&e.close();for(const e of n)r.add(e)}return t},t.formatLogMessage=D;const l=o(5809),f=i(o(6982)),c=i(o(9896)),u=i(o(857)),g=i(o(6928)),m=i(o(5124)),d=a(o(1620)),p={...process.env.HUD_DEBUG?l.hudConfig.logger.debug:l.hudConfig.logger.default,console:!!process.env.HUD_VERBOSE};class h extends d.default{_messeagesToSend=[];messagesLimit=l.hudConfig.loggerWorkerPortSizeLimit;messageDropCount=0;getMessagesToSend(){if(!this._messeagesToSend.length)return!1;const e=this._messeagesToSend;this.clearMessagesToSend();const t=this.messageDropCount;return this.messageDropCount=0,{logsBuf:this.formatMessagesToSend(e),messageDropCount:t}}clearMessagesToSend(){this._messeagesToSend=[]}formatMessagesToSend(e){return e.map(e=>JSON.stringify(e)).join("\n")}log(e,t){this._messeagesToSend.length>=this.messagesLimit?this.messageDropCount++:this._messeagesToSend.push(e),t()}}t.WorkerPortTransport=h;const v=m.format.combine(m.format.timestamp({format:"HH:mm:ss.SSS"}),m.format.printf(({level:e,message:t,timestamp:o,label:r,...n})=>{try{const s=Object.keys(n).length;let i;if(s)if(1===s){const e=Object.keys(n)[0];i=`${t} ${e}: ${JSON.stringify(n[e],null,2)}`}else i=`${t}\n${JSON.stringify(n,null,2)}`;else i=t;const a=m.format.colorize().colorize(e,e.toUpperCase());return`[${o}]${(r?`(${r})`:"").padEnd(8," ")} ${a}: ${i}`}catch{return t}}));function y(e){return m.format.combine(m.format.label({label:e}),m.format.timestamp({format:()=>(new Date).toISOString()}),m.format.json())}function b(e){return"customer"===e?l.hudConfig.customerLoggerLevel:p.levels[e]}function S(){if(l.hudConfig.logDirectory)return l.hudConfig.logDirectory;const e=u.homedir();switch(u.platform()){case"darwin":return g.join(e,"Library","Logs","hud");case"win32":return g.join(e,"AppData","hud","Logs");default:return g.join(e,".hud","logs")}}let _;function w(){return _??=g.join(S(),`${f.randomUUID()}.log`)}const j={};class O{name;logger;constructor(e){this.name=e;try{this.logger=function(e){const t="customer"===e,o=[];(p.console||t)&&o.push(function(e){return new m.transports.Console({format:(t=e,"customer"===t?m.format.printf(({message:e,errCode:t,moreInfo:o})=>{try{return D(e,t,o)}catch{return e}}):m.format.combine(m.format.label({label:t}),v))});var t}(e));let r=!1;if(!l.hudConfig.fileless)try{o.push(function(e){const t=function(e){return{filename:w(),level:b(e),format:y(e),lazy:!1}}(e),o=g.dirname(t.filename);return c.mkdirSync(o,{recursive:!0}),c.writeFileSync(t.filename,"",{flag:"w"}),new m.transports.File(t)}(e))}catch{r=!0}(l.hudConfig.fileless||r)&&o.push(function(e){const t=y(e);return new h({format:t})}(e));const n=m.createLogger({level:b(e),levels:m.config.syslog.levels,transports:o});return j[e]=n,r&&!t&&n.info("Could not create file transport, fallback succesfully to worker port"),l.hudConfig.fileless&&!t&&n.info("Fileless mode is enabled"),n}(e)}catch{this.logger=void 0}}isValid(){return!!this.logger}log(e){if(this.logger)try{this.logger.log(e)}catch{}}logLevel(e,t,...o){if(this.logger)try{this.logger.log(e,t,...o)}catch{}}critical(e,...t){this.logLevel("crit",e,...t)}error(e,...t){this.logLevel("error",e,...t)}warning(e,...t){this.logLevel("warning",e,...t)}info(e,...t){this.logLevel("info",e,...t)}debug(e,...t){this.logLevel("debug",e,...t)}}function D(e,t,o){let r=`Hud: ${e}`;return o&&(r+=" For more information visit https://docs.hud.io/docs/node-sdk-ie."),void 0!==t&&(r+=` ${t}`),r}t.SafeLogger=O,t.customer_logger=new O("customer"),t.app_logger=new O("app"),t.instrument_logger=new O("instrument"),t.worker_logger=new O("worker")},5124:e=>{e.exports=require("winston")},5809:e=>{e.exports=require("./config")},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},9896:e=>{e.exports=require("fs")}},t={};return function o(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,o),s.exports}(4275)})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(global,()=>(()=>{"use strict";var e={857:e=>{e.exports=require("os")},1620:e=>{e.exports=require("winston-transport")},4275:function(e,t,o){var r,n=this&&this.__createBinding||(Object.create?function(e,t,o,r){void 0===r&&(r=o);var n=Object.getOwnPropertyDescriptor(t,o);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,r,n)}:function(e,t,o,r){void 0===r&&(r=o),e[r]=t[o]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(r=function(e){return r=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},r(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=r(e),i=0;i<o.length;i++)"default"!==o[i]&&n(t,e,o[i]);return s(t,e),t}),g=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.cli_logger=t.worker_logger=t.instrument_logger=t.app_logger=t.customer_logger=t.SafeLogger=t.WorkerPortTransport=void 0,t.getLogPath=function(){return _??=f.join(function(){if(a.hudConfig.logDirectory)return a.hudConfig.logDirectory;const e=c.homedir();switch(c.platform()){case"darwin":return f.join(e,"Library","Logs","hud");case"win32":return f.join(e,"AppData","hud","Logs");default:return f.join(e,".hud","logs")}}(),`${u.randomUUID()}.log`)},t.getSavedLogs=function(){const e=[];for(const[t,o]of Object.entries(y))for(const t of o.transports)try{if(t instanceof h){const r=t.getMessagesToSend();if(!r)continue;const{logsBuf:n,messageDropCount:s}=r;s&&o.info(`Dropped ${s} messages`),e.push(n)}}catch(e){o.error("Failed to get saved logs",e)}return e},t.formatLogMessage=w;const a=o(5809),l=o(8528),u=i(o(6982)),c=i(o(857)),f=i(o(6928)),d=i(o(5124)),m=g(o(1620)),p={...process.env.HUD_DEBUG?a.hudConfig.logger.debug:a.hudConfig.logger.default,console:!!process.env.HUD_VERBOSE};class h extends m.default{_messeagesToSend=[];messagesLimit=a.hudConfig.loggerWorkerPortSizeLimit;messageDropCount=0;getMessagesToSend(){if(!this._messeagesToSend.length)return!1;const e=this._messeagesToSend;this.clearMessagesToSend();const t=this.messageDropCount;return this.messageDropCount=0,{logsBuf:this.formatMessagesToSend(e),messageDropCount:t}}clearMessagesToSend(){this._messeagesToSend=[]}formatMessagesToSend(e){return e.map(e=>JSON.stringify(e)).join("\n")}log(e,t){this._messeagesToSend.length>=this.messagesLimit?this.messageDropCount++:this._messeagesToSend.push(e),t()}}t.WorkerPortTransport=h;const b=d.format.combine(d.format.timestamp({format:"HH:mm:ss.SSS"}),d.format.printf(({level:e,message:t,timestamp:o,label:r,...n})=>{try{const s=Object.keys(n).length;let i;if(s)if(1===s){const e=Object.keys(n)[0];i=`${t} ${e}: ${JSON.stringify(n[e],null,2)}`}else i=`${t}\n${JSON.stringify(n,null,2)}`;else i=t;const g=d.format.colorize().colorize(e,e.toUpperCase());return`[${o}]${(r?`(${r})`:"").padEnd(8," ")} ${g}: ${i}`}catch{return t}}));function v(e){return"customer"===e?a.hudConfig.customerLoggerLevel:p.levels[e]}let _;const y={},S=()=>!0;class L{name;logger;isLoggingEnabled;constructor(e,t){this.name=e,this.isLoggingEnabled=t??S;try{this.logger=function(e){const t="customer"===e,o=[];(p.console||t)&&o.push(function(e){return new d.transports.Console({format:(t=e,"customer"===t?d.format.printf(({message:e,errCode:t,moreInfo:o})=>{try{return w(e,t,o)}catch{return e}}):d.format.combine(d.format.label({label:t}),b))});var t}(e)),o.push(function(e){const t=(o=e,d.format.combine(d.format.label({label:o}),d.format.timestamp({format:()=>(new Date).toISOString()}),d.format.json()));var o;return new h({format:t})}(e));const r=d.createLogger({level:v(e),levels:d.config.syslog.levels,transports:o});return y[e]=r,r}(e)}catch{this.logger=void 0}}isValid(){return!!this.logger}log(e){if(this.isLoggingEnabled()&&this.logger)try{this.logger.log(e)}catch{}}logLevel(e,t,...o){if(this.isLoggingEnabled()&&this.logger)try{this.logger.log(e,t,...o)}catch{}}critical(e,...t){this.logLevel("crit",e,...t)}error(e,...t){this.logLevel("error",e,...t)}warning(e,...t){this.logLevel("warning",e,...t)}info(e,...t){this.logLevel("info",e,...t)}debug(e,...t){this.logLevel("debug",e,...t)}}function w(e,t,o){let r=`Hud: ${e}`;return o&&(r+=" For more information visit https://docs.hud.io/docs/node-sdk-ie."),void 0!==t&&(r+=` ${t}`),r}t.SafeLogger=L;const j=()=>(globalThis.hudRunningMode??l.HudRunningMode.enabled)===l.HudRunningMode.enabled;t.customer_logger=new L("customer"),t.app_logger=new L("app",j),t.instrument_logger=new L("instrument",j),t.worker_logger=new L("worker"),t.cli_logger=new L("cli")},5124:e=>{e.exports=require("winston")},5809:e=>{e.exports=require("./config")},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},8528:e=>{e.exports=require("./dto")}},t={};return function o(r){var n=t[r];if(void 0!==n)return n.exports;var s=t[r]={exports:{}};return e[r].call(s.exports,s,s.exports,o),s.exports}(4275)})());
2
2
  //# sourceMappingURL=logger.js.map
@@ -1,2 +1,2 @@
1
- !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},857:e=>{e.exports=require("os")},1638:e=>{e.exports=require("./declarations")},1886:function(e,t,o){var n,r=this&&this.__createBinding||(Object.create?function(e,t,o,n){void 0===n&&(n=o);var r=Object.getOwnPropertyDescriptor(t,o);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,n,r)}:function(e,t,o,n){void 0===n&&(n=o),e[n]=t[o]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=n(e),i=0;i<o.length;i++)"default"!==o[i]&&r(t,e,o[i]);return a(t,e),t}),s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const c=i(o(9896)),l=o(8167),g=o(5809),d=o(2546),u=i(o(523)),f=o(523),m=o(8528),p=o(2546),w=o(4672),h=o(8269),k=o(2546),y=o(6982),_=o(6261),v=s(o(6928)),b=o(4678),C=o(6304),x=l.parentPort,S=l.workerData.apiKey,M=l.workerData.service,F=l.workerData.startTime,D=l.workerData.tags,E=l.workerData.lambdaExtensionId,I=l.workerData.shouldCreateDeclaraionWorker;let L,R=new AbortController,T=!1,O=!1;const A=p.safeCall.bind(p.safeCall,f.worker_logger);if(g.hudConfig.userConfig=l.workerData.userConfig,f.worker_logger.info("Worker started"),null===x)throw new p.HudWorkerError("Failed to get port");const W=new Set;let P;E&&(P=new _.EventEmitter,P.setMaxListeners(0),A((0,k.extensionMainLoop)(E,P))),x.postMessage({msg:"started"}),(0,p.setSentEventsCountInterval)();const q=new w.HudClient(P);function N(){T||(T=!0,u.customer_logger.log(d.UserLogs.FirstDecalarationSent()),O&&u.customer_logger.log(d.UserLogs.HappyFlowCompleted()))}async function K(e,t,n,r){if(0!==e.length)for(const a of e)try{if(r&&(0,_.once)(r,"eventloop"),f.worker_logger.debug("Sending file to parser worker",{filename:a.filename}),n){n.postMessage({msg:"SourceFileMetadata",content:a});continue}const{filename:e,indexOffset:s,indexOffsetEnd:c}=a,l=await(0,p.readFile)(e,s,c);if(!l)continue;const{parseDeclarations:g}=await Promise.resolve().then(()=>i(o(1638))),d=await g(a,l,void 0,L);await j(d,t),d.declarations.length>0&&N()}catch(e){f.worker_logger.error("Failed to parse declarations",{filename:a.filename,error:e})}else N()}async function j(e,t){e.blacklist&&e.blacklist.uuids.length>0&&(x?.postMessage(m.KeepAliveMessage),e.blacklist.uuids.forEach(e=>{W.add(e)}),await t.batch("CorruptedFile",[e.blacklist],{event_version:"1.0.0"}));for(let o=0;o<e.declarations.length;o+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await t.batch("FunctionDeclaration",e.declarations.slice(o,o+g.hudConfig.communicationBatchSize),{event_version:m.FUNCTION_DECLARATION_VERSION})}function U(e){return`investigation-${e?.context?.timestamp??Date.now()}-${(0,y.randomUUID)()}.json`}async function B(e,t){await c.promises.writeFile(v.default.join(t.path,U(e)),JSON.stringify(e,null,2))}async function H(e,t,o,n={}){for(let r=0;r<e.length;r+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(t,e.slice(r,r+g.hudConfig.communicationBatchSize),n)}async function z(e,t,o){x?.postMessage(m.KeepAliveMessage),await o.send(t,e)}q.initSession(S,M,F,D).then(async e=>{q.setSession(e);const{sessionId:t,extraHeaders:o}=e;f.worker_logger.info("Initialized successfuly",{sessionId:t});const n=m.HudSessionInitStatus.success;x.postMessage({msg:"initialized",content:{status:n,sessionInfo:{sessionId:t,extraHeaders:o}}}),await async function(e){if(null===x)throw new p.HudWorkerError("Failed to get port");const t=await e.getRemoteConfig();return t?(f.worker_logger.info("Remote configuration exists"),g.hudConfig.dynamicConfig=(0,g.updateDynamicConfig)(t,g.hudConfig,f.worker_logger),f.worker_logger.info("Current dynamic configuration:",{currentDynamicConfig:g.hudConfig.dynamicConfig})):f.worker_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:g.hudConfig.dynamicConfig}),x.postMessage({msg:"initDynamicConfig",content:t}),t}(q);try{await async function(e,t){if(null===x)throw new p.HudWorkerError("Failed to get port");const o=I?function(e,t){const o=p.myRequire.resolve(`${g.SDK_MODULE_NAME}/declarationWorker`),n=new l.Worker(o);return n.unref(),n.on("message",o=>{"eventlooptime"!==o?A(j(o,e)):t&&(0,_.once)(t,"eventloop")}),n.on("error",e=>{f.worker_logger.critical("Declaration parser worker crashed",{msg:e instanceof Error?e.message:void 0})}),n.on("exit",e=>{f.worker_logger.warning("Declaration parser worker exited",{code:e})}),n}(e,t):void 0;x.on("message",n=>{const{msg:r,content:a}=n;switch(f.worker_logger.debug("Got message from main thread",{msg:r}),r){case"Terminate":A(async function(e,t){const o=process.hrtime();f.worker_logger.warning("Notified to terminate. flushing.",{grace:e.grace}),await J(e.logBuffers,t),await G({filenames:e.logFiles},t),await J((0,f.getSavedLogs)(),t),await G({filenames:Array.from($())},t),await V();const n=process.hrtime(o),r=1e3*n[0]+n[1]/1e6;f.worker_logger.info("Done flushing. responsing to parent",{grace:e.grace,termination_time_ms:r}),x?.postMessage({msg:"terminated"}),x?.close()}(a,e));break;case"StartPeriodicTasks":A(async function(e){A((0,b.loopWorkloadDataCollector)(e,g.hudConfig.workloadMetadata,g.hudConfig.workloadMetadata.sendInterval,R.signal)),A((0,p.loopLogProcessPerformance)(f.worker_logger,g.hudConfig.logPerfInterval,R.signal)),A((0,p.loopLogThreadPerformance)(f.worker_logger,g.hudConfig.logPerfInterval,R.signal)),A(async function(e,t,o){for await(const n of(0,p.unrefSetInterval)(t,void 0,{signal:o.signal})){x?.postMessage(m.KeepAliveMessage);const t=(0,f.getSavedLogs)();await J(t,e)}}(e,g.hudConfig.logsSendInterval,R)),A(async function(e){const t=await(0,k.getAllModules)(v.default.resolve("."));await z({modules:t},"InstalledModules",e)}(e))}(e));break;case"Abort":A(V());break;case"Invocations":A(async function(e,t,o){const n=e;f.worker_logger.debug("Got invocations message",{msg:t,size:e.length});const r=n.filter(e=>!W.has(e.function_id));for(let e=0;e<r.length;e+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch("Invocations",r.slice(e,e+g.hudConfig.communicationBatchSize),{event_version:"1.0.1"});O||(O=!0,u.customer_logger.log(d.UserLogs.FirstInvocationSent()),T&&u.customer_logger.log(d.UserLogs.HappyFlowCompleted()))}(a,r,e));break;case"FlowMetrics":A(async function(e,t,o){const{aggregatedMetrics:n}=e;f.worker_logger.debug("Got aggregated flow metrics message",{msg:t,size:Object.keys(n).length}),x?.postMessage(m.KeepAliveMessage);for(const e in n){const{eventVersion:t,metrics:r}=n[e];if(0!==r.length)for(let n=0;n<r.length;n+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(e,r.slice(n,n+g.hudConfig.communicationBatchSize),t?{event_version:t}:{})}}(a,r,e));break;case"ProcessedFiles":A(async function(e,t,o,n){if("true"===process.env.HUD_SKIP_DECLS)return f.worker_logger.debug("Skipping file declarations"),void await K([],t,o,n);if("true"===process.env.HUD_FORCE_ALL_DECLS)return f.worker_logger.debug("Forcing all file declarations"),void await K(e,t,o,n);try{const r=await(0,p.getFilesForDeclarations)(e,t.sendFileDeclarations.bind(t));await K(r,t,o,n)}catch{return f.worker_logger.error("Failed to send file declarations, parsing all files"),void await K(e,t,o,n)}}(a,e,o,t));break;case"GetMode":A(async function(e,t){const{runningMode:o}=e,n=await t.getMode({runningMode:o});x?.postMessage({msg:"GetMode",content:{mode:n}})}(a,e));break;case"EndpointDeclaration":A(async function(e,t,o){for(let n=0;n<e.length;n+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(t,e.slice(n,n+g.hudConfig.communicationBatchSize),{event_version:"1.0.2"})}(a,r,e));break;case"Runtime":case"PreInitLoadedModules":case"PostInitLoadedModules":case"PatchedModules":A(z(a,r,e));break;case"GraphQLResolvers":case"GraphQLDocuments":case"KafkaJSTopics":A(H(a,r,e));break;case"SqsQueue":A(H(a,r,e,{event_version:"1.0.1"}));break;case"StaticNextJsEndpoints":A(async function(e,t){const o=JSON.parse(e.NextConfig),n=await(0,h.extractNextEndpointDeclarations)(o);await H(n,"EndpointDeclaration",t)}(a,e));break;case"Investigations":A(async function(e,t){const o=g.hudConfig.investigation.store,n=[];for(const r of e)try{const e=(0,C.createRegexes)(g.hudConfig.dynamicConfig.censorshipRegexes),a={...(0,C.censorInvestigation)(r,{valueRegexToRedact:e,keysToRedact:g.hudConfig.dynamicConfig.blacklistParams,whitelistNestedFields:g.hudConfig.dynamicConfig.forensicsWhitelistFields,blacklistNestedFields:g.hudConfig.dynamicConfig.forensicsBlacklistFields}),version:g.hudConfig.investigation.objectVersion};if("disk"===o.type)await B(a,o);else if("s3"===o.type){const e=U(a),o=await t.storeObject(e,Buffer.from(JSON.stringify(a)));if(!o){f.worker_logger.error("Failed to store investigation",{investigationSaveName:e});continue}if(!r.context){f.worker_logger.error("Investigation has no context, even though it should");continue}const i={version:g.hudConfig.investigation.objectVersion,flow_type:r.context.type,flow_uuid:"sqs"===r.context.type?r.context.flow_id:r.context.endpoint_uuid,s3_pointer:o,timestamp:r.context.timestamp,caught:r.caught,exceptions:r.exceptions.map(e=>({name:e.name,functions:e.executionFlow.map(e=>e.function_id)}))};n.push(i)}}catch(e){f.worker_logger.error("Failed to save investigation",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}n.length>0&&await t.batch("FlowInvestigation",n)}(a,e));break;case"LogFilename":A(G(a,e));break;case"Logs":A(async function(e,t){x?.postMessage(m.KeepAliveMessage),await t.logs(e.logs)}(a,e));break;case"TsNodeConfig":L=a.tsConfig,o&&o.postMessage({msg:"TsNodeConfig",content:{tsOptions:L}});break;case"Reingest":A(async function(e,t){for(const o of e){N();try{await t.triggerReingest(o)}catch(e){f.worker_logger.error("Failed to trigger reingest",{buildId:o,error:e})}}}(a,e));break;default:f.worker_logger.error("Unknown command",{msg:r})}})}(q,P)}catch(e){f.worker_logger.critical("Worker's main failed",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}).catch(e=>{if(e instanceof p.HudSessionThrottle)return f.worker_logger.info("Session throttled, exiting worker"),void x.postMessage({msg:"throttled"});if(e instanceof p.HudClientError)return f.worker_logger.error("Posting network error to main thread",{message:e.message,originalMessage:e.originalAxiosErrorCode}),void x.postMessage({msg:"networkError",content:{message:e.message,originalMessage:e.originalAxiosErrorCode}});throw f.worker_logger.critical("Failed initiating session",{msg:e.message,stack:e.stack}),e});const $=(0,p.suppressTraces)(f.renewFileTransports);async function G(e,t){for(const o of e.filenames)x?.postMessage(m.KeepAliveMessage),await t.logs(c.readFileSync(o,{encoding:"utf-8"})),g.hudConfig.deleteLogsAfterSending&&c.unlinkSync(o);const o=$();for(const e of o)x?.postMessage(m.KeepAliveMessage),await t.logs(c.readFileSync(e,{encoding:"utf-8"})),g.hudConfig.deleteLogsAfterSending&&c.unlinkSync(e)}async function J(e,t){const o=e.join("\n");o.length>0&&await t.logs(o)}async function V(){R.abort(),R=new AbortController}},2546:e=>{e.exports=require("./lib")},4672:e=>{e.exports=require("./client")},4678:function(e,t,o){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.loopWorkloadDataCollector=async function(e,t,o,n){try{const a=new l(e,t),i=await a.getWorkloadData();await r(a,i);for await(const e of(0,s.unrefSetInterval)(o,void 0,{signal:n}))await r(a,i)}catch(e){(0,s.isAbortError)(e)||c.worker_logger.error("Failed collecting workload metadata",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}async function r(e,t){try{await e.send(t)}catch(e){c.worker_logger.error("Failed to send workload metadata, skipping",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}};const r=n(o(8938)),a=o(9896),i=n(o(857)),s=o(2546),c=o(523);class l{client;config;constructor(e,t){this.client=e,this.config=t}getOperatingSystem(){return i.default.platform()}isKubernetesPod(){return!!process.env.KUBERNETES_SERVICE_HOST}getFileContentSilentFail(e){try{return(0,a.readFileSync)(e,"utf8")}catch{return c.worker_logger.debug(`Could not read file ${e}`),null}}getKubernetesWorkloadData(){if("linux"!==this.getOperatingSystem())return c.worker_logger.info("Kubernetes workload data is only available on Linux, current OS is "+this.getOperatingSystem()),null;if(!this.isKubernetesPod())return null;const e=i.default.hostname(),t=this.getFileContentSilentFail(this.config.kubernetes.namespaceFile),o=this.getFileContentSilentFail(this.config.kubernetes.uuidFile),n=(0,s.getCpuLimit)(c.worker_logger),r=(0,s.getPodMemoryLimit)(c.worker_logger),a=null!==r.podMemoryLimitMB?r.podMemoryLimitMB.toString():null;return{product_uuid:o?.trim()||null,pod_name:e.trim(),pod_namespace:t?.trim()||null,pod_memory_limit:a?.trim()||null,pod_cpu_limit:n?.toString()||null}}async getLocalAWSWorkloadData(){const e=(0,a.readFileSync)(this.config.aws.metadataFile,"utf8"),t=JSON.parse(e),o=t.ds.dynamic["instance-identity"].document;return{workload_id:o.instanceId,workload_instance_type:o.instanceType,region:o.region,ami_id:o.imageId,launched_date:o.pendingTime,life_cycle:t.ds["meta-data"]["instance-life-cycle"]}}async getIMDSWorkloadData(){let e;try{e=await(0,s.suppressTraces)(async()=>await r.default.put(`${this.config.aws.imds.baseURL}${this.config.aws.imds.tokenURI}`,{},{timeout:this.config.aws.imds.requestTimeout,headers:{"X-aws-ec2-metadata-token-ttl-seconds":"21600"}}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance metadata token: ${e}`)}const t={"X-aws-ec2-metadata-token":e.data};let o;try{o=await(0,s.suppressTraces)(async()=>await r.default.get(`${this.config.aws.imds.baseURL}${this.config.aws.imds.identityURI}`,{timeout:this.config.aws.imds.requestTimeout,headers:t}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance identity document: ${e}`)}const n=o.data;let a;try{a=await(0,s.suppressTraces)(async()=>await r.default.get(`${this.config.aws.imds.baseURL}${this.config.aws.imds.lifeCycleURI}`,{timeout:this.config.aws.imds.requestTimeout,headers:t}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance life cycle: ${e}`)}const i=a.data;return{workload_id:n.instanceId,workload_instance_type:n.instanceType,region:n.region,ami_id:n.imageId,launched_date:n.pendingTime,life_cycle:i}}async getAWSWorkloadData(){try{return await this.getLocalAWSWorkloadData()}catch(e){c.worker_logger.info("Failed to get workload metadata from local file",{msg:e.message})}try{return await this.getIMDSWorkloadData()}catch(e){c.worker_logger.info("Failed to get workload metadata from IMDS",{msg:e.message})}return null}async getWorkloadData(){return{aws_workload_data:await this.getAWSWorkloadData(),kubernetes_workload_data:this.getKubernetesWorkloadData()}}async send(e){c.worker_logger.info("Sending workload metadata to the server",{msg:e}),await this.client.send("WorkloadData",e)}}},5809:e=>{e.exports=require("./config")},6261:e=>{e.exports=require("events")},6304:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createRegexes=function(e){return e.map(e=>({regex:new RegExp(e.regex,"g"),replacement:e.replacement}))},t.censorInvestigation=function(e,t){const o=e.context?function(e,t,o){const n={system_info:e?.system_info,machine_metrics:e?.machine_metrics,observability_identifiers:e?.observability_identifiers};if("http"===e.type)return{...n,...r(e,t,o)};if("sqs"===e.type)return{...n,...a(e,t,o)};throw new Error(`Unknown context type: ${e}`)}(e.context,t.valueRegexToRedact,t.keysToRedact):void 0;let c={status:e.status,context:o,exceptions:e.exceptions.map(e=>({name:e.name,message:e.message?i(e.message,t.valueRegexToRedact):void 0,stackTrace:e.stackTrace,executionFlow:e.executionFlow.map(e=>({...e,args:s(e.args,t.valueRegexToRedact,t.keysToRedact)})),caught:e.caught})),...e.userContext?{userContext:e.userContext}:{}};return t.whitelistNestedFields.length>0&&(c=(0,n.pickDeep)(c,t.whitelistNestedFields)),t.blacklistNestedFields.length>0&&(c=(0,n.omitDeep)(c,t.blacklistNestedFields)),c};const n=o(2546);function r(e,t,o){return{type:e.type,endpoint_uuid:e.endpoint_uuid,status_code:e.status_code,route:i(e?.route,t),params:s(e?.params,t,o),query:s(e?.query,t,o),request_body:s(e?.request_body,t,o),method:e?.method,timestamp:e?.timestamp,extra_headers:e.extra_headers??{}}}function a(e,t,o){return{type:e.type,flow_id:e.flow_id,messages:s(e.messages,t,o),timestamp:e.timestamp}}function i(e,t){for(const o of t)e=e.replace(o.regex,o.replacement);return e}function s(e,t,o){if("string"==typeof e)return i(e,t);if("object"==typeof e&&null!==e)for(const n in e)o.includes(n)?e[n]="[REDACTED]":e[n]=s(e[n],t,o);return e}},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")},8938:e=>{e.exports=require("axios")},9896:e=>{e.exports=require("fs")}},t={};return function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}(1886)})());
1
+ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},857:e=>{e.exports=require("os")},1638:e=>{e.exports=require("./declarations")},1886:function(e,t,o){var n,r=this&&this.__createBinding||(Object.create?function(e,t,o,n){void 0===n&&(n=o);var r=Object.getOwnPropertyDescriptor(t,o);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[o]}}),Object.defineProperty(e,n,r)}:function(e,t,o,n){void 0===n&&(n=o),e[n]=t[o]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[t.length]=o);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o=n(e),i=0;i<o.length;i++)"default"!==o[i]&&r(t,e,o[i]);return a(t,e),t}),s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const c=i(o(9896)),l=o(8167),g=o(5809),d=o(2546),u=i(o(523)),f=o(523),m=o(8528),p=o(2546),w=o(4672),h=o(8269),k=o(2546),_=o(6982),y=o(6261),v=s(o(6928)),b=o(4678),C=o(6304),x=l.parentPort,M=l.workerData.apiKey,S=l.workerData.service,D=l.workerData.startTime,F=l.workerData.tags,E=l.workerData.lambdaExtensionId,I=l.workerData.shouldCreateDeclaraionWorker;let R,O=new AbortController,T=!1,L=!1;const W=p.safeCall.bind(p.safeCall,f.worker_logger);if(g.hudConfig.userConfig=l.workerData.userConfig,f.worker_logger.info("Worker started"),null===x)throw new p.HudWorkerError("Failed to get port");const A=new Set;let P;E&&(P=new y.EventEmitter,P.setMaxListeners(0),W((0,k.extensionMainLoop)(E,P))),x.postMessage({msg:"started"}),(0,p.setSentEventsCountInterval)();const q=new w.HudClient(P);function N(){T||(T=!0,u.customer_logger.log(d.UserLogs.FirstDecalarationSent()),L&&u.customer_logger.log(d.UserLogs.HappyFlowCompleted()))}async function j(e,t,n,r){if(0!==e.length)for(const a of e)try{if(r&&(0,y.once)(r,"eventloop"),f.worker_logger.debug("Sending file to parser worker",{filename:a.filename}),n){n.postMessage({msg:"SourceFileMetadata",content:a});continue}const{filename:e,indexOffset:s,indexOffsetEnd:c}=a,l=await(0,p.readFile)(e,s,c);if(!l)continue;const{parseDeclarations:g}=await Promise.resolve().then(()=>i(o(1638))),d=await g(a,l,void 0,R);await K(d,t),d.declarations.length>0&&N()}catch(e){f.worker_logger.error("Failed to parse declarations",{filename:a.filename,error:e})}else N()}async function K(e,t){e.blacklist&&e.blacklist.uuids.length>0&&(x?.postMessage(m.KeepAliveMessage),e.blacklist.uuids.forEach(e=>{A.add(e)}),await t.batch("CorruptedFile",[e.blacklist],{event_version:"1.0.0"}));for(let o=0;o<e.declarations.length;o+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await t.batch("FunctionDeclaration",e.declarations.slice(o,o+g.hudConfig.communicationBatchSize),{event_version:m.FUNCTION_DECLARATION_VERSION})}function U(e){return`investigation-${e?.context?.timestamp??Date.now()}-${(0,_.randomUUID)()}.json`}async function B(e,t){await c.promises.writeFile(v.default.join(t.path,U(e)),JSON.stringify(e,null,2))}async function H(e,t,o,n={}){for(let r=0;r<e.length;r+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(t,e.slice(r,r+g.hudConfig.communicationBatchSize),n)}async function z(e,t,o){x?.postMessage(m.KeepAliveMessage),await o.send(t,e)}async function $(e,t){const o=e.join("\n");o.length>0&&await t.logs(o)}async function G(){O.abort(),O=new AbortController}q.initSession(M,S,D,F).then(async e=>{q.setSession(e);const{sessionId:t,extraHeaders:o}=e;f.worker_logger.info("Initialized successfuly",{sessionId:t});const n=m.HudSessionInitStatus.success;x.postMessage({msg:"initialized",content:{status:n,sessionInfo:{sessionId:t,extraHeaders:o}}}),await async function(e){if(null===x)throw new p.HudWorkerError("Failed to get port");const t=await e.getRemoteConfig();return t?(f.worker_logger.info("Remote configuration exists"),g.hudConfig.dynamicConfig=(0,g.updateDynamicConfig)(t,g.hudConfig,f.worker_logger),f.worker_logger.info("Current dynamic configuration:",{currentDynamicConfig:g.hudConfig.dynamicConfig})):f.worker_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:g.hudConfig.dynamicConfig}),x.postMessage({msg:"initDynamicConfig",content:t}),t}(q);try{await async function(e,t){if(null===x)throw new p.HudWorkerError("Failed to get port");const o=I?function(e,t){const o=p.myRequire.resolve(`${g.SDK_MODULE_NAME}/declarationWorker`),n=new l.Worker(o);return n.unref(),n.on("message",o=>{"eventlooptime"!==o?W(K(o,e)):t&&(0,y.once)(t,"eventloop")}),n.on("error",e=>{f.worker_logger.critical("Declaration parser worker crashed",{msg:e instanceof Error?e.message:void 0})}),n.on("exit",e=>{f.worker_logger.warning("Declaration parser worker exited",{code:e})}),n}(e,t):void 0;x.on("message",n=>{const{msg:r,content:a}=n;switch(f.worker_logger.debug("Got message from main thread",{msg:r}),r){case"Terminate":W(async function(e,t){const o=process.hrtime();f.worker_logger.warning("Notified to terminate. flushing.",{grace:e.grace}),await $(e.logBuffers,t),await $((0,f.getSavedLogs)(),t),await G();const n=process.hrtime(o),r=1e3*n[0]+n[1]/1e6;f.worker_logger.info("Done flushing. responsing to parent",{grace:e.grace,termination_time_ms:r}),x?.postMessage({msg:"terminated"}),x?.close()}(a,e));break;case"StartPeriodicTasks":W(async function(e){W((0,b.loopWorkloadDataCollector)(e,g.hudConfig.workloadMetadata,g.hudConfig.workloadMetadata.sendInterval,O.signal)),W((0,p.loopLogProcessPerformance)(f.worker_logger,g.hudConfig.logPerfInterval,O.signal)),W((0,p.loopLogThreadPerformance)(f.worker_logger,g.hudConfig.logPerfInterval,O.signal)),W(async function(e,t,o){for await(const n of(0,p.unrefSetInterval)(t,void 0,{signal:o.signal})){x?.postMessage(m.KeepAliveMessage);const t=(0,f.getSavedLogs)();await $(t,e)}}(e,g.hudConfig.logsSendInterval,O)),W(async function(e){const t=await(0,k.getAllModules)(v.default.resolve("."));await z({modules:t},"InstalledModules",e)}(e))}(e));break;case"Abort":W(G());break;case"Invocations":W(async function(e,t,o){const n=e;f.worker_logger.debug("Got invocations message",{msg:t,size:e.length});const r=n.filter(e=>!A.has(e.function_id));for(let e=0;e<r.length;e+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch("Invocations",r.slice(e,e+g.hudConfig.communicationBatchSize),{event_version:"1.0.1"});L||(L=!0,u.customer_logger.log(d.UserLogs.FirstInvocationSent()),T&&u.customer_logger.log(d.UserLogs.HappyFlowCompleted()))}(a,r,e));break;case"FlowMetrics":W(async function(e,t,o){const{aggregatedMetrics:n}=e;f.worker_logger.debug("Got aggregated flow metrics message",{msg:t,size:Object.keys(n).length}),x?.postMessage(m.KeepAliveMessage);for(const e in n){const{eventVersion:t,metrics:r}=n[e];if(0!==r.length)for(let n=0;n<r.length;n+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(e,r.slice(n,n+g.hudConfig.communicationBatchSize),t?{event_version:t}:{})}}(a,r,e));break;case"ProcessedFiles":W(async function(e,t,o,n){if("true"===process.env.HUD_SKIP_DECLS)return f.worker_logger.debug("Skipping file declarations"),void await j([],t,o,n);if("true"===process.env.HUD_FORCE_ALL_DECLS)return f.worker_logger.debug("Forcing all file declarations"),void await j(e,t,o,n);try{const r=await(0,p.getFilesForDeclarations)(e,t.sendFileDeclarations.bind(t));await j(r,t,o,n)}catch{return f.worker_logger.error("Failed to send file declarations, parsing all files"),void await j(e,t,o,n)}}(a,e,o,t));break;case"GetMode":W(async function(e,t){const{runningMode:o}=e,n=await t.getMode({runningMode:o});x?.postMessage({msg:"GetMode",content:{mode:n}})}(a,e));break;case"EndpointDeclaration":W(async function(e,t,o){for(let n=0;n<e.length;n+=g.hudConfig.communicationBatchSize)x?.postMessage(m.KeepAliveMessage),await o.batch(t,e.slice(n,n+g.hudConfig.communicationBatchSize),{event_version:"1.0.2"})}(a,r,e));break;case"Runtime":case"PreInitLoadedModules":case"PostInitLoadedModules":case"PatchedModules":W(z(a,r,e));break;case"GraphQLResolvers":case"GraphQLDocuments":case"KafkaJSTopics":W(H(a,r,e));break;case"SqsQueue":W(H(a,r,e,{event_version:"1.0.1"}));break;case"StaticNextJsEndpoints":W(async function(e,t){const o=JSON.parse(e.NextConfig),n=await(0,h.extractNextEndpointDeclarations)(o);await H(n,"EndpointDeclaration",t)}(a,e));break;case"Investigations":W(async function(e,t){const o=g.hudConfig.investigation.store,n=[];for(const r of e)try{const e=(0,C.createRegexes)(g.hudConfig.dynamicConfig.censorshipRegexes),a={...(0,C.censorInvestigation)(r,{valueRegexToRedact:e,keysToRedact:g.hudConfig.dynamicConfig.blacklistParams,whitelistNestedFields:g.hudConfig.dynamicConfig.forensicsWhitelistFields,blacklistNestedFields:g.hudConfig.dynamicConfig.forensicsBlacklistFields}),version:g.hudConfig.investigation.objectVersion};if("disk"===o.type)await B(a,o);else if("s3"===o.type){const e=U(a),o=await t.storeObject(e,Buffer.from(JSON.stringify(a)));if(!o){f.worker_logger.error("Failed to store investigation",{investigationSaveName:e});continue}if(!r.context){f.worker_logger.error("Investigation has no context, even though it should");continue}const i={version:g.hudConfig.investigation.objectVersion,flow_type:r.context.type,flow_uuid:"sqs"===r.context.type?r.context.flow_id:r.context.endpoint_uuid,s3_pointer:o,timestamp:r.context.timestamp,caught:r.caught,exceptions:r.exceptions.map(e=>({name:e.name,functions:e.executionFlow.map(e=>e.function_id)}))};n.push(i)}}catch(e){f.worker_logger.error("Failed to save investigation",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}n.length>0&&await t.batch("FlowInvestigation",n)}(a,e));break;case"Logs":W(async function(e,t){x?.postMessage(m.KeepAliveMessage),await t.logs(e.logs)}(a,e));break;case"TsNodeConfig":R=a.tsConfig,o&&o.postMessage({msg:"TsNodeConfig",content:{tsOptions:R}});break;case"Reingest":W(async function(e,t){for(const o of e){N();try{await t.triggerReingest(o)}catch(e){f.worker_logger.error("Failed to trigger reingest",{buildId:o,error:e})}}}(a,e));break;default:f.worker_logger.error("Unknown command",{msg:r})}})}(q,P)}catch(e){f.worker_logger.critical("Worker's main failed",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}).catch(e=>{if(e instanceof p.HudSessionThrottle)return f.worker_logger.info("Session throttled, exiting worker"),void x.postMessage({msg:"throttled"});if(e instanceof p.HudClientError)return f.worker_logger.error("Posting network error to main thread",{message:e.message,originalMessage:e.originalAxiosErrorCode}),void x.postMessage({msg:"networkError",content:{message:e.message,originalMessage:e.originalAxiosErrorCode}});throw f.worker_logger.critical("Failed initiating session",{msg:e.message,stack:e.stack}),e})},2546:e=>{e.exports=require("./lib")},4672:e=>{e.exports=require("./client")},4678:function(e,t,o){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.loopWorkloadDataCollector=async function(e,t,o,n){try{const a=new l(e,t),i=await a.getWorkloadData();await r(a,i);for await(const e of(0,s.unrefSetInterval)(o,void 0,{signal:n}))await r(a,i)}catch(e){(0,s.isAbortError)(e)||c.worker_logger.error("Failed collecting workload metadata",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}async function r(e,t){try{await e.send(t)}catch(e){c.worker_logger.error("Failed to send workload metadata, skipping",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}};const r=n(o(8938)),a=o(9896),i=n(o(857)),s=o(2546),c=o(523);class l{client;config;constructor(e,t){this.client=e,this.config=t}getOperatingSystem(){return i.default.platform()}isKubernetesPod(){return!!process.env.KUBERNETES_SERVICE_HOST}getFileContentSilentFail(e){try{return(0,a.readFileSync)(e,"utf8")}catch{return c.worker_logger.debug(`Could not read file ${e}`),null}}getKubernetesWorkloadData(){if("linux"!==this.getOperatingSystem())return c.worker_logger.info("Kubernetes workload data is only available on Linux, current OS is "+this.getOperatingSystem()),null;if(!this.isKubernetesPod())return null;const e=i.default.hostname(),t=this.getFileContentSilentFail(this.config.kubernetes.namespaceFile),o=this.getFileContentSilentFail(this.config.kubernetes.uuidFile),n=(0,s.getCpuLimit)(c.worker_logger),r=(0,s.getPodMemoryLimit)(c.worker_logger),a=null!==r.podMemoryLimitMB?r.podMemoryLimitMB.toString():null;return{product_uuid:o?.trim()||null,pod_name:e.trim(),pod_namespace:t?.trim()||null,pod_memory_limit:a?.trim()||null,pod_cpu_limit:n?.toString()||null}}async getLocalAWSWorkloadData(){const e=(0,a.readFileSync)(this.config.aws.metadataFile,"utf8"),t=JSON.parse(e),o=t.ds.dynamic["instance-identity"].document;return{workload_id:o.instanceId,workload_instance_type:o.instanceType,region:o.region,ami_id:o.imageId,launched_date:o.pendingTime,life_cycle:t.ds["meta-data"]["instance-life-cycle"]}}async getIMDSWorkloadData(){let e;try{e=await(0,s.suppressTraces)(async()=>await r.default.put(`${this.config.aws.imds.baseURL}${this.config.aws.imds.tokenURI}`,{},{timeout:this.config.aws.imds.requestTimeout,headers:{"X-aws-ec2-metadata-token-ttl-seconds":"21600"}}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance metadata token: ${e}`)}const t={"X-aws-ec2-metadata-token":e.data};let o;try{o=await(0,s.suppressTraces)(async()=>await r.default.get(`${this.config.aws.imds.baseURL}${this.config.aws.imds.identityURI}`,{timeout:this.config.aws.imds.requestTimeout,headers:t}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance identity document: ${e}`)}const n=o.data;let a;try{a=await(0,s.suppressTraces)(async()=>await r.default.get(`${this.config.aws.imds.baseURL}${this.config.aws.imds.lifeCycleURI}`,{timeout:this.config.aws.imds.requestTimeout,headers:t}))()}catch(e){throw new s.HudWorkloadCollectorError(`Could not retrieve instance life cycle: ${e}`)}const i=a.data;return{workload_id:n.instanceId,workload_instance_type:n.instanceType,region:n.region,ami_id:n.imageId,launched_date:n.pendingTime,life_cycle:i}}async getAWSWorkloadData(){try{return await this.getLocalAWSWorkloadData()}catch(e){c.worker_logger.info("Failed to get workload metadata from local file",{msg:e.message})}try{return await this.getIMDSWorkloadData()}catch(e){c.worker_logger.info("Failed to get workload metadata from IMDS",{msg:e.message})}return null}async getWorkloadData(){return{aws_workload_data:await this.getAWSWorkloadData(),kubernetes_workload_data:this.getKubernetesWorkloadData()}}async send(e){c.worker_logger.info("Sending workload metadata to the server",{msg:e}),await this.client.send("WorkloadData",e)}}},5809:e=>{e.exports=require("./config")},6261:e=>{e.exports=require("events")},6304:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createRegexes=function(e){return e.map(e=>({regex:new RegExp(e.regex,"g"),replacement:e.replacement}))},t.censorInvestigation=function(e,t){const o=e.context?function(e,t,o){const n={system_info:e?.system_info,machine_metrics:e?.machine_metrics,observability_identifiers:e?.observability_identifiers};if("http"===e.type)return{...n,...r(e,t,o)};if("sqs"===e.type)return{...n,...a(e,t,o)};throw new Error(`Unknown context type: ${e}`)}(e.context,t.valueRegexToRedact,t.keysToRedact):void 0;let c={status:e.status,context:o,exceptions:e.exceptions.map(e=>({name:e.name,message:e.message?i(e.message,t.valueRegexToRedact):void 0,stackTrace:e.stackTrace,executionFlow:e.executionFlow.map(e=>({...e,args:s(e.args,t.valueRegexToRedact,t.keysToRedact)})),caught:e.caught})),...e.userContext?{userContext:e.userContext}:{}};return t.whitelistNestedFields.length>0&&(c=(0,n.pickDeep)(c,t.whitelistNestedFields)),t.blacklistNestedFields.length>0&&(c=(0,n.omitDeep)(c,t.blacklistNestedFields)),c};const n=o(2546);function r(e,t,o){return{type:e.type,endpoint_uuid:e.endpoint_uuid,status_code:e.status_code,route:i(e?.route,t),params:s(e?.params,t,o),query:s(e?.query,t,o),request_body:s(e?.request_body,t,o),method:e?.method,timestamp:e?.timestamp,extra_headers:e.extra_headers??{}}}function a(e,t,o){return{type:e.type,flow_id:e.flow_id,messages:s(e.messages,t,o),timestamp:e.timestamp}}function i(e,t){for(const o of t)e=e.replace(o.regex,o.replacement);return e}function s(e,t,o){if("string"==typeof e)return i(e,t);if("object"==typeof e&&null!==e)for(const n in e)o.includes(n)?e[n]="[REDACTED]":e[n]=s(e[n],t,o);return e}},6928:e=>{e.exports=require("path")},6982:e=>{e.exports=require("crypto")},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")},8938:e=>{e.exports=require("axios")},9896:e=>{e.exports=require("fs")}},t={};return function o(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}(1886)})());
2
2
  //# sourceMappingURL=worker.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hud-sdk",
3
- "version": "1.6.31",
3
+ "version": "1.6.32",
4
4
  "description": "Hud's Node SDK",
5
5
  "homepage": "https://www.hud.io/",
6
6
  "keywords": [