hud-sdk 1.8.12 → 1.8.14
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/api.d.ts +39 -5
- package/dist/cjs/api.js +1 -1
- package/dist/cjs/config.js +1 -1
- package/dist/cjs/core.js +1 -1
- package/dist/cjs/dto.js +1 -1
- package/dist/cjs/globalstate.js +1 -1
- package/dist/cjs/instrument.js +1 -1
- package/dist/cjs/lean.js +1 -1
- package/dist/cjs/lib.js +1 -1
- package/dist/cjs/logger.js +1 -1
- package/dist/cjs/worker.js +1 -1
- package/dist/cjs/wrap.js +1 -1
- package/dist/types/api.d.ts +39 -5
- package/dist/types/on_setup.d.ts +3 -0
- package/package.json +1 -1
- package/setup.d.ts +3 -0
package/api.d.ts
CHANGED
|
@@ -1,13 +1,47 @@
|
|
|
1
1
|
// Generated by dts-bundle-generator v9.5.1
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
declare enum FlowType {
|
|
4
|
+
Queue = "queue",
|
|
5
|
+
WebSocket = "websocket",
|
|
6
|
+
Custom = "custom"
|
|
7
|
+
}
|
|
8
|
+
declare enum FlowFramework {
|
|
9
|
+
BullMQ = "bullmq",
|
|
10
|
+
SocketIO = "socket.io",
|
|
11
|
+
Kafka = "kafka",
|
|
12
|
+
Sqs = "sqs",
|
|
13
|
+
Custom = "custom"
|
|
14
|
+
}
|
|
15
|
+
export type UserContext = any;
|
|
16
|
+
/**
|
|
17
|
+
* Options for the manual flow APIs. The shape is intentionally generic (not
|
|
18
|
+
* Kafka/queue specific): a flow has a {@link FlowType}, an arbitrary framework
|
|
19
|
+
* identifier, and optional queue attributes that are only used for queue flows.
|
|
20
|
+
*/
|
|
21
|
+
export interface FlowOptions {
|
|
22
|
+
/** Defaults to {@link FlowType.Custom}. */
|
|
23
|
+
type?: FlowType | "queue" | "websocket" | "custom";
|
|
24
|
+
/** Free-form framework identifier (e.g. "kafka"). Defaults to "custom". */
|
|
25
|
+
framework?: FlowFramework | string;
|
|
26
|
+
/**
|
|
27
|
+
* Number of messages handled by this flow (queue flows only). Must be a
|
|
28
|
+
* positive integer; a non-integer, zero, or negative value is ignored.
|
|
29
|
+
*/
|
|
30
|
+
messageCount?: number;
|
|
31
|
+
/**
|
|
32
|
+
* `Date` the message(s) were enqueued/produced (queue flows only). Used to
|
|
33
|
+
* derive the end-to-end (enqueue -> processing finished) duration. A
|
|
34
|
+
* non-`Date` value, one that is more than a year in the past, or one that is
|
|
35
|
+
* in the future is ignored.
|
|
36
|
+
*/
|
|
37
|
+
enqueueTime?: Date;
|
|
38
|
+
}
|
|
6
39
|
export type FlowHandler<Args extends unknown[], T> = (...args: Args) => T;
|
|
7
40
|
export declare function setHttpFlow(route: string, method: string): void;
|
|
8
|
-
export declare function startFlow(flowName: string): void;
|
|
41
|
+
export declare function startFlow(flowName: string, options?: FlowOptions): void;
|
|
9
42
|
export declare function endFlow(failureReason?: string): void;
|
|
10
|
-
export declare function wrapFlow<Args extends unknown[], T>(flowName: string, handler: FlowHandler<Args, T
|
|
43
|
+
export declare function wrapFlow<Args extends unknown[], T>(flowName: string, handler: FlowHandler<Args, T>, options?: FlowOptions): FlowHandler<Args, T>;
|
|
44
|
+
export declare function flush(): Promise<void>;
|
|
11
45
|
export declare function setContext(context: UserContext): void;
|
|
12
46
|
export declare function setFailure(error: string, context?: UserContext): void;
|
|
13
47
|
|
package/dist/cjs/api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t
|
|
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 o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},2030:e=>{e.exports=require("./instrument")},2240:e=>{e.exports=require("./core")},2546:e=>{e.exports=require("./lib")},4074:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setHttpFlow=function(e,t){try{if(x())return;if(!m(e)||!m(t))return void S("setHttpFlow");if(void 0===(0,l.getFlowStateStorage)())return void h("setHttpFlow");const r=(0,l.getFlowState)();if(void 0===r?.httpMetric)return void E("setHttpFlow:no-http-context","setHttpFlow called outside an HTTP flow. Skipping.",s.UserErrorLogs.SetHttpFlowNoHttpContext());const o=t.toLowerCase(),a=t.toUpperCase(),u=(0,s.generateEndpointFlowId)(e,[o]),g=u;d.has(g)||(d.add(g),(0,i.storeEndpointDeclaration)(new n.EndpointDeclaration(u,[o],"manual","",e))),r.httpMetric.setFlowId(u),r.httpMetric.setRequestAttributes({method:a}),r.flowId=u}catch(e){(0,u.limitedLogger)("Failed to set http flow",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}},t.startFlow=function(e,t){try{if(x())return;if(!m(e))return void S("startFlow");if(void 0===(0,l.getFlowStateStorage)())return void h("startFlow");if(b("startFlow",(0,l.getFlowState)()))return;const r=v(t,"startFlow"),o=q(r,e);if(void 0===o)return;const n=(0,a.openGenericFlowMetric)(o,r.type,r.queueAttributes);if(void 0===n)return;(0,a.runInFlow)(o,n,r.type,r.framework,void 0,e,!0)}catch(e){(0,u.limitedLogger)("Failed to start manual flow",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}},t.endFlow=function(e){try{if(x())return;if(void 0===(0,l.getFlowStateStorage)())return void h("endFlow");const t=(0,l.getFlowState)();if(void 0===t||!0!==t.isCustomFlow||void 0===t.genericMetric||void 0===t.flowType||void 0===t.flowFramework)return void E("endFlow:no-start-flow","endFlow called without an active startFlow flow. Skipping.",s.UserErrorLogs.EndFlowNoStartedFlow());"string"==typeof e&&e.length>0&&(0,g.setUserDefinedError)(e),(0,a.finalizeFlow)()}catch(e){(0,u.limitedLogger)("Failed to end manual flow",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}},t.wrapFlow=function(e,t,r){try{if(x())return t;if(!m(e))return S("wrapFlow"),t;if(void 0===(0,l.getFlowStateStorage)())return h("wrapFlow"),t;const o=v(r,"wrapFlow"),n=q(o,e);return void 0===n?t:(0,a.wrapScopedFlow)(n,t,o.type,o.framework,e,!0,()=>b("wrapFlow",(0,l.getFlowState)()),!0,o.queueAttributes)}catch(e){return(0,u.limitedLogger)("Failed to wrap manual flow",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),t}},t.resetManualFlowState=function(){f.clear(),c.clear(),d.clear()};const o=r(5809),n=r(8528),i=r(8269),a=r(2030),s=r(2546),u=r(523),l=r(7131),g=r(9633),d=new Set,c=new Set,f=new Set,p=new Set(Object.values(n.FlowType)),w=31536e6;function m(e){return"string"==typeof e&&e.length>0}function F(e,t){if(void 0===e)return;if(!(e instanceof Date)||Number.isNaN(e.getTime()))return void function(e){E(`${e}:invalid-enqueue-time`,`${e} called with an invalid enqueueTime (expected a Date). Ignoring it.`,s.UserErrorLogs.ManualFlowApiInvalidEnqueueTime(e))}(t);const r=e.getTime(),o=Date.now()-r;if(o>w)!function(e){E(`${e}:enqueue-time-too-old`,`${e} called with an enqueueTime more than a year in the past. Ignoring it.`,s.UserErrorLogs.ManualFlowApiEnqueueTimeTooOld(e))}(t);else{if(!(o<0))return r;!function(e){E(`${e}:enqueue-time-in-future`,`${e} called with an enqueueTime in the future. Ignoring it.`,s.UserErrorLogs.ManualFlowApiEnqueueTimeInFuture(e))}(t)}}function v(e,t){let r=n.FlowType.Custom,o=!1;void 0!==e?.type&&(p.has(e.type)?r=e.type:(o=!0,function(e){E(`${e}:invalid-flow-type`,`${e} called with an invalid flow type. Treating it as a custom flow.`,s.UserErrorLogs.ManualFlowApiInvalidType(e))}(t)));const i=e?.framework??"custom",a=r===n.FlowType.Queue?{messageCount:y(e?.messageCount,t),enqueueTime:F(e?.enqueueTime,t)}:void 0;return r===n.FlowType.Queue||o||void 0===e?.messageCount&&void 0===e?.enqueueTime||function(e){E(`${e}:queue-attributes-without-queue-type`,`${e} called with messageCount/enqueueTime but type is not "queue". Ignoring them.`,s.UserErrorLogs.ManualFlowApiQueueAttributesWithoutQueueType(e))}(t),{type:r,framework:i,queueAttributes:a}}function y(e,t){if(void 0!==e){if("number"==typeof e&&Number.isInteger(e)&&!(e<=0))return e;!function(e){E(`${e}:invalid-message-count`,`${e} called with an invalid messageCount (expected a positive integer). Ignoring it.`,s.UserErrorLogs.ManualFlowApiInvalidMessageCount(e))}(t)}}function E(e,t,r){c.has(e)||(u.app_logger.warning(t),u.customer_logger.logEntry(r),c.add(e))}function h(e){E(`${e}:before-register`,`${e} called before register. Skipping.`,s.UserErrorLogs.ManualFlowApiBeforeRegister(e))}function S(e){E(`${e}:invalid-flow-name`,`${e} called with an invalid flow name. Skipping.`,s.UserErrorLogs.ManualFlowApiInvalidFlowName(e))}function b(e,t){return void 0!==t?.httpMetric?(function(e){E(`${e}:inside-http-flow`,`${e} called inside an HTTP flow. Skipping.`,s.UserErrorLogs.CustomFlowApiInsideHttpFlow(e))}(e),!0):(void 0!==t?.genericMetric||void 0!==t?.flowId)&&(function(e){E(`${e}:inside-flow`,`${e} called inside another flow. Skipping.`,s.UserErrorLogs.CustomFlowApiInsideFlow(e))}(e),!0)}function x(){return void 0!==globalThis.hudRunningMode&&globalThis.hudRunningMode!==n.HudRunningMode.enabled}function q(e,t){const r=(0,s.generateGenericFlowId)(e.type,e.framework,t),n=o.hudConfig.dynamicConfig.maxCustomFlowIds;if(f.has(r)||!(f.size>=n))return f.add(r),(0,i.storeGenericDeclaration)({flow_id:r,type:e.type,framework:e.framework,name:t}),r;(0,u.limitedLogger)("Manual flow id limit reached",{name:t,maxFlowIds:n})}},5809:e=>{e.exports=require("./config")},7131:e=>{e.exports=require("./wrap")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")},9633:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setUserDefinedError=function(e){const t=(0,u.getInvestigationStorage)();if(void 0===t)return d||(s.app_logger.warning("setFailure - No Storage"),s.customer_logger.logEntry(a.UserErrorLogs.SetFailureBeforeRegister()),d=!0),!1;if(!o.hudConfig.dynamicConfig.enableInvestigation)return!1;const r=t.getStore();if(void 0===r||r.status!==n.InvestigationStatus.Open)return c||(s.app_logger.warning("setFailure called not inside async context. Skipping."),s.customer_logger.logEntry(a.UserErrorLogs.SetFailureNoAsyncContext()),c=!0),!1;if("string"!=typeof e)return s.customer_logger.logEntry(a.UserErrorLogs.SetFailureErrorNotString()),!1;if(0===e.length)return s.customer_logger.logEntry(a.UserErrorLogs.SetFailureErrorEmpty()),!1;let p=e;if(e.length>l&&(s.customer_logger.logEntry(a.UserErrorLogs.SetFailureErrorTooLong()),p=e.substring(0,l)),!(0,i.getUniqueSetFailureErrors)().has(p)){const e=o.hudConfig.dynamicConfig.investigationRateLimits.maxUniqueSetFailureErrors;(0,i.getUniqueSetFailureErrors)().size>=e&&(f||(s.customer_logger.logEntry(a.UserErrorLogs.SetFailureUniqueErrorLimitReached(e)),(0,s.limitedLogger)("setFailure: max unique errors reached",{error:p}),f=!0),p=g),(0,i.getUniqueSetFailureErrors)().add(p)}return r.data.userDefinedError=p,!0};const o=r(5809),n=r(8528),i=r(8269),a=r(2546),s=r(523),u=r(7131),l=1024,g="HUD_MAX_ERRORS_REACHED";let d=!1,c=!1,f=!1}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,r),i.exports}var o={};return(()=>{var e=o;Object.defineProperty(e,"__esModule",{value:!0}),e.wrapFlow=e.startFlow=e.setHttpFlow=e.endFlow=void 0,e.flush=async function(){try{if(p())return;await(0,n.flush)()}catch(e){(0,s.limitedLogger)("flush() failed. Skipping.",{error:e,stack:e instanceof Error?e.stack:void 0})}},e.setContext=w,e.setFailure=function(e,t){try{if(p())return;if(!(0,l.setUserDefinedError)(e))return;void 0!==t&&w(t)}catch(e){s.app_logger.warning("failed to set failure. Skipping.",{error:e,stack:e instanceof Error&&null!==e?e.stack:void 0})}};const t=r(5809),n=r(2240),i=r(8528),a=r(2546),s=r(523),u=r(7131),l=r(9633);var g=r(4074);Object.defineProperty(e,"endFlow",{enumerable:!0,get:function(){return g.endFlow}}),Object.defineProperty(e,"setHttpFlow",{enumerable:!0,get:function(){return g.setHttpFlow}}),Object.defineProperty(e,"startFlow",{enumerable:!0,get:function(){return g.startFlow}}),Object.defineProperty(e,"wrapFlow",{enumerable:!0,get:function(){return g.wrapFlow}});let d=!1,c=!1,f=!1;function p(){return void 0!==globalThis.hudRunningMode&&globalThis.hudRunningMode!==i.HudRunningMode.enabled}function w(e){try{if(p())return;const r=(0,u.getInvestigationStorage)();if(void 0===r)return void(f||(s.app_logger.warning("HudContext warning: No Storage"),s.customer_logger.logEntry(a.UserErrorLogs.SetContextBeforeRegister()),f=!0));if(!t.hudConfig.dynamicConfig.enableInvestigation)return;const o=r.getStore();if(void 0===o||o.status!==i.InvestigationStatus.Open)return void(d||(s.app_logger.warning("HudContext warning: setContext called not inside async context. Skipping."),s.customer_logger.logEntry(a.UserErrorLogs.SetContextNoAsyncContext()),d=!0));o.data.userContext={...o.data.userContext,...e}}catch(e){c||(s.app_logger.warning("HudContext warning: failed to set context. Skipping.",{error:e,stack:e instanceof Error&&null!==e?e.stack:void 0}),c=!0)}}})(),o})());
|
|
2
2
|
//# sourceMappingURL=api.js.map
|
package/dist/cjs/config.js
CHANGED
|
@@ -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 a=Object.getOwnPropertyDescriptor(n,t);a&&!("get"in a?!n.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,a)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),a=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,a(t(2887),n),a(t(2570),n);var o=t(2210);Object.defineProperty(n,"SDK_MODULE_NAME",{enumerable:!0,get:function(){return o.SDK_MODULE_NAME}}),a(t(7089),n);var r=t(5453);Object.defineProperty(n,"SDK_VERSION",{enumerable:!0,get:function(){return r.SDK_VERSION}})},2570:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.refreshInvestigationErrorStatusCodeRegex=function(e,n,t){if(null==e)return;const o=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!o.success)return;const r=o.data?.investigationErrorStatusCodeRegex;void 0!==r&&r!==n.dynamicConfig.investigationErrorStatusCodeRegex&&a(r,n,t,"Periodic refresh - Dynamic configuration updated - investigationErrorStatusCodeRegex")},n.refreshInvestigationEnabled=function(e,n,t){if(null==e)return;const a=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!a.success)return;const o=a.data?.enableInvestigation;if(void 0===o)return;o!==globalThis.hudEnableInvestigation&&(n.isInvestigationEnabledByEnv||(globalThis.hudEnableInvestigation=o,t.info("Periodic refresh - Dynamic configuration updated - enableInvestigation",{hudEnableInvestigation:o})))},n.updateDynamicConfig=function(e,n,t){const r=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!r.success)return t.error("Dynamic configuration not updated - Invalid configuration override",{remoteConfigParseResult:r,remoteConfig:e}),n.dynamicConfig;const s=o(n.dynamicConfig,r.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),void 0!==s?.investigationRateLimits?.executionFlowMaxLength&&s?.investigationRateLimits?.executionFlowMaxLength!==n.dynamicConfig.investigationRateLimits.executionFlowMaxLength&&(globalThis.hudExecutionFlowMaxLength=s.investigationRateLimits.executionFlowMaxLength),void 0!==s?.investigationRateLimits?.exceptionMaxLength&&s?.investigationRateLimits?.exceptionMaxLength!==n.dynamicConfig.investigationRateLimits.exceptionMaxLength&&(globalThis.hudExceptionMaxLength=s.investigationRateLimits.exceptionMaxLength),void 0!==r.data.investigationErrorStatusCodeRegex&&s.investigationErrorStatusCodeRegex!==n.dynamicConfig.investigationErrorStatusCodeRegex&&a(s.investigationErrorStatusCodeRegex,n,t,"Dynamic configuration updated - investigationErrorStatusCodeRegex",s),s};const i=t(2887);function a(e,n,t,a,o){const{appliedRegex:r,usedDefault:s}=(0,i.updateInvestigationErrorStatusCodePatternGlobal)(e);n.dynamicConfig.investigationErrorStatusCodeRegex=r,o&&(o.investigationErrorStatusCodeRegex=r),s&&e!==r?t.warning("Invalid investigationErrorStatusCodeRegex, using default",{investigationErrorStatusCodeRegex:e,appliedRegex:r}):t.info(a,{investigationErrorStatusCodeRegex:r})}function o(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],r=n[i];t[i]=o(a,r)}return t}},2887:function(e,n,t){var i,a=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var a=Object.getOwnPropertyDescriptor(n,t);a&&!("get"in a?!n.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,a)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),o=this&&this.__setModuleDefault||(Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n}),r=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),r=0;r<t.length;r++)"default"!==t[r]&&a(n,e,t[r]);return o(n,e),n});Object.defineProperty(n,"__esModule",{value:!0}),n.HudFailedReadConfigError=n.loggerConfig=n.hudConfig=n.HudDynamicConfigSchema=n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX=void 0,n.functionUuidToBase64=c,n.getModulesToTraceFromEnv=function(){const e=process.env.HUD_MONITOR_MODULES||process.env.HUD_INCLUDE_MODULES;if(e)return e.split(",")},n.getExcludeDirsFromEnv=function(){const e=process.env.HUD_EXCLUDE_DIRS;if(e)return e.split(",")},n.getFrameworksToEnableFromEnv=function(){const e=process.env.HUD_ENABLE_FRAMEWORKS;let n;if(e)try{n=s.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.updateInvestigationErrorStatusCodePatternGlobal=function(e=n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX){try{return globalThis.hudInvestigationErrorStatusCodePattern=new RegExp(`^(?:${e})$`),{appliedRegex:e,usedDefault:e===n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX}}catch{return globalThis.hudInvestigationErrorStatusCodePattern=new RegExp(`^(?:${n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX})$`),{appliedRegex:n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX,usedDefault:!0}}},n.matchesInvestigationErrorStatusCode=function(e){return null!=e&&globalThis.hudInvestigationErrorStatusCodePattern.test(String(e))};const s=t(8528),l=r(t(6928)),u=t(3903),d=t(1569);function c(e){return Buffer.from((0,u.parse)(e)).toString("base64").slice(0,22)}const m="globalThis._hudMark";n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX="^5\\d\\d$",n.HudDynamicConfigSchema=d.z.object({aggregationInterval:d.z.number(),aggregationFirstSendTimeout:d.z.number(),investigationInterval:d.z.number(),investigationFirstSendTimeout:d.z.number(),enableInvestigation:d.z.boolean(),investigationErrorStatusCodeRegex:d.z.string(),enableInvestigationArgsSending:d.z.boolean(),investigationRateLimits:d.z.object({maxSameInvestigations:d.z.number().int().positive(),sameInvestigationTimeWindowMs:d.z.number().int().positive(),maxTotalInvestigations:d.z.number().int().positive(),maxTotalInvestigationsErrorBased:d.z.number().int().positive(),maxTotalInvestigationsDurationBased:d.z.number().int().positive(),totalInvestigationTimeWindowMs:d.z.number().int().positive(),maxUniqLogs:d.z.number().int().positive(),maxStringLength:d.z.number().int().positive(),maxArrayLength:d.z.number().int().positive(),maxObjectDepth:d.z.number().int().positive(),maxKeyLength:d.z.number().int().positive(),executionFlowMaxLength:d.z.number().int().positive(),exceptionMaxLength:d.z.number().int().positive(),maxUniqueSetFailureErrors:d.z.number().int().positive()}),machineMetricsInterval:d.z.number().int().positive(),blacklistParams:d.z.array(d.z.string()),forensicsBlacklistFields:d.z.array(d.z.string()),forensicsWhitelistFields:d.z.array(d.z.string()),censorshipRegexes:d.z.array(d.z.object({regex:d.z.string(),replacement:d.z.string()})),reingestInterval:d.z.number().int().positive(),extraHeaders:d.z.array(d.z.string()),performanceMetricsInterval:d.z.number().int().positive(),enableOutboundData:d.z.boolean(),maxTotalOutbounds:d.z.number().int().positive(),maxOutboundCountWithData:d.z.number().int().positive(),maxHTTPRequestBodySize:d.z.number().int().positive(),maxHTTPResponseBodySize:d.z.number().int().positive(),functionDetachEnabled:d.z.boolean(),functionDetachThresholdPerSecond:d.z.number().int().positive(),enableMongoDocumentData:d.z.boolean(),enableTeardown:d.z.boolean(),flushOnUncaughtException:d.z.boolean(),fileTimestampsLogDelayMs:d.z.number().int().positive(),maxCustomFlowIds:d.z.number().int().positive()});const g=process.env.HUD_ENABLE_INVESTIGATION,v="_HUD",p="94a210f3-861c-4e18-ab27-6b6c19437c9d",b={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",endpointsDurationsInvestigationThresholds:"sink/endpoint-configuration",getKnownDetachedFunctions:"sink/known-detached-functions/get",setDetachedFunctions:"sink/known-detached-functions/set"},logger:{default:{levels:{app:"warning",worker:"warning",instrument:"warning"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},investigation:{objectVersion:"1.0.2",store:{type:"s3"}},userConfig:{lean:{value:!1,source:"DEFAULT"},minPodMemoryMB:{value:250,source:"DEFAULT"},maxMappedFunctions:{value:5e4,source:"DEFAULT"},maxFileSizeBytes:{value:2831155,source:"DEFAULT"},maxTimeUntilInitSessionMs:{value:3e4,source:"DEFAULT"},includeModules:{value:[],source:"DEFAULT"},excludeDirs:{value:[],source:"DEFAULT"},disableRuntimeInstrumentation:{value:!1,source:"DEFAULT"},disableParametersExtraction:{value:!1,source:"DEFAULT"},disableDetachedFunctions:{value:!1,source:"DEFAULT"},enableVarHoisting:{value:!1,source:"DEFAULT"},instrumentOneLiners:{value:!0,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,endpointsInterval:3e4,endpointsFirstSendWaitTime:12e4,staticNextJsEndpointsInterval:1e4,staticNextJsEndpointsMaxAttempts:12,huddBinWidth:1.2,endpointsDurationsInvestigationThresholdsInterval:6e5,remoteConfigRefreshInterval:3e5,workerStateCollectionDelay:1e4,workerGrace:6e4,teardownGrace:5e3,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:p,wrapVarPrefix:v,functionInitFunctionName:`${v}i`,functionCatchFunctionName:`${v}c`,functionFinallyFunctionName:`${v}n`,callContextVarName:`${v}x`,fixStackFunctionName:`${v}s`,asyncIteratorWrapperFunctionName:`${v}w`,wrapperUserCatchFunctionName:`${v}u`,asyncWrapperFunctionName:`${v}a`,internalAsyncWrapperFunctionName:`${v}b`,frameworksToPatch:new Map([["express",{framework:s.availableFrameworks.express,enable:!0,version:"<=5",enableEsbuild:!0}],[l.join("express","lib","router","layer.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<5",patcher:"expressLayer",enableEsbuild:!0}],[l.join("express","lib","application.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<=5",patcher:"express",enableEsbuild:!0}],[l.join("express","lib","router","index.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<5",patcher:"expressRouter",enableEsbuild:!0}],["router",{framework:s.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"expressRouterInRouter",enableEsbuild:!0}],[l.join("router","lib","layer.js"),{framework:s.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"expressLayerInRouter",enableEsbuild:!0}],["@hapi/hapi",{framework:s.availableFrameworks.hapi,enable:!0,version:">=20.0.0 <22.0.0",patcher:"hapi"}],["koa",{framework:s.availableFrameworks.koa,enable:!0,version:"^2.0.0 || ^3.0.0",patcher:"koa"}],["fastify",{framework:s.availableFrameworks.fastify,enable:!0,version:">=4.0.0 <6",patcher:"fastify"}],["graphql/execution/execute",{framework:s.availableFrameworks.graphql,enable:!1,version:"14 - 16",patcher:"graphql"}],["http",{framework:s.availableFrameworks.http,enable:!0,version:"*",patcher:"http"}],["https",{framework:s.availableFrameworks.https,enable:!0,version:"*",patcher:"http"}],["next/dist/server/base-server",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextjs"}],["next/dist/server/lib/module-loader/route-module-loader",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsModuleLoader"}],["next/dist/compiled/next-server/pages-api.runtime.prod",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsRouteModule"}],["next/dist/compiled/next-server/pages-api-turbo.runtime.prod",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=16.0.0",patcher:"nextJsRouteModule"}],["next/dist/server/config",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsConfig"}],["@nestjs/core/router/router-execution-context",{framework:s.availableFrameworks.nestjs,enable:!0,version:"*",patcher:"nestjsRouterExecutionContext"}],["kafkajs",{framework:s.availableFrameworks.kafkajs,enable:"win32"!==process.platform,version:">=1.4.0",patcher:"kafkajs"}],["@confluentinc/kafka-javascript",{framework:s.availableFrameworks.confluentKafkaJs,enable:!1,version:">=1.4.0",patcher:"confluentKafkaJs"}],["@nestjs/microservices/context/rpc-context-creator",{framework:s.availableFrameworks.nestjs,enable:"win32"!==process.platform,version:">=7.0.0",patcher:"nestjsRpcContextCreator"}],[["@codegenie/serverless-express","src","frameworks","express.js"].join(l.sep),{framework:s.availableFrameworks.codegenieServerlessExpress,enable:!0,version:"^4.1.0",patcher:"codeGenieServerlessExpress",enableEsbuild:!0}],["@codegenie/serverless-express",{framework:s.availableFrameworks.codegenieServerlessExpress,enable:!0,enableEsbuild:!0}],["sqs-consumer",{framework:s.availableFrameworks.sqs,enable:!0,version:">=7.5.0",patcher:"sqsConsumer"}],[["@mondaydotcomorg/monday-sqs-consumer","sqs-consumer"].join(l.sep),{framework:s.availableFrameworks.sqs,enable:"win32"!==process.platform,version:">=5.2.2 <6",patcher:"sqsConsumer",extraInfo:{isMondayVersion:!0,srcHash:"bd9064befbf3abb9ad0e6a53b0cf721d5612d5b8d8790875c994b7ff40b951c5"}}],["serverless-http",{framework:s.availableFrameworks.serverlessHttp,enable:!0,enableEsbuild:!0}],[l.join("serverless-http","lib","framework","get-framework.js"),{framework:s.availableFrameworks.serverlessHttp,enable:!0,version:"^2.7.0",patcher:"serverlessHttp",enableEsbuild:!0}],["axios",{framework:s.availableFrameworks.axios,enable:!0,version:">0.18.0 <1.0.0 || ^1.0.0",patcher:"outbound/axios",mainFilePath:"axios/dist/node/axios.cjs",extraInfo:{isOutbound:!0}}],["node-fetch",{framework:s.availableFrameworks.nodeFetch,enable:!0,version:"^2.0.0",patcher:"outbound/nodeFetch",mainFilePath:"node-fetch/lib/index.js",extraInfo:{isOutbound:!0}}],["request",{framework:s.availableFrameworks.request,enable:!0,version:"2.88.2",patcher:"outbound/request",extraInfo:{isOutbound:!0}}],["pg",{framework:s.availableFrameworks.pg,enable:!0,version:"^8.8.0",patcher:"outbound/pg",extraInfo:{isOutbound:!0}}],["@clickhouse/client-common",{framework:s.availableFrameworks.clickhouse,enable:!1,version:"^1.10.0",patcher:"outbound/clickhouse",extraInfo:{isOutbound:!0}}],["ioredis",{framework:s.availableFrameworks.ioredis,enable:!0,version:"^4.0.0 || ^5.0.0",patcher:"outbound/ioredis",extraInfo:{isOutbound:!0}}],["mongodb",{framework:s.availableFrameworks.mongodb,enable:!0,version:">=5.0.0 <8.0.0",patcher:"outbound/mongodb",extraInfo:{isOutbound:!0}}],["mongoose",{framework:s.availableFrameworks.mongoose,enable:!0,version:">=5.0.0 <7.0.0",patcher:"outbound/mongoose",extraInfo:{isOutbound:!0,coveredByFramework:{frameworkKey:"mongodb",versionRange:">=7.0.0 <10.0.0"}}}],["p-limit",{framework:"p-limit",enable:!0,version:"^3.0.0",patcher:"internal/pLimit"}]]),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"===g,investigationErrorStatusCodeRegex:n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX,enableInvestigationArgsSending:!1,investigationRateLimits:{maxSameInvestigations:2,sameInvestigationTimeWindowMs:36e5,maxTotalInvestigations:25,maxTotalInvestigationsErrorBased:25,maxTotalInvestigationsDurationBased:20,totalInvestigationTimeWindowMs:216e5,maxUniqLogs:2,executionFlowMaxLength:20,exceptionMaxLength:20,maxStringLength:1024,maxArrayLength:10,maxObjectDepth:3,maxKeyLength:30,maxUniqueSetFailureErrors:100},machineMetricsInterval:1e4,performanceMetricsInterval:6e4,reingestInterval:3e4,extraHeaders:[],enableOutboundData:"true"===process.env.HUD_ENABLE_OUTBOUND_DATA,maxHTTPRequestBodySize:1024,maxHTTPResponseBodySize:5120,blacklistParams:[],censorshipRegexes:[],forensicsBlacklistFields:[],forensicsWhitelistFields:[],maxOutboundCountWithData:process.env.HUD_MAX_OUTBOUND_WITH_DATA?parseInt(process.env.HUD_MAX_OUTBOUND_WITH_DATA):10,maxTotalOutbounds:20,functionDetachEnabled:!1,functionDetachThresholdPerSecond:5833,enableMongoDocumentData:!1,enableTeardown:!1,flushOnUncaughtException:!1,fileTimestampsLogDelayMs:12e4,maxCustomFlowIds:1e3},machineMetricsSavedLength:2,isInvestigationEnabledByEnv:void 0!==g,suppressTraces:"true"!==process.env.HUD_DISABLE_SUPPRESS_TRACES,lambdaMinimunMemory:1024,lambdaBaseGivenTime:400,lambdaExtraGivenTimePerRequest:50,lambdaMaxGivenTime:700,throttleStatusCode:202,axiosFunctionId:c((0,u.v5)("axios",p)),nodeFetchFunctionId:c((0,u.v5)("node-fetch",p)),nodeFetchBodiesFunctionIds:{json:c((0,u.v5)("node-fetch-body-json",p)),text:c((0,u.v5)("node-fetch-body-text",p)),arrayBuffer:c((0,u.v5)("node-fetch-body-arrayBuffer",p)),blob:c((0,u.v5)("node-fetch-body-blob",p))},requestFunctionId:c((0,u.v5)("request-request",p)),requestMethodFunctionIds:{get:c((0,u.v5)("request-get",p)),head:c((0,u.v5)("request-head",p)),options:c((0,u.v5)("request-options",p)),post:c((0,u.v5)("request-post",p)),put:c((0,u.v5)("request-put",p)),patch:c((0,u.v5)("request-patch",p)),del:c((0,u.v5)("request-del",p)),delete:c((0,u.v5)("request-delete",p))},pgConnectFunctionId:c((0,u.v5)("pg-connect",p)),pgQueryFunctionId:c((0,u.v5)("pg-query",p)),pgEndFunctionId:c((0,u.v5)("pg-end",p)),clickhouseQueryFunctionId:c((0,u.v5)("clickhouse-query",p)),clickhouseExecFunctionId:c((0,u.v5)("clickhouse-exec",p)),clickhouseCommandFunctionId:c((0,u.v5)("clickhouse-command",p)),clickhouseInsertFunctionId:c((0,u.v5)("clickhouse-insert",p)),clickhouseCloseFunctionId:c((0,u.v5)("clickhouse-close",p)),functionsToInstrument:[{moduleName:"typeorm",fileToFunctionsMapping:{[l.join(l.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",esbuildFunctionIdVar:"hudFI",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:m,nextJsMarkStatement:`${m} = "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;const f=process.env.HUD_DEBUG?n.hudConfig.logger.debug:n.hudConfig.logger.default;n.loggerConfig={...f,console:"true"===process.env.HUD_VERBOSE};class h extends Error{path;code;constructor(e,n){super(),this.path=e,this.code=n}}n.HudFailedReadConfigError=h},3903:e=>{e.exports=require("uuid")},5453:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=void 0,n.SDK_VERSION="1.8.12"},6928:e=>{e.exports=require("path")},7089:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ObjectStoreConfigSchema=void 0;const i=t(1569),a=i.z.object({type:i.z.literal("s3")}),o=i.z.object({type:i.z.literal("disk"),path:i.z.string()}),r=i.z.object({type:i.z.literal("customer_s3"),bucket:i.z.string(),region:i.z.string(),prefix:i.z.string().optional()});n.ObjectStoreConfigSchema=i.z.union([a,o,r])},8528:e=>{e.exports=require("./dto")}},n={};return function t(i){var a=n[i];if(void 0!==a)return a.exports;var o=n[i]={exports:{}};return e[i].call(o.exports,o,o.exports,t),o.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 a=Object.getOwnPropertyDescriptor(n,t);a&&!("get"in a?!n.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,a)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),a=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,a(t(2887),n),a(t(2570),n);var o=t(2210);Object.defineProperty(n,"SDK_MODULE_NAME",{enumerable:!0,get:function(){return o.SDK_MODULE_NAME}}),a(t(7089),n);var r=t(5453);Object.defineProperty(n,"SDK_VERSION",{enumerable:!0,get:function(){return r.SDK_VERSION}})},2570:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.refreshInvestigationErrorStatusCodeRegex=function(e,n,t){if(null==e)return;const o=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!o.success)return;const r=o.data?.investigationErrorStatusCodeRegex;void 0!==r&&r!==n.dynamicConfig.investigationErrorStatusCodeRegex&&a(r,n,t,"Periodic refresh - Dynamic configuration updated - investigationErrorStatusCodeRegex")},n.refreshInvestigationEnabled=function(e,n,t){if(null==e)return;const a=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!a.success)return;const o=a.data?.enableInvestigation;if(void 0===o)return;o!==globalThis.hudEnableInvestigation&&(n.isInvestigationEnabledByEnv||(globalThis.hudEnableInvestigation=o,t.info("Periodic refresh - Dynamic configuration updated - enableInvestigation",{hudEnableInvestigation:o})))},n.updateDynamicConfig=function(e,n,t){const r=i.HudDynamicConfigSchema.deepPartial().safeParse(e);if(!r.success)return t.error("Dynamic configuration not updated - Invalid configuration override",{remoteConfigParseResult:r,remoteConfig:e}),n.dynamicConfig;const s=o(n.dynamicConfig,r.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),void 0!==s?.investigationRateLimits?.executionFlowMaxLength&&s?.investigationRateLimits?.executionFlowMaxLength!==n.dynamicConfig.investigationRateLimits.executionFlowMaxLength&&(globalThis.hudExecutionFlowMaxLength=s.investigationRateLimits.executionFlowMaxLength),void 0!==s?.investigationRateLimits?.exceptionMaxLength&&s?.investigationRateLimits?.exceptionMaxLength!==n.dynamicConfig.investigationRateLimits.exceptionMaxLength&&(globalThis.hudExceptionMaxLength=s.investigationRateLimits.exceptionMaxLength),void 0!==r.data.investigationErrorStatusCodeRegex&&s.investigationErrorStatusCodeRegex!==n.dynamicConfig.investigationErrorStatusCodeRegex&&a(s.investigationErrorStatusCodeRegex,n,t,"Dynamic configuration updated - investigationErrorStatusCodeRegex",s),s};const i=t(2887);function a(e,n,t,a,o){const{appliedRegex:r,usedDefault:s}=(0,i.updateInvestigationErrorStatusCodePatternGlobal)(e);n.dynamicConfig.investigationErrorStatusCodeRegex=r,o&&(o.investigationErrorStatusCodeRegex=r),s&&e!==r?t.warning("Invalid investigationErrorStatusCodeRegex, using default",{investigationErrorStatusCodeRegex:e,appliedRegex:r}):t.info(a,{investigationErrorStatusCodeRegex:r})}function o(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],r=n[i];t[i]=o(a,r)}return t}},2887:function(e,n,t){var i,a=this&&this.__createBinding||(Object.create?function(e,n,t,i){void 0===i&&(i=t);var a=Object.getOwnPropertyDescriptor(n,t);a&&!("get"in a?!n.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return n[t]}}),Object.defineProperty(e,i,a)}:function(e,n,t,i){void 0===i&&(i=t),e[i]=n[t]}),o=this&&this.__setModuleDefault||(Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n}),r=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),r=0;r<t.length;r++)"default"!==t[r]&&a(n,e,t[r]);return o(n,e),n});Object.defineProperty(n,"__esModule",{value:!0}),n.HudFailedReadConfigError=n.loggerConfig=n.hudConfig=n.HudDynamicConfigSchema=n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX=void 0,n.functionUuidToBase64=c,n.getModulesToTraceFromEnv=function(){const e=process.env.HUD_MONITOR_MODULES||process.env.HUD_INCLUDE_MODULES;if(e)return e.split(",")},n.getExcludeDirsFromEnv=function(){const e=process.env.HUD_EXCLUDE_DIRS;if(e)return e.split(",")},n.getFrameworksToEnableFromEnv=function(){const e=process.env.HUD_ENABLE_FRAMEWORKS;let n;if(e)try{n=s.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.updateInvestigationErrorStatusCodePatternGlobal=function(e=n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX){try{return globalThis.hudInvestigationErrorStatusCodePattern=new RegExp(`^(?:${e})$`),{appliedRegex:e,usedDefault:e===n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX}}catch{return globalThis.hudInvestigationErrorStatusCodePattern=new RegExp(`^(?:${n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX})$`),{appliedRegex:n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX,usedDefault:!0}}},n.matchesInvestigationErrorStatusCode=function(e){return null!=e&&globalThis.hudInvestigationErrorStatusCodePattern.test(String(e))};const s=t(8528),l=r(t(6928)),u=t(3903),d=t(1569);function c(e){return Buffer.from((0,u.parse)(e)).toString("base64").slice(0,22)}const m="globalThis._hudMark";n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX="^5\\d\\d$",n.HudDynamicConfigSchema=d.z.object({aggregationInterval:d.z.number(),aggregationFirstSendTimeout:d.z.number(),investigationInterval:d.z.number(),investigationFirstSendTimeout:d.z.number(),enableInvestigation:d.z.boolean(),investigationErrorStatusCodeRegex:d.z.string(),enableInvestigationArgsSending:d.z.boolean(),investigationRateLimits:d.z.object({maxSameInvestigations:d.z.number().int().positive(),sameInvestigationTimeWindowMs:d.z.number().int().positive(),maxTotalInvestigations:d.z.number().int().positive(),maxTotalInvestigationsErrorBased:d.z.number().int().positive(),maxTotalInvestigationsDurationBased:d.z.number().int().positive(),totalInvestigationTimeWindowMs:d.z.number().int().positive(),maxUniqLogs:d.z.number().int().positive(),maxStringLength:d.z.number().int().positive(),maxArrayLength:d.z.number().int().positive(),maxObjectDepth:d.z.number().int().positive(),maxKeyLength:d.z.number().int().positive(),executionFlowMaxLength:d.z.number().int().positive(),exceptionMaxLength:d.z.number().int().positive(),maxUniqueSetFailureErrors:d.z.number().int().positive()}),machineMetricsInterval:d.z.number().int().positive(),blacklistParams:d.z.array(d.z.string()),forensicsBlacklistFields:d.z.array(d.z.string()),forensicsWhitelistFields:d.z.array(d.z.string()),censorshipRegexes:d.z.array(d.z.object({regex:d.z.string(),replacement:d.z.string()})),reingestInterval:d.z.number().int().positive(),extraHeaders:d.z.array(d.z.string()),performanceMetricsInterval:d.z.number().int().positive(),enableOutboundData:d.z.boolean(),maxTotalOutbounds:d.z.number().int().positive(),maxOutboundCountWithData:d.z.number().int().positive(),maxHTTPRequestBodySize:d.z.number().int().positive(),maxHTTPResponseBodySize:d.z.number().int().positive(),functionDetachEnabled:d.z.boolean(),functionDetachThresholdPerSecond:d.z.number().int().positive(),functionDetachMinWindowMs:d.z.number().int().nonnegative(),enableMongoDocumentData:d.z.boolean(),enableTeardown:d.z.boolean(),flushOnUncaughtException:d.z.boolean(),fileTimestampsLogDelayMs:d.z.number().int().positive(),maxCustomFlowIds:d.z.number().int().positive()});const g=process.env.HUD_ENABLE_INVESTIGATION,v="_HUD",p="94a210f3-861c-4e18-ab27-6b6c19437c9d",b={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",endpointsDurationsInvestigationThresholds:"sink/endpoint-configuration",getKnownDetachedFunctions:"sink/known-detached-functions/get",setDetachedFunctions:"sink/known-detached-functions/set"},logger:{default:{levels:{app:"warning",worker:"warning",instrument:"warning"}},debug:{levels:{app:"debug",worker:"debug",instrument:"debug"}}},investigation:{objectVersion:"1.0.2",store:{type:"s3"}},userConfig:{lean:{value:!1,source:"DEFAULT"},minPodMemoryMB:{value:250,source:"DEFAULT"},maxMappedFunctions:{value:5e4,source:"DEFAULT"},maxFileSizeBytes:{value:2831155,source:"DEFAULT"},maxTimeUntilInitSessionMs:{value:3e4,source:"DEFAULT"},includeModules:{value:[],source:"DEFAULT"},excludeDirs:{value:[],source:"DEFAULT"},disableRuntimeInstrumentation:{value:!1,source:"DEFAULT"},disableParametersExtraction:{value:!1,source:"DEFAULT"},disableDetachedFunctions:{value:!1,source:"DEFAULT"},enableVarHoisting:{value:!1,source:"DEFAULT"},instrumentOneLiners:{value:!0,source:"DEFAULT"},forensicsOnly:{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,endpointsInterval:3e4,endpointsFirstSendWaitTime:12e4,staticNextJsEndpointsInterval:1e4,staticNextJsEndpointsMaxAttempts:12,huddBinWidth:1.2,endpointsDurationsInvestigationThresholdsInterval:6e5,remoteConfigRefreshInterval:3e5,workerStateCollectionDelay:1e4,workerGrace:6e4,teardownGrace:5e3,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:p,wrapVarPrefix:v,functionInitFunctionName:`${v}i`,functionCatchFunctionName:`${v}c`,functionFinallyFunctionName:`${v}n`,callContextVarName:`${v}x`,fixStackFunctionName:`${v}s`,asyncIteratorWrapperFunctionName:`${v}w`,wrapperUserCatchFunctionName:`${v}u`,asyncWrapperFunctionName:`${v}a`,internalAsyncWrapperFunctionName:`${v}b`,frameworksToPatch:new Map([["express",{framework:s.availableFrameworks.express,enable:!0,version:"<=5",enableEsbuild:!0}],[l.join("express","lib","router","layer.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<5",patcher:"expressLayer",enableEsbuild:!0}],[l.join("express","lib","application.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<=5",patcher:"express",enableEsbuild:!0}],[l.join("express","lib","router","index.js"),{framework:s.availableFrameworks.express,enable:!0,version:"<5",patcher:"expressRouter",enableEsbuild:!0}],["router",{framework:s.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"expressRouterInRouter",enableEsbuild:!0}],[l.join("router","lib","layer.js"),{framework:s.availableFrameworks.express,enable:!0,version:"^2.0.0",patcher:"expressLayerInRouter",enableEsbuild:!0}],["@hapi/hapi",{framework:s.availableFrameworks.hapi,enable:!0,version:">=20.0.0 <22.0.0",patcher:"hapi"}],["koa",{framework:s.availableFrameworks.koa,enable:!0,version:"^2.0.0 || ^3.0.0",patcher:"koa"}],["fastify",{framework:s.availableFrameworks.fastify,enable:!0,version:">=4.0.0 <6",patcher:"fastify"}],["graphql/execution/execute",{framework:s.availableFrameworks.graphql,enable:!1,version:"14 - 16",patcher:"graphql"}],["http",{framework:s.availableFrameworks.http,enable:!0,version:"*",patcher:"http"}],["https",{framework:s.availableFrameworks.https,enable:!0,version:"*",patcher:"http"}],["next/dist/server/base-server",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextjs"}],["next/dist/server/lib/module-loader/route-module-loader",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsModuleLoader"}],["next/dist/compiled/next-server/pages-api.runtime.prod",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsRouteModule"}],["next/dist/compiled/next-server/pages-api-turbo.runtime.prod",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=16.0.0",patcher:"nextJsRouteModule"}],["next/dist/server/config",{framework:s.availableFrameworks.nextjs,enable:!1,version:">=13.4.0",patcher:"nextJsConfig"}],["@nestjs/core/router/router-execution-context",{framework:s.availableFrameworks.nestjs,enable:!0,version:"*",patcher:"nestjsRouterExecutionContext"}],["kafkajs",{framework:s.availableFrameworks.kafkajs,enable:"win32"!==process.platform,version:">=1.4.0",patcher:"kafkajs"}],["@confluentinc/kafka-javascript",{framework:s.availableFrameworks.confluentKafkaJs,enable:!1,version:">=1.4.0",patcher:"confluentKafkaJs"}],["@nestjs/microservices/context/rpc-context-creator",{framework:s.availableFrameworks.nestjs,enable:"win32"!==process.platform,version:">=7.0.0",patcher:"nestjsRpcContextCreator"}],[["@codegenie/serverless-express","src","frameworks","express.js"].join(l.sep),{framework:s.availableFrameworks.codegenieServerlessExpress,enable:!0,version:"^4.1.0",patcher:"codeGenieServerlessExpress",enableEsbuild:!0}],["@codegenie/serverless-express",{framework:s.availableFrameworks.codegenieServerlessExpress,enable:!0,enableEsbuild:!0}],["sqs-consumer",{framework:s.availableFrameworks.sqs,enable:!0,version:">=7.5.0",patcher:"sqsConsumer"}],[["@mondaydotcomorg/monday-sqs-consumer","sqs-consumer"].join(l.sep),{framework:s.availableFrameworks.sqs,enable:"win32"!==process.platform,version:">=5.2.2 <6",patcher:"sqsConsumer",extraInfo:{isMondayVersion:!0,srcHash:"bd9064befbf3abb9ad0e6a53b0cf721d5612d5b8d8790875c994b7ff40b951c5"}}],["serverless-http",{framework:s.availableFrameworks.serverlessHttp,enable:!0,enableEsbuild:!0}],[l.join("serverless-http","lib","framework","get-framework.js"),{framework:s.availableFrameworks.serverlessHttp,enable:!0,version:"^2.7.0",patcher:"serverlessHttp",enableEsbuild:!0}],["axios",{framework:s.availableFrameworks.axios,enable:!0,version:">0.18.0 <1.0.0 || ^1.0.0",patcher:"outbound/axios",mainFilePath:"axios/dist/node/axios.cjs",extraInfo:{isOutbound:!0}}],["node-fetch",{framework:s.availableFrameworks.nodeFetch,enable:!0,version:"^2.0.0",patcher:"outbound/nodeFetch",mainFilePath:"node-fetch/lib/index.js",extraInfo:{isOutbound:!0}}],["request",{framework:s.availableFrameworks.request,enable:!0,version:"2.88.2",patcher:"outbound/request",extraInfo:{isOutbound:!0}}],["pg",{framework:s.availableFrameworks.pg,enable:!0,version:"^8.8.0",patcher:"outbound/pg",extraInfo:{isOutbound:!0}}],["@clickhouse/client-common",{framework:s.availableFrameworks.clickhouse,enable:!1,version:"^1.10.0",patcher:"outbound/clickhouse",extraInfo:{isOutbound:!0}}],["ioredis",{framework:s.availableFrameworks.ioredis,enable:!0,version:"^4.0.0 || ^5.0.0",patcher:"outbound/ioredis",extraInfo:{isOutbound:!0}}],["mongodb",{framework:s.availableFrameworks.mongodb,enable:!0,version:">=5.0.0 <8.0.0",patcher:"outbound/mongodb",extraInfo:{isOutbound:!0}}],["mongoose",{framework:s.availableFrameworks.mongoose,enable:!0,version:">=5.0.0 <7.0.0",patcher:"outbound/mongoose",extraInfo:{isOutbound:!0,coveredByFramework:{frameworkKey:"mongodb",versionRange:">=7.0.0 <10.0.0"}}}],["p-limit",{framework:"p-limit",enable:!0,version:"^3.0.0",patcher:"internal/pLimit"}]]),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"===g,investigationErrorStatusCodeRegex:n.DEFAULT_INVESTIGATION_ERROR_STATUS_CODE_REGEX,enableInvestigationArgsSending:!1,investigationRateLimits:{maxSameInvestigations:2,sameInvestigationTimeWindowMs:36e5,maxTotalInvestigations:25,maxTotalInvestigationsErrorBased:25,maxTotalInvestigationsDurationBased:20,totalInvestigationTimeWindowMs:216e5,maxUniqLogs:2,executionFlowMaxLength:20,exceptionMaxLength:20,maxStringLength:1024,maxArrayLength:10,maxObjectDepth:3,maxKeyLength:30,maxUniqueSetFailureErrors:100},machineMetricsInterval:1e4,performanceMetricsInterval:6e4,reingestInterval:3e4,extraHeaders:[],enableOutboundData:"true"===process.env.HUD_ENABLE_OUTBOUND_DATA,maxHTTPRequestBodySize:1024,maxHTTPResponseBodySize:5120,blacklistParams:[],censorshipRegexes:[],forensicsBlacklistFields:[],forensicsWhitelistFields:[],maxOutboundCountWithData:process.env.HUD_MAX_OUTBOUND_WITH_DATA?parseInt(process.env.HUD_MAX_OUTBOUND_WITH_DATA):10,maxTotalOutbounds:20,functionDetachEnabled:!1,functionDetachThresholdPerSecond:5833,functionDetachMinWindowMs:3e4,enableMongoDocumentData:!1,enableTeardown:!1,flushOnUncaughtException:!1,fileTimestampsLogDelayMs:12e4,maxCustomFlowIds:1e3},machineMetricsSavedLength:2,isInvestigationEnabledByEnv:void 0!==g,suppressTraces:"true"!==process.env.HUD_DISABLE_SUPPRESS_TRACES,lambdaMinimunMemory:1024,lambdaBaseGivenTime:400,lambdaExtraGivenTimePerRequest:50,lambdaMaxGivenTime:700,throttleStatusCode:202,axiosFunctionId:c((0,u.v5)("axios",p)),nodeFetchFunctionId:c((0,u.v5)("node-fetch",p)),nodeFetchBodiesFunctionIds:{json:c((0,u.v5)("node-fetch-body-json",p)),text:c((0,u.v5)("node-fetch-body-text",p)),arrayBuffer:c((0,u.v5)("node-fetch-body-arrayBuffer",p)),blob:c((0,u.v5)("node-fetch-body-blob",p))},requestFunctionId:c((0,u.v5)("request-request",p)),requestMethodFunctionIds:{get:c((0,u.v5)("request-get",p)),head:c((0,u.v5)("request-head",p)),options:c((0,u.v5)("request-options",p)),post:c((0,u.v5)("request-post",p)),put:c((0,u.v5)("request-put",p)),patch:c((0,u.v5)("request-patch",p)),del:c((0,u.v5)("request-del",p)),delete:c((0,u.v5)("request-delete",p))},pgConnectFunctionId:c((0,u.v5)("pg-connect",p)),pgQueryFunctionId:c((0,u.v5)("pg-query",p)),pgEndFunctionId:c((0,u.v5)("pg-end",p)),clickhouseQueryFunctionId:c((0,u.v5)("clickhouse-query",p)),clickhouseExecFunctionId:c((0,u.v5)("clickhouse-exec",p)),clickhouseCommandFunctionId:c((0,u.v5)("clickhouse-command",p)),clickhouseInsertFunctionId:c((0,u.v5)("clickhouse-insert",p)),clickhouseCloseFunctionId:c((0,u.v5)("clickhouse-close",p)),functionsToInstrument:[{moduleName:"typeorm",fileToFunctionsMapping:{[l.join(l.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",esbuildFunctionIdVar:"hudFI",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:m,nextJsMarkStatement:`${m} = "a"`,timeoutOnNextJsPlugin:3e4,logIntervals:{instrumentedFilesCount:5e3,sentEventsCount:12e4,unknownAsyncContextTypes:6e4},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;const f=process.env.HUD_DEBUG?n.hudConfig.logger.debug:n.hudConfig.logger.default;n.loggerConfig={...f,console:"true"===process.env.HUD_VERBOSE};class h extends Error{path;code;constructor(e,n){super(),this.path=e,this.code=n}}n.HudFailedReadConfigError=h},3903:e=>{e.exports=require("uuid")},5453:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.SDK_VERSION=void 0,n.SDK_VERSION="1.8.14"},6928:e=>{e.exports=require("path")},7089:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.ObjectStoreConfigSchema=void 0;const i=t(1569),a=i.z.object({type:i.z.literal("s3")}),o=i.z.object({type:i.z.literal("disk"),path:i.z.string()}),r=i.z.object({type:i.z.literal("customer_s3"),bucket:i.z.string(),region:i.z.string(),prefix:i.z.string().optional()});n.ObjectStoreConfigSchema=i.z.union([a,o,r])},8528:e=>{e.exports=require("./dto")}},n={};return function t(i){var a=n[i];if(void 0!==a)return a.exports;var o=n[i]={exports:{}};return e[i].call(o.exports,o,o.exports,t),o.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 n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},1427:e=>{e.exports=require("./nativerequire")},2546:e=>{e.exports=require("./lib")},2702:function(e,t,n){var i,s=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var s=Object.getOwnPropertyDescriptor(t,n);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,s)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=i(e),o=0;o<n.length;o++)"default"!==n[o]&&s(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerKeepaliveGuard=void 0;const a=o(n(523)),c=n(8528),d=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!==c.KeepAliveMessage.msg)return;this._restartTimeout()}catch(e){d.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}}},4672:e=>{e.exports=require("./client")},5119:function(e,t,n){var i,s=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var s=Object.getOwnPropertyDescriptor(t,n);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,s)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=i(e),o=0;o<n.length;o++)"default"!==n[o]&&s(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.updateTsNodeConfig=t.tryFlushPendingLogs=t.init=void 0;const a=o(n(6281));t.init=a.default,Object.defineProperty(t,"tryFlushPendingLogs",{enumerable:!0,get:function(){return a.tryFlushPendingLogs}}),Object.defineProperty(t,"updateTsNodeConfig",{enumerable:!0,get:function(){return a.updateTsNodeConfig}})},5809:e=>{e.exports=require("./config")},5994:function(e,t,n){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 s=n(8167),r=n(2546),o=n(5809),a=n(8269),c=n(523),d=n(7274),g=n(6281),l=i(n(7320));function u(){globalThis.hudInstrumentationOccured&&c.customer_logger.logEntry(r.UserErrorLogs.YesInstrumentationNoMetrics())}t.MainThread=class{apiKey;service;startTime;tags;messenger;lifecycleHooksRegistered=!1;teardownInFlight;constructor(e,t,n,i){this.apiKey=e,this.service=t,this.startTime=n,this.tags=i,(0,a.storeCredentials)(e,t)}startFailed(e){e instanceof r.HudSessionThrottle?(c.customer_logger.logEntry(r.UserLogs.InitIdleMode()),(0,g._detachAndTerminate)(!1,!1,!0)):e instanceof r.HudInitNetworkError&&e.originalAxiosErrorCode?(c.customer_logger.logEntry((0,r.getNetworkError)(e.originalAxiosErrorCode)),c.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,g._detachAndTerminate)(!1,!1,!0)):(c.app_logger.critical("Failed to start worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,r.setFirstError)(e.code),(0,g._detachAndTerminate)(!0,!1,!0))}async _registerLambdaExtension(){const e=await(0,r.register)();return(0,a.setLambdaExtensionId)(e),e}async startMessenger(e){try{this.messenger=await this._createMessenger(e),await this._start(),this.registerLifecycleTeardown(),c.customer_logger.logEntry(r.UserLogs.HudInitSuccess())}catch(e){throw this.startFailed(e),e}}async start(){if(s.isMainThread)if(globalThis.hudRuningInsideLambda)try{const e=await this._registerLambdaExtension();c.app_logger.info("Lambda extension registered, not waiting for worker to start",{lambdaExtensionId:e}),(0,r.next)(e).then(async()=>{c.app_logger.info("Lambda got first event, creating messenger");try{await this.startMessenger(e)}catch{}}).catch(e=>{c.app_logger.error("Failed to send first event to lambda",{msg:e instanceof Error?e.message:void 0}),this.startFailed(e)})}catch(e){throw this.startFailed(e),e}else await this.startMessenger(void 0)}async _start(){if(!this.messenger)throw new r.HudInitError("Messenger not initialized");try{const e=await this.messenger.checkWorkerInitialized(o.hudConfig.workerTimeout),t=e?.content?.sessionInfo;if(t&&(0,a.storeSessionInfo)(t),await this._initDynamicConfig(),o.hudConfig.dynamicConfig.functionDetachEnabled&&!o.hudConfig.userConfig.disableDetachedFunctions?.value){const e=await(this.messenger?.getKnownDetachedFunctions(!0));e&&(0,d.applyKnownDetachedFunctions)(e)}globalThis.hudMetricsIndicator=setTimeout(u,o.hudConfig.timeoutOnMetrics),globalThis.hudMetricsIndicator.unref()}catch(e){const t=e instanceof Error?e.message:void 0;if(e instanceof r.HudSessionThrottle)throw e;throw c.app_logger.critical("Failed to start worker",{msg:t}),e}await this.messenger.start()}async _createMessenger(e){const t=r.myRequire.resolve(`${o.SDK_MODULE_NAME}/worker`),n={...process.env};delete n.NODE_OPTIONS;const i=new s.Worker(t,{workerData:{apiKey:this.apiKey,service:this.service,startTime:this.startTime,tags:this.tags,lambdaExtensionId:e,shouldCreateDeclaraionWorker:!!e,userConfig:o.hudConfig.userConfig},execArgv:[],env:n});let a;try{a=new l.default(i),await a.checkWorker(o.hudConfig.workerTimeout)}catch(e){if(e instanceof r.HudSessionThrottle)throw c.app_logger.info("Worker started in idle mode - session throttled"),e;throw c.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?(c.app_logger.info("Remote configuration exists"),o.hudConfig.dynamicConfig=(0,o.updateDynamicConfig)(e,o.hudConfig,c.app_logger),(0,o.updateInvestigationRateLimitGlobals)(),c.app_logger.info("Current dynamic configuration:",{currentDynamicConfig:o.hudConfig.dynamicConfig})):c.app_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:o.hudConfig.dynamicConfig})}async terminateMessenger(){await(this.messenger?.terminateWorker()),this.messenger?.stop(),this.messenger=void 0}registerLifecycleTeardown(){if(this.lifecycleHooksRegistered)return;if(this.lifecycleHooksRegistered=!0,globalThis.hudRuningInsideLambda)return;const e=o.hudConfig.dynamicConfig.enableTeardown||o.hudConfig.userConfig.flushOnExit?.value,t=o.hudConfig.userConfig.flushOnUncaughtException?.value||o.hudConfig.dynamicConfig.flushOnUncaughtException;if(!e&&!t)return;const n=async()=>{try{if(this.teardownInFlight)return void await this.teardownInFlight;this.teardownInFlight=this.gracefulShutdown(),await this.teardownInFlight}catch{}};e&&(process.once("beforeExit",()=>{n()}),process.prependOnceListener("SIGTERM",async()=>{const e=process.listenerCount("SIGTERM")>0;try{await n()}catch{}e||process.kill(process.pid,"SIGTERM")}),process.prependOnceListener("SIGINT",async()=>{const e=process.listenerCount("SIGINT")>0;try{await n()}catch{}e||process.kill(process.pid,"SIGINT")})),t&&(process.prependOnceListener("uncaughtException",e=>{const t=process.listenerCount("uncaughtException")>0;(async()=>{try{await n()}catch{}if(!t)throw e})()}),process.prependOnceListener("unhandledRejection",e=>{const t=process.listenerCount("unhandledRejection")>0;(async()=>{try{await n()}catch{}if(!t)throw e})()}))}async gracefulShutdown(){if(this.messenger){try{await this.messenger.gracefulShutdown()}catch{}this.messenger=void 0,(0,a.detachHud)(!1,!1)}}}},6261:e=>{e.exports=require("events")},6281:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t,n){try{if(!globalThis.hudRanOnRequire)return;if(globalThis.hudRunMutex)return void s.app_logger.warning("Already ran init!");globalThis.hudRunMutex=!0,(0,c.clearInitGuard)(),(0,i.updateUserConfigFromInit)(e,t,n);const g=(0,c.validateAndGetUserInput)();if(!g)return;if(globalThis.hudRunningMode!==a.HudRunningMode.enabled)return void s.app_logger.critical("SDK running mode is not enabled - initialization aborted");if(s.app_logger.info("Initializing hud",{userConfig:Object.entries(o.hudConfig.userConfig).filter(([e,t])=>"DEFAULT"!==t.source)}),l=new r.MainThread(g.apiKey,g.service,globalThis.hudStartTime,o.hudConfig.userConfig.tags?.value),await l.start(),l.messenger&&(0,d.safeCall)(s.app_logger,l.messenger.handleLogsTask()),globalThis.hudImportStartTime){const e=process.uptime()-globalThis.hudImportStartTime;s.app_logger.info("Hud initialized",{importTime:e,startTime:globalThis.hudImportStartTime})}}catch(e){try{if(e instanceof d.HudSessionThrottle)return;s.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{s.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,t.flushLogs=f,t.updateTsNodeConfig=function(){try{return!!l?.messenger&&l.messenger.updateTsNodeConfig()}catch(e){return s.app_logger.error("Failed to update ts-node config",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),!1}},t.tryFlushPendingLogs=async function(e,t){(0,c.getShouldFlushOnInit)()&&((0,c.markShouldFlushOnInit)(!1),await f(e,t))};const i=n(2546),s=n(523),r=n(5994),o=n(5809),a=n(8528),c=n(8269),d=n(2546),g=n(7274);let l,u=!1;function h(e=!0,t=!1,n=!1){(0,c.detachHud)(e,t),n&&(0,d.safeCall)(s.app_logger,f()),l&&(0,d.safeCall)(s.app_logger,l.terminateMessenger());const r=(0,c.getLambdaExtensionId)();r&&!u&&(u=!0,(0,d.safeCall)(s.app_logger,(0,i.nextLoopDummy)(r))),(0,c.clearUserIndicatorsTimeouts)(),(0,g.resetCallers)()}async function f(e,t){const i=(0,c.getSessionInfo)(),r=(0,c.getStoredApiKey)(),o=(0,c.getStoredService)();try{const a=e||r;if(!a||"string"!=typeof a)return;const c=t||o||"unknown",d=(0,s.getSavedLogs)();for(const e of d){const{HudClient:t}=n(4672),r=new t;i?(s.app_logger.info("Flushing logs with session",{size:e.length,sessionId:i.sessionId,service:c}),r.setSession(i),await r.logs(e)):(s.app_logger.info("Flushing logs (sessionless)",{size:e.length,service:c}),await r.sessionslessLogs(e,a)),s.app_logger.info("Successfully flushed logs")}}catch(e){try{s.app_logger.error("Failed to flush logs",{msg:e instanceof Error?e.message:void 0,hasSession:null!==i})}catch{}}}},6460:e=>{e.exports=require("timers/promises")},7131:e=>{e.exports=require("./wrap")},7274:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t._setLastPrepCallsTimestamp=c,t.getLastPrepCallsTimestamp=function(){return a},t._liftExceptions=g,t.prepCalls=function(e,t){const n=process.hrtime.bigint();let d;d=null===a?i.hudConfig.dynamicConfig.aggregationInterval:Number(n-a)/1e6,c(n);let l=null;i.hudConfig.dynamicConfig.functionDetachEnabled&&!i.hudConfig.userConfig.disableDetachedFunctions?.value&&(l=i.hudConfig.dynamicConfig.functionDetachThresholdPerSecond*(d/1e3));const u=(new Date).toISOString(),h=[];return Object.entries(hudCalls).map(([n,s])=>{const a=s.shouldDetach;let c=0;var d;Object.entries(s).forEach(([s,o])=>{"shouldDetach"!==s&&Object.entries(o).forEach(([o,d])=>{try{if(!i.hudConfig.dynamicConfig.functionDetachEnabled||i.hudConfig.userConfig.disableDetachedFunctions?.value||a||(c+=d.count),0===d.sampledCount)return;const r={function_id:n,wrapped_flow_id:o||void 0,wrapped_caller_id:s||void 0,timestamp:u,timeslice:e,exceptions:g(d.exceptions),count:d.count,sampled_count:d.sampledCount,sum_duration:d.sum,sum_squared_duration:d.squareSum,sketch:d.sketch?t.encode(d.sketch):void 0,is_linked_function:d.isLinkedFunction};h.push(r),function(e){e.count=0,e.sampledCount=0,e.sum=0,e.squareSum=0,e.sketch=null,e.exceptions={}}(d)}catch(e){r.app_logger.error("Failed preparing invocation, skipping",{func:n,wrappedCaller:s,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}),i.hudConfig.dynamicConfig.functionDetachEnabled&&!i.hudConfig.userConfig.disableDetachedFunctions?.value&&null!==l&&c>l&&(hudCalls[n].shouldDetach=!0,d=n,o.push(d),r.app_logger.info("Detaching function",{func:n,totalFunctionCalls:c}))}),h.length>0&&(0,s.clearMetricsIndicator)(),h},t.resetCallers=function(){for(const e in globalThis.hudCalls)for(const t in globalThis.hudCalls[e])if("shouldDetach"!==t)for(const n in globalThis.hudCalls[e][t])d(globalThis.hudCalls[e][t][n])},t.getAndClearDetachedFunctions=function(){const e=o;return o=[],e},t.applyKnownDetachedFunctions=function(e){if(e&&0!==e.length&&!i.hudConfig.userConfig.disableDetachedFunctions?.value){l!==e.length&&(r.app_logger.info("Applying known detached functions from host",{count:e.length}),l=e.length);for(const t of e)try{globalThis.hudCalls[t]?globalThis.hudCalls[t].shouldDetach=!0:globalThis.hudCalls[t]={shouldDetach:!0}}catch(e){r.app_logger.error("Failed to apply detached function, skipping",{rawFunctionId:t,error:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}};const i=n(5809),s=n(8269),r=n(523);let o=[],a=null;function c(e){a=e}function d(e){e.samplingCounter=0}function g(e){const t={};for(const n in e)t[n]=[{count:e[n]}];return t}let l=0},7320:function(e,t,n){var i,s=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var s=Object.getOwnPropertyDescriptor(t,n);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,s)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(i=function(e){return i=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},i(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=i(e),o=0;o<n.length;o++)"default"!==n[o]&&s(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=o(n(523)),c=o(n(6460)),d=n(5809),g=n(2546),l=n(8528),u=n(2546),h=n(7131),f=n(8269),m=n(2546),p=n(7274),v=n(2702),w=n(8269),C=n(1427),y=n(6281),k=n(8269),b=n(2546),E=n(6261),T=a.app_logger,_=m.safeCall.bind(m.safeCall,T);t.default=class{worker;tsNodeUpdated=!1;staticNextJsEndpointsSent=!1;gracefulShutdownDone=!1;threadStatsBaseline=(0,g.createThreadStatsBaseline)();abortController;workerKeepaliveGuard;messageQueue=[];MAX_QUEUE_SIZE=100;messageEmitter=new E.EventEmitter;constructor(e){this.worker=e,this.abortController=new AbortController,(0,E.setMaxListeners)(25,this.abortController.signal);let t=!1;this.worker.on("message",e=>{e.msg!==l.KeepAliveMessage.msg&&(this.messageQueue.length>=this.MAX_QUEUE_SIZE&&(t||(t=!0,T.error("Message queue is at max size, dropping oldest message",{msg:e.msg})),this.messageQueue.shift()),this.messageQueue.push(e),this.messageEmitter.emit("message",e))}).unref(),this.worker.on("error",this.handleWorkerError).unref(),this.workerKeepaliveGuard=new v.WorkerKeepaliveGuard(e,d.hudConfig.communicationKeepaliveGrace),this.updateTsNodeConfig()&&T.info("ts-node config updated from Messenger constructor")}handleWorkerError=e=>{try{e?.code===(new m.HudClientUnauthorizedError).code&&a.customer_logger.logEntry(m.UserErrorLogs.ApiKeyDenied(d.hudConfig.userConfig.key?.source)),T.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){T.critical("Error stopping hud after worker crash",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};stop(){try{this.abortWorker()}catch{}d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.abortController.abort(),this.abortController=new AbortController,this.messageQueue=[],this.messageEmitter.removeAllListeners(),(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),T.debug("sent data to worker",{msg:e,size:t.length}))}_sendObject(e,t){const n={msg:e,content:t};this.worker.postMessage(n)}async checkWorker(e){const t=["started"];let n;try{n=await this.getMessageFromWorker(t,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;n=await this.getMessageFromWorker(t,e/2,!1)}if(!n)throw new m.HudInitError("Worker not started");return n}async checkWorkerInitialized(e){let t;const n=["initialized","throttled","networkError"];try{t=await this.getMessageFromWorker(n,e,!0)}catch(i){if(!(i instanceof m.HudTimeoutError))throw i;t=await this.getMessageFromWorker(n,e/10,!1)}if("throttled"===t?.msg)throw new m.HudSessionThrottle;if("networkError"===t?.msg)throw T.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(d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.start(),globalThis.hudRunningMode){case l.HudRunningMode.enabled:T.info("Enabled mode"),_(this.getMode()),_(this.periodicGetEndpointsDurationsInvestigationThresholds()),_(this.periodicRefreshRemoteConfig()),_(this.startPeriodicTasks()),_(this.periodicSendMetrics()),_(this.periodicSendDetachedFunctions()),_(this.periodicFetchKnownDetachedFunctions()),_(this.highFrequencySendInvestigations()),_(this.periodicSendProcessedFiles()),_(this.delayedStateCollection()),_(this.periodicSendEndpoints()),_(this.periodicSendOutbounds()),_(this.periodicSendKafkaJS()),_(this.periodicSendSqs()),_(this.periodicSendGraphQL()),_(this.periodicSendCustomFlowDeclarations()),_(this.sendStaticNextJsEndpointsOnce()),_(this.periodicSaveMachineMetrics()),_(this.periodicSendReingest()),_(this.resetCallerCounters()),_(this.periodicResetGlobalInvestigationCounter()),_(this.periodicResetInvestigationDedupingCache()),_(this.sendLogsPeriodically(d.hudConfig.logsSendInterval)),_(this.sendRuntime()),_(this.sendPatchedModules()),_(this.sendPreloadedModules()),_(this.dumpModulesAfterWhile(6e4)),_(this.periodicSendThreadPerformanceMetrics());break;case l.HudRunningMode.disabled:T.info("Disabled mode"),_(this.getMode());break;case l.HudRunningMode.detached:T.info("Detached"),(0,y._detachAndTerminate)(!1,!1),this.stop();break;default:T.error("Running mode not handled")}}consumeMessageFromQueue(e){const t=this.messageQueue.findIndex(t=>e.includes(t.msg));if(-1!==t)return this.messageQueue.splice(t,1)[0]}async getMessageFromWorker(e,t,n=!1,i){let s;e=Array.isArray(e)?e:[e];const r=this.consumeMessageFromQueue(e);if(r)return T.info("Found message in queue",{msg:r.msg}),r;const o=new AbortController,a=()=>{o.abort()};this.abortController.signal.addEventListener("abort",a);const d=c.setTimeout(t,void 0,{signal:o.signal,ref:n}),g=t=>{try{e.includes(t.msg)&&(s=t,o.abort(),this.consumeMessageFromQueue([t.msg]),T.info("Received message from worker (canceling timeout)",t))}catch(e){T.error("Failed handling message from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};this.messageEmitter.on("message",g),i&&this.worker.postMessage(i);try{throw await d,T.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",a),this.messageEmitter.off("message",g)}return s}async getMode(){await(0,u.safeUnrefInterval)(async()=>{const e={msg:"GetMode",content:{startTime:globalThis.hudStartTime,runningMode:globalThis.hudRunningMode}},t=await this.getMessageFromWorker(e.msg,d.hudConfig.workerMessageTimeout,!1,e);t?.msg===e.msg&&void 0!==t?.content.mode?t.content.mode!==globalThis.hudRunningMode&&await this.restart(t?.content.mode):T.error("Unexpected message from worker",t)},d.hudConfig.modeInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed getting mode from worker",{msg:e.message,stack:e.stack})})}async getRemoteConfig(){const e="initDynamicConfig";try{const t=await this.getMessageFromWorker(e,d.hudConfig.workerMessageTimeout,!0);if(t?.msg!==e||void 0===t?.content)throw new Error(`Unexpected message from worker: ${t}`);return t?.content}catch(e){T.error("Failed getting remote configuration from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async getKnownDetachedFunctions(e=!1){const t="KnownDetachedFunctions",n={msg:"GetKnownDetachedFunctions",content:{}};try{const i=await this.getMessageFromWorker(t,d.hudConfig.workerMessageTimeout,e,n);if(i?.msg!==t||void 0===i?.content)throw new Error(`Unexpected message from worker: ${i}`);return i?.content}catch(e){return T.error("Failed getting known detached functions from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),[]}}async periodicSaveMachineMetrics(){(0,f.saveMachineMetric)(),await(0,u.safeUnrefInterval)(()=>(0,f.saveMachineMetric)(),d.hudConfig.dynamicConfig.machineMetricsInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed saving machine metrics",{msg:e.message,stack:e.stack})})}async resetCallerCounters(){const e=d.hudConfig.callerResetInterval;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting caller",{interval:e}),(0,p.resetCallers)()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed reseting caller counters",{msg:e.message,stack:e.stack})})}async updateEndpointDurationsInvestigationThresholds(){const e={msg:"EndpointsDurationsInvestigationThresholds"},t="EndpointsDurationsInvestigationThresholds";try{const n=await this.getMessageFromWorker(t,d.hudConfig.workerMessageTimeout,!1,e);if(n?.msg!==t||void 0===n?.content)throw new Error(`Unexpected message from worker: ${n}`);(0,f.setInvestigationDurationThresholds)(n?.content),T.debug("Endpoints durations investigation thresholds updated",{thresholds:n?.content})}catch(e){T.error("Failed getting endpoints durations investigation thresholds from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicGetEndpointsDurationsInvestigationThresholds(){await this.updateEndpointDurationsInvestigationThresholds(),await(0,u.safeUnrefInterval)(()=>this.updateEndpointDurationsInvestigationThresholds(),d.hudConfig.endpointsDurationsInvestigationThresholdsInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed updating endpoints durations investigation thresholds",{msg:e.message,stack:e.stack})})}async updateRefreshRemoteConfig(){const e="RefreshRemoteConfig",t={msg:"RefreshRemoteConfig"};try{const n=await this.getMessageFromWorker(e,d.hudConfig.workerMessageTimeout,!1,t);if(n?.msg!==e||void 0===n?.content)return;(0,d.refreshInvestigationEnabled)(n.content,d.hudConfig,T),(0,d.refreshInvestigationErrorStatusCodeRegex)(n.content,d.hudConfig,T)}catch(e){T.error("Failed refreshing remote config from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicRefreshRemoteConfig(){await(0,u.safeUnrefInterval)(()=>this.updateRefreshRemoteConfig(),d.hudConfig.remoteConfigRefreshInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed refreshing remote config",{msg:e.message,stack:e.stack})})}async delayedStateCollection(){await this.setupPeriodicTask(0,d.hudConfig.workerStateCollectionDelay,()=>{try{this.updateTsNodeConfig()&&T.info("ts-node config updated from delayed task")}catch(e){T.error("Failed collecting state from delayed task",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"delayedStateCollection",2)}sendProcessedFiles(){const e=function(){const e=globalThis.hudProcessedFiles;return globalThis.hudProcessedFiles=[],e}();this._sendArray("ProcessedFiles",e)}sendKafkaTopics(){const e=(0,w.getKafkaJSTopics)();this._sendArray("KafkaJSTopics",e)}sendSqsQueues(){const e=(0,w.getSqsQueues)();e.length>0&&this._sendArray("SqsQueue",e)}sendGraphQLOperations(){const e=Object.values((0,w.getGraphQLOperations)());e.length>0&&this._sendArray("GraphQLDeclaration",e)}sendCustomFlowDeclarations(){const e=(0,w.getCustomFlowDeclarations)();e.length>0&&this._sendArray("CustomFlowDeclaration",e)}sendInvocations(e,t){const n=(0,p.prepCalls)(e,t);n.length>0&&this._sendArray("Invocations",n)}sendFlowMetrics(e){const t=(0,f.getFlowMetrics)(e);Object.keys(t).length>0&&this._sendObject("FlowMetrics",{aggregatedMetrics:t})}sendThreadPerformanceMetrics(){const e=(0,m.collectThreadPerformance)(this.threadStatsBaseline,T,"MainThread");e&&this._sendObject("PerformanceMetrics",e)}sendStaticNextJsEndpointsIfReady(){return!(!(0,g.isNextJsApp)()||!(0,w.isNextConfigExtracted)()||this.staticNextJsEndpointsSent||(this.staticNextJsEndpointsSent=!0,this._sendObject("StaticNextJsEndpoints",{NextConfig:JSON.stringify((0,w.getNextConfig)())}),0))}async periodicSendProcessedFiles(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendProcessedFiles(),!0),"periodicSendProcessedFiles")}async periodicSendKafkaJS(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendKafkaTopics(),!0),"periodicSendKafkaJS")}async periodicSendSqs(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendSqsQueues(),!0),"periodicSendSqs")}async periodicSendGraphQL(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendGraphQLOperations(),!0),"periodicSendGraphQL")}async periodicSendCustomFlowDeclarations(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendCustomFlowDeclarations(),!0),"periodicSendCustomFlowDeclarations")}async periodicSendMetrics(){const e=new h.SketchManager(d.hudConfig.huddBinWidth),t=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,n=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(t,n,t=>{try{this.refreshInvestigations()}catch(e){T.error("Failed sending investigations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{this.sendInvocations(t,e)}catch(e){T.error("Failed sending invocations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{this.sendFlowMetrics(t)}catch(e){T.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 periodicSendDetachedFunctions(){if(!d.hudConfig.dynamicConfig.functionDetachEnabled||d.hudConfig.userConfig.disableDetachedFunctions?.value)return;const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{try{const e=(0,p.getAndClearDetachedFunctions)();e.length>0&&this._sendArray("DetachedFunctions",e)}catch(e){T.error("Failed sending detached functions",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"periodicSendDetachedFunctions")}async fetchKnownDetachedFunctions(){try{const e=await this.getKnownDetachedFunctions();e&&e.length>0&&(0,p.applyKnownDetachedFunctions)(e)}catch(e){T.error("Failed fetching known detached functions",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicFetchKnownDetachedFunctions(){d.hudConfig.dynamicConfig.functionDetachEnabled&&!d.hudConfig.userConfig.disableDetachedFunctions?.value&&await(0,u.safeUnrefInterval)(()=>this.fetchKnownDetachedFunctions(),d.hudConfig.dynamicConfig.aggregationInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed fetching known detached functions",{msg:e.message,stack:e.stack})})}async highFrequencySendInvestigations(){if(!d.hudConfig.dynamicConfig.enableInvestigation)return;const e=d.hudConfig.dynamicConfig.investigationFirstSendTimeout,t=d.hudConfig.dynamicConfig.investigationInterval;await this.setupPeriodicTask(e,t,()=>(this.refreshInvestigations(),!0),"highFrequencySendInvestigations")}refreshInvestigations(){const e=(0,w.getClosedInvestigations)();e.length>0&&this._sendArray("Investigations",e)}async periodicSendEndpoints(){const e=d.hudConfig.endpointsFirstSendWaitTime,t=d.hudConfig.endpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendEndpoints(),!0),"periodicSendEndpoints")}async periodicSendOutbounds(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendOutbounds(),!0),"periodicSendOutbounds")}sendEndpoints(){(0,f.collectExpressEndpointDeclarations)();const e=(0,f.getEndpointDeclarationsFromStorage)();e.length>0&&this._sendArray("EndpointDeclaration",e)}sendOutbounds(){const e=(0,k.getLoadedOutboundsFromStorage)();e.length>0&&this._sendArray("LoadedOutbounds",e);const t=(0,k.getIoredisCommandsFromStorage)();t.length>0&&this._sendArray("IoredisCommands",t)}flushAllPendingData(){const e=(0,p.getLastPrepCallsTimestamp)(),t=null===e?d.hudConfig.dynamicConfig.aggregationInterval:Number(process.hrtime.bigint()-e)/1e6,n=Math.max(1,t),i=new h.SketchManager(d.hudConfig.huddBinWidth),s=[{label:"investigations",fn:()=>this.refreshInvestigations()},{label:"invocations",fn:()=>this.sendInvocations(n,i)},{label:"flow metrics",fn:()=>this.sendFlowMetrics(n)},{label:"processed files",fn:()=>this.sendProcessedFiles()},{label:"endpoints",fn:()=>{this.sendEndpoints(),this.sendOutbounds()}},{label:"Kafka topics",fn:()=>this.sendKafkaTopics()},{label:"SQS queues",fn:()=>this.sendSqsQueues()},{label:"GraphQL declarations",fn:()=>this.sendGraphQLOperations()},{label:"custom flow declarations",fn:()=>this.sendCustomFlowDeclarations()},{label:"static Next.js endpoints",fn:()=>{this.sendStaticNextJsEndpointsIfReady()}},{label:"thread performance metrics",fn:()=>this.sendThreadPerformanceMetrics()}];for(const e of s)try{e.fn()}catch(t){T.error(`Failed flushing ${e.label}`,{msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0})}}async sendTerminateAndAwait(e){const t=a.getSavedLogs();try{await this.getMessageFromWorker("terminated",e.grace,e.shouldRef,{msg:"Terminate",content:{grace:e.grace,logBuffers:t}})}catch(t){t instanceof m.HudTimeoutError?(T.critical(e.timeoutLogMsg,{error:t.message}),await this.worker.terminate()):(T.critical(e.unexpectedLogMsg,{msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0}),await this.worker.terminate())}}async gracefulShutdown(){if(!this.gracefulShutdownDone){this.gracefulShutdownDone=!0;try{this.abortController.abort(),this.abortController=new AbortController,d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.worker.ref(),this.flushAllPendingData(),await this.sendTerminateAndAwait({grace:d.hudConfig.teardownGrace,shouldRef:!0,timeoutLogMsg:"Teardown grace timeout - terminating worker",unexpectedLogMsg:"Unexpected error during SDK graceful shutdown"})}finally{try{this.worker.unref()}catch{}this.stop()}}}async terminateWorker(){await this.sendTerminateAndAwait({grace:d.hudConfig.workerGrace,shouldRef:!1,timeoutLogMsg:"Grace period timeout - terminating worker",unexpectedLogMsg:"Unexpected error during worker termination"}),T.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:n.c[n.s]?.filename};this._sendObject("Runtime",e)}async startPeriodicTasks(){this._sendObject("StartPeriodicTasks",{})}async sendPreloadedModules(){globalThis.hudLoadedModules?this._sendObject("PreInitLoadedModules",{modules:globalThis.hudLoadedModules}):T.warning("Didn't get module, weird....")}async periodicSendThreadPerformanceMetrics(){const e=d.hudConfig.dynamicConfig.performanceMetricsInterval;await(0,u.safeUnrefInterval)(()=>this.sendThreadPerformanceMetrics(),e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending thread performance metrics",{msg:e.message,stack:e.stack})})}async dumpModulesAfterWhile(e){await(0,u.unrefSetTimeout)(e,void 0,{signal:this.abortController.signal});const t=Object.keys(C.myRequire.cache);this._sendObject("PostInitLoadedModules",{modules:t})}async sendPatchedModules(){if(!globalThis.hudPatched)return void T.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){T.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch(e){T.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){await(0,u.safeUnrefInterval)(()=>this.handleLogsTask(),e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending logs periodically",{msg:e.message,stack:e.stack})})}async setupPeriodicTask(e,t,n,i,s=0){function r(e){let t=!0;try{t=n(e)}catch(e){T.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}),!r(e))return void T.warning("Periodic task failed, stopping task",{firstRun:!0,taskName:i});if(1===s)return;let o=s>0?s-1:0;await(0,u.safeUnrefInterval)(e=>{if(!r(t))return T.warning("Periodic task failed, stopping task",{firstRun:!1,taskName:i}),void e();o>0&&0===--o&&e()},t,{signal:this.abortController.signal,onError:e=>T.error("Failed in periodic task interval",{taskName:i,msg:e.message,stack:e.stack})})}async periodicResetGlobalInvestigationCounter(){const e=d.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting global investigation counter",{interval:e}),(0,w.setGlobalInvestigationTracking)(0),(0,f.resetTotalInvestigationsDurationBased)(),(0,f.resetTotalInvestigationsErrorBased)()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed resetting global investigation counter",{msg:e.message,stack:e.stack})})}async periodicResetInvestigationDedupingCache(){const e=d.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting investigation deduping cache",{interval:e}),(0,w.resetInvestigationDedupingCache)(),(0,f.resetInvestigationDurationCounts)(),(0,f.getUniqueSetFailureErrors)().clear()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed resetting investigation deduping cache",{msg:e.message,stack:e.stack})})}updateTsNodeConfig(){if(this.tsNodeUpdated)return!1;try{const e=(0,b.getUserTsNodeConfig)();return!!e&&(this.tsNodeUpdated=!0,T.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=d.hudConfig.staticNextJsEndpointsInterval,t=d.hudConfig.staticNextJsEndpointsMaxAttempts;let n=0;await(0,u.safeUnrefInterval)(e=>{if(n++,T.debug("Attempting to send static next.js endpoints",{attemptCount:n}),this.sendStaticNextJsEndpointsIfReady())return T.info("Sent static next.js endpoints"),void e();n>t&&(T.warning("Exceeded max attempts to send static next.js endpoints",{isNextConfigExtracted:(0,w.isNextConfigExtracted)(),attemptCount:n}),e())},e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending static next.js endpoints",{msg:e.message,stack:e.stack})})}async periodicSendReingest(){await(0,u.safeUnrefInterval)(()=>{const e=(0,f.getAndClearReingestValues)();e.size>0&&this._sendArray("Reingest",Array.from(e))},d.hudConfig.dynamicConfig.reingestInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed sending reingest",{msg:e.message,stack:e.stack})})}}},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")}},t={};function n(i){var s=t[i];if(void 0!==s)return s.exports;var r=t[i]={exports:{}};return e[i].call(r.exports,r,r.exports,n),r.exports}return n.c=t,n(n.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 n=t();for(var s in n)("object"==typeof exports?exports:e)[s]=n[s]}}(global,()=>(()=>{"use strict";var e={523:e=>{e.exports=require("./logger")},1427:e=>{e.exports=require("./nativerequire")},2546:e=>{e.exports=require("./lib")},2702:function(e,t,n){var s,i=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(s=function(e){return s=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},s(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=s(e),o=0;o<n.length;o++)"default"!==n[o]&&i(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerKeepaliveGuard=void 0;const a=o(n(523)),c=n(8528),d=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!==c.KeepAliveMessage.msg)return;this._restartTimeout()}catch(e){d.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}}},4672:e=>{e.exports=require("./client")},5119:function(e,t,n){var s,i=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(s=function(e){return s=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},s(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=s(e),o=0;o<n.length;o++)"default"!==n[o]&&i(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0}),t.updateTsNodeConfig=t.tryFlushPendingLogs=t.init=t.flush=void 0;const a=o(n(6281));t.init=a.default,Object.defineProperty(t,"flush",{enumerable:!0,get:function(){return a.flush}}),Object.defineProperty(t,"tryFlushPendingLogs",{enumerable:!0,get:function(){return a.tryFlushPendingLogs}}),Object.defineProperty(t,"updateTsNodeConfig",{enumerable:!0,get:function(){return a.updateTsNodeConfig}})},5809:e=>{e.exports=require("./config")},5994:function(e,t,n){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MainThread=void 0;const i=n(8167),r=n(2546),o=n(5809),a=n(8269),c=n(523),d=n(7274),g=n(6281),l=s(n(7320)),u=n(9269);function h(){globalThis.hudInstrumentationOccured&&c.customer_logger.logEntry(r.UserErrorLogs.YesInstrumentationNoMetrics())}t.MainThread=class{apiKey;service;startTime;tags;messenger;lifecycleHooksRegistered=!1;teardownInFlight;didLogFlushInLambda=!1;resolveInitPromise;initPromise=new Promise(e=>{this.resolveInitPromise=e});constructor(e,t,n,s){this.apiKey=e,this.service=t,this.startTime=n,this.tags=s,(0,a.storeCredentials)(e,t)}startFailed(e){e instanceof r.HudSessionThrottle?(c.customer_logger.logEntry(r.UserLogs.InitIdleMode()),(0,g._detachAndTerminate)(!1,!1,!0)):e instanceof r.HudInitNetworkError&&e.originalAxiosErrorCode?(c.customer_logger.logEntry((0,r.getNetworkError)(e.originalAxiosErrorCode)),c.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,g._detachAndTerminate)(!1,!1,!0)):(c.app_logger.critical("Failed to start worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),(0,r.setFirstError)(e.code),(0,g._detachAndTerminate)(!0,!1,!0))}async _registerLambdaExtension(){const e=await(0,r.register)();return(0,a.setLambdaExtensionId)(e),e}async startMessenger(e){try{this.messenger=await this._createMessenger(e),await this._start(),this.registerLifecycleTeardown(),c.customer_logger.logEntry(r.UserLogs.HudInitSuccess())}catch(e){throw this.startFailed(e),e}finally{this.resolveInitPromise()}}async start(){if(i.isMainThread)if(globalThis.hudRuningInsideLambda)try{const e=await this._registerLambdaExtension();c.app_logger.info("Lambda extension registered, not waiting for worker to start",{lambdaExtensionId:e}),(0,r.next)(e).then(async()=>{c.app_logger.info("Lambda got first event, creating messenger");try{await this.startMessenger(e)}catch{}}).catch(e=>{c.app_logger.error("Failed to send first event to lambda",{msg:e instanceof Error?e.message:void 0}),this.startFailed(e),this.resolveInitPromise()})}catch(e){throw this.startFailed(e),this.resolveInitPromise(),e}else await this.startMessenger(void 0)}async _start(){if(!this.messenger)throw new r.HudInitError("Messenger not initialized");try{const e=await this.messenger.checkWorkerInitialized(o.hudConfig.workerTimeout),t=e?.content?.sessionInfo;if(t&&(0,a.storeSessionInfo)(t),await this._initDynamicConfig(),o.hudConfig.dynamicConfig.functionDetachEnabled&&!o.hudConfig.userConfig.disableDetachedFunctions?.value){const e=await(this.messenger?.getKnownDetachedFunctions(!0));e&&(0,d.applyKnownDetachedFunctions)(e)}globalThis.hudMetricsIndicator=setTimeout(h,o.hudConfig.timeoutOnMetrics),globalThis.hudMetricsIndicator.unref()}catch(e){const t=e instanceof Error?e.message:void 0;if(e instanceof r.HudSessionThrottle)throw e;throw c.app_logger.critical("Failed to start worker",{msg:t}),e}(0,u.setUnknownAsyncContextTypesInterval)(),await this.messenger.start()}async _createMessenger(e){const t=r.myRequire.resolve(`${o.SDK_MODULE_NAME}/worker`),n={...process.env};delete n.NODE_OPTIONS;const s=new i.Worker(t,{workerData:{apiKey:this.apiKey,service:this.service,startTime:this.startTime,tags:this.tags,lambdaExtensionId:e,shouldCreateDeclaraionWorker:!!e,userConfig:o.hudConfig.userConfig},execArgv:[],env:n});let a;try{a=new l.default(s),await a.checkWorker(o.hudConfig.workerTimeout)}catch(e){if(e instanceof r.HudSessionThrottle)throw c.app_logger.info("Worker started in idle mode - session throttled"),e;throw c.app_logger.critical("Worker failed to start",{msg:e instanceof Error?e.message:void 0}),e}finally{s.unref()}return a}async _initDynamicConfig(){const e=await(this.messenger?.getRemoteConfig());e?(c.app_logger.info("Remote configuration exists"),o.hudConfig.dynamicConfig=(0,o.updateDynamicConfig)(e,o.hudConfig,c.app_logger),(0,o.updateInvestigationRateLimitGlobals)(),c.app_logger.info("Current dynamic configuration:",{currentDynamicConfig:o.hudConfig.dynamicConfig})):c.app_logger.info("No remote configuration - falling back to default dynamic configuration",{defaultDynamicConfig:o.hudConfig.dynamicConfig})}async terminateMessenger(){await(this.messenger?.terminateWorker()),this.messenger?.stop(),this.messenger=void 0}registerLifecycleTeardown(){if(this.lifecycleHooksRegistered)return;if(this.lifecycleHooksRegistered=!0,globalThis.hudRuningInsideLambda)return;const e=o.hudConfig.dynamicConfig.enableTeardown||o.hudConfig.userConfig.flushOnExit?.value,t=o.hudConfig.userConfig.flushOnUncaughtException?.value||o.hudConfig.dynamicConfig.flushOnUncaughtException;if(!e&&!t)return;const n=async()=>{try{if(this.teardownInFlight)return void await this.teardownInFlight;this.teardownInFlight=this.gracefulShutdown(),await this.teardownInFlight}catch{}};e&&(process.once("beforeExit",()=>{n()}),process.prependOnceListener("SIGTERM",async()=>{const e=process.listenerCount("SIGTERM")>0;try{await n()}catch{}e||process.kill(process.pid,"SIGTERM")}),process.prependOnceListener("SIGINT",async()=>{const e=process.listenerCount("SIGINT")>0;try{await n()}catch{}e||process.kill(process.pid,"SIGINT")})),t&&(process.prependOnceListener("uncaughtException",e=>{const t=process.listenerCount("uncaughtException")>0;(async()=>{try{await n()}catch{}if(!t)throw e})()}),process.prependOnceListener("unhandledRejection",e=>{const t=process.listenerCount("unhandledRejection")>0;(async()=>{try{await n()}catch{}if(!t)throw e})()}))}async gracefulShutdown(){if(this.messenger){try{await this.messenger.gracefulShutdown()}catch{}this.messenger=void 0,(0,a.detachHud)(!1,!1)}}async flush(){globalThis.hudRuningInsideLambda?this.didLogFlushInLambda||(this.didLogFlushInLambda=!0,c.app_logger.warning("flush() is not supported in lambda. Skipping."),c.customer_logger.logEntry(r.UserErrorLogs.FlushNotSupportedInLambda())):(await this.initPromise,await(this.messenger?.flush()))}}},6261:e=>{e.exports=require("events")},6281:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=async function(e,t,n){try{if(!globalThis.hudRanOnRequire)return;if(globalThis.hudRunMutex)return void i.app_logger.warning("Already ran init!");globalThis.hudRunMutex=!0,(0,c.clearInitGuard)(),(0,s.updateUserConfigFromInit)(e,t,n);const g=(0,c.validateAndGetUserInput)();if(!g)return;if(globalThis.hudRunningMode!==a.HudRunningMode.enabled)return void i.app_logger.critical("SDK running mode is not enabled - initialization aborted");if((0,s.setForensicsOnly)(!0===o.hudConfig.userConfig.forensicsOnly?.value),(0,s.isForensicsOnly)()&&((0,s.applyForensicsOnlyLogFloor)(),i.app_logger.info("SDK running in forensics-only mode")),i.app_logger.info("Initializing hud",{userConfig:Object.entries(o.hudConfig.userConfig).filter(([e,t])=>"DEFAULT"!==t.source)}),l=new r.MainThread(g.apiKey,g.service,globalThis.hudStartTime,o.hudConfig.userConfig.tags?.value),await l.start(),l.messenger&&(0,d.safeCall)(i.app_logger,l.messenger.handleLogsTask()),globalThis.hudImportStartTime){const e=process.uptime()-globalThis.hudImportStartTime;i.app_logger.info("Hud initialized",{importTime:e,startTime:globalThis.hudImportStartTime})}}catch(e){try{if(e instanceof d.HudSessionThrottle)return;i.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{i.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,t.flushLogs=f,t.updateTsNodeConfig=function(){try{return!!l?.messenger&&l.messenger.updateTsNodeConfig()}catch(e){return i.app_logger.error("Failed to update ts-node config",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),!1}},t.flush=async function(){try{await(l?.flush())}catch(e){i.app_logger.error("Failed flushing SDK",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}},t.tryFlushPendingLogs=async function(e,t){(0,c.getShouldFlushOnInit)()&&((0,c.markShouldFlushOnInit)(!1),await f(e,t))};const s=n(2546),i=n(523),r=n(5994),o=n(5809),a=n(8528),c=n(8269),d=n(2546),g=n(7274);let l,u=!1;function h(e=!0,t=!1,n=!1){(0,c.detachHud)(e,t),n&&(0,d.safeCall)(i.app_logger,f()),l&&(0,d.safeCall)(i.app_logger,l.terminateMessenger());const r=(0,c.getLambdaExtensionId)();r&&!u&&(u=!0,(0,d.safeCall)(i.app_logger,(0,s.nextLoopDummy)(r))),(0,c.clearUserIndicatorsTimeouts)(),(0,g.resetCallers)()}async function f(e,t){const s=(0,c.getSessionInfo)(),r=(0,c.getStoredApiKey)(),o=(0,c.getStoredService)();try{const a=e||r;if(!a||"string"!=typeof a)return;const c=t||o||"unknown",d=(0,i.getSavedLogs)();for(const e of d){const{HudClient:t}=n(4672),r=new t;s?(i.app_logger.info("Flushing logs with session",{size:e.length,sessionId:s.sessionId,service:c}),r.setSession(s),await r.logs(e)):(i.app_logger.info("Flushing logs (sessionless)",{size:e.length,service:c}),await r.sessionslessLogs(e,a)),i.app_logger.info("Successfully flushed logs")}}catch(e){try{i.app_logger.error("Failed to flush logs",{msg:e instanceof Error?e.message:void 0,hasSession:null!==s})}catch{}}}},6460:e=>{e.exports=require("timers/promises")},7131:e=>{e.exports=require("./wrap")},7274:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t._setLastPrepCallsTimestamp=c,t.getLastPrepCallsTimestamp=function(){return a},t._liftExceptions=g,t.prepCalls=function(e,t){const n=process.hrtime.bigint();let d;d=null===a?s.hudConfig.dynamicConfig.aggregationInterval:Number(n-a)/1e6,c(n);let l=null;d>=s.hudConfig.dynamicConfig.functionDetachMinWindowMs&&s.hudConfig.dynamicConfig.functionDetachEnabled&&!s.hudConfig.userConfig.disableDetachedFunctions?.value&&(l=s.hudConfig.dynamicConfig.functionDetachThresholdPerSecond*(d/1e3));const u=(new Date).toISOString(),h=[];return Object.entries(hudCalls).map(([n,s])=>{const i=s.shouldDetach;let a=0;var c;Object.entries(s).forEach(([s,o])=>{"shouldDetach"!==s&&Object.entries(o).forEach(([o,c])=>{try{if(null===l||i||(a+=c.count),0===c.sampledCount)return;const r={function_id:n,wrapped_flow_id:o||void 0,wrapped_caller_id:s||void 0,timestamp:u,timeslice:e,exceptions:g(c.exceptions),count:c.count,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};h.push(r),function(e){e.count=0,e.sampledCount=0,e.sum=0,e.squareSum=0,e.sketch=null,e.exceptions={}}(c)}catch(e){r.app_logger.error("Failed preparing invocation, skipping",{func:n,wrappedCaller:s,msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}})}),null!==l&&a>l&&(hudCalls[n].shouldDetach=!0,c=n,o.push(c),r.app_logger.info("Detaching function",{func:n,totalFunctionCalls:a}))}),h.length>0&&(0,i.clearMetricsIndicator)(),h},t.resetCallers=function(){for(const e in globalThis.hudCalls)for(const t in globalThis.hudCalls[e])if("shouldDetach"!==t)for(const n in globalThis.hudCalls[e][t])d(globalThis.hudCalls[e][t][n])},t.getAndClearDetachedFunctions=function(){const e=o;return o=[],e},t.applyKnownDetachedFunctions=function(e){if(e&&0!==e.length&&!s.hudConfig.userConfig.disableDetachedFunctions?.value){l!==e.length&&(r.app_logger.info("Applying known detached functions from host",{count:e.length}),l=e.length);for(const t of e)try{globalThis.hudCalls[t]?globalThis.hudCalls[t].shouldDetach=!0:globalThis.hudCalls[t]={shouldDetach:!0}}catch(e){r.app_logger.error("Failed to apply detached function, skipping",{rawFunctionId:t,error:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}};const s=n(5809),i=n(8269),r=n(523);let o=[],a=null;function c(e){a=e}function d(e){e.samplingCounter=0}function g(e){const t={};for(const n in e)t[n]=[{count:e[n]}];return t}let l=0},7320:function(e,t,n){var s,i=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,s,i)}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(s=function(e){return s=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},s(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=s(e),o=0;o<n.length;o++)"default"!==n[o]&&i(t,e,n[o]);return r(t,e),t});Object.defineProperty(t,"__esModule",{value:!0});const a=o(n(523)),c=o(n(6460)),d=n(5809),g=n(2546),l=n(8528),u=n(2546),h=n(7131),f=n(8269),m=n(2546),p=n(7274),v=n(2702),y=n(8269),w=n(1427),C=n(6281),k=n(8269),b=n(2546),E=n(6261),T=a.app_logger,F=m.safeCall.bind(m.safeCall,T);t.default=class{worker;tsNodeUpdated=!1;staticNextJsEndpointsSent=!1;gracefulShutdownDone=!1;flushInFlight;flushCounter=0;lastManualFlushTimestampMs;didLogManualFlushTooFrequent=!1;threadStatsBaseline=(0,g.createThreadStatsBaseline)();abortController;workerKeepaliveGuard;messageQueue=[];MAX_QUEUE_SIZE=100;messageEmitter=new E.EventEmitter;constructor(e){this.worker=e,this.abortController=new AbortController,(0,E.setMaxListeners)(25,this.abortController.signal);let t=!1;this.worker.on("message",e=>{e.msg!==l.KeepAliveMessage.msg&&(this.messageQueue.length>=this.MAX_QUEUE_SIZE&&(t||(t=!0,T.error("Message queue is at max size, dropping oldest message",{msg:e.msg})),this.messageQueue.shift()),this.messageQueue.push(e),this.messageEmitter.emit("message",e))}).unref(),this.worker.on("error",this.handleWorkerError).unref(),this.workerKeepaliveGuard=new v.WorkerKeepaliveGuard(e,d.hudConfig.communicationKeepaliveGrace),this.updateTsNodeConfig()&&T.info("ts-node config updated from Messenger constructor")}handleWorkerError=e=>{try{e?.code===(new m.HudClientUnauthorizedError).code&&a.customer_logger.logEntry(m.UserErrorLogs.ApiKeyDenied(d.hudConfig.userConfig.key?.source)),T.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,C._detachAndTerminate)(!0,!1,!0)}catch(e){T.critical("Error stopping hud after worker crash",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};stop(){try{this.abortWorker()}catch{}d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.abortController.abort(),this.abortController=new AbortController,this.messageQueue=[],this.messageEmitter.removeAllListeners(),(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),T.debug("sent data to worker",{msg:e,size:t.length}))}_sendObject(e,t){const n={msg:e,content:t};this.worker.postMessage(n)}async checkWorker(e){const t=["started"];let n;try{n=await this.getMessageFromWorker(t,e,!0)}catch(s){if(!(s instanceof m.HudTimeoutError))throw s;n=await this.getMessageFromWorker(t,e/2,!1)}if(!n)throw new m.HudInitError("Worker not started");return n}async checkWorkerInitialized(e){let t;const n=["initialized","throttled","networkError"];try{t=await this.getMessageFromWorker(n,e,!0)}catch(s){if(!(s instanceof m.HudTimeoutError))throw s;t=await this.getMessageFromWorker(n,e/10,!1)}if("throttled"===t?.msg)throw new m.HudSessionThrottle;if("networkError"===t?.msg)throw T.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(d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.start(),globalThis.hudRunningMode){case l.HudRunningMode.enabled:T.info("Enabled mode"),(0,u.applyForensicsDeclarationDelay)(),F(this.getMode()),F(this.periodicGetEndpointsDurationsInvestigationThresholds()),F(this.periodicRefreshRemoteConfig()),F(this.startPeriodicTasks()),F(this.periodicSendMetrics()),F(this.periodicSendDetachedFunctions()),F(this.periodicFetchKnownDetachedFunctions()),F(this.highFrequencySendInvestigations()),F(this.periodicSendProcessedFiles()),F(this.delayedStateCollection()),F(this.periodicSendEndpoints()),F(this.periodicSendOutbounds()),F(this.periodicSendKafkaJS()),F(this.periodicSendSqs()),F(this.periodicSendGraphQL()),F(this.periodicSendGenericDeclarations()),F(this.sendStaticNextJsEndpointsOnce()),F(this.periodicSaveMachineMetrics()),F(this.periodicSendReingest()),F(this.resetCallerCounters()),F(this.periodicResetGlobalInvestigationCounter()),F(this.periodicResetInvestigationDedupingCache()),F(this.sendLogsPeriodically(d.hudConfig.logsSendInterval)),F(this.sendRuntime()),F(this.sendPatchedModules()),F(this.sendPreloadedModules()),F(this.dumpModulesAfterWhile(6e4)),F(this.periodicSendThreadPerformanceMetrics());break;case l.HudRunningMode.disabled:T.info("Disabled mode"),F(this.getMode());break;case l.HudRunningMode.detached:T.info("Detached"),(0,C._detachAndTerminate)(!1,!1),this.stop();break;default:T.error("Running mode not handled")}}consumeMessageFromQueue(e){const t=this.messageQueue.findIndex(t=>e.includes(t.msg));if(-1!==t)return this.messageQueue.splice(t,1)[0]}async getMessageFromWorker(e,t,n=!1,s){let i;e=Array.isArray(e)?e:[e];const r=this.consumeMessageFromQueue(e);if(r)return T.info("Found message in queue",{msg:r.msg}),r;const o=new AbortController,a=()=>{o.abort()};this.abortController.signal.addEventListener("abort",a);const d=c.setTimeout(t,void 0,{signal:o.signal,ref:n}),g=t=>{try{e.includes(t.msg)&&(i=t,o.abort(),this.consumeMessageFromQueue([t.msg]),T.info("Received message from worker (canceling timeout)",t))}catch(e){T.error("Failed handling message from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}};this.messageEmitter.on("message",g),s&&this.worker.postMessage(s);try{throw await d,T.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",a),this.messageEmitter.off("message",g)}return i}async getMode(){await(0,u.safeUnrefInterval)(async()=>{const e=globalThis.hudRunningMode,t={msg:"GetMode",content:{startTime:globalThis.hudStartTime,runningMode:e}},n=await this.getMessageFromWorker(t.msg,d.hudConfig.workerMessageTimeout,!1,t);if(n?.msg!==t.msg||void 0===n?.content.mode)return void T.error("Unexpected message from worker",n);let s=n.content.mode;s===l.HudRunningMode.reservedForForensicsOnlyDontUse&&((0,u.isForensicsOnly)()||((0,u.setForensicsOnly)(!0),(0,u.applyForensicsOnlyLogFloor)()),s=l.HudRunningMode.enabled),s!==e&&await this.restart(s)},d.hudConfig.modeInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed getting mode from worker",{msg:e.message,stack:e.stack})})}async getRemoteConfig(){const e="initDynamicConfig";try{const t=await this.getMessageFromWorker(e,d.hudConfig.workerMessageTimeout,!0);if(t?.msg!==e||void 0===t?.content)throw new Error(`Unexpected message from worker: ${t}`);return t?.content}catch(e){T.error("Failed getting remote configuration from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async getKnownDetachedFunctions(e=!1){const t="KnownDetachedFunctions",n={msg:"GetKnownDetachedFunctions",content:{}};try{const s=await this.getMessageFromWorker(t,d.hudConfig.workerMessageTimeout,e,n);if(s?.msg!==t||void 0===s?.content)throw new Error(`Unexpected message from worker: ${s}`);return s?.content}catch(e){return T.error("Failed getting known detached functions from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0}),[]}}async periodicSaveMachineMetrics(){(0,f.saveMachineMetric)(),await(0,u.safeUnrefInterval)(()=>(0,f.saveMachineMetric)(),d.hudConfig.dynamicConfig.machineMetricsInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed saving machine metrics",{msg:e.message,stack:e.stack})})}async resetCallerCounters(){const e=d.hudConfig.callerResetInterval;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting caller",{interval:e}),(0,p.resetCallers)()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed reseting caller counters",{msg:e.message,stack:e.stack})})}async updateEndpointDurationsInvestigationThresholds(){const e={msg:"EndpointsDurationsInvestigationThresholds"},t="EndpointsDurationsInvestigationThresholds";try{const n=await this.getMessageFromWorker(t,d.hudConfig.workerMessageTimeout,!1,e);if(n?.msg!==t||void 0===n?.content)throw new Error(`Unexpected message from worker: ${n}`);(0,f.setInvestigationDurationThresholds)(n?.content),T.debug("Endpoints durations investigation thresholds updated",{thresholds:n?.content})}catch(e){T.error("Failed getting endpoints durations investigation thresholds from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicGetEndpointsDurationsInvestigationThresholds(){await this.updateEndpointDurationsInvestigationThresholds(),await(0,u.safeUnrefInterval)(()=>this.updateEndpointDurationsInvestigationThresholds(),d.hudConfig.endpointsDurationsInvestigationThresholdsInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed updating endpoints durations investigation thresholds",{msg:e.message,stack:e.stack})})}async updateRefreshRemoteConfig(){const e="RefreshRemoteConfig",t={msg:"RefreshRemoteConfig"};try{const n=await this.getMessageFromWorker(e,d.hudConfig.workerMessageTimeout,!1,t);if(n?.msg!==e||void 0===n?.content)return;(0,d.refreshInvestigationEnabled)(n.content,d.hudConfig,T),(0,d.refreshInvestigationErrorStatusCodeRegex)(n.content,d.hudConfig,T)}catch(e){T.error("Failed refreshing remote config from worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicRefreshRemoteConfig(){await(0,u.safeUnrefInterval)(()=>this.updateRefreshRemoteConfig(),d.hudConfig.remoteConfigRefreshInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed refreshing remote config",{msg:e.message,stack:e.stack})})}async delayedStateCollection(){await this.setupPeriodicTask(0,d.hudConfig.workerStateCollectionDelay,()=>{try{this.updateTsNodeConfig()&&T.info("ts-node config updated from delayed task")}catch(e){T.error("Failed collecting state from delayed task",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"delayedStateCollection",2)}sendProcessedFiles(){const e=function(){const e=globalThis.hudProcessedFiles;return globalThis.hudProcessedFiles=[],e}();this._sendArray("ProcessedFiles",e)}sendKafkaTopics(){const e=(0,y.getKafkaJSTopics)();this._sendArray("KafkaJSTopics",e)}sendSqsQueues(){const e=(0,y.getSqsQueues)();e.length>0&&this._sendArray("SqsQueue",e)}sendGenericDeclarations(){const e=(0,y.getGenericDeclarationsFromStorage)();e.length>0&&this._sendArray("GenericFlowDeclaration",e)}sendGraphQLOperations(){const e=Object.values((0,y.getGraphQLOperations)());e.length>0&&this._sendArray("GraphQLDeclaration",e)}sendInvocations(e){const t=this.elapsedTimesliceMs((0,p.getLastPrepCallsTimestamp)()),n=(0,p.prepCalls)(t,e);n.length>0&&this._sendArray("Invocations",n)}sendFlowMetrics(){const e=this.elapsedTimesliceMs((0,f.getLastSendFlowMetricsTimestamp)()),t=(0,f.getFlowMetrics)(e);Object.keys(t).length>0&&this._sendObject("FlowMetrics",{aggregatedMetrics:t})}sendThreadPerformanceMetrics(){const e=(0,m.collectThreadPerformance)(this.threadStatsBaseline,T,"MainThread");e&&this._sendObject("PerformanceMetrics",e)}sendStaticNextJsEndpointsIfReady(){return!(!(0,g.isNextJsApp)()||!(0,y.isNextConfigExtracted)()||this.staticNextJsEndpointsSent||(this.staticNextJsEndpointsSent=!0,this._sendObject("StaticNextJsEndpoints",{NextConfig:JSON.stringify((0,y.getNextConfig)())}),0))}async periodicSendProcessedFiles(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendProcessedFiles(),!0),"periodicSendProcessedFiles")}async periodicSendKafkaJS(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendKafkaTopics(),!0),"periodicSendKafkaJS")}async periodicSendSqs(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendSqsQueues(),!0),"periodicSendSqs")}async periodicSendGraphQL(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendGraphQLOperations(),!0),"periodicSendGraphQL")}async periodicSendGenericDeclarations(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendGenericDeclarations(),!0),"periodicSendGenericDeclarations")}async periodicSendMetrics(){const e=new h.SketchManager(d.hudConfig.huddBinWidth),t=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,n=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(t,n,()=>{try{this.refreshInvestigations()}catch(e){T.error("Failed sending investigations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}const t=(0,u.isForensicsOnly)();try{const n=this.elapsedTimesliceMs((0,p.getLastPrepCallsTimestamp)()),s=(0,p.prepCalls)(n,e);!t&&s.length>0&&this._sendArray("Invocations",s)}catch(e){T.error("Failed sending invocations",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}try{const e=this.elapsedTimesliceMs((0,f.getLastSendFlowMetricsTimestamp)()),n=(0,f.getFlowMetrics)(e);!t&&Object.keys(n).length>0&&this._sendObject("FlowMetrics",{aggregatedMetrics:n})}catch(e){T.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 periodicSendDetachedFunctions(){if(!d.hudConfig.dynamicConfig.functionDetachEnabled||d.hudConfig.userConfig.disableDetachedFunctions?.value)return;const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>{try{const e=(0,p.getAndClearDetachedFunctions)();e.length>0&&this._sendArray("DetachedFunctions",e)}catch(e){T.error("Failed sending detached functions",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}return!0},"periodicSendDetachedFunctions")}async fetchKnownDetachedFunctions(){try{const e=await this.getKnownDetachedFunctions();e&&e.length>0&&(0,p.applyKnownDetachedFunctions)(e)}catch(e){T.error("Failed fetching known detached functions",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async periodicFetchKnownDetachedFunctions(){d.hudConfig.dynamicConfig.functionDetachEnabled&&!d.hudConfig.userConfig.disableDetachedFunctions?.value&&await(0,u.safeUnrefInterval)(()=>this.fetchKnownDetachedFunctions(),d.hudConfig.dynamicConfig.aggregationInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed fetching known detached functions",{msg:e.message,stack:e.stack})})}async highFrequencySendInvestigations(){if(!d.hudConfig.dynamicConfig.enableInvestigation)return;const e=d.hudConfig.dynamicConfig.investigationFirstSendTimeout,t=d.hudConfig.dynamicConfig.investigationInterval;await this.setupPeriodicTask(e,t,()=>(this.refreshInvestigations(),!0),"highFrequencySendInvestigations")}refreshInvestigations(){const e=(0,y.getClosedInvestigations)();e.length>0&&this._sendArray("Investigations",e)}async periodicSendEndpoints(){const e=d.hudConfig.endpointsFirstSendWaitTime,t=d.hudConfig.endpointsInterval;await this.setupPeriodicTask(e,t,()=>(this.sendEndpoints(),!0),"periodicSendEndpoints")}async periodicSendOutbounds(){const e=d.hudConfig.dynamicConfig.aggregationFirstSendTimeout,t=d.hudConfig.dynamicConfig.aggregationInterval;await this.setupPeriodicTask(e,t,()=>(this.sendOutbounds(),!0),"periodicSendOutbounds")}sendEndpoints(){(0,f.collectExpressEndpointDeclarations)();const e=(0,f.getEndpointDeclarationsFromStorage)();e.length>0&&this._sendArray("EndpointDeclaration",e)}sendOutbounds(){const e=(0,k.getLoadedOutboundsFromStorage)();e.length>0&&this._sendArray("LoadedOutbounds",e);const t=(0,k.getIoredisCommandsFromStorage)();t.length>0&&this._sendArray("IoredisCommands",t)}elapsedTimesliceMs(e){const t=null===e?d.hudConfig.dynamicConfig.aggregationInterval:Number(process.hrtime.bigint()-e)/1e6;return Math.max(1,t)}flushAllPendingData(){const e=new h.SketchManager(d.hudConfig.huddBinWidth),t=[{label:"investigations",fn:()=>this.refreshInvestigations()},{label:"invocations",fn:()=>this.sendInvocations(e)},{label:"flow metrics",fn:()=>this.sendFlowMetrics()},{label:"processed files",fn:()=>this.sendProcessedFiles()},{label:"endpoints",fn:()=>{this.sendEndpoints(),this.sendOutbounds()}},{label:"Kafka topics",fn:()=>this.sendKafkaTopics()},{label:"SQS queues",fn:()=>this.sendSqsQueues()},{label:"Generic declarations",fn:()=>this.sendGenericDeclarations()},{label:"GraphQL declarations",fn:()=>this.sendGraphQLOperations()},{label:"static Next.js endpoints",fn:()=>{this.sendStaticNextJsEndpointsIfReady()}},{label:"thread performance metrics",fn:()=>this.sendThreadPerformanceMetrics()}];for(const e of t)try{e.fn()}catch(t){T.error(`Failed flushing ${e.label}`,{msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0})}}async sendTerminateAndAwait(e){const t=a.getSavedLogs();try{await this.getMessageFromWorker("terminated",e.grace,e.shouldRef,{msg:"Terminate",content:{grace:e.grace,logBuffers:t}})}catch(t){t instanceof m.HudTimeoutError?(T.critical(e.timeoutLogMsg,{error:t.message}),await this.worker.terminate()):(T.critical(e.unexpectedLogMsg,{msg:t instanceof Error?t.message:void 0,stack:t instanceof Error?t.stack:void 0}),await this.worker.terminate())}}async gracefulShutdown(){if(!this.gracefulShutdownDone){this.gracefulShutdownDone=!0;try{this.abortController.abort(),this.abortController=new AbortController,d.hudConfig.communicationKeepalive&&this.workerKeepaliveGuard.stop(),this.worker.ref(),await this.flushNow(),await this.sendTerminateAndAwait({grace:d.hudConfig.teardownGrace,shouldRef:!0,timeoutLogMsg:"Teardown grace timeout - terminating worker",unexpectedLogMsg:"Unexpected error during SDK graceful shutdown"})}finally{try{this.worker.unref()}catch{}this.stop()}}}async terminateWorker(){await this.sendTerminateAndAwait({grace:d.hudConfig.workerGrace,shouldRef:!1,timeoutLogMsg:"Grace period timeout - terminating worker",unexpectedLogMsg:"Unexpected error during worker termination"}),T.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:n.c[n.s]?.filename};this._sendObject("Runtime",e)}async startPeriodicTasks(){this._sendObject("StartPeriodicTasks",{})}async sendPreloadedModules(){globalThis.hudLoadedModules?this._sendObject("PreInitLoadedModules",{modules:globalThis.hudLoadedModules}):T.warning("Didn't get module, weird....")}async periodicSendThreadPerformanceMetrics(){const e=d.hudConfig.dynamicConfig.performanceMetricsInterval;await(0,u.safeUnrefInterval)(()=>this.sendThreadPerformanceMetrics(),e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending thread performance metrics",{msg:e.message,stack:e.stack})})}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 T.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){T.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}catch(e){T.error("Failed send logs to worker",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async flush(){if(this.flushInFlight)return void await this.flushInFlight;const e=Date.now();void 0!==this.lastManualFlushTimestampMs&&e-this.lastManualFlushTimestampMs<d.hudConfig.dynamicConfig.aggregationInterval?this.logManualFlushTooFrequent():(this.lastManualFlushTimestampMs=e,await this.flushNow())}logManualFlushTooFrequent(){this.didLogManualFlushTooFrequent||(this.didLogManualFlushTooFrequent=!0,T.warning("flush() called more frequently than aggregation interval",{aggregationInterval:d.hudConfig.dynamicConfig.aggregationInterval}),a.customer_logger.logEntry(m.UserErrorLogs.FlushCalledTooFrequently(d.hudConfig.dynamicConfig.aggregationInterval)))}async flushNow(){if(this.flushInFlight)await this.flushInFlight;else{this.flushInFlight=this._flush();try{await this.flushInFlight}finally{this.flushInFlight=void 0}}}async _flush(){const e=++this.flushCounter;try{this.flushAllPendingData(),await this.handleLogsTask(),await this.getMessageFromWorker(`flushed:${e}`,d.hudConfig.teardownGrace,!0,{msg:"Flush",content:{flushId:e}})}catch(e){T.error("Failed flushing SDK data",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}}async sendLogsPeriodically(e){await(0,u.safeUnrefInterval)(()=>this.handleLogsTask(),e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending logs periodically",{msg:e.message,stack:e.stack})})}async setupPeriodicTask(e,t,n,s,i=0){function r(e){let t=!0;try{t=n(e)}catch(e){T.error("Failed in periodic task",{taskName:s,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}),!r(e))return void T.warning("Periodic task failed, stopping task",{firstRun:!0,taskName:s});if(1===i)return;let o=i>0?i-1:0;await(0,u.safeUnrefInterval)(e=>{if(!r(t))return T.warning("Periodic task failed, stopping task",{firstRun:!1,taskName:s}),void e();o>0&&0===--o&&e()},t,{signal:this.abortController.signal,onError:e=>T.error("Failed in periodic task interval",{taskName:s,msg:e.message,stack:e.stack})})}async periodicResetGlobalInvestigationCounter(){const e=d.hudConfig.dynamicConfig.investigationRateLimits.totalInvestigationTimeWindowMs;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting global investigation counter",{interval:e}),(0,y.setGlobalInvestigationTracking)(0),(0,f.resetTotalInvestigationsDurationBased)(),(0,f.resetTotalInvestigationsErrorBased)()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed resetting global investigation counter",{msg:e.message,stack:e.stack})})}async periodicResetInvestigationDedupingCache(){const e=d.hudConfig.dynamicConfig.investigationRateLimits.sameInvestigationTimeWindowMs;await(0,u.safeUnrefInterval)(()=>{T.info("Resetting investigation deduping cache",{interval:e}),(0,y.resetInvestigationDedupingCache)(),(0,f.resetInvestigationDurationCounts)(),(0,f.getUniqueSetFailureErrors)().clear()},e,{signal:this.abortController.signal,onError:e=>T.error("Failed resetting investigation deduping cache",{msg:e.message,stack:e.stack})})}updateTsNodeConfig(){if(this.tsNodeUpdated)return!1;try{const e=(0,b.getUserTsNodeConfig)();return!!e&&(this.tsNodeUpdated=!0,T.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,C._detachAndTerminate)(!1),e}}async sendStaticNextJsEndpointsOnce(){if(!(0,g.isNextJsApp)())return;const e=d.hudConfig.staticNextJsEndpointsInterval,t=d.hudConfig.staticNextJsEndpointsMaxAttempts;let n=0;await(0,u.safeUnrefInterval)(e=>{if(n++,T.debug("Attempting to send static next.js endpoints",{attemptCount:n}),this.sendStaticNextJsEndpointsIfReady())return T.info("Sent static next.js endpoints"),void e();n>t&&(T.warning("Exceeded max attempts to send static next.js endpoints",{isNextConfigExtracted:(0,y.isNextConfigExtracted)(),attemptCount:n}),e())},e,{signal:this.abortController.signal,onError:e=>T.error("Failed sending static next.js endpoints",{msg:e.message,stack:e.stack})})}async periodicSendReingest(){await(0,u.safeUnrefInterval)(()=>{const e=(0,f.getAndClearReingestValues)();e.size>0&&this._sendArray("Reingest",Array.from(e))},d.hudConfig.dynamicConfig.reingestInterval,{signal:this.abortController.signal,onError:e=>T.error("Failed sending reingest",{msg:e.message,stack:e.stack})})}}},8167:e=>{e.exports=require("worker_threads")},8269:e=>{e.exports=require("./globalstate")},8528:e=>{e.exports=require("./dto")},9269:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setUnknownAsyncContextTypesInterval=function(){const e=setInterval(()=>{try{const e=(0,i.getUnknownAsyncContextTypes)();if(0===e.size)return;const t=[];for(const n of e)o.has(n)||(o.add(n),t.push(n));t.length>0&&r.instrument_logger.warning("Encountered unknown async context type(s) without caller propagation",{types:t})}catch(e){r.instrument_logger.error("Error logging unknown async context types",{msg:e instanceof Error?e.message:void 0,stack:e instanceof Error?e.stack:void 0})}},s.hudConfig.logIntervals.unknownAsyncContextTypes);return e.unref(),e};const s=n(5809),i=n(8269),r=n(523),o=new Set}},t={};function n(s){var i=t[s];if(void 0!==i)return i.exports;var r=t[s]={exports:{}};return e[s].call(r.exports,r,r.exports,n),r.exports}return n.c=t,n(n.s=5119)})());
|
|
2
2
|
//# sourceMappingURL=core.js.map
|
package/dist/cjs/dto.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 o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(global,()=>(()=>{"use strict";var e={765:(e,t)=>{var o,n;Object.defineProperty(t,"__esModule",{value:!0}),t.HudSessionInitStatus=t.HudRunningMode=t.KeepAliveMessage=void 0,t.KeepAliveMessage={msg:"keep-alive"},function(e){e[e.detached=0]="detached",e[e.disabled=1]="disabled",e[e.enabled=2]="enabled"}(o||(t.HudRunningMode=o={})),function(e){e[e.success=0]="success",e[e.throttled=1]="throttled"}(n||(t.HudSessionInitStatus=n={}))},878:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.GraphQLSupportedOperations=void 0,function(e){e.query="query",e.mutation="mutation",e.subscription="subscription"}(o||(t.GraphQLSupportedOperations=o={}))},1569:e=>{e.exports=require("zod")},2176:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3487:function(e,t,o){var n=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]}),r=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||n(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),r(o(7789),t),r(o(8086),t),r(o(7935),t),r(o(6910),t),r(o(2176),t),r(o(9107),t),r(o(7022),t),r(o(6604),t),r(o(4909),t),r(o(878),t),r(o(8377),t),r(o(8054),t),r(o(6328),t),r(o(6413),t),r(o(6364),t),r(o(765),t)},4909:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6328:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6364:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HudSessionOptionsSchema=t.HudOptionsSchema=void 0;const n=o(1569),r=o(7789);t.HudOptionsSchema=n.z.object({includeModules:n.z.array(n.z.string()).optional(),excludeDirs:n.z.array(n.z.string()).optional(),enableFrameworks:r.availableFrameworksSchema.optional(),maxMappedFunctions:n.z.number().optional(),minPodMemoryMB:n.z.number().optional(),maxFileSizeBytes:n.z.number().optional(),maxTimeUntilInitSessionMs:n.z.number().optional(),verbose:n.z.boolean().optional(),disableSourceMapsResolution:n.z.boolean().optional(),disableRuntimeInstrumentation:n.z.boolean().optional(),disableParametersExtraction:n.z.boolean().optional(),disableDetachedFunctions:n.z.boolean().optional(),customForensicsStorage:n.z.object({bucket:n.z.string(),region:n.z.string(),prefix:n.z.string().optional()}).optional(),flushOnExit:n.z.boolean().optional(),flushOnUncaughtException:n.z.boolean().optional(),customOptions:n.z.record(n.z.string(),n.z.string()).optional()}),t.HudSessionOptionsSchema=n.z.object({tags:n.z.record(n.z.string(),n.z.string()).optional(),deploymentId:n.z.string().optional()})},6413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6604:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6910:(e,t)=>{var o,n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.EntityType=t.ArgumentTypes=t.ParameterTypes=void 0,function(e){e.Identifier="Identifier",e.RestElement="RestElement",e.ArrayPattern="ArrayPattern",e.AssignmentPattern="AssignmentPattern",e.ObjectPattern="ObjectPattern",e.ObjectProperty="ObjectProperty"}(o||(t.ParameterTypes=o={})),function(e){e.StringLiteral="StringLiteral",e.Identifier="Identifier",e.TemplateString="TemplateString"}(n||(t.ArgumentTypes=n={})),function(e){e.FunctionDeclaration="functionDeclaration",e.FunctionExpression="functionExpression",e.FunctionArrow="functionArrow",e.ClassMethod="classMethod",e.ObjectMethod="objectMethod",e.ClassPrivateMethod="classPrivateMethod",e.ClassDeclaration="classDeclaration",e.ClassExpression="classExpression",e.ObjectExpression="objectExpression",e.Program="program",e.ForLoop="forLoop",e.ForBlock="forBlock",e.ForTest="forTest",e.Block="block",e.While="while",e.DoWhile="doWhile",e.Do="Do",e.WhileTest="whileTest",e.Switch="switch",e.SwitchCase="switchCase",e.Catch="catch",e.With="with",e.If="if",e.IfTest="ifTest",e.IfConsequent="ifConsequent",e.IfAlternate="ifAlternate",e.TryCatch="tryCatch",e.Try="try",e.Finally="finally",e.Other="other",e.File="file"}(r||(t.EntityType=r={}))},7022:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.Format=t.FUNCTION_DECLARATION_VERSION=void 0,t.isSupportedFormat=function(e){return Object.values(o).includes(e)},t.FUNCTION_DECLARATION_VERSION="1.1.3",function(e){e.cjs="commonjs",e.esm="module",e.ts="typescript",e.moduleTypescript="module-typescript",e.commonjsTypescript="commonjs-typescript"}(o||(t.Format=o={}))},7789:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.availableFrameworksSchema=t.availableFrameworks=void 0;const n=o(1569);t.availableFrameworks={axios:"axios",pg:"pg",ioredis:"ioredis",nodeFetch:"nodeFetch",request:"request",express:"express",fastify:"fastify",hapi:"hapi",koa:"koa",graphql:"graphql",http:"http",https:"https",nextjs:"nextjs",nestjs:"nestjs",kafkajs:"kafkajs",confluentKafkaJs:"confluentKafkaJs",codegenieServerlessExpress:"codegenieServerlessExpress",sqs:"sqs",serverlessHttp:"serverlessHttp",mongodb:"mongodb",mongoose:"mongoose",clickhouse:"clickhouse"},t.availableFrameworksSchema=n.z.union([n.z.map(n.z.nativeEnum(t.availableFrameworks),n.z.boolean()),n.z.record(n.z.nativeEnum(t.availableFrameworks),n.z.boolean())]).transform(e=>e instanceof Map?e:new Map(Object.entries(e)))},7935:(e,t)=>{function o(e,t){return t?t instanceof RegExp?e+t.toString():("/"===t[t.length-1]&&t.length>1&&(t=t.slice(0,-1)),(t=e+t).replace(/\/{2,}/g,"/")):t}Object.defineProperty(t,"__esModule",{value:!0}),t.EndpointDeclaration=void 0,t.EndpointDeclaration=class{flow_id;methods;framework;partial_path;path;constructor(e,t,n,r,i
|
|
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={765:(e,t)=>{var o,n;Object.defineProperty(t,"__esModule",{value:!0}),t.HudSessionInitStatus=t.HudRunningMode=t.KeepAliveMessage=void 0,t.KeepAliveMessage={msg:"keep-alive"},function(e){e[e.detached=0]="detached",e[e.disabled=1]="disabled",e[e.enabled=2]="enabled",e[e.reservedForForensicsOnlyDontUse=3]="reservedForForensicsOnlyDontUse"}(o||(t.HudRunningMode=o={})),function(e){e[e.success=0]="success",e[e.throttled=1]="throttled"}(n||(t.HudSessionInitStatus=n={}))},878:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.GraphQLSupportedOperations=void 0,function(e){e.query="query",e.mutation="mutation",e.subscription="subscription"}(o||(t.GraphQLSupportedOperations=o={}))},1569:e=>{e.exports=require("zod")},2176:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},3487:function(e,t,o){var n=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]}),r=this&&this.__exportStar||function(e,t){for(var o in e)"default"===o||Object.prototype.hasOwnProperty.call(t,o)||n(t,e,o)};Object.defineProperty(t,"__esModule",{value:!0}),r(o(7789),t),r(o(8086),t),r(o(7935),t),r(o(6910),t),r(o(2176),t),r(o(9107),t),r(o(7022),t),r(o(6604),t),r(o(4909),t),r(o(878),t),r(o(8377),t),r(o(8054),t),r(o(6328),t),r(o(6413),t),r(o(6364),t),r(o(765),t)},4909:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6328:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6364:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.HudSessionOptionsSchema=t.HudOptionsSchema=void 0;const n=o(1569),r=o(7789);t.HudOptionsSchema=n.z.object({includeModules:n.z.array(n.z.string()).optional(),excludeDirs:n.z.array(n.z.string()).optional(),enableFrameworks:r.availableFrameworksSchema.optional(),maxMappedFunctions:n.z.number().optional(),minPodMemoryMB:n.z.number().optional(),maxFileSizeBytes:n.z.number().optional(),maxTimeUntilInitSessionMs:n.z.number().optional(),verbose:n.z.boolean().optional(),disableSourceMapsResolution:n.z.boolean().optional(),disableRuntimeInstrumentation:n.z.boolean().optional(),disableParametersExtraction:n.z.boolean().optional(),disableDetachedFunctions:n.z.boolean().optional(),customForensicsStorage:n.z.object({bucket:n.z.string(),region:n.z.string(),prefix:n.z.string().optional()}).optional(),flushOnExit:n.z.boolean().optional(),flushOnUncaughtException:n.z.boolean().optional(),customOptions:n.z.record(n.z.string(),n.z.string()).optional()}),t.HudSessionOptionsSchema=n.z.object({tags:n.z.record(n.z.string(),n.z.string()).optional(),deploymentId:n.z.string().optional(),forensicsOnly:n.z.boolean().optional()})},6413:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6604:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},6910:(e,t)=>{var o,n,r,s,i;Object.defineProperty(t,"__esModule",{value:!0}),t.FlowFramework=t.FlowType=t.EntityType=t.ArgumentTypes=t.ParameterTypes=void 0,function(e){e.Identifier="Identifier",e.RestElement="RestElement",e.ArrayPattern="ArrayPattern",e.AssignmentPattern="AssignmentPattern",e.ObjectPattern="ObjectPattern",e.ObjectProperty="ObjectProperty"}(o||(t.ParameterTypes=o={})),function(e){e.StringLiteral="StringLiteral",e.Identifier="Identifier",e.TemplateString="TemplateString"}(n||(t.ArgumentTypes=n={})),function(e){e.FunctionDeclaration="functionDeclaration",e.FunctionExpression="functionExpression",e.FunctionArrow="functionArrow",e.ClassMethod="classMethod",e.ObjectMethod="objectMethod",e.ClassPrivateMethod="classPrivateMethod",e.ClassDeclaration="classDeclaration",e.ClassExpression="classExpression",e.ObjectExpression="objectExpression",e.Program="program",e.ForLoop="forLoop",e.ForBlock="forBlock",e.ForTest="forTest",e.Block="block",e.While="while",e.DoWhile="doWhile",e.Do="Do",e.WhileTest="whileTest",e.Switch="switch",e.SwitchCase="switchCase",e.Catch="catch",e.With="with",e.If="if",e.IfTest="ifTest",e.IfConsequent="ifConsequent",e.IfAlternate="ifAlternate",e.TryCatch="tryCatch",e.Try="try",e.Finally="finally",e.Other="other",e.File="file"}(r||(t.EntityType=r={})),function(e){e.Queue="queue",e.WebSocket="websocket",e.Custom="custom"}(s||(t.FlowType=s={})),function(e){e.BullMQ="bullmq",e.SocketIO="socket.io",e.Kafka="kafka",e.Sqs="sqs",e.Custom="custom"}(i||(t.FlowFramework=i={}))},7022:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.Format=t.FUNCTION_DECLARATION_VERSION=void 0,t.isSupportedFormat=function(e){return Object.values(o).includes(e)},t.FUNCTION_DECLARATION_VERSION="1.1.3",function(e){e.cjs="commonjs",e.esm="module",e.ts="typescript",e.moduleTypescript="module-typescript",e.commonjsTypescript="commonjs-typescript"}(o||(t.Format=o={}))},7789:(e,t,o)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.availableFrameworksSchema=t.availableFrameworks=void 0;const n=o(1569);t.availableFrameworks={axios:"axios",pg:"pg",ioredis:"ioredis",nodeFetch:"nodeFetch",request:"request",express:"express",fastify:"fastify",hapi:"hapi",koa:"koa",graphql:"graphql",http:"http",https:"https",nextjs:"nextjs",nestjs:"nestjs",kafkajs:"kafkajs",confluentKafkaJs:"confluentKafkaJs",codegenieServerlessExpress:"codegenieServerlessExpress",sqs:"sqs",serverlessHttp:"serverlessHttp",mongodb:"mongodb",mongoose:"mongoose",clickhouse:"clickhouse"},t.availableFrameworksSchema=n.z.union([n.z.map(n.z.nativeEnum(t.availableFrameworks),n.z.boolean()),n.z.record(n.z.nativeEnum(t.availableFrameworks),n.z.boolean())]).transform(e=>e instanceof Map?e:new Map(Object.entries(e)))},7935:(e,t)=>{function o(e,t){return t?t instanceof RegExp?e+t.toString():("/"===t[t.length-1]&&t.length>1&&(t=t.slice(0,-1)),(t=e+t).replace(/\/{2,}/g,"/")):t}Object.defineProperty(t,"__esModule",{value:!0}),t.EndpointDeclaration=void 0,t.EndpointDeclaration=class{flow_id;methods;framework;partial_path;path;constructor(e,t,n,r,s,i){this.flow_id=e,this.methods=t,this.framework=n,this.partial_path=i,r||(r=""),this.path=o(r,s),this.partial_path=o(r,i)}}},8054:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8086:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},8377:(e,t)=>{var o,n,r;Object.defineProperty(t,"__esModule",{value:!0}),t.OutboundType=t.InvestigationType=t.InvestigationStatus=void 0,function(e){e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Cleared=3]="Cleared"}(o||(t.InvestigationStatus=o={})),function(e){e.HTTP="http",e.SQS="sqs",e.Kafka="kafka",e.GraphQL="graphql",e.Queue="queue",e.WebSocket="websocket",e.CustomFlow="custom"}(n||(t.InvestigationType=n={})),function(e){e.HTTP="http",e.DB="db",e.REDIS="redis",e.MONGO="mongo"}(r||(t.OutboundType=r={}))},9107:(e,t)=>{var o;Object.defineProperty(t,"__esModule",{value:!0}),t.HttpEndReason=void 0,function(e){e.ServerTimeout="http.server_timeout",e.ClientTimeout="http.client_timeout",e.ResponseAborted="http.response_aborted"}(o||(t.HttpEndReason=o={}))}},t={};return function o(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,o),s.exports}(3487)})());
|
|
2
2
|
//# sourceMappingURL=dto.js.map
|