@datadog/webpack-plugin 3.2.12-dev.0 → 3.2.12-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("unplugin"),t=require("chalk"),n=require("async-retry"),o=require("buffer"),r=require("fs/promises"),i=require("fs"),s=require("json-stream-stringify"),a=require("path"),u=require("stream"),c=require("eslint-scope"),d=require("node:module"),l=require("crypto"),p=require("os"),f=require("jszip"),m=require("glob"),g=require("esbuild"),h=require("rollup/parseAst"),y=require("node:async_hooks"),b=require("p-queue"),w=require("@jridgewell/remapping"),v=require("pretty-bytes"),$=require("perf_hooks"),k=require("@datadog/js-instrumentation-wasm"),x=require("simple-git"),E=require("magic-string"),S=require("webpack");function I(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var j=I(c);const A="__datadog-helper-file",D=new RegExp(A),P=["development","production","test"],M=["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","datadoghq.eu","ddog-gov.com","us2.ddog-gov.com","ap1.datadoghq.com","ap2.datadoghq.com","datad0g.com"],C=M[0],O="datadog-build-plugins",N=t.bold.green,T=t.bold.yellow,R=["API_KEY","APP_KEY","SOURCEMAP_INTAKE_URL","APPS_PACKAGE_DIR","OAUTH_ACCESS_TOKEN","SITE"],_=e=>process.env[`DATADOG_${e}`]||process.env[`DD_${e}`],F=e=>{const t=[];return process.env[`DD_${e}`]&&t.push(`DD_${e}`),process.env[`DATADOG_${e}`]&&t.push(`DATADOG_${e}`),t},L=(e,t,n)=>{if(void 0===e)return;const o=(e=>{if("string"!=typeof e)return;const t=e.toLowerCase(),n=M.find((e=>e===t));if(n)return{site:n};const o=M.filter((e=>t.endsWith(`.${e}`)));if(!o.length)return;const r=o.reduce(((e,t)=>t.length>e.length?t:e)),i=t.slice(0,t.length-r.length-1);return i&&/^[a-z0-9-]+$/.test(i)?{site:r,subdomain:i}:void 0})(e);if(o)return o;n.push(`${t} "${e}" is not a supported Datadog site. See the site parameters in https://docs.datadoghq.com/getting_started/site/.`)},q=e=>null===e||"object"!=typeof e?"":Object.entries(e).map((([e,t])=>`${e}: ${"string"==typeof t?t:JSON.stringify(t)}`)).join(", "),z=[400,401,403,404,405,409,413],B=async e=>{const{auth:t,url:o,method:r="GET",getData:i,type:s="text",signal:a}=e,u={retries:0===e.retries?0:e.retries||5,onRetry:e.onRetry,maxTimeout:e.maxTimeout,minTimeout:e.minTimeout};return n((async(e,n)=>{let u;try{const e={method:r,duplex:"half",signal:a};let n={"X-Datadog-Origin":"build-plugins"};if(t&&"accessToken"in t?t.accessToken&&(n.Authorization=`Bearer ${t.accessToken}`):(t?.apiKey&&(n["DD-API-KEY"]=t.apiKey),t?.appKey&&(n["DD-APPLICATION-KEY"]=t.appKey)),"function"==typeof i){const{data:t,headers:o}=await i();e.body=t,n={...n,...o}}u=await fetch(o,{...e,headers:n})}catch(t){return e(t),{}}if(!u.ok){let t=`HTTP ${u.status} ${u.statusText}`;try{const e=(e=>{try{const t=JSON.parse(e);if(null!==t&&"object"==typeof t)if("errors"in t&&Array.isArray(t.errors)){const e=t.errors.map(q).filter((e=>e.length>0)).join("\n");if(e)return e}else{const e=q(t);if(e)return e}}catch{}return e})(await u.text());e&&(t+=`\n${e}`)}catch{}if(z.includes(u.status))return e(new Error(t)),{};throw new Error(t)}try{let e;return e="json"===s?await u.json():await u.text(),e}catch(t){return e(t),{}}}),u)},V=e=>({message:t,context:n})=>B({retries:2,minTimeout:100,url:"https://browser-http-intake.logs.datadoghq.com/v1/input/pub44d5f4eb86e1392037b7501f7adc540e",method:"POST",type:"json",getData:async()=>{const o={ddsource:e.packageName||O,message:t,service:"build-plugins",team:"language-foundations",env:e.env,version:e.version,bundler:{name:e.bundler.name,version:e.bundler.version},metadata:e.metadata,...n};return{data:JSON.stringify(o),headers:{"Content-Type":"application/json"}}}}),U=e=>e.replace(/^@dd\/(datadog-|internal-)?|^datadog-|-plugin$/g,""),W=e=>e.includes(A),K=e=>{const t={bundler:e.bundler,errors:e.errors,metadata:e.metadata,warnings:e.warnings,logs:e.logs,timings:e.timings,start:e.start,end:e.end,duration:e.duration,writeDuration:e.writeDuration,entries:[],inputs:[],outputs:[]};for(const n of e.entries||[]){const e={...n,inputs:[],outputs:[]};n.inputs&&(e.inputs=n.inputs.map((e=>e.filepath))),n.outputs&&(e.outputs=n.outputs.map((e=>e.filepath))),t.entries.push(e)}for(const n of e.inputs||[]){const e={...n,dependencies:[],dependents:[]};if(n.dependencies)for(const t of n.dependencies)e.dependencies.push(t.filepath);if(n.dependents)for(const t of n.dependents)e.dependents.push(t.filepath);t.inputs.push(e)}for(const n of e.outputs||[]){const e={...n,inputs:[]};n.inputs&&(e.inputs=n.inputs.map((e=>e.filepath))),t.outputs.push(e)}return t},H=e=>{const t=!!e.errorTracking?.sourcemaps,n=e.enableGit??!0;return t&&n},J=e=>{const t=Math.floor(e/1e3/60/60/24),n=new Date(e-24*t*60*60*1e3),o=n.getUTCHours(),r=n.getUTCMinutes(),i=n.getUTCSeconds(),s=n.getUTCMilliseconds(),a=`${t?`${t}d `:""}${o?`${o}h `:""}${r?`${r}m `:""}${i?`${i}s`:""}`.trim();return`${a}${!a||s?` ${s}ms`:""}`.trim()},G=(e,t=60,n="[...]")=>{if(e.length<=t)return e;const o=Math.max(4,t-n.length),r=Math.min(10,Math.floor(o/2)),i=o-r;return`${e.slice(0,r)}${n}${e.slice(-i)}`},Y=(e="")=>{try{if(!e||e.startsWith("git@"))return e;const t=new URL(e),n="/"===t.pathname?"":t.pathname;return`${t.protocol?`${t.protocol}//`:""}${t.host}${n}`}catch{return e}},Q=e=>e.trim().toLowerCase().replace(/[^a-z0-9_:./-]+/g,"_").replace(/^_+|_+$/g,"")||"unknown",X=e=>Object.entries(e).map((([e,n])=>` - ${e}: ${t.bold.green((e=>{if(void 0===e)return"undefined";if(null===e)return"null";if(Array.isArray(e))return e.join(", ");if("object"==typeof e)try{return JSON.stringify(e,null,2)}catch{return String(e)}return e?.toString()??""})(n))}`)).join("\n"),Z={debug:0,info:1,warn:2,error:3,none:4},ee=e=>e.split(">").map(U).join(">"),te=(e,n,o,r)=>{const i=ee(e);return(s,a="debug",{forward:u,context:c}={})=>{let d=t.dim,l=console.log;"error"===a?(d=t.red,l=console.error):"warn"===a?(d=t.yellow,l=console.warn):"info"===a&&(d=t.cyan,l=console.log);const p=`[${n.metadata?.name?`${n.metadata.name}|`:""}${a}|${n.bundler.name}|${i}]`,f="string"==typeof s?s:JSON.stringify(s,null,2);if(o.logs.push({bundler:n.bundler.name,pluginName:e,type:a,message:f,time:Date.now()}),"error"===a&&o.errors.push(f),"warn"===a&&o.warnings.push(f),u){const t=async()=>{try{const t=V(n);await t({message:f,context:{plugin:e,status:a,...c}})}catch(t){te(e,n,o,r)(`Error forwarding log: ${t}`,"debug")}};o.queue.push(t())}Z[a]>=Z[r]&&l(`${d(p)} ${f}`)}},ne=(e,n,o)=>(r,i={})=>{const{level:s="debug",start:a=!0,log:u=!0,tags:c=[]}=i,d={pluginName:e,label:r,spans:[],tags:[...c,`plugin:${e}`,`level:${s}`],logLevel:s,total:0};n.push(d);const l=()=>d.spans.filter((e=>!e.end)),p=n=>{l().length||(!d.spans.length&&u&&o(t.dim(`[${t.cyan(r)}] : start`),"debug"),d.spans.push({start:n||Date.now(),tags:[`plugin:${e}`]}))},f=(e,n=!0)=>{const i=l();if(i?.length){i.length>1&&o(`Timer ${t.cyan(r)} has more than one ongoing span.`,"debug");for(const t of i)t.end=e||Date.now()}else n&&o(`Timer ${t.cyan(r)} cannot be paused, no ongoing span.`,"debug")};if(a){let e;"number"==typeof a&&(e=a),p(e)}return{timer:d,resume:p,end:e=>{f(e,!1);const n=d.spans.reduce(((e,t)=>e+(t.end-t.start)),0);d.total=n,u&&o(`[${t.cyan(r)}] : ${t.cyan(J(n))}`,s)},pause:f,tag:(e,t={})=>{const{span:n=!1}=t;if(n){const t=l();for(const n of t)n.tags.push(...e)}else d.tags.push(...e)}}},oe=(e,t,n="warn")=>o=>{const r=te(o,e,t,n);return{getLogger:r=>oe(e,t,n)(`${ee(o)}>${r}`),time:ne(o,t.timings,r),error:(e,t)=>r(e,"error",t),warn:(e,t)=>r(e,"warn",t),info:(e,t)=>r(e,"info",t),debug:(e,t)=>r(e,"debug",t)}},re=["buildEnd","buildStart","load","resolveId","transform","watchChange","writeBundle","buildRoot","init","buildReport","bundlerReport","git"],ie=(e,t,n,o)=>{const r=n=>function(...r){const i=o.time(`${e} | ${t}`,{log:!1,tags:["type:hook",`hook:${t}`]}),s=n.apply(this,r);return s instanceof Promise?s.finally((()=>{i.end()})):(i.end(),s)};return"object"==typeof n&&null!==n&&"handler"in n?{...n,handler:r(n.handler)}:r(n)},se=(e,t,n)=>{const o=e.getLogger(O);return e=>{const r=o.time(`hook | init ${n}`,{log:!1}),i=t(e).map((e=>((e,t)=>{const n={...e},o=U(e.name);for(const r of re){const i=e[r];i&&(n[r]=ie(o,r,i,t))}return n})(e,o))),s=i.map((e=>`plugin:${e.name}`));return r.tag(s),r.end(),i}},ae=new Set,ue=(e,t,n)=>{const o=e[t];if(o&&"object"==typeof o&&"enable"in o){const e=o.enable;if("boolean"!=typeof e&&void 0!==e&&(ae.has(t)||(ae.add(t),n.warn(`\`${t}.enable\` should be a boolean, got ${typeof e}. Non-boolean values are coerced today but will be rejected in the next major.`))),void 0!==e)return!!e}return!!o},ce="apps",de="datadog-apps-plugin",le="datadog-app-assets.zip",pe=/\.backend\.(ts|tsx|js|jsx)$/,fe="?dd-local-exec",me=new RegExp(`${pe.source.slice(0,-1)}(\\?.*)?$`),ge=[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts"],he=e=>{const t=e?.maxRetries??10,n=e?.timeoutMs??4e4;if(!Number.isInteger(t)||t<1)throw new Error("apps.longPolling.maxRetries must be an integer >= 1.");if(!Number.isFinite(n)||n<=0)throw new Error("apps.longPolling.timeoutMs must be a positive number.");return{maxRetries:t,timeoutMs:n,jitter:e?.jitter??!0,exponentialBackoff:e?.exponentialBackoff??!0}},ye=async e=>r.rm(e,{force:!0,maxRetries:3,recursive:!0}),be=async e=>r.mkdir(e,{recursive:!0}),we=(e,t)=>{var n;n=a.dirname(e),i.mkdirSync(n,{recursive:!0}),i.writeFileSync(e,t,{encoding:"utf-8"})},ve=e=>r.readFile(e,{encoding:"utf-8"}),$e=e=>{try{return i.existsSync(e)}catch(e){if("ENOENT"===e.code)return!1;throw e}},ke=async(e,t)=>{if("function"==typeof i.openAsBlob){const n=await i.openAsBlob(e,{type:t.contentType});return new o.File([n],t.filename)}{const n=u.Readable.toWeb(i.createReadStream(e)),r=await new Response(n).blob();return new o.File([r],t.filename,{type:t.contentType})}},xe=async e=>{const t={empty:!1,exists:!0};try{const{size:n}=await r.stat(e);0===n&&(t.empty=!0)}catch(e){if("ENOENT"!==e.code)throw e;t.exists=!1}return t};var Ee=(e=>(e[e.BEFORE=0]="BEFORE",e[e.MIDDLE=1]="MIDDLE",e[e.AFTER=2]="AFTER",e))(Ee||{});const Se="Set DD_API_KEY and DD_APP_KEY for API-key auth, or set DD_OAUTH_ACCESS_TOKEN (or DATADOG_OAUTH_ACCESS_TOKEN) — e.g. by starting the dev server with `datadog-apps dev`.";class Ie extends Error{constructor(){super(`Missing authentication. ${Se}`),this.statusCode=400,this.name="MissingAuthenticationError"}}function je(e,t){if(!function(e){return"Program"===e.type}(e))throw new Error(`Expected a Program node from this.parse() for ${t}, got ${e.type}`);return e}function Ae(e,t){return"object"==typeof e&&null!==e&&"type"in e&&e.type===t}function De(e){return Ae(e,"Literal")&&"value"in e&&"string"==typeof e.value}function Pe(e){return"type"===e.importKind||"type"===e.exportKind}function Me(e){return Ae(e,"VariableDeclarator")}function Ce(e){return De(e)?e.value:function(e){return!!(Ae(e,"TemplateLiteral")&&"expressions"in e&&"quasis"in e)&&Array.isArray(e.expressions)&&0===e.expressions.length&&Array.isArray(e.quasis)&&1===e.quasis.length}(e)?e.quasis[0].value.cooked??void 0:void 0}function Oe(e,t){return function(e,t){const n=je(e,t),o=function(e){const t=new Map;for(const n of e.body)if("FunctionDeclaration"===n.type&&n.id)t.set(n.id.name,{kind:"function"});else if("ClassDeclaration"===n.type&&n.id)t.set(n.id.name,{kind:"class"});else if("VariableDeclaration"===n.type)for(const e of n.declarations)"Identifier"===e.id.type&&t.set(e.id.name,{kind:"variable",init:e.init});else if("ImportDeclaration"===n.type)for(const e of n.specifiers)t.set(e.local.name,{kind:"import"});return t}(n),r=[];for(const e of n.body){if("ExportDefaultDeclaration"===e.type)throw new Error(`Default exports are not supported in .backend.ts files. Use a named export instead: ${t}`);if("ExportAllDeclaration"===e.type)throw new Error(`"export *" is not supported in .backend.ts files. Use explicit named exports instead: ${t}`);if("ExportNamedDeclaration"!==e.type)continue;e.declaration&&r.push(...Re(e.declaration,t).map((e=>({kind:"local",name:e,localName:e}))));const n="string"==typeof e.source?.value?e.source.value:null;for(const i of e.specifiers){if("Identifier"!==i.exported.type)continue;if("default"===i.exported.name)throw new Error(`Default exports are not supported in .backend.ts files. Use a named export instead: ${t}`);const e="Identifier"===i.local.type?i.local.name:"string"==typeof i.local.value?i.local.value:null;e&&(n?r.push({kind:"re-export",name:i.exported.name,localName:e,source:n}):("Identifier"===i.local.type&&_e(e,o,t),r.push({kind:"local",name:i.exported.name,localName:e})))}}return r}(e,t).map((e=>e.name))}const Ne=new Set(["ArrayExpression","Literal","ObjectExpression","TemplateLiteral"]);function Te(e){return null==e||Ne.has(e.type)}function Re(e,t){if("FunctionDeclaration"===e.type&&e.id)return[e.id.name];if("ClassDeclaration"===e.type)throw new Error(`Class exports are not supported in .backend.ts files. Only function exports are allowed: ${t}`);if("VariableDeclaration"===e.type)return e.declarations.flatMap((e=>{if("Identifier"!==e.id.type)throw new Error(`Destructured exports are not supported in backend files. Use individual named exports instead: ${t}`);if(Te(e.init))throw new Error(`Non-function export "${e.id.name}" in backend file ${t}. Only function exports are supported — use "export function ${e.id.name}(…) { }" instead.`);return[e.id.name]}));throw new Error(`Unsupported export declaration type "${e.type}" in backend file ${t}. Only function and variable exports are allowed.`)}function _e(e,t,n){const o=t.get(e);if(o){if("class"===o.kind)throw new Error(`Class exports are not supported in .backend.ts files. Only function exports are allowed: ${n}`);if("variable"===o.kind&&Te(o.init))throw new Error(`Non-function export "${e}" in backend file ${n}. Only function exports are supported — use "export function ${e}(…) { }" instead.`)}}function Fe(e,t,n){const o={state:t},r=e=>{n._?.(e,o),function(e,t){return t[e.type]}(e,n)?.(e,o);for(const t of Object.keys(e))"type"!==t&&i(e[t])},i=e=>{if(Array.isArray(e))for(const t of e)Le(t)&&r(t);else Le(e)&&r(e)};r(e)}function Le(e){return"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type}function qe(e){Fe(e,null,{_(e){const t=e;t.range||"number"!=typeof t.start||"number"!=typeof t.end||(t.range=[t.start,t.end])}});const t=j.analyze(e,{ecmaVersion:2022,ignoreEval:!0,sourceType:"module"}),n=new Map;for(const e of t.scopes)for(const t of e.references)n.set(t.identifier,t);return{scopeManager:t,referencesByIdentifier:n,moduleScope:Ue(t)}}function ze(e,t){return t.referencesByIdentifier.get(e)?.resolved??void 0}function Be(e){return e.defs.some((e=>"ImportBinding"===e.type))}function Ve(e,t){return t.moduleScope.set.get(e)}function Ue(e){return e.scopes.find((e=>"module"===e.type))??e.globalScope}function We(e,t,n){const o={scopeAnalysis:t,unsupportedAliases:Ke(e,t)},r=[];return Fe(e,o,{CallExpression(e,{state:t}){(function(e,t,n){const o=e.callee;if("Identifier"===o.type){if(Ye(o,t.unsupportedAliases,t.scopeAnalysis))throw et(n,"action-catalog call aliases");if(Ye(o,t.scopeAnalysis.actionFunctions,t.scopeAnalysis)){if(e.optional)throw et(n,"optional action-catalog calls");return!0}return!1}if("MemberExpression"!==o.type)return!1;if(!He(o,t.scopeAnalysis))return!1;if(e.optional||Ge(o))throw et(n,"optional or computed action-catalog namespace calls");return!0})(e,t,n)&&r.push(e)}}),r}function Ke(e,t){const n=new Set;return Fe(e,t,{VariableDeclarator(e,{state:t}){for(const o of function(e,t){if("Identifier"===e.id.type&&"Identifier"===e.init?.type&&Ye(e.init,t.actionFunctions,t))return Xe(e,t,[e.id.name]);if("Identifier"===e.id.type&&"MemberExpression"===e.init?.type&&He(e.init,t))return Xe(e,t,[e.id.name]);if("ObjectPattern"!==e.id.type||"Identifier"!==e.init?.type||!Ye(e.init,t.actionNamespaces,t))return[];const n=e.id.properties.flatMap((e=>"RestElement"===e.type||e.computed?[]:Ze(e.value))).map((e=>e.name));return Xe(e,t,n)}(e,t))n.add(o)},AssignmentExpression(e,{state:t}){for(const o of function(e,t){if("Identifier"===e.left.type&&"Identifier"===e.right.type&&Ye(e.right,t.actionFunctions,t))return Qe([e.left],t);if("Identifier"===e.left.type&&"MemberExpression"===e.right.type&&He(e.right,t))return Qe([e.left],t);if("ObjectPattern"!==e.left.type||"Identifier"!==e.right.type||!Ye(e.right,t.actionNamespaces,t))return[];const n=e.left.properties.flatMap((e=>"RestElement"===e.type||e.computed?[]:Ze(e.value)));return Qe(n,t)}(e,t))n.add(o)}}),n}function He(e,t){const n=Je(e);return!!n&&Ye(n,t.actionNamespaces,t)}function Je(e){return"Identifier"===e.object.type?e.object:"MemberExpression"===e.object.type?Je(e.object):void 0}function Ge(e){return!(!e.optional&&!e.computed)||"MemberExpression"===e.object.type&&Ge(e.object)}function Ye(e,t,n){return function(e,t,n){const o=ze(e,n);return!!o&&t.has(o)}(e,t,n.moduleScope)}function Qe(e,t){return e.flatMap((e=>{const n=ze(e,t.moduleScope);return n?[n]:[]}))}function Xe(e,t,n){const o=new Set(n);return t.moduleScope.scopeManager.getDeclaredVariables(e).filter((e=>o.has(e.name)))}function Ze(e){switch(e.type){case"Identifier":return[e];case"ObjectPattern":return e.properties.flatMap((e=>"RestElement"===e.type?Ze(e.argument):Ze(e.value)));case"ArrayPattern":return e.elements.flatMap((e=>e?Ze(e):[]));case"RestElement":return Ze(e.argument);case"AssignmentPattern":return Ze(e.left);case"MemberExpression":return[]}}function et(e,t){return new Error(`Unsupported action-catalog call in ${e}: ${t} could hide a connectionId.`)}const tt="@datadog/action-catalog";function nt(e,t,n){const o=e.get(t);if(!o)return ct(t,[],n.name);const r=ze(n,o.scopeAnalysis);return r?function(e,t){return t.defs.some((t=>t.name===e))}(n,r)?dt(t,[],n.name):it({modules:e,visitedExports:new Set},t,r,[]):dt(t,[],n.name)}function ot(e,t,n,o){const r=e.modules.get(t);if(!r)return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-module-record",requestKind:"export",exportName:n,message:`Module '${e}' was not collected while resolving export '${n}'.`,hops:t}}(t,o,n);if("default"===n)return at(t,o,n);const i=`${t}\0${n}`;if(e.visitedExports.has(i))return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"cycle",exportName:n,message:`Resolving export '${n}' from module '${e}' would cycle through the module graph.`,hops:t}}(t,o,n);e.visitedExports.add(i);try{const t=r.exportsByName.get(n);return t?function(e,t,n,o,r){if("unsupported"===o.kind)return function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"unsupported-export",exportName:n,exportReason:o,message:`Export '${n}' from module '${e}' is unsupported: ${o}.`,hops:t}}(t.id,r,n,o.reason);if("re-export"===o.kind)return"default"===o.importedName?at(t.id,r,n):ot(e,o.resolvedId,o.importedName,[...r,{kind:"re-export",moduleId:t.id,exportName:n,sourceModuleId:o.resolvedId,sourceExportName:o.importedName}]);return it(e,t.id,o.variable,[...r,{kind:"local-export",moduleId:t.id,exportName:n,localName:o.variable.name}])}(e,r,n,t,o):function(e,t,n,o){let r;for(const i of t.starExports){const s=ot(e,i.resolvedId,n,[...o,{kind:"star-export",moduleId:t.id,exportName:n,sourceModuleId:i.resolvedId}]);if("unsupported"===s.kind){if("missing-export"===s.reason)continue;return s}if(!r||!rt(r,s)){if(r)return st(t.id,o,n);r=s}}return r??function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-export",exportName:n,message:`Module '${e}' does not expose export '${n}'.`,hops:t}}(t.id,o,n)}(e,r,n,o)}finally{e.visitedExports.delete(i)}}function rt(e,t){return e.moduleId===t.moduleId&&e.variable===t.variable}function it(e,t,n,o){const r=e.modules.get(t);if(!r)return ct(t,o,n.name);const i=r.importsByVariable.get(n);if(i)return function(e,t,n,o,r){if("default"===o.kind)return ut(t,r,n);if("namespace"===o.kind)return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"namespace-import",variableName:n,message:`Variable '${n}' in module '${e}' is an unsupported namespace import.`,hops:t}}(t,r,n);if("default"===o.importedName)return ut(t,r,n);return ot(e,o.resolvedId,o.importedName,[...r,{kind:"import",moduleId:t,localName:n,exportName:o.importedName,sourceModuleId:o.resolvedId}])}(e,r.id,n.name,i,o);const s=r.topLevelBindingsByVariable.get(n);return s?"const"===s.kind?{kind:"local",moduleId:r.id,variable:n,binding:s,hops:o}:"mutable"===s.kind?function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"mutable-binding",variableName:n,declarationKind:o,message:`Variable '${n}' in module '${e}' is declared with mutable '${o}'.`,hops:t}}(r.id,o,n.name,s.declarationKind):function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"unsupported-binding",variableName:n,bindingReason:o,message:`Variable '${n}' in module '${e}' has unsupported binding: ${o}.`,hops:t}}(r.id,o,n.name,s.reason):function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-static-binding",variableName:n,message:`Variable '${n}' in module '${e}' does not have a recorded top-level static binding.`,hops:t}}(r.id,o,n.name)}function st(e,t,n){return{kind:"unsupported",moduleId:e,reason:"ambiguous-star-export",exportName:n,message:`Module '${e}' exposes ambiguous star exports for '${n}'.`,hops:t}}function at(e,t,n){return{kind:"unsupported",moduleId:e,reason:"default-export",exportName:n,message:`Export '${n}' from module '${e}' resolves through an unsupported default export.`,hops:t}}function ut(e,t,n){return{kind:"unsupported",moduleId:e,reason:"default-import",variableName:n,message:`Variable '${n}' in module '${e}' is an unsupported default import.`,hops:t}}function ct(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-module-record",requestKind:"variable",variableName:n,message:`Module '${e}' was not collected while resolving variable '${n}'.`,hops:t}}function dt(e,t,n){return{kind:"unsupported",moduleId:e,reason:"unresolved-identifier",variableName:n,message:`Identifier '${n}' in module '${e}' is not a resolvable reference.`,hops:t}}function lt(e,t,n){const o=kt(n);switch(o.type){case"Literal":return function(e,t){if("string"==typeof t.value)return{kind:"resolved",moduleId:e,value:t.value};return function(e,t){return{kind:"unsupported",moduleId:e,reason:"non-string-literal",valueType:t,message:`Literal value type '${t}' in module '${e}' is not a string.`}}(e,typeof t.value)}(t,o);case"TemplateLiteral":return function(e,t){if(t.expressions.length>0)return function(e){return{kind:"unsupported",moduleId:e,reason:"dynamic-template-literal",message:`Dynamic template literals in module '${e}' cannot be resolved to static strings.`}}(e);return{kind:"resolved",moduleId:e,value:t.quasis.map((e=>e.value.cooked??e.value.raw)).join("")}}(t,o);case"Identifier":return function(e,t,n){const o=nt(e.modules,t,n);if("unsupported"===o.kind)return Mt(o,n.name);if(!o.binding.expression)return Ct(o.moduleId,o.variable.name);if(e.seenVariables.has(o.variable))return It(o.moduleId,o.variable.name);e.seenVariables.add(o.variable);try{return lt(e,o.moduleId,o.binding.expression)}finally{e.seenVariables.delete(o.variable)}}(e,t,o);case"MemberExpression":return function(e,t,n){const o=pt(e,t,n);if("unsupported"===o.kind)return o;return lt(e,o.moduleId,o.expression)}(e,t,o);default:return function(e,t){return{kind:"unsupported",moduleId:e,reason:"unsupported-expression",expressionType:t,message:`Expression type '${t}' in module '${e}' cannot be resolved to a static string.`}}(t,o.type)}}function pt(e,t,n){if(n.optional)return function(e){return{kind:"unsupported",moduleId:e,reason:"optional-member-expression",message:`Optional member expressions in module '${e}' cannot be resolved to static strings.`}}(t);if(n.computed)return function(e){return{kind:"unsupported",moduleId:e,reason:"computed-member-expression",message:`Computed member expressions in module '${e}' cannot be resolved to static strings.`}}(t);if("Identifier"!==n.property.type)return function(e,t){return{kind:"unsupported",moduleId:e,reason:"non-static-member-property",propertyType:t,message:`Member property type '${t}' in module '${e}' is not statically named.`}}(t,n.property.type);const o=ft(e,t,n.object);return"unsupported"===o.kind?o:function(e,t,n){let o;for(const r of t.properties){if("SpreadElement"===r.type)return Pt(e);if(r.computed)return St(e);if($t(r)===n){if(o)return jt(e,n);if("init"!==r.kind)return Et(e,n);if(!mt(r))return Dt(e,n,r.value.type);o=r}}if(!o)return function(e,t){return{kind:"unsupported",moduleId:e,reason:"missing-object-property",propertyName:t,message:`Static object in module '${e}' does not have property '${t}'.`}}(e,n);return{kind:"resolved",moduleId:e,expression:o.value}}(o.moduleId,o.expression,n.property.name)}function ft(e,t,n){if("Super"===n.type)return At(t,n.type);const o=kt(n);if("ObjectExpression"===o.type)return{kind:"resolved",moduleId:t,expression:o};if("MemberExpression"===o.type){const n=pt(e,t,o);return"unsupported"===n.kind?n:ft(e,n.moduleId,n.expression)}if("Identifier"!==o.type)return At(t,o.type);const r=nt(e.modules,t,o);if("unsupported"===r.kind)return Mt(r,o.name);if(!r.binding.expression)return Ct(r.moduleId,r.variable.name);if(e.mutatedImportedObjectVariables.has(r.variable))return function(e,t){return{kind:"unsupported",moduleId:e,reason:"imported-object-mutation",variableName:t,message:`Imported object '${t}' from module '${e}' is mutated in the module graph.`}}(r.moduleId,r.variable.name);if(e.seenVariables.has(r.variable))return It(r.moduleId,r.variable.name);e.seenVariables.add(r.variable);try{return ft(e,r.moduleId,r.binding.expression)}finally{e.seenVariables.delete(r.variable)}}function mt(e){const{value:t}=e;return"ObjectPattern"!==t.type&&"ArrayPattern"!==t.type&&"RestElement"!==t.type&&"AssignmentPattern"!==t.type}function gt(e){const t=new Set;for(const n of e.values())Fe(n.ast,{modules:e,mutatedVariables:t,record:n},{AssignmentExpression(e,{state:t}){yt(e.left,t)},UpdateExpression(e,{state:t}){yt(e.argument,t)},UnaryExpression(e,{state:t}){"delete"===e.operator&&yt(e.argument,t)},ForInStatement(e,{state:t}){ht(e.left,t)},ForOfStatement(e,{state:t}){ht(e.left,t)}});return t}function ht(e,t){"VariableDeclaration"!==e.type&&yt(e,t)}function yt(e,t){if("Identifier"!==e.type)if("MemberExpression"!==e.type)if("ObjectPattern"!==e.type)if("ArrayPattern"!==e.type)"RestElement"!==e.type?"AssignmentPattern"===e.type&&yt(e.left,t):yt(e.argument,t);else for(const n of e.elements)n&&yt(n,t);else for(const n of e.properties)yt("RestElement"===n.type?n.argument:n.value,t);else{const n=vt(e);n&&bt(n,t)}else bt(e,t)}function bt(e,t){const n=wt(t,e,new Set);n&&t.mutatedVariables.add(n)}function wt(e,t,n){const o=ze(t,e.record.scopeAnalysis);if(!o||n.has(o))return;if(n.add(o),Be(o)){const n=nt(e.modules,e.record.id,t);return"local"===n.kind?n.variable:void 0}const r=function(e){for(const t of e.defs){const e=t.node;if("VariableDeclarator"===e.type&&e.init)return e.init}return}(o);if(!r)return;const i=function(e){const t=kt(e);if("Identifier"===t.type)return t;if("MemberExpression"===t.type)return vt(t);return}(r);return i?wt(e,i,n):void 0}function vt(e){return"Identifier"===e.type?e:"MemberExpression"===e.type?vt(e.object):void 0}function $t(e){return"Identifier"===e.key.type?e.key.name:"Literal"===e.key.type&&"string"==typeof e.key.value?e.key.value:void 0}function kt(e){let t=e;for(;xt(t);)t=t.expression;return t}function xt(e){const t=e.type;return("TSAsExpression"===t||"TSSatisfiesExpression"===t||"TSNonNullExpression"===t||"TSTypeAssertion"===t)&&!!e.expression}function Et(e,t){return{kind:"unsupported",moduleId:e,reason:"accessor-object-property",propertyName:t,message:`Static object property '${t}' in module '${e}' is an accessor.`}}function St(e){return{kind:"unsupported",moduleId:e,reason:"computed-object-property",message:`Computed object properties in module '${e}' cannot be resolved to static strings.`}}function It(e,t){return{kind:"unsupported",moduleId:e,reason:"cycle",variableName:t,message:`Resolving variable '${t}' in module '${e}' would cycle through static string values.`}}function jt(e,t){return{kind:"unsupported",moduleId:e,reason:"duplicate-object-property",propertyName:t,message:`Static object in module '${e}' has duplicate property '${t}'.`}}function At(e,t){return{kind:"unsupported",moduleId:e,reason:"non-object-member-value",expressionType:t,message:`Expression type '${t}' in module '${e}' is not a static object value.`}}function Dt(e,t,n){return{kind:"unsupported",moduleId:e,reason:"unsupported-object-property-value",propertyName:t,valueType:n,message:`Static object property '${t}' in module '${e}' has unsupported value type '${n}'.`}}function Pt(e){return{kind:"unsupported",moduleId:e,reason:"object-spread",message:`Object spreads in module '${e}' cannot be resolved to static strings.`}}function Mt(e,t){return{kind:"unsupported",moduleId:e.moduleId,reason:"static-definition-unsupported",variableName:t,definition:e,message:`Variable '${t}' could not be resolved to a static definition: ${e.message}`}}function Ct(e,t){return{kind:"unsupported",moduleId:e,reason:"uninitialized-const",variableName:t,message:`Const variable '${t}' in module '${e}' does not have an initializer.`}}const Ot=new Set(["node_modules",".yarn"]);function Nt(e,t,n,o=[]){if(!Zt(e,t))return null;const r=je(n,e),i=qe(r),s=function(e,t){const n=Tt(e);return t.map(((e,t)=>({source:n[t]??e,resolvedId:e})))}(r,o);return{id:e,ast:r,scopeAnalysis:i,staticDependencies:s,unsupportedDependencies:Qt(r),importsByVariable:Rt(r,i,s),exportsByName:_t(r,i,s),starExports:qt(r,s),topLevelBindingsByVariable:zt(r,i)}}function Tt(e){return e.body.flatMap((e=>("ImportDeclaration"===e.type||"ExportNamedDeclaration"===e.type||"ExportAllDeclaration"===e.type)&&e.source&&De(e.source)?[e.source.value]:[]))}function Rt(e,t,n){const o=new Map;for(const r of e.body){if("ImportDeclaration"!==r.type||!De(r.source))continue;const e=Yt(n,r.source.value);for(const n of r.specifiers){const[r]=t.scopeManager.getDeclaredVariables(n);r&&("ImportSpecifier"!==n.type?o.set(r,{kind:"ImportDefaultSpecifier"===n.type?"default":"namespace",resolvedId:e}):o.set(r,{kind:"named",importedName:Jt(n.imported),resolvedId:e}))}}return o}function _t(e,t,n){const o=new Map;for(const r of e.body)"ExportNamedDeclaration"!==r.type?"ExportDefaultDeclaration"!==r.type?"ExportAllDeclaration"===r.type&&Lt(r,n,o):o.set("default",{kind:"unsupported",reason:"default export"}):Ft(r,t,n,o);return o}function Ft(e,t,n,o){if(e.declaration)!function(e,t,n){if(!e)return;if("VariableDeclaration"===e.type){for(const o of e.declarations){const e=t.scopeManager.getDeclaredVariables(o);if("Identifier"!==o.id.type){for(const t of e)n.set(t.name,{kind:"unsupported",reason:"binding pattern export"});continue}const[r]=e;r&&n.set(o.id.name,{kind:"local",variable:r})}return}if(("FunctionDeclaration"===e.type||"ClassDeclaration"===e.type)&&e.id){const[o]=t.scopeManager.getDeclaredVariables(e);o&&n.set(e.id.name,{kind:"local",variable:o})}}(e.declaration,t,o);else if(e.source&&De(e.source)){const t=Yt(n,e.source.value);for(const n of e.specifiers){if("ExportSpecifier"!==n.type)continue;const e=Jt(n.exported);"default"!==e?o.set(e,{kind:"re-export",importedName:Jt(n.local),resolvedId:t}):o.set(e,{kind:"unsupported",reason:"default re-export",resolvedId:t})}}else for(const n of e.specifiers){if("ExportSpecifier"!==n.type)continue;const e=Jt(n.exported);if("default"===e){o.set(e,{kind:"unsupported",reason:"default export"});continue}const r=Ve(Jt(n.local),t);o.set(e,r?{kind:"local",variable:r}:{kind:"unsupported",reason:"unresolved local export"})}}function Lt(e,t,n){const o=Gt(e);o&&De(e.source)&&n.set(o,{kind:"unsupported",reason:"namespace re-export",resolvedId:Yt(t,e.source.value)})}function qt(e,t){return e.body.flatMap((e=>"ExportAllDeclaration"!==e.type||Gt(e)||!De(e.source)?[]:[{resolvedId:Yt(t,e.source.value)}]))}function zt(e,t){const n=new Map;for(const o of e.body)Bt(o,t,n);return function(e,t,n){Fe(e,{scopeAnalysis:t,bindings:n},{AssignmentExpression(e,{state:t}){Wt(e.left,t.scopeAnalysis,t.bindings)},UpdateExpression(e,{state:t}){Wt(e.argument,t.scopeAnalysis,t.bindings)},UnaryExpression(e,{state:t}){"delete"===e.operator&&Wt(e.argument,t.scopeAnalysis,t.bindings)},ForInStatement(e,{state:t}){Ut(e.left,t.scopeAnalysis,t.bindings)},ForOfStatement(e,{state:t}){Ut(e.left,t.scopeAnalysis,t.bindings)}})}(e,t,n),n}function Bt(e,t,n){if("VariableDeclaration"===e.type)return void Vt(e,t,n);if("ExportNamedDeclaration"===e.type&&"VariableDeclaration"===e.declaration?.type)return void Vt(e.declaration,t,n);const o="ExportNamedDeclaration"===e.type||"ExportDefaultDeclaration"===e.type?e.declaration:e;if(o&&("FunctionDeclaration"===o.type||"ClassDeclaration"===o.type)&&o.id){const[e]=t.scopeManager.getDeclaredVariables(o);e&&n.set(e,{kind:"unsupported",reason:`${o.type} binding`})}}function Vt(e,t,n){for(const o of e.declarations){const r=t.scopeManager.getDeclaredVariables(o);if("Identifier"!==o.id.type){for(const e of r)n.set(e,{kind:"unsupported",reason:"binding pattern"});continue}const[i]=r;i&&("const"===e.kind?n.set(i,{kind:"const",expression:o.init??null}):n.set(i,{kind:"mutable",declarationKind:e.kind}))}}function Ut(e,t,n){"VariableDeclaration"!==e.type&&Wt(e,t,n)}function Wt(e,t,n){if("Identifier"!==e.type)if("MemberExpression"!==e.type)if("ObjectPattern"!==e.type)if("ArrayPattern"!==e.type)"RestElement"!==e.type?"AssignmentPattern"===e.type&&Wt(e.left,t,n):Wt(e.argument,t,n);else for(const o of e.elements)o&&Wt(o,t,n);else for(const o of e.properties)Wt("RestElement"===o.type?o.argument:o.value,t,n);else{const o=Ht(e);o&&Kt(o,t,n,"mutated object binding")}else Kt(e,t,n,"reassigned binding")}function Kt(e,t,n,o){const r=ze(e,t);if(!r||Be(r)||!n.has(r))return;const i=n.get(r);"mutable"!==i?.kind&&n.set(r,{kind:"unsupported",reason:o})}function Ht(e){return"Identifier"===e.type?e:"MemberExpression"===e.type?Ht(e.object):void 0}function Jt(e){return"Identifier"===e.type?e.name:String(e.value)}function Gt(e){const t=e.exported;return t?Jt(t):void 0}function Yt(e,t){return e.find((e=>e.source===t))?.resolvedId??t}function Qt(e){const t=[];return Fe(e,t,{ImportExpression(e,{state:t}){const n=function(e){return tn(e.source,"non-literal dynamic import")}(e);Xt(n)&&t.push({specifier:n,kind:"dynamic-import"})},CallExpression(e,{state:t}){if(function(e){return"Import"===e.callee.type}(e)){const n=function(e){return tn(e.arguments[0],"non-literal dynamic import")}(e);Xt(n)&&t.push({specifier:n,kind:"dynamic-import"})}else(function(e){if("Identifier"!==e.callee.type||"require"!==e.callee.name)return!1;const[t]=e.arguments;return!t||!De(t)||nn(t.value)})(e)&&t.push({specifier:en(e),kind:"require"})}}),t}function Xt(e){return"non-literal dynamic import"===e||nn(e)}function Zt(e,t){if(!ge.some((t=>e.endsWith(t))))return!1;const n=a.relative(a.resolve(t),e);return!n.startsWith("..")&&!a.isAbsolute(n)&&!n.split(a.sep).some((e=>Ot.has(e)))}function en(e){return tn(e.arguments[0],"local require")}function tn(e,t){return De(e)?e.value:t}function nn(e){return e.startsWith(".")||e.startsWith("/")}function on(e,t){return new Error(`Unsupported local module graph for ${e}: ${t} could hide an action-catalog connectionId.`)}function rn(e,t,n){const o=new Set;return function(e,t,n,o){const r=[e],i=new Set;for(;r.length>0;){const s=r.shift();if(i.has(s))continue;i.add(s);const a=t.get(s);if(!a)throw on(e,`missing module record for ${s}`);o({entryId:e,moduleId:s,record:a});for(const t of a.unsupportedDependencies)throw on(e,`${t.kind} ${t.specifier}`);for(const o of a.staticDependencies){const i=o.resolvedId;if(Zt(i,n)){if(!t.has(i))throw on(e,`uncollected local import ${i} from ${a.id}`);r.push(i)}}}}(e,t,n,(({record:e})=>{const n=function(e){const t=new Set,n=new Set;for(const r of e.body)if("ImportDeclaration"===r.type&&"string"==typeof(o=r.source.value)&&(o===tt||o.startsWith(`${tt}/`))&&!Pe(r))for(const e of r.specifiers)Pe(e)||("ImportNamespaceSpecifier"===e.type?n.add(e.local.name):t.add(e.local.name));var o;return{functions:t,namespaces:n}}(e.ast),r=function(e,t){const n=new Set,o=new Set;for(const r of e.scopeManager.scopes)for(const e of r.variables)Be(e)&&(t.functions.has(e.name)&&n.add(e),t.namespaces.has(e.name)&&o.add(e));return{moduleScope:e,actionFunctions:n,actionNamespaces:o}}(e.scopeAnalysis,n);for(const n of We(e.ast,r,e.id)){const r=sn(n,t,e);void 0!==r&&o.add(r)}})),[...o].sort()}function sn(e,t,n){const[o]=e.arguments;if(!o||"ObjectExpression"!==o.type)throw cn(n.id,"non-object action-catalog call arguments");const r=function(e,t){let n;for(const o of e.properties){if("SpreadElement"===o.type)throw cn(t,"spread object arguments");if(o.computed)throw cn(t,"computed object property keys");if(un(o)){if(n)throw cn(t,"multiple connectionId properties");if("init"!==o.kind)throw cn(t,"accessor connectionId properties");if(!an(o))throw cn(t,"destructuring pattern in connectionId value");n=o}}return n}(o,n.id);if(!r)return;const i=function(e,t,n){return lt({modules:e,mutatedImportedObjectVariables:gt(e),seenVariables:new Set},t,n)}(t,n.id,r.value);if("resolved"===i.kind)return i.value;throw s=n.id,a=`static string resolution ${function(e){return"static-definition-unsupported"===e.reason?`${e.reason}/${e.definition.reason}`:e.reason}(i)}: ${i.message}`,new Error(`Unsupported action-catalog connectionId in ${s}: ${a}.`);var s,a}function an(e){const{value:t}=e;return"ObjectPattern"!==t.type&&"ArrayPattern"!==t.type&&"RestElement"!==t.type&&"AssignmentPattern"!==t.type}function un(e){return"connectionId"===function(e){if("Identifier"===e.key.type)return e.key.name;if("Literal"===e.key.type&&"string"==typeof e.key.value)return e.key.value;return}(e)}function cn(e,t){return new Error(`Unsupported action-catalog call in ${e}: ${t} could hide a connectionId.`)}const dn=new Set(d.builtinModules);function ln(e){return 0===e.length||e.some((e=>!Pe(e)))}function pn(e,t){const n=Ce(e);if(void 0!==n&&function(e){return e.startsWith("node:")||dn.has(e)}(n))throw new Error(`Importing Node built-in module "${n}" is not supported in backend function code. Backend functions run in a restricted environment: for networking, filesystem, or process access, use an Action Platform action ($.Actions or an @datadog/action-catalog typed wrapper) instead; for pure utility modules (e.g. path, url, util), use a runtime-independent package instead: ${t}`)}function fn(e){return"globalThis"===e||"global"===e}let mn=new Set;function gn(e,t,n=new Set){if("MemberExpression"===e.type){const o=hn(e,t);return!(!o||!fn(o))&&gn(e.object,t,n)}if("Identifier"!==e.type)return!1;const o=ze(e,t);if(!o)return fn(e.name);if(mn.has(o))return!0;if(n.has(o)||1!==o.defs.length)return!1;n.add(o);const[r]=o.defs;if("Variable"!==r.type||"const"!==r.parent.kind)return!1;if(!Me(r.node))return!1;const{id:i,init:s}=r.node;if(!s)return!1;if("Identifier"===i.type)return gn(s,t,n);if("ObjectPattern"===i.type){const e=n=>n.properties.some((n=>{if("Property"!==n.type)return!1;if(!fn(bn(n,t)??""))return!1;const o=yn(n.value);return o===r.name||"ObjectPattern"===o.type&&e(o)}));if(e(i))return gn(s,t,n)}return!1}function hn(e,t){return e.computed?wn(e.property,t):"Identifier"===e.property.type?e.property.name:void 0}function yn(e){return"AssignmentPattern"===e.type?e.left:e}function bn(e,t){return e.computed||"Identifier"!==e.key.type?wn(e.key,t):e.key.name}function wn(e,t,n=new Set){const o=Ce(e);if(void 0!==o)return o;if("Identifier"!==e.type)return;const r=ze(e,t);if(!r||n.has(r)||1!==r.defs.length)return;n.add(r);const[i]=r.defs;if("Variable"!==i.type||"const"!==i.parent.kind)return;if(!Me(i.node))return;const{id:s,init:a}=i.node;return"Identifier"===s.type&&a?wn(a,t,n):void 0}const vn=[{object:"Object",property:"assign"},{object:"Object",property:"values"},{object:"Object",property:"entries"},{object:"Object",property:"getOwnPropertyDescriptors"}];function $n(e,t,n,o){mn=new Set;for(const[e,r]of t.referencesByIdentifier)n.has(e.name)&&!r.resolved&&o.onNamedAccess(e.name);const r=e=>{for(const i of e.properties){if("RestElement"===i.type){o.onBulkCopy();continue}const e=bn(i,t);e&&n.has(e)&&o.onNamedAccess(e);const s=yn(i.value);e&&fn(e)&&"ObjectPattern"===s.type&&r(s)}},i=(e,n)=>{n&&gn(n,t)&&r(e)};Fe(e,null,{MemberExpression(e){if(!gn(e.object,t))return;const r=hn(e,t);r&&n.has(r)&&o.onNamedAccess(r)},VariableDeclarator(e){"ObjectPattern"===e.id.type&&i(e.id,e.init)},AssignmentExpression(e){"ObjectPattern"===e.left.type&&i(e.left,e.right)},AssignmentPattern(e){"ObjectPattern"===e.left.type&&i(e.left,e.right)},ForOfStatement(e){if("ArrayExpression"!==e.right.type)return;let n,o;if("VariableDeclaration"===e.left.type){if(1!==e.left.declarations.length)return;const[r]=e.left.declarations;if("ObjectPattern"===r.id.type)n=r.id;else{if("Identifier"!==r.id.type||"const"!==e.left.kind)return;o=function(e,t){return t.scopeManager.getDeclaredVariables(e)[0]}(r,t)}}else{if("ObjectPattern"!==e.left.type)return;n=e.left}e.right.elements.some((e=>null!==e&&"SpreadElement"!==e.type&&gn(e,t)))&&(n?r(n):o&&mn.add(o))},ObjectExpression(e){for(const n of e.properties)"SpreadElement"===n.type&&gn(n.argument,t)&&o.onBulkCopy()},CallExpression(e){const n=function(e,t){if("MemberExpression"!==e.type||"Identifier"!==e.object.type)return;const n=hn(e,t);if(!n)return;const o=e.object.name;return vn.find((e=>e.object===o&&e.property===n))}(e.callee,t);if(!n)return;("assign"===n.property?e.arguments.slice(1):e.arguments).some((e=>"SpreadElement"!==e.type&&gn(e,t)))&&o.onBulkCopy()}})}const kn=new Set(["fetch","XMLHttpRequest","WebSocket","EventSource"]);function xn(e,t,n){const o=je(e,t);$n(o,n??qe(o),kn,{onNamedAccess(e){!function(e,t){throw new Error(`Using "${e}" is not supported in backend function code. Backend functions cannot make raw network requests in production — use an Action Platform action ($.Actions or an @datadog/action-catalog typed wrapper) instead: ${t}`)}(e,t)},onBulkCopy(){throw new Error(`Copying every property of "globalThis"/"global" at once (a rest destructure, an object spread, or a call like Object.assign/Object.values) is not supported in backend function code — it copies every ambient global, including network-capable ones (${Array.from(kn).join(", ")}), into a plain object: ${t}`)}})}const En=new Set(["crypto","Intl"]),Sn=new Map;function In(e,t,n,o){!function(e,t){const n=je(e,t);for(const e of n.body)"ImportDeclaration"!==e.type||Pe(e)||!ln(e.specifiers)?"ExportNamedDeclaration"===e.type&&e.source&&!Pe(e)&&ln(e.specifiers)?pn(e.source,t):"ExportAllDeclaration"!==e.type||Pe(e)||pn(e.source,t):pn(e.source,t);Fe(n,null,{ImportExpression(e){pn(e.source,t)}})}(e,t),xn(e,t,o),function(e,t,n,o){const r=je(e,t),i=o??qe(r);let s=Sn.get(t);s||(Sn.size>=500&&Sn.clear(),s=new Set,Sn.set(t,s));const a=e=>{s.has(e)||(s.add(e),function(e,t,n){n.warn(`"${e}" is used in ${t}. Its exact behavior can differ between local execution (Node) and production (Deno) — verify locale-/implementation-sensitive results with "npm run dev:verify" before publishing.`)}(e,t,n))};$n(r,i,En,{onNamedAccess:a,onBulkCopy(){for(const e of En)a(e)}})}(e,t,n,o)}function jn(e){const t=e.relativePath.split(a.sep).join("/");return`${l.createHash("sha256").update(t).digest("hex")}.${e.name}`}function An(e){const t=[];for(const{exportName:n,queryName:o}of e)t.push(`export async function ${n}(...args) {`),t.push(` return globalThis.DD_APPS_RUNTIME.executeBackendFunction(${JSON.stringify(o)}, args);`),t.push("}"),t.push("");return t.join("\n")}function Dn(e,t){try{return require.resolve(e,{paths:[t]}),!0}catch{return!1}}function Pn(e){return Dn("@datadog/action-catalog/action-execution",e)}function Mn(e){return Dn("@datadog/apps-backend/runtime/jsFunctionWithActions",e)}function Cn(e,t,n){const o=[],r=Mn(n);return o.push(`import { ${e} } from ${JSON.stringify(t)};`),r&&o.push("import { buildRuntimeFromJsFunctionWithActions } from '@datadog/apps-backend/runtime/jsFunctionWithActions';\nimport { setBackend } from '@datadog/apps-backend/runtime';"),Pn(n)&&o.push("import { setExecuteActionImplementation } from '@datadog/action-catalog/action-execution';"),o.push(""),o.push('/** @param {import("./context.types").Context} $ */'),o.push("export async function main($) {"),o.push(" globalThis.$ = $;"),o.push(""),r&&(o.push(" // Supply the backend runtime context"),o.push(" if (typeof buildRuntimeFromJsFunctionWithActions === 'function' && typeof setBackend === 'function') {\n setBackend(buildRuntimeFromJsFunctionWithActions($));\n }"),o.push("")),o.push(" // Register the $.Actions-based implementation for executeAction"),o.push(" if (typeof setExecuteActionImplementation === 'function') {\n setExecuteActionImplementation(async (actionId, request) => {\n const actionPath = actionId.replace(/^com\\.datadoghq\\./, '');\n const pathParts = actionPath.split('.');\n let actionFn = $.Actions;\n for (const part of pathParts) {\n if (!actionFn) throw new Error('Action not found: ' + actionId);\n actionFn = actionFn[part];\n }\n if (typeof actionFn !== 'function') throw new Error('Action is not a function: ' + actionId);\n return actionFn(request);\n });\n }"),o.push(""),o.push(" const args = $.backendFunctionArgs ?? [];"),o.push(` const result = await ${e}(...args);`),o.push(" return result;"),o.push("}"),o.join("\n")}const On=/^(?:\0|virtual:)/;function Nn(e){return e.split("?")[0]}function Tn(e){return On.test(e)}function Rn(e,t){const n=function(e){const t=new Map;return{plugin:{name:"dd-backend-module-graph-collector",moduleParsed(n){const o=Nn(n.id);if(Tn(o))return;if(!Zt(o,e))return;if("string"!=typeof n.code)return;let r;try{r=this.parse(n.code)}catch(e){throw on(o,`unparseable module source (${e instanceof Error?e.message:String(e)})`)}const i=Nt(o,e,r,function(e){return e.importedIdResolutions?.map((({id:e})=>e))??[...e.importedIds]}(n).map(Nn));i&&t.set(i.id,i)}},getModuleRecords:()=>t}}(t);return{plugin:n.plugin,getAllowedConnectionIds:()=>rn(e,n.getModuleRecords(),t),getModuleRecords:n.getModuleRecords}}function _n(e,t,n){return{name:"dd-backend-static-checks",moduleParsed(o){const r=Nn(o.id);if(Tn(r)||!Zt(r,e))return;const i=n().get(r);let s,a;if(i)s=i.ast,a=i.scopeAnalysis;else{if("string"!=typeof o.code)return;try{s=this.parse(o.code)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Error(`Unsupported module source for ${r}: ${`unparseable module source (${t})`} could hide a Node-builtin import or restricted-global access.`)}a=qe(je(s,r))}In(s,r,t,a)}}}function Fn(e,t){return{name:e,enforce:"pre",resolveId:e=>t[e]?{id:e,moduleSideEffects:!0}:null,load:e=>t[e]?t[e]:null}}function Ln(e,t,n=[]){return{configFile:!1,root:e,logLevel:"silent",build:{minify:!1,target:"esnext",ssr:!0,rollupOptions:{output:{format:"es",exports:"named",inlineDynamicImports:!0},preserveEntrySignatures:"exports-only",treeshake:!1,onwarn(e,t){"MODULE_LEVEL_DIRECTIVE"!==e.code&&t(e)}}},resolve:{extensions:[...ge,".json"]},ssr:{noExternal:!0},plugins:[Fn("dd-backend-resolve",t),...n]}}const qn=async(e,t)=>{const n=(await Promise.all(e.map((e=>m.glob(e,{absolute:!0,cwd:t,nodir:!0}))))).flat(),o=Array.from(new Set(n)).map((e=>a.relative(t,e))),r=(e=>{if(0===e.length)return"";const t=e[0].split(a.sep);let n="";for(let o=0;o<t.length-1;o++){const r=t.slice(0,o+1).join(a.sep);if(!e.every((e=>e.startsWith(`${r}${a.sep}`))))break;n=r}return n})(o);return o.map(((e,t)=>{const o=r?e.slice(r.length+1):e;return{absolutePath:n[t],relativePath:o.split(a.sep).join("/")}}))};async function zn(e){const t=await r.mkdtemp(a.join(p.tmpdir(),"dd-apps-manifest-")),n=a.join(t,"manifest.json");try{await r.writeFile(n,JSON.stringify(function(e){const t={};for(const n of e)t[jn(n)]={allowedConnectionIds:[...n.allowedConnectionIds]};return{backend:{functions:t}}}(e),null,2))}catch(e){throw await ye(t),e}return{manifestAsset:{absolutePath:n,relativePath:"manifest.json"},cleanup:()=>ye(t)}}async function Bn({backendOutputs:e,backendFunctions:t,context:n,options:o}){const s=n.getLogger(de),{buildRoot:u,bundler:{outDir:c}}=n,d=a.join(c,le),l=a.resolve(_("APPS_PACKAGE_DIR")||c),p=a.join(l,le);await Promise.all([r.rm(p,{force:!0}),r.rm(d,{force:!0})]);const m=a.relative(u,c),g=await qn([...o.include,`${m}/**/*`],u);if(0===g.length&&0===e.size)return void s.debug("No assets to package.");let h;await r.mkdir(l,{recursive:!0});try{const n=new Set([p,d]),o=new Set(e.values()),u=[...g.filter((e=>!n.has(a.resolve(e.absolutePath)))).filter((e=>!o.has(e.absolutePath))).map((e=>({...e,relativePath:`frontend/${e.relativePath}`})))];for(const[t,n]of e)u.push({absolutePath:n,relativePath:`backend/${t}.js`});const c=await zn(t);h=c.cleanup,u.push(c.manifestAsset);const l=await(async(e,t)=>{const n=new f;for(const t of e)n.file(t.relativePath,i.createReadStream(t.absolutePath),{binary:!0,compression:"DEFLATE",compressionOptions:{level:9}});await new Promise(((e,o)=>{const r=i.createWriteStream(t),s=n.generateNodeStream({type:"nodebuffer",streamFiles:!0,compression:"DEFLATE",compressionOptions:{level:9}});s.on("error",o),r.on("error",o),r.on("close",e),s.pipe(r)}));const{size:o}=await r.stat(t);return{archivePath:t,size:o,assets:e}})(u,p);return s.info(`App package written to ${l.archivePath}.`),l.archivePath}finally{await(h?.())}}function Vn(e){return e.endsWith(".tsx")?"tsx":e.endsWith(".ts")||e.endsWith(".mts")||e.endsWith(".cts")?"ts":e.endsWith(".jsx")?"jsx":"js"}function Un(e){return e.endsWith(fe)?e.slice(0,-14):e}function Wn(e){return Nn(Un(e))}function Kn(e,t){return t?Math.min(250*2**(e-1),2e3):250}const Hn=new y.AsyncLocalStorage,Jn=Reflect.has(globalThis,"$"),Gn=new y.AsyncLocalStorage,Yn=new y.AsyncLocalStorage;let Qn=Reflect.get(globalThis,"$");function Xn(){Object.getOwnPropertyDescriptor(globalThis,"$")?.get!==Zn&&Object.defineProperty(globalThis,"$",{configurable:!0,enumerable:!0,get:Zn,set:eo})}function Zn(){const e=Hn.getStore();if(e)return e.value;const t=Gn.getStore();return t?t.assigned?t.value:Jn?Qn:void 0:Qn}function eo(e){const t=Hn.getStore();if(t)return void(t.value=e);const n=Gn.getStore();if(n)return n.assigned=!0,void(n.value=e);Qn=e}Xn();const to=new y.AsyncLocalStorage;function no(e){return"object"==typeof e&&null!==e}const oo=he(void 0);function ro(e){const t=e.maxRetries*e.timeoutMs+function(e){let t=0;for(let n=1;n<e.maxRetries;n++)t+=Kn(n,e.exponentialBackoff);return t}(e);return{actionCallTimeoutMs:2*t,totalExecutionTimeoutMs:1.2*t}}function io(e,t){return Yn.run(new Set,(()=>Gn.run({assigned:!1,value:void 0},(()=>e(t)))))}function so(e,t,n){const{inputs:o,connectionId:r}=e;if("object"!=typeof o||!o)throw new Error(`Action ${n} must have an inputs field`);return function(e,t,n){if(void 0!==e&&!t.includes(e))throw new Error(`Action ${n} used connection "${e}", which is not in this function's allowed connections: [${t.join(", ")}]`)}(r,t,n),{inputs:o,connectionId:r}}let ao=Promise.resolve();function uo(e,t){return new Error(`Execution of "${e}" already concluded; refusing to ${t} as this stale execution to avoid using a newer execution's identity.`)}const co=function(){let e=0,t=null;return{start(){const n=++e;return t=n,{isCurrent:()=>t===n,concludeIfCurrent:()=>t===n&&(t=null,!0)}}}}();function lo(e,t,n=[]){return new Proxy((function(){}),{get(o,r){if("then"===r||"toJSON"===r)return;const i=n.concat(String(r));return lo(e,t,i)},async apply(o,r,i){if(0===i.length)throw new Error(`No arguments provided to action $.Actions.${n.join(".")}`);const s=no(i[0])?i[0]:{},{inputs:a,connectionId:u}=so(s,t,`$.Actions.${n.join(".")}`),c=`com.datadoghq.${n.join(".")}`;return e(c,a,u)}})}function po(e,t,n){return new Promise(((o,r)=>{const i=setTimeout((()=>{r(new Error(`${n} timed out after ${t}ms`))}),t);e.then((e=>{clearTimeout(i),o(e)}),(e=>{clearTimeout(i),r(e)}))}))}function fo(e,t,n,o,r,i){if(!e(r))return Promise.resolve();const s=t.get(o);if(s)return s;const a=n(o,i).catch((e=>{throw t.delete(o),e}));return t.set(o,a),a}const mo=new WeakMap;async function go(e,t){const n=e("@datadog/action-catalog/action-execution"),o=(await po(n,t,"Loading @datadog/action-catalog/action-execution")).setExecuteActionImplementation;"function"==typeof o&&o((async(e,t)=>{const n=to.getStore();if(!n)throw new Error(`No active local execution to run "${e}" under.`);if(n.isAbandoned())throw uo(n.functionName,`run "${e}"`);const o=no(t)?t:{},{inputs:r,connectionId:i}=so(o,n.allowedConnectionIds,`"${e}"`);return n.executeAction(e,r,i)}))}const ho=new WeakMap;async function yo(e,t){const n=Promise.all([e("@datadog/apps-backend/runtime/jsFunctionWithActions"),e("@datadog/apps-backend/runtime")]),[o,r]=await po(n,t,"Loading @datadog/apps-backend/runtime"),i=o.buildRuntimeFromJsFunctionWithActions,s=r.setBackend;if("function"!=typeof i||"function"!=typeof s)return;const a=new WeakMap;s(new Proxy({},{get(e,t){const n=to.getStore();if(!n)throw new Error("No active local execution to resolve an apps-backend accessor under.");if(n.isAbandoned())throw uo(n.functionName,"resolve a further apps-backend accessor");let o=a.get(n);if(void 0===o&&(o=i(n.$),a.set(n,o)),!no(o))return;const r=o[String(t)];return"function"==typeof r?r.bind(o):r}}))}class bo extends Error{}function wo(e,t){return"object"==typeof e&&null!==e&&!t.has(e)&&(Object.getOwnPropertySymbols(e).length>0||(t.add(e),Object.values(e).some((e=>wo(e,t)))))}function vo(e,t){if(wo(e,new Set))throw new Error(`Local execution of "${t.name}" returned a value with a Symbol-keyed property, which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`);let n;try{let o=!0;n=JSON.stringify(e,((e,n)=>{const r=o;if(o=!1,n instanceof Map||n instanceof Set)throw new bo(`Local execution of "${t.name}" returned a ${n.constructor.name}${e?` (at "${e}")`:""}, which JSON.stringify silently flattens to "{}" instead of serializing its entries — return a plain array or object instead.`);if("number"==typeof n&&!Number.isFinite(n))throw new bo(`Local execution of "${t.name}" returned ${n}${e?` (at "${e}")`:""}, which JSON.stringify silently converts to "null" instead of throwing — return a finite number instead.`);if(!r&&("function"==typeof n||"symbol"==typeof n||void 0===n))throw new bo(`Local execution of "${t.name}" returned a ${typeof n} (at "${e}"), which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`);return n}))}catch(e){if(e instanceof bo)throw e;throw new Error(`Local execution of "${t.name}" returned a value that can't be serialized to JSON: ${e instanceof Error?e.message:String(e)}`)}if(void 0!==n)return JSON.parse(n);if(void 0!==e)throw new Error(`Local execution of "${t.name}" returned a ${typeof e} value, which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`)}async function $o(e,t,n,o,r,i,s,a=1e4,u=oo){const c=`${e.relativePath}/${e.name}`;return function(e){const t=ao.then(e);return ao=t.then((()=>{}),(()=>{})),t}((async()=>{const d=i(e.absolutePath),l=await po(d,a,`Resolving allowed connections for "${c}"`),p=e.absolutePath+fe,f=io(r,p),m=await po(f,a,`Loading "${c}"`);return async function(e,t,n,o,r,i,s,a,u){i.debug(`Executing "${e.name}" in-process with args`);const{actionCallTimeoutMs:c,totalExecutionTimeoutMs:d}=ro(u),l=co.start();let p,f,m,g=0;const h=()=>{p=setTimeout((()=>{w(),f?.(new Error(`Local execution of "${e.name}" timed out after ${s}ms`))}),s)},y=()=>{clearTimeout(m),m=setTimeout((()=>{w(),f?.(new Error(`Local execution of "${e.name}" exceeded the absolute ${d}ms execution ceiling, regardless of any $.Actions call in flight.`))}),d)},b=async(t,n,r)=>{if(!l.isCurrent())throw uo(e.name,`run "${t}"`);g+=1,clearTimeout(p),y();try{const e=o(t,n,r);return await po(e,c,`$.Actions call to "${t}"`)}finally{g-=1,0===g&&l.isCurrent()&&h()}},w=()=>{l.concludeIfCurrent()},v={backendFunctionArgs:n,Actions:lo(b,e.allowedConnectionIds),Source:{initiator:{id:"local-dev",orgId:"local-dev-org"},runAsUser:{id:"local-dev",orgId:"local-dev-org"}}},$={executeAction:b,allowedConnectionIds:e.allowedConnectionIds,isAbandoned:()=>!l.isCurrent(),functionName:e.name,$:v},k=async()=>{try{const o=(a??await io(r,e.absolutePath+fe))[e.name];if("function"!=typeof o)throw new Error(`"${e.name}" is not a function exported from ${e.absolutePath}`);return Xn(),await Hn.run({value:v},(()=>to.run($,(async()=>{const i=function(e,t,n){return fo(Pn,mo,go,e,t,n)}(r,t,s),a=function(e,t,n){return fo(Mn,ho,yo,e,t,n)}(r,t,s);if(await Promise.all([i,a]),!l.isCurrent())throw new Error(`Execution of "${e.name}" was abandoned after timing out before it could start.`);return{data:vo(await o(...n),e)}}))))}finally{w()}},x=new Promise(((e,t)=>{f=t,h()}));y();const E=k();let S=!1;E.catch((t=>{if(!S)return;const n=t instanceof Error?t.message:String(t);i.debug(`"${e.name}" failed after its caller had already stopped waiting: ${n}`)}));try{return await Promise.race([E,x])}finally{S=!0,clearTimeout(p),clearTimeout(m)}}({...e,allowedConnectionIds:l},t,n,o,r,s,a,m,u)}))}function ko(e){return new Promise((t=>{setTimeout(t,e)}))}function xo(e){return null!==e&&"object"==typeof e&&"name"in e&&("TimeoutError"===e.name||"AbortError"===e.name)}function Eo(e,t){const n=Kn(e,t.exponentialBackoff);return t.jitter?n/2+Math.random()*(n/2):n}function So(e){return`${e.relativePath}/${e.name}`}async function Io(e,t,n,o){const r=So(t),i=`virtual:dd-backend-dev:${r}`,s=function(e,t,n){return Cn(e,t,n??process.cwd())}(t.name,t.absolutePath,n),a=Rn(t.absolutePath,n);o.debug(`Bundling backend function "${r}" from ${t.absolutePath}`);const u=_n(n,o,a.getModuleRecords),c=Ln(n,{[i]:s},[a.plugin,u]),d=await e({...c,build:{...c.build,write:!1,rollupOptions:{...c.build.rollupOptions,input:i,output:c.build.rollupOptions.output}}}),l=Array.isArray(d)?d[0]:d;if(!("output"in l))throw new Error(`Unexpected vite.build result for "${r}"`);const p="chunk"===l.output[0].type?l.output[0].code:"",f={...t,allowedConnectionIds:a.getAllowedConnectionIds()};return o.debug(`Bundled "${r}" (${p.length} bytes)`),{func:f,code:p}}async function jo(e,t,n,o,r,i){const s=`https://api.${n.site}/api/v2/app-builder/queries/preview-async`;i.debug(`Calling Datadog API: ${s}`);const a=JSON.stringify({data:{type:"queries",attributes:{query:{id:l.randomUUID(),name:t,type:"action",properties:{spec:e,onlyTriggerManually:!0}},template_params:{}}}}),u=await o({url:s,method:"POST",type:"json",getData:()=>({data:a,headers:{"Content-Type":"application/json"}})}),c=u.data?.id;if(!c)throw new Error("No receipt ID returned from Datadog API");return i.debug(`Query execution started with receipt: ${c}`),async function(e,t,n,o,r){const i=`https://api.${t.site}/api/v2/app-builder/queries/execution-long-polling/${e}`,{maxRetries:s,timeoutMs:a}=o;for(let e=0;e<s;e++){if(e>0){const t=Eo(e,o);r.debug(`Waiting ${Math.round(t)}ms before long-poll retry...`),await ko(t)}let t;r.debug(`Long-poll attempt ${e+1}/${s}...`);try{t=await n({url:i,type:"json",signal:AbortSignal.timeout(a)})}catch(t){if(!xo(t))throw t;r.debug(`Long-poll attempt ${e+1} timed out after ${a}ms`);continue}if(t.errors?.length){const e=t.errors.map((e=>e.detail||e.title)).join("; ");throw new Error(`Query execution failed: ${e}`)}const u=t.data?.attributes;if(r.debug(`Long-poll response, done: ${u?.done}`),u?.done){if(void 0===u.outputs||null===u.outputs)throw new Error("Query execution completed without outputs");return u.outputs}}throw new Error("Query execution timed out")}(c,n,o,r,i)}function Ao(e,t,n){e.statusCode=t,e.setHeader("Content-Type","application/json"),e.end(JSON.stringify({success:!1,error:n}))}function Do(e,t){e.statusCode=200,e.setHeader("Content-Type","application/json"),e.end(JSON.stringify({success:!0,result:t}))}function Po(e,t,n){t?n(t).catch((()=>Ao(e,500,"Unexpected error"))):Ao(e,400,`Auth credentials not configured. ${Se}`)}function Mo(e,t,n,o){const r=t instanceof Co?t.statusCode:500,i=t instanceof Error?t.message:"Internal server error";n&&o&&n.debug(`Error handling ${o}: ${i}`),Ao(e,r,i)}class Co extends Error{constructor(e,t){super(t),this.statusCode=e}}async function Oo(e,t){const{functionName:n,args:o=[]}=await function(e){return new Promise(((t,n)=>{let o="";e.on("data",(e=>{o+=e.toString()})),e.on("end",(()=>{try{t(JSON.parse(o))}catch{n(new Error("Invalid JSON body"))}})),e.on("error",n)}))}(e);if(!n||"string"!=typeof n)throw new Co(400,"Missing or invalid functionName");const r=t.get(n);if(!r)throw new Co(404,`Backend function "${n}" not found`);return{func:r,args:o}}async function No(e,t,n){const{func:o,args:r}=await Oo(e,t);return{...await n(o),args:r}}async function To(e,t,n,o,r,i,s,a,u,c){try{const{func:d,args:l}=await Oo(e,n),p=So(d);c.debug(`Executing action locally: ${p} with args`);const f=function(e,t,n,o){return async(r,i,s)=>{try{const a=await jo(void 0!==s?{fqn:r,inputs:i,connectionId:s}:{fqn:r,inputs:i},r,e,t,n,o);return o.info(`$.Actions call to "${r}" succeeded: ${JSON.stringify(a)}`),a}catch(e){const t=e instanceof Error?e.message:String(e);throw o.error(`$.Actions call to "${r}" failed: ${t}`),e}}}(o,r,i,c);Do(t,await $o(d,u,l,f,s,a,c,1e4,i))}catch(e){Mo(t,e,c,"executeAction")}}async function Ro(e,t,n,o,r,i,s,a){try{const{func:u,code:c,args:d}=await No(e,n,o),l=So(u);a.debug(`Executing action via cloud: ${l} with args`);const p=await async function(e,t,n,o,r,i,s){const a=So(t),u=await jo({fqn:"com.datadoghq.datatransformation.jsFunctionWithActions",inputs:{script:e,allowedConnectionIds:t.allowedConnectionIds,context:{backendFunctionArgs:n}}},a,o,r,i,s);if("object"!=typeof u||null===u||!("data"in u))throw new Error('Query execution completed without a "data" field in its outputs');return u}(c,u,d,r,i,s,a);Do(t,p)}catch(e){Mo(t,e,a,"executeActionViaCloud")}}function _o(e,t,n,o,r,i,s,a,u){const c=t=>Io(e,t,a,u),d=n();return d.length>0&&u.info(`Dev server middleware active for ${d.length} backend function(s): ${d.map((e=>e.name)).join(", ")}`),(e,d,l)=>{if("POST"!==e.method)return void l();const p=(f=n(),new Map(f.map((e=>[jn(e),e]))));var f;"/__dd/debugBundle"===e.url?async function(e,t,n,o){try{const{code:r}=await No(e,n,o);t.statusCode=200,t.setHeader("Content-Type","text/plain"),t.end(r)}catch(e){Mo(t,e)}}(e,d,p,c).catch((()=>{Ao(d,500,"Unexpected error")})):"/__dd/executeAction"===e.url?Po(d,i,(n=>To(e,d,p,r,n,s,t,o,a,u))):"/__dd/executeActionViaCloud"===e.url?Po(d,i,(t=>Ro(e,d,p,c,r,t,s,u))):l()}}const Fo=a.join(__dirname,"./apps-runtime.mjs"),Lo=({bundler:e,context:t,options:n})=>{const o=t.getLogger(de),{auth:i}=t;t.inject({type:"file",position:Ee.MIDDLE,value:Fo});const{setBackendFunctions:s,getBackendFunctions:u}=function(){const e=new Map;return{setBackendFunctions(t,n){e.set(t,n)},getBackendFunctions:()=>Array.from(e.values()).flat()}}();let c=!1;return{config:()=>({ssr:{noExternal:["@datadog/apps-backend","@datadog/action-catalog"]}}),resolveId:{order:"pre",async handler(e,n,o){if(!0!==o.ssr)return null;const r=Yn.getStore();if(!(!!n&&(n.endsWith(fe)||!!r&&r.has(n))))return null;const i=await this.resolve(e,n,{...o,skipSelf:!0});if(!i||i.external)return i;if(i.id.endsWith(fe))return i;if(!Zt(i.id,t.buildRoot))return i;const s=i.id+fe;return pe.test(i.id)||r?.add(s),{...i,id:s}}},transform:{filter:{id:{include:[me],exclude:[/node_modules/,/[/\\]dist[/\\]/]}},handler(e,n,r){if(n.endsWith(fe)&&r?.ssr)return null;const i=n.indexOf("?"),u=-1===i?n:n.slice(0,i),c=this.parse(e),d=qe(je(c,u));In(c,u,o,d);const l=Oe(c,u);if(0===l.length)return-1===i&&(o.warn(`Backend file ${u} has no exported functions. Did you forget to add a named export?`),s(u,[])),{code:"",map:null};const{functions:p,proxyCode:f}=function(e,t,n){const o=a.relative(n,t).replace(pe,""),r=[],i=[];for(const n of e){const e={relativePath:o,name:n,absolutePath:t,allowedConnectionIds:[]};r.push(e),i.push({exportName:n,queryName:jn(e)})}return{functions:r,proxyCode:An(i)}}(l,u,t.buildRoot);return s(u,p),o.debug(`Generated proxy for ${u} with ${p.length} export(s)`),{code:f,map:null}}},async closeBundle(){if(c)return void o.debug("Skipping app packaging: dev server session.");let i,s=new Map,d=u();if(d.length>0){const n=await async function(e,t,n,o){const i=await r.mkdtemp(a.join(p.tmpdir(),"dd-apps-backend-")),s=new Map,u=new Map;o.debug(`Building ${t.length} backend function(s) via vite.build()`);try{for(const r of t){const t=jn(r),c=`\0dd-backend:${t}`,d=Cn(r.name,r.absolutePath,n),l=Rn(r.absolutePath,n),p=_n(n,o,l.getModuleRecords),f=Ln(n,{[c]:d},[l.plugin,p]),m=await e({...f,build:{...f.build,write:!0,outDir:i,emptyOutDir:!1,rollupOptions:{...f.build.rollupOptions,input:{[t]:c},output:{...f.build.rollupOptions.output,entryFileNames:"[name].js"}}}}),g=Array.isArray(m)?m[0]:m;if("output"in g)for(const e of g.output){if("chunk"!==e.type||!e.isEntry)continue;const n=a.resolve(i,e.fileName);s.set(t,n),o.debug(`Backend function "${t}" output: ${n}`)}u.set(r.absolutePath,l.getAllowedConnectionIds())}}catch(e){try{await ye(i)}catch(e){o.warn(`Failed to clean up temp output directory "${i}": ${e}`)}throw e}return{outDir:i,outputs:s,functions:t.map((e=>({...e,allowedConnectionIds:u.get(e.absolutePath)})))}}(e.build,d,t.buildRoot,o);i=n.outDir,s=n.outputs,d=n.functions}try{await Bn({backendOutputs:s,backendFunctions:d,context:t,options:n})}finally{i&&await ye(i)}},configureServer(r){let s;c=!0;try{s=(()=>{const e=_("API_KEY"),t=_("APP_KEY");if(e&&t)return n=>B({...n,auth:{apiKey:e,appKey:t}});const n=_("OAUTH_ACCESS_TOKEN");if(n)return e=>B({...e,auth:{accessToken:n}});throw new Ie})()}catch(e){if(!(e instanceof Ie))throw e;o.warn(`No authentication configured. Both the /__dd/executeAction and /__dd/executeActionViaCloud endpoints will be unavailable. ${Se}`)}const a=r.ssrLoadModule.bind(r),d=_o(e.build,a,u,(async e=>{const n=await async function(e,t,n,o){const r=new Map,i=new Set,s=[],a=t+fe;await e.transformRequest(a,{ssr:!0});const u=e.moduleGraph.getModuleById(a);for(u&&s.push(u);s.length>0;){const t=s.shift(),a=t.id?Wn(t.id):void 0;if(!a||!t.file)continue;if(!Zt(a,n))continue;if(t.id&&Un(t.id).includes("?"))throw on(a,`Vite resource query on module id "${t.id}"`);if(i.has(a))continue;let u,c;i.add(a);try{u=await ve(t.file)}catch(e){const t=e instanceof Error?e.message:String(e);throw on(a,`unreadable module source (${t})`)}try{const e=await g.transform(u,{loader:Vn(a),format:"esm"});c=h.parseAst(e.code)}catch(e){const t=e instanceof Error?e.message:String(e);throw on(a,`unparseable module source (${t})`)}const d=Tt(c),l=t.file,p=(await Promise.all(d.map((t=>e.pluginContainer.resolveId(t,l??void 0,{ssr:!0}))))).map(((e,t)=>{if(!e)throw on(a,`unresolvable import specifier "${d[t]}"`);return Wn(e.id)})),f=Nt(a,n,c,p);f&&(In(f.ast,f.id,o,f.scopeAnalysis),r.set(f.id,f));for(const n of t.importedModules)n.id&&await e.transformRequest(n.id,{ssr:!0}),s.push(n)}return r}(r,e,t.buildRoot,o);return rn(e,n,t.buildRoot)}),i,s,n.longPolling,t.buildRoot,o);r.middlewares.use(d)}}},qo=({options:e,context:t,bundler:n})=>{const o=t.getLogger(de),r=(e=>{const t=e[ce]||{};return{include:t.include||[],longPolling:he(t.longPolling)}})(e);return"vite"!==t.bundler.name?(o.warn(`The apps plugin only supports Vite; skipping under '${t.bundler.name}'.`),[]):[{name:de,enforce:"post",vite:Lo({bundler:n,context:t,options:r})}]},zo="errorTracking",Bo="datadog-error-tracking-plugin",Vo=(e,n,o)=>{if(".map"!==a.extname(o))throw new Error(`The file ${t.green.bold(o)} is not a sourcemap.`);const r=o.replace(/\.map$/,""),i=a.relative(n,r),s=((e,t)=>{if(e.startsWith("/"))return a.join(e,t);try{const n=e.replace(/\/*$/,"/"),o=new URL(n),r=t.replace(/^[\\/]*/,"");return new URL(r,o).href}catch{return`${e}${t}`}})(e,i);return{minifiedFilePath:r,minifiedUrl:s,relativePath:i}},Uo=/"?ddDebugId"?:"([0-9a-fA-F-]{36})"/,Wo=async e=>(async e=>{const t=await r.open(e,"r");try{const e=Buffer.alloc(1024);let o="",r=0;for(;;){const{bytesRead:i}=await t.read(e,0,1024,r);if(0===i)return;const s=o+e.toString("utf-8",0,i),a=(n=s,Uo.exec(n)?.[1]);if(a)return a;o=s.slice(-64),r+=i}}finally{await t.close()}var n})(e).catch((()=>{})),Ko=/[/]+|[\\]+/g,Ho=/^[/]+|^[\\]+|[/]+$|[\\]+$/g,Jo=(e,t)=>{const n=e.replace(Ho,"").split(Ko),o=t.replace(Ho,"").split(Ko),r=n.join("/");let i="";for(let e=0;e<o.length;e+=1){const t=o.slice(-e).join("/");r.startsWith(t)&&(i=t)}return i},Go=async(e,t,n,o,r)=>{const i=await(async(e,t)=>{const[n,o]=await Promise.all([xe(e.minifiedFilePath),xe(e.sourcemapFilePath)]);return{file:n,sourcemap:o,repeatedPrefix:Jo(e.relativePath,t)}})(e,n),s=[],u=[],c=new Map([["event",{type:"string",options:{contentType:"application/json",filename:"event"},value:JSON.stringify({...t,debug_id:r,minified_url:e.minifiedUrl})}],["source_map",{type:"file",path:e.sourcemapFilePath,options:{filename:"source_map",contentType:"application/json"}}],["minified_file",{type:"file",path:e.minifiedFilePath,options:{filename:"minified_file",contentType:"application/javascript"}}]]);if(o)try{c.set("repository",{type:"string",options:{contentType:"application/json",filename:"repository"},value:JSON.stringify({data:[{files:o.trackedFilesMatcher.matchSourcemap(e.sourcemapFilePath,(t=>{u.push(`${a.basename(e.sourcemapFilePath)}: "${t}"`)})),hash:o.hash,repository_url:o.remote}],version:1})})}catch(t){u.push(`Could not attach git data for sourcemap ${e.sourcemapFilePath}: ${t.message}`)}return i.file.empty&&s.push(`Minified file is empty: ${e.minifiedFilePath}`),i.file.exists||s.push(`Minified file not found: ${e.minifiedFilePath}`),i.sourcemap.empty&&s.push(`Sourcemap file is empty: ${e.sourcemapFilePath}`),i.sourcemap.exists||s.push(`Sourcemap file not found: ${e.sourcemapFilePath}`),i.repeatedPrefix&&u.push(`The minified file path contains a repeated pattern with the minified path prefix: ${i.repeatedPrefix}`),{content:c,errors:s,warnings:u}},Yo=e=>{const t=e.message.match(/HTTP (\d{3})/);return t?`status_code:${t[1]}`:"status_code:unknown"},Qo=e=>{const t=Yo(e);return"status_code:unknown"!==t?`error_type:http_${t.replace("status_code:","")}`:`error_type:${Q(e.name||"unknown")}`},Xo=(e,t,n)=>{const o=((e,t)=>`${e}|${t.join("|")}`)(t,n),r=e.metrics.get(o);r?r.value++:e.metrics.set(o,{name:t,value:1,tags:n})},Zo=(e,t,n)=>{Xo(e,"retry",[...e.baseTags,`attempt:${n}`,Yo(t),Qo(t)])},er=(e,t)=>{Xo(e,"failure",[...e.baseTags,Yo(t),Qo(t)])},tr=(e,t)=>{if(!t.sendMetrics)return;if(!e.metrics.size)return;const n=(e=>{const t=Math.floor(Date.now()/1e3);return Array.from(e.metrics.values()).map((e=>({metric:`sourcemaps.upload.${e.name}`,type:"count",points:[[t,e.value]],tags:e.tags})))})(e);for(const e of n)t.addMetric(e)},nr=t.green.bold,or=t.yellow.bold,rr=t.red.bold,ir=(e,t={})=>async()=>(async e=>{const{getForm:t,defaultHeaders:n={},zip:o=!0}=e,r=await t(),i=new Request("fake://url",{method:"POST",body:r});return{data:o?i.body.pipeThrough(new CompressionStream("gzip")):i.body,headers:{"Content-Encoding":o?"gzip":"multipart/form-data",...n,...Object.fromEntries(i.headers.entries())}}})({getForm:async()=>{const t=new FormData;for(const[n,o]of e.content){const e="file"===o.type?await ke(o.path,o.options):new Blob([o.value],{type:o.options.contentType});t.append(n,e,o.options.filename)}return t},defaultHeaders:t,zip:!0}),sr=async(e,t,n,o)=>{const r=[],i=[];if(!n.apiKey)return r.push({error:new Error("No authentication token provided")}),{errors:r,warnings:i};if(0===e.length)return i.push("No sourcemaps to upload"),{errors:r,warnings:i};const s=o.time("Queue uploads"),a=new(b.default?b.default:b)({concurrency:t.maxConcurrency}),u=(c=n.site,_("SOURCEMAP_INTAKE_URL")||`https://sourcemap-intake.${c}/api/v2/srcmap`);var c;const d={"DD-EVP-ORIGIN":`${(l={bundler:n.bundlerName,plugin:"sourcemaps",version:n.version}).bundler}-build-plugin_${l.plugin}`,"DD-EVP-ORIGIN-VERSION":l.version};var l;const p=(e=>({metrics:new Map,baseTags:[`service:${e.service}`]}))(t),f=X({...t,intakeUrl:u,outDir:n.outDir,defaultHeaders:`\n${JSON.stringify(d,null,2)}`}),m=`\nUploading ${nr(e.length.toString())} sourcemaps with configuration:\n${f}`;o.debug(m);const g=[];for(const s of e){const e={sourcemap:s.content.get("source_map")?.path.replace(n.outDir,"."),file:s.content.get("minified_file")?.path.replace(n.outDir,".")};g.push(a.add((async()=>{try{await B({auth:{apiKey:n.apiKey},url:u,method:"POST",getData:ir(s,d),onRetry:(t,n)=>{Zo(p,t,n);const r=`Failed to upload ${or(e.sourcemap)} | ${or(e.file)}:\n ${t.message}\nRetrying ${n}/5`;i.push(r),o.debug(r)}})}catch(n){if(er(p,n),r.push({metadata:e,error:n}),!0===t.bailOnError)throw n}})))}s.end(),o.debug(`Queued ${nr(e.length.toString())} uploads.`);try{await Promise.all(g),await a.onIdle()}finally{tr(p,n)}return{warnings:i,errors:r}},ar=async(e,t,n)=>{const o=n.time("get sourcemaps files"),r=((e,t)=>{if(!t.outputs||0===t.outputs.length)throw new Error("No output files found.");return t.outputs.filter((e=>e.filepath.endsWith(".map"))).map((e=>e.filepath)).map((n=>({...Vo(e.minifiedPathPrefix,t.outDir,n),sourcemapFilePath:n,minifiedPathPrefix:e.minifiedPathPrefix})))})(e.sourcemaps,{outDir:t.outDir,outputs:t.outputs});o.end();const i=n.time("send sourcemaps");await(async(e,t,n,o)=>{const r=Date.now(),i=t.minifiedPathPrefix,s={git_repository_url:n.git?.remote,git_commit_sha:n.git?.hash,plugin_version:n.version,project_path:n.outDir,service:t.service,type:"js_sourcemap",version:t.releaseVersion},a=o.time("Compute payloads"),u=new(b.default?b.default:b)({concurrency:t.maxConcurrency});let c=0;const d=await u.addAll(e.map((e=>async()=>{const t=await Wo(e.minifiedFilePath);return t&&(c+=1),Go(e,s,i,n.git,t)})));a.end(),o.debug(`Extracted debug_id for ${nr(`${c}/${e.length}`)} sourcemaps.`);const l=d.map((e=>e.errors)).flat(),p=d.map((e=>e.warnings)).flat();if(p.length>0&&o.warn(`Warnings while preparing payloads:\n - ${p.join("\n - ")}`),l.length>0){const e=`Failed to prepare payloads, aborting upload :\n - ${l.join("\n - ")}`;if(o.error(e),!0===t.bailOnError)throw new Error(e);return}const f=o.time("Upload sourcemaps"),{errors:m,warnings:g}=await sr(d,t,{apiKey:n.apiKey,bundlerName:n.bundlerName,version:n.version,outDir:n.outDir,site:n.site,sendMetrics:n.sendMetrics,addMetric:n.addMetric},o);if(f.end(),o.debug(`Done uploading ${nr(`${e.length-m.length}/${e.length}`)} sourcemaps in ${nr(J(Date.now()-r))}.`),m.length>0){const e=`Failed to upload some sourcemaps:\n - ${m.map((({metadata:e,error:t})=>{const n=t.cause||t.stack||t.message;return e?`${rr(e.file)} | ${rr(e.sourcemap)} :\n${n}`:n})).join("\n - ")}`;if(o.error(e),!0===t.bailOnError)throw new Error(e)}g.length>0&&o.warn(`Warnings while uploading sourcemaps:\n - ${g.join("\n - ")}`)})(r,e.sourcemaps,{addMetric:t.addMetric,apiKey:t.apiKey,bundlerName:t.bundlerName,git:t.git,outDir:t.outDir,sendMetrics:t.sendMetrics,site:t.site,version:t.version},n),i.end()},ur=e=>{const n=t.bold.red,o=e[zo]||{},r={errors:[]};if(o.sourcemaps){const t=o.sourcemaps,i=t.releaseVersion||e.metadata?.version;i||r.errors.push(`${n("sourcemaps.releaseVersion")} is required (set it directly or via ${n("metadata.version")}).`),t.releaseVersion&&e.metadata?.version&&t.releaseVersion!==e.metadata.version&&r.errors.push(`${n("sourcemaps.releaseVersion")} must match ${n("metadata.version")} when both are configured.`),t.service||r.errors.push(`${n("sourcemaps.service")} is required.`),t.minifiedPathPrefix||r.errors.push(`${n("sourcemaps.minifiedPathPrefix")} is required.`),t.minifiedPathPrefix&&!(e=>{let t;try{t=new URL(e).host}catch{}return!(!t&&!e.startsWith("/"))})(t.minifiedPathPrefix)&&r.errors.push(`${n("sourcemaps.minifiedPathPrefix")} must be a valid URL or start with '/'.`),i&&(r.config={bailOnError:!1,dryRun:!1,maxConcurrency:20,...t,releaseVersion:i})}return r},cr=({options:e,context:t})=>{const n=t.getLogger(Bo),o=n.time("validate options"),r=((e,t)=>{const n=[],o=ur(e);if(n.push(...o.errors),n.length)throw t.error(`\n - ${n.join("\n - ")}`),new Error(`Invalid configuration for ${Bo}.`);return{...e[zo],sourcemaps:o.config}})(e,n);o.end();const i=ue(e,"metrics",n);let s,a,u,c=!1;const d=async()=>{r.sourcemaps&&!c&&(u||(u=(async()=>{await t.artifactsReady,c=!0;const e=n.time("sourcemaps process");await ar(r,{apiKey:t.auth.apiKey,bundlerName:t.bundler.name,git:s,addMetric:t.addMetric,outDir:t.bundler.outDir,outputs:a?.outputs||[],sendMetrics:i,site:t.auth.site,version:t.version},n),e.end()})()),await u)},l=async()=>{if(t.artifactsPending){const e=d();t.queue(e)}else await d()};return[{name:Bo,enforce:"post",async git(e){s=e,a&&await l()},async buildReport(t){a=t,!s&&H(e)||await l()},async asyncTrueEnd(){c||await d()}}]},dr="liveDebugger",lr="datadog-live-debugger-plugin",pr="if(typeof globalThis.$dd_probes==='undefined'){globalThis.$dd_probes=function(){}}",fr="__DD_LIVE_DEBUGGER_BUILD__",mr=e=>void 0===e?pr:`${pr};if(typeof globalThis.${fr}==='undefined'){globalThis.${fr}={version:${JSON.stringify(e)}}}`;function gr(e){return"function"==typeof e?e:e.default}function hr(e,t,n,o,r){const i=a.relative(t,e).replace(/\\/g,"/"),s=yr(n,r);if(s)return`${i};${s}`;const u=function(e){const t=e.node.loc?.start.line??0,n=e.node.loc?.start.column??0;return`${t}:${n}`}(n);return`${i};<anonymous>@${u}:${o}`}function yr(e,t){const n=e.node,o=e.parent;return"id"in n&&t.isIdentifier(n.id)?n.id.name:t.isObjectMethod(n)||t.isClassMethod(n)||t.isClassPrivateMethod(n)?vr(n.key,t):t.isVariableDeclarator(o)&&t.isIdentifier(o.id)?o.id.name:t.isAssignmentExpression(o)?function(e,t){if(t.isIdentifier(e))return e.name;if(t.isMemberExpression(e)||t.isOptionalMemberExpression(e)){const n=br(e.object,t),o=wr(e.property,e.computed,t);if(n&&o)return`${n}.${o}`}return null}(o.left,t):t.isObjectProperty(o)||t.isClassProperty(o)||t.isClassPrivateProperty(o)?vr(o.key,t):null}function br(e,t){if(t.isIdentifier(e))return e.name;if(t.isThisExpression(e))return"this";if(t.isMemberExpression(e)||t.isOptionalMemberExpression(e)){const n=br(e.object,t),o=wr(e.property,e.computed,t);if(n&&o)return`${n}.${o}`}return null}function wr(e,t,n){return n.isPrivateName(e)&&n.isIdentifier(e.id)?`#${e.id.name}`:t?null:n.isIdentifier(e)?e.name:null}function vr(e,t){return t.isIdentifier(e)?e.name:t.isStringLiteral(e)||t.isNumericLiteral(e)||t.isBigIntLiteral(e)?String(e.value):t.isPrivateName(e)&&t.isIdentifier(e.id)?`#${e.id.name}`:null}function $r(e,t){if(e.node.leadingComments)for(const n of e.node.leadingComments)if(n.value.includes(t))return!0;return!1}function kr(e,t){const n=[];if(t.isBlockStatement(e.body)){const o=e.params.flatMap((e=>Ar(e,t))),r=new Set(o),i="id"in e&&t.isIdentifier(e.id)?e.id.name:"";for(const o of e.body.body)if(t.isVariableDeclaration(o)){const e=o.end;if(null==e)continue;for(const s of o.declarations)for(const o of Ar(s.id,t))r.has(o)||o===i||n.push({name:o,declarationEnd:e,temporalDeadZones:[]})}}const o=n.length>25?n.slice(0,25):n;if(t.isBlockStatement(e.body)){const n=o.map((({name:e})=>e)),r=new Set(n),i=function(e,t,n){const o=new Map;for(const r of e.body)xr(r,t,o,n);return o}(e.body,r,t);for(const e of o)e.temporalDeadZones=i.get(e.name)??[]}return o}function xr(e,t,n,o){o.isFunctionDeclaration(e)||o.isClassDeclaration(e)||(o.isBlockStatement(e)?Er(e,t,n,o):o.isIfStatement(e)?(xr(e.consequent,t,n,o),e.alternate&&xr(e.alternate,t,n,o)):o.isForStatement(e)||o.isForInStatement(e)||o.isForOfStatement(e)||o.isWhileStatement(e)||o.isDoWhileStatement(e)?xr(e.body,t,n,o):o.isSwitchStatement(e)?function(e,t,n,o){for(const r of e.cases){Sr(r.consequent,e.start,t,n,o);for(const e of r.consequent)xr(e,t,n,o)}}(e,t,n,o):o.isTryStatement(e)?(Er(e.block,t,n,o),e.handler&&Er(e.handler.body,t,n,o),e.finalizer&&Er(e.finalizer,t,n,o)):(o.isLabeledStatement(e)||o.isWithStatement(e))&&xr(e.body,t,n,o))}function Er(e,t,n,o){Sr(e.body,e.start,t,n,o);for(const r of e.body)xr(r,t,n,o)}function Sr(e,t,n,o,r){if(null!=t)for(const i of e)r.isVariableDeclaration(i)&&"var"!==i.kind?Ir(i,t,n,o,r):r.isClassDeclaration(i)&&i.id&&jr(i.id.name,t,i.end,n,o)}function Ir(e,t,n,o,r){for(const i of e.declarations)for(const s of Ar(i.id,r))jr(s,t,e.end,n,o)}function jr(e,t,n,o,r){if(null==n||!o.has(e))return;const i=r.get(e)??[];i.push({start:t,end:n}),r.set(e,i)}function Ar(e,t){return t.isIdentifier(e)?[e.name]:t.isRestElement(e)?t.isIdentifier(e.argument)?[e.argument.name]:Ar(e.argument,t):t.isAssignmentPattern(e)?Ar(e.left,t):t.isObjectPattern(e)?e.properties.flatMap((e=>t.isRestElement(e)?Ar(e.argument,t):Ar(e.value,t))):t.isArrayPattern(e)?e.elements.flatMap((e=>e?Ar(e,t):[])):t.isTSParameterProperty(e)&&t.isIdentifier(e.parameter)?[e.parameter.name]:[]}const Dr=["@babel/parser","@babel/traverse","@babel/types","magic-string"];let Pr,Mr,Cr,Or,Nr=!1;function Tr(e){try{return function(e){switch(e){case"@babel/parser":return require("@babel/parser");case"@babel/traverse":return require("@babel/traverse");case"@babel/types":return require("@babel/types");case"magic-string":return require("magic-string");default:throw new Error(`Unknown peer dependency: ${e}`)}}(e)}catch(e){throw function(e){if(!function(e){if(!(e instanceof Error))return!1;const t=e.code;if("MODULE_NOT_FOUND"!==t&&"ERR_MODULE_NOT_FOUND"!==t)return!1;return Dr.some((t=>e.message.includes(t)))}(e))return e instanceof Error?e:new Error(String(e));const t=Dr.find((t=>e.message.includes(t))),n=t??Dr.join(", ");return new Error(`Datadog Live Debugger could not load "${n}". It is an optional peer dependency that must be installed in your project when the \`liveDebugger\` plugin is enabled. Install the peer dependencies with: \`npm install --save-dev ${Dr.join(" ")}\` (or the yarn/pnpm/bun equivalent). Underlying error: ${e.message}`)}(e)}}const Rr=/\bfunction\b|=>|\bclass\b|\)\s*\{/;function _r(e){const{code:t,filePath:n,buildRoot:o,honorSkipComments:r,functionTypes:i,namedOnly:s}=e;let a=0,u=0,c=0,d=0,l=0;if(function(e){return/['"][^'"]*(?:@css-module:|\?worker\b|\?sprite\b|dynamic!)[^'"]*['"]/.test(e)}(t))return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:1,skippedUnsupportedCount:d,totalFunctions:l};if(!Rr.test(t))return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l};Nr||(Pr=Tr("@babel/parser").parse,Mr=gr(Tr("@babel/traverse")),Cr=Tr("@babel/types"),Or=gr(Tr("magic-string")),Nr=!0);const p=Pr(t,{sourceType:"unambiguous",plugins:["jsx","typescript"],sourceFilename:n}),f=[],m=new Map,g=new Set,h=new Map,y=new Map;let b=0;if(Mr(p,{Function(e){l++;const t=function(e,t){if(t.isClassMethod(e.node)&&"constructor"===e.node.kind&&Ur(e,t))return e.node;return}(e,Cr);if(t&&(m.set(t,t.body.start),h.set(t,function(e,t){const n=[];for(const o of e)qr(o,n,t);return n}(t.body.body,Cr))),!function(e,t){const n=e.node;return!(n.generator||t.isClassMethod(n)&&"constructor"===n.kind)}(e,Cr))return void d++;if(r&&function(e,t,n){let o=e;for(;o;){if($r(o,t))return!0;if(n.isStatement(o.node)||n.isExportDeclaration(o.node)){if(o.parentPath&&n.isExportDeclaration(o.parentPath.node))return $r(o.parentPath,t);break}o=o.parentPath}return!1}(e,"@dd-no-instrumentation",Cr))return void c++;if(i&&!i.includes(function(e,t){if(t.isFunctionDeclaration(e))return"functionDeclaration";if(t.isArrowFunctionExpression(e))return"arrowFunction";if(t.isObjectMethod(e))return"objectMethod";if(t.isClassPrivateMethod(e))return"classPrivateMethod";if(t.isClassMethod(e))return"classMethod";return"functionExpression"}(e.node,Cr)))return void d++;if(s&&!yr(e,Cr))return void d++;let p=0;if(!yr(e,Cr)){const t=e.parentPath?.node;t&&(p=y.get(t)||0,y.set(t,p+1))}const w=hr(n,o,e,p,Cr);try{const t=e.node,n=b++,o=`$dd_p${n}`,r=function(e,t){const n=[];for(const o of e.params)for(const e of Ar(o,t))"this"!==e&&n.push(e);return n.length>25?n.slice(0,25):n}(t,Cr),i=kr(t,Cr),s=Cr.isArrowFunctionExpression(t)&&!Cr.isBlockStatement(t.body),a=s&&Cr.isSequenceExpression(t.body),c=function(e,t){if(t.isFunction(e.node)&&!t.isArrowFunctionExpression(e.node))return;let n=e.parentPath;for(;n;){const e=n.node;if(t.isClassMethod(e)&&"constructor"===e.kind){if(!Ur(n,t))return;return{node:e,parent:n.parent,parentPath:n.parentPath}}if(t.isFunction(e)){if(t.isArrowFunctionExpression(e)){n=n.parentPath;continue}return}n=n.parentPath}return}(e,Cr),d=null!=c;c&&(g.add(c.node),m.set(c.node,c.node.body.start));const l=[],p=s||!Cr.isBlockStatement(t.body)||!Hr(t.body.body,Cr);let h;if(!s&&Cr.isBlockStatement(t.body)&&Kr(t.body.body,l,Cr),!s&&Cr.isBlockStatement(t.body)&&t.body.directives.length>0){h=t.body.directives[t.body.directives.length-1].end}f.push({bodyStart:t.body.start,bodyEnd:t.body.end,functionEnd:t.end,isExpressionBody:s,hasSequenceExpressionBody:a,aliasesExpressionBodySuperCall:d&&s&&Vr(t.body,Cr),needsTrailingReturn:p,useThisAlias:d,bodyParenStart:s&&"number"==typeof t.body.extra?.parenStart?t.body.extra.parenStart:void 0,directivesEnd:h,functionId:w,probeVarName:o,probeIdx:String(n),entryVars:r,localVars:i,returns:l}),u++}catch(e){a++}}}),0===u)return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l};const w=new Or(t),v=function(e){const t=new Set;for(const n of e)n.aliasesExpressionBodySuperCall&&t.add(Br({start:n.bodyStart,end:n.bodyEnd}));return t}(f),$=function(e,t,n,o){const r=[];for(const i of e){const e=t.get(i);null!=e&&r.push({bodyStart:e,superCalls:(n.get(i)??[]).filter((e=>!o.has(Br(e))))})}return r}(g,m,h,v);for(let e=f.length-1;e>=0;e--)Fr(w,t,f[e]);for(const e of $)Lr(w,t,e);return{code:w.toString(),map:w.generateMap({source:n,hires:!0}),failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l}}function Fr(e,t,n){const{probeVarName:o,probeIdx:r,functionId:i,entryVars:s,localVars:a,returns:u,bodyStart:c,bodyEnd:d,functionEnd:l,isExpressionBody:p,hasSequenceExpressionBody:f,aliasesExpressionBodySuperCall:m,useThisAlias:g,bodyParenStart:h,directivesEnd:y}=n,b=`$dd_e${r}`,w=`$dd_rv${r}`,v=g?"$dd_t":"this",$=s.join(", "),k=""!==$,x=k?`, ${b}()`:"";const E=`const ${o} = $dd_probes('${i.replace(/['\\\n\r\u2028\u2029]/g,(e=>{switch(e){case"'":return"\\'";case"\\":return"\\\\";case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e}}))}');`,S=k?`const ${b} = () => ({${$}});`:"",I=`if (${o}) $dd_entry(${o}, ${v}${x});`,j=`catch(e) { if (${o}) $dd_throw(${o}, e, ${v}${x}); throw e; }`;if(p){if(null!=h){const n=function(e,t,n){const o=[];for(let r=t;r<n;r++)"("===e[r]&&o.push(r);return o}(t,h,c),o=function(e,t,n){const o=[];for(let r=n-1;r>=t;r--)")"===e[r]&&o.push(r);return o}(t,d,l),r=Math.min(n.length,o.length);for(let t=0;t<r;t++){const r=n[t],i=o[t];e.remove(r,r+1),e.remove(i,i+1)}}const n=["{",E,S,"try {",I,m?`const ${w} = ($dd_t = `:`const ${w} = `].filter(Boolean).join("\n");let r=f?");":";";m&&(r=f?"));":");");const i=[r,`if (${o}) $dd_return(${o}, ${w}, ${v}${Wr(b,k,a,d)});`,`return ${w};`,`} ${j}`,"}"].join("\n");if(d-c>=2){const o=f?`${n}(${t[c]}`:n+t[c];e.update(c,c+1,o),e.update(d-1,d,t[d-1]+i)}else e.update(c,d,n+t.slice(c,d)+i)}else{const r=[E,S,"try {",`let ${w};`,I].filter(Boolean).join("\n");for(const t of u){const n=Wr(b,k,a,t.start);if(null!=t.argStart&&null!=t.argEnd){const r=t.hasSequenceExpressionArgument?`(${w} = (`:`(${w} = `,i=t.hasSequenceExpressionArgument?")":"";e.appendLeft(t.argStart,r),e.appendLeft(t.argEnd,`${i}, ${o} ? $dd_return(${o}, ${w}, ${v}${n}) : ${w})`)}else e.appendLeft(t.start,`if (${o}) $dd_return(${o}, undefined, ${v}${n}); `)}if(null!=y){const n=y-1;e.update(n,y,`${t[n]}\n${r}`)}else e.update(c,c+1,`${t[c]}${r}`);const i=Wr(b,k,a,d),s=`\n${n.needsTrailingReturn?`if (${o}) $dd_return(${o}, undefined, ${v}${i});\n`:""}} ${j}\n`;e.update(d-1,d,`${s}${t[d-1]}`)}}function Lr(e,t,n){e.update(n.bodyStart,n.bodyStart+1,`${t[n.bodyStart]}let $dd_t;`);for(const t of n.superCalls)e.appendLeft(t.start,"($dd_t = "),e.appendLeft(t.end,")")}function qr(e,t,n){Vr(e,n)&&t.push({start:e.start,end:e.end});const o=Object.values(e);for(const e of o)if(Array.isArray(e))for(const o of e)zr(o,t,n);else zr(e,t,n)}function zr(e,t,n){n.isNode(e)&&(n.isFunction(e)&&!n.isArrowFunctionExpression(e)||qr(e,t,n))}function Br(e){return`${e.start}:${e.end}`}function Vr(e,t){return t.isCallExpression(e)&&t.isSuper(e.callee)}function Ur(e,t){const n=e.parentPath?.parentPath;if(!n)return!1;const o=n.node;return(t.isClassDeclaration(o)||t.isClassExpression(o))&&null!=o.superClass}function Wr(e,t,n,o){const r=function(e,t){const n=e.filter((({declarationEnd:e,temporalDeadZones:n})=>e<=t&&!function(e,t){return e.some((({start:e,end:n})=>e<=t&&t<n))}(n,t))).map((({name:e})=>e));if(0===n.length)return;return`{${n.join(", ")}}`}(n,o);return t&&r?`, ${e}(), ${r}`:t?`, ${e}()`:r?`, undefined, ${r}`:""}function Kr(e,t,n){for(const o of e)if(n.isReturnStatement(o))t.push({start:o.start,end:o.end,argStart:o.argument?.start??void 0,argEnd:o.argument?.end??void 0,hasSequenceExpressionArgument:n.isSequenceExpression(o.argument)});else if(!n.isFunctionDeclaration(o)&&!n.isClassDeclaration(o))if(n.isBlockStatement(o))Kr(o.body,t,n);else if(n.isIfStatement(o))Kr([o.consequent],t,n),o.alternate&&Kr([o.alternate],t,n);else if(n.isForStatement(o)||n.isForInStatement(o)||n.isForOfStatement(o)||n.isWhileStatement(o)||n.isDoWhileStatement(o))Kr([o.body],t,n);else if(n.isSwitchStatement(o))for(const e of o.cases)Kr(e.consequent,t,n);else n.isTryStatement(o)?(Kr(o.block.body,t,n),o.handler&&Kr(o.handler.body.body,t,n),o.finalizer&&Kr(o.finalizer.body,t,n)):(n.isLabeledStatement(o)||n.isWithStatement(o))&&Kr([o.body],t,n)}function Hr(e,t){if(0===e.length)return!1;const n=e[e.length-1];if(t.isReturnStatement(n))return!0;if(t.isIfStatement(n)&&n.alternate){const e=t.isBlockStatement(n.consequent)?n.consequent.body:[n.consequent],o=t.isBlockStatement(n.alternate)?n.alternate.body:[n.alternate];return Hr(e,t)&&Hr(o,t)}return!1}const Jr=["functionDeclaration","functionExpression","arrowFunction","objectMethod","classMethod","classPrivateMethod"],Gr=t.bold.red,Yr=Number(process.env.DD_LD_LIMIT)||1/0,Qr=(e,t)=>{const n=t.getLogger(lr);let o=0,r=0,i=0,s=0,a=0,u=0,c=0,d=0;return{name:lr,enforce:"post",transform:{filter:{id:{include:e.include,exclude:e.exclude}},handler(l,p){if(e.include.length>0){if(!e.include.some((e=>"string"==typeof e?p.includes(e):e.test(p))))return{code:l}}for(const t of e.exclude){if("string"==typeof t?p.includes(t):t.test(p))return{code:l}}if(d>=Yr)return{code:l};try{const f=_r({code:l,filePath:p,buildRoot:t.buildRoot,honorSkipComments:e.honorSkipComments,functionTypes:e.functionTypes,namedOnly:e.namedOnly});if(o+=f.instrumentedCount,c+=f.totalFunctions,r+=f.failedCount,i+=f.skippedByCommentCount,s+=f.skippedFileCount,a+=f.skippedUnsupportedCount,f.totalFunctions>0&&d++,0===f.instrumentedCount)return{code:l};u++;const m=function(e){const t=e.getNativeBuildContext?.();return t?.inputSourceMap}(this),g=f.map&&m?function(e,t,n,o){try{return w(e,((e,n)=>1===n.depth?t:null))}catch(t){return o.error(`Failed to compose source map for ${n}: ${t}`,{forward:!0}),e}}(f.map,m,p,n):f.map;return{code:f.code,map:g}}catch(e){return n.error(`Instrumentation Error in ${p}: ${e}`,{forward:!0}),{code:l}}}},buildEnd:()=>{c>0&&n.info(`Live Debugger: ${o}/${c} functions instrumented across ${u}/${d} files`,{forward:!0,context:{failedCount:r,skippedByCommentCount:i,skippedFileCount:s,skippedUnsupportedCount:a,totalFilesWithFunctions:d,instrumentedCount:o,totalFunctions:c,transformedFileCount:u}})}}},Xr=({options:e,context:t})=>{const n=((e,t)=>{const n=e[dr]||{},o=e.metadata?.version,r=[];if(void 0!==n.include)if(Array.isArray(n.include)){for(const e of n.include)if("string"!=typeof e&&!(e instanceof RegExp)){r.push(`${Gr("include")} patterns must be strings or RegExp`);break}}else r.push(`${Gr("include")} must be an array of strings or RegExp`);if(void 0!==n.exclude)if(Array.isArray(n.exclude)){for(const e of n.exclude)if("string"!=typeof e&&!(e instanceof RegExp)){r.push(`${Gr("exclude")} patterns must be strings or RegExp`);break}}else r.push(`${Gr("exclude")} must be an array of strings or RegExp`);if(void 0!==n.honorSkipComments&&"boolean"!=typeof n.honorSkipComments&&r.push(`${Gr("honorSkipComments")} must be a boolean`),void 0!==n.functionTypes)if(Array.isArray(n.functionTypes)){for(const e of n.functionTypes)if(!Jr.includes(e)){r.push(`${Gr("functionTypes")} contains invalid value "${e}". Valid values: ${Jr.join(", ")}`);break}}else r.push(`${Gr("functionTypes")} must be an array of FunctionKind values`);if(void 0!==n.namedOnly&&"boolean"!=typeof n.namedOnly&&r.push(`${Gr("namedOnly")} must be a boolean`),r.length)throw t.error(`\n - ${r.join("\n - ")}`),new Error(`Invalid configuration for ${lr}.`);return{version:o,include:n.include||[/\.[jt]sx?$/],exclude:n.exclude||[/\/node_modules\//,/\.min\.js$/,/\/pyodide-lib\//,/^vite\//,/\0/,/commonjsHelpers\.js$/,/__vite-browser-external/,/@datadog\/browser-/,/browser-sdk\/packages\//],honorSkipComments:n.honorSkipComments??!0,functionTypes:n.functionTypes,namedOnly:n.namedOnly??!1}})(e,t.getLogger(lr));return t.inject({type:"code",position:Ee.BEFORE,injectIntoAllChunks:!0,value:mr(n.version)}),[Qr(n,t)]};const Zr=[e=>/modules\.tree\.(count|size)$/.test(e.metric)?null:e,e=>e.tags.some((e=>/^assetName:.*\.map$/.test(e)||/^moduleName:\/node_modules/.test(e)))?null:e,e=>{const t={size:1e5,count:10,duration:1e3};/^sourcemaps\.upload\.(failure|retry)$/.test(e.metric)&&(t.count=0),/(entries|loaders|warnings|errors)\.count$/.test(e.metric)&&(t.count=0),/(modules\.(dependencies|dependents)$)/.test(e.metric)&&(t.count=30),/modules\.tree\.count$/.test(e.metric)&&(t.count=150),/modules\.tree\.size$/.test(e.metric)&&(t.size=15e5),/entries\.size$/.test(e.metric)&&(t.size=0),/entries\.modules\.count$/.test(e.metric)&&(t.count=0);return(e.points.length?e.points.reduce(((e,t)=>e+t[1]),0)/e.points.length:0)>t[e.type]?e:null}],ei="metrics",ti="datadog-metrics-plugin",ni=e=>Math.floor((e||Date.now())/1e3),oi=(e,t)=>{const n=[`bundler:${Q(e.bundler.name)}`,`plugin_version:${Q(e.version)}`,`site:${Q(e.auth.site)}`];return e.build.metadata.name&&n.push(`build_name:${Q(e.build.metadata.name)}`),e.build.metadata.version&&n.push(`build_version:${Q(e.build.metadata.version)}`),[...n,...t]},ri=(e,t,n)=>({...e,tags:[...e.tags,...t],metric:n?`${n}.${e.metric}`:e.metric}),ii=(e,t,n,o,r)=>{const i=new Set;for(const t of e){let e={...t,toSend:!0};if(n?.length)for(const t of n){const n=t({metric:e.metric,type:e.type,points:e.points,tags:e.tags});n?e={...n,toSend:e.toSend}:e.toSend=!1}i.add(ri(e,o,r))}const s=Array.from(i).filter((e=>e.toSend)).length;return i.add(ri({metric:"metrics.count",type:"count",points:[[t,s+1]],tags:[],toSend:!0},o,r)),i},si=(e="")=>e.endsWith("/")?e:`${e}/`,ai=(e,t)=>{let n=e;return e.split(si(t)),n.split("!").pop().replace(/(.*)?\/node_modules\//,"/node_modules/").replace(/^((\.)*\/)+/,"")},ui=(e,t)=>e.split("!").pop().replace(si(t),"./"),ci=(e,t,n)=>{let o=e.name||e.userRequest;return o||(o=((e,t)=>{let n=e.userRequest;if(!n){let o;o=t.moduleGraph&&"function"==typeof t.moduleGraph.getIssuer?t.moduleGraph.getIssuer(e):e.issuer,n=o?.userRequest,n||(n=e._identifier?.split("!").pop())}return n||"unknown"})(e,t)),ui(o||"no-name",n)},di=e=>e.replace(/^.*\/node_modules\/(@[a-z0-9][\w-.]+\/[a-z0-9][\w-.]*|[^/]+).*$/,"$1"),li=e=>e.map((e=>({type:e?.constructor?.name??typeof e,name:e?.name,value:"string"==typeof e?e:void 0}))),pi=t.bold.red,fi=t.bold.cyan,mi=e=>(t,n)=>{let o,r;return"function"==typeof e?(o=e(t),r=e(n)):(o=t[e],r=n[e]),o>r?-1:o<r?1:0},gi=(e,t)=>{if(!t||!t.size)return[];const n=Array.from(t.values());n.sort(mi("duration"));const o={name:`${e} duration`,values:n.map((e=>({name:e.name,value:J(e.duration)}))),top:!0};n.sort(mi("increment"));return[o,{name:`${e} hits`,values:n.map((e=>({name:e.name,value:e.increment.toString()}))),top:!0}]},hi=(e,t,n)=>{const o=[];var r;n&&(o.push(...gi("Loader",n.loaders)),o.push(...gi("Tapable",n.tapables)),o.push(...gi("Module",n.modules))),o.push(...(e=>{const t={name:"Module total dependents",values:[],top:!0},n={name:"Module total dependencies",values:[],top:!0},o={name:"Module size",values:[],top:!0},r={name:"Module aggregated size",values:[],top:!0},i=new Set,s=K(e.build),a=new Map,u=new Map,c=new Map;for(const e of s.inputs||[]){if("map"===e.type)continue;const t=new Set(e.dependencies),n=new Set(e.dependents);for(const n of t)c.has(n)||c.set(n,new Set),c.get(n).add(e.filepath);for(const t of n)u.has(t)||u.set(t,new Set),u.get(t).add(e.filepath);if(u.has(e.filepath)){const n=u.get(e.filepath);for(const e of n)t.add(e)}if(c.has(e.filepath)){const t=c.get(e.filepath);for(const e of t)n.add(e)}u.set(e.filepath,t),c.set(e.filepath,n),a.set(e.filepath,{name:e.name,size:e.size,dependencies:t,dependents:n})}for(const[e,t]of a){const n=u.get(e)||new Set,o=c.get(e)||new Set;let r=t.size;for(const e of n)r+=a.get(e)?.size||0;i.add({name:t.name,size:t.size,aggregatedSize:r,dependents:o,dependencies:n})}if(!i.size)return[t,n,o];const d=Array.from(i);return d.sort(mi((e=>e.dependents.size))),t.values=d.map((e=>({name:e.name,value:e.dependents.size.toString()}))),d.sort(mi((e=>e.dependencies.size))),n.values=d.map((e=>({name:e.name,value:e.dependencies.size.toString()}))),d.sort(mi("size")),o.values=d.map((e=>({name:e.name,value:v(e.size)}))),d.sort(mi("aggregatedSize")),r.values=d.map((e=>({name:e.name,value:v(e.aggregatedSize||e.size)}))),[t,n,o,r]})(e)),o.push(...(r=e,[{name:"Asset size",values:(r.build.outputs||[]).filter((e=>"map"!==e.type)).sort(mi((e=>e.size))).map((e=>({name:e.name,value:v(e.size)}))),top:!0},{name:"Entry aggregated size",values:(r.build.entries||[]).sort(mi((e=>e.size))).map((e=>({name:e.name,value:v(e.size)}))),top:!0},{name:"Entry number of modules",values:(r.build.entries||[]).sort(mi((e=>e.size))).map((e=>({name:e.name,value:e.inputs.length.toString()})))||[],top:!0}])),o.push(...(e=>{const t={name:"General Numbers",values:[],top:!1},n=e.build.inputs?e.build.inputs.length:0,o=e.build.outputs?e.build.outputs.length:0,r=e.build.warnings.length,i=e.build.errors.length,s=e.build.entries?e.build.entries.length:0;return e.build.start&&t.values.push({name:"Overhead duration",value:J(e.build.start-e.start)}),e.build.duration&&t.values.push({name:"Build duration",value:J(e.build.duration)}),e.build.writeDuration&&t.values.push({name:"Write duration",value:J(e.build.writeDuration)}),t.values.push({name:"Number of modules",value:n.toString()},{name:"Number of assets",value:o.toString()},{name:"Number of entries",value:s.toString()},{name:"Number of warnings",value:r.toString()},{name:"Number of errors",value:i.toString()}),[t]})(e));const i=(e=>{let t="";for(const t of e){t.top&&t.values.length>=5&&(t.values=t.values.slice(0,5),t.name=`Top 5 ${t.name}`);for(const e of t.values)e.name=G(e.name,60)}const n=Math.max(...e.map((e=>e.name.length))),o=Math.max(...e.flatMap((e=>e.values.map((e=>e.name.length))))),r=Math.max(...e.flatMap((e=>e.values.map((e=>e.value.length))))),i=Math.max(n+4,o+r+4);for(const n of e){if(0===n.values.length)continue;const e=i-(n.name.length+4);t+=`\n== ${n.name} ${"=".repeat(e)}=\n`;for(const e of n.values){const n=r-e.value.length;t+=` [${pi(e.value)}] ${" ".repeat(n)}${fi(e.name)}\n`}}return t})(o);t.info(i)},yi="api/v1/series",bi=t.bold.green,wi=(e,t,n)=>{if(!t.apiKey)return void n.info("Won't send metrics to Datadog: missing API Key.");if(!e.size)return void n.debug("No metrics to send.");const o=Array.from(e).filter((e=>e.toSend)).map((e=>({...e,toSend:void 0}))),r=new Map;for(const e of o)r.has(e.metric)||r.set(e.metric,0),r.set(e.metric,r.get(e.metric)+1);const i=Array.from(r.entries()).sort((([e],[t])=>e.localeCompare(t))).map((([e,t])=>`${e} - ${t}`));return n.debug(`\nSending ${o.length} metrics with configuration:\n - intake: ${bi(`https://api.${t.site}/${yi}`)}\n\nMetrics:\n - ${i.join("\n - ")}`),B({method:"POST",url:`https://api.${t.site}/${yi}?api_key=${t.apiKey}`,getData:()=>({data:JSON.stringify({series:o})})}).catch((e=>{n.error(`Error sending metrics ${e}`)}))},vi=["onStart","onLoad","onResolve","onEnd"],$i=new Map,ki=new Map,xi=new Map,Ei=(e,t,n)=>{const o=Object.assign({},e);for(const r of vi)o[r]=async(o,i)=>{const s=ki.get(t)||{name:t,increment:0,duration:0,events:{}};s.events[r]=s.events[r]||{name:r,values:[]};const a="onLoad"===r;return(0,e[r])(o,(async(...e)=>{const o=ui(e[0].path,n),u=xi.get(o)||{name:o,increment:0,duration:0,events:{}};u.events[r]=u.events[r]||{name:r,values:[]};const c=$.performance.now();try{return await i(...e)}finally{const n=$.performance.now(),i=n-c,d={start:c,end:n,duration:i,context:li(e)};if(s.events[r].values.push(d),s.duration+=i,s.increment+=1,ki.set(t,s),u.events[r].values.push(d),u.duration+=i,u.increment+=1,xi.set(o,u),a){const e=$i.get(t)||{name:t,increment:0,duration:0,events:{}};e.events[r]=e.events[r]||{name:r,values:[]},e.events[r].values.push(d),e.duration+=i,e.increment+=1,$i.set(t,e)}}}))};return o},Si=(e,t)=>({setup:n=>{n.initialOptions.metafile=!0;const o=t.time("wrapping plugins");((e,t)=>{const n=e.initialOptions.plugins;if(n){const e=n.map((e=>({...e})));for(const o of n){const n=o.setup;o.setup=async r=>{const i=Ei(r,o.name,t);await n({...i,initialOptions:{...i.initialOptions,plugins:e}})}}}})(n,e.buildRoot),o.end(),n.onEnd((async n=>{if(!n.metafile)return void t.warn("Missing metafile, can't proceed with modules data.");const o=t.time("getting plugins results"),{plugins:r,loaders:i,modules:s}={plugins:ki,modules:xi,loaders:$i};o.end(),await e.asyncHook("timings",{tapables:r,loaders:i,modules:s})}))}});class Ii{constructor(e){this.started={},this.finished=[],this.cwd=e}startModule(e,t){const n=ci(e,t,this.cwd),o=(e=>(e.loaders||[]).map((e=>e.loader||e)).map(di))(e);o.length||o.push("no-loader"),this.started[n]={module:ai(n),timings:{start:$.performance.now(),duration:0,end:0},loaders:o}}doneModule(e,t){const n=ci(e,t,this.cwd),o=this.started[n];o&&(o.timings.end=$.performance.now(),o.timings.duration=o.timings.end-o.timings.start,this.finished.push(o),delete this.started[n])}getResults(){const e=new Map,t=new Map;for(const n of this.finished){const o=n.timings.end-n.timings.start,r=t.get(n.module)||{name:n.module,increment:0,duration:0,events:{}},i=n.loaders.join(",");r.events[i]=r.events[i]||{name:i,values:[]},r.events[i].values.push(n.timings),r.increment+=1,r.duration+=o,t.set(n.module,r);for(const t of n.loaders){const n=e.get(t)||{name:t,increment:0,duration:0,events:{}};n.increment+=1,n.duration+=o,e.set(t,n)}}return{loaders:e,modules:t}}}class ji{constructor(e){this.monitoredTaps={},this.tapables=[],this.hooks={},this.timings=new Map,this.ignoredHooks=["normalModuleLoader"],this.cwd=e}saveResult(e,t,n,o,r,i){const s=this.timings.get(t)||{name:t,duration:0,increment:0,events:{}};s.events[n]||(s.events[n]={name:n,values:[]}),s.events[n].values.push({start:r,end:i,duration:i-r,context:o,type:e}),s.duration+=i-r,s.increment+=1,this.timings.set(t,s)}getResults(){const e=this.timings;for(const[t,n]of this.timings){const o=n;o.duration=Object.values(n.events).map((e=>e.values.reduce(((e,t)=>e+t.end-t.start),0))).reduce(((e,t)=>e+t),0),e.set(t,o)}return{monitoredTaps:this.monitoredTaps,tapables:this.tapables,hooks:this.hooks,timings:e}}getPromiseTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=t.apply(this,r),a=()=>{this.saveResult(e,n,o,li(r),i,$.performance.now())};return s.then(a,a),s}}getAsyncTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=r.pop();return t.apply(this,[...r,(...t)=>(this.saveResult(e,n,o,li(r),i,$.performance.now()),s(...t))])}}getDefaultTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=t.apply(this,r);return this.saveResult(e,n,o,li(r),i,$.performance.now()),s}}getTapPatch(e,t,n,o){switch(e){case"promise":return this.getPromiseTapPatch(e,t,n,o);case"async":return this.getAsyncTapPatch(e,t,n,o);default:return this.getDefaultTapPatch(e,t,n,o)}}newTap(e,t,n,o){return(r,i)=>{const s="string"==typeof(a=r)?a:a.name;var a;const u=`${t}-${s}`;if(this.monitoredTaps[u])return n.call(o,r,i);this.monitoredTaps[u]=!0;const c=this.getTapPatch(e,i,s,t);return n.call(o,r,c)}}replaceTaps(e,t){t.tap=this.newTap("default",e,t.tap,t),t.tapAsync=this.newTap("async",e,t.tapAsync,t),t.tapPromise=this.newTap("promise",e,t.tapPromise,t)}patchHook(e,t,n){n._fakeHook||e.includes(ti)||(this.hooks[e]||(this.hooks[e]=[]),this.hooks[e].includes(t)||(this.hooks[e].push(t),this.replaceTaps(t,n)))}patchHooks(e){const t=e.constructor.name,n=Object.keys(e.hooks).filter((e=>!this.ignoredHooks.includes(e)&&!this.hooks[t]?.includes(e)));for(const o of n)this.patchHook(t,o,e.hooks[o])}checkNewHooks(){for(const e of this.tapables)this.patchHooks(e)}throughHooks(e){this.tapables.includes(e)||this.tapables.push(e),this.patchHooks(e)}}const Ai=e=>async t=>{const n=e.getLogger(ti),o={name:ti},r=new ji(e.buildRoot),i=new Ii(e.buildRoot),s=n.time("parse compiler hooks");r.throughHooks(t),s.end(),t.hooks.thisCompilation.tap(o,(e=>{const t=n.time("parse compilation hooks");r.throughHooks(e),t.end(),e.hooks.buildModule.tap(o,(t=>{i.startModule(t,e)})),e.hooks.succeedModule.tap(o,(t=>{i.doneModule(t,e)})),e.hooks.failedModule&&e.hooks.failedModule.tap(o,(t=>{i.doneModule(t,e)}))})),t.hooks.afterEmit.tapPromise(o,(async()=>{const{timings:t}=r.getResults(),{loaders:n,modules:o}=i.getResults();await e.asyncHook("timings",{tapables:t,loaders:n,modules:o})}))},Di={filters:Zr},Pi=({options:e,context:t,stores:n})=>{const o=t.getLogger(ti);let r=0;((e,t)=>{e.addMetric=e=>{t.metrics.add(e)}})(t,n);const i=((e,t)=>{const n=e[ei],o=ni(n?.timestamp);let r=!1===n?.enableDefaultPrefix?"":`build.${t}`;return n?.prefix&&(r+=r?`.${n.prefix}`:n.prefix),{enableDefaultPrefix:!0,enableTracing:!1,filters:Zr,tags:[],...e[ei],timestamp:o,prefix:r.toLowerCase().replace(/(^\.*|\.*$)/g,"")}})(e,t.bundler.name),s=[],a={name:ti,enforce:"pre",esbuild:Si(t,o),webpack:Ai(t),rspack:Ai(t)},u=o.time("build",{start:!1}),c=i.enableTracing&&["esbuild","webpack","rspack"].includes(t.bundler.name);let d,l;const p=async()=>{if(!n.metrics.size)return;const e=o.time("aggregating collected metrics"),r=(()=>{const e=new Set(n.metrics);n.metrics.clear();const o=oi(t,i.tags);return ii(e,i.timestamp,i.filters,o,i.prefix)})();await t.asyncHook("metrics",r),e.end();const s=o.time("sending collected metrics to Datadog");await wi(r,{apiKey:t.auth.apiKey,site:t.auth.site},o),s.end()},f=async()=>{t.build.end=Date.now(),t.build.duration=t.build.end-t.build.start,t.build.writeDuration=t.build.end-r;const e=o.time("aggregating metrics"),n=i.timestamp,s=o.time("aggregate universal metrics"),a=((e,t)=>{const n=new Set,o=e.inputs||[],r=e.outputs||[],i=e.entries||[],s=e.warnings.length,a=e.errors.length,u=e.duration,c=new Map,d=new Map,l=new Map;for(const e of i){for(const t of e.inputs)c.has(t.filepath)||c.set(t.filepath,[]),c.get(t.filepath).push(e.name);for(const t of e.outputs){const n=t.filepath.replace(/\.map$/,"");l.has(n)||l.set(n,[]),l.get(n).push(e.name)}}for(const e of r)for(const t of e.inputs)d.has(t.filepath)||d.set(t.filepath,[]),d.get(t.filepath).push(e.name);n.add({metric:"assets.count",type:"count",points:[[t,r.length]],tags:[]}).add({metric:"entries.count",type:"count",points:[[t,i.length]],tags:[]}).add({metric:"errors.count",type:"count",points:[[t,a]],tags:[]}).add({metric:"modules.count",type:"count",points:[[t,o.length]],tags:[]}).add({metric:"warnings.count",type:"count",points:[[t,s]],tags:[]}),u&&n.add({metric:"compilation.duration",type:"duration",points:[[t,u]],tags:[]});for(const e of o){const o=[`moduleName:${e.name}`,`moduleType:${e.type}`];c.has(e.filepath)&&o.push(...c.get(e.filepath).map((e=>`entryName:${e}`))),d.has(e.filepath)&&o.push(...d.get(e.filepath).map((e=>`assetName:${e}`))),n.add({metric:"modules.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"modules.dependencies",type:"count",points:[[t,e.dependencies.size]],tags:o}).add({metric:"modules.dependents",type:"count",points:[[t,e.dependents.size]],tags:o})}for(const e of r){const o=[`assetName:${e.name}`,`assetType:${e.type}`],r=e.filepath.replace(/\.map$/,"");l.has(r)&&o.push(...l.get(r).map((e=>`entryName:${e}`))),n.add({metric:"assets.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"assets.modules.count",type:"count",points:[[t,e.inputs.length]],tags:o})}for(const e of i){const o=[`entryName:${e.name}`];n.add({metric:"entries.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"entries.modules.count",type:"count",points:[[t,e.inputs.length]],tags:o}).add({metric:"entries.assets.count",type:"count",points:[[t,e.outputs.length]],tags:o})}return n})(l,n);s.end();const u=o.time("aggregate plugins metrics"),c=((e,t)=>{const n=new Set;if(!e)return n;n.add({metric:"plugins.count",type:"count",points:[[t,e.size]],tags:[]});for(const o of e.values()){let e=0,r=0;for(const i of Object.values(o.events)){let s=0;r+=i.values.length;for(const t of i.values){const n=t.end-t.start;s+=n,e+=n}n.add({metric:"plugins.hooks.duration",type:"duration",points:[[t,s]],tags:[`pluginName:${o.name}`,`hookName:${i.name}`]}).add({metric:"plugins.hooks.increment",type:"count",points:[[t,i.values.length]],tags:[`pluginName:${o.name}`,`hookName:${i.name}`]})}n.add({metric:"plugins.duration",type:"duration",points:[[t,e]],tags:[`pluginName:${o.name}`]}).add({metric:"plugins.increment",type:"count",points:[[t,r]],tags:[`pluginName:${o.name}`]})}return n})(d?.tapables,n);u.end();const p=o.time("aggregate loaders metrics"),f=((e,t)=>{const n=new Set;if(!e)return n;n.add({metric:"loaders.count",type:"count",points:[[t,e.size]],tags:[]});for(const o of e.values())n.add({metric:"loaders.duration",type:"duration",points:[[t,o.duration]],tags:[`loaderName:${o.name}`]}).add({metric:"loaders.increment",type:"count",points:[[t,o.increment]],tags:[`loaderName:${o.name}`]});return n})(d?.loaders,n);p.end();const m=new Set([...a,...c,...f]),g=oi(t,i.tags),h=ii(m,n,i.filters,g,i.prefix);await t.asyncHook("metrics",h),e.end();const y=o.time("outputing report");hi(t,o,d),y.end();const b=o.time("sending metrics to Datadog");await wi(h,{apiKey:t.auth.apiKey,site:t.auth.site},o),b.end()},m={name:"datadog-universal-metrics-plugin",enforce:"post",buildStart(){u.resume(),t.build.start=t.build.start||Date.now(),e[ei]?.timestamp||(i.timestamp=ni(t.build.start))},buildEnd(){u.end(),r=Date.now()},async timings(e){d=e,l&&await f()},async buildReport(e){l=e,!d&&c||await f()},async flush(){await p()}};return i.enableTracing&&s.push(a),s.push(m),s},Mi="output",Ci="datadog-output-plugin",Oi=(e,t)=>"string"==typeof t?t.replace(/(\.json)?$/,".json"):!0===t?`${e}.json`:t,Ni=e=>{const t=void 0===e;return{build:Oi("build",e?.build??t),bundler:Oi("bundler",e?.bundler??t),dependencies:Oi("dependencies",e?.dependencies??t),errors:Oi("errors",e?.errors??t),logs:Oi("logs",e?.logs??t),metrics:Oi("metrics",e?.metrics??t),timings:Oi("timings",e?.timings??t),warnings:Oi("warnings",e?.warnings??t)}},Ti=(e,t)=>n=>{n.hooks.done.tap("bundler-outputs",(n=>{t((()=>{const t=e.time("stats serialization"),o=n.toJson({all:!1,assets:!0,children:!0,chunks:!0,chunkGroupAuxiliary:!0,chunkGroupChildren:!0,chunkGroups:!0,chunkRelations:!0,entrypoints:!0,errors:!0,ids:!0,modules:!0,nestedModules:!0,relatedAssets:!0,warnings:!0,reasons:!1,chunkModules:!1});return t.end(),o}))}))},Ri=e=>{const t=new Set;return{buildStart(){t.clear()},writeBundle(e,n){t.add(n)},closeBundle(){e((()=>Array.from(t)))}}},_i=({options:e,context:t})=>{const n=t.getLogger(Ci),o=(e=>({path:"./",...e[Mi],files:Ni(e[Mi]?.files)}))(e),r=(e,r)=>{const u=o.files[e];if(!r||!1===u)return;t.queue((async()=>{const e=n.time(`output ${u}`),c=((e,t,n)=>{const o=a.isAbsolute(t)?t:a.resolve(e,t);return a.resolve(o,n)})(t.bundler.outDir,o.path,u);let d;try{const e="function"==typeof r?await r():r;await(async(e,t)=>{await be(a.dirname(e));const n=i.createWriteStream(e),o=new s.JsonStreamStringify(t,void 0,2),r=new Promise(((e,t)=>{o.on("end",(()=>{e()})),o.on("error",(e=>{t(e)}))}));return o.pipe(n),r})(c,e)}catch(e){d=e}d?n.error(`Failed writing ${u}: ${d}`):n.debug(`Wrote "./${a.relative(t.buildRoot,c)}"`),e.end()})())};return[{name:Ci,buildReport(e){const t=n.time("serialize report"),o=K(e);t.end(),r("build",{bundler:o.bundler,metadata:o.metadata,start:o.start,end:o.end,duration:o.duration,writeDuration:o.writeDuration,entries:o.entries,outputs:o.outputs}),r("logs",o.logs),r("timings",o.timings),r("dependencies",o.inputs),r("errors",o.errors),r("warnings",o.warnings)},metrics(e){r("metrics",(()=>Array.from(e)))},esbuild:{setup(e){e.onEnd((e=>{r("bundler",e.metafile)}))}},rspack:Ti(n,(e=>{r("bundler",e)})),rollup:Ri((e=>{r("bundler",e)})),vite:Ri((e=>{r("bundler",e)})),webpack:Ti(n,(e=>{r("bundler",e)}))}]},Fi="rum",Li="datadog-rum-plugin",qi=["8","9","a","b"],zi=(e,t)=>{let n;e.debugId&&(n=t?(e=>{const t=l.createHash("sha256").update(e).digest("hex").slice(0,32),n=`${t.slice(0,12)}4${t.slice(13)}`,o=n.charCodeAt(16)%4,r=`${n.slice(0,16)}${qi[o]}${n.slice(17)}`;return[r.slice(0,8),r.slice(8,12),r.slice(12,16),r.slice(16,20),r.slice(20,32)].join("-")})(t.sourceOrHash):l.randomUUID());const o={ddDebugId:n,service:e.service,version:e.version};return{code:`(function(c,n){try{if(typeof window==='undefined')return;var w=window,m=w[n]=w[n]||{},s=new Error().stack;s&&(m[s]=c)}catch(e){}})(${JSON.stringify(o)},${JSON.stringify("DD_SOURCE_CODE_CONTEXT")});`,debugId:n}},Bi="datadog-rum-privacy-plugin";const Vi=(e,t)=>{const n=t.getLogger(Bi),o=function(e,t){const n={privacy:{addToDictionaryHelper:{expression:{code:e}}}};return["esbuild","webpack","rspack"].includes(t)&&(n.output={...n.output,inlineSourceMap:!1,embedCodeInSourceMap:!0}),n}(e.helperCodeExpression,t.bundler.name);let r=0,i=0;return{name:Bi,enforce:"post",transform:{filter:{id:{include:e.include,exclude:e.exclude}},handler(e,t){try{const n=function(e){if("rspack"===e?.framework||"webpack"===e?.framework)switch(typeof e.inputSourceMap){case"undefined":return;case"string":return e.inputSourceMap;default:return JSON.stringify(e.inputSourceMap)}}(this.getNativeBuildContext?.()),s=k.instrument({id:t,code:e,map:n},o);return 0===s.privacyDictionarySize?{code:e}:(r+=s.privacyDictionarySize,i++,s)}catch(t){return n.error(`Instrumentation Error: ${t}`,{forward:!0}),{code:e}}}},buildEnd:()=>{n.debug(`Privacy dictionary will include ${r} entries across ${i} files`,{forward:!0,context:{dictionaryEntryCount:r,fileCount:i}})}}},Ui=e=>`DD_RUM.init({${JSON.stringify(e.sdk).replace(/(^{|}$)/g,"")}});\n`,Wi=(e,t)=>{const n=e.sdk;if(n.clientToken)return Ui(e);if(!t.auth.apiKey||!t.auth.appKey)throw new Error('Missing "auth.apiKey" and/or "auth.appKey" to fetch "rum.sdk.clientToken".');return async()=>{let o;try{const e=await B({url:`https://api.${t.auth.site}/api/v2/rum/applications/${n.applicationId}`,type:"json",auth:t.auth});o=e.data?.attributes?.client_token}catch(e){throw new Error(`Could not fetch the clientToken: ${e.message}`)}if(!o)throw new Error("Missing clientToken in the API response.");return Ui({...e,sdk:{clientToken:o,...n}})}},Ki=e=>{const n=t.bold.red,o=e[Fi]||{},r={errors:[]};if(!o.sdk)return r;o.sdk.applicationId||r.errors.push(`Missing ${n("applicationId")} in the SDK configuration.`),e.auth.apiKey&&e.auth.appKey||o.sdk.clientToken||r.errors.push(`Missing ${n('"auth.apiKey"')} and/or ${n('"auth.appKey"')} to fetch missing client token.`);const i={applicationId:"unknown_application_id",allowUntrustedEvents:!1,compressIntakeRequests:!1,defaultPrivacyLevel:"mask",enablePrivacyForActionName:!1,sessionReplaySampleRate:0,sessionSampleRate:100,silentMultipleInit:!1,site:e.auth.site||"datadoghq.com",startSessionReplayRecordingManually:!1,storeContextsAcrossPages:!1,telemetrySampleRate:20,traceSampleRate:100,trackingConsent:"granted",trackLongTasks:!1,trackResources:!1,trackUserInteractions:!1,trackViewsManually:!1};return r.config={...i,...o.sdk},r},Hi=e=>{const t=e[Fi]||{},n={errors:[]};if(t.privacy){const e={exclude:[/\/node_modules\//,/\.preval\./,/^[!@#$%^&*()=+~`-]/],include:[/\.(?:c|m)?(?:j|t)sx?$/],addToDictionaryFunctionName:"$",helperCodeExpression:"/*__PURE__*/((q='$DD_A_Q',g=globalThis)=>(g[q]=g[q]||[],(v=>(g[q].push(v),v))))()"};n.config={...e,...t.privacy}}return n},Ji=e=>{const n=t.bold.red,o=e[Fi]||{},r={errors:[]};if(!o.sourceCodeContext)return r;const i=o.sourceCodeContext;return i?.debugId||i?.service&&"string"==typeof i.service||r.errors.push(`Missing ${n('"rum.sourceCodeContext.service"')}.`),r.config={...i,version:i.version||e.metadata?.version},r},Gi=({options:e,context:t})=>{const n=((e,t)=>{const n=[],o=Ki(e),r=Hi(e),i=Ji(e);if(n.push(...o.errors),n.push(...r.errors),n.push(...i.errors),n.length)throw t.error(`\n - ${n.join("\n - ")}`),new Error(`Invalid configuration for ${Li}.`);const s={...e[Fi],sdk:void 0,privacy:void 0,sourceCodeContext:void 0};return o.config&&(s.sdk=o.config),r.config&&(s.privacy=r.config,t.debug(`datadog-rum-privacy plugin options: ${JSON.stringify(s.privacy,((e,t)=>t instanceof RegExp?t.toString():t))}`,{forward:!0})),i.config&&(s.sourceCodeContext=i.config),s})(e,t.getLogger(Li)),o=[],r=n.sourceCodeContext;if(r&&t.inject({type:"code",position:Ee.BEFORE,injectIntoAllChunks:!0,value:e=>{const{code:t}=zi(r,e);return t}}),n.sdk&&(t.inject({type:"file",position:Ee.MIDDLE,value:a.join(__dirname,"./rum-browser-sdk.js")}),t.inject({type:"code",position:Ee.MIDDLE,value:Wi(n,t)})),n.privacy){t.inject({type:"file",position:Ee.BEFORE,value:a.join(__dirname,"./privacy-helpers.js")});const e=Vi(n.privacy,t);o.push(e)}return o},Yi="datadog-analytics-plugin",Qi=({context:e})=>{const t=e.getLogger(Yi);return[{name:Yi,async buildStart(){"production"===e.env&&e.queue((async()=>{try{await e.sendLog({message:"Build started",context:{plugins:e.pluginNames}})}catch(e){t.debug(`Could not submit data to Datadog: ${e}`)}})())}}]},Xi="datadog-async-queue-plugin",Zi=e=>{const{context:t,stores:n}=e,o=t.getLogger(Xi),r=[];return t.queue=e=>{const t=e.catch((e=>{r.push(e.message||e.toString())}));n.queue.push(t)},[{name:Xi,asyncTrueEnd:async()=>{await Promise.all(n.queue),r.length>0&&o.error(`Error occurred while processing async queue:\n ${r.join("\n ")}`)}}]},es=async(e,t,n)=>{const o=[],r=e.initialOptions.entryPoints,i=[],s=[];if(Array.isArray(r))for(const e of r){const t=e&&"object"==typeof e?e.in:e;i.push({path:t})}else r&&"object"==typeof r&&i.push(...Object.entries(r).map((([e,t])=>({name:e,path:t}))));const a=i.flatMap((e=>{return(t=e.path,t.includes("*")?m.glob.sync(t):[t]).map((t=>[e,t]));var t})).map((async([n,r])=>{const i=await e.resolve(r,{kind:"entry-point",resolveDir:t.buildRoot});i.errors.length&&s.push(...i.errors.map((e=>e.text))),i.path&&o.push({name:n.name,resolved:i.path,original:n.path})}));for(const e of s)n.error(e);return await Promise.all(a),o},ts=(e,t)=>W(t)?A:t.startsWith(e)||a.isAbsolute(t)?t:a.resolve(e,t),ns=(e,t)=>{const n=[...e].map((e=>ts(t||process.cwd(),e).split(a.sep))),o=n.length?Math.min(...n.map((e=>e.length))):0,r=[];for(let e=0;e<o;e++){const t=n[0][e];if(!n.every((n=>n[e]===t)))break;r.push(t)}return r.length>0&&r.join(a.sep)||a.sep},os=/\.(?!.*(?:\.|\/|\\))(\w{1,})/g,rs=/(\?|%3F|\|)+/gi,is=e=>{return"unknown"===e?e:e.includes("webpack/runtime")?"runtime":(t=us(e),os.lastIndex=0,os.exec(t)?.[1]||"unknown");var t},ss=["unknown","commonjsHelpers.js",`vite${a.sep}preload-helper.js`],as=(e,t,n)=>{const o=new Set;for(const n of e){const e=us(n);W(n)||e===t||ss.includes(e)||o.add(e)}return o},us=e=>e.split("!").pop().split(rs).shift().replace(/^[^\w\s.,!@#$%^&*()=+~`\-/\\]+/,""),cs=(e,t)=>W(t)?A:"unknown"===t?t:t.includes("webpack/runtime")?t.replace("webpack/runtime/","").replace(/ +/g,"-"):((e,t)=>{const n=t.split(a.sep),o=e.split(a.sep).filter(((e,t)=>e===n[t])).join(a.sep);return e.replace(o,"")})(t.split("!").pop(),e).split("node_modules").pop().split(rs).shift().replace(/^((\.\.?)?[/\\])+/g,""),ds=(e,t)=>Object.fromEntries(Object.entries(e).map((([e,n])=>[ts(t,e),n]))),ls=(e,t)=>({setup(n){const o=new Map;let r=[];const i=t.time("build report",{start:!1});n.onStart((async()=>{o.clear(),r=[],i.resume();const s=t.time("process entries");r.push(...await es(n,e,t));for(const t of r){const n=cs(e.bundler.outDir,t.resolved);t.name?o.set(n,t.name):o.set(n,n)}s.end(),i.pause()})),n.onEnd((async n=>{i.resume();const r=t.time("collecting errors and warnings"),s=e.bundler.outDir,u=e.buildRoot;for(const t of n.errors)e.build.errors.push(t.text);for(const t of n.warnings)e.build.warnings.push(t.text);if(r.end(),!n.metafile){const n="Missing metafile from build report.";return e.build.warnings.push(n),void t.warn(n)}const c=[],d=[],l=[],p=[],f=[],m={},g={},h=t.time("indexing metafile data"),y=ds(n.metafile.inputs,u),b=ds(n.metafile.outputs,u);h.end();const w=e=>{if(!W(e))return e;const t=y[ts(u,e)];if(!t)return e;const n=t.imports.find((e=>!W(e.path)));return n?n.path:e},v=t.time("looping through inputs");for(const[e,t]of Object.entries(n.metafile.inputs)){if(W(e))continue;const n=ts(u,e),o={name:cs(s,e),filepath:n,dependents:new Set,dependencies:new Set,size:t.bytes,type:is(e)};m[n]=o,c.push(o)}v.end();const $=t.time("looping through outputs");for(const[e,r]of Object.entries(n.metafile.outputs)){const n=ts(u,e),i=cs(s,n),a=[];for(const e of Object.keys(r.inputs)){if(W(e))continue;const n=m[ts(u,e)];n?a.push(n):t.debug(`Input ${e} not found for output ${i}`)}if(r.entryPoint&&!a.length){const e=m[ts(u,r.entryPoint)];if(!e){t.debug(`Input ${r.entryPoint} not found for output ${i}`);continue}a.push(e)}const c={name:i,filepath:n,inputs:a,size:r.bytes,type:is(n)};if(g[n]=c,"map"===c.type&&p.push(c),d.push(c),!r.entryPoint)continue;const f=m[ts(u,w(r.entryPoint))];if(f){if(!o.get(f.name))continue;const e={...c,name:o.get(f.name)||f.name,outputs:[c],size:c.size};l.push(e)}}$.end();const k=t.time("looping through sourcemaps");for(const e of p){const n=g[e.filepath.replace(/\.map$/,"")];n?e.inputs.push(n):t.debug(`Could not find output for sourcemap ${e.name}`)}k.end();const x={inputs:{report:m,meta:y},outputs:{report:g,meta:b}},E=/(<runtime>|https:|file:|data:|#)/g,S=e=>!W(e)&&!e.match(E),I=(e,n,o={})=>{if(!S(e))return o;const r=n.report[e];if(!r)return t.debug(`Could not find report's ${e}`),o;if(o[r.filepath])return o;o[r.filepath]=r;const i=n.meta[e];if(!i)return t.debug(`Could not find metafile's ${e}`),o;if(!i.imports||!i.imports.length)return o;for(const t of i.imports){const i=t.path.match(/^\.\.?\//),d=i?a.dirname(e):u,l=ts(d,t.path);if(t.external){if(S(t.path)){const e=i?l:t.path,n=x.inputs.report[e]||{filepath:e,name:cs(s,t.path),size:0,type:"external",dependencies:new Set,dependents:new Set};"dependencies"in r&&(n.dependents.add(r),r.dependencies.add(n)),"inputs"in r&&!r.inputs.includes(n)&&r.inputs.push(n),c.includes(n)||c.push(n),x.inputs.report[e]=n,o[n.filepath]=n}}else I(l,n,o)}return o},j=t.time("looping through entries");for(const e of l){const t={},n={};for(const n of e.inputs)I(n.filepath,x.inputs,t);for(const t of e.outputs)I(t.filepath,x.outputs,n);e.inputs=Object.values(t),e.outputs=Object.values(n),e.size=e.outputs.reduce(((e,t)=>e+t.size),0),f.push(e)}j.end();const A=t.time("aggregate dependencies and dependents");for(const e of c){if("external"===e.type)continue;const n=x.inputs.meta[e.filepath];if(n)for(const o of n.imports){if(!S(o.path))continue;const n=o.path.match(/^\.?\.\//),r=n?a.dirname(e.filepath):u,i=ts(r,o.path);let s;if(o.external){const e=n?i:o.path;s=x.inputs.report[e]}else s=x.inputs.report[i];s?(e.dependencies.add(s),s.dependents.add(e)):t.debug(`Could not find input file of ${o.path} imported from ${e.name}`)}else t.debug(`Could not find metafile's ${e.name}`)}A.end(),e.build.outputs=d,e.build.inputs=c,e.build.entries=f,i.end(),await e.asyncHook("buildReport",e.build)}))}}),ps=(e,t)=>{const n=t.time("module parsing",{start:!1}),o=t.time("build report",{start:!1}),r=t.time("filling entries",{start:!1}),s=t.time("filling inputs and outputs",{start:!1}),a=t.time("completing dependencies and dependents",{start:!1}),u=t.time("filling dependencies and dependents",{start:!1}),c=t.time("filling sourcemaps inputs",{start:!1}),d=new Map,l=new Map,p=new Map,f=new Map;return{buildStart(){f.clear(),d.clear(),l.clear(),p.clear()},onLog(t,n){"warn"===t&&e.build.warnings.push(n.message||n.toString())},renderError(t){t&&e.build.errors.push(t.message)},moduleParsed(e){n.resume();const t=us(e.id),o=f.get(t)||{dependencies:new Set,dependents:new Set},r=as(new Set([...e.dynamicallyImportedIds,...e.importedIds]),t),i=as(new Set([...e.dynamicImporters,...e.importers]),t);for(const e of i)o.dependents.add(e);for(const e of r)o.dependencies.add(e);f.set(t,o),n.tag([`module:${t}`],{span:!0}),n.pause()},writeBundle(n,m){o.resume();const g=n.dir?ts(e.buildRoot,n.dir):e.bundler.outDir,h=new Set,y=new Set,b=new Map;a.resume();for(const[e,{dependencies:t,dependents:n}]of f){for(const n of t){const t=us(n),o=f.get(t)||{dependencies:new Set,dependents:new Set};o.dependents.has(e)||(o.dependents.add(e),f.set(t,o))}for(const t of n){const n=us(t),o=f.get(n)||{dependencies:new Set,dependents:new Set};o.dependencies.has(e)||(o.dependencies.add(e),f.set(n,o))}}a.end(),s.resume();for(const[e,n]of Object.entries(m)){const o=ts(g,e),r="code"in n?Buffer.byteLength(n.code,"utf8"):Buffer.byteLength(n.source,"utf8"),s=l.get(o)||{name:e,filepath:o,inputs:[],size:r,type:is(e)};if("map"===s.type&&y.add(s),"modules"in n)for(const[e,t]of Object.entries(n.modules)){if(us(e)!==e)continue;let n=t.originalLength;if(!n&&0!==n)try{n=i.statSync(e).size}catch(e){n=t.renderedLength}const o=d.get(e)||{name:cs(g,e),dependencies:new Set,dependents:new Set,filepath:e,size:n,type:is(e)};s.inputs.push(o),d.set(o.filepath,o)}if("imports"in n)for(const e of n.imports){const n=us(e);if(!f.has(n)){b.set(ts(g,n),s);continue}if(d.has(n)){t.debug(`Input report already there for ${n} from ${s.name}.`);continue}const o=d.get(n)||{name:cs(g,e),dependencies:new Set,dependents:new Set,filepath:n,size:0,type:"external"};s.inputs.push(o),d.set(o.filepath,o)}"isEntry"in n&&n.isEntry&&h.add({...s,name:n.name,size:0,outputs:[s]}),l.set(s.filepath,s)}s.end();for(const[e,n]of b){const o=l.get(e);o?n.inputs.includes(o)||n.inputs.push(o):t.debug(`Could not find the output report for ${e}.`)}u.resume();for(const[e,n]of d){const o=f.get(e);if(o){for(const e of o.dependencies){const o=d.get(e);o?n.dependencies.add(o):t.debug(`Could not find input for dependency ${cs(g,e)} of ${n.name}`)}for(const e of o.dependents){const o=d.get(e);o?n.dependents.add(o):t.debug(`Could not find input for dependent ${cs(g,e)} of ${n.name}`)}}else t.debug(`Could not find the import report for ${n.name}.`)}if(u.end(),y.size){c.resume();for(const e of y){const n=e.filepath.replace(/\.map$/,""),o=l.get(n);o?e.inputs.push(o):t.debug(`Could not find output for sourcemap ${e.name}`)}c.end()}const w=(e,n=new Map)=>{if(n.has(e))return n;const o=cs(g,e),r=l.get(e);if(!r)return d.has(o)||t.debug(`Could not find output for ${o}`),n;n.set(e,r);const i=m[cs(g,e)];if(!i)return t.debug(`Could not find asset for ${o}`),n;const s=[];"imports"in i&&s.push(...i.imports),"dynamicImports"in i&&s.push(...i.dynamicImports);for(const e of s)w(ts(g,e),n);return n};r.resume();for(const e of h){const n=w(e.filepath);e.outputs=Array.from(n.values()),e.inputs=Array.from(new Set(e.outputs.flatMap((e=>e.inputs)))),e.size=e.outputs.reduce(((e,t)=>e+t.size),0),p.has(e.filepath)&&t.debug(`Entry "${e.name}":"${cs(g,e.filepath)}" already reported.`),p.set(e.filepath,e)}r.pause(),o.pause()},async closeBundle(){e.build.inputs=Array.from(d.values()),e.build.outputs=Array.from(l.values()),e.build.entries=Array.from(p.values()),r.end(),o.end(),await e.asyncHook("buildReport",e.build)}}},fs=(e,t,n)=>o=>{let r=[],i=[],s=[];const a=new Map,u=new Map,c=new Map,d=new Map,l=[],p=new Map,f=n.time("build report",{start:!1}),m=e=>!(!e||e.startsWith("webpack/runtime")||e.startsWith("multi ")||W(e)),g=e=>e.replace(/(^external[^"]+"|"$)/g,""),h=e=>{const t=(e=>{const t=e.identifier();return{identifier:()=>t,dependencies:"dependencies"in e?[...e.dependencies]:[],blocks:"blocks"in e?[...e.blocks]:[],externalType:"externalType"in e?e.externalType:void 0,external:"external"in e?e.external:void 0}})(e),n=(e=>{const t=new Set,n=["rawRequest","resource","request","userRequest"],o=e=>{const n=us(e);t.add(n),n.startsWith("external ")&&t.add(g(n))};o(e.identifier());for(const t of n){const n=e[t];t&&t in e&&"string"==typeof n&&o(n)}return t})(e);for(const e of n)if(d.has(e)){const n=d.get(e);n.dependencies.push(...t.dependencies||[]),n.blocks.push(...t.blocks||[])}else d.set(e,t)},y=(e,t=[])=>{if("dependencies"in e)for(const n of e.dependencies)t.push(n),y(n,t);if("blocks"in e)for(const n of e.blocks)y(n,t);return t},b=(e,t)=>{if("request"in t&&t.request){const n=us(t.request);if(d.has(n))return d.get(n);if(e.context){const t=ts(us(e.context),n);if(d.has(t))return d.get(t)}}},w=e=>!(!("externalType"in e)||!e.externalType)||(!(!("external"in e)||!e.external)||!!e.identifier?.().startsWith("external "));o.hooks.thisCompilation.tap(t,(o=>{r=[],i=[],s=[],a.clear(),u.clear(),d.clear(),p.clear(),o.hooks.finishModules.tap(t,(t=>{f.resume();const o=n.time("dependency graph"),i=n.time("indexing modules");for(const e of t)h(e);i.end();const s=n.time("building inputs");for(const n of t){const t=n.identifier(),o=cs(e.bundler.outDir,t),i=new Set(y(n).map((e=>{const o=b(n,e);if(!o?.identifier())return!1;const r=o.identifier();return!!m(r)&&(r!==t&&(w(o)?g(r):r))})).filter(Boolean));if(!m(t))continue;const s=p.get(t)||{dependents:new Set,dependencies:new Set};for(const e of i){const n=p.get(e)||{dependencies:new Set,dependents:new Set};n.dependents.add(t),s.dependencies.add(e),p.set(e,n)}p.set(t,s);const u=w(n)?{size:0,name:g(o),dependencies:new Set,dependents:new Set,filepath:t,type:"external"}:{size:n.size()||0,name:o,dependencies:new Set,dependents:new Set,filepath:t,type:is(t)};r.push(u),a.set(t,u),w(n)&&a.set(g(t),u)}s.end();const u=n.time("assigning dependencies and dependents");for(const e of r){const t=p.get(e.filepath);if(t){for(const o of t.dependencies){const t=a.get(o);t?e.dependencies.add(t):n.debug(`Could not find input of dependency ${o}`)}for(const o of t.dependents){const t=a.get(o);t?e.dependents.add(t):n.debug(`Could not find input of dependent ${o}`)}}else n.debug(`Could not find dependency report for ${e.name}`)}u.end(),o.end(),f.pause()}))})),o.hooks.afterEmit.tapPromise(t,(async t=>{f.resume();const o=t.chunks,d=t.getAssets(),p=t=>[...t.files||[],...t.auxiliaryFiles||[]].map((t=>ts(e.bundler.outDir,t))),g=n.time("indexing chunks"),h=t.chunkGraph;for(const e of o){const t=p(e),n=(h?.getChunkModules(e)||[]).flatMap((e=>"modules"in e&&Array.isArray(e.modules)?e.modules.map((e=>e.identifier())):e.identifier())).filter(m);for(const e of t){if("map"===is(e))continue;const t=c.get(e)||new Set;for(const e of n)t.add(e);c.set(e,t)}}g.end();const y=n.time("building outputs");for(const t of d){const o={size:t.source.size()||0,name:t.name,inputs:[],filepath:ts(e.bundler.outDir,t.name),type:is(t.name)};if(u.set(o.filepath,o),i.push(o),"map"===o.type){l.push(o);continue}const r=c.get(o.filepath);if(r)for(const e of r){const t=a.get(e);t?o.inputs.push(t):n.debug(`Could not find input of ${e}`)}else n.debug(`Could not find modules for ${o.name}`)}y.end();const b=n.time("filling sourcemaps inputs");for(const e of l){const t=u.get(e.filepath.replace(/\.map$/,""));t?e.inputs.push(t):n.debug(`Output not found for sourcemap ${e.name}`)}b.end();const w=n.time("building entries"),v=(e,t=new Set)=>{if(t.has(e))return new Set;t.add(e);const n=new Set(e.chunks);for(const o of e.childrenIterable||[]){const e=v(o,t);for(const t of e)n.add(t)}return n};for(const[o,r]of t.entrypoints){const t=new Map,i=new Map;let a=0;const c=v(r),d=Array.from(c).flatMap(p),l=r.chunks.filter((e=>h.getChunkEntryModulesIterable(e)||!1)).flatMap((e=>Array.from(e.files))).filter((e=>e.includes(o)||r.name&&e.includes(r.name))).find((e=>"js"===is(e)));for(const e of d){const o=u.get(e);if(e&&o){if("map"!==o.type&&!t.has(o.name)){t.set(o.name,o);for(const e of o.inputs)i.has(e.filepath)||i.set(e.filepath,e);a+=o.size}}else n.debug(`Could not find output of ${JSON.stringify(e)}`)}const f={name:o,filepath:l?ts(e.bundler.outDir,l):"unknown",size:a,inputs:Array.from(i.values()),outputs:Array.from(t.values()),type:l?is(l):"unknown"};s.push(f)}w.end();for(const n of t.errors)e.build.errors.push(n.message);for(const n of t.warnings)e.build.warnings.push(n.message);e.build.inputs=r,e.build.outputs=i,e.build.entries=s,f.end(),await e.asyncHook("buildReport",e.build)}))},ms="datadog-build-report-plugin",gs=e=>{const{context:t}=e,n=t.getLogger(ms);return[{name:ms,enforce:"post",esbuild:ls(t,n),rspack:fs(t,ms,n),webpack:fs(t,ms,n),vite:ps(t,n),rollup:ps(t,n)}]},hs="datadog-bundler-report-plugin",ys=(e,t)=>t?a.isAbsolute(t)?t:a.resolve(e,t):"",bs=e=>{if(!e)return[];return(Array.isArray(e)?e:[e]).map((e=>e.dir?e.dir:e.file?a.dirname(e.file):void 0)).filter(Boolean)},ws=e=>t=>{e.bundler.rawConfig=t.options,t.options.output?.path&&(e.bundler.outDir=ys(process.cwd(),t.options.output.path)),e.hook("bundlerReport",e.bundler),t.options.context&&(e.buildRoot=t.options.context),e.hook("buildRoot",e.buildRoot)},vs=e=>({configResolved(t){e.bundler.rawConfig=t;let n=t.build?.outDir??"dist";const o=t.build?.rollupOptions?.output,r=bs(o);e.buildRoot=t.root??process.cwd(),o&&r.length&&(n=ns(r,process.cwd())),e.bundler.outDir=ys(e.buildRoot,n),e.hook("buildRoot",e.buildRoot),e.hook("bundlerReport",e.bundler)}}),$s=e=>{const{context:t}=e,n=t.getLogger(hs);return[{name:hs,enforce:"pre",esbuild:{setup(e){t.bundler.rawConfig=e.initialOptions,e.initialOptions.absWorkingDir&&(t.buildRoot=e.initialOptions.absWorkingDir),e.initialOptions.outdir&&(t.bundler.outDir=ys(t.buildRoot,e.initialOptions.outdir)),e.initialOptions.outfile&&(t.bundler.outDir=ys(t.buildRoot,a.dirname(e.initialOptions.outfile))),t.hook("buildRoot",t.buildRoot),t.hook("bundlerReport",t.bundler),e.initialOptions.metafile=!0}},webpack:ws(t),rspack:ws(t),vite:vs(t),rollup:{options(e){let n;if("output"in e){const t=bs(e.output);n=ns(t,process.cwd())}const o=(e=>{const t=new Set;if(e.input){const n=Array.isArray(e.input)?e.input:"object"==typeof e.input?Object.values(e.input):[e.input];for(const e of n){if("string"!=typeof e)throw new Error("Invalid input type");t.add(a.dirname(e))}}return Array.from(t)})(e);if(n){t.bundler.outDir=ts(process.cwd(),n);const e=ns([n,...o],process.cwd());t.buildRoot=e===a.sep?process.cwd():e}else t.buildRoot=ns(o,process.cwd()),t.bundler.outDir=a.resolve(process.cwd(),"dist");t.hook("buildRoot",t.buildRoot)},buildStart(e){t.bundler.rawConfig=e},renderStart(e){t.bundler.rawConfig.outputs=t.bundler.rawConfig.outputs||[],t.bundler.rawConfig.outputs.push(e),t.hook("bundlerReport",t.bundler);const o=bs(e);ns(o,process.cwd()).startsWith(t.bundler.outDir)||n.warn("The output directory has been changed by a plugin and may introduce some inconsistencies in the build report.")}}}]},ks="datadog-custom-hooks-plugin",xs=e=>{const{context:t}=e,n=t.getLogger(ks),o=e=>(o,...r)=>{const i=n.time(`execution | ${o}`,{tags:["type:custom-hook",`hook:${o}`]}),s=[],a=[];for(const n of t.plugins){if(!(o in n))continue;const t=n[o];if("function"==typeof t)try{const i=t(...r);i instanceof Promise&&(e||s.push(`Plugin "${n.name}" returned a promise on the non async hook "${o}".`),a.push(i))}catch(e){s.push(`Plugin "${n.name}" errored on hook "${o}". [${e}]`)}else s.push(`Plugin "${n.name}" has an invalid hook type for "${o}". [${typeof t}]`)}if(s.length>0){for(const e of s)n.error(e);throw new Error("Some plugins errored during the hook execution.")}return Promise.all(a).finally((()=>i.end()))};return t.hook=o(!1),t.asyncHook=o(!0),[{name:ks,enforce:"pre"}]};class Es{constructor(e){this.trackedFilenames=new Map;for(const t of e){const e=this.getFilename(t),n=this.trackedFilenames.get(e);n?n.push(t):this.trackedFilenames.set(e,new Array(t))}}displaySource(e){return e.length<=40?e:`[...]${e.slice(-35)}`}matchSourcemap(e,t){const n=(o=e,i.readFileSync(o,{encoding:"utf-8"}));var o;const r=JSON.parse(n);if(!r.sources)return void t("Missing 'sources' field in sourcemap.");const s=r.sources;if(0===s.length)return void t("Empty 'sources' field in sourcemap.");const a=this.matchSources(s);if(0!==a.length)return a;t(`${s.map(this.displaySource).join(", ")} not in the tracked files.`)}matchSources(e){let t=[];const n=new Set;for(const o of e){const e=this.getFilename(o);if(n.has(e))continue;n.add(e);const r=this.trackedFilenames.get(e);r&&(t=t.concat(r))}return t}rawTrackedFilesList(){let e=[];return this.trackedFilenames.forEach((t=>{e=e.concat(t)})),e}getFilename(e){let t=e.lastIndexOf("/");-1===t?t=0:t++;let n=e.lastIndexOf("?");return(-1===n||n<=t)&&(n=e.length),e.substring(t,n)}}const Ss=async e=>{const t=await e.getRemotes(!0);if(0===t.length)throw new Error("No git remotes available");const n=await Is(e);for(const e of t)if(e.name===n)return Y(e.refs.push);return Y(t[0].refs.push)},Is=async e=>{try{return(await e.getConfig("clone.defaultRemoteName"))?.value??"origin"}catch(e){return"origin"}},js=async e=>e.revparse("HEAD"),As=async e=>(await e.raw("ls-files")).split(/\r\n|\r|\n/),Ds=async e=>e.branch(),Ps=async e=>e.show(["-s","--format=%s"]),Ms=async e=>e.show(["-s","--format=%an,%ae,%aI,%cn,%ce,%cI"]),Cs="datadog-git-plugin",Os=e=>{const{options:t,context:n}=e,o=n.getLogger(Cs),r=o.time("get git information",{start:!1}),i=async e=>{try{const t=await(async e=>{const t={baseDir:e||process.cwd(),binary:"git",maxConcurrentProcesses:3};try{const e=x.simpleGit(t),n=await e.revparse("--show-toplevel");t.baseDir=n}catch{}return x.simpleGit(t)})(a.dirname(e));if(0===(await t.getRemotes(!0)).length)return o.warn("No git remotes available, skipping git plugin. This is expected for a repository that has not been pushed yet."),void r.end();const i=await(async e=>{const t=[js(e),Ds(e),Ps(e),Ms(e),As(e),Ss(e)],[n,o,r,i,s,a]=await Promise.all(t),[u,c,d,l,p,f]=i.split(",").map((e=>e.trim()));return{commit:{author:{name:u,email:c,date:d},committer:{name:l,email:p,date:f},message:r.trim(),hash:n},hash:n,branch:o.current,remote:a.trim(),trackedFilesMatcher:new Es(s)}})(t);n.git=i,r.end(),await n.asyncHook("git",n.git)}catch(e){o.error(`Could not get git information: ${e.message}`)}};return[{name:Cs,enforce:"pre",buildRoot(e){if(H(t))try{r.resume();const t=((e,t)=>{let n,o=ts(process.cwd(),e);for(;!n;){const e=a.resolve(o,t);if($e(e)&&(n=e),o=o.split(a.sep).slice(0,-1).join(a.sep),[a.sep,""].includes(o))break}return n})(e,".git");if(!t)return o.warn("No .git directory found, skipping git plugin."),void r.end();n.queue(i(t))}catch(e){o.error(`Could not get git information: ${e.message}`)}}}]},Ns="datadog-injection-plugin",Ts=/^https?:\/\//,Rs=[".mjs",".mjsx",".js",".ts",".tsx",".jsx"],_s=t.bold.yellow;function Fs(e){return e.some((e=>e.position===Ee.BEFORE||e.position===Ee.AFTER))}function Ls(e){return e.some((e=>e.injectIntoAllChunks))}const qs=(e,t,n)=>{const o=e.filter((e=>e.position===t&&(!n||n.isEntry||e.injectIntoAllChunks))).map((e=>Hs(e.value)?e.value(n):e.value)).filter(Boolean);if(0===o.length)return"";return`// begin injection by Datadog build plugins\n${o.map((e=>`(() => {${e}})();`)).join("\n\n")}\n// end injection by Datadog build plugins`},zs=async(e,t,n=process.cwd())=>{const o=Hs(e.value)?await e.value():e.value;try{if("file"===e.type){const e=o;return await(e.match(Ts)?(async(e,t=5e3)=>{let n;return Promise.race([B({retries:2,minTimeout:100,url:e}).finally((()=>{t&&clearTimeout(n)})),new Promise(((e,o)=>{n=setTimeout((()=>{o(new Error("Timeout"))}),t)}))])})(e):(async(e,t=process.cwd())=>{const n=ts(t,e);return ve(n)})(e,n))}return o}catch(r){const i=`${e.type} - ${G(o)}`;return e.fallback?(t.debug(`Fallback for "${i}": ${r.toString()}`),zs(e.fallback,t,n)):(t.warn(`Failed "${i}": ${r.toString()}`),"")}},Bs=async(e,t,n,o=process.cwd())=>{const r=t.filter(Ks).map((e=>{const t=e.value;return{...e,value:e=>t(e)}})),i=t.filter((e=>!Ks(e))),s=await Promise.all(i.map((async t=>({...t,value:await zs(t,e,o)})))),a=e=>({...e,position:e.position??Ee.BEFORE});n.push(...r.map(a),...s.map(a))},Vs=e=>e instanceof Error&&"code"in e,Us=e=>Rs.includes(e),Ws=(e,t,n)=>{e.warn(`"${_s(t)}" files are not supported (${_s(n)}).`)},Ks=e=>"function"==typeof e.value&&1===e.value.length,Hs=e=>"function"==typeof e,Js=i.promises,Gs=(e,t,n)=>({setup(o){const{onStart:s,onResolve:u,onLoad:c,onEnd:d,esbuild:l,initialOptions:f}=o,m=[],g=`${t.bundler.name}.${Ee.MIDDLE}.${A}.js`,h=i.realpathSync(p.tmpdir()),y=a.resolve(h,g),b=new RegExp(`${g}$`),w=f.inject;f.inject=w?[...w]:[],f.inject.push(y),s((async()=>{m.push(...await es(o,t,e)),o.initialOptions.inject=w;try{await(async(e,t)=>{await be(a.dirname(e)),await r.writeFile(e,t,{encoding:"utf-8"})})(y,"")}catch(t){e.error(`Could not create the files: ${t.message}`)}})),u({filter:b},(async e=>({path:e.path,namespace:Ns}))),c({filter:b,namespace:Ns},(async()=>({contents:qs(n,Ee.MIDDLE)||" ",resolveDir:t.buildRoot,loader:"js"}))),d((async o=>{if(!o.metafile){const n=new Error("Missing metafile from build result.");return e.warn(n.message),void t.markArtifactsReady(n)}if(Fs(n))try{const r=[];for(const[i,s]of Object.entries(o.metafile.outputs)){const o=Boolean(s.entryPoint&&m.some((e=>e.resolved.endsWith(s.entryPoint))));if(!o&&!Ls(n))continue;const u=ts(t.buildRoot,i),{base:c,ext:d}=a.parse(u);Us(d)?r.push((async()=>{try{const e=`${u}.map`,t=await Js.readFile(u,"utf-8"),r=await Js.readFile(e,"utf-8").catch((()=>!1)),i=a.basename(u),s=qs(n,Ee.BEFORE,{sourceOrHash:t,fileName:i,isEntry:o}),c=qs(n,Ee.AFTER,{sourceOrHash:t,fileName:i,isEntry:o});if(!s&&!c)return;const d=t.replace(/\n?\/\/# sourceMappingURL=.*$/m,""),p=r?`${d}\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(r).toString("base64")}`:d,f=await l.transform(p,{loader:"default",banner:s,footer:c,sourcemap:r?"external":void 0,sourcefile:i});await Promise.all([Js.writeFile(u,f.code),r&&f.map?Js.writeFile(e,f.map):null])}catch(t){if(!Vs(t)||"ENOENT"!==t.code)throw t;e.warn(`Could not inject content in ${u}: ${t}`)}})()):Ws(e,d,c)}await Promise.all(r),t.markArtifactsReady()}catch(e){throw t.markArtifactsReady(e),e}}))}}),Ys=A,Qs="?inject-proxy",Xs=(e,t)=>({renderChunk:{order:"post",handler(n,o){const{base:r,ext:i}=a.parse(o.fileName);if(!Us(i))return Ws(e,i,r),null;const s=qs(t,Ee.BEFORE,{sourceOrHash:n,fileName:o.fileName,isEntry:o.isEntry}),u=qs(t,Ee.AFTER,{sourceOrHash:n,fileName:o.fileName,isEntry:o.isEntry});if(!s&&!u)return null;const c=new E(n);return s&&c.prepend(`${s}\n`),u&&c.append(`\n${u}`),{code:c.toString(),map:c.generateMap({file:o.fileName,hires:"boundary"})}}},async resolveId(e,n,o){if(W(e))return{id:e,moduleSideEffects:!0};if(o.isEntry&&qs(t,Ee.MIDDLE)){if(e.endsWith(".html"))return null;const t=await this.resolve(e,n,o);if(!t||t.external)return t;return(await this.load(t)).moduleSideEffects=!0,`${t.id}${Qs}`}return null},load(e){if(W(e))return qs(t,Ee.MIDDLE);if(e.endsWith(Qs)){const t=e.slice(0,-13),n=this.getModuleInfo(t);let o=`import ${JSON.stringify(Ys)};\nexport * from ${JSON.stringify(t)};`;return n?.hasDefaultExport&&(o+=`export { default } from ${JSON.stringify(t)};`),o}return null}}),Zs=(e,t,n,o,r)=>s=>{const u=new WeakMap,c=e.sources.ConcatSource,d=n.bundler.name,l=a.resolve(n.buildRoot,"node_modules",".cache","datadog-build-plugins",`${d}.${Ee.MIDDLE}.${A}.js`);we(l,"");s.hooks.shutdown.tap(Ns,(()=>{var e;e=l,i.rmSync(e,{force:!0,maxRetries:3,recursive:!0})}));const p=async()=>{await Bs(t,o,r,n.buildRoot)};s.hooks.beforeRun.tapPromise(Ns,p),s.hooks.watchRun.tapPromise(Ns,p),s.hooks.compilation.tap(Ns,(n=>{const o=e.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS;n.hooks.processAssets.tap({name:Ns,stage:o},(()=>{for(const e of n.chunks){const o=e.canBeInitial(),i=e.contentHash?.javascript??e.hash;for(const s of e.files){const{base:e,ext:d}=a.parse(s);if(!Us(d)){Ws(t,d,e);continue}const l=e,p=qs(r,Ee.BEFORE,{sourceOrHash:i,fileName:l,isEntry:o}),f=qs(r,Ee.AFTER,{sourceOrHash:i,fileName:l,isEntry:o});""===p&&""===f||n.updateAsset(s,(e=>{const t=u.get(e);if(!t||t.banner!==p||t.footer!==f){const t=new c(p,"\n",e,"\n",f);return u.set(e,{source:t,banner:p,footer:f}),t}return t.source}))}}}))}));const f=(e=>{const n={import:[l]},o=e=>{for(const[n,o]of Object.entries(e))"object"==typeof o?(o.import=o.import||[],o.import.unshift(l)):"string"==typeof o?e[n]=[l,o]:Array.isArray(o)?o.unshift(l):t.error("Invalid entry type: "+typeof o)};return e?"function"==typeof e?async()=>{const t=await e();return o(t),t}:"object"!=typeof e?"string"==typeof e?[n,e]:(t.error("Invalid entry type: "+typeof e),e):(o(e),e):{ddHelper:n}})(s.options.entry);s.options.entry=f},ea=e=>{const{bundler:t,context:n}=e,o=n.getLogger(Ns),r=[],i=[];n.inject=e=>{r.push(e)};const s={name:Ns,enforce:"post",esbuild:Gs(o,n,i),webpack:Zs(t,o,n,r,i),rspack:Zs(t,o,n,r,i),rollup:Xs(o,i),vite:{...Xs(o,i),enforce:"pre",transformIndexHtml:{order:"pre",handler:()=>qs(i,Ee.MIDDLE)?[{tag:"script",attrs:{type:"module",src:"/@id/__datadog-helper-file"},injectTo:"head-prepend"}]:[]}}};var a;return a=n.bundler.name,["rspack","webpack"].includes(a)?s.load={filter:{id:D},handler:()=>({code:qs(i,Ee.MIDDLE)})}:s.buildStart=async()=>{await Bs(o,r,i,n.buildRoot),"esbuild"===n.bundler.name&&Fs(i)&&n.markArtifactsPending()},[s]},ta="datadog-true-end-plugin",na=e=>{const{context:t}=e,n=async()=>{await t.asyncHook("asyncTrueEnd")},o=async()=>{await t.asyncHook("flush")},r=()=>{t.hook("syncTrueEnd")},i=async()=>{r(),await n(),await o()},s=e=>{e.hooks.shutdown.tapPromise(ta,i)},a={async writeBundle(){},async closeBundle(){await i()}};return[{name:ta,enforce:"post",webpack:s,esbuild:{setup(e){e.onEnd((async()=>{await n(),await o()})),e.onDispose((()=>{r()}))}},vite:a,rollup:a,rspack:s}]},oa={[ei]:Di},ra=t.bold.red;var ia="3.2.12-dev.0";const sa=(({bundler:t,version:n})=>{const o=Date.now();return e.createUnplugin(((e,r)=>{const i=Date.now(),s=((e={})=>{const t=(e=>{const t=[];return void 0===e||void 0!==e.version&&"string"!=typeof e.version&&t.push("metadata.version must be a string"),t})(e.metadata),n=_("SITE"),o=L(n,"DATADOG_SITE/DD_SITE",t)??L(e.auth?.site,"auth.site",t),r={site:o?.site??C};if(t.length)throw new Error(`Invalid Datadog plugin configuration:\n - ${t.join("\n - ")}`);return Object.defineProperty(r,"apiKey",{value:_("API_KEY")||e.auth?.apiKey,enumerable:!1}),Object.defineProperty(r,"appKey",{value:_("APP_KEY")||e.auth?.appKey,enumerable:!1}),{enableGit:!0,logLevel:"warn",metadata:{},...e,auth:r}})(e);"esbuild"===r.framework&&(r.esbuildHostName=O);const a=process.env.BUILD_PLUGINS_ENV||"production",u=P.includes(a)?a:"development",c=t.rspackVersion||t.version||t.VERSION,d=r.framework,l={bundler:{name:d,version:c},env:u,metadata:s.metadata||{},packageName:`@datadog/${d}-plugin`,version:n},p={errors:[],logs:[],metrics:new Set,queue:[],timings:[],warnings:[]},f=(({start:e,options:t,data:n,stores:o})=>{const r=process.cwd(),i={errors:o.errors,warnings:o.warnings,logs:o.logs,metadata:n.metadata,timings:o.timings,bundler:n.bundler},s={addMetric:()=>{throw new Error("AddMetric function called before it was initialized.")},artifactsPending:!1,artifactsReady:Promise.resolve(),auth:t.auth,pluginNames:[],bundler:{...i.bundler,outDir:r},build:i,buildRoot:r,env:n.env,getLogger:oe(n,o,t.logLevel),asyncHook:()=>{throw new Error("AsyncHook function called before it was initialized.")},hook:()=>{throw new Error("Hook function called before it was initialized.")},inject:()=>{throw new Error("Inject function called before it was initialized.")},markArtifactsPending:()=>{},markArtifactsReady:()=>{},plugins:[],queue:()=>{throw new Error("Queue function called before it was initialized.")},sendLog:V(n),start:e,version:n.version};let a,u;return s.markArtifactsPending=()=>{a||u||(s.artifactsReady=new Promise(((e,t)=>{a=e,u=t})),s.artifactsPending=!0,s.artifactsReady.catch((()=>{})))},s.markArtifactsReady=e=>{const t=a,n=u;a=void 0,u=void 0,s.artifactsPending=!1,void 0===e?t?.():n?.(e)},s})({start:o,options:s,data:l,stores:p}),m=f.getLogger("factory"),g=m.time("Plugins initialization",{start:i});f.pluginNames.push(O);const h=[];h.push(["analytics",Qi],["async-queue",Zi],["build-report",gs],["bundler-report",$s],["custom-hooks",xs],["git",Os],["injection",ea],["true-end",na]),s.customPlugins&&h.push(["custom",s.customPlugins]);const y=[["apps",ce,qo],["error-tracking",zo,cr],["live-debugger",dr,Xr],["metrics",ei,Pi],["output",Mi,_i],["rum",Fi,Gi]];for(const[e,t,n]of y)ue(s,t,m)&&h.push([e,n]);for(const[e,n]of h)f.plugins.push(...se(f,n,e)({bundler:t,context:f,options:s,data:l,stores:p}));return(e=>{const t=[];for(const n of R){const o=F(n);if(o.length>1&&!o.every((e=>process.env[e]===process.env[o[0]]))){const r=o.map((e=>T(e))).join(" and "),i=T(`DATADOG_${n}`);e.warn(`Conflicting keys ${r}, will use ${i}`),t.push(`${r} (using ${i})`)}else if(o.length){const e=o.map((e=>N(e))).join(" and ");t.push(`${e} (same value)`)}}t.length&&e.info(`Overrides from environment:\n - ${t.join("\n - ")}`)})(m),f.pluginNames.push(...f.plugins.map((e=>e.name))),(e=>{const t=new Set(e.filter((t=>e.filter((e=>e===t)).length>1)));if(t.size>0)throw new Error(`Duplicate plugin names: ${ra(Array.from(t).join(", "))}`)})(f.pluginNames),f.hook("init",f),g.end(),f.plugins}))})({bundler:S,version:ia}).webpack,aa=ia,ua=oa;exports.datadogWebpackPlugin=sa,exports.helpers=ua,exports.version=aa;
1
+ "use strict";var e=require("unplugin"),t=require("chalk"),n=require("async-retry"),o=require("buffer"),r=require("fs/promises"),i=require("fs"),s=require("json-stream-stringify"),a=require("path"),u=require("stream"),c=require("eslint-scope"),d=require("node:module"),l=require("crypto"),p=require("os"),f=require("jszip"),m=require("glob"),g=require("esbuild"),h=require("rollup/parseAst"),y=require("node:async_hooks"),b=require("p-queue"),w=require("@jridgewell/remapping"),v=require("pretty-bytes"),$=require("perf_hooks"),k=require("@datadog/js-instrumentation-wasm"),x=require("simple-git"),E=require("magic-string"),S=require("webpack");function I(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var j=I(c);const A="__datadog-helper-file",D=new RegExp(A),P=["development","production","test"],M=["datadoghq.com","us3.datadoghq.com","us5.datadoghq.com","datadoghq.eu","ddog-gov.com","us2.ddog-gov.com","ap1.datadoghq.com","ap2.datadoghq.com","datad0g.com"],C=M[0],O="datadog-build-plugins",N=t.bold.green,T=t.bold.yellow,R=["API_KEY","APP_KEY","SOURCEMAP_INTAKE_URL","APPS_PACKAGE_DIR","OAUTH_ACCESS_TOKEN","SITE"],_=e=>process.env[`DATADOG_${e}`]||process.env[`DD_${e}`],F=e=>{const t=[];return process.env[`DD_${e}`]&&t.push(`DD_${e}`),process.env[`DATADOG_${e}`]&&t.push(`DATADOG_${e}`),t},L=(e,t,n)=>{if(void 0===e)return;const o=(e=>{if("string"!=typeof e)return;const t=e.toLowerCase(),n=M.find((e=>e===t));if(n)return{site:n};const o=M.filter((e=>t.endsWith(`.${e}`)));if(!o.length)return;const r=o.reduce(((e,t)=>t.length>e.length?t:e)),i=t.slice(0,t.length-r.length-1);return i&&/^[a-z0-9-]+$/.test(i)?{site:r,subdomain:i}:void 0})(e);if(o)return o;n.push(`${t} "${e}" is not a supported Datadog site. See the site parameters in https://docs.datadoghq.com/getting_started/site/.`)},q=e=>null===e||"object"!=typeof e?"":Object.entries(e).map((([e,t])=>`${e}: ${"string"==typeof t?t:JSON.stringify(t)}`)).join(", "),z=[400,401,403,404,405,409,413],B=async e=>{const{auth:t,url:o,method:r="GET",getData:i,type:s="text",signal:a}=e,u={retries:0===e.retries?0:e.retries||5,onRetry:e.onRetry,maxTimeout:e.maxTimeout,minTimeout:e.minTimeout};return n((async(e,n)=>{let u;try{const e={method:r,duplex:"half",signal:a};let n={"X-Datadog-Origin":"build-plugins"};if(t&&"accessToken"in t?t.accessToken&&(n.Authorization=`Bearer ${t.accessToken}`):(t?.apiKey&&(n["DD-API-KEY"]=t.apiKey),t?.appKey&&(n["DD-APPLICATION-KEY"]=t.appKey)),"function"==typeof i){const{data:t,headers:o}=await i();e.body=t,n={...n,...o}}u=await fetch(o,{...e,headers:n})}catch(t){return e(t),{}}if(!u.ok){let t=`HTTP ${u.status} ${u.statusText}`;try{const e=(e=>{try{const t=JSON.parse(e);if(null!==t&&"object"==typeof t)if("errors"in t&&Array.isArray(t.errors)){const e=t.errors.map(q).filter((e=>e.length>0)).join("\n");if(e)return e}else{const e=q(t);if(e)return e}}catch{}return e})(await u.text());e&&(t+=`\n${e}`)}catch{}if(z.includes(u.status))return e(new Error(t)),{};throw new Error(t)}try{let e;return e="json"===s?await u.json():await u.text(),e}catch(t){return e(t),{}}}),u)},V=e=>({message:t,context:n})=>B({retries:2,minTimeout:100,url:"https://browser-http-intake.logs.datadoghq.com/v1/input/pub44d5f4eb86e1392037b7501f7adc540e",method:"POST",type:"json",getData:async()=>{const o={ddsource:e.packageName||O,message:t,service:"build-plugins",team:"language-foundations",env:e.env,version:e.version,bundler:{name:e.bundler.name,version:e.bundler.version},metadata:e.metadata,...n};return{data:JSON.stringify(o),headers:{"Content-Type":"application/json"}}}}),U=e=>e.replace(/^@dd\/(datadog-|internal-)?|^datadog-|-plugin$/g,""),W=e=>e.includes(A),K=e=>{const t={bundler:e.bundler,errors:e.errors,metadata:e.metadata,warnings:e.warnings,logs:e.logs,timings:e.timings,start:e.start,end:e.end,duration:e.duration,writeDuration:e.writeDuration,entries:[],inputs:[],outputs:[]};for(const n of e.entries||[]){const e={...n,inputs:[],outputs:[]};n.inputs&&(e.inputs=n.inputs.map((e=>e.filepath))),n.outputs&&(e.outputs=n.outputs.map((e=>e.filepath))),t.entries.push(e)}for(const n of e.inputs||[]){const e={...n,dependencies:[],dependents:[]};if(n.dependencies)for(const t of n.dependencies)e.dependencies.push(t.filepath);if(n.dependents)for(const t of n.dependents)e.dependents.push(t.filepath);t.inputs.push(e)}for(const n of e.outputs||[]){const e={...n,inputs:[]};n.inputs&&(e.inputs=n.inputs.map((e=>e.filepath))),t.outputs.push(e)}return t},H=e=>{const t=!!e.errorTracking?.sourcemaps,n=e.enableGit??!0;return t&&n},J=e=>{const t=Math.floor(e/1e3/60/60/24),n=new Date(e-24*t*60*60*1e3),o=n.getUTCHours(),r=n.getUTCMinutes(),i=n.getUTCSeconds(),s=n.getUTCMilliseconds(),a=`${t?`${t}d `:""}${o?`${o}h `:""}${r?`${r}m `:""}${i?`${i}s`:""}`.trim();return`${a}${!a||s?` ${s}ms`:""}`.trim()},G=(e,t=60,n="[...]")=>{if(e.length<=t)return e;const o=Math.max(4,t-n.length),r=Math.min(10,Math.floor(o/2)),i=o-r;return`${e.slice(0,r)}${n}${e.slice(-i)}`},Y=(e="")=>{try{if(!e||e.startsWith("git@"))return e;const t=new URL(e),n="/"===t.pathname?"":t.pathname;return`${t.protocol?`${t.protocol}//`:""}${t.host}${n}`}catch{return e}},Q=e=>e.trim().toLowerCase().replace(/[^a-z0-9_:./-]+/g,"_").replace(/^_+|_+$/g,"")||"unknown",X=e=>Object.entries(e).map((([e,n])=>` - ${e}: ${t.bold.green((e=>{if(void 0===e)return"undefined";if(null===e)return"null";if(Array.isArray(e))return e.join(", ");if("object"==typeof e)try{return JSON.stringify(e,null,2)}catch{return String(e)}return e?.toString()??""})(n))}`)).join("\n"),Z={debug:0,info:1,warn:2,error:3,none:4},ee=e=>e.split(">").map(U).join(">"),te=(e,n,o,r)=>{const i=ee(e);return(s,a="debug",{forward:u,context:c}={})=>{let d=t.dim,l=console.log;"error"===a?(d=t.red,l=console.error):"warn"===a?(d=t.yellow,l=console.warn):"info"===a&&(d=t.cyan,l=console.log);const p=`[${n.metadata?.name?`${n.metadata.name}|`:""}${a}|${n.bundler.name}|${i}]`,f="string"==typeof s?s:JSON.stringify(s,null,2);if(o.logs.push({bundler:n.bundler.name,pluginName:e,type:a,message:f,time:Date.now()}),"error"===a&&o.errors.push(f),"warn"===a&&o.warnings.push(f),u){const t=async()=>{try{const t=V(n);await t({message:f,context:{plugin:e,status:a,...c}})}catch(t){te(e,n,o,r)(`Error forwarding log: ${t}`,"debug")}};o.queue.push(t())}Z[a]>=Z[r]&&l(`${d(p)} ${f}`)}},ne=(e,n,o)=>(r,i={})=>{const{level:s="debug",start:a=!0,log:u=!0,tags:c=[]}=i,d={pluginName:e,label:r,spans:[],tags:[...c,`plugin:${e}`,`level:${s}`],logLevel:s,total:0};n.push(d);const l=()=>d.spans.filter((e=>!e.end)),p=n=>{l().length||(!d.spans.length&&u&&o(t.dim(`[${t.cyan(r)}] : start`),"debug"),d.spans.push({start:n||Date.now(),tags:[`plugin:${e}`]}))},f=(e,n=!0)=>{const i=l();if(i?.length){i.length>1&&o(`Timer ${t.cyan(r)} has more than one ongoing span.`,"debug");for(const t of i)t.end=e||Date.now()}else n&&o(`Timer ${t.cyan(r)} cannot be paused, no ongoing span.`,"debug")};if(a){let e;"number"==typeof a&&(e=a),p(e)}return{timer:d,resume:p,end:e=>{f(e,!1);const n=d.spans.reduce(((e,t)=>e+(t.end-t.start)),0);d.total=n,u&&o(`[${t.cyan(r)}] : ${t.cyan(J(n))}`,s)},pause:f,tag:(e,t={})=>{const{span:n=!1}=t;if(n){const t=l();for(const n of t)n.tags.push(...e)}else d.tags.push(...e)}}},oe=(e,t,n="warn")=>o=>{const r=te(o,e,t,n);return{getLogger:r=>oe(e,t,n)(`${ee(o)}>${r}`),time:ne(o,t.timings,r),error:(e,t)=>r(e,"error",t),warn:(e,t)=>r(e,"warn",t),info:(e,t)=>r(e,"info",t),debug:(e,t)=>r(e,"debug",t)}},re=["buildEnd","buildStart","load","resolveId","transform","watchChange","writeBundle","buildRoot","init","buildReport","bundlerReport","git"],ie=(e,t,n,o)=>{const r=n=>function(...r){const i=o.time(`${e} | ${t}`,{log:!1,tags:["type:hook",`hook:${t}`]}),s=n.apply(this,r);return s instanceof Promise?s.finally((()=>{i.end()})):(i.end(),s)};return"object"==typeof n&&null!==n&&"handler"in n?{...n,handler:r(n.handler)}:r(n)},se=(e,t,n)=>{const o=e.getLogger(O);return e=>{const r=o.time(`hook | init ${n}`,{log:!1}),i=t(e).map((e=>((e,t)=>{const n={...e},o=U(e.name);for(const r of re){const i=e[r];i&&(n[r]=ie(o,r,i,t))}return n})(e,o))),s=i.map((e=>`plugin:${e.name}`));return r.tag(s),r.end(),i}},ae=new Set,ue=(e,t,n)=>{const o=e[t];if(o&&"object"==typeof o&&"enable"in o){const e=o.enable;if("boolean"!=typeof e&&void 0!==e&&(ae.has(t)||(ae.add(t),n.warn(`\`${t}.enable\` should be a boolean, got ${typeof e}. Non-boolean values are coerced today but will be rejected in the next major.`))),void 0!==e)return!!e}return!!o},ce="apps",de="datadog-apps-plugin",le="datadog-app-assets.zip",pe=/\.backend\.(ts|tsx|js|jsx)$/,fe="?dd-local-exec",me=new RegExp(`${pe.source.slice(0,-1)}(\\?.*)?$`),ge=[".ts",".tsx",".js",".jsx",".mjs",".cjs",".mts",".cts"],he=e=>{const t=e?.maxRetries??10,n=e?.timeoutMs??4e4;if(!Number.isInteger(t)||t<1)throw new Error("apps.longPolling.maxRetries must be an integer >= 1.");if(!Number.isFinite(n)||n<=0)throw new Error("apps.longPolling.timeoutMs must be a positive number.");return{maxRetries:t,timeoutMs:n,jitter:e?.jitter??!0,exponentialBackoff:e?.exponentialBackoff??!0}},ye=async e=>r.rm(e,{force:!0,maxRetries:3,recursive:!0}),be=async e=>r.mkdir(e,{recursive:!0}),we=(e,t)=>{var n;n=a.dirname(e),i.mkdirSync(n,{recursive:!0}),i.writeFileSync(e,t,{encoding:"utf-8"})},ve=e=>r.readFile(e,{encoding:"utf-8"}),$e=e=>{try{return i.existsSync(e)}catch(e){if("ENOENT"===e.code)return!1;throw e}},ke=async(e,t)=>{if("function"==typeof i.openAsBlob){const n=await i.openAsBlob(e,{type:t.contentType});return new o.File([n],t.filename)}{const n=u.Readable.toWeb(i.createReadStream(e)),r=await new Response(n).blob();return new o.File([r],t.filename,{type:t.contentType})}},xe=async e=>{const t={empty:!1,exists:!0};try{const{size:n}=await r.stat(e);0===n&&(t.empty=!0)}catch(e){if("ENOENT"!==e.code)throw e;t.exists=!1}return t};var Ee=(e=>(e[e.BEFORE=0]="BEFORE",e[e.MIDDLE=1]="MIDDLE",e[e.AFTER=2]="AFTER",e))(Ee||{});const Se="Set DD_API_KEY and DD_APP_KEY for API-key auth, or set DD_OAUTH_ACCESS_TOKEN (or DATADOG_OAUTH_ACCESS_TOKEN) — e.g. by starting the dev server with `datadog-apps dev`.";class Ie extends Error{constructor(){super(`Missing authentication. ${Se}`),this.statusCode=400,this.name="MissingAuthenticationError"}}function je(e,t){if(!function(e){return"Program"===e.type}(e))throw new Error(`Expected a Program node from this.parse() for ${t}, got ${e.type}`);return e}function Ae(e,t){return"object"==typeof e&&null!==e&&"type"in e&&e.type===t}function De(e){return Ae(e,"Literal")&&"value"in e&&"string"==typeof e.value}function Pe(e){return"type"===e.importKind||"type"===e.exportKind}function Me(e){return Ae(e,"VariableDeclarator")}function Ce(e){return De(e)?e.value:function(e){return!!(Ae(e,"TemplateLiteral")&&"expressions"in e&&"quasis"in e)&&Array.isArray(e.expressions)&&0===e.expressions.length&&Array.isArray(e.quasis)&&1===e.quasis.length}(e)?e.quasis[0].value.cooked??void 0:void 0}function Oe(e,t){return function(e,t){const n=je(e,t),o=function(e){const t=new Map;for(const n of e.body)if("FunctionDeclaration"===n.type&&n.id)t.set(n.id.name,{kind:"function"});else if("ClassDeclaration"===n.type&&n.id)t.set(n.id.name,{kind:"class"});else if("VariableDeclaration"===n.type)for(const e of n.declarations)"Identifier"===e.id.type&&t.set(e.id.name,{kind:"variable",init:e.init});else if("ImportDeclaration"===n.type)for(const e of n.specifiers)t.set(e.local.name,{kind:"import"});return t}(n),r=[];for(const e of n.body){if("ExportDefaultDeclaration"===e.type)throw new Error(`Default exports are not supported in .backend.ts files. Use a named export instead: ${t}`);if("ExportAllDeclaration"===e.type)throw new Error(`"export *" is not supported in .backend.ts files. Use explicit named exports instead: ${t}`);if("ExportNamedDeclaration"!==e.type)continue;e.declaration&&r.push(...Re(e.declaration,t).map((e=>({kind:"local",name:e,localName:e}))));const n="string"==typeof e.source?.value?e.source.value:null;for(const i of e.specifiers){if("Identifier"!==i.exported.type)continue;if("default"===i.exported.name)throw new Error(`Default exports are not supported in .backend.ts files. Use a named export instead: ${t}`);const e="Identifier"===i.local.type?i.local.name:"string"==typeof i.local.value?i.local.value:null;e&&(n?r.push({kind:"re-export",name:i.exported.name,localName:e,source:n}):("Identifier"===i.local.type&&_e(e,o,t),r.push({kind:"local",name:i.exported.name,localName:e})))}}return r}(e,t).map((e=>e.name))}const Ne=new Set(["ArrayExpression","Literal","ObjectExpression","TemplateLiteral"]);function Te(e){return null==e||Ne.has(e.type)}function Re(e,t){if("FunctionDeclaration"===e.type&&e.id)return[e.id.name];if("ClassDeclaration"===e.type)throw new Error(`Class exports are not supported in .backend.ts files. Only function exports are allowed: ${t}`);if("VariableDeclaration"===e.type)return e.declarations.flatMap((e=>{if("Identifier"!==e.id.type)throw new Error(`Destructured exports are not supported in backend files. Use individual named exports instead: ${t}`);if(Te(e.init))throw new Error(`Non-function export "${e.id.name}" in backend file ${t}. Only function exports are supported — use "export function ${e.id.name}(…) { }" instead.`);return[e.id.name]}));throw new Error(`Unsupported export declaration type "${e.type}" in backend file ${t}. Only function and variable exports are allowed.`)}function _e(e,t,n){const o=t.get(e);if(o){if("class"===o.kind)throw new Error(`Class exports are not supported in .backend.ts files. Only function exports are allowed: ${n}`);if("variable"===o.kind&&Te(o.init))throw new Error(`Non-function export "${e}" in backend file ${n}. Only function exports are supported — use "export function ${e}(…) { }" instead.`)}}function Fe(e,t,n){const o={state:t},r=e=>{n._?.(e,o),function(e,t){return t[e.type]}(e,n)?.(e,o);for(const t of Object.keys(e))"type"!==t&&i(e[t])},i=e=>{if(Array.isArray(e))for(const t of e)Le(t)&&r(t);else Le(e)&&r(e)};r(e)}function Le(e){return"object"==typeof e&&null!==e&&"type"in e&&"string"==typeof e.type}function qe(e){Fe(e,null,{_(e){const t=e;t.range||"number"!=typeof t.start||"number"!=typeof t.end||(t.range=[t.start,t.end])}});const t=j.analyze(e,{ecmaVersion:2022,ignoreEval:!0,sourceType:"module"}),n=new Map;for(const e of t.scopes)for(const t of e.references)n.set(t.identifier,t);return{scopeManager:t,referencesByIdentifier:n,moduleScope:Ue(t)}}function ze(e,t){return t.referencesByIdentifier.get(e)?.resolved??void 0}function Be(e){return e.defs.some((e=>"ImportBinding"===e.type))}function Ve(e,t){return t.moduleScope.set.get(e)}function Ue(e){return e.scopes.find((e=>"module"===e.type))??e.globalScope}function We(e,t,n){const o={scopeAnalysis:t,unsupportedAliases:Ke(e,t)},r=[];return Fe(e,o,{CallExpression(e,{state:t}){(function(e,t,n){const o=e.callee;if("Identifier"===o.type){if(Ye(o,t.unsupportedAliases,t.scopeAnalysis))throw et(n,"action-catalog call aliases");if(Ye(o,t.scopeAnalysis.actionFunctions,t.scopeAnalysis)){if(e.optional)throw et(n,"optional action-catalog calls");return!0}return!1}if("MemberExpression"!==o.type)return!1;if(!He(o,t.scopeAnalysis))return!1;if(e.optional||Ge(o))throw et(n,"optional or computed action-catalog namespace calls");return!0})(e,t,n)&&r.push(e)}}),r}function Ke(e,t){const n=new Set;return Fe(e,t,{VariableDeclarator(e,{state:t}){for(const o of function(e,t){if("Identifier"===e.id.type&&"Identifier"===e.init?.type&&Ye(e.init,t.actionFunctions,t))return Xe(e,t,[e.id.name]);if("Identifier"===e.id.type&&"MemberExpression"===e.init?.type&&He(e.init,t))return Xe(e,t,[e.id.name]);if("ObjectPattern"!==e.id.type||"Identifier"!==e.init?.type||!Ye(e.init,t.actionNamespaces,t))return[];const n=e.id.properties.flatMap((e=>"RestElement"===e.type||e.computed?[]:Ze(e.value))).map((e=>e.name));return Xe(e,t,n)}(e,t))n.add(o)},AssignmentExpression(e,{state:t}){for(const o of function(e,t){if("Identifier"===e.left.type&&"Identifier"===e.right.type&&Ye(e.right,t.actionFunctions,t))return Qe([e.left],t);if("Identifier"===e.left.type&&"MemberExpression"===e.right.type&&He(e.right,t))return Qe([e.left],t);if("ObjectPattern"!==e.left.type||"Identifier"!==e.right.type||!Ye(e.right,t.actionNamespaces,t))return[];const n=e.left.properties.flatMap((e=>"RestElement"===e.type||e.computed?[]:Ze(e.value)));return Qe(n,t)}(e,t))n.add(o)}}),n}function He(e,t){const n=Je(e);return!!n&&Ye(n,t.actionNamespaces,t)}function Je(e){return"Identifier"===e.object.type?e.object:"MemberExpression"===e.object.type?Je(e.object):void 0}function Ge(e){return!(!e.optional&&!e.computed)||"MemberExpression"===e.object.type&&Ge(e.object)}function Ye(e,t,n){return function(e,t,n){const o=ze(e,n);return!!o&&t.has(o)}(e,t,n.moduleScope)}function Qe(e,t){return e.flatMap((e=>{const n=ze(e,t.moduleScope);return n?[n]:[]}))}function Xe(e,t,n){const o=new Set(n);return t.moduleScope.scopeManager.getDeclaredVariables(e).filter((e=>o.has(e.name)))}function Ze(e){switch(e.type){case"Identifier":return[e];case"ObjectPattern":return e.properties.flatMap((e=>"RestElement"===e.type?Ze(e.argument):Ze(e.value)));case"ArrayPattern":return e.elements.flatMap((e=>e?Ze(e):[]));case"RestElement":return Ze(e.argument);case"AssignmentPattern":return Ze(e.left);case"MemberExpression":return[]}}function et(e,t){return new Error(`Unsupported action-catalog call in ${e}: ${t} could hide a connectionId.`)}const tt="@datadog/action-catalog";function nt(e,t,n){const o=e.get(t);if(!o)return ct(t,[],n.name);const r=ze(n,o.scopeAnalysis);return r?function(e,t){return t.defs.some((t=>t.name===e))}(n,r)?dt(t,[],n.name):it({modules:e,visitedExports:new Set},t,r,[]):dt(t,[],n.name)}function ot(e,t,n,o){const r=e.modules.get(t);if(!r)return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-module-record",requestKind:"export",exportName:n,message:`Module '${e}' was not collected while resolving export '${n}'.`,hops:t}}(t,o,n);if("default"===n)return at(t,o,n);const i=`${t}\0${n}`;if(e.visitedExports.has(i))return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"cycle",exportName:n,message:`Resolving export '${n}' from module '${e}' would cycle through the module graph.`,hops:t}}(t,o,n);e.visitedExports.add(i);try{const t=r.exportsByName.get(n);return t?function(e,t,n,o,r){if("unsupported"===o.kind)return function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"unsupported-export",exportName:n,exportReason:o,message:`Export '${n}' from module '${e}' is unsupported: ${o}.`,hops:t}}(t.id,r,n,o.reason);if("re-export"===o.kind)return"default"===o.importedName?at(t.id,r,n):ot(e,o.resolvedId,o.importedName,[...r,{kind:"re-export",moduleId:t.id,exportName:n,sourceModuleId:o.resolvedId,sourceExportName:o.importedName}]);return it(e,t.id,o.variable,[...r,{kind:"local-export",moduleId:t.id,exportName:n,localName:o.variable.name}])}(e,r,n,t,o):function(e,t,n,o){let r;for(const i of t.starExports){const s=ot(e,i.resolvedId,n,[...o,{kind:"star-export",moduleId:t.id,exportName:n,sourceModuleId:i.resolvedId}]);if("unsupported"===s.kind){if("missing-export"===s.reason)continue;return s}if(!r||!rt(r,s)){if(r)return st(t.id,o,n);r=s}}return r??function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-export",exportName:n,message:`Module '${e}' does not expose export '${n}'.`,hops:t}}(t.id,o,n)}(e,r,n,o)}finally{e.visitedExports.delete(i)}}function rt(e,t){return e.moduleId===t.moduleId&&e.variable===t.variable}function it(e,t,n,o){const r=e.modules.get(t);if(!r)return ct(t,o,n.name);const i=r.importsByVariable.get(n);if(i)return function(e,t,n,o,r){if("default"===o.kind)return ut(t,r,n);if("namespace"===o.kind)return function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"namespace-import",variableName:n,message:`Variable '${n}' in module '${e}' is an unsupported namespace import.`,hops:t}}(t,r,n);if("default"===o.importedName)return ut(t,r,n);return ot(e,o.resolvedId,o.importedName,[...r,{kind:"import",moduleId:t,localName:n,exportName:o.importedName,sourceModuleId:o.resolvedId}])}(e,r.id,n.name,i,o);const s=r.topLevelBindingsByVariable.get(n);return s?"const"===s.kind?{kind:"local",moduleId:r.id,variable:n,binding:s,hops:o}:"mutable"===s.kind?function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"mutable-binding",variableName:n,declarationKind:o,message:`Variable '${n}' in module '${e}' is declared with mutable '${o}'.`,hops:t}}(r.id,o,n.name,s.declarationKind):function(e,t,n,o){return{kind:"unsupported",moduleId:e,reason:"unsupported-binding",variableName:n,bindingReason:o,message:`Variable '${n}' in module '${e}' has unsupported binding: ${o}.`,hops:t}}(r.id,o,n.name,s.reason):function(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-static-binding",variableName:n,message:`Variable '${n}' in module '${e}' does not have a recorded top-level static binding.`,hops:t}}(r.id,o,n.name)}function st(e,t,n){return{kind:"unsupported",moduleId:e,reason:"ambiguous-star-export",exportName:n,message:`Module '${e}' exposes ambiguous star exports for '${n}'.`,hops:t}}function at(e,t,n){return{kind:"unsupported",moduleId:e,reason:"default-export",exportName:n,message:`Export '${n}' from module '${e}' resolves through an unsupported default export.`,hops:t}}function ut(e,t,n){return{kind:"unsupported",moduleId:e,reason:"default-import",variableName:n,message:`Variable '${n}' in module '${e}' is an unsupported default import.`,hops:t}}function ct(e,t,n){return{kind:"unsupported",moduleId:e,reason:"missing-module-record",requestKind:"variable",variableName:n,message:`Module '${e}' was not collected while resolving variable '${n}'.`,hops:t}}function dt(e,t,n){return{kind:"unsupported",moduleId:e,reason:"unresolved-identifier",variableName:n,message:`Identifier '${n}' in module '${e}' is not a resolvable reference.`,hops:t}}function lt(e,t,n){const o=kt(n);switch(o.type){case"Literal":return function(e,t){if("string"==typeof t.value)return{kind:"resolved",moduleId:e,value:t.value};return function(e,t){return{kind:"unsupported",moduleId:e,reason:"non-string-literal",valueType:t,message:`Literal value type '${t}' in module '${e}' is not a string.`}}(e,typeof t.value)}(t,o);case"TemplateLiteral":return function(e,t){if(t.expressions.length>0)return function(e){return{kind:"unsupported",moduleId:e,reason:"dynamic-template-literal",message:`Dynamic template literals in module '${e}' cannot be resolved to static strings.`}}(e);return{kind:"resolved",moduleId:e,value:t.quasis.map((e=>e.value.cooked??e.value.raw)).join("")}}(t,o);case"Identifier":return function(e,t,n){const o=nt(e.modules,t,n);if("unsupported"===o.kind)return Mt(o,n.name);if(!o.binding.expression)return Ct(o.moduleId,o.variable.name);if(e.seenVariables.has(o.variable))return It(o.moduleId,o.variable.name);e.seenVariables.add(o.variable);try{return lt(e,o.moduleId,o.binding.expression)}finally{e.seenVariables.delete(o.variable)}}(e,t,o);case"MemberExpression":return function(e,t,n){const o=pt(e,t,n);if("unsupported"===o.kind)return o;return lt(e,o.moduleId,o.expression)}(e,t,o);default:return function(e,t){return{kind:"unsupported",moduleId:e,reason:"unsupported-expression",expressionType:t,message:`Expression type '${t}' in module '${e}' cannot be resolved to a static string.`}}(t,o.type)}}function pt(e,t,n){if(n.optional)return function(e){return{kind:"unsupported",moduleId:e,reason:"optional-member-expression",message:`Optional member expressions in module '${e}' cannot be resolved to static strings.`}}(t);if(n.computed)return function(e){return{kind:"unsupported",moduleId:e,reason:"computed-member-expression",message:`Computed member expressions in module '${e}' cannot be resolved to static strings.`}}(t);if("Identifier"!==n.property.type)return function(e,t){return{kind:"unsupported",moduleId:e,reason:"non-static-member-property",propertyType:t,message:`Member property type '${t}' in module '${e}' is not statically named.`}}(t,n.property.type);const o=ft(e,t,n.object);return"unsupported"===o.kind?o:function(e,t,n){let o;for(const r of t.properties){if("SpreadElement"===r.type)return Pt(e);if(r.computed)return St(e);if($t(r)===n){if(o)return jt(e,n);if("init"!==r.kind)return Et(e,n);if(!mt(r))return Dt(e,n,r.value.type);o=r}}if(!o)return function(e,t){return{kind:"unsupported",moduleId:e,reason:"missing-object-property",propertyName:t,message:`Static object in module '${e}' does not have property '${t}'.`}}(e,n);return{kind:"resolved",moduleId:e,expression:o.value}}(o.moduleId,o.expression,n.property.name)}function ft(e,t,n){if("Super"===n.type)return At(t,n.type);const o=kt(n);if("ObjectExpression"===o.type)return{kind:"resolved",moduleId:t,expression:o};if("MemberExpression"===o.type){const n=pt(e,t,o);return"unsupported"===n.kind?n:ft(e,n.moduleId,n.expression)}if("Identifier"!==o.type)return At(t,o.type);const r=nt(e.modules,t,o);if("unsupported"===r.kind)return Mt(r,o.name);if(!r.binding.expression)return Ct(r.moduleId,r.variable.name);if(e.mutatedImportedObjectVariables.has(r.variable))return function(e,t){return{kind:"unsupported",moduleId:e,reason:"imported-object-mutation",variableName:t,message:`Imported object '${t}' from module '${e}' is mutated in the module graph.`}}(r.moduleId,r.variable.name);if(e.seenVariables.has(r.variable))return It(r.moduleId,r.variable.name);e.seenVariables.add(r.variable);try{return ft(e,r.moduleId,r.binding.expression)}finally{e.seenVariables.delete(r.variable)}}function mt(e){const{value:t}=e;return"ObjectPattern"!==t.type&&"ArrayPattern"!==t.type&&"RestElement"!==t.type&&"AssignmentPattern"!==t.type}function gt(e){const t=new Set;for(const n of e.values())Fe(n.ast,{modules:e,mutatedVariables:t,record:n},{AssignmentExpression(e,{state:t}){yt(e.left,t)},UpdateExpression(e,{state:t}){yt(e.argument,t)},UnaryExpression(e,{state:t}){"delete"===e.operator&&yt(e.argument,t)},ForInStatement(e,{state:t}){ht(e.left,t)},ForOfStatement(e,{state:t}){ht(e.left,t)}});return t}function ht(e,t){"VariableDeclaration"!==e.type&&yt(e,t)}function yt(e,t){if("Identifier"!==e.type)if("MemberExpression"!==e.type)if("ObjectPattern"!==e.type)if("ArrayPattern"!==e.type)"RestElement"!==e.type?"AssignmentPattern"===e.type&&yt(e.left,t):yt(e.argument,t);else for(const n of e.elements)n&&yt(n,t);else for(const n of e.properties)yt("RestElement"===n.type?n.argument:n.value,t);else{const n=vt(e);n&&bt(n,t)}else bt(e,t)}function bt(e,t){const n=wt(t,e,new Set);n&&t.mutatedVariables.add(n)}function wt(e,t,n){const o=ze(t,e.record.scopeAnalysis);if(!o||n.has(o))return;if(n.add(o),Be(o)){const n=nt(e.modules,e.record.id,t);return"local"===n.kind?n.variable:void 0}const r=function(e){for(const t of e.defs){const e=t.node;if("VariableDeclarator"===e.type&&e.init)return e.init}return}(o);if(!r)return;const i=function(e){const t=kt(e);if("Identifier"===t.type)return t;if("MemberExpression"===t.type)return vt(t);return}(r);return i?wt(e,i,n):void 0}function vt(e){return"Identifier"===e.type?e:"MemberExpression"===e.type?vt(e.object):void 0}function $t(e){return"Identifier"===e.key.type?e.key.name:"Literal"===e.key.type&&"string"==typeof e.key.value?e.key.value:void 0}function kt(e){let t=e;for(;xt(t);)t=t.expression;return t}function xt(e){const t=e.type;return("TSAsExpression"===t||"TSSatisfiesExpression"===t||"TSNonNullExpression"===t||"TSTypeAssertion"===t)&&!!e.expression}function Et(e,t){return{kind:"unsupported",moduleId:e,reason:"accessor-object-property",propertyName:t,message:`Static object property '${t}' in module '${e}' is an accessor.`}}function St(e){return{kind:"unsupported",moduleId:e,reason:"computed-object-property",message:`Computed object properties in module '${e}' cannot be resolved to static strings.`}}function It(e,t){return{kind:"unsupported",moduleId:e,reason:"cycle",variableName:t,message:`Resolving variable '${t}' in module '${e}' would cycle through static string values.`}}function jt(e,t){return{kind:"unsupported",moduleId:e,reason:"duplicate-object-property",propertyName:t,message:`Static object in module '${e}' has duplicate property '${t}'.`}}function At(e,t){return{kind:"unsupported",moduleId:e,reason:"non-object-member-value",expressionType:t,message:`Expression type '${t}' in module '${e}' is not a static object value.`}}function Dt(e,t,n){return{kind:"unsupported",moduleId:e,reason:"unsupported-object-property-value",propertyName:t,valueType:n,message:`Static object property '${t}' in module '${e}' has unsupported value type '${n}'.`}}function Pt(e){return{kind:"unsupported",moduleId:e,reason:"object-spread",message:`Object spreads in module '${e}' cannot be resolved to static strings.`}}function Mt(e,t){return{kind:"unsupported",moduleId:e.moduleId,reason:"static-definition-unsupported",variableName:t,definition:e,message:`Variable '${t}' could not be resolved to a static definition: ${e.message}`}}function Ct(e,t){return{kind:"unsupported",moduleId:e,reason:"uninitialized-const",variableName:t,message:`Const variable '${t}' in module '${e}' does not have an initializer.`}}const Ot=new Set(["node_modules",".yarn"]);function Nt(e,t,n,o=[]){if(!Zt(e,t))return null;const r=je(n,e),i=qe(r),s=function(e,t){const n=Tt(e);return t.map(((e,t)=>({source:n[t]??e,resolvedId:e})))}(r,o);return{id:e,ast:r,scopeAnalysis:i,staticDependencies:s,unsupportedDependencies:Qt(r),importsByVariable:Rt(r,i,s),exportsByName:_t(r,i,s),starExports:qt(r,s),topLevelBindingsByVariable:zt(r,i)}}function Tt(e){return e.body.flatMap((e=>("ImportDeclaration"===e.type||"ExportNamedDeclaration"===e.type||"ExportAllDeclaration"===e.type)&&e.source&&De(e.source)?[e.source.value]:[]))}function Rt(e,t,n){const o=new Map;for(const r of e.body){if("ImportDeclaration"!==r.type||!De(r.source))continue;const e=Yt(n,r.source.value);for(const n of r.specifiers){const[r]=t.scopeManager.getDeclaredVariables(n);r&&("ImportSpecifier"!==n.type?o.set(r,{kind:"ImportDefaultSpecifier"===n.type?"default":"namespace",resolvedId:e}):o.set(r,{kind:"named",importedName:Jt(n.imported),resolvedId:e}))}}return o}function _t(e,t,n){const o=new Map;for(const r of e.body)"ExportNamedDeclaration"!==r.type?"ExportDefaultDeclaration"!==r.type?"ExportAllDeclaration"===r.type&&Lt(r,n,o):o.set("default",{kind:"unsupported",reason:"default export"}):Ft(r,t,n,o);return o}function Ft(e,t,n,o){if(e.declaration)!function(e,t,n){if(!e)return;if("VariableDeclaration"===e.type){for(const o of e.declarations){const e=t.scopeManager.getDeclaredVariables(o);if("Identifier"!==o.id.type){for(const t of e)n.set(t.name,{kind:"unsupported",reason:"binding pattern export"});continue}const[r]=e;r&&n.set(o.id.name,{kind:"local",variable:r})}return}if(("FunctionDeclaration"===e.type||"ClassDeclaration"===e.type)&&e.id){const[o]=t.scopeManager.getDeclaredVariables(e);o&&n.set(e.id.name,{kind:"local",variable:o})}}(e.declaration,t,o);else if(e.source&&De(e.source)){const t=Yt(n,e.source.value);for(const n of e.specifiers){if("ExportSpecifier"!==n.type)continue;const e=Jt(n.exported);"default"!==e?o.set(e,{kind:"re-export",importedName:Jt(n.local),resolvedId:t}):o.set(e,{kind:"unsupported",reason:"default re-export",resolvedId:t})}}else for(const n of e.specifiers){if("ExportSpecifier"!==n.type)continue;const e=Jt(n.exported);if("default"===e){o.set(e,{kind:"unsupported",reason:"default export"});continue}const r=Ve(Jt(n.local),t);o.set(e,r?{kind:"local",variable:r}:{kind:"unsupported",reason:"unresolved local export"})}}function Lt(e,t,n){const o=Gt(e);o&&De(e.source)&&n.set(o,{kind:"unsupported",reason:"namespace re-export",resolvedId:Yt(t,e.source.value)})}function qt(e,t){return e.body.flatMap((e=>"ExportAllDeclaration"!==e.type||Gt(e)||!De(e.source)?[]:[{resolvedId:Yt(t,e.source.value)}]))}function zt(e,t){const n=new Map;for(const o of e.body)Bt(o,t,n);return function(e,t,n){Fe(e,{scopeAnalysis:t,bindings:n},{AssignmentExpression(e,{state:t}){Wt(e.left,t.scopeAnalysis,t.bindings)},UpdateExpression(e,{state:t}){Wt(e.argument,t.scopeAnalysis,t.bindings)},UnaryExpression(e,{state:t}){"delete"===e.operator&&Wt(e.argument,t.scopeAnalysis,t.bindings)},ForInStatement(e,{state:t}){Ut(e.left,t.scopeAnalysis,t.bindings)},ForOfStatement(e,{state:t}){Ut(e.left,t.scopeAnalysis,t.bindings)}})}(e,t,n),n}function Bt(e,t,n){if("VariableDeclaration"===e.type)return void Vt(e,t,n);if("ExportNamedDeclaration"===e.type&&"VariableDeclaration"===e.declaration?.type)return void Vt(e.declaration,t,n);const o="ExportNamedDeclaration"===e.type||"ExportDefaultDeclaration"===e.type?e.declaration:e;if(o&&("FunctionDeclaration"===o.type||"ClassDeclaration"===o.type)&&o.id){const[e]=t.scopeManager.getDeclaredVariables(o);e&&n.set(e,{kind:"unsupported",reason:`${o.type} binding`})}}function Vt(e,t,n){for(const o of e.declarations){const r=t.scopeManager.getDeclaredVariables(o);if("Identifier"!==o.id.type){for(const e of r)n.set(e,{kind:"unsupported",reason:"binding pattern"});continue}const[i]=r;i&&("const"===e.kind?n.set(i,{kind:"const",expression:o.init??null}):n.set(i,{kind:"mutable",declarationKind:e.kind}))}}function Ut(e,t,n){"VariableDeclaration"!==e.type&&Wt(e,t,n)}function Wt(e,t,n){if("Identifier"!==e.type)if("MemberExpression"!==e.type)if("ObjectPattern"!==e.type)if("ArrayPattern"!==e.type)"RestElement"!==e.type?"AssignmentPattern"===e.type&&Wt(e.left,t,n):Wt(e.argument,t,n);else for(const o of e.elements)o&&Wt(o,t,n);else for(const o of e.properties)Wt("RestElement"===o.type?o.argument:o.value,t,n);else{const o=Ht(e);o&&Kt(o,t,n,"mutated object binding")}else Kt(e,t,n,"reassigned binding")}function Kt(e,t,n,o){const r=ze(e,t);if(!r||Be(r)||!n.has(r))return;const i=n.get(r);"mutable"!==i?.kind&&n.set(r,{kind:"unsupported",reason:o})}function Ht(e){return"Identifier"===e.type?e:"MemberExpression"===e.type?Ht(e.object):void 0}function Jt(e){return"Identifier"===e.type?e.name:String(e.value)}function Gt(e){const t=e.exported;return t?Jt(t):void 0}function Yt(e,t){return e.find((e=>e.source===t))?.resolvedId??t}function Qt(e){const t=[];return Fe(e,t,{ImportExpression(e,{state:t}){const n=function(e){return tn(e.source,"non-literal dynamic import")}(e);Xt(n)&&t.push({specifier:n,kind:"dynamic-import"})},CallExpression(e,{state:t}){if(function(e){return"Import"===e.callee.type}(e)){const n=function(e){return tn(e.arguments[0],"non-literal dynamic import")}(e);Xt(n)&&t.push({specifier:n,kind:"dynamic-import"})}else(function(e){if("Identifier"!==e.callee.type||"require"!==e.callee.name)return!1;const[t]=e.arguments;return!t||!De(t)||nn(t.value)})(e)&&t.push({specifier:en(e),kind:"require"})}}),t}function Xt(e){return"non-literal dynamic import"===e||nn(e)}function Zt(e,t){if(!ge.some((t=>e.endsWith(t))))return!1;const n=a.relative(a.resolve(t),e);return!n.startsWith("..")&&!a.isAbsolute(n)&&!n.split(a.sep).some((e=>Ot.has(e)))}function en(e){return tn(e.arguments[0],"local require")}function tn(e,t){return De(e)?e.value:t}function nn(e){return e.startsWith(".")||e.startsWith("/")}function on(e,t){return new Error(`Unsupported local module graph for ${e}: ${t} could hide an action-catalog connectionId.`)}function rn(e,t,n){const o=new Set;return function(e,t,n,o){const r=[e],i=new Set;for(;r.length>0;){const s=r.shift();if(i.has(s))continue;i.add(s);const a=t.get(s);if(!a)throw on(e,`missing module record for ${s}`);o({entryId:e,moduleId:s,record:a});for(const t of a.unsupportedDependencies)throw on(e,`${t.kind} ${t.specifier}`);for(const o of a.staticDependencies){const i=o.resolvedId;if(Zt(i,n)){if(!t.has(i))throw on(e,`uncollected local import ${i} from ${a.id}`);r.push(i)}}}}(e,t,n,(({record:e})=>{const n=function(e){const t=new Set,n=new Set;for(const r of e.body)if("ImportDeclaration"===r.type&&"string"==typeof(o=r.source.value)&&(o===tt||o.startsWith(`${tt}/`))&&!Pe(r))for(const e of r.specifiers)Pe(e)||("ImportNamespaceSpecifier"===e.type?n.add(e.local.name):t.add(e.local.name));var o;return{functions:t,namespaces:n}}(e.ast),r=function(e,t){const n=new Set,o=new Set;for(const r of e.scopeManager.scopes)for(const e of r.variables)Be(e)&&(t.functions.has(e.name)&&n.add(e),t.namespaces.has(e.name)&&o.add(e));return{moduleScope:e,actionFunctions:n,actionNamespaces:o}}(e.scopeAnalysis,n);for(const n of We(e.ast,r,e.id)){const r=sn(n,t,e);void 0!==r&&o.add(r)}})),[...o].sort()}function sn(e,t,n){const[o]=e.arguments;if(!o||"ObjectExpression"!==o.type)throw cn(n.id,"non-object action-catalog call arguments");const r=function(e,t){let n;for(const o of e.properties){if("SpreadElement"===o.type)throw cn(t,"spread object arguments");if(o.computed)throw cn(t,"computed object property keys");if(un(o)){if(n)throw cn(t,"multiple connectionId properties");if("init"!==o.kind)throw cn(t,"accessor connectionId properties");if(!an(o))throw cn(t,"destructuring pattern in connectionId value");n=o}}return n}(o,n.id);if(!r)return;const i=function(e,t,n){return lt({modules:e,mutatedImportedObjectVariables:gt(e),seenVariables:new Set},t,n)}(t,n.id,r.value);if("resolved"===i.kind)return i.value;throw s=n.id,a=`static string resolution ${function(e){return"static-definition-unsupported"===e.reason?`${e.reason}/${e.definition.reason}`:e.reason}(i)}: ${i.message}`,new Error(`Unsupported action-catalog connectionId in ${s}: ${a}.`);var s,a}function an(e){const{value:t}=e;return"ObjectPattern"!==t.type&&"ArrayPattern"!==t.type&&"RestElement"!==t.type&&"AssignmentPattern"!==t.type}function un(e){return"connectionId"===function(e){if("Identifier"===e.key.type)return e.key.name;if("Literal"===e.key.type&&"string"==typeof e.key.value)return e.key.value;return}(e)}function cn(e,t){return new Error(`Unsupported action-catalog call in ${e}: ${t} could hide a connectionId.`)}const dn=new Set(d.builtinModules);function ln(e){return 0===e.length||e.some((e=>!Pe(e)))}function pn(e,t){const n=Ce(e);if(void 0!==n&&function(e){return e.startsWith("node:")||dn.has(e)}(n))throw new Error(`Importing Node built-in module "${n}" is not supported in backend function code. Backend functions run in a restricted environment: for networking, filesystem, or process access, use an Action Platform action ($.Actions or an @datadog/action-catalog typed wrapper) instead; for pure utility modules (e.g. path, url, util), use a runtime-independent package instead: ${t}`)}function fn(e){return"globalThis"===e||"global"===e}let mn=new Set;function gn(e,t,n=new Set){if("MemberExpression"===e.type){const o=hn(e,t);return!(!o||!fn(o))&&gn(e.object,t,n)}if("Identifier"!==e.type)return!1;const o=ze(e,t);if(!o)return fn(e.name);if(mn.has(o))return!0;if(n.has(o)||1!==o.defs.length)return!1;n.add(o);const[r]=o.defs;if("Variable"!==r.type||"const"!==r.parent.kind)return!1;if(!Me(r.node))return!1;const{id:i,init:s}=r.node;if(!s)return!1;if("Identifier"===i.type)return gn(s,t,n);if("ObjectPattern"===i.type){const e=n=>n.properties.some((n=>{if("Property"!==n.type)return!1;if(!fn(bn(n,t)??""))return!1;const o=yn(n.value);return o===r.name||"ObjectPattern"===o.type&&e(o)}));if(e(i))return gn(s,t,n)}return!1}function hn(e,t){return e.computed?wn(e.property,t):"Identifier"===e.property.type?e.property.name:void 0}function yn(e){return"AssignmentPattern"===e.type?e.left:e}function bn(e,t){return e.computed||"Identifier"!==e.key.type?wn(e.key,t):e.key.name}function wn(e,t,n=new Set){const o=Ce(e);if(void 0!==o)return o;if("Identifier"!==e.type)return;const r=ze(e,t);if(!r||n.has(r)||1!==r.defs.length)return;n.add(r);const[i]=r.defs;if("Variable"!==i.type||"const"!==i.parent.kind)return;if(!Me(i.node))return;const{id:s,init:a}=i.node;return"Identifier"===s.type&&a?wn(a,t,n):void 0}const vn=[{object:"Object",property:"assign"},{object:"Object",property:"values"},{object:"Object",property:"entries"},{object:"Object",property:"getOwnPropertyDescriptors"}];function $n(e,t,n,o){mn=new Set;for(const[e,r]of t.referencesByIdentifier)n.has(e.name)&&!r.resolved&&o.onNamedAccess(e.name);const r=e=>{for(const i of e.properties){if("RestElement"===i.type){o.onBulkCopy();continue}const e=bn(i,t);e&&n.has(e)&&o.onNamedAccess(e);const s=yn(i.value);e&&fn(e)&&"ObjectPattern"===s.type&&r(s)}},i=(e,n)=>{n&&gn(n,t)&&r(e)};Fe(e,null,{MemberExpression(e){if(!gn(e.object,t))return;const r=hn(e,t);r&&n.has(r)&&o.onNamedAccess(r)},VariableDeclarator(e){"ObjectPattern"===e.id.type&&i(e.id,e.init)},AssignmentExpression(e){"ObjectPattern"===e.left.type&&i(e.left,e.right)},AssignmentPattern(e){"ObjectPattern"===e.left.type&&i(e.left,e.right)},ForOfStatement(e){if("ArrayExpression"!==e.right.type)return;let n,o;if("VariableDeclaration"===e.left.type){if(1!==e.left.declarations.length)return;const[r]=e.left.declarations;if("ObjectPattern"===r.id.type)n=r.id;else{if("Identifier"!==r.id.type||"const"!==e.left.kind)return;o=function(e,t){return t.scopeManager.getDeclaredVariables(e)[0]}(r,t)}}else{if("ObjectPattern"!==e.left.type)return;n=e.left}e.right.elements.some((e=>null!==e&&"SpreadElement"!==e.type&&gn(e,t)))&&(n?r(n):o&&mn.add(o))},ObjectExpression(e){for(const n of e.properties)"SpreadElement"===n.type&&gn(n.argument,t)&&o.onBulkCopy()},CallExpression(e){const n=function(e,t){if("MemberExpression"!==e.type||"Identifier"!==e.object.type)return;const n=hn(e,t);if(!n)return;const o=e.object.name;return vn.find((e=>e.object===o&&e.property===n))}(e.callee,t);if(!n)return;("assign"===n.property?e.arguments.slice(1):e.arguments).some((e=>"SpreadElement"!==e.type&&gn(e,t)))&&o.onBulkCopy()}})}const kn=new Set(["fetch","XMLHttpRequest","WebSocket","EventSource"]);function xn(e,t,n){const o=je(e,t);$n(o,n??qe(o),kn,{onNamedAccess(e){!function(e,t){throw new Error(`Using "${e}" is not supported in backend function code. Backend functions cannot make raw network requests in production — use an Action Platform action ($.Actions or an @datadog/action-catalog typed wrapper) instead: ${t}`)}(e,t)},onBulkCopy(){throw new Error(`Copying every property of "globalThis"/"global" at once (a rest destructure, an object spread, or a call like Object.assign/Object.values) is not supported in backend function code — it copies every ambient global, including network-capable ones (${Array.from(kn).join(", ")}), into a plain object: ${t}`)}})}const En=new Set(["crypto","Intl"]),Sn=new Map;function In(e,t,n,o){!function(e,t){const n=je(e,t);for(const e of n.body)"ImportDeclaration"!==e.type||Pe(e)||!ln(e.specifiers)?"ExportNamedDeclaration"===e.type&&e.source&&!Pe(e)&&ln(e.specifiers)?pn(e.source,t):"ExportAllDeclaration"!==e.type||Pe(e)||pn(e.source,t):pn(e.source,t);Fe(n,null,{ImportExpression(e){pn(e.source,t)}})}(e,t),xn(e,t,o),function(e,t,n,o){const r=je(e,t),i=o??qe(r);let s=Sn.get(t);s||(Sn.size>=500&&Sn.clear(),s=new Set,Sn.set(t,s));const a=e=>{s.has(e)||(s.add(e),function(e,t,n){n.warn(`"${e}" is used in ${t}. Its exact behavior can differ between local execution (Node) and production (Deno) — verify locale-/implementation-sensitive results with "npm run dev:verify" before publishing.`)}(e,t,n))};$n(r,i,En,{onNamedAccess:a,onBulkCopy(){for(const e of En)a(e)}})}(e,t,n,o)}function jn(e){const t=e.relativePath.split(a.sep).join("/");return`${l.createHash("sha256").update(t).digest("hex")}.${e.name}`}function An(e){const t=[];for(const{exportName:n,queryName:o}of e)t.push(`export async function ${n}(...args) {`),t.push(` return globalThis.DD_APPS_RUNTIME.executeBackendFunction(${JSON.stringify(o)}, args);`),t.push("}"),t.push("");return t.join("\n")}function Dn(e,t){try{return require.resolve(e,{paths:[t]}),!0}catch{return!1}}function Pn(e){return Dn("@datadog/action-catalog/action-execution",e)}function Mn(e){return Dn("@datadog/apps-backend/runtime/jsFunctionWithActions",e)}function Cn(e,t,n){const o=[],r=Mn(n);return o.push(`import { ${e} } from ${JSON.stringify(t)};`),r&&o.push("import { buildRuntimeFromJsFunctionWithActions } from '@datadog/apps-backend/runtime/jsFunctionWithActions';\nimport { setBackend } from '@datadog/apps-backend/runtime';"),Pn(n)&&o.push("import { setExecuteActionImplementation } from '@datadog/action-catalog/action-execution';"),o.push(""),o.push('/** @param {import("./context.types").Context} $ */'),o.push("export async function main($) {"),o.push(" globalThis.$ = $;"),o.push(""),r&&(o.push(" // Supply the backend runtime context"),o.push(" if (typeof buildRuntimeFromJsFunctionWithActions === 'function' && typeof setBackend === 'function') {\n setBackend(buildRuntimeFromJsFunctionWithActions($));\n }"),o.push("")),o.push(" // Register the $.Actions-based implementation for executeAction"),o.push(" if (typeof setExecuteActionImplementation === 'function') {\n setExecuteActionImplementation(async (actionId, request) => {\n const actionPath = actionId.replace(/^com\\.datadoghq\\./, '');\n const pathParts = actionPath.split('.');\n let actionFn = $.Actions;\n for (const part of pathParts) {\n if (!actionFn) throw new Error('Action not found: ' + actionId);\n actionFn = actionFn[part];\n }\n if (typeof actionFn !== 'function') throw new Error('Action is not a function: ' + actionId);\n return actionFn(request);\n });\n }"),o.push(""),o.push(" const args = $.backendFunctionArgs ?? [];"),o.push(` const result = await ${e}(...args);`),o.push(" return result;"),o.push("}"),o.join("\n")}const On=/^(?:\0|virtual:)/;function Nn(e){return e.split("?")[0]}function Tn(e){return On.test(e)}function Rn(e,t){const n=function(e){const t=new Map;return{plugin:{name:"dd-backend-module-graph-collector",moduleParsed(n){const o=Nn(n.id);if(Tn(o))return;if(!Zt(o,e))return;if("string"!=typeof n.code)return;let r;try{r=this.parse(n.code)}catch(e){throw on(o,`unparseable module source (${e instanceof Error?e.message:String(e)})`)}const i=Nt(o,e,r,function(e){return e.importedIdResolutions?.map((({id:e})=>e))??[...e.importedIds]}(n).map(Nn));i&&t.set(i.id,i)}},getModuleRecords:()=>t}}(t);return{plugin:n.plugin,getAllowedConnectionIds:()=>rn(e,n.getModuleRecords(),t),getModuleRecords:n.getModuleRecords}}function _n(e,t,n){return{name:"dd-backend-static-checks",moduleParsed(o){const r=Nn(o.id);if(Tn(r)||!Zt(r,e))return;const i=n().get(r);let s,a;if(i)s=i.ast,a=i.scopeAnalysis;else{if("string"!=typeof o.code)return;try{s=this.parse(o.code)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Error(`Unsupported module source for ${r}: ${`unparseable module source (${t})`} could hide a Node-builtin import or restricted-global access.`)}a=qe(je(s,r))}In(s,r,t,a)}}}function Fn(e,t){return{name:e,enforce:"pre",resolveId:e=>t[e]?{id:e,moduleSideEffects:!0}:null,load:e=>t[e]?t[e]:null}}function Ln(e,t,n=[]){return{configFile:!1,root:e,logLevel:"silent",build:{minify:!1,target:"esnext",ssr:!0,rollupOptions:{output:{format:"es",exports:"named",inlineDynamicImports:!0},preserveEntrySignatures:"exports-only",treeshake:!1,onwarn(e,t){"MODULE_LEVEL_DIRECTIVE"!==e.code&&t(e)}}},resolve:{extensions:[...ge,".json"]},ssr:{noExternal:!0},plugins:[Fn("dd-backend-resolve",t),...n]}}const qn=async(e,t)=>{const n=(await Promise.all(e.map((e=>m.glob(e,{absolute:!0,cwd:t,nodir:!0}))))).flat(),o=Array.from(new Set(n)).map((e=>a.relative(t,e))),r=(e=>{if(0===e.length)return"";const t=e[0].split(a.sep);let n="";for(let o=0;o<t.length-1;o++){const r=t.slice(0,o+1).join(a.sep);if(!e.every((e=>e.startsWith(`${r}${a.sep}`))))break;n=r}return n})(o);return o.map(((e,t)=>{const o=r?e.slice(r.length+1):e;return{absolutePath:n[t],relativePath:o.split(a.sep).join("/")}}))};async function zn(e){const t=await r.mkdtemp(a.join(p.tmpdir(),"dd-apps-manifest-")),n=a.join(t,"manifest.json");try{await r.writeFile(n,JSON.stringify(function(e){const t={};for(const n of e)t[jn(n)]={allowedConnectionIds:[...n.allowedConnectionIds]};return{backend:{functions:t}}}(e),null,2))}catch(e){throw await ye(t),e}return{manifestAsset:{absolutePath:n,relativePath:"manifest.json"},cleanup:()=>ye(t)}}async function Bn({backendOutputs:e,backendFunctions:t,context:n,options:o}){const s=n.getLogger(de),{buildRoot:u,bundler:{outDir:c}}=n,d=a.join(c,le),l=a.resolve(_("APPS_PACKAGE_DIR")||c),p=a.join(l,le);await Promise.all([r.rm(p,{force:!0}),r.rm(d,{force:!0})]);const m=a.relative(u,c),g=await qn([...o.include,`${m}/**/*`],u);if(0===g.length&&0===e.size)return void s.debug("No assets to package.");let h;await r.mkdir(l,{recursive:!0});try{const n=new Set([p,d]),o=new Set(e.values()),u=[...g.filter((e=>!n.has(a.resolve(e.absolutePath)))).filter((e=>!o.has(e.absolutePath))).map((e=>({...e,relativePath:`frontend/${e.relativePath}`})))];for(const[t,n]of e)u.push({absolutePath:n,relativePath:`backend/${t}.js`});const c=await zn(t);h=c.cleanup,u.push(c.manifestAsset);const l=await(async(e,t)=>{const n=new f;for(const t of e)n.file(t.relativePath,i.createReadStream(t.absolutePath),{binary:!0,compression:"DEFLATE",compressionOptions:{level:9}});await new Promise(((e,o)=>{const r=i.createWriteStream(t),s=n.generateNodeStream({type:"nodebuffer",streamFiles:!0,compression:"DEFLATE",compressionOptions:{level:9}});s.on("error",o),r.on("error",o),r.on("close",e),s.pipe(r)}));const{size:o}=await r.stat(t);return{archivePath:t,size:o,assets:e}})(u,p);return s.info(`App package written to ${l.archivePath}.`),l.archivePath}finally{await(h?.())}}function Vn(e){return e.endsWith(".tsx")?"tsx":e.endsWith(".ts")||e.endsWith(".mts")||e.endsWith(".cts")?"ts":e.endsWith(".jsx")?"jsx":"js"}function Un(e){return e.endsWith(fe)?e.slice(0,-14):e}function Wn(e){return Nn(Un(e))}function Kn(e,t){return t?Math.min(250*2**(e-1),2e3):250}const Hn=new y.AsyncLocalStorage,Jn=Reflect.has(globalThis,"$"),Gn=new y.AsyncLocalStorage,Yn=new y.AsyncLocalStorage;let Qn=Reflect.get(globalThis,"$");function Xn(){Object.getOwnPropertyDescriptor(globalThis,"$")?.get!==Zn&&Object.defineProperty(globalThis,"$",{configurable:!0,enumerable:!0,get:Zn,set:eo})}function Zn(){const e=Hn.getStore();if(e)return e.value;const t=Gn.getStore();return t?t.assigned?t.value:Jn?Qn:void 0:Qn}function eo(e){const t=Hn.getStore();if(t)return void(t.value=e);const n=Gn.getStore();if(n)return n.assigned=!0,void(n.value=e);Qn=e}Xn();const to=new y.AsyncLocalStorage;function no(e){return"object"==typeof e&&null!==e}const oo=he(void 0);function ro(e){const t=e.maxRetries*e.timeoutMs+function(e){let t=0;for(let n=1;n<e.maxRetries;n++)t+=Kn(n,e.exponentialBackoff);return t}(e);return{actionCallTimeoutMs:2*t,totalExecutionTimeoutMs:1.2*t}}function io(e,t){return Yn.run(new Set,(()=>Gn.run({assigned:!1,value:void 0},(()=>e(t)))))}function so(e,t,n){const{inputs:o,connectionId:r}=e;if("object"!=typeof o||!o)throw new Error(`Action ${n} must have an inputs field`);return function(e,t,n){if(void 0!==e&&!t.includes(e))throw new Error(`Action ${n} used connection "${e}", which is not in this function's allowed connections: [${t.join(", ")}]`)}(r,t,n),{inputs:o,connectionId:r}}let ao=Promise.resolve();function uo(e,t){return new Error(`Execution of "${e}" already concluded; refusing to ${t} as this stale execution to avoid using a newer execution's identity.`)}const co=function(){let e=0,t=null;return{start(){const n=++e;return t=n,{isCurrent:()=>t===n,concludeIfCurrent:()=>t===n&&(t=null,!0)}}}}();function lo(e,t,n=[]){return new Proxy((function(){}),{get(o,r){if("then"===r||"toJSON"===r)return;const i=n.concat(String(r));return lo(e,t,i)},async apply(o,r,i){if(0===i.length)throw new Error(`No arguments provided to action $.Actions.${n.join(".")}`);const s=no(i[0])?i[0]:{},{inputs:a,connectionId:u}=so(s,t,`$.Actions.${n.join(".")}`),c=`com.datadoghq.${n.join(".")}`;return e(c,a,u)}})}function po(e,t,n){return new Promise(((o,r)=>{const i=setTimeout((()=>{r(new Error(`${n} timed out after ${t}ms`))}),t);e.then((e=>{clearTimeout(i),o(e)}),(e=>{clearTimeout(i),r(e)}))}))}function fo(e,t,n,o,r,i){if(!e(r))return Promise.resolve();const s=t.get(o);if(s)return s;const a=n(o,i).catch((e=>{throw t.delete(o),e}));return t.set(o,a),a}const mo=new WeakMap;async function go(e,t){const n=e("@datadog/action-catalog/action-execution"),o=(await po(n,t,"Loading @datadog/action-catalog/action-execution")).setExecuteActionImplementation;"function"==typeof o&&o((async(e,t)=>{const n=to.getStore();if(!n)throw new Error(`No active local execution to run "${e}" under.`);if(n.isAbandoned())throw uo(n.functionName,`run "${e}"`);const o=no(t)?t:{},{inputs:r,connectionId:i}=so(o,n.allowedConnectionIds,`"${e}"`);return n.executeAction(e,r,i)}))}const ho=new WeakMap;async function yo(e,t){const n=Promise.all([e("@datadog/apps-backend/runtime/jsFunctionWithActions"),e("@datadog/apps-backend/runtime")]),[o,r]=await po(n,t,"Loading @datadog/apps-backend/runtime"),i=o.buildRuntimeFromJsFunctionWithActions,s=r.setBackend;if("function"!=typeof i||"function"!=typeof s)return;const a=new WeakMap;s(new Proxy({},{get(e,t){const n=to.getStore();if(!n)throw new Error("No active local execution to resolve an apps-backend accessor under.");if(n.isAbandoned())throw uo(n.functionName,"resolve a further apps-backend accessor");let o=a.get(n);if(void 0===o&&(o=i(n.$),a.set(n,o)),!no(o))return;const r=o[String(t)];return"function"==typeof r?r.bind(o):r}}))}class bo extends Error{}function wo(e,t){return"object"==typeof e&&null!==e&&!t.has(e)&&(Object.getOwnPropertySymbols(e).length>0||(t.add(e),Object.values(e).some((e=>wo(e,t)))))}function vo(e,t){if(wo(e,new Set))throw new Error(`Local execution of "${t.name}" returned a value with a Symbol-keyed property, which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`);let n;try{let o=!0;n=JSON.stringify(e,((e,n)=>{const r=o;if(o=!1,n instanceof Map||n instanceof Set)throw new bo(`Local execution of "${t.name}" returned a ${n.constructor.name}${e?` (at "${e}")`:""}, which JSON.stringify silently flattens to "{}" instead of serializing its entries — return a plain array or object instead.`);if("number"==typeof n&&!Number.isFinite(n))throw new bo(`Local execution of "${t.name}" returned ${n}${e?` (at "${e}")`:""}, which JSON.stringify silently converts to "null" instead of throwing — return a finite number instead.`);if(!r&&("function"==typeof n||"symbol"==typeof n||void 0===n))throw new bo(`Local execution of "${t.name}" returned a ${typeof n} (at "${e}"), which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`);return n}))}catch(e){if(e instanceof bo)throw e;throw new Error(`Local execution of "${t.name}" returned a value that can't be serialized to JSON: ${e instanceof Error?e.message:String(e)}`)}if(void 0!==n)return JSON.parse(n);if(void 0!==e)throw new Error(`Local execution of "${t.name}" returned a ${typeof e} value, which JSON.stringify silently drops instead of serializing — return a plain JSON-compatible value instead.`)}async function $o(e,t,n,o,r,i,s,a=1e4,u=oo){const c=`${e.relativePath}/${e.name}`;return function(e){const t=ao.then(e);return ao=t.then((()=>{}),(()=>{})),t}((async()=>{const d=i(e.absolutePath),l=await po(d,a,`Resolving allowed connections for "${c}"`),p=e.absolutePath+fe,f=io(r,p),m=await po(f,a,`Loading "${c}"`);return async function(e,t,n,o,r,i,s,a,u){i.debug(`Executing "${e.name}" in-process with args`);const{actionCallTimeoutMs:c,totalExecutionTimeoutMs:d}=ro(u),l=co.start();let p,f,m,g=0;const h=()=>{p=setTimeout((()=>{w(),f?.(new Error(`Local execution of "${e.name}" timed out after ${s}ms`))}),s)},y=()=>{clearTimeout(m),m=setTimeout((()=>{w(),f?.(new Error(`Local execution of "${e.name}" exceeded the absolute ${d}ms execution ceiling, regardless of any $.Actions call in flight.`))}),d)},b=async(t,n,r)=>{if(!l.isCurrent())throw uo(e.name,`run "${t}"`);g+=1,clearTimeout(p),y();try{const e=o(t,n,r);return await po(e,c,`$.Actions call to "${t}"`)}finally{g-=1,0===g&&l.isCurrent()&&h()}},w=()=>{l.concludeIfCurrent()},v={backendFunctionArgs:n,Actions:lo(b,e.allowedConnectionIds),Source:{initiator:{id:"local-dev",orgId:"local-dev-org"},runAsUser:{id:"local-dev",orgId:"local-dev-org"}}},$={executeAction:b,allowedConnectionIds:e.allowedConnectionIds,isAbandoned:()=>!l.isCurrent(),functionName:e.name,$:v},k=async()=>{try{const o=(a??await io(r,e.absolutePath+fe))[e.name];if("function"!=typeof o)throw new Error(`"${e.name}" is not a function exported from ${e.absolutePath}`);return Xn(),await Hn.run({value:v},(()=>to.run($,(async()=>{const i=function(e,t,n){return fo(Pn,mo,go,e,t,n)}(r,t,s),a=function(e,t,n){return fo(Mn,ho,yo,e,t,n)}(r,t,s);if(await Promise.all([i,a]),!l.isCurrent())throw new Error(`Execution of "${e.name}" was abandoned after timing out before it could start.`);return{data:vo(await o(...n),e)}}))))}finally{w()}},x=new Promise(((e,t)=>{f=t,h()}));y();const E=k();let S=!1;E.catch((t=>{if(!S)return;const n=t instanceof Error?t.message:String(t);i.debug(`"${e.name}" failed after its caller had already stopped waiting: ${n}`)}));try{return await Promise.race([E,x])}finally{S=!0,clearTimeout(p),clearTimeout(m)}}({...e,allowedConnectionIds:l},t,n,o,r,s,a,m,u)}))}function ko(e){return new Promise((t=>{setTimeout(t,e)}))}function xo(e){return null!==e&&"object"==typeof e&&"name"in e&&("TimeoutError"===e.name||"AbortError"===e.name)}function Eo(e,t){const n=Kn(e,t.exponentialBackoff);return t.jitter?n/2+Math.random()*(n/2):n}function So(e){return`${e.relativePath}/${e.name}`}async function Io(e,t,n,o){const r=So(t),i=`virtual:dd-backend-dev:${r}`,s=function(e,t,n){return Cn(e,t,n??process.cwd())}(t.name,t.absolutePath,n),a=Rn(t.absolutePath,n);o.debug(`Bundling backend function "${r}" from ${t.absolutePath}`);const u=_n(n,o,a.getModuleRecords),c=Ln(n,{[i]:s},[a.plugin,u]),d=await e({...c,build:{...c.build,write:!1,rollupOptions:{...c.build.rollupOptions,input:i,output:c.build.rollupOptions.output}}}),l=Array.isArray(d)?d[0]:d;if(!("output"in l))throw new Error(`Unexpected vite.build result for "${r}"`);const p="chunk"===l.output[0].type?l.output[0].code:"",f={...t,allowedConnectionIds:a.getAllowedConnectionIds()};return o.debug(`Bundled "${r}" (${p.length} bytes)`),{func:f,code:p}}async function jo(e,t,n,o,r,i){const s=`https://api.${n.site}/api/v2/app-builder/queries/preview-async`;i.debug(`Calling Datadog API: ${s}`);const a=JSON.stringify({data:{type:"queries",attributes:{query:{id:l.randomUUID(),name:t,type:"action",properties:{spec:e,onlyTriggerManually:!0}},template_params:{}}}}),u=await o({url:s,method:"POST",type:"json",getData:()=>({data:a,headers:{"Content-Type":"application/json"}})}),c=u.data?.id;if(!c)throw new Error("No receipt ID returned from Datadog API");return i.debug(`Query execution started with receipt: ${c}`),async function(e,t,n,o,r){const i=`https://api.${t.site}/api/v2/app-builder/queries/execution-long-polling/${e}`,{maxRetries:s,timeoutMs:a}=o;for(let e=0;e<s;e++){if(e>0){const t=Eo(e,o);r.debug(`Waiting ${Math.round(t)}ms before long-poll retry...`),await ko(t)}let t;r.debug(`Long-poll attempt ${e+1}/${s}...`);try{t=await n({url:i,type:"json",signal:AbortSignal.timeout(a)})}catch(t){if(!xo(t))throw t;r.debug(`Long-poll attempt ${e+1} timed out after ${a}ms`);continue}if(t.errors?.length){const e=t.errors.map((e=>e.detail||e.title)).join("; ");throw new Error(`Query execution failed: ${e}`)}const u=t.data?.attributes;if(r.debug(`Long-poll response, done: ${u?.done}`),u?.done){if(void 0===u.outputs||null===u.outputs)throw new Error("Query execution completed without outputs");return u.outputs}}throw new Error("Query execution timed out")}(c,n,o,r,i)}function Ao(e,t,n){e.statusCode=t,e.setHeader("Content-Type","application/json"),e.end(JSON.stringify({success:!1,error:n}))}function Do(e,t){e.statusCode=200,e.setHeader("Content-Type","application/json"),e.end(JSON.stringify({success:!0,result:t}))}function Po(e,t,n){t?n(t).catch((()=>Ao(e,500,"Unexpected error"))):Ao(e,400,`Auth credentials not configured. ${Se}`)}function Mo(e,t,n,o){const r=t instanceof Co?t.statusCode:500,i=t instanceof Error?t.message:"Internal server error";n&&o&&n.debug(`Error handling ${o}: ${i}`),Ao(e,r,i)}class Co extends Error{constructor(e,t){super(t),this.statusCode=e}}async function Oo(e,t){const{functionName:n,args:o=[]}=await function(e){return new Promise(((t,n)=>{let o="";e.on("data",(e=>{o+=e.toString()})),e.on("end",(()=>{try{t(JSON.parse(o))}catch{n(new Error("Invalid JSON body"))}})),e.on("error",n)}))}(e);if(!n||"string"!=typeof n)throw new Co(400,"Missing or invalid functionName");const r=t.get(n);if(!r)throw new Co(404,`Backend function "${n}" not found`);return{func:r,args:o}}async function No(e,t,n){const{func:o,args:r}=await Oo(e,t);return{...await n(o),args:r}}async function To(e,t,n,o,r,i,s,a,u,c){try{const{func:d,args:l}=await Oo(e,n),p=So(d);c.debug(`Executing action locally: ${p} with args`);const f=function(e,t,n,o){return async(r,i,s)=>{try{const a=await jo(void 0!==s?{fqn:r,inputs:i,connectionId:s}:{fqn:r,inputs:i},r,e,t,n,o);return o.info(`$.Actions call to "${r}" succeeded: ${JSON.stringify(a)}`),a}catch(e){const t=e instanceof Error?e.message:String(e);throw o.error(`$.Actions call to "${r}" failed: ${t}`),e}}}(o,r,i,c);Do(t,await $o(d,u,l,f,s,a,c,1e4,i))}catch(e){Mo(t,e,c,"executeAction")}}async function Ro(e,t,n,o,r,i,s,a){try{const{func:u,code:c,args:d}=await No(e,n,o),l=So(u);a.debug(`Executing action via cloud: ${l} with args`);const p=await async function(e,t,n,o,r,i,s){const a=So(t),u=await jo({fqn:"com.datadoghq.datatransformation.jsFunctionWithActions",inputs:{script:e,allowedConnectionIds:t.allowedConnectionIds,context:{backendFunctionArgs:n}}},a,o,r,i,s);if("object"!=typeof u||null===u||!("data"in u))throw new Error('Query execution completed without a "data" field in its outputs');return u}(c,u,d,r,i,s,a);Do(t,p)}catch(e){Mo(t,e,a,"executeActionViaCloud")}}function _o(e,t,n,o,r,i,s,a,u){const c=t=>Io(e,t,a,u),d=n();return d.length>0&&u.info(`Dev server middleware active for ${d.length} backend function(s): ${d.map((e=>e.name)).join(", ")}`),(e,d,l)=>{if("POST"!==e.method)return void l();const p=(f=n(),new Map(f.map((e=>[jn(e),e]))));var f;"/__dd/debugBundle"===e.url?async function(e,t,n,o){try{const{code:r}=await No(e,n,o);t.statusCode=200,t.setHeader("Content-Type","text/plain"),t.end(r)}catch(e){Mo(t,e)}}(e,d,p,c).catch((()=>{Ao(d,500,"Unexpected error")})):"/__dd/executeAction"===e.url?Po(d,i,(n=>To(e,d,p,r,n,s,t,o,a,u))):"/__dd/executeActionViaCloud"===e.url?Po(d,i,(t=>Ro(e,d,p,c,r,t,s,u))):l()}}const Fo=a.join(__dirname,"./apps-runtime.mjs"),Lo=({bundler:e,context:t,options:n})=>{const o=t.getLogger(de),{auth:i}=t;t.inject({type:"file",position:Ee.MIDDLE,value:Fo});const{setBackendFunctions:s,getBackendFunctions:u}=function(){const e=new Map;return{setBackendFunctions(t,n){e.set(t,n)},getBackendFunctions:()=>Array.from(e.values()).flat()}}();let c=!1;return{config:()=>({ssr:{noExternal:["@datadog/apps-backend","@datadog/action-catalog"]}}),resolveId:{order:"pre",async handler(e,n,o){if(!0!==o.ssr)return null;const r=Yn.getStore();if(!(!!n&&(n.endsWith(fe)||!!r&&r.has(n))))return null;const i=await this.resolve(e,n,{...o,skipSelf:!0});if(!i||i.external)return i;if(i.id.endsWith(fe))return i;if(!Zt(i.id,t.buildRoot))return i;const s=i.id+fe;return pe.test(i.id)||r?.add(s),{...i,id:s}}},transform:{filter:{id:{include:[me],exclude:[/node_modules/,/[/\\]dist[/\\]/]}},handler(e,n,r){if(n.endsWith(fe)&&r?.ssr)return null;const i=n.indexOf("?"),u=-1===i?n:n.slice(0,i),c=this.parse(e),d=qe(je(c,u));In(c,u,o,d);const l=Oe(c,u);if(0===l.length)return-1===i&&(o.warn(`Backend file ${u} has no exported functions. Did you forget to add a named export?`),s(u,[])),{code:"",map:null};const{functions:p,proxyCode:f}=function(e,t,n){const o=a.relative(n,t).replace(pe,""),r=[],i=[];for(const n of e){const e={relativePath:o,name:n,absolutePath:t,allowedConnectionIds:[]};r.push(e),i.push({exportName:n,queryName:jn(e)})}return{functions:r,proxyCode:An(i)}}(l,u,t.buildRoot);return s(u,p),o.debug(`Generated proxy for ${u} with ${p.length} export(s)`),{code:f,map:null}}},async closeBundle(){if(c)return void o.debug("Skipping app packaging: dev server session.");let i,s=new Map,d=u();if(d.length>0){const n=await async function(e,t,n,o){const i=await r.mkdtemp(a.join(p.tmpdir(),"dd-apps-backend-")),s=new Map,u=new Map;o.debug(`Building ${t.length} backend function(s) via vite.build()`);try{for(const r of t){const t=jn(r),c=`\0dd-backend:${t}`,d=Cn(r.name,r.absolutePath,n),l=Rn(r.absolutePath,n),p=_n(n,o,l.getModuleRecords),f=Ln(n,{[c]:d},[l.plugin,p]),m=await e({...f,build:{...f.build,write:!0,outDir:i,emptyOutDir:!1,rollupOptions:{...f.build.rollupOptions,input:{[t]:c},output:{...f.build.rollupOptions.output,entryFileNames:"[name].js"}}}}),g=Array.isArray(m)?m[0]:m;if("output"in g)for(const e of g.output){if("chunk"!==e.type||!e.isEntry)continue;const n=a.resolve(i,e.fileName);s.set(t,n),o.debug(`Backend function "${t}" output: ${n}`)}u.set(r.absolutePath,l.getAllowedConnectionIds())}}catch(e){try{await ye(i)}catch(e){o.warn(`Failed to clean up temp output directory "${i}": ${e}`)}throw e}return{outDir:i,outputs:s,functions:t.map((e=>({...e,allowedConnectionIds:u.get(e.absolutePath)})))}}(e.build,d,t.buildRoot,o);i=n.outDir,s=n.outputs,d=n.functions}try{await Bn({backendOutputs:s,backendFunctions:d,context:t,options:n})}finally{i&&await ye(i)}},configureServer(r){let s;c=!0;try{s=(()=>{const e=_("API_KEY"),t=_("APP_KEY");if(e&&t)return n=>B({...n,auth:{apiKey:e,appKey:t}});const n=_("OAUTH_ACCESS_TOKEN");if(n)return e=>B({...e,auth:{accessToken:n}});throw new Ie})()}catch(e){if(!(e instanceof Ie))throw e;o.warn(`No authentication configured. Both the /__dd/executeAction and /__dd/executeActionViaCloud endpoints will be unavailable. ${Se}`)}const a=r.ssrLoadModule.bind(r),d=_o(e.build,a,u,(async e=>{const n=await async function(e,t,n,o){const r=new Map,i=new Set,s=[],a=t+fe;await e.transformRequest(a,{ssr:!0});const u=e.moduleGraph.getModuleById(a);for(u&&s.push(u);s.length>0;){const t=s.shift(),a=t.id?Wn(t.id):void 0;if(!a||!t.file)continue;if(!Zt(a,n))continue;if(t.id&&Un(t.id).includes("?"))throw on(a,`Vite resource query on module id "${t.id}"`);if(i.has(a))continue;let u,c;i.add(a);try{u=await ve(t.file)}catch(e){const t=e instanceof Error?e.message:String(e);throw on(a,`unreadable module source (${t})`)}try{const e=await g.transform(u,{loader:Vn(a),format:"esm"});c=h.parseAst(e.code)}catch(e){const t=e instanceof Error?e.message:String(e);throw on(a,`unparseable module source (${t})`)}const d=Tt(c),l=t.file,p=(await Promise.all(d.map((t=>e.pluginContainer.resolveId(t,l??void 0,{ssr:!0}))))).map(((e,t)=>{if(!e)throw on(a,`unresolvable import specifier "${d[t]}"`);return Wn(e.id)})),f=Nt(a,n,c,p);f&&(In(f.ast,f.id,o,f.scopeAnalysis),r.set(f.id,f));for(const n of t.importedModules)n.id&&await e.transformRequest(n.id,{ssr:!0}),s.push(n)}return r}(r,e,t.buildRoot,o);return rn(e,n,t.buildRoot)}),i,s,n.longPolling,t.buildRoot,o);r.middlewares.use(d)}}},qo=({options:e,context:t,bundler:n})=>{const o=t.getLogger(de),r=(e=>{const t=e[ce]||{};return{include:t.include||[],longPolling:he(t.longPolling)}})(e);return"vite"!==t.bundler.name?(o.warn(`The apps plugin only supports Vite; skipping under '${t.bundler.name}'.`),[]):[{name:de,enforce:"post",vite:Lo({bundler:n,context:t,options:r})}]},zo="errorTracking",Bo="datadog-error-tracking-plugin",Vo=(e,n,o)=>{if(".map"!==a.extname(o))throw new Error(`The file ${t.green.bold(o)} is not a sourcemap.`);const r=o.replace(/\.map$/,""),i=a.relative(n,r),s=((e,t)=>{if(e.startsWith("/"))return a.join(e,t);try{const n=e.replace(/\/*$/,"/"),o=new URL(n),r=t.replace(/^[\\/]*/,"");return new URL(r,o).href}catch{return`${e}${t}`}})(e,i);return{minifiedFilePath:r,minifiedUrl:s,relativePath:i}},Uo=/"?ddDebugId"?:"([0-9a-fA-F-]{36})"/,Wo=async e=>(async e=>{const t=await r.open(e,"r");try{const e=Buffer.alloc(1024);let o="",r=0;for(;;){const{bytesRead:i}=await t.read(e,0,1024,r);if(0===i)return;const s=o+e.toString("utf-8",0,i),a=(n=s,Uo.exec(n)?.[1]);if(a)return a;o=s.slice(-64),r+=i}}finally{await t.close()}var n})(e).catch((()=>{})),Ko=/[/]+|[\\]+/g,Ho=/^[/]+|^[\\]+|[/]+$|[\\]+$/g,Jo=(e,t)=>{const n=e.replace(Ho,"").split(Ko),o=t.replace(Ho,"").split(Ko),r=n.join("/");let i="";for(let e=0;e<o.length;e+=1){const t=o.slice(-e).join("/");r.startsWith(t)&&(i=t)}return i},Go=async(e,t,n,o,r)=>{const i=await(async(e,t)=>{const[n,o]=await Promise.all([xe(e.minifiedFilePath),xe(e.sourcemapFilePath)]);return{file:n,sourcemap:o,repeatedPrefix:Jo(e.relativePath,t)}})(e,n),s=[],u=[],c=new Map([["event",{type:"string",options:{contentType:"application/json",filename:"event"},value:JSON.stringify({...t,debug_id:r,minified_url:e.minifiedUrl})}],["source_map",{type:"file",path:e.sourcemapFilePath,options:{filename:"source_map",contentType:"application/json"}}],["minified_file",{type:"file",path:e.minifiedFilePath,options:{filename:"minified_file",contentType:"application/javascript"}}]]);if(o)try{c.set("repository",{type:"string",options:{contentType:"application/json",filename:"repository"},value:JSON.stringify({data:[{files:o.trackedFilesMatcher.matchSourcemap(e.sourcemapFilePath,(t=>{u.push(`${a.basename(e.sourcemapFilePath)}: "${t}"`)})),hash:o.hash,repository_url:o.remote}],version:1})})}catch(t){u.push(`Could not attach git data for sourcemap ${e.sourcemapFilePath}: ${t.message}`)}return i.file.empty&&s.push(`Minified file is empty: ${e.minifiedFilePath}`),i.file.exists||s.push(`Minified file not found: ${e.minifiedFilePath}`),i.sourcemap.empty&&s.push(`Sourcemap file is empty: ${e.sourcemapFilePath}`),i.sourcemap.exists||s.push(`Sourcemap file not found: ${e.sourcemapFilePath}`),i.repeatedPrefix&&u.push(`The minified file path contains a repeated pattern with the minified path prefix: ${i.repeatedPrefix}`),{content:c,errors:s,warnings:u}},Yo=e=>{const t=e.message.match(/HTTP (\d{3})/);return t?`status_code:${t[1]}`:"status_code:unknown"},Qo=e=>{const t=Yo(e);return"status_code:unknown"!==t?`error_type:http_${t.replace("status_code:","")}`:`error_type:${Q(e.name||"unknown")}`},Xo=(e,t,n)=>{const o=((e,t)=>`${e}|${t.join("|")}`)(t,n),r=e.metrics.get(o);r?r.value++:e.metrics.set(o,{name:t,value:1,tags:n})},Zo=(e,t,n)=>{Xo(e,"retry",[...e.baseTags,`attempt:${n}`,Yo(t),Qo(t)])},er=(e,t)=>{Xo(e,"failure",[...e.baseTags,Yo(t),Qo(t)])},tr=(e,t)=>{if(!t.sendMetrics)return;if(!e.metrics.size)return;const n=(e=>{const t=Math.floor(Date.now()/1e3);return Array.from(e.metrics.values()).map((e=>({metric:`sourcemaps.upload.${e.name}`,type:"count",points:[[t,e.value]],tags:e.tags})))})(e);for(const e of n)t.addMetric(e)},nr=t.green.bold,or=t.yellow.bold,rr=t.red.bold,ir=(e,t={})=>async()=>(async e=>{const{getForm:t,defaultHeaders:n={},zip:o=!0}=e,r=await t(),i=new Request("fake://url",{method:"POST",body:r});return{data:o?i.body.pipeThrough(new CompressionStream("gzip")):i.body,headers:{"Content-Encoding":o?"gzip":"multipart/form-data",...n,...Object.fromEntries(i.headers.entries())}}})({getForm:async()=>{const t=new FormData;for(const[n,o]of e.content){const e="file"===o.type?await ke(o.path,o.options):new Blob([o.value],{type:o.options.contentType});t.append(n,e,o.options.filename)}return t},defaultHeaders:t,zip:!0}),sr=async(e,t,n,o)=>{const r=[],i=[];if(!n.apiKey)return r.push({error:new Error("No authentication token provided")}),{errors:r,warnings:i};if(0===e.length)return i.push("No sourcemaps to upload"),{errors:r,warnings:i};const s=o.time("Queue uploads"),a=new(b.default?b.default:b)({concurrency:t.maxConcurrency}),u=(c=n.site,_("SOURCEMAP_INTAKE_URL")||`https://sourcemap-intake.${c}/api/v2/srcmap`);var c;const d={"DD-EVP-ORIGIN":`${(l={bundler:n.bundlerName,plugin:"sourcemaps",version:n.version}).bundler}-build-plugin_${l.plugin}`,"DD-EVP-ORIGIN-VERSION":l.version};var l;const p=(e=>({metrics:new Map,baseTags:[`service:${e.service}`]}))(t),f=X({...t,intakeUrl:u,outDir:n.outDir,defaultHeaders:`\n${JSON.stringify(d,null,2)}`}),m=`\nUploading ${nr(e.length.toString())} sourcemaps with configuration:\n${f}`;o.debug(m);const g=[];for(const s of e){const e={sourcemap:s.content.get("source_map")?.path.replace(n.outDir,"."),file:s.content.get("minified_file")?.path.replace(n.outDir,".")};g.push(a.add((async()=>{try{await B({auth:{apiKey:n.apiKey},url:u,method:"POST",getData:ir(s,d),onRetry:(t,n)=>{Zo(p,t,n);const r=`Failed to upload ${or(e.sourcemap)} | ${or(e.file)}:\n ${t.message}\nRetrying ${n}/5`;i.push(r),o.debug(r)}})}catch(n){if(er(p,n),r.push({metadata:e,error:n}),!0===t.bailOnError)throw n}})))}s.end(),o.debug(`Queued ${nr(e.length.toString())} uploads.`);try{await Promise.all(g),await a.onIdle()}finally{tr(p,n)}return{warnings:i,errors:r}},ar=async(e,t,n)=>{const o=n.time("get sourcemaps files"),r=((e,t)=>{if(!t.outputs||0===t.outputs.length)throw new Error("No output files found.");return t.outputs.filter((e=>e.filepath.endsWith(".map"))).map((e=>e.filepath)).map((n=>({...Vo(e.minifiedPathPrefix,t.outDir,n),sourcemapFilePath:n,minifiedPathPrefix:e.minifiedPathPrefix})))})(e.sourcemaps,{outDir:t.outDir,outputs:t.outputs});o.end();const i=n.time("send sourcemaps");await(async(e,t,n,o)=>{const r=Date.now(),i=t.minifiedPathPrefix,s={git_repository_url:n.git?.remote,git_commit_sha:n.git?.hash,plugin_version:n.version,project_path:n.outDir,service:t.service,type:"js_sourcemap",version:t.releaseVersion},a=o.time("Compute payloads"),u=new(b.default?b.default:b)({concurrency:t.maxConcurrency});let c=0;const d=await u.addAll(e.map((e=>async()=>{const t=await Wo(e.minifiedFilePath);return t&&(c+=1),Go(e,s,i,n.git,t)})));a.end(),o.debug(`Extracted debug_id for ${nr(`${c}/${e.length}`)} sourcemaps.`);const l=d.map((e=>e.errors)).flat(),p=d.map((e=>e.warnings)).flat();if(p.length>0&&o.warn(`Warnings while preparing payloads:\n - ${p.join("\n - ")}`),l.length>0){const e=`Failed to prepare payloads, aborting upload :\n - ${l.join("\n - ")}`;if(o.error(e),!0===t.bailOnError)throw new Error(e);return}const f=o.time("Upload sourcemaps"),{errors:m,warnings:g}=await sr(d,t,{apiKey:n.apiKey,bundlerName:n.bundlerName,version:n.version,outDir:n.outDir,site:n.site,sendMetrics:n.sendMetrics,addMetric:n.addMetric},o);if(f.end(),o.debug(`Done uploading ${nr(`${e.length-m.length}/${e.length}`)} sourcemaps in ${nr(J(Date.now()-r))}.`),m.length>0){const e=`Failed to upload some sourcemaps:\n - ${m.map((({metadata:e,error:t})=>{const n=t.cause||t.stack||t.message;return e?`${rr(e.file)} | ${rr(e.sourcemap)} :\n${n}`:n})).join("\n - ")}`;if(o.error(e),!0===t.bailOnError)throw new Error(e)}g.length>0&&o.warn(`Warnings while uploading sourcemaps:\n - ${g.join("\n - ")}`)})(r,e.sourcemaps,{addMetric:t.addMetric,apiKey:t.apiKey,bundlerName:t.bundlerName,git:t.git,outDir:t.outDir,sendMetrics:t.sendMetrics,site:t.site,version:t.version},n),i.end()},ur=e=>{const n=t.bold.red,o=e[zo]||{},r={errors:[]};if(o.sourcemaps){const t=o.sourcemaps,i=t.releaseVersion||e.metadata?.version;i||r.errors.push(`${n("sourcemaps.releaseVersion")} is required (set it directly or via ${n("metadata.version")}).`),t.releaseVersion&&e.metadata?.version&&t.releaseVersion!==e.metadata.version&&r.errors.push(`${n("sourcemaps.releaseVersion")} must match ${n("metadata.version")} when both are configured.`),t.service||r.errors.push(`${n("sourcemaps.service")} is required.`),t.minifiedPathPrefix||r.errors.push(`${n("sourcemaps.minifiedPathPrefix")} is required.`),t.minifiedPathPrefix&&!(e=>{let t;try{t=new URL(e).host}catch{}return!(!t&&!e.startsWith("/"))})(t.minifiedPathPrefix)&&r.errors.push(`${n("sourcemaps.minifiedPathPrefix")} must be a valid URL or start with '/'.`),i&&(r.config={bailOnError:!1,dryRun:!1,maxConcurrency:20,...t,releaseVersion:i})}return r},cr=({options:e,context:t})=>{const n=t.getLogger(Bo),o=n.time("validate options"),r=((e,t)=>{const n=[],o=ur(e);if(n.push(...o.errors),n.length)throw t.error(`\n - ${n.join("\n - ")}`),new Error(`Invalid configuration for ${Bo}.`);return{...e[zo],sourcemaps:o.config}})(e,n);o.end();const i=ue(e,"metrics",n);let s,a,u,c=!1;const d=async()=>{r.sourcemaps&&!c&&(u||(u=(async()=>{await t.artifactsReady,c=!0;const e=n.time("sourcemaps process");await ar(r,{apiKey:t.auth.apiKey,bundlerName:t.bundler.name,git:s,addMetric:t.addMetric,outDir:t.bundler.outDir,outputs:a?.outputs||[],sendMetrics:i,site:t.auth.site,version:t.version},n),e.end()})()),await u)},l=async()=>{if(t.artifactsPending){const e=d();t.queue(e)}else await d()};return[{name:Bo,enforce:"post",async git(e){s=e,a&&await l()},async buildReport(t){a=t,!s&&H(e)||await l()},async asyncTrueEnd(){c||await d()}}]},dr="liveDebugger",lr="datadog-live-debugger-plugin",pr="if(typeof globalThis.$dd_probes==='undefined'){globalThis.$dd_probes=function(){}}",fr="__DD_LIVE_DEBUGGER_BUILD__",mr=e=>void 0===e?pr:`${pr};if(typeof globalThis.${fr}==='undefined'){globalThis.${fr}={version:${JSON.stringify(e)}}}`;function gr(e){return"function"==typeof e?e:e.default}function hr(e,t,n,o,r){const i=a.relative(t,e).replace(/\\/g,"/"),s=yr(n,r);if(s)return`${i};${s}`;const u=function(e){const t=e.node.loc?.start.line??0,n=e.node.loc?.start.column??0;return`${t}:${n}`}(n);return`${i};<anonymous>@${u}:${o}`}function yr(e,t){const n=e.node,o=e.parent;return"id"in n&&t.isIdentifier(n.id)?n.id.name:t.isObjectMethod(n)||t.isClassMethod(n)||t.isClassPrivateMethod(n)?vr(n.key,t):t.isVariableDeclarator(o)&&t.isIdentifier(o.id)?o.id.name:t.isAssignmentExpression(o)?function(e,t){if(t.isIdentifier(e))return e.name;if(t.isMemberExpression(e)||t.isOptionalMemberExpression(e)){const n=br(e.object,t),o=wr(e.property,e.computed,t);if(n&&o)return`${n}.${o}`}return null}(o.left,t):t.isObjectProperty(o)||t.isClassProperty(o)||t.isClassPrivateProperty(o)?vr(o.key,t):null}function br(e,t){if(t.isIdentifier(e))return e.name;if(t.isThisExpression(e))return"this";if(t.isMemberExpression(e)||t.isOptionalMemberExpression(e)){const n=br(e.object,t),o=wr(e.property,e.computed,t);if(n&&o)return`${n}.${o}`}return null}function wr(e,t,n){return n.isPrivateName(e)&&n.isIdentifier(e.id)?`#${e.id.name}`:t?null:n.isIdentifier(e)?e.name:null}function vr(e,t){return t.isIdentifier(e)?e.name:t.isStringLiteral(e)||t.isNumericLiteral(e)||t.isBigIntLiteral(e)?String(e.value):t.isPrivateName(e)&&t.isIdentifier(e.id)?`#${e.id.name}`:null}function $r(e,t){if(e.node.leadingComments)for(const n of e.node.leadingComments)if(n.value.includes(t))return!0;return!1}function kr(e,t){const n=[];if(t.isBlockStatement(e.body)){const o=e.params.flatMap((e=>Ar(e,t))),r=new Set(o),i="id"in e&&t.isIdentifier(e.id)?e.id.name:"";for(const o of e.body.body)if(t.isVariableDeclaration(o)){const e=o.end;if(null==e)continue;for(const s of o.declarations)for(const o of Ar(s.id,t))r.has(o)||o===i||n.push({name:o,declarationEnd:e,temporalDeadZones:[]})}}const o=n.length>25?n.slice(0,25):n;if(t.isBlockStatement(e.body)){const n=o.map((({name:e})=>e)),r=new Set(n),i=function(e,t,n){const o=new Map;for(const r of e.body)xr(r,t,o,n);return o}(e.body,r,t);for(const e of o)e.temporalDeadZones=i.get(e.name)??[]}return o}function xr(e,t,n,o){o.isFunctionDeclaration(e)||o.isClassDeclaration(e)||(o.isBlockStatement(e)?Er(e,t,n,o):o.isIfStatement(e)?(xr(e.consequent,t,n,o),e.alternate&&xr(e.alternate,t,n,o)):o.isForStatement(e)||o.isForInStatement(e)||o.isForOfStatement(e)||o.isWhileStatement(e)||o.isDoWhileStatement(e)?xr(e.body,t,n,o):o.isSwitchStatement(e)?function(e,t,n,o){for(const r of e.cases){Sr(r.consequent,e.start,t,n,o);for(const e of r.consequent)xr(e,t,n,o)}}(e,t,n,o):o.isTryStatement(e)?(Er(e.block,t,n,o),e.handler&&Er(e.handler.body,t,n,o),e.finalizer&&Er(e.finalizer,t,n,o)):(o.isLabeledStatement(e)||o.isWithStatement(e))&&xr(e.body,t,n,o))}function Er(e,t,n,o){Sr(e.body,e.start,t,n,o);for(const r of e.body)xr(r,t,n,o)}function Sr(e,t,n,o,r){if(null!=t)for(const i of e)r.isVariableDeclaration(i)&&"var"!==i.kind?Ir(i,t,n,o,r):r.isClassDeclaration(i)&&i.id&&jr(i.id.name,t,i.end,n,o)}function Ir(e,t,n,o,r){for(const i of e.declarations)for(const s of Ar(i.id,r))jr(s,t,e.end,n,o)}function jr(e,t,n,o,r){if(null==n||!o.has(e))return;const i=r.get(e)??[];i.push({start:t,end:n}),r.set(e,i)}function Ar(e,t){return t.isIdentifier(e)?[e.name]:t.isRestElement(e)?t.isIdentifier(e.argument)?[e.argument.name]:Ar(e.argument,t):t.isAssignmentPattern(e)?Ar(e.left,t):t.isObjectPattern(e)?e.properties.flatMap((e=>t.isRestElement(e)?Ar(e.argument,t):Ar(e.value,t))):t.isArrayPattern(e)?e.elements.flatMap((e=>e?Ar(e,t):[])):t.isTSParameterProperty(e)&&t.isIdentifier(e.parameter)?[e.parameter.name]:[]}const Dr=["@babel/parser","@babel/traverse","@babel/types","magic-string"];let Pr,Mr,Cr,Or,Nr=!1;function Tr(e){try{return function(e){switch(e){case"@babel/parser":return require("@babel/parser");case"@babel/traverse":return require("@babel/traverse");case"@babel/types":return require("@babel/types");case"magic-string":return require("magic-string");default:throw new Error(`Unknown peer dependency: ${e}`)}}(e)}catch(e){throw function(e){if(!function(e){if(!(e instanceof Error))return!1;const t=e.code;if("MODULE_NOT_FOUND"!==t&&"ERR_MODULE_NOT_FOUND"!==t)return!1;return Dr.some((t=>e.message.includes(t)))}(e))return e instanceof Error?e:new Error(String(e));const t=Dr.find((t=>e.message.includes(t))),n=t??Dr.join(", ");return new Error(`Datadog Live Debugger could not load "${n}". It is an optional peer dependency that must be installed in your project when the \`liveDebugger\` plugin is enabled. Install the peer dependencies with: \`npm install --save-dev ${Dr.join(" ")}\` (or the yarn/pnpm/bun equivalent). Underlying error: ${e.message}`)}(e)}}const Rr=/\bfunction\b|=>|\bclass\b|\)\s*\{/;function _r(e){const{code:t,filePath:n,buildRoot:o,honorSkipComments:r,functionTypes:i,namedOnly:s}=e;let a=0,u=0,c=0,d=0,l=0;if(function(e){return/['"][^'"]*(?:@css-module:|\?worker\b|\?sprite\b|dynamic!)[^'"]*['"]/.test(e)}(t))return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:1,skippedUnsupportedCount:d,totalFunctions:l};if(!Rr.test(t))return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l};Nr||(Pr=Tr("@babel/parser").parse,Mr=gr(Tr("@babel/traverse")),Cr=Tr("@babel/types"),Or=gr(Tr("magic-string")),Nr=!0);const p=Pr(t,{sourceType:"unambiguous",plugins:["jsx","typescript"],sourceFilename:n}),f=[],m=new Map,g=new Set,h=new Map,y=new Map;let b=0;if(Mr(p,{Function(e){l++;const t=function(e,t){if(t.isClassMethod(e.node)&&"constructor"===e.node.kind&&Ur(e,t))return e.node;return}(e,Cr);if(t&&(m.set(t,t.body.start),h.set(t,function(e,t){const n=[];for(const o of e)qr(o,n,t);return n}(t.body.body,Cr))),!function(e,t){const n=e.node;return!(n.generator||t.isClassMethod(n)&&"constructor"===n.kind)}(e,Cr))return void d++;if(r&&function(e,t,n){let o=e;for(;o;){if($r(o,t))return!0;if(n.isStatement(o.node)||n.isExportDeclaration(o.node)){if(o.parentPath&&n.isExportDeclaration(o.parentPath.node))return $r(o.parentPath,t);break}o=o.parentPath}return!1}(e,"@dd-no-instrumentation",Cr))return void c++;if(i&&!i.includes(function(e,t){if(t.isFunctionDeclaration(e))return"functionDeclaration";if(t.isArrowFunctionExpression(e))return"arrowFunction";if(t.isObjectMethod(e))return"objectMethod";if(t.isClassPrivateMethod(e))return"classPrivateMethod";if(t.isClassMethod(e))return"classMethod";return"functionExpression"}(e.node,Cr)))return void d++;if(s&&!yr(e,Cr))return void d++;let p=0;if(!yr(e,Cr)){const t=e.parentPath?.node;t&&(p=y.get(t)||0,y.set(t,p+1))}const w=hr(n,o,e,p,Cr);try{const t=e.node,n=b++,o=`$dd_p${n}`,r=function(e,t){const n=[];for(const o of e.params)for(const e of Ar(o,t))"this"!==e&&n.push(e);return n.length>25?n.slice(0,25):n}(t,Cr),i=kr(t,Cr),s=Cr.isArrowFunctionExpression(t)&&!Cr.isBlockStatement(t.body),a=s&&Cr.isSequenceExpression(t.body),c=function(e,t){if(t.isFunction(e.node)&&!t.isArrowFunctionExpression(e.node))return;let n=e.parentPath;for(;n;){const e=n.node;if(t.isClassMethod(e)&&"constructor"===e.kind){if(!Ur(n,t))return;return{node:e,parent:n.parent,parentPath:n.parentPath}}if(t.isFunction(e)){if(t.isArrowFunctionExpression(e)){n=n.parentPath;continue}return}n=n.parentPath}return}(e,Cr),d=null!=c;c&&(g.add(c.node),m.set(c.node,c.node.body.start));const l=[],p=s||!Cr.isBlockStatement(t.body)||!Hr(t.body.body,Cr);let h;if(!s&&Cr.isBlockStatement(t.body)&&Kr(t.body.body,l,Cr),!s&&Cr.isBlockStatement(t.body)&&t.body.directives.length>0){h=t.body.directives[t.body.directives.length-1].end}f.push({bodyStart:t.body.start,bodyEnd:t.body.end,functionEnd:t.end,isExpressionBody:s,hasSequenceExpressionBody:a,aliasesExpressionBodySuperCall:d&&s&&Vr(t.body,Cr),needsTrailingReturn:p,useThisAlias:d,bodyParenStart:s&&"number"==typeof t.body.extra?.parenStart?t.body.extra.parenStart:void 0,directivesEnd:h,functionId:w,probeVarName:o,probeIdx:String(n),entryVars:r,localVars:i,returns:l}),u++}catch(e){a++}}}),0===u)return{code:t,failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l};const w=new Or(t),v=function(e){const t=new Set;for(const n of e)n.aliasesExpressionBodySuperCall&&t.add(Br({start:n.bodyStart,end:n.bodyEnd}));return t}(f),$=function(e,t,n,o){const r=[];for(const i of e){const e=t.get(i);null!=e&&r.push({bodyStart:e,superCalls:(n.get(i)??[]).filter((e=>!o.has(Br(e))))})}return r}(g,m,h,v);for(let e=f.length-1;e>=0;e--)Fr(w,t,f[e]);for(const e of $)Lr(w,t,e);return{code:w.toString(),map:w.generateMap({source:n,hires:!0}),failedCount:a,instrumentedCount:u,skippedByCommentCount:c,skippedFileCount:0,skippedUnsupportedCount:d,totalFunctions:l}}function Fr(e,t,n){const{probeVarName:o,probeIdx:r,functionId:i,entryVars:s,localVars:a,returns:u,bodyStart:c,bodyEnd:d,functionEnd:l,isExpressionBody:p,hasSequenceExpressionBody:f,aliasesExpressionBodySuperCall:m,useThisAlias:g,bodyParenStart:h,directivesEnd:y}=n,b=`$dd_e${r}`,w=`$dd_rv${r}`,v=g?"$dd_t":"this",$=s.join(", "),k=""!==$,x=k?`, ${b}()`:"";const E=`const ${o} = $dd_probes('${i.replace(/['\\\n\r\u2028\u2029]/g,(e=>{switch(e){case"'":return"\\'";case"\\":return"\\\\";case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return e}}))}');`,S=k?`const ${b} = () => ({${$}});`:"",I=`if (${o}) $dd_entry(${o}, ${v}${x});`,j=`catch(e) { if (${o}) $dd_throw(${o}, e, ${v}${x}); throw e; }`;if(p){if(null!=h){const n=function(e,t,n){const o=[];for(let r=t;r<n;r++)"("===e[r]&&o.push(r);return o}(t,h,c),o=function(e,t,n){const o=[];for(let r=n-1;r>=t;r--)")"===e[r]&&o.push(r);return o}(t,d,l),r=Math.min(n.length,o.length);for(let t=0;t<r;t++){const r=n[t],i=o[t];e.remove(r,r+1),e.remove(i,i+1)}}const n=["{",E,S,"try {",I,m?`const ${w} = ($dd_t = `:`const ${w} = `].filter(Boolean).join("\n");let r=f?");":";";m&&(r=f?"));":");");const i=[r,`if (${o}) $dd_return(${o}, ${w}, ${v}${Wr(b,k,a,d)});`,`return ${w};`,`} ${j}`,"}"].join("\n");if(d-c>=2){const o=f?`${n}(${t[c]}`:n+t[c];e.update(c,c+1,o),e.update(d-1,d,t[d-1]+i)}else e.update(c,d,n+t.slice(c,d)+i)}else{const r=[E,S,"try {",`let ${w};`,I].filter(Boolean).join("\n");for(const t of u){const n=Wr(b,k,a,t.start);if(null!=t.argStart&&null!=t.argEnd){const r=t.hasSequenceExpressionArgument?`(${w} = (`:`(${w} = `,i=t.hasSequenceExpressionArgument?")":"";e.appendLeft(t.argStart,r),e.appendLeft(t.argEnd,`${i}, ${o} ? $dd_return(${o}, ${w}, ${v}${n}) : ${w})`)}else e.appendLeft(t.start,`if (${o}) $dd_return(${o}, undefined, ${v}${n}); `)}if(null!=y){const n=y-1;e.update(n,y,`${t[n]}\n${r}`)}else e.update(c,c+1,`${t[c]}${r}`);const i=Wr(b,k,a,d),s=`\n${n.needsTrailingReturn?`if (${o}) $dd_return(${o}, undefined, ${v}${i});\n`:""}} ${j}\n`;e.update(d-1,d,`${s}${t[d-1]}`)}}function Lr(e,t,n){e.update(n.bodyStart,n.bodyStart+1,`${t[n.bodyStart]}let $dd_t;`);for(const t of n.superCalls)e.appendLeft(t.start,"($dd_t = "),e.appendLeft(t.end,")")}function qr(e,t,n){Vr(e,n)&&t.push({start:e.start,end:e.end});const o=Object.values(e);for(const e of o)if(Array.isArray(e))for(const o of e)zr(o,t,n);else zr(e,t,n)}function zr(e,t,n){n.isNode(e)&&(n.isFunction(e)&&!n.isArrowFunctionExpression(e)||qr(e,t,n))}function Br(e){return`${e.start}:${e.end}`}function Vr(e,t){return t.isCallExpression(e)&&t.isSuper(e.callee)}function Ur(e,t){const n=e.parentPath?.parentPath;if(!n)return!1;const o=n.node;return(t.isClassDeclaration(o)||t.isClassExpression(o))&&null!=o.superClass}function Wr(e,t,n,o){const r=function(e,t){const n=e.filter((({declarationEnd:e,temporalDeadZones:n})=>e<=t&&!function(e,t){return e.some((({start:e,end:n})=>e<=t&&t<n))}(n,t))).map((({name:e})=>e));if(0===n.length)return;return`{${n.join(", ")}}`}(n,o);return t&&r?`, ${e}(), ${r}`:t?`, ${e}()`:r?`, undefined, ${r}`:""}function Kr(e,t,n){for(const o of e)if(n.isReturnStatement(o))t.push({start:o.start,end:o.end,argStart:o.argument?.start??void 0,argEnd:o.argument?.end??void 0,hasSequenceExpressionArgument:n.isSequenceExpression(o.argument)});else if(!n.isFunctionDeclaration(o)&&!n.isClassDeclaration(o))if(n.isBlockStatement(o))Kr(o.body,t,n);else if(n.isIfStatement(o))Kr([o.consequent],t,n),o.alternate&&Kr([o.alternate],t,n);else if(n.isForStatement(o)||n.isForInStatement(o)||n.isForOfStatement(o)||n.isWhileStatement(o)||n.isDoWhileStatement(o))Kr([o.body],t,n);else if(n.isSwitchStatement(o))for(const e of o.cases)Kr(e.consequent,t,n);else n.isTryStatement(o)?(Kr(o.block.body,t,n),o.handler&&Kr(o.handler.body.body,t,n),o.finalizer&&Kr(o.finalizer.body,t,n)):(n.isLabeledStatement(o)||n.isWithStatement(o))&&Kr([o.body],t,n)}function Hr(e,t){if(0===e.length)return!1;const n=e[e.length-1];if(t.isReturnStatement(n))return!0;if(t.isIfStatement(n)&&n.alternate){const e=t.isBlockStatement(n.consequent)?n.consequent.body:[n.consequent],o=t.isBlockStatement(n.alternate)?n.alternate.body:[n.alternate];return Hr(e,t)&&Hr(o,t)}return!1}const Jr=["functionDeclaration","functionExpression","arrowFunction","objectMethod","classMethod","classPrivateMethod"],Gr=t.bold.red,Yr=Number(process.env.DD_LD_LIMIT)||1/0,Qr=(e,t)=>{const n=t.getLogger(lr);let o=0,r=0,i=0,s=0,a=0,u=0,c=0,d=0;return{name:lr,enforce:"post",transform:{filter:{id:{include:e.include,exclude:e.exclude}},handler(l,p){if(e.include.length>0){if(!e.include.some((e=>"string"==typeof e?p.includes(e):e.test(p))))return{code:l}}for(const t of e.exclude){if("string"==typeof t?p.includes(t):t.test(p))return{code:l}}if(d>=Yr)return{code:l};try{const f=_r({code:l,filePath:p,buildRoot:t.buildRoot,honorSkipComments:e.honorSkipComments,functionTypes:e.functionTypes,namedOnly:e.namedOnly});if(o+=f.instrumentedCount,c+=f.totalFunctions,r+=f.failedCount,i+=f.skippedByCommentCount,s+=f.skippedFileCount,a+=f.skippedUnsupportedCount,f.totalFunctions>0&&d++,0===f.instrumentedCount)return{code:l};u++;const m=function(e){const t=e.getNativeBuildContext?.();return t?.inputSourceMap}(this),g=f.map&&m?function(e,t,n,o){try{return w(e,((e,n)=>1===n.depth?t:null))}catch(t){return o.error(`Failed to compose source map for ${n}: ${t}`,{forward:!0}),e}}(f.map,m,p,n):f.map;return{code:f.code,map:g}}catch(e){return n.error(`Instrumentation Error in ${p}: ${e}`,{forward:!0}),{code:l}}}},buildEnd:()=>{c>0&&n.info(`Live Debugger: ${o}/${c} functions instrumented across ${u}/${d} files`,{forward:!0,context:{failedCount:r,skippedByCommentCount:i,skippedFileCount:s,skippedUnsupportedCount:a,totalFilesWithFunctions:d,instrumentedCount:o,totalFunctions:c,transformedFileCount:u}})}}},Xr=({options:e,context:t})=>{const n=((e,t)=>{const n=e[dr]||{},o=e.metadata?.version,r=[];if(void 0!==n.include)if(Array.isArray(n.include)){for(const e of n.include)if("string"!=typeof e&&!(e instanceof RegExp)){r.push(`${Gr("include")} patterns must be strings or RegExp`);break}}else r.push(`${Gr("include")} must be an array of strings or RegExp`);if(void 0!==n.exclude)if(Array.isArray(n.exclude)){for(const e of n.exclude)if("string"!=typeof e&&!(e instanceof RegExp)){r.push(`${Gr("exclude")} patterns must be strings or RegExp`);break}}else r.push(`${Gr("exclude")} must be an array of strings or RegExp`);if(void 0!==n.honorSkipComments&&"boolean"!=typeof n.honorSkipComments&&r.push(`${Gr("honorSkipComments")} must be a boolean`),void 0!==n.functionTypes)if(Array.isArray(n.functionTypes)){for(const e of n.functionTypes)if(!Jr.includes(e)){r.push(`${Gr("functionTypes")} contains invalid value "${e}". Valid values: ${Jr.join(", ")}`);break}}else r.push(`${Gr("functionTypes")} must be an array of FunctionKind values`);if(void 0!==n.namedOnly&&"boolean"!=typeof n.namedOnly&&r.push(`${Gr("namedOnly")} must be a boolean`),r.length)throw t.error(`\n - ${r.join("\n - ")}`),new Error(`Invalid configuration for ${lr}.`);return{version:o,include:n.include||[/\.[jt]sx?$/],exclude:n.exclude||[/\/node_modules\//,/\.min\.js$/,/\/pyodide-lib\//,/^vite\//,/\0/,/commonjsHelpers\.js$/,/__vite-browser-external/,/@datadog\/browser-/,/browser-sdk\/packages\//],honorSkipComments:n.honorSkipComments??!0,functionTypes:n.functionTypes,namedOnly:n.namedOnly??!1}})(e,t.getLogger(lr));return t.inject({type:"code",position:Ee.BEFORE,injectIntoAllChunks:!0,value:mr(n.version)}),[Qr(n,t)]};const Zr=[e=>/modules\.tree\.(count|size)$/.test(e.metric)?null:e,e=>e.tags.some((e=>/^assetName:.*\.map$/.test(e)||/^moduleName:\/node_modules/.test(e)))?null:e,e=>{const t={size:1e5,count:10,duration:1e3};/^sourcemaps\.upload\.(failure|retry)$/.test(e.metric)&&(t.count=0),/(entries|loaders|warnings|errors)\.count$/.test(e.metric)&&(t.count=0),/(modules\.(dependencies|dependents)$)/.test(e.metric)&&(t.count=30),/modules\.tree\.count$/.test(e.metric)&&(t.count=150),/modules\.tree\.size$/.test(e.metric)&&(t.size=15e5),/entries\.size$/.test(e.metric)&&(t.size=0),/entries\.modules\.count$/.test(e.metric)&&(t.count=0);return(e.points.length?e.points.reduce(((e,t)=>e+t[1]),0)/e.points.length:0)>t[e.type]?e:null}],ei="metrics",ti="datadog-metrics-plugin",ni=e=>Math.floor((e||Date.now())/1e3),oi=(e,t)=>{const n=[`bundler:${Q(e.bundler.name)}`,`plugin_version:${Q(e.version)}`,`site:${Q(e.auth.site)}`];return e.build.metadata.name&&n.push(`build_name:${Q(e.build.metadata.name)}`),e.build.metadata.version&&n.push(`build_version:${Q(e.build.metadata.version)}`),[...n,...t]},ri=(e,t,n)=>({...e,tags:[...e.tags,...t],metric:n?`${n}.${e.metric}`:e.metric}),ii=(e,t,n,o,r)=>{const i=new Set;for(const t of e){let e={...t,toSend:!0};if(n?.length)for(const t of n){const n=t({metric:e.metric,type:e.type,points:e.points,tags:e.tags});n?e={...n,toSend:e.toSend}:e.toSend=!1}i.add(ri(e,o,r))}const s=Array.from(i).filter((e=>e.toSend)).length;return i.add(ri({metric:"metrics.count",type:"count",points:[[t,s+1]],tags:[],toSend:!0},o,r)),i},si=(e="")=>e.endsWith("/")?e:`${e}/`,ai=(e,t)=>{let n=e;return e.split(si(t)),n.split("!").pop().replace(/(.*)?\/node_modules\//,"/node_modules/").replace(/^((\.)*\/)+/,"")},ui=(e,t)=>e.split("!").pop().replace(si(t),"./"),ci=(e,t,n)=>{let o=e.name||e.userRequest;return o||(o=((e,t)=>{let n=e.userRequest;if(!n){let o;o=t.moduleGraph&&"function"==typeof t.moduleGraph.getIssuer?t.moduleGraph.getIssuer(e):e.issuer,n=o?.userRequest,n||(n=e._identifier?.split("!").pop())}return n||"unknown"})(e,t)),ui(o||"no-name",n)},di=e=>e.replace(/^.*\/node_modules\/(@[a-z0-9][\w-.]+\/[a-z0-9][\w-.]*|[^/]+).*$/,"$1"),li=e=>e.map((e=>({type:e?.constructor?.name??typeof e,name:e?.name,value:"string"==typeof e?e:void 0}))),pi=t.bold.red,fi=t.bold.cyan,mi=e=>(t,n)=>{let o,r;return"function"==typeof e?(o=e(t),r=e(n)):(o=t[e],r=n[e]),o>r?-1:o<r?1:0},gi=(e,t)=>{if(!t||!t.size)return[];const n=Array.from(t.values());n.sort(mi("duration"));const o={name:`${e} duration`,values:n.map((e=>({name:e.name,value:J(e.duration)}))),top:!0};n.sort(mi("increment"));return[o,{name:`${e} hits`,values:n.map((e=>({name:e.name,value:e.increment.toString()}))),top:!0}]},hi=(e,t,n)=>{const o=[];var r;n&&(o.push(...gi("Loader",n.loaders)),o.push(...gi("Tapable",n.tapables)),o.push(...gi("Module",n.modules))),o.push(...(e=>{const t={name:"Module total dependents",values:[],top:!0},n={name:"Module total dependencies",values:[],top:!0},o={name:"Module size",values:[],top:!0},r={name:"Module aggregated size",values:[],top:!0},i=new Set,s=K(e.build),a=new Map,u=new Map,c=new Map;for(const e of s.inputs||[]){if("map"===e.type)continue;const t=new Set(e.dependencies),n=new Set(e.dependents);for(const n of t)c.has(n)||c.set(n,new Set),c.get(n).add(e.filepath);for(const t of n)u.has(t)||u.set(t,new Set),u.get(t).add(e.filepath);if(u.has(e.filepath)){const n=u.get(e.filepath);for(const e of n)t.add(e)}if(c.has(e.filepath)){const t=c.get(e.filepath);for(const e of t)n.add(e)}u.set(e.filepath,t),c.set(e.filepath,n),a.set(e.filepath,{name:e.name,size:e.size,dependencies:t,dependents:n})}for(const[e,t]of a){const n=u.get(e)||new Set,o=c.get(e)||new Set;let r=t.size;for(const e of n)r+=a.get(e)?.size||0;i.add({name:t.name,size:t.size,aggregatedSize:r,dependents:o,dependencies:n})}if(!i.size)return[t,n,o];const d=Array.from(i);return d.sort(mi((e=>e.dependents.size))),t.values=d.map((e=>({name:e.name,value:e.dependents.size.toString()}))),d.sort(mi((e=>e.dependencies.size))),n.values=d.map((e=>({name:e.name,value:e.dependencies.size.toString()}))),d.sort(mi("size")),o.values=d.map((e=>({name:e.name,value:v(e.size)}))),d.sort(mi("aggregatedSize")),r.values=d.map((e=>({name:e.name,value:v(e.aggregatedSize||e.size)}))),[t,n,o,r]})(e)),o.push(...(r=e,[{name:"Asset size",values:(r.build.outputs||[]).filter((e=>"map"!==e.type)).sort(mi((e=>e.size))).map((e=>({name:e.name,value:v(e.size)}))),top:!0},{name:"Entry aggregated size",values:(r.build.entries||[]).sort(mi((e=>e.size))).map((e=>({name:e.name,value:v(e.size)}))),top:!0},{name:"Entry number of modules",values:(r.build.entries||[]).sort(mi((e=>e.size))).map((e=>({name:e.name,value:e.inputs.length.toString()})))||[],top:!0}])),o.push(...(e=>{const t={name:"General Numbers",values:[],top:!1},n=e.build.inputs?e.build.inputs.length:0,o=e.build.outputs?e.build.outputs.length:0,r=e.build.warnings.length,i=e.build.errors.length,s=e.build.entries?e.build.entries.length:0;return e.build.start&&t.values.push({name:"Overhead duration",value:J(e.build.start-e.start)}),e.build.duration&&t.values.push({name:"Build duration",value:J(e.build.duration)}),e.build.writeDuration&&t.values.push({name:"Write duration",value:J(e.build.writeDuration)}),t.values.push({name:"Number of modules",value:n.toString()},{name:"Number of assets",value:o.toString()},{name:"Number of entries",value:s.toString()},{name:"Number of warnings",value:r.toString()},{name:"Number of errors",value:i.toString()}),[t]})(e));const i=(e=>{let t="";for(const t of e){t.top&&t.values.length>=5&&(t.values=t.values.slice(0,5),t.name=`Top 5 ${t.name}`);for(const e of t.values)e.name=G(e.name,60)}const n=Math.max(...e.map((e=>e.name.length))),o=Math.max(...e.flatMap((e=>e.values.map((e=>e.name.length))))),r=Math.max(...e.flatMap((e=>e.values.map((e=>e.value.length))))),i=Math.max(n+4,o+r+4);for(const n of e){if(0===n.values.length)continue;const e=i-(n.name.length+4);t+=`\n== ${n.name} ${"=".repeat(e)}=\n`;for(const e of n.values){const n=r-e.value.length;t+=` [${pi(e.value)}] ${" ".repeat(n)}${fi(e.name)}\n`}}return t})(o);t.info(i)},yi="api/v1/series",bi=t.bold.green,wi=(e,t,n)=>{if(!t.apiKey)return void n.info("Won't send metrics to Datadog: missing API Key.");if(!e.size)return void n.debug("No metrics to send.");const o=Array.from(e).filter((e=>e.toSend)).map((e=>({...e,toSend:void 0}))),r=new Map;for(const e of o)r.has(e.metric)||r.set(e.metric,0),r.set(e.metric,r.get(e.metric)+1);const i=Array.from(r.entries()).sort((([e],[t])=>e.localeCompare(t))).map((([e,t])=>`${e} - ${t}`));return n.debug(`\nSending ${o.length} metrics with configuration:\n - intake: ${bi(`https://api.${t.site}/${yi}`)}\n\nMetrics:\n - ${i.join("\n - ")}`),B({method:"POST",url:`https://api.${t.site}/${yi}?api_key=${t.apiKey}`,getData:()=>({data:JSON.stringify({series:o})})}).catch((e=>{n.error(`Error sending metrics ${e}`)}))},vi=["onStart","onLoad","onResolve","onEnd"],$i=new Map,ki=new Map,xi=new Map,Ei=(e,t,n)=>{const o=Object.assign({},e);for(const r of vi)o[r]=async(o,i)=>{const s=ki.get(t)||{name:t,increment:0,duration:0,events:{}};s.events[r]=s.events[r]||{name:r,values:[]};const a="onLoad"===r;return(0,e[r])(o,(async(...e)=>{const o=ui(e[0].path,n),u=xi.get(o)||{name:o,increment:0,duration:0,events:{}};u.events[r]=u.events[r]||{name:r,values:[]};const c=$.performance.now();try{return await i(...e)}finally{const n=$.performance.now(),i=n-c,d={start:c,end:n,duration:i,context:li(e)};if(s.events[r].values.push(d),s.duration+=i,s.increment+=1,ki.set(t,s),u.events[r].values.push(d),u.duration+=i,u.increment+=1,xi.set(o,u),a){const e=$i.get(t)||{name:t,increment:0,duration:0,events:{}};e.events[r]=e.events[r]||{name:r,values:[]},e.events[r].values.push(d),e.duration+=i,e.increment+=1,$i.set(t,e)}}}))};return o},Si=(e,t)=>({setup:n=>{n.initialOptions.metafile=!0;const o=t.time("wrapping plugins");((e,t)=>{const n=e.initialOptions.plugins;if(n){const e=n.map((e=>({...e})));for(const o of n){const n=o.setup;o.setup=async r=>{const i=Ei(r,o.name,t);await n({...i,initialOptions:{...i.initialOptions,plugins:e}})}}}})(n,e.buildRoot),o.end(),n.onEnd((async n=>{if(!n.metafile)return void t.warn("Missing metafile, can't proceed with modules data.");const o=t.time("getting plugins results"),{plugins:r,loaders:i,modules:s}={plugins:ki,modules:xi,loaders:$i};o.end(),await e.asyncHook("timings",{tapables:r,loaders:i,modules:s})}))}});class Ii{constructor(e){this.started={},this.finished=[],this.cwd=e}startModule(e,t){const n=ci(e,t,this.cwd),o=(e=>(e.loaders||[]).map((e=>e.loader||e)).map(di))(e);o.length||o.push("no-loader"),this.started[n]={module:ai(n),timings:{start:$.performance.now(),duration:0,end:0},loaders:o}}doneModule(e,t){const n=ci(e,t,this.cwd),o=this.started[n];o&&(o.timings.end=$.performance.now(),o.timings.duration=o.timings.end-o.timings.start,this.finished.push(o),delete this.started[n])}getResults(){const e=new Map,t=new Map;for(const n of this.finished){const o=n.timings.end-n.timings.start,r=t.get(n.module)||{name:n.module,increment:0,duration:0,events:{}},i=n.loaders.join(",");r.events[i]=r.events[i]||{name:i,values:[]},r.events[i].values.push(n.timings),r.increment+=1,r.duration+=o,t.set(n.module,r);for(const t of n.loaders){const n=e.get(t)||{name:t,increment:0,duration:0,events:{}};n.increment+=1,n.duration+=o,e.set(t,n)}}return{loaders:e,modules:t}}}class ji{constructor(e){this.monitoredTaps={},this.tapables=[],this.hooks={},this.timings=new Map,this.ignoredHooks=["normalModuleLoader"],this.cwd=e}saveResult(e,t,n,o,r,i){const s=this.timings.get(t)||{name:t,duration:0,increment:0,events:{}};s.events[n]||(s.events[n]={name:n,values:[]}),s.events[n].values.push({start:r,end:i,duration:i-r,context:o,type:e}),s.duration+=i-r,s.increment+=1,this.timings.set(t,s)}getResults(){const e=this.timings;for(const[t,n]of this.timings){const o=n;o.duration=Object.values(n.events).map((e=>e.values.reduce(((e,t)=>e+t.end-t.start),0))).reduce(((e,t)=>e+t),0),e.set(t,o)}return{monitoredTaps:this.monitoredTaps,tapables:this.tapables,hooks:this.hooks,timings:e}}getPromiseTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=t.apply(this,r),a=()=>{this.saveResult(e,n,o,li(r),i,$.performance.now())};return s.then(a,a),s}}getAsyncTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=r.pop();return t.apply(this,[...r,(...t)=>(this.saveResult(e,n,o,li(r),i,$.performance.now()),s(...t))])}}getDefaultTapPatch(e,t,n,o){return(...r)=>{this.checkNewHooks();const i=$.performance.now(),s=t.apply(this,r);return this.saveResult(e,n,o,li(r),i,$.performance.now()),s}}getTapPatch(e,t,n,o){switch(e){case"promise":return this.getPromiseTapPatch(e,t,n,o);case"async":return this.getAsyncTapPatch(e,t,n,o);default:return this.getDefaultTapPatch(e,t,n,o)}}newTap(e,t,n,o){return(r,i)=>{const s="string"==typeof(a=r)?a:a.name;var a;const u=`${t}-${s}`;if(this.monitoredTaps[u])return n.call(o,r,i);this.monitoredTaps[u]=!0;const c=this.getTapPatch(e,i,s,t);return n.call(o,r,c)}}replaceTaps(e,t){t.tap=this.newTap("default",e,t.tap,t),t.tapAsync=this.newTap("async",e,t.tapAsync,t),t.tapPromise=this.newTap("promise",e,t.tapPromise,t)}patchHook(e,t,n){n._fakeHook||e.includes(ti)||(this.hooks[e]||(this.hooks[e]=[]),this.hooks[e].includes(t)||(this.hooks[e].push(t),this.replaceTaps(t,n)))}patchHooks(e){const t=e.constructor.name,n=Object.keys(e.hooks).filter((e=>!this.ignoredHooks.includes(e)&&!this.hooks[t]?.includes(e)));for(const o of n)this.patchHook(t,o,e.hooks[o])}checkNewHooks(){for(const e of this.tapables)this.patchHooks(e)}throughHooks(e){this.tapables.includes(e)||this.tapables.push(e),this.patchHooks(e)}}const Ai=e=>async t=>{const n=e.getLogger(ti),o={name:ti},r=new ji(e.buildRoot),i=new Ii(e.buildRoot),s=n.time("parse compiler hooks");r.throughHooks(t),s.end(),t.hooks.thisCompilation.tap(o,(e=>{const t=n.time("parse compilation hooks");r.throughHooks(e),t.end(),e.hooks.buildModule.tap(o,(t=>{i.startModule(t,e)})),e.hooks.succeedModule.tap(o,(t=>{i.doneModule(t,e)})),e.hooks.failedModule&&e.hooks.failedModule.tap(o,(t=>{i.doneModule(t,e)}))})),t.hooks.afterEmit.tapPromise(o,(async()=>{const{timings:t}=r.getResults(),{loaders:n,modules:o}=i.getResults();await e.asyncHook("timings",{tapables:t,loaders:n,modules:o})}))},Di={filters:Zr},Pi=({options:e,context:t,stores:n})=>{const o=t.getLogger(ti);let r=0;((e,t)=>{e.addMetric=e=>{t.metrics.add(e)}})(t,n);const i=((e,t)=>{const n=e[ei],o=ni(n?.timestamp);let r=!1===n?.enableDefaultPrefix?"":`build.${t}`;return n?.prefix&&(r+=r?`.${n.prefix}`:n.prefix),{enableDefaultPrefix:!0,enableTracing:!1,filters:Zr,tags:[],...e[ei],timestamp:o,prefix:r.toLowerCase().replace(/(^\.*|\.*$)/g,"")}})(e,t.bundler.name),s=[],a={name:ti,enforce:"pre",esbuild:Si(t,o),webpack:Ai(t),rspack:Ai(t)},u=o.time("build",{start:!1}),c=i.enableTracing&&["esbuild","webpack","rspack"].includes(t.bundler.name);let d,l;const p=async()=>{if(!n.metrics.size)return;const e=o.time("aggregating collected metrics"),r=(()=>{const e=new Set(n.metrics);n.metrics.clear();const o=oi(t,i.tags);return ii(e,i.timestamp,i.filters,o,i.prefix)})();await t.asyncHook("metrics",r),e.end();const s=o.time("sending collected metrics to Datadog");await wi(r,{apiKey:t.auth.apiKey,site:t.auth.site},o),s.end()},f=async()=>{t.build.end=Date.now(),t.build.duration=t.build.end-t.build.start,t.build.writeDuration=t.build.end-r;const e=o.time("aggregating metrics"),n=i.timestamp,s=o.time("aggregate universal metrics"),a=((e,t)=>{const n=new Set,o=e.inputs||[],r=e.outputs||[],i=e.entries||[],s=e.warnings.length,a=e.errors.length,u=e.duration,c=new Map,d=new Map,l=new Map;for(const e of i){for(const t of e.inputs)c.has(t.filepath)||c.set(t.filepath,[]),c.get(t.filepath).push(e.name);for(const t of e.outputs){const n=t.filepath.replace(/\.map$/,"");l.has(n)||l.set(n,[]),l.get(n).push(e.name)}}for(const e of r)for(const t of e.inputs)d.has(t.filepath)||d.set(t.filepath,[]),d.get(t.filepath).push(e.name);n.add({metric:"assets.count",type:"count",points:[[t,r.length]],tags:[]}).add({metric:"entries.count",type:"count",points:[[t,i.length]],tags:[]}).add({metric:"errors.count",type:"count",points:[[t,a]],tags:[]}).add({metric:"modules.count",type:"count",points:[[t,o.length]],tags:[]}).add({metric:"warnings.count",type:"count",points:[[t,s]],tags:[]}),u&&n.add({metric:"compilation.duration",type:"duration",points:[[t,u]],tags:[]});for(const e of o){const o=[`moduleName:${e.name}`,`moduleType:${e.type}`];c.has(e.filepath)&&o.push(...c.get(e.filepath).map((e=>`entryName:${e}`))),d.has(e.filepath)&&o.push(...d.get(e.filepath).map((e=>`assetName:${e}`))),n.add({metric:"modules.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"modules.dependencies",type:"count",points:[[t,e.dependencies.size]],tags:o}).add({metric:"modules.dependents",type:"count",points:[[t,e.dependents.size]],tags:o})}for(const e of r){const o=[`assetName:${e.name}`,`assetType:${e.type}`],r=e.filepath.replace(/\.map$/,"");l.has(r)&&o.push(...l.get(r).map((e=>`entryName:${e}`))),n.add({metric:"assets.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"assets.modules.count",type:"count",points:[[t,e.inputs.length]],tags:o})}for(const e of i){const o=[`entryName:${e.name}`];n.add({metric:"entries.size",type:"size",points:[[t,e.size]],tags:o}).add({metric:"entries.modules.count",type:"count",points:[[t,e.inputs.length]],tags:o}).add({metric:"entries.assets.count",type:"count",points:[[t,e.outputs.length]],tags:o})}return n})(l,n);s.end();const u=o.time("aggregate plugins metrics"),c=((e,t)=>{const n=new Set;if(!e)return n;n.add({metric:"plugins.count",type:"count",points:[[t,e.size]],tags:[]});for(const o of e.values()){let e=0,r=0;for(const i of Object.values(o.events)){let s=0;r+=i.values.length;for(const t of i.values){const n=t.end-t.start;s+=n,e+=n}n.add({metric:"plugins.hooks.duration",type:"duration",points:[[t,s]],tags:[`pluginName:${o.name}`,`hookName:${i.name}`]}).add({metric:"plugins.hooks.increment",type:"count",points:[[t,i.values.length]],tags:[`pluginName:${o.name}`,`hookName:${i.name}`]})}n.add({metric:"plugins.duration",type:"duration",points:[[t,e]],tags:[`pluginName:${o.name}`]}).add({metric:"plugins.increment",type:"count",points:[[t,r]],tags:[`pluginName:${o.name}`]})}return n})(d?.tapables,n);u.end();const p=o.time("aggregate loaders metrics"),f=((e,t)=>{const n=new Set;if(!e)return n;n.add({metric:"loaders.count",type:"count",points:[[t,e.size]],tags:[]});for(const o of e.values())n.add({metric:"loaders.duration",type:"duration",points:[[t,o.duration]],tags:[`loaderName:${o.name}`]}).add({metric:"loaders.increment",type:"count",points:[[t,o.increment]],tags:[`loaderName:${o.name}`]});return n})(d?.loaders,n);p.end();const m=new Set([...a,...c,...f]),g=oi(t,i.tags),h=ii(m,n,i.filters,g,i.prefix);await t.asyncHook("metrics",h),e.end();const y=o.time("outputing report");hi(t,o,d),y.end();const b=o.time("sending metrics to Datadog");await wi(h,{apiKey:t.auth.apiKey,site:t.auth.site},o),b.end()},m={name:"datadog-universal-metrics-plugin",enforce:"post",buildStart(){u.resume(),t.build.start=t.build.start||Date.now(),e[ei]?.timestamp||(i.timestamp=ni(t.build.start))},buildEnd(){u.end(),r=Date.now()},async timings(e){d=e,l&&await f()},async buildReport(e){l=e,!d&&c||await f()},async flush(){await p()}};return i.enableTracing&&s.push(a),s.push(m),s},Mi="output",Ci="datadog-output-plugin",Oi=(e,t)=>"string"==typeof t?t.replace(/(\.json)?$/,".json"):!0===t?`${e}.json`:t,Ni=e=>{const t=void 0===e;return{build:Oi("build",e?.build??t),bundler:Oi("bundler",e?.bundler??t),dependencies:Oi("dependencies",e?.dependencies??t),errors:Oi("errors",e?.errors??t),logs:Oi("logs",e?.logs??t),metrics:Oi("metrics",e?.metrics??t),timings:Oi("timings",e?.timings??t),warnings:Oi("warnings",e?.warnings??t)}},Ti=(e,t)=>n=>{n.hooks.done.tap("bundler-outputs",(n=>{t((()=>{const t=e.time("stats serialization"),o=n.toJson({all:!1,assets:!0,children:!0,chunks:!0,chunkGroupAuxiliary:!0,chunkGroupChildren:!0,chunkGroups:!0,chunkRelations:!0,entrypoints:!0,errors:!0,ids:!0,modules:!0,nestedModules:!0,relatedAssets:!0,warnings:!0,reasons:!1,chunkModules:!1});return t.end(),o}))}))},Ri=e=>{const t=new Set;return{buildStart(){t.clear()},writeBundle(e,n){t.add(n)},closeBundle(){e((()=>Array.from(t)))}}},_i=({options:e,context:t})=>{const n=t.getLogger(Ci),o=(e=>({path:"./",...e[Mi],files:Ni(e[Mi]?.files)}))(e),r=(e,r)=>{const u=o.files[e];if(!r||!1===u)return;t.queue((async()=>{const e=n.time(`output ${u}`),c=((e,t,n)=>{const o=a.isAbsolute(t)?t:a.resolve(e,t);return a.resolve(o,n)})(t.bundler.outDir,o.path,u);let d;try{const e="function"==typeof r?await r():r;await(async(e,t)=>{await be(a.dirname(e));const n=i.createWriteStream(e),o=new s.JsonStreamStringify(t,void 0,2),r=new Promise(((e,t)=>{o.on("end",(()=>{e()})),o.on("error",(e=>{t(e)}))}));return o.pipe(n),r})(c,e)}catch(e){d=e}d?n.error(`Failed writing ${u}: ${d}`):n.debug(`Wrote "./${a.relative(t.buildRoot,c)}"`),e.end()})())};return[{name:Ci,buildReport(e){const t=n.time("serialize report"),o=K(e);t.end(),r("build",{bundler:o.bundler,metadata:o.metadata,start:o.start,end:o.end,duration:o.duration,writeDuration:o.writeDuration,entries:o.entries,outputs:o.outputs}),r("logs",o.logs),r("timings",o.timings),r("dependencies",o.inputs),r("errors",o.errors),r("warnings",o.warnings)},metrics(e){r("metrics",(()=>Array.from(e)))},esbuild:{setup(e){e.onEnd((e=>{r("bundler",e.metafile)}))}},rspack:Ti(n,(e=>{r("bundler",e)})),rollup:Ri((e=>{r("bundler",e)})),vite:Ri((e=>{r("bundler",e)})),webpack:Ti(n,(e=>{r("bundler",e)}))}]},Fi="rum",Li="datadog-rum-plugin",qi=["8","9","a","b"],zi=(e,t)=>{let n;e.debugId&&(n=t?(e=>{const t=l.createHash("sha256").update(e).digest("hex").slice(0,32),n=`${t.slice(0,12)}4${t.slice(13)}`,o=n.charCodeAt(16)%4,r=`${n.slice(0,16)}${qi[o]}${n.slice(17)}`;return[r.slice(0,8),r.slice(8,12),r.slice(12,16),r.slice(16,20),r.slice(20,32)].join("-")})(t.sourceOrHash):l.randomUUID());const o={ddDebugId:n,service:e.service,version:e.version};return{code:`(function(c,n){try{if(typeof window==='undefined')return;var w=window,m=w[n]=w[n]||{},s=new Error().stack;s&&(m[s]=c)}catch(e){}})(${JSON.stringify(o)},${JSON.stringify("DD_SOURCE_CODE_CONTEXT")});`,debugId:n}},Bi="datadog-rum-privacy-plugin";const Vi=(e,t)=>{const n=t.getLogger(Bi),o=function(e,t){const n={privacy:{addToDictionaryHelper:{expression:{code:e}}}};return["esbuild","webpack","rspack"].includes(t)&&(n.output={...n.output,inlineSourceMap:!1,embedCodeInSourceMap:!0}),n}(e.helperCodeExpression,t.bundler.name);let r=0,i=0;return{name:Bi,enforce:"post",transform:{filter:{id:{include:e.include,exclude:e.exclude}},handler(e,t){try{const n=function(e){if("rspack"===e?.framework||"webpack"===e?.framework)switch(typeof e.inputSourceMap){case"undefined":return;case"string":return e.inputSourceMap;default:return JSON.stringify(e.inputSourceMap)}}(this.getNativeBuildContext?.()),s=k.instrument({id:t,code:e,map:n},o);return 0===s.privacyDictionarySize?{code:e}:(r+=s.privacyDictionarySize,i++,s)}catch(t){return n.error(`Instrumentation Error: ${t}`,{forward:!0}),{code:e}}}},buildEnd:()=>{n.debug(`Privacy dictionary will include ${r} entries across ${i} files`,{forward:!0,context:{dictionaryEntryCount:r,fileCount:i}})}}},Ui=e=>`DD_RUM.init({${JSON.stringify(e.sdk).replace(/(^{|}$)/g,"")}});\n`,Wi=(e,t)=>{const n=e.sdk;if(n.clientToken)return Ui(e);if(!t.auth.apiKey||!t.auth.appKey)throw new Error('Missing "auth.apiKey" and/or "auth.appKey" to fetch "rum.sdk.clientToken".');return async()=>{let o;try{const e=await B({url:`https://api.${t.auth.site}/api/v2/rum/applications/${n.applicationId}`,type:"json",auth:t.auth});o=e.data?.attributes?.client_token}catch(e){throw new Error(`Could not fetch the clientToken: ${e.message}`)}if(!o)throw new Error("Missing clientToken in the API response.");return Ui({...e,sdk:{clientToken:o,...n}})}},Ki=e=>{const n=t.bold.red,o=e[Fi]||{},r={errors:[]};if(!o.sdk)return r;o.sdk.applicationId||r.errors.push(`Missing ${n("applicationId")} in the SDK configuration.`),e.auth.apiKey&&e.auth.appKey||o.sdk.clientToken||r.errors.push(`Missing ${n('"auth.apiKey"')} and/or ${n('"auth.appKey"')} to fetch missing client token.`);const i={applicationId:"unknown_application_id",allowUntrustedEvents:!1,compressIntakeRequests:!1,defaultPrivacyLevel:"mask",enablePrivacyForActionName:!1,sessionReplaySampleRate:0,sessionSampleRate:100,silentMultipleInit:!1,site:e.auth.site||"datadoghq.com",startSessionReplayRecordingManually:!1,storeContextsAcrossPages:!1,telemetrySampleRate:20,traceSampleRate:100,trackingConsent:"granted",trackLongTasks:!1,trackResources:!1,trackUserInteractions:!1,trackViewsManually:!1};return r.config={...i,...o.sdk},r},Hi=e=>{const t=e[Fi]||{},n={errors:[]};if(t.privacy){const e={exclude:[/\/node_modules\//,/\.preval\./,/^[!@#$%^&*()=+~`-]/],include:[/\.(?:c|m)?(?:j|t)sx?$/],addToDictionaryFunctionName:"$",helperCodeExpression:"/*__PURE__*/((q='$DD_A_Q',g=globalThis)=>(g[q]=g[q]||[],(v=>(g[q].push(v),v))))()"};n.config={...e,...t.privacy}}return n},Ji=e=>{const n=t.bold.red,o=e[Fi]||{},r={errors:[]};if(!o.sourceCodeContext)return r;const i=o.sourceCodeContext;return i?.debugId||i?.service&&"string"==typeof i.service||r.errors.push(`Missing ${n('"rum.sourceCodeContext.service"')}.`),r.config={...i,version:i.version||e.metadata?.version},r},Gi=({options:e,context:t})=>{const n=((e,t)=>{const n=[],o=Ki(e),r=Hi(e),i=Ji(e);if(n.push(...o.errors),n.push(...r.errors),n.push(...i.errors),n.length)throw t.error(`\n - ${n.join("\n - ")}`),new Error(`Invalid configuration for ${Li}.`);const s={...e[Fi],sdk:void 0,privacy:void 0,sourceCodeContext:void 0};return o.config&&(s.sdk=o.config),r.config&&(s.privacy=r.config,t.debug(`datadog-rum-privacy plugin options: ${JSON.stringify(s.privacy,((e,t)=>t instanceof RegExp?t.toString():t))}`,{forward:!0})),i.config&&(s.sourceCodeContext=i.config),s})(e,t.getLogger(Li)),o=[],r=n.sourceCodeContext;if(r&&t.inject({type:"code",position:Ee.BEFORE,injectIntoAllChunks:!0,value:e=>{const{code:t}=zi(r,e);return t}}),n.sdk&&(t.inject({type:"file",position:Ee.MIDDLE,value:a.join(__dirname,"./rum-browser-sdk.js")}),t.inject({type:"code",position:Ee.MIDDLE,value:Wi(n,t)})),n.privacy){t.inject({type:"file",position:Ee.BEFORE,value:a.join(__dirname,"./privacy-helpers.js")});const e=Vi(n.privacy,t);o.push(e)}return o},Yi="datadog-analytics-plugin",Qi=({context:e})=>{const t=e.getLogger(Yi);return[{name:Yi,async buildStart(){"production"===e.env&&e.queue((async()=>{try{await e.sendLog({message:"Build started",context:{plugins:e.pluginNames}})}catch(e){t.debug(`Could not submit data to Datadog: ${e}`)}})())}}]},Xi="datadog-async-queue-plugin",Zi=e=>{const{context:t,stores:n}=e,o=t.getLogger(Xi),r=[];return t.queue=e=>{const t=e.catch((e=>{r.push(e.message||e.toString())}));n.queue.push(t)},[{name:Xi,asyncTrueEnd:async()=>{await Promise.all(n.queue),r.length>0&&o.error(`Error occurred while processing async queue:\n ${r.join("\n ")}`)}}]},es=async(e,t,n)=>{const o=[],r=e.initialOptions.entryPoints,i=[],s=[];if(Array.isArray(r))for(const e of r){const t=e&&"object"==typeof e?e.in:e;i.push({path:t})}else r&&"object"==typeof r&&i.push(...Object.entries(r).map((([e,t])=>({name:e,path:t}))));const a=i.flatMap((e=>{return(t=e.path,t.includes("*")?m.glob.sync(t):[t]).map((t=>[e,t]));var t})).map((async([n,r])=>{const i=await e.resolve(r,{kind:"entry-point",resolveDir:t.buildRoot});i.errors.length&&s.push(...i.errors.map((e=>e.text))),i.path&&o.push({name:n.name,resolved:i.path,original:n.path})}));for(const e of s)n.error(e);return await Promise.all(a),o},ts=(e,t)=>W(t)?A:t.startsWith(e)||a.isAbsolute(t)?t:a.resolve(e,t),ns=(e,t)=>{const n=[...e].map((e=>ts(t||process.cwd(),e).split(a.sep))),o=n.length?Math.min(...n.map((e=>e.length))):0,r=[];for(let e=0;e<o;e++){const t=n[0][e];if(!n.every((n=>n[e]===t)))break;r.push(t)}return r.length>0&&r.join(a.sep)||a.sep},os=/\.(?!.*(?:\.|\/|\\))(\w{1,})/g,rs=/(\?|%3F|\|)+/gi,is=e=>{return"unknown"===e?e:e.includes("webpack/runtime")?"runtime":(t=us(e),os.lastIndex=0,os.exec(t)?.[1]||"unknown");var t},ss=["unknown","commonjsHelpers.js",`vite${a.sep}preload-helper.js`],as=(e,t,n)=>{const o=new Set;for(const n of e){const e=us(n);W(n)||e===t||ss.includes(e)||o.add(e)}return o},us=e=>e.split("!").pop().split(rs).shift().replace(/^[^\w\s.,!@#$%^&*()=+~`\-/\\]+/,""),cs=(e,t)=>W(t)?A:"unknown"===t?t:t.includes("webpack/runtime")?t.replace("webpack/runtime/","").replace(/ +/g,"-"):((e,t)=>{const n=t.split(a.sep),o=e.split(a.sep).filter(((e,t)=>e===n[t])).join(a.sep);return e.replace(o,"")})(t.split("!").pop(),e).split("node_modules").pop().split(rs).shift().replace(/^((\.\.?)?[/\\])+/g,""),ds=(e,t)=>Object.fromEntries(Object.entries(e).map((([e,n])=>[ts(t,e),n]))),ls=(e,t)=>({setup(n){const o=new Map;let r=[];const i=t.time("build report",{start:!1});n.onStart((async()=>{o.clear(),r=[],i.resume();const s=t.time("process entries");r.push(...await es(n,e,t));for(const t of r){const n=cs(e.bundler.outDir,t.resolved);t.name?o.set(n,t.name):o.set(n,n)}s.end(),i.pause()})),n.onEnd((async n=>{i.resume();const r=t.time("collecting errors and warnings"),s=e.bundler.outDir,u=e.buildRoot;for(const t of n.errors)e.build.errors.push(t.text);for(const t of n.warnings)e.build.warnings.push(t.text);if(r.end(),!n.metafile){const n="Missing metafile from build report.";return e.build.warnings.push(n),void t.warn(n)}const c=[],d=[],l=[],p=[],f=[],m={},g={},h=t.time("indexing metafile data"),y=ds(n.metafile.inputs,u),b=ds(n.metafile.outputs,u);h.end();const w=e=>{if(!W(e))return e;const t=y[ts(u,e)];if(!t)return e;const n=t.imports.find((e=>!W(e.path)));return n?n.path:e},v=t.time("looping through inputs");for(const[e,t]of Object.entries(n.metafile.inputs)){if(W(e))continue;const n=ts(u,e),o={name:cs(s,e),filepath:n,dependents:new Set,dependencies:new Set,size:t.bytes,type:is(e)};m[n]=o,c.push(o)}v.end();const $=t.time("looping through outputs");for(const[e,r]of Object.entries(n.metafile.outputs)){const n=ts(u,e),i=cs(s,n),a=[];for(const e of Object.keys(r.inputs)){if(W(e))continue;const n=m[ts(u,e)];n?a.push(n):t.debug(`Input ${e} not found for output ${i}`)}if(r.entryPoint&&!a.length){const e=m[ts(u,r.entryPoint)];if(!e){t.debug(`Input ${r.entryPoint} not found for output ${i}`);continue}a.push(e)}const c={name:i,filepath:n,inputs:a,size:r.bytes,type:is(n)};if(g[n]=c,"map"===c.type&&p.push(c),d.push(c),!r.entryPoint)continue;const f=m[ts(u,w(r.entryPoint))];if(f){if(!o.get(f.name))continue;const e={...c,name:o.get(f.name)||f.name,outputs:[c],size:c.size};l.push(e)}}$.end();const k=t.time("looping through sourcemaps");for(const e of p){const n=g[e.filepath.replace(/\.map$/,"")];n?e.inputs.push(n):t.debug(`Could not find output for sourcemap ${e.name}`)}k.end();const x={inputs:{report:m,meta:y},outputs:{report:g,meta:b}},E=/(<runtime>|https:|file:|data:|#)/g,S=e=>!W(e)&&!e.match(E),I=(e,n,o={})=>{if(!S(e))return o;const r=n.report[e];if(!r)return t.debug(`Could not find report's ${e}`),o;if(o[r.filepath])return o;o[r.filepath]=r;const i=n.meta[e];if(!i)return t.debug(`Could not find metafile's ${e}`),o;if(!i.imports||!i.imports.length)return o;for(const t of i.imports){const i=t.path.match(/^\.\.?\//),d=i?a.dirname(e):u,l=ts(d,t.path);if(t.external){if(S(t.path)){const e=i?l:t.path,n=x.inputs.report[e]||{filepath:e,name:cs(s,t.path),size:0,type:"external",dependencies:new Set,dependents:new Set};"dependencies"in r&&(n.dependents.add(r),r.dependencies.add(n)),"inputs"in r&&!r.inputs.includes(n)&&r.inputs.push(n),c.includes(n)||c.push(n),x.inputs.report[e]=n,o[n.filepath]=n}}else I(l,n,o)}return o},j=t.time("looping through entries");for(const e of l){const t={},n={};for(const n of e.inputs)I(n.filepath,x.inputs,t);for(const t of e.outputs)I(t.filepath,x.outputs,n);e.inputs=Object.values(t),e.outputs=Object.values(n),e.size=e.outputs.reduce(((e,t)=>e+t.size),0),f.push(e)}j.end();const A=t.time("aggregate dependencies and dependents");for(const e of c){if("external"===e.type)continue;const n=x.inputs.meta[e.filepath];if(n)for(const o of n.imports){if(!S(o.path))continue;const n=o.path.match(/^\.?\.\//),r=n?a.dirname(e.filepath):u,i=ts(r,o.path);let s;if(o.external){const e=n?i:o.path;s=x.inputs.report[e]}else s=x.inputs.report[i];s?(e.dependencies.add(s),s.dependents.add(e)):t.debug(`Could not find input file of ${o.path} imported from ${e.name}`)}else t.debug(`Could not find metafile's ${e.name}`)}A.end(),e.build.outputs=d,e.build.inputs=c,e.build.entries=f,i.end(),await e.asyncHook("buildReport",e.build)}))}}),ps=(e,t)=>{const n=t.time("module parsing",{start:!1}),o=t.time("build report",{start:!1}),r=t.time("filling entries",{start:!1}),s=t.time("filling inputs and outputs",{start:!1}),a=t.time("completing dependencies and dependents",{start:!1}),u=t.time("filling dependencies and dependents",{start:!1}),c=t.time("filling sourcemaps inputs",{start:!1}),d=new Map,l=new Map,p=new Map,f=new Map;return{buildStart(){f.clear(),d.clear(),l.clear(),p.clear()},onLog(t,n){"warn"===t&&e.build.warnings.push(n.message||n.toString())},renderError(t){t&&e.build.errors.push(t.message)},moduleParsed(e){n.resume();const t=us(e.id),o=f.get(t)||{dependencies:new Set,dependents:new Set},r=as(new Set([...e.dynamicallyImportedIds,...e.importedIds]),t),i=as(new Set([...e.dynamicImporters,...e.importers]),t);for(const e of i)o.dependents.add(e);for(const e of r)o.dependencies.add(e);f.set(t,o),n.tag([`module:${t}`],{span:!0}),n.pause()},writeBundle(n,m){o.resume();const g=n.dir?ts(e.buildRoot,n.dir):e.bundler.outDir,h=new Set,y=new Set,b=new Map;a.resume();for(const[e,{dependencies:t,dependents:n}]of f){for(const n of t){const t=us(n),o=f.get(t)||{dependencies:new Set,dependents:new Set};o.dependents.has(e)||(o.dependents.add(e),f.set(t,o))}for(const t of n){const n=us(t),o=f.get(n)||{dependencies:new Set,dependents:new Set};o.dependencies.has(e)||(o.dependencies.add(e),f.set(n,o))}}a.end(),s.resume();for(const[e,n]of Object.entries(m)){const o=ts(g,e),r="code"in n?Buffer.byteLength(n.code,"utf8"):Buffer.byteLength(n.source,"utf8"),s=l.get(o)||{name:e,filepath:o,inputs:[],size:r,type:is(e)};if("map"===s.type&&y.add(s),"modules"in n)for(const[e,t]of Object.entries(n.modules)){if(us(e)!==e)continue;let n=t.originalLength;if(!n&&0!==n)try{n=i.statSync(e).size}catch(e){n=t.renderedLength}const o=d.get(e)||{name:cs(g,e),dependencies:new Set,dependents:new Set,filepath:e,size:n,type:is(e)};s.inputs.push(o),d.set(o.filepath,o)}if("imports"in n)for(const e of n.imports){const n=us(e);if(!f.has(n)){b.set(ts(g,n),s);continue}if(d.has(n)){t.debug(`Input report already there for ${n} from ${s.name}.`);continue}const o=d.get(n)||{name:cs(g,e),dependencies:new Set,dependents:new Set,filepath:n,size:0,type:"external"};s.inputs.push(o),d.set(o.filepath,o)}"isEntry"in n&&n.isEntry&&h.add({...s,name:n.name,size:0,outputs:[s]}),l.set(s.filepath,s)}s.end();for(const[e,n]of b){const o=l.get(e);o?n.inputs.includes(o)||n.inputs.push(o):t.debug(`Could not find the output report for ${e}.`)}u.resume();for(const[e,n]of d){const o=f.get(e);if(o){for(const e of o.dependencies){const o=d.get(e);o?n.dependencies.add(o):t.debug(`Could not find input for dependency ${cs(g,e)} of ${n.name}`)}for(const e of o.dependents){const o=d.get(e);o?n.dependents.add(o):t.debug(`Could not find input for dependent ${cs(g,e)} of ${n.name}`)}}else t.debug(`Could not find the import report for ${n.name}.`)}if(u.end(),y.size){c.resume();for(const e of y){const n=e.filepath.replace(/\.map$/,""),o=l.get(n);o?e.inputs.push(o):t.debug(`Could not find output for sourcemap ${e.name}`)}c.end()}const w=(e,n=new Map)=>{if(n.has(e))return n;const o=cs(g,e),r=l.get(e);if(!r)return d.has(o)||t.debug(`Could not find output for ${o}`),n;n.set(e,r);const i=m[cs(g,e)];if(!i)return t.debug(`Could not find asset for ${o}`),n;const s=[];"imports"in i&&s.push(...i.imports),"dynamicImports"in i&&s.push(...i.dynamicImports);for(const e of s)w(ts(g,e),n);return n};r.resume();for(const e of h){const n=w(e.filepath);e.outputs=Array.from(n.values()),e.inputs=Array.from(new Set(e.outputs.flatMap((e=>e.inputs)))),e.size=e.outputs.reduce(((e,t)=>e+t.size),0),p.has(e.filepath)&&t.debug(`Entry "${e.name}":"${cs(g,e.filepath)}" already reported.`),p.set(e.filepath,e)}r.pause(),o.pause()},async closeBundle(){e.build.inputs=Array.from(d.values()),e.build.outputs=Array.from(l.values()),e.build.entries=Array.from(p.values()),r.end(),o.end(),await e.asyncHook("buildReport",e.build)}}},fs=(e,t,n)=>o=>{let r=[],i=[],s=[];const a=new Map,u=new Map,c=new Map,d=new Map,l=[],p=new Map,f=n.time("build report",{start:!1}),m=e=>!(!e||e.startsWith("webpack/runtime")||e.startsWith("multi ")||W(e)),g=e=>e.replace(/(^external[^"]+"|"$)/g,""),h=e=>{const t=(e=>{const t=e.identifier();return{identifier:()=>t,dependencies:"dependencies"in e?[...e.dependencies]:[],blocks:"blocks"in e?[...e.blocks]:[],externalType:"externalType"in e?e.externalType:void 0,external:"external"in e?e.external:void 0}})(e),n=(e=>{const t=new Set,n=["rawRequest","resource","request","userRequest"],o=e=>{const n=us(e);t.add(n),n.startsWith("external ")&&t.add(g(n))};o(e.identifier());for(const t of n){const n=e[t];t&&t in e&&"string"==typeof n&&o(n)}return t})(e);for(const e of n)if(d.has(e)){const n=d.get(e);n.dependencies.push(...t.dependencies||[]),n.blocks.push(...t.blocks||[])}else d.set(e,t)},y=(e,t=[])=>{if("dependencies"in e)for(const n of e.dependencies)t.push(n),y(n,t);if("blocks"in e)for(const n of e.blocks)y(n,t);return t},b=(e,t)=>{if("request"in t&&t.request){const n=us(t.request);if(d.has(n))return d.get(n);if(e.context){const t=ts(us(e.context),n);if(d.has(t))return d.get(t)}}},w=e=>!(!("externalType"in e)||!e.externalType)||(!(!("external"in e)||!e.external)||!!e.identifier?.().startsWith("external "));o.hooks.thisCompilation.tap(t,(o=>{r=[],i=[],s=[],a.clear(),u.clear(),d.clear(),p.clear(),o.hooks.finishModules.tap(t,(t=>{f.resume();const o=n.time("dependency graph"),i=n.time("indexing modules");for(const e of t)h(e);i.end();const s=n.time("building inputs");for(const n of t){const t=n.identifier(),o=cs(e.bundler.outDir,t),i=new Set(y(n).map((e=>{const o=b(n,e);if(!o?.identifier())return!1;const r=o.identifier();return!!m(r)&&(r!==t&&(w(o)?g(r):r))})).filter(Boolean));if(!m(t))continue;const s=p.get(t)||{dependents:new Set,dependencies:new Set};for(const e of i){const n=p.get(e)||{dependencies:new Set,dependents:new Set};n.dependents.add(t),s.dependencies.add(e),p.set(e,n)}p.set(t,s);const u=w(n)?{size:0,name:g(o),dependencies:new Set,dependents:new Set,filepath:t,type:"external"}:{size:n.size()||0,name:o,dependencies:new Set,dependents:new Set,filepath:t,type:is(t)};r.push(u),a.set(t,u),w(n)&&a.set(g(t),u)}s.end();const u=n.time("assigning dependencies and dependents");for(const e of r){const t=p.get(e.filepath);if(t){for(const o of t.dependencies){const t=a.get(o);t?e.dependencies.add(t):n.debug(`Could not find input of dependency ${o}`)}for(const o of t.dependents){const t=a.get(o);t?e.dependents.add(t):n.debug(`Could not find input of dependent ${o}`)}}else n.debug(`Could not find dependency report for ${e.name}`)}u.end(),o.end(),f.pause()}))})),o.hooks.afterEmit.tapPromise(t,(async t=>{f.resume();const o=t.chunks,d=t.getAssets(),p=t=>[...t.files||[],...t.auxiliaryFiles||[]].map((t=>ts(e.bundler.outDir,t))),g=n.time("indexing chunks"),h=t.chunkGraph;for(const e of o){const t=p(e),n=(h?.getChunkModules(e)||[]).flatMap((e=>"modules"in e&&Array.isArray(e.modules)?e.modules.map((e=>e.identifier())):e.identifier())).filter(m);for(const e of t){if("map"===is(e))continue;const t=c.get(e)||new Set;for(const e of n)t.add(e);c.set(e,t)}}g.end();const y=n.time("building outputs");for(const t of d){const o={size:t.source.size()||0,name:t.name,inputs:[],filepath:ts(e.bundler.outDir,t.name),type:is(t.name)};if(u.set(o.filepath,o),i.push(o),"map"===o.type){l.push(o);continue}const r=c.get(o.filepath);if(r)for(const e of r){const t=a.get(e);t?o.inputs.push(t):n.debug(`Could not find input of ${e}`)}else n.debug(`Could not find modules for ${o.name}`)}y.end();const b=n.time("filling sourcemaps inputs");for(const e of l){const t=u.get(e.filepath.replace(/\.map$/,""));t?e.inputs.push(t):n.debug(`Output not found for sourcemap ${e.name}`)}b.end();const w=n.time("building entries"),v=(e,t=new Set)=>{if(t.has(e))return new Set;t.add(e);const n=new Set(e.chunks);for(const o of e.childrenIterable||[]){const e=v(o,t);for(const t of e)n.add(t)}return n};for(const[o,r]of t.entrypoints){const t=new Map,i=new Map;let a=0;const c=v(r),d=Array.from(c).flatMap(p),l=r.chunks.filter((e=>h.getChunkEntryModulesIterable(e)||!1)).flatMap((e=>Array.from(e.files))).filter((e=>e.includes(o)||r.name&&e.includes(r.name))).find((e=>"js"===is(e)));for(const e of d){const o=u.get(e);if(e&&o){if("map"!==o.type&&!t.has(o.name)){t.set(o.name,o);for(const e of o.inputs)i.has(e.filepath)||i.set(e.filepath,e);a+=o.size}}else n.debug(`Could not find output of ${JSON.stringify(e)}`)}const f={name:o,filepath:l?ts(e.bundler.outDir,l):"unknown",size:a,inputs:Array.from(i.values()),outputs:Array.from(t.values()),type:l?is(l):"unknown"};s.push(f)}w.end();for(const n of t.errors)e.build.errors.push(n.message);for(const n of t.warnings)e.build.warnings.push(n.message);e.build.inputs=r,e.build.outputs=i,e.build.entries=s,f.end(),await e.asyncHook("buildReport",e.build)}))},ms="datadog-build-report-plugin",gs=e=>{const{context:t}=e,n=t.getLogger(ms);return[{name:ms,enforce:"post",esbuild:ls(t,n),rspack:fs(t,ms,n),webpack:fs(t,ms,n),vite:ps(t,n),rollup:ps(t,n)}]},hs="datadog-bundler-report-plugin",ys=(e,t)=>t?a.isAbsolute(t)?t:a.resolve(e,t):"",bs=e=>{if(!e)return[];return(Array.isArray(e)?e:[e]).map((e=>e.dir?e.dir:e.file?a.dirname(e.file):void 0)).filter(Boolean)},ws=e=>t=>{e.bundler.rawConfig=t.options,t.options.output?.path&&(e.bundler.outDir=ys(process.cwd(),t.options.output.path)),e.hook("bundlerReport",e.bundler),t.options.context&&(e.buildRoot=t.options.context),e.hook("buildRoot",e.buildRoot)},vs=e=>({configResolved(t){e.bundler.rawConfig=t;let n=t.build?.outDir??"dist";const o=t.build?.rollupOptions?.output,r=bs(o);e.buildRoot=t.root??process.cwd(),o&&r.length&&(n=ns(r,process.cwd())),e.bundler.outDir=ys(e.buildRoot,n),e.hook("buildRoot",e.buildRoot),e.hook("bundlerReport",e.bundler)}}),$s=e=>{const{context:t}=e,n=t.getLogger(hs);return[{name:hs,enforce:"pre",esbuild:{setup(e){t.bundler.rawConfig=e.initialOptions,e.initialOptions.absWorkingDir&&(t.buildRoot=e.initialOptions.absWorkingDir),e.initialOptions.outdir&&(t.bundler.outDir=ys(t.buildRoot,e.initialOptions.outdir)),e.initialOptions.outfile&&(t.bundler.outDir=ys(t.buildRoot,a.dirname(e.initialOptions.outfile))),t.hook("buildRoot",t.buildRoot),t.hook("bundlerReport",t.bundler),e.initialOptions.metafile=!0}},webpack:ws(t),rspack:ws(t),vite:vs(t),rollup:{options(e){let n;if("output"in e){const t=bs(e.output);n=ns(t,process.cwd())}const o=(e=>{const t=new Set;if(e.input){const n=Array.isArray(e.input)?e.input:"object"==typeof e.input?Object.values(e.input):[e.input];for(const e of n){if("string"!=typeof e)throw new Error("Invalid input type");t.add(a.dirname(e))}}return Array.from(t)})(e);if(n){t.bundler.outDir=ts(process.cwd(),n);const e=ns([n,...o],process.cwd());t.buildRoot=e===a.sep?process.cwd():e}else t.buildRoot=ns(o,process.cwd()),t.bundler.outDir=a.resolve(process.cwd(),"dist");t.hook("buildRoot",t.buildRoot)},buildStart(e){t.bundler.rawConfig=e},renderStart(e){t.bundler.rawConfig.outputs=t.bundler.rawConfig.outputs||[],t.bundler.rawConfig.outputs.push(e),t.hook("bundlerReport",t.bundler);const o=bs(e);ns(o,process.cwd()).startsWith(t.bundler.outDir)||n.warn("The output directory has been changed by a plugin and may introduce some inconsistencies in the build report.")}}}]},ks="datadog-custom-hooks-plugin",xs=e=>{const{context:t}=e,n=t.getLogger(ks),o=e=>(o,...r)=>{const i=n.time(`execution | ${o}`,{tags:["type:custom-hook",`hook:${o}`]}),s=[],a=[];for(const n of t.plugins){if(!(o in n))continue;const t=n[o];if("function"==typeof t)try{const i=t(...r);i instanceof Promise&&(e||s.push(`Plugin "${n.name}" returned a promise on the non async hook "${o}".`),a.push(i))}catch(e){s.push(`Plugin "${n.name}" errored on hook "${o}". [${e}]`)}else s.push(`Plugin "${n.name}" has an invalid hook type for "${o}". [${typeof t}]`)}if(s.length>0){for(const e of s)n.error(e);throw new Error("Some plugins errored during the hook execution.")}return Promise.all(a).finally((()=>i.end()))};return t.hook=o(!1),t.asyncHook=o(!0),[{name:ks,enforce:"pre"}]};class Es{constructor(e){this.trackedFilenames=new Map;for(const t of e){const e=this.getFilename(t),n=this.trackedFilenames.get(e);n?n.push(t):this.trackedFilenames.set(e,new Array(t))}}displaySource(e){return e.length<=40?e:`[...]${e.slice(-35)}`}matchSourcemap(e,t){const n=(o=e,i.readFileSync(o,{encoding:"utf-8"}));var o;const r=JSON.parse(n);if(!r.sources)return void t("Missing 'sources' field in sourcemap.");const s=r.sources;if(0===s.length)return void t("Empty 'sources' field in sourcemap.");const a=this.matchSources(s);if(0!==a.length)return a;t(`${s.map(this.displaySource).join(", ")} not in the tracked files.`)}matchSources(e){let t=[];const n=new Set;for(const o of e){const e=this.getFilename(o);if(n.has(e))continue;n.add(e);const r=this.trackedFilenames.get(e);r&&(t=t.concat(r))}return t}rawTrackedFilesList(){let e=[];return this.trackedFilenames.forEach((t=>{e=e.concat(t)})),e}getFilename(e){let t=e.lastIndexOf("/");-1===t?t=0:t++;let n=e.lastIndexOf("?");return(-1===n||n<=t)&&(n=e.length),e.substring(t,n)}}const Ss=async e=>{const t=await e.getRemotes(!0);if(0===t.length)throw new Error("No git remotes available");const n=await Is(e);for(const e of t)if(e.name===n)return Y(e.refs.push);return Y(t[0].refs.push)},Is=async e=>{try{return(await e.getConfig("clone.defaultRemoteName"))?.value??"origin"}catch(e){return"origin"}},js=async e=>e.revparse("HEAD"),As=async e=>(await e.raw("ls-files")).split(/\r\n|\r|\n/),Ds=async e=>e.branch(),Ps=async e=>e.show(["-s","--format=%s"]),Ms=async e=>e.show(["-s","--format=%an,%ae,%aI,%cn,%ce,%cI"]),Cs="datadog-git-plugin",Os=e=>{const{options:t,context:n}=e,o=n.getLogger(Cs),r=o.time("get git information",{start:!1}),i=async e=>{try{const t=await(async e=>{const t={baseDir:e||process.cwd(),binary:"git",maxConcurrentProcesses:3};try{const e=x.simpleGit(t),n=await e.revparse("--show-toplevel");t.baseDir=n}catch{}return x.simpleGit(t)})(a.dirname(e));if(0===(await t.getRemotes(!0)).length)return o.warn("No git remotes available, skipping git plugin. This is expected for a repository that has not been pushed yet."),void r.end();const i=await(async e=>{const t=[js(e),Ds(e),Ps(e),Ms(e),As(e),Ss(e)],[n,o,r,i,s,a]=await Promise.all(t),[u,c,d,l,p,f]=i.split(",").map((e=>e.trim()));return{commit:{author:{name:u,email:c,date:d},committer:{name:l,email:p,date:f},message:r.trim(),hash:n},hash:n,branch:o.current,remote:a.trim(),trackedFilesMatcher:new Es(s)}})(t);n.git=i,r.end(),await n.asyncHook("git",n.git)}catch(e){o.error(`Could not get git information: ${e.message}`)}};return[{name:Cs,enforce:"pre",buildRoot(e){if(H(t))try{r.resume();const t=((e,t)=>{let n,o=ts(process.cwd(),e);for(;!n;){const e=a.resolve(o,t);if($e(e)&&(n=e),o=o.split(a.sep).slice(0,-1).join(a.sep),[a.sep,""].includes(o))break}return n})(e,".git");if(!t)return o.warn("No .git directory found, skipping git plugin."),void r.end();n.queue(i(t))}catch(e){o.error(`Could not get git information: ${e.message}`)}}}]},Ns="datadog-injection-plugin",Ts=/^https?:\/\//,Rs=[".mjs",".mjsx",".js",".ts",".tsx",".jsx"],_s=t.bold.yellow;function Fs(e){return e.some((e=>e.position===Ee.BEFORE||e.position===Ee.AFTER))}function Ls(e){return e.some((e=>e.injectIntoAllChunks))}const qs=(e,t,n)=>{const o=e.filter((e=>e.position===t&&(!n||n.isEntry||e.injectIntoAllChunks))).map((e=>Hs(e.value)?e.value(n):e.value)).filter(Boolean);if(0===o.length)return"";return`// begin injection by Datadog build plugins\n${o.map((e=>`(() => {${e}})();`)).join("\n\n")}\n// end injection by Datadog build plugins`},zs=async(e,t,n=process.cwd())=>{const o=Hs(e.value)?await e.value():e.value;try{if("file"===e.type){const e=o;return await(e.match(Ts)?(async(e,t=5e3)=>{let n;return Promise.race([B({retries:2,minTimeout:100,url:e}).finally((()=>{t&&clearTimeout(n)})),new Promise(((e,o)=>{n=setTimeout((()=>{o(new Error("Timeout"))}),t)}))])})(e):(async(e,t=process.cwd())=>{const n=ts(t,e);return ve(n)})(e,n))}return o}catch(r){const i=`${e.type} - ${G(o)}`;return e.fallback?(t.debug(`Fallback for "${i}": ${r.toString()}`),zs(e.fallback,t,n)):(t.warn(`Failed "${i}": ${r.toString()}`),"")}},Bs=async(e,t,n,o=process.cwd())=>{const r=t.filter(Ks).map((e=>{const t=e.value;return{...e,value:e=>t(e)}})),i=t.filter((e=>!Ks(e))),s=await Promise.all(i.map((async t=>({...t,value:await zs(t,e,o)})))),a=e=>({...e,position:e.position??Ee.BEFORE});n.push(...r.map(a),...s.map(a))},Vs=e=>e instanceof Error&&"code"in e,Us=e=>Rs.includes(e),Ws=(e,t,n)=>{e.warn(`"${_s(t)}" files are not supported (${_s(n)}).`)},Ks=e=>"function"==typeof e.value&&1===e.value.length,Hs=e=>"function"==typeof e,Js=i.promises,Gs=(e,t,n)=>({setup(o){const{onStart:s,onResolve:u,onLoad:c,onEnd:d,esbuild:l,initialOptions:f}=o,m=[],g=`${t.bundler.name}.${Ee.MIDDLE}.${A}.js`,h=i.realpathSync(p.tmpdir()),y=a.resolve(h,g),b=new RegExp(`${g}$`),w=f.inject;f.inject=w?[...w]:[],f.inject.push(y),s((async()=>{m.push(...await es(o,t,e)),o.initialOptions.inject=w;try{await(async(e,t)=>{await be(a.dirname(e)),await r.writeFile(e,t,{encoding:"utf-8"})})(y,"")}catch(t){e.error(`Could not create the files: ${t.message}`)}})),u({filter:b},(async e=>({path:e.path,namespace:Ns}))),c({filter:b,namespace:Ns},(async()=>({contents:qs(n,Ee.MIDDLE)||" ",resolveDir:t.buildRoot,loader:"js"}))),d((async o=>{if(!o.metafile){const n=new Error("Missing metafile from build result.");return e.warn(n.message),void t.markArtifactsReady(n)}if(Fs(n))try{const r=[];for(const[i,s]of Object.entries(o.metafile.outputs)){const o=Boolean(s.entryPoint&&m.some((e=>e.resolved.endsWith(s.entryPoint))));if(!o&&!Ls(n))continue;const u=ts(t.buildRoot,i),{base:c,ext:d}=a.parse(u);Us(d)?r.push((async()=>{try{const e=`${u}.map`,t=await Js.readFile(u,"utf-8"),r=await Js.readFile(e,"utf-8").catch((()=>!1)),i=a.basename(u),s=qs(n,Ee.BEFORE,{sourceOrHash:t,fileName:i,isEntry:o}),c=qs(n,Ee.AFTER,{sourceOrHash:t,fileName:i,isEntry:o});if(!s&&!c)return;const d=t.replace(/\n?\/\/# sourceMappingURL=.*$/m,""),p=r?`${d}\n//# sourceMappingURL=data:application/json;base64,${Buffer.from(r).toString("base64")}`:d,f=await l.transform(p,{loader:"default",banner:s,footer:c,sourcemap:r?"external":void 0,sourcefile:i});await Promise.all([Js.writeFile(u,f.code),r&&f.map?Js.writeFile(e,f.map):null])}catch(t){if(!Vs(t)||"ENOENT"!==t.code)throw t;e.warn(`Could not inject content in ${u}: ${t}`)}})()):Ws(e,d,c)}await Promise.all(r),t.markArtifactsReady()}catch(e){throw t.markArtifactsReady(e),e}}))}}),Ys=A,Qs="?inject-proxy",Xs=(e,t)=>({renderChunk:{order:"post",handler(n,o){const{base:r,ext:i}=a.parse(o.fileName);if(!Us(i))return Ws(e,i,r),null;const s=qs(t,Ee.BEFORE,{sourceOrHash:n,fileName:o.fileName,isEntry:o.isEntry}),u=qs(t,Ee.AFTER,{sourceOrHash:n,fileName:o.fileName,isEntry:o.isEntry});if(!s&&!u)return null;const c=new E(n);return s&&c.prepend(`${s}\n`),u&&c.append(`\n${u}`),{code:c.toString(),map:c.generateMap({file:o.fileName,hires:"boundary"})}}},async resolveId(e,n,o){if(W(e))return{id:e,moduleSideEffects:!0};if(o.isEntry&&qs(t,Ee.MIDDLE)){if(e.endsWith(".html"))return null;const t=await this.resolve(e,n,o);if(!t||t.external)return t;return(await this.load(t)).moduleSideEffects=!0,`${t.id}${Qs}`}return null},load(e){if(W(e))return qs(t,Ee.MIDDLE);if(e.endsWith(Qs)){const t=e.slice(0,-13),n=this.getModuleInfo(t);let o=`import ${JSON.stringify(Ys)};\nexport * from ${JSON.stringify(t)};`;return n?.hasDefaultExport&&(o+=`export { default } from ${JSON.stringify(t)};`),o}return null}}),Zs=(e,t,n,o,r)=>s=>{const u=new WeakMap,c=e.sources.ConcatSource,d=n.bundler.name,l=a.resolve(n.buildRoot,"node_modules",".cache","datadog-build-plugins",`${d}.${Ee.MIDDLE}.${A}.js`);we(l,"");s.hooks.shutdown.tap(Ns,(()=>{var e;e=l,i.rmSync(e,{force:!0,maxRetries:3,recursive:!0})}));const p=async()=>{await Bs(t,o,r,n.buildRoot)};s.hooks.beforeRun.tapPromise(Ns,p),s.hooks.watchRun.tapPromise(Ns,p),s.hooks.compilation.tap(Ns,(n=>{const o=e.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS;n.hooks.processAssets.tap({name:Ns,stage:o},(()=>{for(const e of n.chunks){const o=e.canBeInitial(),i=e.contentHash?.javascript??e.hash;for(const s of e.files){const{base:e,ext:d}=a.parse(s);if(!Us(d)){Ws(t,d,e);continue}const l=e,p=qs(r,Ee.BEFORE,{sourceOrHash:i,fileName:l,isEntry:o}),f=qs(r,Ee.AFTER,{sourceOrHash:i,fileName:l,isEntry:o});""===p&&""===f||n.updateAsset(s,(e=>{const t=u.get(e);if(!t||t.banner!==p||t.footer!==f){const t=new c(p,"\n",e,"\n",f);return u.set(e,{source:t,banner:p,footer:f}),t}return t.source}))}}}))}));const f=(e=>{const n={import:[l]},o=e=>{for(const[n,o]of Object.entries(e))"object"==typeof o?(o.import=o.import||[],o.import.unshift(l)):"string"==typeof o?e[n]=[l,o]:Array.isArray(o)?o.unshift(l):t.error("Invalid entry type: "+typeof o)};return e?"function"==typeof e?async()=>{const t=await e();return o(t),t}:"object"!=typeof e?"string"==typeof e?[n,e]:(t.error("Invalid entry type: "+typeof e),e):(o(e),e):{ddHelper:n}})(s.options.entry);s.options.entry=f},ea=e=>{const{bundler:t,context:n}=e,o=n.getLogger(Ns),r=[],i=[];n.inject=e=>{r.push(e)};const s={name:Ns,enforce:"post",esbuild:Gs(o,n,i),webpack:Zs(t,o,n,r,i),rspack:Zs(t,o,n,r,i),rollup:Xs(o,i),vite:{...Xs(o,i),enforce:"pre",transformIndexHtml:{order:"pre",handler:()=>qs(i,Ee.MIDDLE)?[{tag:"script",attrs:{type:"module",src:"/@id/__datadog-helper-file"},injectTo:"head-prepend"}]:[]}}};var a;return a=n.bundler.name,["rspack","webpack"].includes(a)?s.load={filter:{id:D},handler:()=>({code:qs(i,Ee.MIDDLE)})}:s.buildStart=async()=>{await Bs(o,r,i,n.buildRoot),"esbuild"===n.bundler.name&&Fs(i)&&n.markArtifactsPending()},[s]},ta="datadog-true-end-plugin",na=e=>{const{context:t}=e,n=async()=>{await t.asyncHook("asyncTrueEnd")},o=async()=>{await t.asyncHook("flush")},r=()=>{t.hook("syncTrueEnd")},i=async()=>{r(),await n(),await o()},s=e=>{e.hooks.shutdown.tapPromise(ta,i)},a={async writeBundle(){},async closeBundle(){await i()}};return[{name:ta,enforce:"post",webpack:s,esbuild:{setup(e){e.onEnd((async()=>{await n(),await o()})),e.onDispose((()=>{r()}))}},vite:a,rollup:a,rspack:s}]},oa={[ei]:Di},ra=t.bold.red;var ia="3.2.12-dev.1";const sa=(({bundler:t,version:n})=>{const o=Date.now();return e.createUnplugin(((e,r)=>{const i=Date.now(),s=((e={})=>{const t=(e=>{const t=[];return void 0===e||void 0!==e.version&&"string"!=typeof e.version&&t.push("metadata.version must be a string"),t})(e.metadata),n=_("SITE"),o=L(n,"DATADOG_SITE/DD_SITE",t)??L(e.auth?.site,"auth.site",t),r={site:o?.site??C};if(t.length)throw new Error(`Invalid Datadog plugin configuration:\n - ${t.join("\n - ")}`);return Object.defineProperty(r,"apiKey",{value:_("API_KEY")||e.auth?.apiKey,enumerable:!1}),Object.defineProperty(r,"appKey",{value:_("APP_KEY")||e.auth?.appKey,enumerable:!1}),{enableGit:!0,logLevel:"warn",metadata:{},...e,auth:r}})(e);"esbuild"===r.framework&&(r.esbuildHostName=O);const a=process.env.BUILD_PLUGINS_ENV||"production",u=P.includes(a)?a:"development",c=t.rspackVersion||t.version||t.VERSION,d=r.framework,l={bundler:{name:d,version:c},env:u,metadata:s.metadata||{},packageName:`@datadog/${d}-plugin`,version:n},p={errors:[],logs:[],metrics:new Set,queue:[],timings:[],warnings:[]},f=(({start:e,options:t,data:n,stores:o})=>{const r=process.cwd(),i={errors:o.errors,warnings:o.warnings,logs:o.logs,metadata:n.metadata,timings:o.timings,bundler:n.bundler},s={addMetric:()=>{throw new Error("AddMetric function called before it was initialized.")},artifactsPending:!1,artifactsReady:Promise.resolve(),auth:t.auth,pluginNames:[],bundler:{...i.bundler,outDir:r},build:i,buildRoot:r,env:n.env,getLogger:oe(n,o,t.logLevel),asyncHook:()=>{throw new Error("AsyncHook function called before it was initialized.")},hook:()=>{throw new Error("Hook function called before it was initialized.")},inject:()=>{throw new Error("Inject function called before it was initialized.")},markArtifactsPending:()=>{},markArtifactsReady:()=>{},plugins:[],queue:()=>{throw new Error("Queue function called before it was initialized.")},sendLog:V(n),start:e,version:n.version};let a,u;return s.markArtifactsPending=()=>{a||u||(s.artifactsReady=new Promise(((e,t)=>{a=e,u=t})),s.artifactsPending=!0,s.artifactsReady.catch((()=>{})))},s.markArtifactsReady=e=>{const t=a,n=u;a=void 0,u=void 0,s.artifactsPending=!1,void 0===e?t?.():n?.(e)},s})({start:o,options:s,data:l,stores:p}),m=f.getLogger("factory"),g=m.time("Plugins initialization",{start:i});f.pluginNames.push(O);const h=[];h.push(["analytics",Qi],["async-queue",Zi],["build-report",gs],["bundler-report",$s],["custom-hooks",xs],["git",Os],["injection",ea],["true-end",na]),s.customPlugins&&h.push(["custom",s.customPlugins]);const y=[["apps",ce,qo],["error-tracking",zo,cr],["live-debugger",dr,Xr],["metrics",ei,Pi],["output",Mi,_i],["rum",Fi,Gi]];for(const[e,t,n]of y)ue(s,t,m)&&h.push([e,n]);for(const[e,n]of h)f.plugins.push(...se(f,n,e)({bundler:t,context:f,options:s,data:l,stores:p}));return(e=>{const t=[];for(const n of R){const o=F(n);if(o.length>1&&!o.every((e=>process.env[e]===process.env[o[0]]))){const r=o.map((e=>T(e))).join(" and "),i=T(`DATADOG_${n}`);e.warn(`Conflicting keys ${r}, will use ${i}`),t.push(`${r} (using ${i})`)}else if(o.length){const e=o.map((e=>N(e))).join(" and ");t.push(`${e} (same value)`)}}t.length&&e.info(`Overrides from environment:\n - ${t.join("\n - ")}`)})(m),f.pluginNames.push(...f.plugins.map((e=>e.name))),(e=>{const t=new Set(e.filter((t=>e.filter((e=>e===t)).length>1)));if(t.size>0)throw new Error(`Duplicate plugin names: ${ra(Array.from(t).join(", "))}`)})(f.pluginNames),f.hook("init",f),g.end(),f.plugins}))})({bundler:S,version:ia}).webpack,aa=ia,ua=oa;exports.datadogWebpackPlugin=sa,exports.helpers=ua,exports.version=aa;
2
2
  //# sourceMappingURL=index.js.map