@earlyai/cli 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.cjs +7 -7
  2. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -17,7 +17,7 @@ Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._life
17
17
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
18
18
  - ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let o=!1,s=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function l(e,t){let n=r.resolve(e,t);if(i.existsSync(n))return n;if(s.includes(r.extname(t)))return;let a=s.find(e=>i.existsSync(`${n}${e}`));if(a)return`${n}${a}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let u=e._executableFile||`${this._name}-${e._name}`,d=this._executableDir||``;if(this._scriptPath){let e;try{e=i.realpathSync(this._scriptPath)}catch{e=this._scriptPath}d=r.resolve(r.dirname(e),d)}if(d){let t=l(d,u);if(!t&&!e._executableFile&&this._scriptPath){let n=r.basename(this._scriptPath,r.extname(this._scriptPath));n!==this._name&&(t=l(d,`${n}-${e._name}`))}u=t||u}o=s.includes(r.extname(u));let f;a.platform===`win32`?(this._checkForMissingExecutable(u,d,e._name),t.unshift(u),t=h(a.execArgv).concat(t),f=n.spawn(a.execPath,t,{stdio:`inherit`})):o?(t.unshift(u),t=h(a.execArgv).concat(t),f=n.spawn(a.argv[0],t,{stdio:`inherit`})):f=n.spawn(u,t,{stdio:`inherit`}),f.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{a.on(e,()=>{f.killed===!1&&f.exitCode===null&&f.kill(e)})});let p=this._exitCallback;f.on(`close`,e=>{e??=1,p?p(new c(e,`commander.executeSubCommandAsync`,`(close)`)):a.exit(e)}),f.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(u,d,e._name);else if(t.code===`EACCES`)throw Error(`'${u}' not executable`);if(!p)a.exit(1);else{let e=new c(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,p(e)}}),this.runningCommand=f}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)===void 0?!1:this.getOptionValueSource(t)!==`default`});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-\d*\.?\d+(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}else if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
19
19
  `),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in a.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,a.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new f(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=p(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${e.length}.`;this.error(r,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=p(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>s(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=r.basename(e,r.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(a.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
20
- Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function h(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function g(){if(a.env.NO_COLOR||a.env.FORCE_COLOR===`0`||a.env.FORCE_COLOR===`false`)return!1;if(a.env.FORCE_COLOR||a.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=m,e.useColor=g}));const{program:ne,createCommand:N,createArgument:P,createOption:F,CommanderError:I,InvalidArgumentError:re,InvalidOptionArgumentError:ie,Command:L,Argument:R,Option:ae,Help:z}=u(s((e=>{let{Argument:t}=A(),{Command:n}=M(),{CommanderError:r,InvalidArgumentError:i}=k(),{Help:a}=ee(),{Option:o}=j();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var oe=`2.3.1`,se=s((e=>{let t=e=>e!=null,n=e=>typeof e==`object`&&!!e,r=e=>Array.isArray(e),i=e=>e instanceof Map,a=e=>e instanceof Set,o=e=>e instanceof Date,s=e=>typeof e==`number`,c=e=>typeof e==`string`,l=e=>typeof e==`boolean`,u=e=>e instanceof Error,d=e=>t(e)?c(e)||r(e)?e.length===0:i(e)||a(e)?e.size===0:o(e)?!1:n(e)?Object.keys(e).length===0:!1:!0,f=e=>u(e)?e.message:`error is not Instance of Error`,p=(e,t)=>{let n=new Set(e);for(let e of n)t.includes(e)||n.delete(e);return[...n]},m=async(e,t)=>{let n=await Promise.all(e.map(e=>t(e)));return e.filter((e,t)=>n[t])},h=(e,t)=>{let n=[];for(let r of e)n.some(e=>t(r,e))||n.push(r);return n},g=e=>[...new Set(e)],_=async e=>Promise.all(e.map(e=>new Promise((t,n)=>e().then(e=>e?t(e):n(e)).catch(e=>n(e))))).then(()=>!0).catch(e=>{if(!l(e))throw e;return e}),v=e=>e.trim().replaceAll(/([\da-z])([A-Z])/g,`$1-$2`).replaceAll(/([A-Z])([A-Z][\da-z])/g,`$1-$2`).replaceAll(/[\s_]+/g,`-`).toLowerCase(),y=e=>e.replaceAll(/[\s-]+/g,` `).split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),b=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.codePointAt(n)??0;t=Math.trunc(t*31+r)}return t>>>0},x=(...e)=>{let n={};for(let r of e)for(let e in r)t(r[e])&&(n[e]=r[e]);return n},S=(e,t)=>r(e)?e.map(e=>S(e,t)):n(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e)).map(([e,n])=>[e,S(n,t)])):e,C=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)}},w=(e,t)=>{let n=!1;return(...r)=>{n||(e(...r),n=!0,setTimeout(()=>{n=!1},t))}};var T=class{listeners=[];addListener(e){this.listeners.push(e)}notifyAll(e){for(let t of this.listeners)t(e)}clear(){this.listeners.length=0}},E=class{set=new Set;constructor(e=[]){for(let t of e)this.safeAdd(t)}safeAdd(e){return t(e)?(this.set.add(e),!0):!1}has(e){return t(e)?this.set.has(e):!1}delete(e){return t(e)?this.set.delete(e):!1}clear(){this.set.clear()}get size(){return this.set.size}values(){return this.set.values()}toSet(){return structuredClone(this.set)}[Symbol.iterator](){return this.set[Symbol.iterator]()}concatSet(e){for(let t of e)this.safeAdd(t)}};e.Observer=T,e.SafeSet=E,e.arePromiseFnsTruthy=_,e.debounce=C,e.fastHash=b,e.filterAsync=m,e.getErrorMessage=f,e.intersection=p,e.isArray=r,e.isBoolean=l,e.isDate=o,e.isDefined=t,e.isEmpty=d,e.isError=u,e.isMap=i,e.isNumber=s,e.isObject=n,e.isSet=a,e.isString=c,e.merge=x,e.removeNestedField=S,e.throttle=w,e.toCamelCase=y,e.toKebabCase=v,e.uniq=g,e.uniqWith=h})),B=se();function ce(e,t,n,{key:r=``,prefix:i=`EARLY`,parser:a,def:o,isRequired:s=!1,envName:c}={}){let l=new ae(t,n);a&&l.argParser(a),s&&l.makeOptionMandatory(!0);let u=c??(()=>{let n=[];for(let t=e;t&&(0,B.isDefined)(t.name());t=t.parent)t.parent&&n.unshift(t.name());return[i,...n,r||t.split(/[ ,|]/)[1].replace(/^--?/,``)].join(`_`).replaceAll(/[- ]/g,`_`).toUpperCase()})();return l.env(u),(0,B.isDefined)(o)&&l.default(o),e.addOption(l),l}function le(e){return(typeof e==`object`&&!!e||typeof e==`function`)&&typeof e.then==`function`}function ue(e){switch(typeof e){case`string`:case`symbol`:return e.toString();case`function`:return e.name;default:throw Error(`Unexpected ${typeof e} service id type`)}}const de=Symbol.for(`@inversifyjs/common/islazyServiceIdentifier`);var fe=class{[de];#e;constructor(e){this.#e=e,this[de]=!0}static is(e){return typeof e==`object`&&!!e&&!0===e[de]}unwrap(){return this.#e()}};function pe(e,t,n){return Reflect.getOwnMetadata(t,e,n)}function me(e,t,n,r){Reflect.defineMetadata(t,n,e,r)}function he(e,t,n,r,i){let a=r(pe(e,t,i)??n());Reflect.defineMetadata(t,a,e,i)}function ge(e){return Object.getPrototypeOf(e.prototype)?.constructor}const _e=`@inversifyjs/container/bindingId`;function ve(){let e=pe(Object,_e)??0;return e===2**53-1?me(Object,_e,-(2**53-1)):he(Object,_e,()=>e,e=>e+1),e}const ye={Request:`Request`,Singleton:`Singleton`,Transient:`Transient`},be={ConstantValue:`ConstantValue`,DynamicValue:`DynamicValue`,Factory:`Factory`,Instance:`Instance`,Provider:`Provider`,ResolvedValue:`ResolvedValue`,ServiceRedirection:`ServiceRedirection`};function*xe(...e){for(let t of e)yield*t}var Se=class e{#e;#t;#n;constructor(e){this.#e=new Map,this.#t={};for(let t of Reflect.ownKeys(e))this.#t[t]=new Map;this.#n=e}add(e,t){this.#a(e).push(t);for(let n of Reflect.ownKeys(t))this.#o(n,t[n]).push(e)}clone(){let e=this.#r(),t=this.#i(),n=Reflect.ownKeys(this.#n),r=this._buildNewInstance(this.#n);this.#u(this.#e,r.#e,e,t);for(let t of n)this.#l(this.#t[t],r.#t[t],e);return r}get(e,t){return this.#t[e].get(t)}getAllKeys(e){return this.#t[e].keys()}removeByRelation(e,t){let n=this.get(e,t);if(n===void 0)return;let r=new Set(n);for(let n of r){let r=this.#e.get(n);if(r===void 0)throw Error(`Expecting model relation, none found`);for(let i of r)i[e]===t&&this.#d(n,i);this.#e.delete(n)}}_buildNewInstance(t){return new e(t)}_cloneModel(e){return e}_cloneRelation(e){return e}#r(){let e=new Map;for(let t of this.#e.keys()){let n=this._cloneModel(t);e.set(t,n)}return e}#i(){let e=new Map;for(let t of this.#e.values())for(let n of t){let t=this._cloneRelation(n);e.set(n,t)}return e}#a(e){let t=this.#e.get(e);return t===void 0&&(t=[],this.#e.set(e,t)),t}#o(e,t){let n=this.#t[e].get(t);return n===void 0&&(n=[],this.#t[e].set(t,n)),n}#s(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting model to be cloned, none found`);return n}#c(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting relation to be cloned, none found`);return n}#l(e,t,n){for(let[r,i]of e){let e=[];for(let t of i)e.push(this.#s(t,n));t.set(r,e)}}#u(e,t,n,r){for(let[i,a]of e){let e=[];for(let t of a)e.push(this.#c(t,r));t.set(this.#s(i,n),e)}}#d(e,t){for(let n of Reflect.ownKeys(t))this.#f(e,n,t[n])}#f(e,t,n){let r=this.#t[t].get(n);if(r!==void 0){let i=r.indexOf(e);i!==-1&&r.splice(i,1),r.length===0&&this.#t[t].delete(n)}}},Ce;(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ce||={});var we=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ce.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ce.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ce.serviceId,e)}};const Te=`@inversifyjs/core/classMetadataReflectKey`;function Ee(){return{constructorArguments:[],lifecycle:{postConstructMethodNames:new Set,preDestroyMethodNames:new Set},properties:new Map,scope:void 0}}const De=`@inversifyjs/core/pendingClassMetadataCountReflectKey`,Oe=Symbol.for(`@inversifyjs/core/InversifyCoreError`);var ke=class e extends Error{[Oe];kind;constructor(e,t,n){super(t,n),this[Oe]=!0,this.kind=e}static is(e){return typeof e==`object`&&!!e&&!0===e[Oe]}static isErrorOfKind(t,n){return e.is(t)&&t.kind===n}},Ae,je,Me,Ne,Pe;function Fe(e){let t=pe(e,Te)??Ee();if(!function(e){let t=pe(e,De);return t!==void 0&&t!==0}(e))return function(e,t){let n=[];if(t.length<e.length)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}". "${e.name}" constructor requires at least ${e.length.toString()} arguments, found ${t.length.toString()} instead.\nAre you using @inject, @multiInject or @unmanaged decorators in every non optional constructor argument?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`);for(let e=0;e<t.length;++e)t[e]===void 0&&n.push(e);if(n.length>0)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}" at constructor indexes "${n.join(`", "`)}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)}(e,t.constructorArguments),t;(function(e,t){let n=[];for(let r=0;r<t.constructorArguments.length;++r){let i=t.constructorArguments[r];i!==void 0&&i.kind!==je.unknown||n.push(` - Missing or incomplete metadata for type "${e.name}" at constructor argument with index ${r.toString()}.\nEvery constructor parameter must be decorated either with @inject, @multiInject or @unmanaged decorator.`)}for(let[r,i]of t.properties)i.kind===je.unknown&&n.push(` - Missing or incomplete metadata for type "${e.name}" at property "${r.toString()}".\nThis property must be decorated either with @inject or @multiInject decorator.`);throw n.length===0?new ke(Ae.unknown,`Unexpected class metadata for type "${e.name}" with uncompletion traces.\nThis might be caused by one of the following reasons:\n\n1. A third party library is targeting inversify reflection metadata.\n2. A bug is causing the issue. Consider submiting an issue to fix it.`):new ke(Ae.missingInjectionDecorator,`Invalid class metadata at type ${e.name}:\n\n${n.join(`
20
+ Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function h(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function g(){if(a.env.NO_COLOR||a.env.FORCE_COLOR===`0`||a.env.FORCE_COLOR===`false`)return!1;if(a.env.FORCE_COLOR||a.env.CLICOLOR_FORCE!==void 0)return!0}e.Command=m,e.useColor=g}));const{program:ne,createCommand:N,createArgument:P,createOption:F,CommanderError:I,InvalidArgumentError:re,InvalidOptionArgumentError:ie,Command:L,Argument:R,Option:ae,Help:z}=u(s((e=>{let{Argument:t}=A(),{Command:n}=M(),{CommanderError:r,InvalidArgumentError:i}=k(),{Help:a}=ee(),{Option:o}=j();e.program=new n,e.createCommand=e=>new n(e),e.createOption=(e,t)=>new o(e,t),e.createArgument=(e,n)=>new t(e,n),e.Command=n,e.Option=o,e.Argument=t,e.Help=a,e.CommanderError=r,e.InvalidArgumentError=i,e.InvalidOptionArgumentError=i}))(),1).default;var oe=`2.4.0`,se=s((e=>{let t=e=>e!=null,n=e=>typeof e==`object`&&!!e,r=e=>Array.isArray(e),i=e=>e instanceof Map,a=e=>e instanceof Set,o=e=>e instanceof Date,s=e=>typeof e==`number`,c=e=>typeof e==`string`,l=e=>typeof e==`boolean`,u=e=>e instanceof Error,d=e=>t(e)?c(e)||r(e)?e.length===0:i(e)||a(e)?e.size===0:o(e)?!1:n(e)?Object.keys(e).length===0:!1:!0,f=e=>u(e)?e.message:`error is not Instance of Error`,p=(e,t)=>{let n=new Set(e);for(let e of n)t.includes(e)||n.delete(e);return[...n]},m=async(e,t)=>{let n=await Promise.all(e.map(e=>t(e)));return e.filter((e,t)=>n[t])},h=(e,t)=>{let n=[];for(let r of e)n.some(e=>t(r,e))||n.push(r);return n},g=e=>[...new Set(e)],_=async e=>Promise.all(e.map(e=>new Promise((t,n)=>e().then(e=>e?t(e):n(e)).catch(e=>n(e))))).then(()=>!0).catch(e=>{if(!l(e))throw e;return e}),v=e=>e.trim().replaceAll(/([\da-z])([A-Z])/g,`$1-$2`).replaceAll(/([A-Z])([A-Z][\da-z])/g,`$1-$2`).replaceAll(/[\s_]+/g,`-`).toLowerCase(),y=e=>e.replaceAll(/[\s-]+/g,` `).split(` `).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``),b=e=>{let t=0;for(let n=0;n<e.length;n++){let r=e.codePointAt(n)??0;t=Math.trunc(t*31+r)}return t>>>0},x=(...e)=>{let n={};for(let r of e)for(let e in r)t(r[e])&&(n[e]=r[e]);return n},S=(e,t)=>r(e)?e.map(e=>S(e,t)):n(e)?Object.fromEntries(Object.entries(e).filter(([e])=>!t.includes(e)).map(([e,n])=>[e,S(n,t)])):e,C=(e,t)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)}},w=(e,t)=>{let n=!1;return(...r)=>{n||(e(...r),n=!0,setTimeout(()=>{n=!1},t))}};var T=class{listeners=[];addListener(e){this.listeners.push(e)}notifyAll(e){for(let t of this.listeners)t(e)}clear(){this.listeners.length=0}},E=class{set=new Set;constructor(e=[]){for(let t of e)this.safeAdd(t)}safeAdd(e){return t(e)?(this.set.add(e),!0):!1}has(e){return t(e)?this.set.has(e):!1}delete(e){return t(e)?this.set.delete(e):!1}clear(){this.set.clear()}get size(){return this.set.size}values(){return this.set.values()}toSet(){return structuredClone(this.set)}[Symbol.iterator](){return this.set[Symbol.iterator]()}concatSet(e){for(let t of e)this.safeAdd(t)}};e.Observer=T,e.SafeSet=E,e.arePromiseFnsTruthy=_,e.debounce=C,e.fastHash=b,e.filterAsync=m,e.getErrorMessage=f,e.intersection=p,e.isArray=r,e.isBoolean=l,e.isDate=o,e.isDefined=t,e.isEmpty=d,e.isError=u,e.isMap=i,e.isNumber=s,e.isObject=n,e.isSet=a,e.isString=c,e.merge=x,e.removeNestedField=S,e.throttle=w,e.toCamelCase=y,e.toKebabCase=v,e.uniq=g,e.uniqWith=h})),B=se();function ce(e,t,n,{key:r=``,prefix:i=`EARLY`,parser:a,def:o,isRequired:s=!1,envName:c}={}){let l=new ae(t,n);a&&l.argParser(a),s&&l.makeOptionMandatory(!0);let u=c??(()=>{let n=[];for(let t=e;t&&(0,B.isDefined)(t.name());t=t.parent)t.parent&&n.unshift(t.name());return[i,...n,r||t.split(/[ ,|]/)[1].replace(/^--?/,``)].join(`_`).replaceAll(/[- ]/g,`_`).toUpperCase()})();return l.env(u),(0,B.isDefined)(o)&&l.default(o),e.addOption(l),l}function le(e){return(typeof e==`object`&&!!e||typeof e==`function`)&&typeof e.then==`function`}function ue(e){switch(typeof e){case`string`:case`symbol`:return e.toString();case`function`:return e.name;default:throw Error(`Unexpected ${typeof e} service id type`)}}const de=Symbol.for(`@inversifyjs/common/islazyServiceIdentifier`);var fe=class{[de];#e;constructor(e){this.#e=e,this[de]=!0}static is(e){return typeof e==`object`&&!!e&&!0===e[de]}unwrap(){return this.#e()}};function pe(e,t,n){return Reflect.getOwnMetadata(t,e,n)}function me(e,t,n,r){Reflect.defineMetadata(t,n,e,r)}function he(e,t,n,r,i){let a=r(pe(e,t,i)??n());Reflect.defineMetadata(t,a,e,i)}function ge(e){return Object.getPrototypeOf(e.prototype)?.constructor}const _e=`@inversifyjs/container/bindingId`;function ve(){let e=pe(Object,_e)??0;return e===2**53-1?me(Object,_e,-(2**53-1)):he(Object,_e,()=>e,e=>e+1),e}const ye={Request:`Request`,Singleton:`Singleton`,Transient:`Transient`},be={ConstantValue:`ConstantValue`,DynamicValue:`DynamicValue`,Factory:`Factory`,Instance:`Instance`,Provider:`Provider`,ResolvedValue:`ResolvedValue`,ServiceRedirection:`ServiceRedirection`};function*xe(...e){for(let t of e)yield*t}var Se=class e{#e;#t;#n;constructor(e){this.#e=new Map,this.#t={};for(let t of Reflect.ownKeys(e))this.#t[t]=new Map;this.#n=e}add(e,t){this.#a(e).push(t);for(let n of Reflect.ownKeys(t))this.#o(n,t[n]).push(e)}clone(){let e=this.#r(),t=this.#i(),n=Reflect.ownKeys(this.#n),r=this._buildNewInstance(this.#n);this.#u(this.#e,r.#e,e,t);for(let t of n)this.#l(this.#t[t],r.#t[t],e);return r}get(e,t){return this.#t[e].get(t)}getAllKeys(e){return this.#t[e].keys()}removeByRelation(e,t){let n=this.get(e,t);if(n===void 0)return;let r=new Set(n);for(let n of r){let r=this.#e.get(n);if(r===void 0)throw Error(`Expecting model relation, none found`);for(let i of r)i[e]===t&&this.#d(n,i);this.#e.delete(n)}}_buildNewInstance(t){return new e(t)}_cloneModel(e){return e}_cloneRelation(e){return e}#r(){let e=new Map;for(let t of this.#e.keys()){let n=this._cloneModel(t);e.set(t,n)}return e}#i(){let e=new Map;for(let t of this.#e.values())for(let n of t){let t=this._cloneRelation(n);e.set(n,t)}return e}#a(e){let t=this.#e.get(e);return t===void 0&&(t=[],this.#e.set(e,t)),t}#o(e,t){let n=this.#t[e].get(t);return n===void 0&&(n=[],this.#t[e].set(t,n)),n}#s(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting model to be cloned, none found`);return n}#c(e,t){let n=t.get(e);if(n===void 0)throw Error(`Expecting relation to be cloned, none found`);return n}#l(e,t,n){for(let[r,i]of e){let e=[];for(let t of i)e.push(this.#s(t,n));t.set(r,e)}}#u(e,t,n,r){for(let[i,a]of e){let e=[];for(let t of a)e.push(this.#c(t,r));t.set(this.#s(i,n),e)}}#d(e,t){for(let n of Reflect.ownKeys(t))this.#f(e,n,t[n])}#f(e,t,n){let r=this.#t[t].get(n);if(r!==void 0){let i=r.indexOf(e);i!==-1&&r.splice(i,1),r.length===0&&this.#t[t].delete(n)}}},Ce;(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ce||={});var we=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ce.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ce.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ce.serviceId,e)}};const Te=`@inversifyjs/core/classMetadataReflectKey`;function Ee(){return{constructorArguments:[],lifecycle:{postConstructMethodNames:new Set,preDestroyMethodNames:new Set},properties:new Map,scope:void 0}}const De=`@inversifyjs/core/pendingClassMetadataCountReflectKey`,Oe=Symbol.for(`@inversifyjs/core/InversifyCoreError`);var ke=class e extends Error{[Oe];kind;constructor(e,t,n){super(t,n),this[Oe]=!0,this.kind=e}static is(e){return typeof e==`object`&&!!e&&!0===e[Oe]}static isErrorOfKind(t,n){return e.is(t)&&t.kind===n}},Ae,je,Me,Ne,Pe;function Fe(e){let t=pe(e,Te)??Ee();if(!function(e){let t=pe(e,De);return t!==void 0&&t!==0}(e))return function(e,t){let n=[];if(t.length<e.length)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}". "${e.name}" constructor requires at least ${e.length.toString()} arguments, found ${t.length.toString()} instead.\nAre you using @inject, @multiInject or @unmanaged decorators in every non optional constructor argument?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`);for(let e=0;e<t.length;++e)t[e]===void 0&&n.push(e);if(n.length>0)throw new ke(Ae.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}" at constructor indexes "${n.join(`", "`)}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)}(e,t.constructorArguments),t;(function(e,t){let n=[];for(let r=0;r<t.constructorArguments.length;++r){let i=t.constructorArguments[r];i!==void 0&&i.kind!==je.unknown||n.push(` - Missing or incomplete metadata for type "${e.name}" at constructor argument with index ${r.toString()}.\nEvery constructor parameter must be decorated either with @inject, @multiInject or @unmanaged decorator.`)}for(let[r,i]of t.properties)i.kind===je.unknown&&n.push(` - Missing or incomplete metadata for type "${e.name}" at property "${r.toString()}".\nThis property must be decorated either with @inject or @multiInject decorator.`);throw n.length===0?new ke(Ae.unknown,`Unexpected class metadata for type "${e.name}" with uncompletion traces.\nThis might be caused by one of the following reasons:\n\n1. A third party library is targeting inversify reflection metadata.\n2. A bug is causing the issue. Consider submiting an issue to fix it.`):new ke(Ae.missingInjectionDecorator,`Invalid class metadata at type ${e.name}:\n\n${n.join(`
21
21
 
22
22
  `)}`)})(e,t)}function Ie(e,t){let n=Fe(t).scope??e.scope;return{cache:{isRight:!1,value:void 0},id:ve(),implementationType:t,isSatisfiedBy:()=>!0,moduleId:void 0,onActivation:void 0,onDeactivation:void 0,scope:n,serviceIdentifier:t,type:be.Instance}}function Le(e){return e.isRight?{isRight:!0,value:e.value}:e}function Re(e){switch(e.type){case be.ConstantValue:case be.DynamicValue:return function(e){return{cache:Le(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type,value:e.value}}(e);case be.Factory:return function(e){return{cache:Le(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.Instance:return function(e){return{cache:Le(e.cache),id:e.id,implementationType:e.implementationType,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.Provider:return function(e){return{cache:Le(e.cache),id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,provider:e.provider,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.ResolvedValue:return function(e){return{cache:Le(e.cache),factory:e.factory,id:e.id,isSatisfiedBy:e.isSatisfiedBy,metadata:e.metadata,moduleId:e.moduleId,onActivation:e.onActivation,onDeactivation:e.onDeactivation,scope:e.scope,serviceIdentifier:e.serviceIdentifier,type:e.type}}(e);case be.ServiceRedirection:return function(e){return{id:e.id,isSatisfiedBy:e.isSatisfiedBy,moduleId:e.moduleId,serviceIdentifier:e.serviceIdentifier,targetServiceIdentifier:e.targetServiceIdentifier,type:e.type}}(e)}}(function(e){e[e.injectionDecoratorConflict=0]=`injectionDecoratorConflict`,e[e.missingInjectionDecorator=1]=`missingInjectionDecorator`,e[e.planning=2]=`planning`,e[e.resolution=3]=`resolution`,e[e.unknown=4]=`unknown`})(Ae||={}),function(e){e[e.unknown=32]=`unknown`}(je||={}),function(e){e.id=`id`,e.moduleId=`moduleId`,e.serviceId=`serviceId`}(Me||={});var ze=class e extends Se{_buildNewInstance(t){return new e(t)}_cloneModel(e){return Re(e)}},Be=class e{#e;#t;#n;constructor(e,t,n){this.#t=n??new ze({id:{isOptional:!1},moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#n=e,this.#e=t}static build(t,n){return new e(t,n)}clone(){return new e(this.#n,this.#e,this.#t.clone())}get(e){let t=this.getNonParentBindings(e)??this.#n()?.get(e);if(t!==void 0)return t;let n=this.#r(e);return n===void 0?n:[n]}*getChained(e){let t=this.getNonParentBindings(e);t!==void 0&&(yield*t);let n=this.#n();if(n===void 0){if(t===void 0){let t=this.#r(e);t!==void 0&&(yield t)}}else yield*n.getChained(e)}getBoundServices(){let e=new Set(this.#t.getAllKeys(Me.serviceId)),t=this.#n();if(t!==void 0)for(let n of t.getBoundServices())e.add(n);return e}getById(e){return this.#t.get(Me.id,e)??this.#n()?.getById(e)}getByModuleId(e){return this.#t.get(Me.moduleId,e)??this.#n()?.getByModuleId(e)}getNonParentBindings(e){return this.#t.get(Me.serviceId,e)}getNonParentBoundServices(){return this.#t.getAllKeys(Me.serviceId)}removeById(e){this.#t.removeByRelation(Me.id,e)}removeAllByModuleId(e){this.#t.removeByRelation(Me.moduleId,e)}removeAllByServiceId(e){this.#t.removeByRelation(Me.serviceId,e)}set(e){let t={[Me.id]:e.id,[Me.serviceId]:e.serviceIdentifier};e.moduleId!==void 0&&(t[Me.moduleId]=e.moduleId),this.#t.add(e,t)}#r(e){if(this.#e===void 0||typeof e!=`function`)return;let t=Ie(this.#e,e);return this.set(t),t}};(function(e){e.moduleId=`moduleId`,e.serviceId=`serviceId`})(Ne||={});var Ve=class e{#e;#t;constructor(e,t){this.#e=t??new Se({moduleId:{isOptional:!0},serviceId:{isOptional:!1}}),this.#t=e}static build(t){return new e(t)}add(e,t){this.#e.add(e,t)}clone(){return new e(this.#t,this.#e.clone())}get(e){let t=[],n=this.#e.get(Ne.serviceId,e);n!==void 0&&t.push(n);let r=this.#t()?.get(e);if(r!==void 0&&t.push(r),t.length!==0)return xe(...t)}removeAllByModuleId(e){this.#e.removeByRelation(Ne.moduleId,e)}removeAllByServiceId(e){this.#e.removeByRelation(Ne.serviceId,e)}};function He(){return 0}function V(e){return t=>{t!==void 0&&t.kind===je.unknown&&he(e,De,He,e=>e-1)}}function Ue(e,t){return(...n)=>r=>{if(r===void 0)return e(...n);if(r.kind===Pe.unmanaged)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found`);return t(r,...n)}}function We(e){if(e.kind!==je.unknown&&!0!==e.isFromTypescriptParamType)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Multiple @inject, @multiInject or @unmanaged decorators found`)}(function(e){e[e.multipleInjection=0]=`multipleInjection`,e[e.singleInjection=1]=`singleInjection`,e[e.unmanaged=2]=`unmanaged`})(Pe||={});const Ge=Ue(function(e,t,n){return e===Pe.multipleInjection?{chained:n?.chained??!1,kind:e,name:void 0,optional:!1,tags:new Map,value:t}:{kind:e,name:void 0,optional:!1,tags:new Map,value:t}},function(e,t,n,r){return We(e),t===Pe.multipleInjection?{...e,chained:r?.chained??!1,kind:t,value:n}:{...e,kind:t,value:n}});function Ke(e,t){return n=>{let r=n.properties.get(t);return n.properties.set(t,e(r)),n}}var qe;function Je(e,t,n,r){if(ke.isErrorOfKind(r,Ae.injectionDecoratorConflict)){let i=function(e,t,n){if(n===void 0){if(t===void 0)throw new ke(Ae.unknown,`Unexpected undefined property and index values`);return{kind:qe.property,property:t,targetClass:e.constructor}}return typeof n==`number`?{index:n,kind:qe.parameter,targetClass:e}:{kind:qe.method,method:t,targetClass:e}}(e,t,n);throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection error.\n\nCause:\n\n${r.message}\n\nDetails\n\n${function(e){switch(e.kind){case qe.method:return`[class: "${e.targetClass.name}", method: "${e.method.toString()}"]`;case qe.parameter:return`[class: "${e.targetClass.name}", index: "${e.index.toString()}"]`;case qe.property:return`[class: "${e.targetClass.name}", property: "${e.property.toString()}"]`}}(i)}`,{cause:r})}throw r}function Ye(e,t){return(n,r,i)=>{try{i===void 0?function(e,t){let n=Xe(e,t);return(e,t)=>{he(e.constructor,Te,Ee,Ke(n(e),t))}}(e,t)(n,r):typeof i==`number`?function(e,t){let n=Xe(e,t);return(e,t,r)=>{if(!function(e,t){return typeof e==`function`&&t===void 0}(e,t))throw new ke(Ae.injectionDecoratorConflict,`Found an @inject decorator in a non constructor parameter.\nFound @inject decorator at method "${t?.toString()??``}" at class "${e.constructor.name}"`);he(e,Te,Ee,function(e,t){return n=>{let r=n.constructorArguments[t];return n.constructorArguments[t]=e(r),n}}(n(e),r))}}(e,t)(n,r,i):function(e,t){let n=Xe(e,t);return(e,t,r)=>{if(!function(e){return e.set!==void 0}(r))throw new ke(Ae.injectionDecoratorConflict,`Found an @inject decorator in a non setter property method.\nFound @inject decorator at method "${t.toString()}" at class "${e.constructor.name}"`);he(e.constructor,Te,Ee,Ke(n(e),t))}}(e,t)(n,r,i)}catch(e){Je(n,r,i,e)}}}function Xe(e,t){return n=>{let r=t(n);return t=>(r(t),e(t))}}function Ze(e){return Ye(Ge(Pe.singleInjection,e),V)}(function(e){e[e.method=0]=`method`,e[e.parameter=1]=`parameter`,e[e.property=2]=`property`})(qe||={});const Qe=`@inversifyjs/core/classIsInjectableFlagReflectKey`,H=[Array,BigInt,Boolean,Function,Number,Object,String];function $e(e){let t=pe(e,`design:paramtypes`);t!==void 0&&he(e,Te,Ee,function(e){return t=>(e.forEach((e,n)=>{var r;t.constructorArguments[n]!==void 0||(r=e,H.includes(r))||(t.constructorArguments[n]=function(e){return{isFromTypescriptParamType:!0,kind:Pe.singleInjection,name:void 0,optional:!1,tags:new Map,value:e}}(e))}),t)}(t))}function et(e){return t=>{(function(e){if(pe(e,Qe)!==void 0)throw new ke(Ae.injectionDecoratorConflict,`Cannot apply @injectable decorator multiple times at class "${e.name}"`);me(e,Qe,!0)})(t),$e(t),e!==void 0&&he(t,Te,Ee,t=>({...t,scope:e}))}}function tt(e,t,n){let r;return e.extendConstructorArguments??!0?(r=[...t.constructorArguments],n.constructorArguments.map((e,t)=>{r[t]=e})):r=n.constructorArguments,r}function nt(e,t,n){return e?new Set([...t,...n]):n}function rt(e,t,n){let r=e.lifecycle?.extendPostConstructMethods??!0,i=nt(e.lifecycle?.extendPreDestroyMethods??!0,t.lifecycle.preDestroyMethodNames,n.lifecycle.preDestroyMethodNames);return{postConstructMethodNames:nt(r,t.lifecycle.postConstructMethodNames,n.lifecycle.postConstructMethodNames),preDestroyMethodNames:i}}function it(e,t,n){let r;return r=e.extendProperties??!0?new Map(xe(t.properties,n.properties)):n.properties,r}function at(e){return t=>{he(t,Te,Ee,function(e,t){return n=>({constructorArguments:tt(e,t,n),lifecycle:rt(e,t,n),properties:it(e,t,n),scope:n.scope})}(e,Fe(e.type)))}}function ot(e){return t=>{let n=ge(t);if(n===void 0)throw new ke(Ae.injectionDecoratorConflict,`Expected base type for type "${t.name}", none found.`);at({...e,type:n})(t)}}function st(e){return t=>{let n=[],r=ge(t);for(;r!==void 0&&r!==Object;){let e=r;n.push(e),r=ge(e)}n.reverse();for(let r of n)at({...e,type:r})(t)}}function U(e){return t=>{t===void 0&&he(e,De,He,e=>e+1)}}function ct(e){return t=>{let n=t??{kind:je.unknown,name:void 0,optional:!1,tags:new Map};if(n.kind===Pe.unmanaged)throw new ke(Ae.injectionDecoratorConflict,`Unexpected injection found. Found @unmanaged injection with additional @named, @optional, @tagged or @targetName injections`);return e(n)}}function lt(e){if(e.optional)throw new ke(Ae.injectionDecoratorConflict,`Unexpected duplicated optional decorator`);return e.optional=!0,e}function ut(){return Ye(ct(lt),U)}var dt;function ft(e){return e instanceof Error?e instanceof RangeError&&/stack space|call stack|too much recursion/i.test(e.message)||e.name===`InternalError`&&/too much recursion/.test(e.message):!1}function pt(e,t){if(ft(t)){let n=function(e){let t=[...e];return t.length===0?`(No dependency trace)`:t.map(ue).join(` -> `)}(function(e){let t=new Set;for(let n of e.servicesBranch){if(t.has(n))return[...t,n];t.add(n)}return[...t]}(e));throw new ke(Ae.planning,`Circular dependency found: ${n}`,{cause:t})}throw t}(function(e){e[e.multipleInjection=0]=`multipleInjection`,e[e.singleInjection=1]=`singleInjection`})(dt||={});const mt=Symbol.for(`@inversifyjs/core/LazyPlanServiceNode`);var ht=class{[mt];_serviceIdentifier;_serviceNode;constructor(e,t){this[mt]=!0,this._serviceNode=e,this._serviceIdentifier=t}get bindings(){return this._getNode().bindings}get isContextFree(){return this._getNode().isContextFree}get serviceIdentifier(){return this._serviceIdentifier}set bindings(e){this._getNode().bindings=e}set isContextFree(e){this._getNode().isContextFree=e}static is(e){return typeof e==`object`&&!!e&&!0===e[mt]}invalidate(){this._serviceNode=void 0}isExpanded(){return this._serviceNode!==void 0}_getNode(){return this._serviceNode===void 0&&(this._serviceNode=this._buildPlanServiceNode()),this._serviceNode}},gt=class e{#e;constructor(e){this.#e=e}get name(){return this.#e.elem.name}get serviceIdentifier(){return this.#e.elem.serviceIdentifier}get tags(){return this.#e.elem.tags}getAncestor(){if(this.#e.elem.getAncestorsCalled=!0,this.#e.previous!==void 0)return new e(this.#e.previous)}};function _t(e,t,n){let r=n?.customServiceIdentifier??t.serviceIdentifier,i=(!0===n?.chained?[...e.operations.getBindingsChained(r)]:[...e.operations.getBindings(r)??[]]).filter(e=>e.isSatisfiedBy(t));if(i.length===0&&e.autobindOptions!==void 0&&typeof r==`function`){let n=Ie(e.autobindOptions,r);e.operations.setBinding(n),n.isSatisfiedBy(t)&&i.push(n)}return i}var vt=class e{last;constructor(e){this.last=e}concat(t){return new e({elem:t,previous:this.last})}[Symbol.iterator](){let e=this.last;return{next:()=>{if(e===void 0)return{done:!0,value:void 0};let t=e.elem;return e=e.previous,{done:!1,value:t}}}}};function yt(e){let t=new Map;return e.rootConstraints.tag!==void 0&&t.set(e.rootConstraints.tag.key,e.rootConstraints.tag.value),new vt({elem:{getAncestorsCalled:!1,name:e.rootConstraints.name,serviceIdentifier:e.rootConstraints.serviceIdentifier,tags:t},previous:void 0})}function bt(e){return e.redirections!==void 0}function xt(e,t,n,r){let i=n.elem.serviceIdentifier,a=n.previous?.elem.serviceIdentifier;Array.isArray(e)?function(e,t,n,r,i,a){if(e.length!==0){let t=`Ambiguous bindings found for service: "${ue(a[a.length-1]??n)}".${Tt(a)}\n\nRegistered bindings:\n\n${e.map(e=>function(e){switch(e.type){case be.Instance:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", scope: "${e.scope}", implementationType: "${e.implementationType.name}" ]`;case be.ServiceRedirection:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", redirection: "${ue(e.targetServiceIdentifier)}" ]`;default:return`[ type: "${e.type}", serviceIdentifier: "${ue(e.serviceIdentifier)}", scope: "${e.scope}" ]`}}(e.binding)).join(`
23
23
  `)}\n\nTrying to resolve bindings for "${Ct(n,r)}".${wt(i)}`;throw new ke(Ae.planning,t)}t||St(n,r,i,a)}(e,t,i,a,n.elem,r):function(e,t,n,r,i,a){e!==void 0||t||St(n,r,i,a)}(e,t,i,a,n.elem,r)}function St(e,t,n,r){let i=`No bindings found for service: "${ue(r[r.length-1]??e)}".\n\nTrying to resolve bindings for "${Ct(e,t)}".${Tt(r)}${wt(n)}`;throw new ke(Ae.planning,i)}function Ct(e,t){return t===void 0?`${ue(e)} (Root service)`:ue(t)}function wt(e){let t=e.tags.size===0?``:`\n- tags:\n - ${[...e.tags.keys()].map(e=>e.toString()).join(`
@@ -32002,7 +32002,7 @@ https://www.w3ctech.com/topic/2226`));let i=t(...r);return i.postcssPlugin=e,i.p
32002
32002
  `);let t=new x(`!xml`),n=t,r=``,i=``,a=new S(this.options.processEntities);for(let o=0;o<e.length;o++)if(e[o]===`<`)if(e[o+1]===`/`){let t=L(e,`>`,o,`Closing Tag is not closed.`),a=e.substring(o+2,t).trim();if(this.options.removeNSPrefix){let e=a.indexOf(`:`);e!==-1&&(a=a.substr(e+1))}this.options.transformTagName&&(a=this.options.transformTagName(a)),n&&(r=this.saveTextToParentTag(r,n,i));let s=i.substring(i.lastIndexOf(`.`)+1);if(a&&this.options.unpairedTags.indexOf(a)!==-1)throw Error(`Unpaired tag can not be used as closing tag: </${a}>`);let c=0;s&&this.options.unpairedTags.indexOf(s)!==-1?(c=i.lastIndexOf(`.`,i.lastIndexOf(`.`)-1),this.tagsNodeStack.pop()):c=i.lastIndexOf(`.`),i=i.substring(0,c),n=this.tagsNodeStack.pop(),r=``,o=t}else if(e[o+1]===`?`){let t=R(e,o,!1,`?>`);if(!t)throw Error(`Pi Tag is not closed.`);if(r=this.saveTextToParentTag(r,n,i),!(this.options.ignoreDeclaration&&t.tagName===`?xml`||this.options.ignorePiTags)){let e=new x(t.tagName);e.add(this.options.textNodeName,``),t.tagName!==t.tagExp&&t.attrExpPresent&&(e[`:@`]=this.buildAttributesMap(t.tagExp,i,t.tagName)),this.addChild(n,e,i,o)}o=t.closeIndex+1}else if(e.substr(o+1,3)===`!--`){let t=L(e,`-->`,o+4,`Comment is not closed.`);if(this.options.commentPropName){let a=e.substring(o+4,t-2);r=this.saveTextToParentTag(r,n,i),n.add(this.options.commentPropName,[{[this.options.textNodeName]:a}])}o=t}else if(e.substr(o+1,2)===`!D`){let t=a.readDocType(e,o);this.docTypeEntities=t.entities,o=t.i}else if(e.substr(o+1,2)===`![`){let t=L(e,`]]>`,o,`CDATA is not closed.`)-2,a=e.substring(o+9,t);r=this.saveTextToParentTag(r,n,i);let s=this.parseTextData(a,n.tagname,i,!0,!1,!0,!0);s??=``,this.options.cdataPropName?n.add(this.options.cdataPropName,[{[this.options.textNodeName]:a}]):n.add(this.options.textNodeName,s),o=t+2}else{let a=R(e,o,this.options.removeNSPrefix),s=a.tagName,c=a.rawTagName,l=a.tagExp,u=a.attrExpPresent,d=a.closeIndex;this.options.transformTagName&&(s=this.options.transformTagName(s)),n&&r&&n.tagname!==`!xml`&&(r=this.saveTextToParentTag(r,n,i,!1));let f=n;f&&this.options.unpairedTags.indexOf(f.tagname)!==-1&&(n=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf(`.`))),s!==t.tagname&&(i+=i?`.`+s:s);let p=o;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,i,s)){let t=``;if(l.length>0&&l.lastIndexOf(`/`)===l.length-1)s[s.length-1]===`/`?(s=s.substr(0,s.length-1),i=i.substr(0,i.length-1),l=s):l=l.substr(0,l.length-1),o=a.closeIndex;else if(this.options.unpairedTags.indexOf(s)!==-1)o=a.closeIndex;else{let n=this.readStopNodeData(e,c,d+1);if(!n)throw Error(`Unexpected end of ${c}`);o=n.i,t=n.tagContent}let r=new x(s);s!==l&&u&&(r[`:@`]=this.buildAttributesMap(l,i,s)),t&&=this.parseTextData(t,s,i,!0,u,!0,!0),i=i.substr(0,i.lastIndexOf(`.`)),r.add(this.options.textNodeName,t),this.addChild(n,r,i,p)}else{if(l.length>0&&l.lastIndexOf(`/`)===l.length-1){s[s.length-1]===`/`?(s=s.substr(0,s.length-1),i=i.substr(0,i.length-1),l=s):l=l.substr(0,l.length-1),this.options.transformTagName&&(s=this.options.transformTagName(s));let e=new x(s);s!==l&&u&&(e[`:@`]=this.buildAttributesMap(l,i,s)),this.addChild(n,e,i,p),i=i.substr(0,i.lastIndexOf(`.`))}else{let e=new x(s);this.tagsNodeStack.push(n),s!==l&&u&&(e[`:@`]=this.buildAttributesMap(l,i,s)),this.addChild(n,e,i,p),n=e}r=``,o=d}}else r+=e[o];return t.child};function F(e,t,n,r){this.options.captureMetaData||(r=void 0);let i=this.options.updateTag(t.tagname,n,t[`:@`]);!1===i||(typeof i==`string`&&(t.tagname=i),e.addChild(t,r))}let I=function(e){if(this.options.processEntities){for(let t in this.docTypeEntities){let n=this.docTypeEntities[t];e=e.replace(n.regx,n.val)}for(let t in this.lastEntities){let n=this.lastEntities[t];e=e.replace(n.regex,n.val)}if(this.options.htmlEntities)for(let t in this.htmlEntities){let n=this.htmlEntities[t];e=e.replace(n.regex,n.val)}e=e.replace(this.ampEntity.regex,this.ampEntity.val)}return e};function re(e,t,n,r){return e&&=(r===void 0&&(r=t.child.length===0),(e=this.parseTextData(e,t.tagname,n,!1,!!t[`:@`]&&Object.keys(t[`:@`]).length!==0,r))!==void 0&&e!==``&&t.add(this.options.textNodeName,e),``),e}function ie(e,t,n,r){return!(!t||!t.has(r))||!(!e||!e.has(n))}function L(e,t,n,r){let i=e.indexOf(t,n);if(i===-1)throw Error(r);return i+t.length-1}function R(e,t,n,r=`>`){let i=function(e,t,n=`>`){let r,i=``;for(let a=t;a<e.length;a++){let t=e[a];if(r)t===r&&(r=``);else if(t===`"`||t===`'`)r=t;else if(t===n[0]){if(!n[1]||e[a+1]===n[1])return{data:i,index:a}}else t===` `&&(t=` `);i+=t}}(e,t+1,r);if(!i)return;let a=i.data,o=i.index,s=a.search(/\s/),c=a,l=!0;s!==-1&&(c=a.substring(0,s),a=a.substring(s+1).trimStart());let u=c;if(n){let e=c.indexOf(`:`);e!==-1&&(c=c.substr(e+1),l=c!==i.data.substr(e+1))}return{tagName:c,tagExp:a,closeIndex:o,attrExpPresent:l,rawTagName:u}}function ae(e,t,n){let r=n,i=1;for(;n<e.length;n++)if(e[n]===`<`)if(e[n+1]===`/`){let a=L(e,`>`,n,`${t} is not closed`);if(e.substring(n+2,a).trim()===t&&(i--,i===0))return{tagContent:e.substring(r,n),i:a};n=a}else if(e[n+1]===`?`)n=L(e,`?>`,n+1,`StopNode is not closed.`);else if(e.substr(n+1,3)===`!--`)n=L(e,`-->`,n+3,`StopNode is not closed.`);else if(e.substr(n+1,2)===`![`)n=L(e,`]]>`,n,`StopNode is not closed.`)-2;else{let r=R(e,n,`>`);r&&((r&&r.tagName)===t&&r.tagExp[r.tagExp.length-1]!==`/`&&i++,n=r.closeIndex)}}function z(e,t,n){if(t&&typeof e==`string`){let t=e.trim();return t===`true`||t!==`false`&&function(e,t={}){if(t=Object.assign({},O,t),!e||typeof e!=`string`)return e;let n=e.trim();if(t.skipLike!==void 0&&t.skipLike.test(n))return e;if(e===`0`)return 0;if(t.hex&&E.test(n))return function(e){if(parseInt)return parseInt(e,16);if(Number.parseInt)return Number.parseInt(e,16);if(window&&window.parseInt)return window.parseInt(e,16);throw Error(`parseInt, Number.parseInt, window.parseInt are not supported`)}(n);if(n.search(/.+[eE].+/)!==-1)return function(e,t,n){if(!n.eNotation)return e;let r=t.match(k);if(r){let i=r[1]||``,a=r[3].indexOf(`e`)===-1?`E`:`e`,o=r[2],s=i?e[o.length+1]===a:e[o.length]===a;return o.length>1&&s?e:o.length!==1||!r[3].startsWith(`.${a}`)&&r[3][0]!==a?n.leadingZeros&&!s?(t=(r[1]||``)+r[3],Number(t)):e:Number(t)}return e}(e,n,t);{let i=D.exec(n);if(i){let a=i[1]||``,o=i[2],s=((r=i[3])&&r.indexOf(`.`)!==-1&&((r=r.replace(/0+$/,``))===`.`?r=`0`:r[0]===`.`?r=`0`+r:r[r.length-1]===`.`&&(r=r.substring(0,r.length-1))),r),c=a?e[o.length+1]===`.`:e[o.length]===`.`;if(!t.leadingZeros&&(o.length>1||o.length===1&&!c))return e;{let r=Number(n),i=String(r);if(r===0||r===-0)return r;if(i.search(/[eE]/)!==-1)return t.eNotation?r:e;if(n.indexOf(`.`)!==-1)return i===`0`||i===s||i===`${a}${s}`?r:e;let c=o?s:n;return o?c===i||a+c===i?r:e:c===i||c===a+i?r:e}}return e}var r}(e,n)}return e===void 0?``:e}let oe=x.getMetaDataSymbol();function se(e,t){return B(e,t)}function B(e,t,n){let r,i={};for(let a=0;a<e.length;a++){let o=e[a],s=ce(o),c=``;if(c=n===void 0?s:n+`.`+s,s===t.textNodeName)r===void 0?r=o[s]:r+=``+o[s];else{if(s===void 0)continue;if(o[s]){let e=B(o[s],t,c),n=ue(e,t);o[oe]!==void 0&&(e[oe]=o[oe]),o[`:@`]?le(e,o[`:@`],c,t):Object.keys(e).length!==1||e[t.textNodeName]===void 0||t.alwaysCreateTextNode?Object.keys(e).length===0&&(t.alwaysCreateTextNode?e[t.textNodeName]=``:e=``):e=e[t.textNodeName],i[s]!==void 0&&i.hasOwnProperty(s)?(Array.isArray(i[s])||(i[s]=[i[s]]),i[s].push(e)):t.isArray(s,c,n)?i[s]=[e]:i[s]=e}}}return typeof r==`string`?r.length>0&&(i[t.textNodeName]=r):r!==void 0&&(i[t.textNodeName]=r),i}function ce(e){let t=Object.keys(e);for(let e=0;e<t.length;e++){let n=t[e];if(n!==`:@`)return n}}function le(e,t,n,r){if(t){let i=Object.keys(t),a=i.length;for(let o=0;o<a;o++){let a=i[o];r.isArray(a,n+`.`+a,!0,!0)?e[a]=[t[a]]:e[a]=t[a]}}}function ue(e,t){let{textNodeName:n}=t,r=Object.keys(e).length;return r===0||!(r!==1||!e[n]&&typeof e[n]!=`boolean`&&e[n]!==0)}class de{constructor(e){this.externalEntities={},this.options=function(e){return Object.assign({},y,e)}(e)}parse(e,t){if(typeof e!=`string`&&e.toString)e=e.toString();else if(typeof e!=`string`)throw Error(`XML data is accepted in String or Bytes[] form.`);if(t){!0===t&&(t={});let n=s(e,t);if(!0!==n)throw Error(`${n.err.msg}:${n.err.line}:${n.err.col}`)}let n=new ee(this.options);n.addExternalEntities(this.externalEntities);let r=n.parseXml(e);return this.options.preserveOrder||r===void 0?r:se(r,this.options)}addEntity(e,t){if(t.indexOf(`&`)!==-1)throw Error(`Entity value can't have '&'`);if(e.indexOf(`&`)!==-1||e.indexOf(`;`)!==-1)throw Error(`An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'`);if(t===`&`)throw Error(`An entity with value '&' is not permitted`);this.externalEntities[e]=t}static getMetaDataSymbol(){return x.getMetaDataSymbol()}}function fe(e,t){let n=``;return t.format&&t.indentBy.length>0&&(n=`
32003
32003
  `),pe(e,t,``,n)}function pe(e,t,n,r){let i=``,a=!1;for(let o=0;o<e.length;o++){let s=e[o],c=me(s);if(c===void 0)continue;let l=``;if(l=n.length===0?c:`${n}.${c}`,c===t.textNodeName){let e=s[c];ge(l,t)||(e=t.tagValueProcessor(c,e),e=_e(e,t)),a&&(i+=r),i+=e,a=!1;continue}if(c===t.cdataPropName){a&&(i+=r),i+=`<![CDATA[${s[c][0][t.textNodeName]}]]>`,a=!1;continue}if(c===t.commentPropName){i+=r+`\x3c!--${s[c][0][t.textNodeName]}--\x3e`,a=!0;continue}if(c[0]===`?`){let e=he(s[`:@`],t),n=c===`?xml`?``:r,o=s[c][0][t.textNodeName];o=o.length===0?``:` `+o,i+=n+`<${c}${o}${e}?>`,a=!0;continue}let u=r;u!==``&&(u+=t.indentBy);let d=r+`<${c}${he(s[`:@`],t)}`,f=pe(s[c],t,l,u);t.unpairedTags.indexOf(c)===-1?f&&f.length!==0||!t.suppressEmptyNode?f&&f.endsWith(`>`)?i+=d+`>${f}${r}</${c}>`:(i+=d+`>`,f&&r!==``&&(f.includes(`/>`)||f.includes(`</`))?i+=r+t.indentBy+f+r:i+=f,i+=`</${c}>`):i+=d+`/>`:t.suppressUnpairedNode?i+=d+`>`:i+=d+`/>`,a=!0}return i}function me(e){let t=Object.keys(e);for(let n=0;n<t.length;n++){let r=t[n];if(e.hasOwnProperty(r)&&r!==`:@`)return r}}function he(e,t){let n=``;if(e&&!t.ignoreAttributes)for(let r in e){if(!e.hasOwnProperty(r))continue;let i=t.attributeValueProcessor(r,e[r]);i=_e(i,t),!0===i&&t.suppressBooleanAttributes?n+=` ${r.substr(t.attributeNamePrefix.length)}`:n+=` ${r.substr(t.attributeNamePrefix.length)}="${i}"`}return n}function ge(e,t){let n=(e=e.substr(0,e.length-t.textNodeName.length-1)).substr(e.lastIndexOf(`.`)+1);for(let r in t.stopNodes)if(t.stopNodes[r]===e||t.stopNodes[r]===`*.`+n)return!0;return!1}function _e(e,t){if(e&&e.length>0&&t.processEntities)for(let n=0;n<t.entities.length;n++){let r=t.entities[n];e=e.replace(r.regex,r.val)}return e}let ve={attributeNamePrefix:`@_`,attributesGroupName:!1,textNodeName:`#text`,ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:` `,suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:RegExp(`&`,`g`),val:`&amp;`},{regex:RegExp(`>`,`g`),val:`&gt;`},{regex:RegExp(`<`,`g`),val:`&lt;`},{regex:RegExp(`'`,`g`),val:`&apos;`},{regex:RegExp(`"`,`g`),val:`&quot;`}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ye(e){this.options=Object.assign({},ve,e),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=A(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Se),this.processTextOrObjNode=be,this.options.format?(this.indentate=xe,this.tagEndChar=`>
32004
32004
  `,this.newLine=`
32005
- `):(this.indentate=function(){return``},this.tagEndChar=`>`,this.newLine=``)}function be(e,t,n,r){let i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}function xe(e){return this.options.indentBy.repeat(e)}function Se(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}ye.prototype.build=function(e){return this.options.preserveOrder?fe(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},ye.prototype.j2x=function(e,t,n){let r=``,i=``,a=n.join(`.`);for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(e[o]===void 0)this.isAttribute(o)&&(i+=``);else if(e[o]===null)this.isAttribute(o)||o===this.options.cdataPropName?i+=``:o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(e[o]instanceof Date)i+=this.buildTextValNode(e[o],o,``,t);else if(typeof e[o]!=`object`){let n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,a))r+=this.buildAttrPairStr(n,``+e[o]);else if(!n)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,``+e[o]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[o],o,``,t)}else if(Array.isArray(e[o])){let r=e[o].length,a=``,s=``;for(let c=0;c<r;c++){let r=e[o][c];if(r!==void 0)if(r===null)o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(typeof r==`object`)if(this.options.oneListGroup){let e=this.j2x(r,t+1,n.concat(o));a+=e.val,this.options.attributesGroupName&&r.hasOwnProperty(this.options.attributesGroupName)&&(s+=e.attrStr)}else a+=this.processTextOrObjNode(r,o,t,n);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,r);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(r,o,``,t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,s,t)),i+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let t=Object.keys(e[o]),n=t.length;for(let i=0;i<n;i++)r+=this.buildAttrPairStr(t[i],``+e[o][t[i]])}else i+=this.processTextOrObjNode(e[o],o,t,n);return{attrStr:r,val:i}},ye.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,``+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t===`true`?` `+e:` `+e+`="`+t+`"`},ye.prototype.buildObjectNode=function(e,t,n,r){if(e===``)return t[0]===`?`?this.indentate(r)+`<`+t+n+`?`+this.tagEndChar:this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar;{let i=`</`+t+this.tagEndChar,a=``;return t[0]===`?`&&(a=`?`,i=``),!n&&n!==``||e.indexOf(`<`)!==-1?!1!==this.options.commentPropName&&t===this.options.commentPropName&&a.length===0?this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(r)+`<`+t+n+a+this.tagEndChar+e+this.indentate(r)+i:this.indentate(r)+`<`+t+n+a+`>`+e+i}},ye.prototype.closeTag=function(e){let t=``;return this.options.unpairedTags.indexOf(e)===-1?t=this.options.suppressEmptyNode?`/`:`></${e}`:this.options.suppressUnpairedNode||(t=`/`),t},ye.prototype.buildTextValNode=function(e,t,n,r){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine;if(t[0]===`?`)return this.indentate(r)+`<`+t+n+`?`+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===``?this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+`<`+t+n+`>`+i+`</`+t+this.tagEndChar}},ye.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){let n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};let Ce={validate:s};t.exports=n})()})),cW=s((e=>{var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));let u=l(Oi()),f=l(ki()),p=l(require(`node:fs/promises`)),m=l(require(`node:async_hooks`)),h=l(se()),g=l(Bi()),_=l(Rc()),v=l((Ol(),d(ll))),y=l(require(`node:crypto`)),b=l(iR()),x=l(pM()),S=l(fz()),C=l((Dj(),d(Ej))),w=l(require(`node:fs`)),T=l(Uz()),E=l(pV()),D=l(require(`node:child_process`)),O=l(require(`node:util`)),k=l(require(`@prisma/internals`)),A=l(lV()),ee=l(require(`node:zlib`)),j=l(cH()),te=l(uH()),M=l(mH()),ne=l(Eee()),N=l(require(`node:os`)),P=l(require(`node:events`)),F=l(gU()),I=l(tW()),re=l(Fee()),ie=l(oW()),L=l(sW()),R=l(_U()),ae=l(require(`node:process`));l(require(`node:readline`)),l(require(`node:tty`));let z=l(require(`node:path`)),oe=l(require(`@anthropic-ai/claude-agent-sdk`)),B={DELETE:`delete`,COMMENT_OUT:`comment out`,KEEP:`keep`,SKIP:`skip`},ce={GREEN:`Green`,GREY:`Grey`,RED:`Red`,NA:`NA`},le={GREEN:`Green`,GREY:`Grey`,RUNTIME_ERROR:`RuntimeError`},ue=function(e){return e.IDE=`IDE`,e.CLI=`CLI`,e}({}),de=function(e){return e.SIBLING_FOLDER=`siblingFolder`,e.ROOT_FOLDER=`rootFolder`,e}({}),fe=function(e){return e.JEST=`jest`,e.MOCHA=`mocha`,e.VITEST=`vitest`,e.PYTEST=`pytest`,e}({}),pe=function(e){return e.SPEC=`spec`,e.TEST=`test`,e}({}),me=function(e){return e.CAMEL_CASE=`camelCase`,e.KEBAB_CASE=`kebabCase`,e}({}),he=function(e){return e.NONE=`none`,e.CATEGORIES=`categories`,e}({}),ge=function(e){return e.NEW_CODE_FILE=`newCodeFile`,e.OVERRIDE_CODE_FILE=`overrideCodeFile`,e}({}),_e=function(e){return e.ON=`on`,e.OFF=`off`,e}({}),ve={DEFAULT:0,MIN:0,MAX:100},ye={DEFAULT:5,MIN:1,MAX:50};u.z.object({rootPath:u.z.string().default(process.cwd()),testStructure:u.z.enum(de).optional(),testFramework:u.z.enum(fe).optional(),testSuffix:u.z.enum(pe).optional(),testFileName:u.z.enum(me).optional(),calculateCoverage:u.z.enum(_e).optional(),coverageThreshold:u.z.number().min(ve.MIN).max(ve.MAX).default(ve.DEFAULT),requestSource:u.z.enum(ue).optional(),concurrency:u.z.number().min(ye.MIN).max(ye.MAX).default(ye.DEFAULT),backendURL:u.z.string().optional(),secretToken:u.z.string().optional(),modelName:u.z.string().optional(),context:u.z.object({git:u.z.object({ref_name:u.z.string(),repository:u.z.string(),owner:u.z.string(),sha:u.z.string(),workflowRunId:u.z.string(),remoteUrl:u.z.string(),topLevel:u.z.string()}).partial().optional()}).optional(),testCommand:u.z.string().optional(),coverageCommand:u.z.string().optional(),lintCommand:u.z.string().optional(),prettierCommand:u.z.string().optional(),disableLintRules:u.z.boolean().optional(),ignoreAsAnyLintErrors:u.z.boolean().optional(),includeEarlyTests:u.z.boolean().optional(),greyTestBehaviour:u.z.enum(B).optional(),redTestBehaviour:u.z.enum(B).optional(),keepErrorTests:u.z.boolean().optional(),keepFailedTests:u.z.boolean().optional(),conditionalKeep:u.z.boolean().optional(),continueOnTestErrors:u.z.boolean().optional(),perFunctionTimeout:u.z.number().positive().optional(),dynamicPromptIterations:u.z.number().min(0).max(10).optional(),removeComments:u.z.boolean().optional(),experimentalAgentSdk:u.z.boolean().optional(),agentSdkModel:u.z.string().optional(),agentSdkBudget:u.z.number().positive().optional(),debug:u.z.boolean().optional(),verbose:u.z.boolean().optional(),progressLogger:u.z.custom().optional()});var be=`@earlyai/ts-agent`,xe=`0.74.0`;let Se={VSCODE:`vscode`,GITHUB_ACTION:`github-action`,UNKNOWN:`unknown`},Ce=`$early_filename`,we=`$early_coverage_dir`,Te=`npx jest ${Ce} --no-coverage --silent --json --forceExit --maxWorkers=1`,Ee=`npx --no eslint ${Ce}`,De=`npx --no prettier ${Ce} --write`,Oe={rootPath:process.cwd(),isSiblingFolderStructured:!0,gitURL:`https://github.com/your-owner/your-repo`,testFramework:fe.JEST,greyTestBehaviour:B.DELETE,redTestBehaviour:B.DELETE,keepErrorTests:!1,keepFailedTests:!1,conditionalKeep:!1,continueOnTestErrors:!0,generatedTestStructure:he.CATEGORIES,isRootFolderStructured:!1,clientSource:Se.GITHUB_ACTION,backendURL:`https://api.startearly.ai`,requestSource:ue.CLI,userPrompt:``,testLocation:`__tests__`,coverageThreshold:ve.DEFAULT,concurrency:5,testFileFormat:`ts`,outputType:ge.NEW_CODE_FILE,shouldRefreshCoverage:!0,kebabCaseFileName:!1,earlyTestFilenameSuffix:`.early.${pe.TEST}`,testSuffix:pe.TEST,isAppendPrompt:!1,dynamicPromptIterations:3,wsServerEndpoint:`wss://api.startearly.ai`,secretToken:``,loggerConfig:{consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=8b9b0d6a-5400-44a3-ada6-3cd026de6cfe;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/;ApplicationId=d6e130b6-4aaa-4dcc-8d26-c1fa25d4656a`},context:void 0,includeEarlyTests:!1,lintCommand:Ee,prettierCommand:De,disableLintRules:!1,ignoreAsAnyLintErrors:!0,allowUndefinedLintErrors:!0,perFunctionTimeout:24e4,removeComments:!0,experimentalAgentSdk:!1,agentSdkModel:void 0,agentSdkBudget:void 0,debug:!1,verbose:!1},ke=e=>{let t=`testFramework.testSuffix.backendURL.requestSource.secretToken.concurrency.coverageThreshold.context.rootPath.testCommand.coverageCommand.lintCommand.prettierCommand.disableLintRules.greyTestBehaviour.redTestBehaviour.keepErrorTests.keepFailedTests.conditionalKeep.continueOnTestErrors.perFunctionTimeout.dynamicPromptIterations.removeComments.experimentalAgentSdk.agentSdkModel.agentSdkBudget.debug.verbose.progressLogger`.split(`.`).reduce((t,n)=>(0,h.isDefined)(e[n])?{...t,[n]:e[n]}:t,{}),n={...(0,h.isDefined)(e.testStructure)&&{isSiblingFolderStructured:e.testStructure===de.SIBLING_FOLDER,isRootFolderStructured:e.testStructure===de.ROOT_FOLDER},...(0,h.isDefined)(e.testFileName)&&{kebabCaseFileName:e.testFileName===me.KEBAB_CASE},...(0,h.isDefined)(e.calculateCoverage)&&{shouldRefreshCoverage:e.calculateCoverage===_e.ON},...(0,h.isDefined)(e.modelName)&&{fixTestsLLMModelName:e.modelName,generateTestsLLMModelName:e.modelName},...(0,h.isDefined)(e.testSuffix)&&{earlyTestFilenameSuffix:`.early.${e.testSuffix}`},...(0,h.isDefined)(e.requestSource)&&{clientSource:e.requestSource===ue.IDE?Se.VSCODE:Se.GITHUB_ACTION}};return{...t,...n}},Ae=new v.Chalk({level:1}),je=()=>{},Me={info:je,verbose:je},Ne=[Ae.cyan,Ae.magenta,Ae.green,Ae.blue,Ae.redBright,Ae.cyanBright,Ae.magentaBright,Ae.greenBright];function Pe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.codePointAt(n)??0,t=Math.imul(t,16777619);return Ne[Math.abs(t)%Ne.length]}function Fe(e,t){let n=(0,h.isDefined)(t.parentName)?`${t.parentName}.${t.methodName}`:t.methodName,r=Pe(n)(`[${n}]`);return{info:(...t)=>e.info(r,...t),verbose:(...t)=>e.verbose(r,...t)}}var Ie=s(((e,t)=>{function n(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Le=s(((e,t)=>{function n(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Re=l(Ie()),ze=l(Le()),Be,Ve;let He=class{config;constructor(e,t={}){if(!(0,h.isDefined)(e)){this.config=Oe;return}let n=ke(e);this.config=(0,h.merge)(Oe,n,t)}getRootPath=()=>this.config.rootPath;isSiblingFolderStructured=()=>this.config.isSiblingFolderStructured;getGitURL=()=>this.config.context?.git?.remoteUrl??this.config.gitURL;getGitTopLevel=()=>this.config.context?.git?.topLevel??this.getRootPath();getTestFramework=()=>this.config.testFramework;getGreyTestBehaviour=()=>this.config.greyTestBehaviour;getRedTestBehaviour=()=>this.config.redTestBehaviour;shouldKeepErrorTests=()=>this.config.keepErrorTests;shouldKeepFailedTests=()=>this.config.keepFailedTests;shouldConditionalKeep=()=>this.config.conditionalKeep;getGeneratedTestStructure=()=>this.config.generatedTestStructure;getGenerateTestsLLMModelName=()=>this.config.generateTestsLLMModelName;isRootFolderStructured=()=>this.config.isRootFolderStructured;getLLMTemperature=()=>this.config.llmTemperature;getLLMTopP=()=>this.config.llmTopP;getClientSource=()=>this.config.clientSource;getBackendURL=()=>this.config.backendURL;getRequestSource=()=>this.config.requestSource;getUserPrompt=()=>this.config.userPrompt;getTestLocation=()=>this.config.testLocation;getCoverageThreshold=()=>this.config.coverageThreshold;getConcurrency=()=>this.config.concurrency;getTestFileFormat=()=>this.config.testFileFormat;getOutputType=()=>this.config.outputType;getShouldRefreshCoverage=()=>this.config.shouldRefreshCoverage;isKebabCaseFileName=()=>this.config.kebabCaseFileName;getEarlyTestFilenameSuffix=()=>this.config.earlyTestFilenameSuffix;getTestSuffix=()=>this.config.testSuffix;getIsAppendPrompt=()=>this.config.isAppendPrompt;getFixTestsLLMModelName=()=>this.config.fixTestsLLMModelName;getDynamicPromptIterations=()=>this.config.dynamicPromptIterations;getWSServerEndpoint=()=>this.config.backendURL.replace(`http://`,`ws://`).replace(`https://`,`wss://`);getAnthropicProxyUrl=()=>new URL(`/anthropic`,this.config.backendURL).href;getSecretToken=()=>this.config.secretToken;getLoggerConfig=()=>this.config.loggerConfig;getContext=()=>this.config.context;getTestCommand=()=>this.config.testCommand;getCoverageCommand=()=>this.config.coverageCommand;getLintCommand=()=>this.config.lintCommand;getPrettierCommand=()=>this.config.prettierCommand;shouldDisableLintRules=()=>this.config.disableLintRules;shouldIgnoreAsAnyLintErrors=()=>this.config.ignoreAsAnyLintErrors;allowUndefinedLintErrors=()=>this.config.allowUndefinedLintErrors;getIncludeEarlyTests=()=>this.config.includeEarlyTests??!1;shouldContinueOnTestErrors=()=>this.config.continueOnTestErrors;getPerFunctionTimeout=()=>this.config.perFunctionTimeout;shouldRemoveComments=()=>this.config.removeComments;getExperimentalAgentSdk=()=>this.config.experimentalAgentSdk;getAgentSdkModel=()=>this.config.agentSdkModel;getAgentSdkBudget=()=>this.config.agentSdkBudget;updateContext=e=>{this.config.context=(0,h.merge)(this.config.context??{},e??{})};updateRootPath=e=>{this.config.rootPath=e};isDebug=()=>this.config.debug??!1;isVerbose=()=>this.config.verbose??!1;getProgressLogger=e=>{let t=this.config.progressLogger??Me;return(0,h.isDefined)(e)?Fe(t,e):t}};He=(0,ze.default)([(0,_.injectable)(`Singleton`),(0,Re.default)(`design:paramtypes`,[typeof(Be=typeof Partial<`u`&&Partial)==`function`?Be:Object,typeof(Ve=typeof Partial<`u`&&Partial)==`function`?Ve:Object])],He);var V=new _.Container({autobind:!0,defaultScope:`Singleton`});let Ue=()=>V.get(He);var We=class{storage=new m.AsyncLocalStorage;isConsoleEnabled;constructor(e){this.isConsoleEnabled=e}orderedFlush={nextOrder:1,pending:new Map};resetOrder(){this.orderedFlush={nextOrder:1,pending:new Map}}async withBufferedPrinting(e,t){let n=[];try{return await this.storage.run(n,e)}finally{this.flushInOrder(t,n)}}printOrBuffer(e,t){let n=this.storage.getStore();if((0,h.isDefined)(n)){n.push({method:e,message:t});return}this.isConsoleEnabled&&console[e](t)}async flushInOrder(e,t){if(this.orderedFlush.nextOrder===e){this.flushBuffer(t),this.orderedFlush.nextOrder++,this.drainPendingFlushes();return}return new Promise(n=>{this.orderedFlush.pending.set(e,{buffer:t,resolve:n})})}drainPendingFlushes(){let e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder);for(;(0,h.isDefined)(e);)this.orderedFlush.pending.delete(this.orderedFlush.nextOrder),this.flushBuffer(e.buffer),this.orderedFlush.nextOrder++,e.resolve(),e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder)}flushBuffer(e){if(this.isConsoleEnabled)for(let t of e)console[t.method](t.message)}};let Ge=function(e){return e.DEFAULT=`default`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({}),Ke=function(e){return e.INFO=`info`,e.WARN=`warn`,e}({});function qe(){return(0,y.randomUUID)()}function Je(){let e=``;for(let t=0;t<8;t++)e+=`abcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*36));return e}var Ye=l(Ie()),Xe=l(Le()),Ze=class{export(e,t){for(let t of e){let e=t.body;if((0,h.isString)(e))console.info(e);else try{console.info(JSON.stringify(e))}catch{console.info(String(e))}}t({code:0})}shutdown(){return Promise.resolve()}};let Qe=class{loggerProvider;config;constructor(e){this.config=e,this.loggerProvider=new S.LoggerProvider({resource:(0,x.resourceFromAttributes)({[C.ATTR_SERVICE_NAME]:be,[C.ATTR_SERVICE_VERSION]:xe})}),this.initializeExporters(),this.setGlobalLoggerProvider()}getLogger(e){return this.loggerProvider.getLogger(e)}initializeExporters(){let e=[];if(this.config.consoleEnabled){let t=new Ze;e.push(new S.SimpleLogRecordProcessor(t))}if(this.config.azureEnabled&&(0,h.isDefined)(this.config.azureConnectionString)){let t=new b.AzureMonitorLogExporter({connectionString:this.config.azureConnectionString});e.push(new S.BatchLogRecordProcessor(t))}this.loggerProvider=new S.LoggerProvider({processors:e})}setGlobalLoggerProvider(){g.logs.setGlobalLoggerProvider(this.loggerProvider)}};Qe=(0,Xe.default)([(0,_.injectable)(),(0,Ye.default)(`design:paramtypes`,[Object])],Qe),l(Ie()),l(Le());let H=new class{storage;otelService;otelLogger;isConsoleEnabled;printBuffer;default=this.createLogObject(Ge.DEFAULT);verbose=this.createLogObject(Ge.VERBOSE);constructor(e){this.storage=new m.AsyncLocalStorage,this.otelService=new Qe(e),this.otelLogger=this.otelService.getLogger(`ts-agent`),this.isConsoleEnabled=e.consoleEnabled,this.printBuffer=new We(e.consoleEnabled)}resetPrintOrder(){this.printBuffer.resetOrder()}async withBufferedPrinting(e,t){return this.printBuffer.withBufferedPrinting(e,t)}info={startLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.INFO,e,...t)};debug={startLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,e,...t)};error(e,t,...n){let r=t instanceof Error?`${e} ${t.message} ${t.stack}`:`${e} ${JSON.stringify(t)}`;this.log(g.SeverityNumber.ERROR,r,...n)}getRequestId(){return this.storage.getStore()?.requestId??``}getTraceId(){return this.storage.getStore()?.traceId??``}log(e,t,...n){let r=this.formatMessage(t,...n);this.logToOpenTelemetry(e,r),!(!this.isConsoleEnabled||!this.isLevelEnabled(Ge.DEBUG))&&console.info(r)}logToOpenTelemetry(e,t){let n=this.storage.getStore(),r={service:be,version:xe};(0,h.isDefined)(n)&&((0,h.isDefined)(n.traceId)&&(r.traceId=n.traceId),(0,h.isDefined)(n.requestId)&&(r.requestId=n.requestId),(0,h.isDefined)(n.category)&&(r.category=n.category),(0,h.isDefined)(n.subCategory)&&(r.subCategory=n.subCategory),(0,h.isDefined)(n.testedMethodClass)&&(r.testedMethodClass=n.testedMethodClass),(0,h.isDefined)(n.testedFunction)&&(r.testedFunction=n.testedFunction),(0,h.isDefined)(n.userId)&&(r.userId=n.userId.toString())),this.otelLogger.emit({severityNumber:e,severityText:this.getSeverityText(e),body:t,attributes:r})}getSeverityText(e){switch(e){case g.SeverityNumber.TRACE:return`TRACE`;case g.SeverityNumber.DEBUG:return`DEBUG`;case g.SeverityNumber.INFO:return`INFO`;case g.SeverityNumber.WARN:return`WARN`;case g.SeverityNumber.ERROR:return`ERROR`;case g.SeverityNumber.FATAL:return`FATAL`;default:return`INFO`}}formatMessage(e,...t){let n=this.formatPrefix(),r=(0,h.isDefined)(n)?`${n} ${e}`:e;return this.formatPrint(r,...t)}formatPrint(e,...t){return(0,h.isEmpty)(t)?e:`${e} ${t.map(e=>JSON.stringify(e)).join(` `)}`}withContext=(e,t,n)=>{let r=n.value,i=this.storage;return n.value=function(...e){let t=i.getStore();if(t){let n={...t};return i.run(n,()=>r.apply(this,e))}let n={traceId:Je(),requestId:qe()};return i.run(n,()=>r.apply(this,e))},n};addContext(e){let t=this.storage.getStore();(0,h.isDefined)(t)&&(t.category=e.category??t.category,t.subCategory=e.subCategory??t.subCategory,t.testedMethodClass=e.testedMethodClass??t.testedMethodClass,t.testedFunction=e.testedFunction??t.testedFunction,t.userId=e.userId??t.userId)}captureContext({withNewRequestId:e=!1}={}){let t=this.storage.getStore();return t?{...t,...e&&{requestId:qe()}}:void 0}async runWithContext(e,t){return(0,h.isDefined)(e)?this.storage.run(e,t):t()}isLevelEnabled(e){switch(e){case Ge.DEFAULT:return!0;case Ge.VERBOSE:return Ue().isVerbose()||Ue().isDebug();case Ge.DEBUG:return Ue().isDebug()}}createLogObject(e){return{info:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.INFO,this.formatPrint(t,...n))},warn:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.WARN,this.formatPrint(t,...n))}}}printOrBuffer(e,t){this.printBuffer.printOrBuffer(e,t)}formatPrefix(){let e=this.storage.getStore();if(!(0,h.isDefined)(e))return``;let t=[];return(0,h.isDefined)(e.traceId)&&t.push(`[${e.traceId}]`),(0,h.isDefined)(e.requestId)&&t.push(`[${e.requestId}]`),(0,h.isDefined)(e.category)&&t.push(`[${e.category}]`),(0,h.isDefined)(e.subCategory)&&t.push(`[${e.subCategory}]`),(0,h.isDefined)(e.testedMethodClass)&&t.push(`[${e.testedMethodClass}]`),(0,h.isDefined)(e.testedFunction)&&t.push(`[${e.testedFunction}]`),t.join(` `)}}({consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=c18a3332-f844-498f-98e0-d818996cf526;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=2150ffe0-cb0f-4b00-9562-d3385b383d74`});function $e(e){return function(t,n,r){return(0,h.isDefined)(e)&&H.addContext(e),H.withContext(t,n,r)}}var et=class e{rootPath;absolutePath;static EARLY_FILENAME_VAR=`$early_filename`;constructor(e){this.rootPath=f.default.normalizeTrim(Ue().getRootPath());let t=f.default.normalizeTrim(e),n=f.default.normalizeTrim(this.rootPath);if(t===n||t.startsWith(n+f.default.sep))this.absolutePath=t;else{let e=t.replace(/^\//,``);this.absolutePath=f.default.resolve(this.rootPath,e)}}static fromSourceFile(t){let n=f.default.normalizeTrim(t.getFilePath());return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromAbsolutePath(t){let n=f.default.normalizeTrim(t);return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromRelativePath(t){return new e(t)}getRelativeFilePath(){return f.default.relative(this.rootPath,this.absolutePath)}getAbsoluteFilePath(){return this.absolutePath}async isFileExists(){try{return(await p.default.stat(this.absolutePath)).isFile()}catch{return!1}}async isDirectoryExists(){try{return(await p.default.stat(this.absolutePath)).isDirectory()}catch{return!1}}async createDirectory(e){await p.default.mkdir(this.absolutePath,{recursive:e?.recursive??!0})}async getText(){try{return await p.default.readFile(this.absolutePath,`utf8`)}catch{return``}}async upsert(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await(await this.isFileExists()?p.default.appendFile(this.absolutePath,e):p.default.writeFile(this.absolutePath,e)),H.info.defaultLog(`Upserted file`,{path:this.getRelativeFilePath()})}async replace(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await p.default.writeFile(this.absolutePath,e),H.info.defaultLog(`Replaced file`,{path:this.getRelativeFilePath()})}async delete(){try{await p.default.unlink(this.absolutePath),H.info.defaultLog(`Deleted file`,{path:this.getRelativeFilePath()})}catch{}}};let tt={WIN32:`win32`,DARWIN:`darwin`,LINUX:`linux`},nt={JAVASCRIPT:`javascript`,TYPESCRIPT:`typescript`,PYTHON:`python`},rt=e=>{let t=Ue().getRootPath();return f.default.resolve(t,e)},it=e=>{let t=Ue().getRootPath(),n=f.default.normalize(e);return f.default.relative(t,n)},at=e=>({".js":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".jsx":`javascript`,".ts":`typescript`,".tsx":`typescript`,".py":`python`})[e.toLowerCase()]??`javascript`;function ot(e){return at((0,f.extname)(e))}function st(e){return at((0,f.extname)(e))===`typescript`}function U(e){return at((0,f.extname)(e))===nt.PYTHON}function ct(e){let t=Ue().getRootPath();if(!(0,h.isDefined)(t))throw Error(`Workspace root path is not defined`);if((0,h.isEmpty)(e))return f.default.normalize(t);let n=f.default.normalize(t),r=f.default.normalize(e);if(process.platform===tt.WIN32){let t=n.split(`:`)[0].toUpperCase(),i=r.split(`:`)[0].toUpperCase();if(t!==i&&!i.startsWith(t))return e}return f.default.relative(n,r)}function lt(e){return e.startsWith(`../`)?`../${e}`:e.startsWith(`./`)?`.${e}`:e}function ut(e){let t=f.default.normalize(rt(e)),n=f.default.normalize((0,T.default)([`package.json`,`project.json`],{cwd:t})??``);return n?it((0,f.dirname)(n)).slice(1):``}function dt(e,t,n){if(!pt(e))return e;let r=n===``?t:t.replace(n,``),i=n===``?ht(r):mt(r),a=r.split(`/`).slice(0,-1),o=ft(e,`../`),s=o>0?a.slice(0,-o).join(`/`):(0,f.dirname)(r),c=e.replaceAll(`../`,``).replaceAll(`./`,``);return f.default.join(i,s,c)}function ft(e,t){return e.split(t).length-1}function pt(e){return e.startsWith(`../`)||e.startsWith(`./`)}function mt(e){let t=ft(e,`/`);return`../`.repeat(t-1)}function ht(e){let t=ft(e,`/`);return`../`.repeat(t+1)}function gt(e){return e?.includes(`node_modules/`)}let _t=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`);function vt(e,t){let n=f.default.isAbsolute(e)?e:rt(e);return(0,T.default)(t,{cwd:n})}function yt(e,t){let n=vt(e,t);if(!(0,h.isDefined)(n))return;let r=w.readFileSync(n,`utf8`);return JSON.parse(r)}function bt(e){return yt(e,`package.json`)}function xt(e,t){let{dependencies:n={},devDependencies:r={}}=e;return Object.keys({...r,...n}).includes(t)}let St=[{path:`eslint.config.js`,isFlat:!0},{path:`eslint.config.cjs`,isFlat:!0},{path:`eslint.config.mjs`,isFlat:!0},{path:`eslint.config.ts`,isFlat:!0},{path:`eslint.config.mts`,isFlat:!0},{path:`eslint.config.cts`,isFlat:!0},{path:`.eslintrc`,isFlat:!1},{path:`.eslintrc.js`,isFlat:!1},{path:`.eslintrc.cjs`,isFlat:!1},{path:`.eslintrc.mjs`,isFlat:!1},{path:`.eslintrc.json`,isFlat:!1},{path:`.eslintrc.yaml`,isFlat:!1},{path:`.eslintrc.yml`,isFlat:!1}],Ct=[`@typescript-eslint/no-undefined`,`unicorn/no-useless-undefined`,`no-undefined`];async function wt(e){for(let{path:t,isFlat:n}of St){let r=f.default.join(e,t);if(await et.fromAbsolutePath(r).isFileExists())return{path:r,isFlat:n}}return bt(e)?.eslint?{path:vt(e,`package.json`),isFlat:!1}:{path:null,isFlat:!1}}let Tt={GET_TESTABLES:`get-testables`,GET_COVERAGE:`get-coverage`,GENERATE_COVERAGE:`generate-coverage`,SET_COVERAGE:`set-coverage`,GENERATE_TESTS:`generate-tests`,INITIALIZATION:`initialization`,GET_TESTED_CODE_DATA_SOURCE:`get-tested-code-data-source`,DYNAMIC_PROMPT:`dynamic-prompt`,TEST_VALIDATION:`test-validation`},Et={CODE_EXTRACTOR:`code-extractor`,CODE_REFINEMENT:`code-refinement`,TEST_MANAGEMENT:`test-management`,TEST_VALIDATOR:`test-validator`,CONFIG_FILE:`config-file`,COMMAND_EXECUTION:`command-execution`},Dt=[`.jsx`,`.tsx`],Ot=[`it`,`test`,`it.each`,`test.each`],kt=function(e){return e.Default=`default`,e.ObjectDefault=`object-default`,e.Named=`named`,e.Unknown=`unknown`,e.NotExported=`not-exported`,e}({}),At=function(e){return e.PRIVATE=`private`,e.PROTECTED=`protected`,e.PUBLIC=`public`,e}({}),jt=function(e){return e.REACT=`react`,e.ANGULAR=`angular`,e}({}),Mt=`unknown`,Nt=(0,O.promisify)(D.default.exec);async function Pt(e,{cwd:t=Ue().getRootPath(),timeout:n=1e4}={}){return(await Nt(e,{cwd:t,maxBuffer:500*1024,timeout:n}))?.stdout?.toString()??``}let Ft=e=>{let t=rt(e);return(0,T.default)(`jest.config.+(js|ts|mjs|cjs|json)`,{cwd:t})},It=e=>(0,h.isObject)(e)&&(0,h.isString)(e.rootDir),Lt=async e=>{let t;if(H.addContext({subCategory:Et.CONFIG_FILE}),(0,h.isDefined)(e)){let n=Ft(e);n!==null&&(t=(0,f.dirname)(n))}t??=Ue().getRootPath();let n;try{if(n=await Pt(`npx jest --showConfig`,{cwd:t}),!(0,h.isString)(n))throw H.info.defaultLog(`Jest config return is not a string`,n),Error(`Jest config return is not a string`);let e=JSON.parse(n);if((0,h.isObject)(e)&&(0,h.isArray)(e.configs)&&e.configs.every(e=>It(e)))return{projectConfigs:e.configs,globalConfig:e.globalConfig,configs:e.configs}}catch(e){H.info.defaultLog(`Cannot read jest config`,(0,h.getErrorMessage)(e)),H.info.defaultLog(`Failed reading jest config`,e,(0,h.getErrorMessage)(e));return}H.info.defaultLog(`Invalid jest config or config in not supported format`)},Rt=async()=>{let e=[Ue().getRootPath()],t=f.default.join(`node_modules`,`.prisma`,`client`,`index.d.ts`),n=e.map(e=>f.default.join(e,t)).map(e=>et.fromAbsolutePath(e));return(await(0,h.filterAsync)(n,e=>e.isFileExists())).map(e=>e.getAbsoluteFilePath())},zt=async()=>{try{let e=Ue().getRootPath();if(!(0,h.isDefined)(e))return[];let t=await(0,k.getSchemaWithPathOptional)(``,``,{cwd:e});if(!(0,h.isDefined)(t))return[];let n=t.schemas.map(e=>e[1]),r=new Set;for(let e of n){let n=(await(0,k.getConfig)({datamodel:e,ignoreEnvVarErrors:!0})).generators;for(let e of n)if((0,h.isDefined)(e.output?.value)){let n=f.default.join(f.default.resolve(t.schemaRootDir,e.output.value),`index.d.ts`);await et.fromAbsolutePath(n).isFileExists()&&r.add(n)}}return[...r]}catch(e){return H.error(`Failed to get prisma typings paths`,e),[]}},Bt=async()=>(await Promise.all([Rt(),zt()])).flat(),Vt=async(e,t=!1,n)=>{let r=`!**/node_modules/**`;if(t)return new E.Project({useInMemoryFileSystem:!0,compilerOptions:n});let i=st(e),a=Ht((0,f.dirname)(rt(e)),Ue().isSiblingFolderStructured());if(!i&&!(0,h.isDefined)(a)){let t=await Wt(e);if(!(0,h.isDefined)(t)||(0,h.isEmpty)(t))throw Error(`Cannot find source code path in jest config`);let n=new E.Project({compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0},useInMemoryFileSystem:!1});return n.addSourceFilesAtPaths([...t,r]),n}if(!i&&(0,h.isDefined)(a)){let t=new E.Project({tsConfigFilePath:a,compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0}}),n=await Wt(e);return t.addSourceFilesAtPaths([...n,r]),t}let o=new E.Project({tsConfigFilePath:a,compilerOptions:{maxNodeModuleJsDepth:0}}),s=await Bt();for(let e of s)o.addSourceFileAtPath(e);return o},Ht=(e,t)=>{let n;try{n=Ut(e)}catch{t&&(n=Ut((0,f.dirname)(e)))}return n},Ut=e=>{let t=e,n=/^(tsconfig|jsconfig).*\.json$/;for(;t!==(0,f.dirname)(t);){let e=(0,f.join)(t,`tsconfig.json`),r=(0,f.join)(t,`jsconfig.json`);if(!(0,w.existsSync)(t))return Ut((0,f.dirname)(t));if((0,w.existsSync)(e))return e;if((0,w.existsSync)(r))return r;let i=(0,w.readdirSync)(t);for(let e of i)if(n.test(e))return(0,f.join)(t,e);t=(0,f.dirname)(t)}},Wt=async e=>{let t=await Lt(e);if((0,h.isDefined)(t)){let e=t?.configs[0].roots.map(e=>f.default.join(e,`**/*.{ts,js,tsx,jsx}`));if(!(0,h.isEmpty)(e))return e}return[rt(ut(e))]};var Gt=l(Ie()),Kt=l(Le());let qt=`The ts-morph project is not initialized.`,Jt=new class{storage=new m.AsyncLocalStorage;_project;clear(){this._project=void 0}async init(e,t,n){let r=rt(e);if((0,h.isDefined)(this._project))return this._project.addSourceFileAtPathIfExists(r);this._project=await Vt(e,t,n);let i=this.storage.getStore();if((0,h.isDefined)(i))return this._project.addSourceFileAtPathIfExists(r)}add(e,t){let n=rt(e),r=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(r))throw Error(qt);return r.createSourceFile(n,t,{overwrite:!0})}update(e,t){let n=this.get(e);return n.replaceWithText(t),n}addFile(e){(0,h.isDefined)(this._project)&&this._project.addSourceFileAtPathIfExists(e)}removeFile(e){if(!(0,h.isDefined)(this._project))return;let t=this._project.getSourceFile(e);(0,h.isDefined)(t)&&this._project.removeSourceFile(t)}async refreshFromFileSystem(e){if(!(0,h.isDefined)(this._project))return;let t=rt(e),n=this._project?.getSourceFile(e)??this._project?.getSourceFile(t);if((0,h.isDefined)(n)){let e=n.getFilePath();this._project.removeSourceFile(n),this._project.addSourceFileAtPath(e)}}get(e){let t=rt(e),n=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(n))throw Error(qt+` store`);let r=n.getSourceFile(t);if(!(0,h.isDefined)(r))throw Error(`The source file is absent. ${e}`);return r}async save(e){await this.get(e).save()}async delete(e){await this.get(e).deleteImmediately()}getOrUndefined(e){let t=rt(e);return this._project?.getSourceFile(t)}withContext=(e,t,n)=>{let r=n.value,i=this.storage;if((0,h.isDefined)(i.getStore()))return n;let a=()=>this._project;return n.value=function(...e){let t={getProject:a};return i.run(t,()=>r.apply(this,e))},n}},Yt=Jt.withContext,Xt=async e=>{class t{async fn(){return e()}}(0,Kt.default)([Yt,(0,Gt.default)(`design:type`,Function),(0,Gt.default)(`design:paramtypes`,[]),(0,Gt.default)(`design:returntype`,Promise)],t.prototype,`fn`,null),await new t().fn()},Zt=e=>{let t=e?.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression();if(!(0,h.isDefined)(t))return;let n=t.asKind(E.SyntaxKind.CallExpression)?.getArguments()?.at(-1),r=n?.asKind(E.SyntaxKind.ArrowFunction)?.getBody(),i=n?.asKind(E.SyntaxKind.FunctionExpression)?.getBody();return r?.asKind(E.SyntaxKind.Block)??i?.asKind(E.SyntaxKind.Block)},Qt=e=>E.Node.isExpressionStatement(e)&&e.getFirstChildByKind(E.SyntaxKind.CallExpression)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText()===`describe`,$t=e=>e.getStatements().filter(e=>Qt(e)),en=e=>{let t=e.getExpression().getFirstChild()?.getText();return!(0,h.isDefined)(t)||(0,h.isEmpty)(t)?!1:Ot.some(e=>t.startsWith(e))},tn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).some(e=>en(e)):!1},nn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>Qt(e)&&tn(e)):[]},rn=e=>{let t=Zt(e);if((0,h.isDefined)(t))return t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).find(e=>Qt(e)&&tn(e))},an=e=>{let t=rn(e);return(0,h.isDefined)(t)},on=e=>{let t=Zt(e);if(!(0,h.isDefined)(t))return!0;let n=t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement);if((0,h.isEmpty)(n))return!0;let r=new Set([`beforeEach`,`afterEach`,`beforeAll`,`afterAll`]);return n.every(e=>{let t=e.getExpressionIfKind(E.SyntaxKind.CallExpression)?.getExpressionIfKind(E.SyntaxKind.Identifier);return(0,h.isDefined)(t)?r.has(t.getText()):!1})},sn=e=>{if(e.isNamedExport?.())return kt.Named;if(e.isDefaultExport?.())return kt.Default;let t=e?.getParent();if((0,h.isDefined)(t)){if(t.isNamedExport?.())return kt.Named;if(t.isDefaultExport?.())return kt.Default}return e.isExportDefaultObject?.()??ln(e.getSourceFile(),e.getName?.())?kt.ObjectDefault:kt.NotExported},cn=(e,t)=>(0,h.isDefined)(e)?sn(e):(0,h.isDefined)(t)?t.isNamedImport?kt.Named:kt.Default:kt.Unknown;function ln(e,t){let[n]=e.getExportAssignments()??[];return n?.getDescendantsOfKind(E.SyntaxKind.Identifier).some(e=>(e.getSymbol()?.getEscapedName()??e.getText())===t)}function un(e,t){let n=$t(Jt.get(e)),r=n.find(e=>e.getText().includes(t))??n[0],i=nn(r),a=[],o=(0,h.isEmpty)(i)?[r]:i;for(let e of o){let t=Zt(e);(0,h.isDefined)(t)&&a.push(...t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)))}return a}let dn=e=>e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue(),W=e=>dn(e),fn=e=>dn(e),pn=(e,t)=>{let n=e.getFullText().slice(0,Math.max(0,t)).split(`
32005
+ `):(this.indentate=function(){return``},this.tagEndChar=`>`,this.newLine=``)}function be(e,t,n,r){let i=this.j2x(e,n+1,r.concat(t));return e[this.options.textNodeName]!==void 0&&Object.keys(e).length===1?this.buildTextValNode(e[this.options.textNodeName],t,i.attrStr,n):this.buildObjectNode(i.val,t,i.attrStr,n)}function xe(e){return this.options.indentBy.repeat(e)}function Se(e){return!(!e.startsWith(this.options.attributeNamePrefix)||e===this.options.textNodeName)&&e.substr(this.attrPrefixLen)}ye.prototype.build=function(e){return this.options.preserveOrder?fe(e,this.options):(Array.isArray(e)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(e={[this.options.arrayNodeName]:e}),this.j2x(e,0,[]).val)},ye.prototype.j2x=function(e,t,n){let r=``,i=``,a=n.join(`.`);for(let o in e)if(Object.prototype.hasOwnProperty.call(e,o))if(e[o]===void 0)this.isAttribute(o)&&(i+=``);else if(e[o]===null)this.isAttribute(o)||o===this.options.cdataPropName?i+=``:o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(e[o]instanceof Date)i+=this.buildTextValNode(e[o],o,``,t);else if(typeof e[o]!=`object`){let n=this.isAttribute(o);if(n&&!this.ignoreAttributesFn(n,a))r+=this.buildAttrPairStr(n,``+e[o]);else if(!n)if(o===this.options.textNodeName){let t=this.options.tagValueProcessor(o,``+e[o]);i+=this.replaceEntitiesValue(t)}else i+=this.buildTextValNode(e[o],o,``,t)}else if(Array.isArray(e[o])){let r=e[o].length,a=``,s=``;for(let c=0;c<r;c++){let r=e[o][c];if(r!==void 0)if(r===null)o[0]===`?`?i+=this.indentate(t)+`<`+o+`?`+this.tagEndChar:i+=this.indentate(t)+`<`+o+`/`+this.tagEndChar;else if(typeof r==`object`)if(this.options.oneListGroup){let e=this.j2x(r,t+1,n.concat(o));a+=e.val,this.options.attributesGroupName&&r.hasOwnProperty(this.options.attributesGroupName)&&(s+=e.attrStr)}else a+=this.processTextOrObjNode(r,o,t,n);else if(this.options.oneListGroup){let e=this.options.tagValueProcessor(o,r);e=this.replaceEntitiesValue(e),a+=e}else a+=this.buildTextValNode(r,o,``,t)}this.options.oneListGroup&&(a=this.buildObjectNode(a,o,s,t)),i+=a}else if(this.options.attributesGroupName&&o===this.options.attributesGroupName){let t=Object.keys(e[o]),n=t.length;for(let i=0;i<n;i++)r+=this.buildAttrPairStr(t[i],``+e[o][t[i]])}else i+=this.processTextOrObjNode(e[o],o,t,n);return{attrStr:r,val:i}},ye.prototype.buildAttrPairStr=function(e,t){return t=this.options.attributeValueProcessor(e,``+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t===`true`?` `+e:` `+e+`="`+t+`"`},ye.prototype.buildObjectNode=function(e,t,n,r){if(e===``)return t[0]===`?`?this.indentate(r)+`<`+t+n+`?`+this.tagEndChar:this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar;{let i=`</`+t+this.tagEndChar,a=``;return t[0]===`?`&&(a=`?`,i=``),!n&&n!==``||e.indexOf(`<`)!==-1?!1!==this.options.commentPropName&&t===this.options.commentPropName&&a.length===0?this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine:this.indentate(r)+`<`+t+n+a+this.tagEndChar+e+this.indentate(r)+i:this.indentate(r)+`<`+t+n+a+`>`+e+i}},ye.prototype.closeTag=function(e){let t=``;return this.options.unpairedTags.indexOf(e)===-1?t=this.options.suppressEmptyNode?`/`:`></${e}`:this.options.suppressUnpairedNode||(t=`/`),t},ye.prototype.buildTextValNode=function(e,t,n,r){if(!1!==this.options.cdataPropName&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${e}]]>`+this.newLine;if(!1!==this.options.commentPropName&&t===this.options.commentPropName)return this.indentate(r)+`\x3c!--${e}--\x3e`+this.newLine;if(t[0]===`?`)return this.indentate(r)+`<`+t+n+`?`+this.tagEndChar;{let i=this.options.tagValueProcessor(t,e);return i=this.replaceEntitiesValue(i),i===``?this.indentate(r)+`<`+t+n+this.closeTag(t)+this.tagEndChar:this.indentate(r)+`<`+t+n+`>`+i+`</`+t+this.tagEndChar}},ye.prototype.replaceEntitiesValue=function(e){if(e&&e.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){let n=this.options.entities[t];e=e.replace(n.regex,n.val)}return e};let Ce={validate:s};t.exports=n})()})),cW=s((e=>{var t=Object.create,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.getPrototypeOf,o=Object.prototype.hasOwnProperty,s=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),c=(e,t,a,s)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var c=i(t),l=0,u=c.length,d;l<u;l++)d=c[l],!o.call(e,d)&&d!==a&&n(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(s=r(t,d))||s.enumerable});return e},l=(e,r,i)=>(i=e==null?{}:t(a(e)),c(r||!e||!e.__esModule?n(i,`default`,{value:e,enumerable:!0}):i,e));let u=l(Oi()),f=l(ki()),p=l(require(`node:fs/promises`)),m=l(require(`node:async_hooks`)),h=l(se()),g=l(Bi()),_=l(Rc()),v=l((Ol(),d(ll))),y=l(require(`node:crypto`)),b=l(iR()),x=l(pM()),S=l(fz()),C=l((Dj(),d(Ej))),w=l(require(`node:fs`)),T=l(Uz()),E=l(pV()),D=l(require(`node:child_process`)),O=l(require(`node:util`)),k=l(require(`@prisma/internals`)),A=l(lV()),ee=l(require(`node:zlib`)),j=l(cH()),te=l(uH()),M=l(mH()),ne=l(Eee()),N=l(require(`node:os`)),P=l(require(`node:events`)),F=l(gU()),I=l(tW()),re=l(Fee()),ie=l(oW()),L=l(sW()),R=l(_U()),ae=l(require(`node:process`));l(require(`node:readline`)),l(require(`node:tty`));let z=l(require(`node:path`)),oe=l(require(`@anthropic-ai/claude-agent-sdk`)),B={DELETE:`delete`,COMMENT_OUT:`comment out`,KEEP:`keep`,SKIP:`skip`},ce={GREEN:`Green`,GREY:`Grey`,RED:`Red`,NA:`NA`},le={GREEN:`Green`,GREY:`Grey`,RUNTIME_ERROR:`RuntimeError`},ue=function(e){return e.IDE=`IDE`,e.CLI=`CLI`,e}({}),de=function(e){return e.SIBLING_FOLDER=`siblingFolder`,e.ROOT_FOLDER=`rootFolder`,e}({}),fe=function(e){return e.JEST=`jest`,e.MOCHA=`mocha`,e.VITEST=`vitest`,e.PYTEST=`pytest`,e}({}),pe=function(e){return e.SPEC=`spec`,e.TEST=`test`,e}({}),me=function(e){return e.CAMEL_CASE=`camelCase`,e.KEBAB_CASE=`kebabCase`,e}({}),he=function(e){return e.NONE=`none`,e.CATEGORIES=`categories`,e}({}),ge=function(e){return e.NEW_CODE_FILE=`newCodeFile`,e.OVERRIDE_CODE_FILE=`overrideCodeFile`,e}({}),_e=function(e){return e.ON=`on`,e.OFF=`off`,e}({}),ve={DEFAULT:0,MIN:0,MAX:100},ye={DEFAULT:5,MIN:1,MAX:50};u.z.object({rootPath:u.z.string().default(process.cwd()),testStructure:u.z.enum(de).optional(),testFramework:u.z.enum(fe).optional(),testSuffix:u.z.enum(pe).optional(),testFileName:u.z.enum(me).optional(),calculateCoverage:u.z.enum(_e).optional(),coverageThreshold:u.z.number().min(ve.MIN).max(ve.MAX).default(ve.DEFAULT),requestSource:u.z.enum(ue).optional(),concurrency:u.z.number().min(ye.MIN).max(ye.MAX).default(ye.DEFAULT),backendURL:u.z.string().optional(),secretToken:u.z.string().optional(),modelName:u.z.string().optional(),context:u.z.object({git:u.z.object({ref_name:u.z.string(),repository:u.z.string(),owner:u.z.string(),sha:u.z.string(),workflowRunId:u.z.string(),remoteUrl:u.z.string(),topLevel:u.z.string()}).partial().optional()}).optional(),testCommand:u.z.string().optional(),coverageCommand:u.z.string().optional(),lintCommand:u.z.string().optional(),prettierCommand:u.z.string().optional(),disableLintRules:u.z.boolean().optional(),ignoreAsAnyLintErrors:u.z.boolean().optional(),includeEarlyTests:u.z.boolean().optional(),greyTestBehaviour:u.z.enum(B).optional(),redTestBehaviour:u.z.enum(B).optional(),keepErrorTests:u.z.boolean().optional(),keepFailedTests:u.z.boolean().optional(),conditionalKeep:u.z.boolean().optional(),continueOnTestErrors:u.z.boolean().optional(),perFunctionTimeout:u.z.number().positive().optional(),dynamicPromptIterations:u.z.number().min(0).max(10).optional(),removeComments:u.z.boolean().optional(),experimentalAgentSdk:u.z.boolean().optional(),agentSdkModel:u.z.string().optional(),agentSdkBudget:u.z.number().positive().optional(),debug:u.z.boolean().optional(),verbose:u.z.boolean().optional(),progressLogger:u.z.custom().optional()});var be=`@earlyai/ts-agent`,xe=`0.74.1`;let Se={VSCODE:`vscode`,GITHUB_ACTION:`github-action`,UNKNOWN:`unknown`},Ce=`$early_filename`,we=`$early_coverage_dir`,Te=`npx jest ${Ce} --no-coverage --silent --json --forceExit --maxWorkers=1`,Ee=`npx --no eslint ${Ce}`,De=`npx --no prettier ${Ce} --write`,Oe={rootPath:process.cwd(),isSiblingFolderStructured:!0,gitURL:`https://github.com/your-owner/your-repo`,testFramework:fe.JEST,greyTestBehaviour:B.DELETE,redTestBehaviour:B.DELETE,keepErrorTests:!1,keepFailedTests:!1,conditionalKeep:!1,continueOnTestErrors:!0,generatedTestStructure:he.CATEGORIES,isRootFolderStructured:!1,clientSource:Se.GITHUB_ACTION,backendURL:`https://api.startearly.ai`,requestSource:ue.CLI,userPrompt:``,testLocation:`__tests__`,coverageThreshold:ve.DEFAULT,concurrency:5,testFileFormat:`ts`,outputType:ge.NEW_CODE_FILE,shouldRefreshCoverage:!0,kebabCaseFileName:!1,earlyTestFilenameSuffix:`.early.${pe.TEST}`,testSuffix:pe.TEST,isAppendPrompt:!1,dynamicPromptIterations:3,wsServerEndpoint:`wss://api.startearly.ai`,secretToken:``,loggerConfig:{consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=8b9b0d6a-5400-44a3-ada6-3cd026de6cfe;IngestionEndpoint=https://eastus-8.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/;ApplicationId=d6e130b6-4aaa-4dcc-8d26-c1fa25d4656a`},context:void 0,includeEarlyTests:!1,lintCommand:Ee,prettierCommand:De,disableLintRules:!1,ignoreAsAnyLintErrors:!0,allowUndefinedLintErrors:!0,perFunctionTimeout:24e4,removeComments:!0,experimentalAgentSdk:!1,agentSdkModel:void 0,agentSdkBudget:void 0,debug:!1,verbose:!1},ke=e=>{let t=`testFramework.testSuffix.backendURL.requestSource.secretToken.concurrency.coverageThreshold.context.rootPath.testCommand.coverageCommand.lintCommand.prettierCommand.disableLintRules.greyTestBehaviour.redTestBehaviour.keepErrorTests.keepFailedTests.conditionalKeep.continueOnTestErrors.perFunctionTimeout.dynamicPromptIterations.removeComments.experimentalAgentSdk.agentSdkModel.agentSdkBudget.debug.verbose.progressLogger`.split(`.`).reduce((t,n)=>(0,h.isDefined)(e[n])?{...t,[n]:e[n]}:t,{}),n={...(0,h.isDefined)(e.testStructure)&&{isSiblingFolderStructured:e.testStructure===de.SIBLING_FOLDER,isRootFolderStructured:e.testStructure===de.ROOT_FOLDER},...(0,h.isDefined)(e.testFileName)&&{kebabCaseFileName:e.testFileName===me.KEBAB_CASE},...(0,h.isDefined)(e.calculateCoverage)&&{shouldRefreshCoverage:e.calculateCoverage===_e.ON},...(0,h.isDefined)(e.modelName)&&{fixTestsLLMModelName:e.modelName,generateTestsLLMModelName:e.modelName},...(0,h.isDefined)(e.testSuffix)&&{earlyTestFilenameSuffix:`.early.${e.testSuffix}`},...(0,h.isDefined)(e.requestSource)&&{clientSource:e.requestSource===ue.IDE?Se.VSCODE:Se.GITHUB_ACTION}};return{...t,...n}},Ae=new v.Chalk({level:1}),je=()=>{},Me={info:je,verbose:je,debug:je},Ne=[Ae.cyan,Ae.magenta,Ae.green,Ae.blue,Ae.redBright,Ae.cyanBright,Ae.magentaBright,Ae.greenBright];function Pe(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.codePointAt(n)??0,t=Math.imul(t,16777619);return Ne[Math.abs(t)%Ne.length]}function Fe(e,t){let n=(0,h.isDefined)(t.parentName)?`${t.parentName}.${t.methodName}`:t.methodName,r=Pe(n)(`[${n}]`);return{info:(...t)=>e.info(r,...t),verbose:(...t)=>e.verbose(r,...t),debug:(...t)=>e.debug(r,...t)}}var Ie=s(((e,t)=>{function n(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Le=s(((e,t)=>{function n(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),Re=l(Ie()),ze=l(Le()),Be,Ve;let He=class{config;constructor(e,t={}){if(!(0,h.isDefined)(e)){this.config=Oe;return}let n=ke(e);this.config=(0,h.merge)(Oe,n,t)}getRootPath=()=>this.config.rootPath;isSiblingFolderStructured=()=>this.config.isSiblingFolderStructured;getGitURL=()=>this.config.context?.git?.remoteUrl??this.config.gitURL;getGitTopLevel=()=>this.config.context?.git?.topLevel??this.getRootPath();getTestFramework=()=>this.config.testFramework;getGreyTestBehaviour=()=>this.config.greyTestBehaviour;getRedTestBehaviour=()=>this.config.redTestBehaviour;shouldKeepErrorTests=()=>this.config.keepErrorTests;shouldKeepFailedTests=()=>this.config.keepFailedTests;shouldConditionalKeep=()=>this.config.conditionalKeep;getGeneratedTestStructure=()=>this.config.generatedTestStructure;getGenerateTestsLLMModelName=()=>this.config.generateTestsLLMModelName;isRootFolderStructured=()=>this.config.isRootFolderStructured;getLLMTemperature=()=>this.config.llmTemperature;getLLMTopP=()=>this.config.llmTopP;getClientSource=()=>this.config.clientSource;getBackendURL=()=>this.config.backendURL;getRequestSource=()=>this.config.requestSource;getUserPrompt=()=>this.config.userPrompt;getTestLocation=()=>this.config.testLocation;getCoverageThreshold=()=>this.config.coverageThreshold;getConcurrency=()=>this.config.concurrency;getTestFileFormat=()=>this.config.testFileFormat;getOutputType=()=>this.config.outputType;getShouldRefreshCoverage=()=>this.config.shouldRefreshCoverage;isKebabCaseFileName=()=>this.config.kebabCaseFileName;getEarlyTestFilenameSuffix=()=>this.config.earlyTestFilenameSuffix;getTestSuffix=()=>this.config.testSuffix;getIsAppendPrompt=()=>this.config.isAppendPrompt;getFixTestsLLMModelName=()=>this.config.fixTestsLLMModelName;getDynamicPromptIterations=()=>this.config.dynamicPromptIterations;getWSServerEndpoint=()=>this.config.backendURL.replace(`http://`,`ws://`).replace(`https://`,`wss://`);getAnthropicProxyUrl=()=>new URL(`/anthropic`,this.config.backendURL).href;getSecretToken=()=>this.config.secretToken;getLoggerConfig=()=>this.config.loggerConfig;getContext=()=>this.config.context;getTestCommand=()=>this.config.testCommand;getCoverageCommand=()=>this.config.coverageCommand;getLintCommand=()=>this.config.lintCommand;getPrettierCommand=()=>this.config.prettierCommand;shouldDisableLintRules=()=>this.config.disableLintRules;shouldIgnoreAsAnyLintErrors=()=>this.config.ignoreAsAnyLintErrors;allowUndefinedLintErrors=()=>this.config.allowUndefinedLintErrors;getIncludeEarlyTests=()=>this.config.includeEarlyTests??!1;shouldContinueOnTestErrors=()=>this.config.continueOnTestErrors;getPerFunctionTimeout=()=>this.config.perFunctionTimeout;shouldRemoveComments=()=>this.config.removeComments;getExperimentalAgentSdk=()=>this.config.experimentalAgentSdk;getAgentSdkModel=()=>this.config.agentSdkModel;getAgentSdkBudget=()=>this.config.agentSdkBudget;updateContext=e=>{this.config.context=(0,h.merge)(this.config.context??{},e??{})};updateRootPath=e=>{this.config.rootPath=e};isDebug=()=>this.config.debug??!1;isVerbose=()=>this.config.verbose??!1;getProgressLogger=e=>{let t=this.config.progressLogger??Me;return(0,h.isDefined)(e)?Fe(t,e):t}};He=(0,ze.default)([(0,_.injectable)(`Singleton`),(0,Re.default)(`design:paramtypes`,[typeof(Be=typeof Partial<`u`&&Partial)==`function`?Be:Object,typeof(Ve=typeof Partial<`u`&&Partial)==`function`?Ve:Object])],He);var V=new _.Container({autobind:!0,defaultScope:`Singleton`});let Ue=()=>V.get(He);var We=class{storage=new m.AsyncLocalStorage;isConsoleEnabled;constructor(e){this.isConsoleEnabled=e}orderedFlush={nextOrder:1,pending:new Map};resetOrder(){this.orderedFlush={nextOrder:1,pending:new Map}}async withBufferedPrinting(e,t){let n=[];try{return await this.storage.run(n,e)}finally{this.flushInOrder(t,n)}}printOrBuffer(e,t){let n=this.storage.getStore();if((0,h.isDefined)(n)){n.push({method:e,message:t});return}this.isConsoleEnabled&&console[e](t)}async flushInOrder(e,t){if(this.orderedFlush.nextOrder===e){this.flushBuffer(t),this.orderedFlush.nextOrder++,this.drainPendingFlushes();return}return new Promise(n=>{this.orderedFlush.pending.set(e,{buffer:t,resolve:n})})}drainPendingFlushes(){let e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder);for(;(0,h.isDefined)(e);)this.orderedFlush.pending.delete(this.orderedFlush.nextOrder),this.flushBuffer(e.buffer),this.orderedFlush.nextOrder++,e.resolve(),e=this.orderedFlush.pending.get(this.orderedFlush.nextOrder)}flushBuffer(e){if(this.isConsoleEnabled)for(let t of e)console[t.method](t.message)}};let Ge=function(e){return e.DEFAULT=`default`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({}),Ke=function(e){return e.INFO=`info`,e.WARN=`warn`,e}({});function qe(){return(0,y.randomUUID)()}function Je(){let e=``;for(let t=0;t<8;t++)e+=`abcdefghijklmnopqrstuvwxyz0123456789`.charAt(Math.floor(Math.random()*36));return e}var Ye=l(Ie()),Xe=l(Le()),Ze=class{export(e,t){for(let t of e){let e=t.body;if((0,h.isString)(e))console.info(e);else try{console.info(JSON.stringify(e))}catch{console.info(String(e))}}t({code:0})}shutdown(){return Promise.resolve()}};let Qe=class{loggerProvider;config;constructor(e){this.config=e,this.loggerProvider=new S.LoggerProvider({resource:(0,x.resourceFromAttributes)({[C.ATTR_SERVICE_NAME]:be,[C.ATTR_SERVICE_VERSION]:xe})}),this.initializeExporters(),this.setGlobalLoggerProvider()}getLogger(e){return this.loggerProvider.getLogger(e)}initializeExporters(){let e=[];if(this.config.consoleEnabled){let t=new Ze;e.push(new S.SimpleLogRecordProcessor(t))}if(this.config.azureEnabled&&(0,h.isDefined)(this.config.azureConnectionString)){let t=new b.AzureMonitorLogExporter({connectionString:this.config.azureConnectionString});e.push(new S.BatchLogRecordProcessor(t))}this.loggerProvider=new S.LoggerProvider({processors:e})}setGlobalLoggerProvider(){g.logs.setGlobalLoggerProvider(this.loggerProvider)}};Qe=(0,Xe.default)([(0,_.injectable)(),(0,Ye.default)(`design:paramtypes`,[Object])],Qe),l(Ie()),l(Le());let H=new class{storage;otelService;otelLogger;isConsoleEnabled;printBuffer;default=this.createLogObject(Ge.DEFAULT);verbose=this.createLogObject(Ge.VERBOSE);constructor(e){this.storage=new m.AsyncLocalStorage,this.otelService=new Qe(e),this.otelLogger=this.otelService.getLogger(`ts-agent`),this.isConsoleEnabled=e.consoleEnabled,this.printBuffer=new We(e.consoleEnabled)}resetPrintOrder(){this.printBuffer.resetOrder()}async withBufferedPrinting(e,t){return this.printBuffer.withBufferedPrinting(e,t)}info={startLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.INFO,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.INFO,e,...t)};debug={startLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Start ${e}`,...t),endLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`End ${e}`,...t),failedLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,`Failed ${e}`,...t),defaultLog:(e,...t)=>this.log(g.SeverityNumber.DEBUG,e,...t)};error(e,t,...n){let r=t instanceof Error?`${e} ${t.message} ${t.stack}`:`${e} ${JSON.stringify(t)}`;this.log(g.SeverityNumber.ERROR,r,...n)}getRequestId(){return this.storage.getStore()?.requestId??``}getTraceId(){return this.storage.getStore()?.traceId??``}log(e,t,...n){let r=this.formatMessage(t,...n);this.logToOpenTelemetry(e,r),!(!this.isConsoleEnabled||!this.isLevelEnabled(Ge.DEBUG))&&console.info(r)}logToOpenTelemetry(e,t){let n=this.storage.getStore(),r={service:be,version:xe};(0,h.isDefined)(n)&&((0,h.isDefined)(n.traceId)&&(r.traceId=n.traceId),(0,h.isDefined)(n.requestId)&&(r.requestId=n.requestId),(0,h.isDefined)(n.category)&&(r.category=n.category),(0,h.isDefined)(n.subCategory)&&(r.subCategory=n.subCategory),(0,h.isDefined)(n.testedMethodClass)&&(r.testedMethodClass=n.testedMethodClass),(0,h.isDefined)(n.testedFunction)&&(r.testedFunction=n.testedFunction),(0,h.isDefined)(n.userId)&&(r.userId=n.userId.toString())),this.otelLogger.emit({severityNumber:e,severityText:this.getSeverityText(e),body:t,attributes:r})}getSeverityText(e){switch(e){case g.SeverityNumber.TRACE:return`TRACE`;case g.SeverityNumber.DEBUG:return`DEBUG`;case g.SeverityNumber.INFO:return`INFO`;case g.SeverityNumber.WARN:return`WARN`;case g.SeverityNumber.ERROR:return`ERROR`;case g.SeverityNumber.FATAL:return`FATAL`;default:return`INFO`}}formatMessage(e,...t){let n=this.formatPrefix(),r=(0,h.isDefined)(n)?`${n} ${e}`:e;return this.formatPrint(r,...t)}formatPrint(e,...t){return(0,h.isEmpty)(t)?e:`${e} ${t.map(e=>JSON.stringify(e)).join(` `)}`}withContext=(e,t,n)=>{let r=n.value,i=this.storage;return n.value=function(...e){let t=i.getStore();if(t){let n={...t};return i.run(n,()=>r.apply(this,e))}let n={traceId:Je(),requestId:qe()};return i.run(n,()=>r.apply(this,e))},n};addContext(e){let t=this.storage.getStore();(0,h.isDefined)(t)&&(t.category=e.category??t.category,t.subCategory=e.subCategory??t.subCategory,t.testedMethodClass=e.testedMethodClass??t.testedMethodClass,t.testedFunction=e.testedFunction??t.testedFunction,t.userId=e.userId??t.userId)}captureContext({withNewRequestId:e=!1}={}){let t=this.storage.getStore();return t?{...t,...e&&{requestId:qe()}}:void 0}async runWithContext(e,t){return(0,h.isDefined)(e)?this.storage.run(e,t):t()}isLevelEnabled(e){switch(e){case Ge.DEFAULT:return!0;case Ge.VERBOSE:return Ue().isVerbose()||Ue().isDebug();case Ge.DEBUG:return Ue().isDebug()}}createLogObject(e){return{info:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.INFO,this.formatPrint(t,...n))},warn:(t,...n)=>{this.isLevelEnabled(e)&&this.printOrBuffer(Ke.WARN,this.formatPrint(t,...n))}}}printOrBuffer(e,t){this.printBuffer.printOrBuffer(e,t)}formatPrefix(){let e=this.storage.getStore();if(!(0,h.isDefined)(e))return``;let t=[];return(0,h.isDefined)(e.traceId)&&t.push(`[${e.traceId}]`),(0,h.isDefined)(e.requestId)&&t.push(`[${e.requestId}]`),(0,h.isDefined)(e.category)&&t.push(`[${e.category}]`),(0,h.isDefined)(e.subCategory)&&t.push(`[${e.subCategory}]`),(0,h.isDefined)(e.testedMethodClass)&&t.push(`[${e.testedMethodClass}]`),(0,h.isDefined)(e.testedFunction)&&t.push(`[${e.testedFunction}]`),t.join(` `)}}({consoleEnabled:!1,azureEnabled:!0,azureConnectionString:`InstrumentationKey=c18a3332-f844-498f-98e0-d818996cf526;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=2150ffe0-cb0f-4b00-9562-d3385b383d74`});function $e(e){return function(t,n,r){return(0,h.isDefined)(e)&&H.addContext(e),H.withContext(t,n,r)}}var et=class e{rootPath;absolutePath;static EARLY_FILENAME_VAR=`$early_filename`;constructor(e){this.rootPath=f.default.normalizeTrim(Ue().getRootPath());let t=f.default.normalizeTrim(e),n=f.default.normalizeTrim(this.rootPath);if(t===n||t.startsWith(n+f.default.sep))this.absolutePath=t;else{let e=t.replace(/^\//,``);this.absolutePath=f.default.resolve(this.rootPath,e)}}static fromSourceFile(t){let n=f.default.normalizeTrim(t.getFilePath());return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromAbsolutePath(t){let n=f.default.normalizeTrim(t);return new e(f.default.relative(f.default.normalizeTrim(Ue().getRootPath()),n))}static fromRelativePath(t){return new e(t)}getRelativeFilePath(){return f.default.relative(this.rootPath,this.absolutePath)}getAbsoluteFilePath(){return this.absolutePath}async isFileExists(){try{return(await p.default.stat(this.absolutePath)).isFile()}catch{return!1}}async isDirectoryExists(){try{return(await p.default.stat(this.absolutePath)).isDirectory()}catch{return!1}}async createDirectory(e){await p.default.mkdir(this.absolutePath,{recursive:e?.recursive??!0})}async getText(){try{return await p.default.readFile(this.absolutePath,`utf8`)}catch{return``}}async upsert(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await(await this.isFileExists()?p.default.appendFile(this.absolutePath,e):p.default.writeFile(this.absolutePath,e)),H.info.defaultLog(`Upserted file`,{path:this.getRelativeFilePath()})}async replace(e){let t=f.default.dirname(this.absolutePath);await p.default.mkdir(t,{recursive:!0}),await p.default.writeFile(this.absolutePath,e),H.info.defaultLog(`Replaced file`,{path:this.getRelativeFilePath()})}async delete(){try{await p.default.unlink(this.absolutePath),H.info.defaultLog(`Deleted file`,{path:this.getRelativeFilePath()})}catch{}}};let tt={WIN32:`win32`,DARWIN:`darwin`,LINUX:`linux`},nt={JAVASCRIPT:`javascript`,TYPESCRIPT:`typescript`,PYTHON:`python`},rt=e=>{let t=Ue().getRootPath();return f.default.resolve(t,e)},it=e=>{let t=Ue().getRootPath(),n=f.default.normalize(e);return f.default.relative(t,n)},at=e=>({".js":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".jsx":`javascript`,".ts":`typescript`,".tsx":`typescript`,".py":`python`})[e.toLowerCase()]??`javascript`;function ot(e){return at((0,f.extname)(e))}function st(e){return at((0,f.extname)(e))===`typescript`}function U(e){return at((0,f.extname)(e))===nt.PYTHON}function ct(e){let t=Ue().getRootPath();if(!(0,h.isDefined)(t))throw Error(`Workspace root path is not defined`);if((0,h.isEmpty)(e))return f.default.normalize(t);let n=f.default.normalize(t),r=f.default.normalize(e);if(process.platform===tt.WIN32){let t=n.split(`:`)[0].toUpperCase(),i=r.split(`:`)[0].toUpperCase();if(t!==i&&!i.startsWith(t))return e}return f.default.relative(n,r)}function lt(e){return e.startsWith(`../`)?`../${e}`:e.startsWith(`./`)?`.${e}`:e}function ut(e){let t=f.default.normalize(rt(e)),n=f.default.normalize((0,T.default)([`package.json`,`project.json`],{cwd:t})??``);return n?it((0,f.dirname)(n)).slice(1):``}function dt(e,t,n){if(!pt(e))return e;let r=n===``?t:t.replace(n,``),i=n===``?ht(r):mt(r),a=r.split(`/`).slice(0,-1),o=ft(e,`../`),s=o>0?a.slice(0,-o).join(`/`):(0,f.dirname)(r),c=e.replaceAll(`../`,``).replaceAll(`./`,``);return f.default.join(i,s,c)}function ft(e,t){return e.split(t).length-1}function pt(e){return e.startsWith(`../`)||e.startsWith(`./`)}function mt(e){let t=ft(e,`/`);return`../`.repeat(t-1)}function ht(e){let t=ft(e,`/`);return`../`.repeat(t+1)}function gt(e){return e?.includes(`node_modules/`)}let _t=e=>e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`);function vt(e,t){let n=f.default.isAbsolute(e)?e:rt(e);return(0,T.default)(t,{cwd:n})}function yt(e,t){let n=vt(e,t);if(!(0,h.isDefined)(n))return;let r=w.readFileSync(n,`utf8`);return JSON.parse(r)}function bt(e){return yt(e,`package.json`)}function xt(e,t){let{dependencies:n={},devDependencies:r={}}=e;return Object.keys({...r,...n}).includes(t)}let St=[{path:`eslint.config.js`,isFlat:!0},{path:`eslint.config.cjs`,isFlat:!0},{path:`eslint.config.mjs`,isFlat:!0},{path:`eslint.config.ts`,isFlat:!0},{path:`eslint.config.mts`,isFlat:!0},{path:`eslint.config.cts`,isFlat:!0},{path:`.eslintrc`,isFlat:!1},{path:`.eslintrc.js`,isFlat:!1},{path:`.eslintrc.cjs`,isFlat:!1},{path:`.eslintrc.mjs`,isFlat:!1},{path:`.eslintrc.json`,isFlat:!1},{path:`.eslintrc.yaml`,isFlat:!1},{path:`.eslintrc.yml`,isFlat:!1}],Ct=[`@typescript-eslint/no-undefined`,`unicorn/no-useless-undefined`,`no-undefined`];async function wt(e){for(let{path:t,isFlat:n}of St){let r=f.default.join(e,t);if(await et.fromAbsolutePath(r).isFileExists())return{path:r,isFlat:n}}return bt(e)?.eslint?{path:vt(e,`package.json`),isFlat:!1}:{path:null,isFlat:!1}}let Tt={GET_TESTABLES:`get-testables`,GET_COVERAGE:`get-coverage`,GENERATE_COVERAGE:`generate-coverage`,SET_COVERAGE:`set-coverage`,GENERATE_TESTS:`generate-tests`,INITIALIZATION:`initialization`,GET_TESTED_CODE_DATA_SOURCE:`get-tested-code-data-source`,DYNAMIC_PROMPT:`dynamic-prompt`,TEST_VALIDATION:`test-validation`},Et={CODE_EXTRACTOR:`code-extractor`,CODE_REFINEMENT:`code-refinement`,TEST_MANAGEMENT:`test-management`,TEST_VALIDATOR:`test-validator`,CONFIG_FILE:`config-file`,COMMAND_EXECUTION:`command-execution`},Dt=[`.jsx`,`.tsx`],Ot=[`it`,`test`,`it.each`,`test.each`],kt=function(e){return e.Default=`default`,e.ObjectDefault=`object-default`,e.Named=`named`,e.Unknown=`unknown`,e.NotExported=`not-exported`,e}({}),At=function(e){return e.PRIVATE=`private`,e.PROTECTED=`protected`,e.PUBLIC=`public`,e}({}),jt=function(e){return e.REACT=`react`,e.ANGULAR=`angular`,e}({}),Mt=`unknown`,Nt=(0,O.promisify)(D.default.exec);async function Pt(e,{cwd:t=Ue().getRootPath(),timeout:n=1e4}={}){return(await Nt(e,{cwd:t,maxBuffer:500*1024,timeout:n}))?.stdout?.toString()??``}let Ft=e=>{let t=rt(e);return(0,T.default)(`jest.config.+(js|ts|mjs|cjs|json)`,{cwd:t})},It=e=>(0,h.isObject)(e)&&(0,h.isString)(e.rootDir),Lt=async e=>{let t;if(H.addContext({subCategory:Et.CONFIG_FILE}),(0,h.isDefined)(e)){let n=Ft(e);n!==null&&(t=(0,f.dirname)(n))}t??=Ue().getRootPath();let n;try{if(n=await Pt(`npx jest --showConfig`,{cwd:t}),!(0,h.isString)(n))throw H.info.defaultLog(`Jest config return is not a string`,n),Error(`Jest config return is not a string`);let e=JSON.parse(n);if((0,h.isObject)(e)&&(0,h.isArray)(e.configs)&&e.configs.every(e=>It(e)))return{projectConfigs:e.configs,globalConfig:e.globalConfig,configs:e.configs}}catch(e){H.info.defaultLog(`Cannot read jest config`,(0,h.getErrorMessage)(e)),H.info.defaultLog(`Failed reading jest config`,e,(0,h.getErrorMessage)(e));return}H.info.defaultLog(`Invalid jest config or config in not supported format`)},Rt=async()=>{let e=[Ue().getRootPath()],t=f.default.join(`node_modules`,`.prisma`,`client`,`index.d.ts`),n=e.map(e=>f.default.join(e,t)).map(e=>et.fromAbsolutePath(e));return(await(0,h.filterAsync)(n,e=>e.isFileExists())).map(e=>e.getAbsoluteFilePath())},zt=async()=>{try{let e=Ue().getRootPath();if(!(0,h.isDefined)(e))return[];let t=await(0,k.getSchemaWithPathOptional)(``,``,{cwd:e});if(!(0,h.isDefined)(t))return[];let n=t.schemas.map(e=>e[1]),r=new Set;for(let e of n){let n=(await(0,k.getConfig)({datamodel:e,ignoreEnvVarErrors:!0})).generators;for(let e of n)if((0,h.isDefined)(e.output?.value)){let n=f.default.join(f.default.resolve(t.schemaRootDir,e.output.value),`index.d.ts`);await et.fromAbsolutePath(n).isFileExists()&&r.add(n)}}return[...r]}catch(e){return H.error(`Failed to get prisma typings paths`,e),[]}},Bt=async()=>(await Promise.all([Rt(),zt()])).flat(),Vt=async(e,t=!1,n)=>{let r=`!**/node_modules/**`;if(t)return new E.Project({useInMemoryFileSystem:!0,compilerOptions:n});let i=st(e),a=Ht((0,f.dirname)(rt(e)),Ue().isSiblingFolderStructured());if(!i&&!(0,h.isDefined)(a)){let t=await Wt(e);if(!(0,h.isDefined)(t)||(0,h.isEmpty)(t))throw Error(`Cannot find source code path in jest config`);let n=new E.Project({compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0},useInMemoryFileSystem:!1});return n.addSourceFilesAtPaths([...t,r]),n}if(!i&&(0,h.isDefined)(a)){let t=new E.Project({tsConfigFilePath:a,compilerOptions:{allowJs:!0,maxNodeModuleJsDepth:0}}),n=await Wt(e);return t.addSourceFilesAtPaths([...n,r]),t}let o=new E.Project({tsConfigFilePath:a,compilerOptions:{maxNodeModuleJsDepth:0}}),s=await Bt();for(let e of s)o.addSourceFileAtPath(e);return o},Ht=(e,t)=>{let n;try{n=Ut(e)}catch{t&&(n=Ut((0,f.dirname)(e)))}return n},Ut=e=>{let t=e,n=/^(tsconfig|jsconfig).*\.json$/;for(;t!==(0,f.dirname)(t);){let e=(0,f.join)(t,`tsconfig.json`),r=(0,f.join)(t,`jsconfig.json`);if(!(0,w.existsSync)(t))return Ut((0,f.dirname)(t));if((0,w.existsSync)(e))return e;if((0,w.existsSync)(r))return r;let i=(0,w.readdirSync)(t);for(let e of i)if(n.test(e))return(0,f.join)(t,e);t=(0,f.dirname)(t)}},Wt=async e=>{let t=await Lt(e);if((0,h.isDefined)(t)){let e=t?.configs[0].roots.map(e=>f.default.join(e,`**/*.{ts,js,tsx,jsx}`));if(!(0,h.isEmpty)(e))return e}return[rt(ut(e))]};var Gt=l(Ie()),Kt=l(Le());let qt=`The ts-morph project is not initialized.`,Jt=new class{storage=new m.AsyncLocalStorage;_project;clear(){this._project=void 0}async init(e,t,n){let r=rt(e);if((0,h.isDefined)(this._project))return this._project.addSourceFileAtPathIfExists(r);this._project=await Vt(e,t,n);let i=this.storage.getStore();if((0,h.isDefined)(i))return this._project.addSourceFileAtPathIfExists(r)}add(e,t){let n=rt(e),r=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(r))throw Error(qt);return r.createSourceFile(n,t,{overwrite:!0})}update(e,t){let n=this.get(e);return n.replaceWithText(t),n}addFile(e){(0,h.isDefined)(this._project)&&this._project.addSourceFileAtPathIfExists(e)}removeFile(e){if(!(0,h.isDefined)(this._project))return;let t=this._project.getSourceFile(e);(0,h.isDefined)(t)&&this._project.removeSourceFile(t)}async refreshFromFileSystem(e){if(!(0,h.isDefined)(this._project))return;let t=rt(e),n=this._project?.getSourceFile(e)??this._project?.getSourceFile(t);if((0,h.isDefined)(n)){let e=n.getFilePath();this._project.removeSourceFile(n),this._project.addSourceFileAtPath(e)}}get(e){let t=rt(e),n=this.storage.getStore()?.getProject();if(!(0,h.isDefined)(n))throw Error(qt+` store`);let r=n.getSourceFile(t);if(!(0,h.isDefined)(r))throw Error(`The source file is absent. ${e}`);return r}async save(e){await this.get(e).save()}async delete(e){await this.get(e).deleteImmediately()}getOrUndefined(e){let t=rt(e);return this._project?.getSourceFile(t)}withContext=(e,t,n)=>{let r=n.value,i=this.storage;if((0,h.isDefined)(i.getStore()))return n;let a=()=>this._project;return n.value=function(...e){let t={getProject:a};return i.run(t,()=>r.apply(this,e))},n}},Yt=Jt.withContext,Xt=async e=>{class t{async fn(){return e()}}(0,Kt.default)([Yt,(0,Gt.default)(`design:type`,Function),(0,Gt.default)(`design:paramtypes`,[]),(0,Gt.default)(`design:returntype`,Promise)],t.prototype,`fn`,null),await new t().fn()},Zt=e=>{let t=e?.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression();if(!(0,h.isDefined)(t))return;let n=t.asKind(E.SyntaxKind.CallExpression)?.getArguments()?.at(-1),r=n?.asKind(E.SyntaxKind.ArrowFunction)?.getBody(),i=n?.asKind(E.SyntaxKind.FunctionExpression)?.getBody();return r?.asKind(E.SyntaxKind.Block)??i?.asKind(E.SyntaxKind.Block)},Qt=e=>E.Node.isExpressionStatement(e)&&e.getFirstChildByKind(E.SyntaxKind.CallExpression)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText()===`describe`,$t=e=>e.getStatements().filter(e=>Qt(e)),en=e=>{let t=e.getExpression().getFirstChild()?.getText();return!(0,h.isDefined)(t)||(0,h.isEmpty)(t)?!1:Ot.some(e=>t.startsWith(e))},tn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).some(e=>en(e)):!1},nn=e=>{let t=Zt(e);return(0,h.isDefined)(t)?t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>Qt(e)&&tn(e)):[]},rn=e=>{let t=Zt(e);if((0,h.isDefined)(t))return t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).find(e=>Qt(e)&&tn(e))},an=e=>{let t=rn(e);return(0,h.isDefined)(t)},on=e=>{let t=Zt(e);if(!(0,h.isDefined)(t))return!0;let n=t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement);if((0,h.isEmpty)(n))return!0;let r=new Set([`beforeEach`,`afterEach`,`beforeAll`,`afterAll`]);return n.every(e=>{let t=e.getExpressionIfKind(E.SyntaxKind.CallExpression)?.getExpressionIfKind(E.SyntaxKind.Identifier);return(0,h.isDefined)(t)?r.has(t.getText()):!1})},sn=e=>{if(e.isNamedExport?.())return kt.Named;if(e.isDefaultExport?.())return kt.Default;let t=e?.getParent();if((0,h.isDefined)(t)){if(t.isNamedExport?.())return kt.Named;if(t.isDefaultExport?.())return kt.Default}return e.isExportDefaultObject?.()??ln(e.getSourceFile(),e.getName?.())?kt.ObjectDefault:kt.NotExported},cn=(e,t)=>(0,h.isDefined)(e)?sn(e):(0,h.isDefined)(t)?t.isNamedImport?kt.Named:kt.Default:kt.Unknown;function ln(e,t){let[n]=e.getExportAssignments()??[];return n?.getDescendantsOfKind(E.SyntaxKind.Identifier).some(e=>(e.getSymbol()?.getEscapedName()??e.getText())===t)}function un(e,t){let n=$t(Jt.get(e)),r=n.find(e=>e.getText().includes(t))??n[0],i=nn(r),a=[],o=(0,h.isEmpty)(i)?[r]:i;for(let e of o){let t=Zt(e);(0,h.isDefined)(t)&&a.push(...t.getChildrenOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)))}return a}let dn=e=>e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue(),W=e=>dn(e),fn=e=>dn(e),pn=(e,t)=>{let n=e.getFullText().slice(0,Math.max(0,t)).split(`
32006
32006
  `);return{line:n.length,column:(n.at(-1)?.length??0)+1}},mn=(e,t)=>{let n=t.getStart(),r=t.getEnd(),{line:i,column:a}=pn(e,n),{line:o,column:s}=pn(e,r);return{startLine:i,startColumn:a,startIndex:n,endLine:o,endColumn:s,endIndex:r}},hn=e=>e.getDescendantsOfKind(E.SyntaxKind.ExpressionStatement).filter(e=>en(e)),gn=(e,t,n,r)=>{let i=r?`.tsx`:`.ts`,a=t+Date.now()+(0,y.randomUUID)()+i;return e.createSourceFile(a,n)},_n=e=>e.getDescendantsOfKind(E.SyntaxKind.CallExpression).reduce((e,t)=>{let n=t.getExpression(),r=n.getParentIfKind(E.SyntaxKind.VariableDeclaration);return(0,h.isDefined)(r)&&n.getText()===`require`&&e.push(r),e},[]),vn=e=>{let t=e.getFirstChildByKind(E.SyntaxKind.CallExpression);if(!(0,h.isDefined)(t))return;let[n]=t.getArguments();if(!(!(0,h.isDefined)(n)||n.getKind()!==E.SyntaxKind.StringLiteral))return n.getText().slice(1,-1)},yn=e=>{let t=[`${Ue().getEarlyTestFilenameSuffix()}.ts`,`.test.ts`,`.spec.ts`,`.test.tsx`,`.spec.tsx`,`.test.js`,`.spec.js`,`.test.jsx`,`.spec.jsx`],n=e.getFilePath(),r=`_`+(0,y.randomUUID)()+`_temp`;for(let e of t)if(n.endsWith(e))return n.slice(0,-e.length)+r+e;let i=n.split(`.`);return i[i.length-2]+=r,i.join(`.`)},bn=(e,t=e.getFullText())=>{let n=yn(e);return e.getProject().createSourceFile(n,t)},xn=e=>e.getSymbol()?.getDeclarations()?.[0]?.getSourceFile()??e.getAliasSymbol()?.getDeclarations()?.[0]?.getSourceFile(),Sn=(e,t)=>{let n=e.getRelativePathTo(t.getFilePath());n=n.replaceAll(`\\`,`/`);let r=f.default.extname(n);return n=n.replaceAll(r,``),n.startsWith(`.`)||(n=`./`+n),n},Cn=[E.SyntaxKind.JsxElement,E.SyntaxKind.JsxOpeningElement,E.SyntaxKind.JsxClosingElement,E.SyntaxKind.JsxExpression,E.SyntaxKind.JsxSelfClosingElement,E.SyntaxKind.JsxAttributes,E.SyntaxKind.JsxAttribute,E.SyntaxKind.JsxFragment,E.SyntaxKind.JsxOpeningFragment,E.SyntaxKind.JsxClosingFragment,E.SyntaxKind.JsxNamespacedName,E.SyntaxKind.JsxSpreadAttribute,E.SyntaxKind.JsxText,E.SyntaxKind.JsxTextAllWhiteSpaces],wn=e=>Cn.some(t=>(0,h.isDefined)(e.getFirstDescendantByKind(t))),G=e=>Cn.some(t=>(0,h.isDefined)(e.getParentIfKind(t))),Tn=e=>{let t=e.compilerType;if(`id`in t&&(0,h.isNumber)(t.id)){let e=t.id;return e===0?null:e}return null},En=new Set(`withRouter.connect.withAuth.withStyles.withTheme.forwardRef.styled.withErrorBoundary.withSuspense.withProps.withState.withHandlers.withContext.withApollo.withRedux.withIntl.withTranslation.withFormik.withViewport.withLogger.withMemo.withDefaults.withReduxForm.withPermissions.withData.withTracker.withServices.withFirebase.withNavigation.withHeader.withFooter`.split(`.`)),Dn=`anonymousFunction`;var On=class{exportedDeclarations;constructor(e,t){this.sourceFile=e,this.moduleInfo=t;let n=this.moduleInfo.getExports();this.exportedDeclarations=[n.defaultExport,...n.namedExports].filter(Boolean)}getAllTestables(){return[...this.getClassesWithMethods(),...this.getFunctionsDeclarations(),...this.getFunctionsExpressions(),...this.getArrowFunctionsExpressions(),...this.getHOCs(),...this.getObjectMethods()]}getAllSerializedTestables(){return this.getAllTestables().map(e=>(0,h.removeNestedField)(e,[`node`,`parent`]))}getAllMethodsCount(){return this.getAllTestables().filter(e=>e.type!==`class`).length}getHOCs(){return this.sourceFile.getVariableStatements().filter(e=>{let t=e.getFirstDescendantByKind(E.SyntaxKind.CallExpression),n=t?.getFirstDescendantByKind(E.SyntaxKind.PropertyAccessExpression),r=t?.getFirstDescendantByKind(E.SyntaxKind.Identifier);return[n?.getText(),r?.getText()].some(e=>(0,h.isDefined)(e)?[...En.values()].some(t=>e.includes(t)):!1)}).map(e=>{let t=e.getFirstDescendantByKind(E.SyntaxKind.VariableDeclaration)?.getFirstChildByKind(E.SyntaxKind.Identifier)?.getText(),n=this.isEntityExported(t)||e.isExported();return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getFunctionsDeclarations(){return this.sourceFile.getFunctions().map(e=>{let t=e.getName()??Dn,n=this.isEntityExported(t)||e.isExported();return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getFunctionsExpressions(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.FunctionExpression).filter(e=>e.getParentIfKind(E.SyntaxKind.ExportAssignment)?.isExportEquals()??!(this.isCallbackFunction(e)||this.isInnerFunction(e)||this.isJSXFunction(e))).map(e=>{let t=e.getName()??this.getArrowFunctionName(e)??Dn,n=this.isEntityExported(t);return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}getArrowFunctionsExpressions(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ArrowFunction).filter(e=>e.getParentIfKind(E.SyntaxKind.ExportAssignment)?.isExportEquals()??!(this.isCallbackFunction(e)||this.isInnerFunction(e)||this.isJSXFunction(e))).map(e=>{let t=this.getArrowFunctionName(e)??Dn,n=this.isEntityExported(t)||this.isEntityExportedWithThis(e);return{...this.getLocationPivot(e),name:t,type:`function`,node:e,canCreateTests:n}})}isCallbackFunction(e){return e.getParent()?.getKind()===E.SyntaxKind.CallExpression}isJSXFunction(e){return G(e)}isInnerFunction(e){let t=e.getParent(),n=0;for(;(0,h.isDefined)(t)&&t.getKind()!==E.SyntaxKind.SourceFile&&n<20;){if(t.getKind()===E.SyntaxKind.ArrowFunction)return!0;t=t.getParent(),n++}return!1}getArrowFunctionName(e){let t=e.getParent();if(t?.getKind()===E.SyntaxKind.BinaryExpression&&t?.getFirstChild()?.getKind()===E.SyntaxKind.PropertyAccessExpression)return e.getParent()?.getFirstChildByKind(E.SyntaxKind.PropertyAccessExpression)?.getName();let n=e.getFirstAncestorByKind(E.SyntaxKind.VariableDeclaration);if((0,h.isDefined)(n))return n.getName();let r=e.getFirstAncestorByKind(E.SyntaxKind.PropertyAssignment);if((0,h.isDefined)(r))return r.getName()}getClasses(){return this.sourceFile.getClasses().map(e=>{let t=e.getName(),n=this.isEntityExported(t)||e.isDefaultExport(),r=n?this.getClassMethods(e,n).some(e=>e.canCreateTests):!1;return{...this.getLocationPivot(e),name:t,type:`class`,node:e,canCreateTests:r}})}getClassesWithMethods(){return this.getClasses().flatMap(e=>[e,...this.getClassMethods(e.node,e.canCreateTests)])}getClassMethods(e,t){return e.getMethods().map(n=>{let r=n.hasModifier(E.SyntaxKind.PrivateKeyword),i=n.getName().startsWith(`#`),a=r||i;return{...this.getLocationPivot(n),parent:e,parentName:e.getName()??``,type:`method`,node:n,name:n.getName(),canCreateTests:t&&!a}})}getObjectMethods(){let e=this.sourceFile.getDescendantsOfKind(E.SyntaxKind.BinaryExpression).map(e=>e.getRight()).filter(e=>E.Node.isObjectLiteralExpression(e)),t=this.sourceFile.getExportAssignments().map(e=>e.getExpression()).filter(e=>E.Node.isObjectLiteralExpression(e));return[...e,...t].flatMap(e=>e.getProperties()).filter(e=>E.Node.isMethodDeclaration(e)).map(e=>({...this.getLocationPivot(e),type:`object-method`,node:e,name:e.getName(),canCreateTests:!0}))}getLocationPivot(e){return mn(this.sourceFile,e)}isEntityExported(e){return(0,h.isDefined)(e)&&!(0,h.isEmpty)(e)?this.exportedDeclarations.includes(e):!1}isEntityExportedWithThis(e){let t=e.getParent()?.getChildren()??[];return t[0]?.getFirstChild()?.getKind()===E.SyntaxKind.ThisKeyword&&t[1]?.getKind()===E.SyntaxKind.EqualsToken&&t[2]===e}findTestable(e,t,n){return this.getAllTestables().find(r=>r.name===t&&r.type===e?r.type===`method`?r.parentName===n:!0:!1)}};let kn=`default`;var An=class{constructor(e,t){this.sourceFile=e,this.isUsingJSX=t}getImports(){return[...this.getESMImportsNodes(),...this.getCJSImportsNodes()].map(e=>({name:`Import`,location:mn(this.sourceFile,e),node:e,type:`import`,sourceValue:(E.Node.isImportDeclaration(e)?e.getModuleSpecifierValue():e.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue())??``}))}getCJSImportsNodes(){return this.sourceFile.getVariableStatements().filter(e=>(e.getFirstDescendantByKind(E.SyntaxKind.CallExpression)?.getExpression())?.getText()===`require`)}getESMImportsNodes(){return this.sourceFile.getImportDeclarations()}isESM(){let e=this.sourceFile.getImportDeclarations().length>0,t=this.sourceFile.getExportDeclarations().length>0||this.sourceFile.getExportedDeclarations().size>0,n=this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ExportAssignment).length>0;return e||t||n}getCJSExports(){let e=[],t=``,n=`module.exports`,r=`exports`;for(let i of this.sourceFile.getDescendantsOfKind(E.SyntaxKind.ExpressionStatement)){let a=i.getExpression(),o=a.getText().trim(),s=a.asKind(E.SyntaxKind.BinaryExpression);if(!o.startsWith(n)&&!o.startsWith(r)||!(0,h.isDefined)(s))continue;let c=s.getLeft(),l=c.getText(),u=c.asKind(E.SyntaxKind.PropertyAccessExpression),d=u?.getName()??``,f=c.getKind()===E.SyntaxKind.PropertyAccessExpression,p=s.getRight(),m=f&&u?.getExpression().getText()===n,g=f&&u?.getExpression().getText()===r;if(m&&d===kn){t=p.getText();continue}if(m||g){e.push(d);continue}if(l!==n)continue;let _=t=>{let n=t.asKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(n))for(let t of n.getProperties()){if(t.getKind()===E.SyntaxKind.PropertyAssignment||t.getKind()===E.SyntaxKind.ShorthandPropertyAssignment||t.getKind()===E.SyntaxKind.MethodDeclaration){let n=t.getName();e.push(n)}if(t.getKind()===E.SyntaxKind.PropertyAssignment){let e=t.getInitializer();(0,h.isDefined)(e)&&_(e)}}},v=t=>{let n=t.asKind(E.SyntaxKind.FunctionDeclaration)?.getBody()?.asKind(E.SyntaxKind.Block);if((0,h.isDefined)(n))for(let t of n.getStatements()){let n=((t.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression())?.asKind(E.SyntaxKind.BinaryExpression)?.getLeft())?.asKind(E.SyntaxKind.PropertyAccessExpression);n?.getExpression().getKind()===E.SyntaxKind.ThisKeyword&&e.push(n.getName())}},y=t=>{let n=t.asKind(E.SyntaxKind.FunctionDeclaration)?.getName();if((0,h.isDefined)(n))for(let t of this.sourceFile.getStatements()){let r=((t.asKind(E.SyntaxKind.ExpressionStatement)?.getExpression())?.asKind(E.SyntaxKind.BinaryExpression)?.getLeft())?.asKind(E.SyntaxKind.PropertyAccessExpression);r?.getExpression().getText()===`${n}.prototype`&&e.push(r.getName())}};if(p.getKind()===E.SyntaxKind.ObjectLiteralExpression){_(p);continue}if(p.getKind()===E.SyntaxKind.Identifier){let t=p.asKind(E.SyntaxKind.Identifier),n=t?.findReferences().map(e=>e.getDefinition().getNode().getParent()).filter(e=>(0,h.isDefined)(e)).filter(e=>e.getKind()===E.SyntaxKind.VariableDeclaration);if(!(0,h.isDefined)(n))continue;for(let t of n){let n=t.getInitializer()?.asKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(n)){for(let t of n.getProperties())if(t.getKind()===E.SyntaxKind.PropertyAssignment||t.getKind()===E.SyntaxKind.ShorthandPropertyAssignment){let n=t.getName();e.push(n)}}}let r=t?.findReferences().map(e=>e.getDefinition().getNode().getParent()).filter(e=>e?.getKind()===E.SyntaxKind.FunctionDeclaration);if(!(0,h.isDefined)(r))continue;for(let e of r)v(e),y(e)}if(p.isKind(E.SyntaxKind.NewExpression)){let e=p.asKind(E.SyntaxKind.NewExpression);(0,h.isDefined)(e)&&(t=e.getExpression().getText());continue}t=p.getText()}return{namedExports:e,defaultExport:t}}getESMExports(){let e=``,t=[],n=!1;for(let r of this.sourceFile.getExportAssignments()){r.isExportEquals()||(n=!0);let i=r.getExpression();if(i.getKind()===E.SyntaxKind.Identifier){e=i.getText();continue}let a=r.getFirstChildByKind(E.SyntaxKind.ObjectLiteralExpression);if((0,h.isDefined)(a)){for(let e of a.getProperties())if(e.getKind()===E.SyntaxKind.PropertyAssignment||e.getKind()===E.SyntaxKind.ShorthandPropertyAssignment||e.getKind()===E.SyntaxKind.MethodDeclaration){let n=e.getName();t.push(n)}}}let r=this.sourceFile.getExportedDeclarations();if(!(n&&r.size===1&&[...r.keys()][0]===kn))for(let[n,i]of r)if(n===kn){let t=(i[0]?.getFirstChildByKind(E.SyntaxKind.Identifier))?.getText()?.trim()??Dn;(0,h.isDefined)(t)&&(e=t)}else t.push(n);return{defaultExport:e,namedExports:t}}hasRequire(){return this.sourceFile.getDescendantsOfKind(E.SyntaxKind.CallExpression).some(e=>e.getExpression().getText()===`require`)}transformRequiresToImports(){let e=gn(this.sourceFile.getProject(),`transformRequiresToImports`,this.sourceFile.getFullText(),this.isUsingJSX),t;try{let n=e.getVariableStatements();for(let e of n){let t=e.getFirstDescendantByKind(E.SyntaxKind.CallExpression),n=t?.getExpression();if(!(0,h.isDefined)(t)||!(0,h.isDefined)(n)||n.getText()!==`require`)continue;let r=t.getFirstDescendantByKind(E.SyntaxKind.StringLiteral)?.getLiteralValue();if(!(0,h.isDefined)(r))continue;let i=e.getDeclarations()?.[0]?.getNameNode()?.getText();if(!(0,h.isDefined)(i))continue;let a=`import ${i} from "${r}";`;e.replaceWithText(a)}t=e.getFullText()}finally{e.getProject().removeSourceFile(e)}return t}getExports(){return this.isESM()?this.getESMExports():this.getCJSExports()}},jn=class{tests;constructor(e){this.sourceFile=e}getDescribes(){return $t(this.sourceFile).map(e=>{let t=W(e);return(0,h.isDefined)(t)?{node:e,name:t,location:mn(this.sourceFile,e),type:`describe`}:null}).filter(e=>(0,h.isDefined)(e))}getTests(){return(0,h.isDefined)(this.tests)||(this.tests=hn(this.sourceFile).map(e=>{let t=mn(this.sourceFile,e),n=fn(e);return(0,h.isDefined)(n)?{node:e,name:n,location:t,type:`test`}:null}).filter(e=>(0,h.isDefined)(e))),this.tests}getDescribeTests(e){return hn(e.node).map(e=>{let t=fn(e);return(0,h.isDefined)(t)?{node:e,name:t,location:mn(this.sourceFile,e),type:`test`}:null}).filter(e=>(0,h.isDefined)(e))}},Mn=class{sourceFile;tests;testables;moduleInfo;constructor(e,t){this.filePath=t;let n=!0;try{let t=new E.Project({useInMemoryFileSystem:!0,skipAddingFilesFromTsConfig:!0,skipFileDependencyResolution:!0,skipLoadingLibFiles:!0}),r=gn(t,`ast`,e,!0);wn(r)?this.sourceFile=r:(t.removeSourceFile(r),this.sourceFile=gn(t,`ast`,e,!1),n=!1)}catch{throw Error(`Cannot parse file content`)}this.moduleInfo=new An(this.sourceFile,n),this.testables=new On(this.sourceFile,this.moduleInfo),this.tests=new jn(this.sourceFile)}isReactFile(){let e=(0,f.extname)(this.filePath??this.sourceFile.getFilePath());return Dt.includes(e)||this.isFileContainsImport(`react`)}isFileContainsImport(e){return this.moduleInfo.getImports().some(t=>t.sourceValue.includes(e))}checkIsJSDoc(e,t,n){return t===E.SyntaxKind.MultiLineCommentTrivia?e.slice(n,n+3)===`/**`&&e.slice(n,n+5)!==`/***/`:!1}getLineRange(e,t){let n=this.sourceFile.compilerNode,r=n.getLineStarts(),{line:i}=n.getLineAndCharacterOfPosition(e),{line:a}=n.getLineAndCharacterOfPosition(t);return{start:r[i]??0,end:r[a+1]??this.sourceFile.getEnd()}}stripComments(e=()=>!0){let t=new Set,n=[],r=this.sourceFile.getFullText(),i=(e,r)=>{for(let i of[...e.getLeadingCommentRanges(),...e.getTrailingCommentRanges()]){let e=i.getPos(),a=i.getEnd(),o=e+`,`+a;if(t.has(o))continue;t.add(o);let s=i.getText(),c=this.checkIsJSDoc(r,i.getKind(),e);n.push({start:e,end:a,text:s,width:i.getWidth(),isJSDoc:c})}};i(this.sourceFile,r),this.sourceFile.forEachDescendant(e=>i(e,r));let a=n.filter(e).map(e=>{let{start:t,end:n}=this.getLineRange(e.start,e.end);return(0,h.isEmpty)(r.slice(t,e.start).trim())&&(0,h.isEmpty)(r.slice(e.end,n).trim())?{start:t,end:n}:{start:e.start,end:e.end}}).toSorted((e,t)=>t.start-e.start);for(let e of a)this.sourceFile.removeText(e.start,e.end);return this.sourceFile.getFullText()}};let Nn=e=>{let{node:t,parent:n,...r}=e;return r};var Pn=class{GITIGNORE_FILE_NAME=`.gitignore`;gitignorePath;constructor(e){this.gitignorePath=(0,f.join)(e,this.GITIGNORE_FILE_NAME)}async add(e){try{let t=await p.default.readFile(this.gitignorePath,`utf8`);t.includes(e)||await p.default.writeFile(this.gitignorePath,`${t}\n${e}`)}catch(e){let t=e instanceof Error?e.message:`Unknown error`;H.info.defaultLog(`Error reading gitignore file`,{message:t})}}};let Fn=`.early.coverage`;var In=class{getCoverageDirectoryPath(){let e=Ue().getRootPath();return f.default.join(e,Fn,`v8`)}getCoverageDirectoryForCommand(){return this.getCoverageDirectoryPath()}getExecutionCwd(){return Ue().getRootPath()}},Ln=class extends In{getCoverageDirectoryForCommand(){let e=Ue().getGitTopLevel(),t=Ue().getRootPath(),n=f.default.relative(e,t);return f.default.join(n,Fn,`v8`)}};function Rn(){let e=Ue().getCoverageCommand()?.split(/\s+/).includes(`nx`)??!1;return H.info.defaultLog(`Coverage path strategy: `+(e?`nx`:`standard`)),e?new Ln:new In}var zn=class{report={};constructor(e,t){for(let[n,r]of Object.entries(e)){let e=f.default.normalize(n);if(e.toLowerCase().startsWith(t.toLowerCase())){let n=e.slice(t.length);this.report[n]=r}}}getEntries(){return Object.entries(this.report)}getStatsForTestable(e,t,n){let r=this.report[e];if(!(0,h.isDefined)(r))return null;let i=this.findFunctionDefinition(t,r.fnMap,n);if(!(0,h.isDefined)(i))return null;let a=0,o=0;for(let[e,t]of Object.entries(r.statementMap))if(this.isStatementInFunction(t,i)||this.isFunctionInStatement(t,i)){o++;let t=r.s[e];(0,h.isDefined)(t)&&t>0&&a++}return{percentage:this.toPercentage(a,o),totalStatements:o,coveredStatements:a}}getStatsForFile(e){let t=this.report[e];if(!(0,h.isDefined)(t))return{percentage:null,totalStatements:0,coveredStatements:0};let n=0,r=0;for(let[e]of Object.entries(t.statementMap)){r++;let i=t.s[e];(0,h.isDefined)(i)&&i>0&&n++}return{percentage:this.toPercentage(n,r),totalStatements:r,coveredStatements:n}}getStatsForDirectory(e){let t=0,n=0;for(let[r,i]of Object.entries(this.report))if(this.isSubdirectory(e,r)){n+=Object.keys(i.statementMap).length;for(let[e]of Object.entries(i.statementMap)){let n=i.s[e];(0,h.isDefined)(n)&&n>0&&t++}}return{percentage:this.toPercentage(t,n),totalStatements:n,coveredStatements:t}}calculateCoverageForFiles(e){let t=0,n=0,r=new Set(e.map(e=>this.normalizeFilePath(e)));for(let[e,i]of Object.entries(this.report)){let a=this.normalizeFilePath(e);if(r.has(a)){let e=Object.keys(i.statementMap).length;t+=e;for(let[e]of Object.entries(i.statementMap)){let t=i.s[e];(0,h.isDefined)(t)&&t>0&&n++}}}return{percentage:this.toPercentage(n,t),totalStatements:t,coveredStatements:n}}normalizeFilePath(e){return e.startsWith(`/`)?e.slice(1):e}isSubdirectory(e,t){let n=f.default.relative(e,t);return(0,h.isDefined)(n)?!n.startsWith(`..`)&&!f.default.isAbsolute(n):!1}isStatementInFunction(e,t){return!(e.start.line<t.loc.start.line||e.end.line>t.loc.end.line||e.start.line===t.loc.start.line&&e.start.column<t.loc.start.column||e.end.line===t.loc.end.line&&e.end.column>t.loc.end.column)}isFunctionInStatement(e,t){return!(t.loc.start.line<e.start.line||t.loc.end.line>e.end.line||t.loc.start.line===e.start.line&&t.loc.start.column<e.start.column||t.loc.end.line===e.end.line&&t.loc.end.column>e.end.column)}findFunctionDefinition(e,t,n){for(let[,n]of Object.entries(t))if(n.name===e)return n;return null}toPercentage(e,t,n=0){if(t===0)return null;let r=e/t;return Number(Math.round(r*100).toFixed(n))}};async function Bn(e){let t=Ue().getRootPath(),n=[];try{let e=new et(`.gitignore`);await e.isFileExists()&&(n=(await e.getText()).split(`
32007
32007
  `).map(e=>e.trim()).filter(e=>(0,h.isDefined)(e)&&!e.startsWith(`#`)))}catch{}let r=[`node_modules`,`*.config.ts`,`**/*.mock.ts`,`**/*.mocks.ts`,`**/*.test.ts`,`**/*.spec.ts`,...n];return(await(0,A.default)(e,{cwd:t,absolute:!0,ignore:r})).map(e=>`/${f.default.relative(t,e)}`)}var Vn=class{nextSource=null;setNext(e){return this.nextSource=e,e}async getFromNext(e){return this.nextSource?this.nextSource.getFiles(e):[]}},Hn=class extends Vn{async getFiles(e){return Bn(`**/*.{js,ts,jsx,tsx}`)}};let Un=/\.[jt]sx?$/;var Wn=class extends Vn{async getFiles(e){let t=Object.keys(e).filter(e=>Un.test(e));return t.length>0?t:this.getFromNext(e)}};function Gn(){let e=new Wn,t=new Hn;return e.setNext(t),e}let Kn=String.raw`.*\.early\.(spec|test)\.[tj]sx?$`;var qn=class{EXEC_TIMEOUT_IN_MS=12e5;MAX_BUFFER_SIZE=2e4*1024;DEFAULT_ROOT_PATH=`/`;COVERAGE_ROOT_DIRECTORY_NAME=`.early.coverage`;COVERAGE_REPORT_FILE_NAME=`coverage-final.json`;pathStrategy=null;async init(){this.pathStrategy=Rn()}getCoverageDirectoryPath(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getCoverageDirectoryPath()}getCoverageDirectoryForCommand(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getCoverageDirectoryForCommand()}getExecutionCwd(){if(!(0,h.isDefined)(this.pathStrategy))throw Error(`Provider not initialized. Call init() first.`);return this.pathStrategy.getExecutionCwd()}getCoverageReportPath(){return f.default.join(this.getCoverageDirectoryPath(),this.COVERAGE_REPORT_FILE_NAME)}async getCommand(){return(Ue().getCoverageCommand()??await this.buildJestCoverageCommand()).replaceAll(we,this.getCoverageDirectoryForCommand())}async isReportExists(){try{return await p.default.access(this.getCoverageReportPath(),p.constants.R_OK),!0}catch{return!1}}async removeReport(){try{let e=et.fromAbsolutePath(this.getCoverageReportPath());await e.isFileExists()&&await e.delete()}catch(e){H.error(`Error removing coverage report`,e)}}async getReport(){try{let e=await et.fromAbsolutePath(this.getCoverageReportPath()).getText(),t=JSON.parse(e);return this.calculateCoverage(t)}catch{throw Error(`Coverage report file could not be read: ${this.getCoverageReportPath()}`)}}async generateReport(){H.info.defaultLog(`Coverage: generation started`),await this.removeReport();let e=await this.getCommand();H.info.defaultLog(`Coverage command: ${e}`);try{await Nt(e,{cwd:this.getExecutionCwd(),timeout:this.EXEC_TIMEOUT_IN_MS,maxBuffer:this.MAX_BUFFER_SIZE}),H.info.defaultLog(`Coverage command generation success`)}catch(t){let n=t instanceof Error&&`code`in t?{code:t.code,signal:t.signal,killed:t.killed}:{code:`UNKNOWN_ERROR`};throw H.info.defaultLog(`Coverage generation exited with error: "${e}".`,n),Error(`Failed to generate coverage report: ${t.message}\nCoverage command: "${e}"`)}finally{await new Pn(Ue().getGitTopLevel()).add(this.COVERAGE_ROOT_DIRECTORY_NAME)}}calculateCoverage(e){let t=new zn(e,f.default.normalize(Ue().getRootPath()).toLowerCase()),n=new Map;for(let[e,r]of t.getEntries()){let i=t.getStatsForFile(e),a=e.split(`/`).slice(0,-1);for(;a.length>0;){let e=a.join(`/`)||this.DEFAULT_ROOT_PATH;if(!n.has(e)){let r=t.getStatsForDirectory(e);n.set(e,{percentage:r.percentage,totalStatements:r.totalStatements,coveredStatements:r.coveredStatements})}a.pop()}let o=[];for(let{name:n}of Object.values(r.fnMap)){let r=t.getStatsForTestable(e,n);o.push({name:n,percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null})}n.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:o})}return Object.fromEntries(n.entries())}async hasJestConfig(){let e=Ft(Ue().getRootPath());return(0,h.isDefined)(e)}async buildJestCoverageCommand(){let e=[`node_modules`,`dist`];Ue().getIncludeEarlyTests()||e.push(Kn);let t=e.map(e=>`"${e}"`).join(` `),n=Ue().getRootPath();return await this.hasJestConfig()?`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns ${t} --coverageReporters=json --coverageDirectory=${we} --silent --passWithNoTests --maxWorkers=2`:`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns ${t} --coverageReporters=json --coverageDirectory=${we} --rootDir="${n}" --silent --passWithNoTests --maxWorkers=2`}async getCoverageTree(e){let t=await Gn().getFiles(e),n=new Map;for(let r of t){let t=new Mn(await new et(r).getText(),`getCoverageTree`).testables.getAllTestables(),i=r.split(`/`).slice(0,-1);for(;!(0,h.isEmpty)(i);){let t=i.join(`/`)||this.DEFAULT_ROOT_PATH,r=e[t];n.has(t)||n.set(t,{percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null}),i.pop()}let a=[],o=t.map(e=>Nn(e)),s=e[r];for(let e of o){let{name:t}=e;if(!(0,h.isDefined)(t))continue;let n=e.type===`method`?e.parentName:void 0,r=s?.testables?.find(e=>e.name===t),i={name:t,...(0,h.isDefined)(n)&&{parentName:n},percentage:r?.percentage??null,totalStatements:r?.totalStatements??null,coveredStatements:r?.coveredStatements??null};a.push(i)}n.set(r,{percentage:s?.percentage??null,totalStatements:s?.totalStatements??null,coveredStatements:s?.coveredStatements??null,testables:a})}return Object.fromEntries(n.entries())}getCoverageForFiles(e,t){let n=0,r=0,i=new Set(e.map(e=>this.normalizeFilePath(e)));for(let[e,a]of Object.entries(t)){let t=this.normalizeFilePath(e);i.has(t)&&(n+=a.totalStatements??0,r+=a.coveredStatements??0)}return{percentage:this.toPercentage(r,n),totalStatements:n,coveredStatements:r}}normalizeFilePath(e){return e.startsWith(`/`)?e.slice(1):e}toPercentage(e,t,n=0){if(t===0)return null;let r=e/t;return Number(Math.round(r*100).toFixed(n))}},Jn=class extends zn{constructor(e,t){super(e,t)}findFunctionDefinition(e,t,n){for(let r of Object.values(t))if(r.name===e||(0,h.isDefined)(n)&&r.name.startsWith(`(anonymous`)&&r.loc.start.line===n)return r;return null}};let Yn=`npx vitest run --coverage.enabled --coverage.exclude="${Kn}" --coverage.reportsDirectory=${we} --coverage.reportOnFailure=true --coverage.reporter=json --maxWorkers=2 --passWithNoTests`;var Xn=class extends qn{async init(){await super.init()}async getCommand(){return(Ue().getCoverageCommand()??Yn).replaceAll(we,this.getCoverageDirectoryForCommand())}async getReport(){try{let e=await et.fromAbsolutePath(this.getCoverageReportPath()).getText(),t=JSON.parse(e);return await this.calculateCoverageWithVitest(t)}catch{throw Error(`Coverage report file could not be read: ${this.getCoverageReportPath()}`)}}async calculateCoverageWithVitest(e){let t=f.default.normalize(Ue().getRootPath()).toLowerCase(),n=new Jn(e,t),r=this.buildAbsolutePathMap(e,t),i=[...n.getEntries()];return this.processEntries(i,n,r)}buildAbsolutePathMap(e,t){let n=new Map;for(let r of Object.keys(e)){let e=f.default.normalize(r);if(e.toLowerCase().startsWith(t.toLowerCase())){let i=e.slice(t.length);n.set(i,r)}}return n}async processEntries(e,t,n){let r=new Map;for(let[i]of e)this.addDirectoryCoverage(i,t,r),await this.addFileCoverage(i,t,n,r);return Object.fromEntries(r.entries())}addDirectoryCoverage(e,t,n){let r=e.split(`/`).slice(0,-1);for(;r.length>0;){let e=r.join(`/`)||`/`;if(!n.has(e)){let r=t.getStatsForDirectory(e);n.set(e,{percentage:r.percentage,totalStatements:r.totalStatements,coveredStatements:r.coveredStatements})}r.pop()}}async addFileCoverage(e,t,n,r){let i=t.getStatsForFile(e),a=n.get(e);if(!(0,h.isDefined)(a))return;let o=await this.readFileText(a);if(!(0,h.isDefined)(o)){r.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:[]});return}let s=this.extractTestables(o,e,t);r.set(e,{percentage:i.percentage,totalStatements:i.totalStatements,coveredStatements:i.coveredStatements,testables:s})}async readFileText(e){try{return await et.fromAbsolutePath(e).getText()}catch{return null}}extractTestables(e,t,n){let r=new Mn(e,`getReport`).testables.getAllTestables(),i=[];for(let e of r){let r=e.name??``,a=e.type===`method`?e.parentName:void 0,o=n.getStatsForTestable(t,r,e.startLine);i.push({name:r,...(0,h.isDefined)(a)&&{parentName:a},percentage:o?.percentage??null,totalStatements:o?.totalStatements??null,coveredStatements:o?.coveredStatements??null})}return i}},Zn=function(e){return e.JEST=`jest`,e.VITEST=`vitest`,e}(Zn||{}),Qn=class{provider=null;async create(){let e=await this.detectProjectType();return H.info.defaultLog(`Coverage: project type`,e),e===Zn.JEST?this.provider=new qn:e===Zn.VITEST&&(this.provider=new Xn),this.provider&&await this.provider.init(),H.info.defaultLog(`Coverage Provider: `+(e??`null`)),this.provider}async detectProjectType(){return await this.checkFileExists([`vitest.config.ts`,`vitest.config.js`])?Zn.VITEST:await this.checkFileExists([`package.json`,`jest.config.js`,`jest.config.ts`,`tsconfig.json`])?Zn.JEST:null}async checkFileExists(e){H.info.defaultLog(`Coverage: checking files`,e);for(let t of e)if(await new et(t).isFileExists())return!0;return!1}};let $n={};var er=class{provider=null;coverage=null;async init(){(0,h.isDefined)(this.provider)||(this.provider=await new Qn().create())}async consumeReport(){if((0,h.isDefined)(this.provider))try{this.coverage=await this.provider.getReport(),await this.provider.removeReport()}catch(e){H.info.defaultLog(`Error reading coverage report`,{error:e})}}async generateCoverage(){if(!(0,h.isDefined)(this.provider))return $n;try{await this.provider.generateReport()}catch(e){let t=await this.provider.isReportExists();if(!Ue().shouldContinueOnTestErrors()||!t)throw e;H.info.defaultLog(`Coverage: report exists but test command failed, continuing...`)}let e=null;try{await this.consumeReport()}catch(t){e=t instanceof Error?t:Error(String(t))}if(!(0,h.isDefined)(this.coverage))throw(0,h.isDefined)(e)?Error(`Coverage report is not available. Reason: ${e.message}`):Error(`Coverage report is not available`);return this.coverage}getCoverage(){return this.coverage}async getCoverageTree(){return!(0,h.isDefined)(this.provider)||!(0,h.isDefined)(this.coverage)?$n:this.provider.getCoverageTree(this.coverage)}setCoverage(e){this.coverage=e}getCoverageForFiles(e){if(!(0,h.isDefined)(this.provider))throw Error(`Coverage provider not initialized`);if(!(0,h.isDefined)(this.coverage))throw Error(`Coverage report not available`);return this.provider.getCoverageForFiles(e,this.coverage)}},tr=l(Ie()),nr=l(Le());let rr=class{coverageService=new er;async generateCoverage(){try{await this.coverageService.init(),await this.coverageService.generateCoverage()}catch(e){throw H.info.failedLog(`Failed to generate coverage`,e),e}}async setCoverage(e){try{await this.coverageService.init(),await this.coverageService.setCoverage(e)}catch(e){throw H.info.failedLog(`Failed to set coverage`,e),e}}async getCoverageTree(){try{await this.coverageService.init(),H.info.startLog(`Getting coverage tree`);let e=await this.coverageService.getCoverageTree();return H.info.endLog(`Getting coverage tree`),e??null}catch(e){throw H.info.failedLog(`Failed to get coverage tree`,e),e}}async getCoverageForFiles(e){try{return await this.coverageService.init(),this.coverageService.getCoverageForFiles(e)}catch(e){throw H.info.failedLog(`Failed to get coverage for files`,e),e}}};(0,nr.default)([$e({category:Tt.GENERATE_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`generateCoverage`,null),(0,nr.default)([$e({category:Tt.SET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[Object]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`setCoverage`,null),(0,nr.default)([$e({category:Tt.GET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`getCoverageTree`,null),(0,nr.default)([$e({category:Tt.GET_COVERAGE}),(0,tr.default)(`design:type`,Function),(0,tr.default)(`design:paramtypes`,[Array]),(0,tr.default)(`design:returntype`,Promise)],rr.prototype,`getCoverageForFiles`,null),rr=(0,nr.default)([(0,_.injectable)()],rr);let ir=new class{safeTrackEvent(e,t){}},ar={EMPTY_TEST:`0000`,DESCRIBE_NOT_FOUND:`0001`,TESTED_CODE_DATA_SOURCE_ERROR:`0002`,GENERATING_TESTS_REQUEST_ERROR:`0003`,GET_VERSION_REQUEST_ERROR:`0004`,GENERATING_HELPER_REQUEST_ERROR:`0005`,PREPARATIONS_FOR_GENERATING_TEST_DTO_ERROR:`0006`,ENHANCE_TESTS_REQUEST_ERROR:`0011`,EMPTY_FIXED_TESTS:`1000`,TESTABLE_NOT_FOUND:`1001`,TESTED_CODE_FILE_PATH_NOT_FOUND:`1002`,PREEN_TESTS_ERROR:`2001`,ORGANIZE_IMPORTS_ERROR:`2002`,NOT_ENOUGH_BALANCE_ERROR:`3000`,UNSUPPORTED_MODEL_ERROR:`4000`,TOO_MANY_USERS_ERROR:`4001`,PAYLOAD_TOO_LARGE_ERROR:`4002`,TEST_SUMMARY_DB_REQUEST_ERROR:`5000`,TEST_SUMMARY_INVALID_CREATED_BY_ERROR:`5001`,TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR:`5002`,TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR:`5003`,WS_DYNAMIC_PROMPT_GENERAL_ERROR:`6000`,WS_DYNAMIC_PROMPT_AUTH_ERROR:`6001`,PREPARATIONS_FOR_DYNAMIC_PROMPT_ERROR:`6002`,WS_DYNAMIC_PROMPT_VALIDATION_FAILED_ERROR:`6003`,WS_DYNAMIC_PROMPT_TIMEOUT_ERROR:`6004`,GITHUB_ACTION_TEST_SUMMARY_DB_REQUEST_ERROR:`7000`,GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE:`7001`,GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR:`7002`,GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR:`7003`,GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE_EMPTY_OPTIONS:`7004`,GITHUB_ACTION_TEST_SUMMARY_NO_COVERAGE_FOUND:`7005`},or={[ar.EMPTY_TEST]:`Oops! No tests were generated for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.DESCRIBE_NOT_FOUND]:`Oops! Test suite not found for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.TESTED_CODE_DATA_SOURCE_ERROR]:`Cannot get testable data for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.GENERATING_TESTS_REQUEST_ERROR]:`Generating tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.PREPARATIONS_FOR_GENERATING_TEST_DTO_ERROR]:`Generating tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.GET_VERSION_REQUEST_ERROR]:`Failed to make request. Code:{{code}} - We're on it!`,[ar.GENERATING_HELPER_REQUEST_ERROR]:`Generating helpers for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.ENHANCE_TESTS_REQUEST_ERROR]:`Enhance tests for method "{{methodName}}" - failed: "{{errorMessage}}". Code:{{code}} - We're on it!`,[ar.EMPTY_FIXED_TESTS]:`Oops! We got an empty API response for "{{methodName}}" test fixes. Code:{{code}} - We're on it!`,[ar.TESTABLE_NOT_FOUND]:`Oops! Testable code not found for "{{methodName}}". Code:{{code}} - We're on it!`,[ar.TESTED_CODE_FILE_PATH_NOT_FOUND]:`Oops! Testable code file path not found for "{{methodName}}". Code:{{code}}`,[ar.PREEN_TESTS_ERROR]:`Encountered a problem while processing "{{methodName}}". Code:{{code}} - We're on it!`,[ar.ORGANIZE_IMPORTS_ERROR]:`There was an issue with the processing "{{methodName}}". Code:{{code}} - We're on it!`,[ar.NOT_ENOUGH_BALANCE_ERROR]:`Usage test generation limit reached.`,[ar.UNSUPPORTED_MODEL_ERROR]:`We do not support this model at the moment.`,[ar.TOO_MANY_USERS_ERROR]:`Users limit reached. Please contact support.`,[ar.PAYLOAD_TOO_LARGE_ERROR]:`We could not generate tests due to code size.`,[ar.TEST_SUMMARY_DB_REQUEST_ERROR]:`We could not save test summary to database.`,[ar.TEST_SUMMARY_INVALID_CREATED_BY_ERROR]:`Invalid created by field.`,[ar.TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR]:`Invalid git remote.`,[ar.TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR]:`Invalid git branch.`,[ar.GITHUB_ACTION_TEST_SUMMARY_DB_REQUEST_ERROR]:`We could not save test summary to database.`,[ar.GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE]:`Failed to read github action config file.`,[ar.GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_REMOTE_ERROR]:`Invalid git remote.`,[ar.GITHUB_ACTION_TEST_SUMMARY_INVALID_GIT_BRANCH_ERROR]:`Invalid git branch.`,[ar.GITHUB_ACTION_TEST_SUMMARY_READ_CONF_FILE_EMPTY_OPTIONS]:`Failed to parse options from github action conf file.`,[ar.GITHUB_ACTION_TEST_SUMMARY_NO_COVERAGE_FOUND]:`No coverage found. Please run coverage first.`,[ar.WS_DYNAMIC_PROMPT_GENERAL_ERROR]:`Failed initializing dynamic prompt.`,[ar.WS_DYNAMIC_PROMPT_AUTH_ERROR]:`Failed authorizing dynamic prompt.`,[ar.PREPARATIONS_FOR_DYNAMIC_PROMPT_ERROR]:`Failed preparing init dynamic prompt.`,[ar.WS_DYNAMIC_PROMPT_VALIDATION_FAILED_ERROR]:`Failed validating dynamic prompt dto.`,[ar.WS_DYNAMIC_PROMPT_TIMEOUT_ERROR]:`Dynamic prompt operation timed out.`};var sr=class extends Error{constructor(e,t){let n=cr(e,t);super(n),this.code=e}};let cr=(e,t)=>{let n=or[e];for(let[r,i]of Object.entries({...t,code:e}))n=n.replace(`{{${r}}}`,i);return n},lr=`x-request-id`;var ur=class extends Error{constructor(){super(`Not authorized`)}};new TextEncoder;let dr=new TextDecoder;function fr(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e);let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}function pr(e){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(typeof e==`string`?e:dr.decode(e),{alphabet:`base64url`});let t=e;t instanceof Uint8Array&&(t=dr.decode(t)),t=t.replace(/-/g,`+`).replace(/_/g,`/`);try{return fr(t)}catch{throw TypeError(`The input to be decoded is not correctly encoded.`)}}var mr=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},hr=class extends mr{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`};let gr=e=>typeof e==`object`&&!!e;function _r(e){if(!gr(e)||Object.prototype.toString.call(e)!==`[object Object]`)return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function vr(e){if(typeof e!=`string`)throw new hr(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new hr(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new hr(`Invalid JWT`);if(!t)throw new hr(`JWTs must contain a payload`);let r;try{r=pr(t)}catch{throw new hr(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(dr.decode(r))}catch{throw new hr(`Failed to parse the decoded payload as JSON`)}if(!_r(i))throw new hr(`Invalid JWT Claims Set`);return i}let yr=e=>{let t=vr(e).exp;return(0,h.isDefined)(t)?t*1e3:null},br=e=>{if(!(0,h.isDefined)(e))return!0;let t=yr(e);return(0,h.isDefined)(t)?t<Date.now():!0};var xr=l(Le());let Sr=class{jwtToken=null;refreshTokenCallback=null;observer=new h.Observer;refreshTokenMutex=new M.Mutex;setJWTToken(e){this.jwtToken=e,this.observer.notifyAll(e)}async getJWTToken(){return(0,h.isDefined)(this.jwtToken)?(this.isTokenValid()||await this.refreshTokenMutex.runExclusive(async()=>{if((0,h.isDefined)(this.refreshTokenCallback))return await this.refreshTokenCallback(),this.jwtToken}),this.jwtToken):null}async getJWTTokenOrThrow(){let e=await this.getJWTToken();if(!(0,h.isDefined)(e))throw new ur;return e}onJWTTokenSave(e){this.observer.addListener(e)}isTokenValid(){return!br(this.jwtToken)}setRefreshTokenCallback(e){this.refreshTokenCallback=e}};Sr=(0,xr.default)([(0,_.injectable)(`Singleton`)],Sr);var Cr=s(((e,t)=>{function n(e,t){return function(n,r){t(n,r,e)}}t.exports=n,t.exports.__esModule=!0,t.exports.default=t.exports})),wr=l(Ie()),Tr=l(Cr()),Er=l(Le()),Dr,Or;let kr=class{axiosInstance;constructor(e,t){this.authStorage=e,this.globalConfigService=t,this.axiosInstance=j.default.create({baseURL:this.globalConfigService.getBackendURL(),headers:{"x-client-name":`ts-agent`,"x-client-version":xe,"Content-Type":`application/json`,"Content-Encoding":`gzip`},transformRequest:[e=>{if((0,h.isDefined)(e)){let t=ee.default.createGzip();return t.write(JSON.stringify(e)),t.end(),t}else return e}]}),(0,te.default)(this.axiosInstance)}async apiCall({url:e,method:t,data:n,config:r}){let i=new j.AxiosHeaders({"x-request-source":this.globalConfigService.getRequestSource(),...r?.headers});if(!r?.ignoreAuth){let e=await this.authStorage.getJWTToken();(0,h.isDefined)(e)&&!(0,h.isEmpty)(e)&&(i.authorization=`Bearer ${e}`)}let a={...r,method:t,url:e,data:n,headers:i};try{return await this.axiosInstance.request(a)}catch(t){this.handleError(e,t,n)}}async get(e,t){return(await this.apiCall({url:e,method:`GET`,config:t})).data}async post(e,t,n){return(await this.apiCall({url:e,method:`POST`,data:t,config:n})).data}async put(e,t,n){return(await this.apiCall({url:e,method:`PUT`,data:t,config:n})).data}async delete(e,t){return(await this.apiCall({url:e,method:`DELETE`,config:t})).data}async patch(e,t,n){return(await this.apiCall({url:e,method:`PATCH`,data:t,config:n})).data}async head(e,t){return this.apiCall({url:e,method:`HEAD`,config:t})}async options(e,t){return this.apiCall({url:e,method:`OPTIONS`,config:t})}handleError(e,t,n){if(j.default.isAxiosError(t))if((0,h.isDefined)(t.response)){let{status:e,statusText:n,data:r}=t.response;throw e===j.HttpStatusCode.PaymentRequired?new sr(ar.NOT_ENOUGH_BALANCE_ERROR):Error(`API request failed: ${e} ${n} - ${JSON.stringify(r)}`)}else if((0,h.isDefined)(t.request))throw Error(`API request failed: No response received from ${e}`);else throw Error(`API request failed: ${t instanceof Error?t.message:`Unknown error`}`);else if(t instanceof Error)throw TypeError(`API request failed: ${t.message}`);else throw TypeError(`API request failed: Unknown error occurred`)}onLogin(e){this.authStorage.onJWTTokenSave(t=>{(0,h.isDefined)(t)&&e()})}};kr=(0,Er.default)([(0,_.injectable)(),(0,Tr.default)(0,(0,_.inject)(Sr)),(0,Tr.default)(1,(0,_.inject)(He)),(0,wr.default)(`design:paramtypes`,[typeof(Dr=Sr!==void 0&&Sr)==`function`?Dr:Object,typeof(Or=He!==void 0&&He)==`function`?Or:Object])],kr);let Ar={SUPER_ADMIN:1,ADMIN:2,USER:3},jr=[Ar.ADMIN,Ar.SUPER_ADMIN];var Mr=l(Ie()),Nr=l(Cr()),Pr=l(Le()),Fr;let Ir=class{mutex=new M.Mutex;user=null;constructor(e){this.apiService=e}async fetchUser(){let e=await this.apiService.get(`/api/v1/user/me`);return this.setUser(e),e}setUser(e){this.user=e,H.addContext({userId:e.id})}async getUser(){return(0,h.isDefined)(this.user)?this.user:await this.mutex.runExclusive(async()=>await this.fetchUser())}async isAdminUser(){let e=await this.getUser();return(0,h.isDefined)(e)?jr.includes(e?.role):!1}async isInOrganization(){let e=await this.getUser();return(0,h.isDefined)(e?.organization)}};Ir=(0,Pr.default)([(0,_.injectable)(),(0,Nr.default)(0,(0,_.inject)(kr)),(0,Mr.default)(`design:paramtypes`,[typeof(Fr=kr!==void 0&&kr)==`function`?Fr:Object])],Ir);let Lr=e=>(0,y.createHash)(`md5`).update(String(e)).digest(`hex`),Rr=e=>({...zr(e),testFrameworkReceived:(0,h.isDefined)(e.testFrameworkReceived)?Lr(e.testFrameworkReceived):void 0,testFrameworkExpected:(0,h.isDefined)(e.testFrameworkExpected)?Lr(e.testFrameworkExpected):void 0}),zr=e=>({errorCode:e.errorCode,shortDescription:Lr(e.shortDescription),fullDescription:Lr(e.fullDescription)}),Br=e=>({name:Lr(e.name),code:Lr(e.code),status:e.status,errors:e.errors?.map(e=>Rr(e)),lintErrors:e.lintErrors?.map(e=>Vr(e))??null}),Vr=e=>({errorCode:e.errorCode,fullDescription:Lr(e.fullDescription),shortDescription:Lr(e.shortDescription),severity:e.severity,exactCode:Lr(e.exactCode)}),Hr=({describe:e,stdout:t})=>({describe:{path:e.path,code:Lr(e.code),fullCode:Lr(e.fullCode),status:e.status,errors:e.errors?.map(e=>zr(e)),tests:e.tests.map(e=>Br(e)),lintErrors:e.lintErrors?.map(e=>Vr(e))??null},stdout:t});var Ur=l(Ie()),Wr=l(Cr()),Gr=l(Le()),Kr,qr,Jr;let Yr=class{constructor(e,t,n){this.apiService=e,this.userService=t,this.globalConfigService=n}async saveTestMetrics({requestId:e,timeElapsed:t,validationReport:n,...r}){try{let i={timeElapsed:t,...n,...r};await this.userService.isInOrganization()&&(H.debug.defaultLog(`Filtering private data for B2B user`),i.testResult=(0,h.isDefined)(n?.testResult)?Hr(n.testResult):void 0),H.debug.startLog(`Sending metrics with request id ${e}`),await this.apiService.post(`/api/v1/tests/update-operation-metrics`,i,{headers:{[lr]:e}}),H.debug.defaultLog(`Test metrics have been saved`)}catch(e){H.error(`Test metrics cannot be saved`,e)}H.debug.endLog(`Sending metrics with request id ${e}`)}registerStartTime(e){let t=Date.now();return async({...n})=>{let r=Date.now()-t;return await this.saveTestMetrics({...n,requestId:e,timeElapsed:r}),r}}async logPackageDependencies(e){try{if(await this.userService.isInOrganization())return;let t=bt(e);if(!(0,h.isDefined)(t))return;await this.updateRepositoryPackageJson(t)}catch(e){H.info.defaultLog(`Failed to log package dependencies.`,e);return}}async saveOperationMetricsTrace(e){let{parentRequestId:t,llmModel:n,testResultIteration:r=0,toolsOutput:i,testFileContent:a}=e;try{H.debug.startLog(`Sending operation metrics trace for testResultIteration ${r}`),await this.apiService.post(`/api/v1/tests/operation-metrics-trace`,{parentRequestId:t,iteration:r,llmModel:n,toolsOutput:i,testFileContent:a}),H.debug.defaultLog(`Operation metrics trace saved for testResultIteration ${r}`)}catch(e){H.error(`Failed to save operation metrics trace for testResultIteration ${r}`,e)}H.debug.endLog(`Sending operation metrics trace for testResultIteration ${r}`)}async updateRepositoryPackageJson(e){try{let t=this.globalConfigService.getContext();if(!(0,h.isDefined)(t?.git?.owner)||!(0,h.isDefined)(t?.git?.repository)){H.debug.defaultLog(`No git context available, skipping package.json update`);return}let n={owner:t.git.owner,repo:t.git.repository,packageJson:JSON.stringify(e)};await this.apiService.patch(`/api/v1/github-repos/package-json`,n),H.debug.defaultLog(`Successfully updated repository package.json`)}catch(e){H.info.defaultLog(`Failed to update repository package.json`,e)}}};Yr=(0,Gr.default)([(0,_.injectable)(),(0,Wr.default)(0,(0,_.inject)(kr)),(0,Wr.default)(1,(0,_.inject)(Ir)),(0,Wr.default)(2,(0,_.inject)(He)),(0,Ur.default)(`design:paramtypes`,[typeof(Kr=kr!==void 0&&kr)==`function`?Kr:Object,typeof(qr=Ir!==void 0&&Ir)==`function`?qr:Object,typeof(Jr=He!==void 0&&He)==`function`?Jr:Object])],Yr);var Xr=class{queue;activeProcesses=[];itemAddedObserver=new h.Observer;itemExecutedObserver=new h.Observer;itemAbortedObserver=new h.Observer;abortControllers=new Map;getItemKey;constructor({concurrency:e,getItemKey:t}){this.queue=new ne.default({concurrency:e}),this.getItemKey=t}async add(e,t){let n=this.getItemKey(e);if(this.activeProcesses.includes(n))return;let r=new AbortController,i=H.captureContext({withNewRequestId:!0});return this.abortControllers.set(n,r),this.activeProcesses.push(n),this.itemAddedObserver.notifyAll(n),this.queue.add(async()=>{await H.runWithContext(i,async()=>{await t(r.signal)})},{signal:r.signal}).then(()=>{this.itemExecutedObserver.notifyAll(n)}).finally(()=>{this.activeProcesses=this.activeProcesses.filter(e=>e!==n),this.abortControllers.delete(n)})}shouldQueue(){return this.queue.pending>=this.queue.concurrency}onIdleEmit(e){this.queue.on(`idle`,()=>{e()})}has(e){let t=this.getItemKey(e);return this.activeProcesses.includes(t)}getActiveProcesses(){return this.activeProcesses}getProcessing(){return this.activeProcesses.slice(0,this.queue.concurrency)}getQueued(){return this.activeProcesses.slice(this.queue.concurrency)}onDone(e){this.itemExecutedObserver.addListener(e)}onAdded(e){this.itemAddedObserver.addListener(e)}onAborted(e){this.itemAbortedObserver.addListener(e)}abortAll(){this.queue.clear();for(let[,e]of this.abortControllers)e.abort();this.abortControllers.clear();for(let e of this.activeProcesses)this.itemAbortedObserver.notifyAll(e);this.activeProcesses=[]}abort(e){let t=this.getItemKey(e);this.activeProcesses=this.activeProcesses.filter(e=>e!==t),this.itemAbortedObserver.notifyAll(t);let n=this.abortControllers.get(t);(0,h.isDefined)(n)&&(n.abort(),this.abortControllers.delete(t))}clearQueued(){this.queue.clear();let e=this.getQueued();for(let t of e){let e=this.abortControllers.get(t);(0,h.isDefined)(e)&&(e.abort(),this.abortControllers.delete(t)),this.itemAbortedObserver.notifyAll(t)}this.activeProcesses=this.getProcessing()}getIdlePromise(){return this.queue.onIdle()}};let Zr=`npx jest ${Ce} --coverage=false --verbose=false --watchAll=false --silent --json --forceExit --testPathIgnorePatterns=// --maxWorkers=1`;var Qr=class{fulfill(e){if(Ue().getTestFramework()!==fe.JEST)return!1;let t=e,n=null,r=0;for(;r<25;){r++;let e=vt(t,`package.json`);if(!(0,h.isDefined)(e)||e===n)return!1;let i=bt(t);if((0,h.isDefined)(i)&&xt(i,`jest`))return!0;n=e,t=f.default.dirname(f.default.dirname(e))}return!1}getTestCommand(){return{command:Ue().getTestCommand()??Zr,framework:fe.JEST}}};let $r=`npx vitest run ${Ce} --reporter=junit --silent --pool=threads --maxWorkers=1 --coverage.enabled=false`,ei=new class{constructor(e){this.providers=e}getTestCommand(e){let t=this.getProvider(e);if(!(0,h.isDefined)(t))throw Error(`No CmdProvider found for file: ${e}`);return t.getTestCommand()}getProvider(e){return this.providers.find(t=>t.fulfill(e))}}([new class{fulfill(e){if(Ue().getTestFramework()!==fe.VITEST)return!1;let t=e,n=null,r=0;for(;r<25;){r++;let e=vt(t,`package.json`);if(!(0,h.isDefined)(e)||e===n)return!1;let i=bt(t);if((0,h.isDefined)(i)&&xt(i,`vitest`))return!0;n=e,t=f.default.dirname(f.default.dirname(e))}return!1}getTestCommand(){return{command:Ue().getTestCommand()??$r,framework:fe.VITEST}}},new Qr]);var ti=class e{static of(...t){return new e(...t)}static all=e.of();static success=e.of(0);static suppress_1=e.of(0,1);allow(e){return this.allowed.length===0||this.allowed.includes(e)}allowed;constructor(...e){this.allowed=e}};let ni=`validate-tests`,ri=e=>e instanceof Error&&`code`in e&&typeof e.code==`number`;var ii=class e{constructor(e){this.relativePath=e}async runCommandOnFile(e,t=ti.success,n=!1){let r=n?_t(f.default.normalize(this.relativePath)):f.default.normalize(this.relativePath),i=e.replaceAll(Ce,`"${r}"`);try{H.debug.startLog(`Command been executed on test-file ${this.relativePath} ${e}`),H.info.defaultLog(`Running command on file ${this.relativePath}`,{renderedCommand:i});let{stdout:t,stderr:n}=await Nt(i,{cwd:Ue().getRootPath(),timeout:3e5}),r=t||n;return H.debug.endLog(`Command been executed on test-file ${this.relativePath} ${e}: ${r}`),r}catch(n){if(!(ri(n)&&(0,h.isDefined)(n.code)&&t.allow(n.code))){let t=`Failed run command "${e}" on file ${this.relativePath}`;throw H.error(t,n),n}let r=n.stdout||n.stderr;return H.debug.endLog(`Command been executed on test-file ${this.relativePath} ${e}: ${r}`),r}}getTempFileName(e,t,n){if(t){let t=f.default.join(N.default.tmpdir(),`early`),n=`${e}-${(0,y.randomUUID)()}`;return f.default.join(t,n)}let r=(0,h.isDefined)(n)&&!(0,h.isEmpty)(n),i=r&&f.default.isAbsolute(n)?f.default.dirname(n):f.default.join(Ue().getRootPath(),f.default.dirname(n??``));if(!(0,h.isDefined)(i))throw Error(`Workspace root path is not defined`);let a=`.${e}-${(0,y.randomUUID)()}-${r?f.default.basename(n):`.ts`}`;return f.default.join(i,a)}async runCommandWithContent(t,n,r,i=!1){H.addContext({subCategory:Et.COMMAND_EXECUTION});let a={filePrefix:`generated-content`,useTemporaryOSFolder:!(0,h.isDefined)(r?.predefinedPath),validExitCodes:ti.success,...r},o=this.getTempFileName(a.filePrefix,a.useTemporaryOSFolder,a.predefinedPath);try{H.info.defaultLog(`Creating temp file ${o}`),await p.default.mkdir(f.default.dirname(o),{recursive:!0}),await p.default.writeFile(o,t);let r=new e(o);return H.info.defaultLog(`Running command "${n}" on temp file`),await r.runCommandOnFile(n,a.validExitCodes,i)}catch(e){return H.error(`Failed running command "${n}" on temp file`,e),``}finally{try{await p.default.unlink(o)}catch(e){H.info.defaultLog(`Failed removing temp file`,e)}}}async runTestCommand(){H.addContext({subCategory:Et.COMMAND_EXECUTION});let e;try{e=ei.getTestCommand(this.relativePath)}catch(e){return e instanceof Error?e.message:`Framework is not supported yet`}return await this.runCommandOnFile(e.command,ti.suppress_1,!0)}async runTestCommandOnTempFile(e){H.addContext({subCategory:Et.COMMAND_EXECUTION});let t;try{t=ei.getTestCommand(this.relativePath)}catch(e){return e instanceof Error?e.message:`Framework is not supported yet`}return await this.runCommandWithContent(e,t.command,{validExitCodes:ti.suppress_1,filePrefix:ni,predefinedPath:this.relativePath},!0)}async runFormatCommand(){H.addContext({subCategory:Et.COMMAND_EXECUTION});let e=Ue().getPrettierCommand();H.debug.startLog(`format command: ${e}`);let t=await this.runCommandOnFile(e,ti.all);return H.debug.endLog(`format command: ${e}`),t}async runLintCommand(e=[]){H.addContext({subCategory:Et.COMMAND_EXECUTION});let t=Ue().getLintCommand(),n=e.length>0?t+` `+e.join(` `):t;H.debug.startLog(`lint command: ${n}`);let r=await this.runCommandOnFile(n,ti.all);return H.debug.endLog(`lint command: ${n}`),r}};let ai=e=>{let t=e.name??``,n=e.type;return{methodType:n,methodName:t,parentName:n===`method`?e.parentName:void 0}};async function oi(e,{methodType:t,methodName:n,parentName:r}){let i=new Mn(await new et(e).getText()).testables.findTestable(t,n,r);if(!(0,h.isDefined)(i))throw new sr(ar.TESTABLE_NOT_FOUND,{methodName:n});return i}function si(e,t){return(0,h.isDefined)(t)&&!(0,h.isEmpty)(t)?`${t}.${e}`:e}function ci(e){if(!e||e.trim()===``)return[];let t=e.indexOf(`[`),n=e.lastIndexOf(`]`),r=t!==-1&&n!==-1&&n>t?e.slice(t,n+1):e;try{return JSON.parse(r)}catch(e){return H.error(`Failed to parse eslint JSON output`,e),null}}var li=l(Le());let ui=class{contentCache=new Map;filePathIndex=new Map;computeContentHash(e){return Lr(e)}getContentCacheKey(e,t){return`${e}:${t?`fix`:`nofix`}`}evictOldest(){let e=this.contentCache.keys().next().value;(0,h.isDefined)(e)&&(this.contentCache.delete(e),H.debug.defaultLog(`Lint cache evicted oldest entry (FIFO)`))}get(e,t,n){let r=this.computeContentHash(t),i=this.getContentCacheKey(r,n),a=this.contentCache.get(i);return(0,h.isDefined)(a)?(H.debug.defaultLog(`Lint cache hit for ${e}`),a.results):null}set(e,t,n,r){let i=this.computeContentHash(t),a=Date.now(),o=this.getContentCacheKey(i,n);if(!this.contentCache.has(o)&&this.contentCache.size>=100&&this.evictOldest(),this.contentCache.set(o,{results:r,contentHash:i,withFix:n,timestamp:a}),n){let e=this.getContentCacheKey(i,!1);!this.contentCache.has(e)&&this.contentCache.size>=100&&this.evictOldest(),this.contentCache.set(e,{results:r,contentHash:i,withFix:!1,timestamp:a})}this.filePathIndex.set(e,i)}invalidate(e){let t=this.filePathIndex.get(e);if(!(0,h.isDefined)(t))return;let n=this.getContentCacheKey(t,!0),r=this.getContentCacheKey(t,!1),i=this.contentCache.delete(n),a=this.contentCache.delete(r);this.filePathIndex.delete(e),(i||a)&&H.debug.defaultLog(`Lint cache invalidated for ${e}`)}invalidateAll(){let e=this.contentCache.size;this.contentCache.clear(),this.filePathIndex.clear(),e>0&&H.debug.defaultLog(`Lint cache cleared: ${e} entries removed`)}};ui=(0,li.default)([(0,_.injectable)()],ui);let di=function(e){return e[e.ERROR=2]=`ERROR`,e[e.WARN=1]=`WARN`,e[e.OFF=0]=`OFF`,e}({});var fi=l(Ie()),pi=l(Cr()),mi=l(Le()),hi,gi;let _i=class{constructor(e,t){this.globalConfigService=e,this.lintCacheService=t}async disableRules(e){let t=[this.globalConfigService.shouldIgnoreAsAnyLintErrors()?`@typescript-eslint/no-explicit-any`:void 0,...this.globalConfigService.allowUndefinedLintErrors()?Ct:[]].filter(h.isDefined);this.globalConfigService.shouldDisableLintRules()?await this.disableAllLintRules(e):(0,h.isEmpty)(t)||await this.disableLintRules(e,t),await Jt.refreshFromFileSystem(e)}async disableAllLintRules(e){let t=await this.getRulesToDisable(e);if((0,h.isDefined)(t)){if((0,h.isEmpty)(t)){H.info.defaultLog(`No lint rules needed to be disabled`);return}await this.addDisableComment(e,t),H.info.defaultLog(`Added eslint-disable comment for rules: ${t.join(`, `)}`)}}async lintFiles(e,t){let n=et.fromRelativePath(e),r=await n.getText(),i=this.lintCacheService.get(e,r,t);if((0,h.isDefined)(i))return i;let a=t?[`--format`,`json`,`--fix`]:[`--format`,`json`],o=ci(await new ii(e).runLintCommand(a));if(!(0,h.isDefined)(o))return null;if(t){await Jt.refreshFromFileSystem(e);let r=await n.getText();this.lintCacheService.set(e,r,t,o)}else this.lintCacheService.set(e,r,t,o);return o}async lint(e,t){try{return await this.lintFiles(e,t)}catch(e){return H.error(`Failed to get lint results:`,e),null}}async fixLint(e){try{return await this.lint(e,!0)}catch(e){return H.error(`Failed to fix lint:`,e),null}}async getLintResults(e){try{return await this.lint(e,!1)}catch(e){return H.error(`Failed to get lint results:`,e),null}}async getRulesToDisable(e){let t=await this.getLintResults(e);if(!(0,h.isDefined)(t))return null;let n=(t[0]?.messages??[]).filter(e=>e.severity===di.ERROR);return[...new Set(n.map(e=>e.ruleId).filter(h.isDefined))]}async addDisableComment(e,t){let n=et.fromRelativePath(e),r=await n.getText(),i=`/* eslint-disable ${t.join(`, `)} */\n\n`;await n.replace(i+r),this.lintCacheService.invalidate(e)}hasDisableCommentForRules(e,t){let n=e.split(`
32008
32008
  `);for(let e of n){let n=e.indexOf(`/*`),r=e.indexOf(`*/`);if(n===-1||r===-1)continue;let i=e.slice(n+2,r).trim();if(i.startsWith(`eslint-disable`)&&i.replace(`eslint-disable`,``).trim().split(`,`).map(e=>e.trim()).every(e=>t.includes(e)))return!0}return!1}async disableLintRules(e,t){if(!this.globalConfigService.shouldIgnoreAsAnyLintErrors())return;let n=et.fromRelativePath(e),r=await n.getText();if(this.hasDisableCommentForRules(r,t))return;let i=await this.getLintResults(e);if(!(0,h.isDefined)(i)){H.info.defaultLog(`No lint results returned`);return}let a=i[0]?.messages??[],o=t.filter(e=>a.some(t=>t.severity===di.ERROR&&t.ruleId===e));if((0,h.isEmpty)(o))return;let s=`/* eslint-disable ${o.join(`, `)} */\n\n`;await n.replace(s+r),this.lintCacheService.invalidate(e),H.info.defaultLog(`Added eslint-disable comment for ${o.join(`, `)} in ${e}`)}};_i=(0,mi.default)([(0,_.injectable)(),(0,pi.default)(0,(0,_.inject)(He)),(0,pi.default)(1,(0,_.inject)(ui)),(0,fi.default)(`design:paramtypes`,[typeof(hi=He!==void 0&&He)==`function`?hi:Object,typeof(gi=ui!==void 0&&ui)==`function`?gi:Object])],_i);let vi="${methodName}";`${vi}`,`${vi}`;function yi(e,t,n){let r=e.split(`
@@ -32065,11 +32065,11 @@ ${qd}${t.trimStart()}`),n=3+(0,O.stripVTControlCharacters)(t.trimStart()).length
32065
32065
  `,t)+1),`error`);if(n>0)return n}let n=e.indexOf(` error`);return n<=0?0:mf(pf(e,Math.max(0,e.lastIndexOf(`
32066
32066
  `,n)+1)),`error`)}function Sf(e){return Cd.some(t=>t.test(e))}function Cf(e){return e.filter(e=>typeof e==`object`&&!!e&&`type`in e&&`text`in e).map(e=>e.text).join(`
32067
32067
  `)}function wf(e){if(`stdout`in e)return((e.stdout??``)+(e.stderr??``)).trim();if(`output`in e)return String(e.output);if(`content`in e){let t=e.content;if(typeof t==`string`)return t;if(Array.isArray(t))return Cf(t)}return``}function Tf(e){let t=e.tool_response;return typeof t==`string`?t:Array.isArray(t)?Cf(t):typeof t==`object`&&t?wf(t):``}function Ef(e,t){return t===0&&e>0?`ALL ${String(e)} TESTS PASSED. Now run lint (with --fix) and typecheck to verify the test file is fully clean. If all checks pass, you are DONE — stop immediately. If any test has persistent lint or typecheck errors you cannot fix, DELETE that test and re-verify. You must NEVER finish with lint or typecheck errors.`:e>=6?`${String(e)} passed, ${String(t)} failed. Phase 5 (PRUNE): Delete ALL ${String(t)} failing test(s) now. Do NOT attempt to fix them. After pruning, run lint --fix, tests, and typecheck to confirm. If any remaining test has persistent lint or typecheck errors, delete it too. You must NEVER finish with lint or typecheck errors.`:`${String(e)} passed, ${String(t)} failed. Phase 4 (REPAIR): Read the error output and fix the failing tests, then return to Phase 3.`}function Df(e){return e===Sd||e===xd}function Of(e){let t=Tf(e);try{let e=JSON.parse(t);if(`testReport`in e&&(0,h.isDefined)(e.testReport))return e.testReport}catch{}}function kf(e,t){let n=yf(t);if(!(0,h.isDefined)(n))return Yd.debug(`Hook injected: Phase 3 fallback reminder (output not parseable, output length: ${String(t.length)})`),{hookSpecificOutput:{hookEventName:e.hook_event_name,additionalContext:wd}};let r=Ef(n.passed,n.failed);return Yd.debug(`Hook injected: Phase 3 directive (${String(n.passed)} passed, ${String(n.failed)} failed)`),{hookSpecificOutput:{hookEventName:e.hook_event_name,additionalContext:r}}}let Af=async(e,t,{signal:n})=>{if(n.aborted||!Qd(e))return{};if(Df(e.tool_name)){let t=Of(e);if(!(0,h.isDefined)(t))return Yd.debug(`Hook injected: Phase 3 fallback reminder (MCP response missing testReport)`),{hookSpecificOutput:{hookEventName:e.hook_event_name,additionalContext:wd}};let n=Ef(t.passed,t.failed);return Yd.debug(`Hook injected: Phase 3 directive (${String(t.passed)} passed, ${String(t.failed)} failed)`),{hookSpecificOutput:{hookEventName:e.hook_event_name,additionalContext:n}}}return Sf(nf(e))?kf(e,Tf(e)):{}};function jf(e){return e?e.stabilityConflict===!0?`check_all detected a lint/format stability conflict — lint and format commands keep changing the file. Report this to the user instead of retrying.`:`check_all failed. Fix the failing gates, then call check_all again.\n\nFailed gates:\n${e.gates.filter(e=>!e.passed&&!e.skipped).map(e=>{let t=(0,h.isDefined)(e.output)?`\n${e.output}`:``;return`- ${e.gate}: FAILED${t}`}).join(`
32068
- `)}`:`You have not called check_all yet. You must call check_all and get all gates passing before completing your task. Use check_lint, check_format, check_test, check_build to iterate, then call check_all for final verification.`}function Mf(e){return async()=>{let t=e.getLastCheckAllResult();return!t||!t.passed?{decision:`block`,reason:jf(t)}:{}}}var Nf=l(Ie()),Pf=l(Cr()),Ff=l(Le()),If,Lf;let Rf=function(e){return e.OPENAI=`OPENAI`,e.AZURE_OPENAI=`AZURE_OPENAI`,e.ANTHROPIC=`ANTHROPIC`,e}({}),zf=class{provider=Rf.ANTHROPIC;cachedConfig;constructor(e,t){this.apiService=e,this.globalConfigService=t}async getAgentSdkConfig(){if((0,h.isDefined)(this.cachedConfig))return this.cachedConfig;try{let e=await this.apiService.post(`/api/v1/llm-models/active-model`,{provider:this.provider});if((0,h.isDefined)(e))return this.cachedConfig=e,H.info.defaultLog(`Fetched active model config: { provider: ${this.provider}, modelName: ${e.modelName}, capPrice: ${e.capPrice} }`),this.cachedConfig}catch(e){H.default.warn(`Failed to fetch active model config: ${(0,h.getErrorMessage)(e)}`)}return{modelName:`claude-sonnet-4-5-20250929`,capPrice:2}}};zf=(0,Ff.default)([(0,_.injectable)(),(0,Pf.default)(0,(0,_.inject)(kr)),(0,Pf.default)(1,(0,_.inject)(He)),(0,Nf.default)(`design:paramtypes`,[typeof(If=kr!==void 0&&kr)==`function`?If:Object,typeof(Lf=He!==void 0&&He)==`function`?Lf:Object])],zf);function Bf({content:e}){return!(0,h.isArray)(e)||(0,h.isEmpty)(e)?``:e.map(e=>{if((0,h.isString)(e))return e;let t=e;return(0,h.isString)(t.text)?t.text:``}).filter(e=>!(0,h.isEmpty)(e)).join(`
32068
+ `)}`:`You have not called check_all yet. You must call check_all and get all gates passing before completing your task. Use check_lint, check_format, check_test, check_build to iterate, then call check_all for final verification.`}function Mf(e){return async()=>{let t=e.getLastCheckAllResult();return!t||!t.passed?{decision:`block`,reason:jf(t)}:{}}}var Nf=l(Ie()),Pf=l(Cr()),Ff=l(Le()),If,Lf;let Rf=function(e){return e.OPENAI=`OPENAI`,e.AZURE_OPENAI=`AZURE_OPENAI`,e.ANTHROPIC=`ANTHROPIC`,e}({}),zf=class{provider=Rf.ANTHROPIC;cachedConfig;constructor(e,t){this.apiService=e,this.globalConfigService=t}async getAgentSdkConfig(){if((0,h.isDefined)(this.cachedConfig))return this.cachedConfig;try{let e=await this.apiService.post(`/api/v1/llm-models/active-model`,{provider:this.provider});if((0,h.isDefined)(e))return this.cachedConfig=e,H.info.defaultLog(`Fetched active model config: { provider: ${this.provider}, modelName: ${e.modelName}, capPrice: ${e.capPrice} }`),this.cachedConfig}catch(e){H.default.warn(`Failed to fetch active model config: ${(0,h.getErrorMessage)(e)}`)}return{modelName:`claude-sonnet-4-5-20250929`,capPrice:2}}};zf=(0,Ff.default)([(0,_.injectable)(),(0,Pf.default)(0,(0,_.inject)(kr)),(0,Pf.default)(1,(0,_.inject)(He)),(0,Nf.default)(`design:paramtypes`,[typeof(If=kr!==void 0&&kr)==`function`?If:Object,typeof(Lf=He!==void 0&&He)==`function`?Lf:Object])],zf);function Bf({content:e}){return(0,h.isString)(e)?e:!(0,h.isArray)(e)||(0,h.isEmpty)(e)?``:e.map(e=>{if((0,h.isString)(e))return e;let t=e;return(0,h.isString)(t.text)?t.text:``}).filter(e=>!(0,h.isEmpty)(e)).join(`
32069
32069
  `)}let Vf=/Full output saved to:\s*(\S+\.(txt|json))/;function Hf(e){if(!e.includes(`<persisted-output>`))return e;let t=Vf.exec(e);if(!(0,h.isDefined)(t))return e;let n=t[1].trim();try{if((0,w.existsSync)(n))return(0,w.readFileSync)(n,`utf8`)}catch{}return e}let Uf=[/\beslint\b/,/\bnpm\s+run\s+lint\b/,/\bnpx\s+eslint\b/];function Wf(e){return Cd.some(t=>t.test(e))}function Gf(e){return Uf.some(t=>t.test(e))}function Kf(e){let t=e.input;if(!(0,h.isDefined)(t))return``;switch(e.name){case`Read`:case`Write`:case`Edit`:{let e=t.file_path;return typeof e==`string`?e:``}case`Bash`:{let e=t.command;return typeof e==`string`?e:``}case`Glob`:case`Grep`:{let e=t.pattern;return typeof e==`string`?e:``}default:return``}}function qf(e){return e.split(`
32070
32070
  `).length}function Jf(e){return e.split(`
32071
32071
  `).filter(e=>e.trim()!==``).length}function Yf(e){if(typeof e==`string`)return e;if(Array.isArray(e)){let t=e.filter(e=>typeof e==`object`&&!!e&&typeof e.text==`string`).map(e=>e.text);return t.length>0?t.join(`
32072
- `):JSON.stringify(e)}return JSON.stringify(e??``)}var Xf=class{iterationCount=0;toolUseMap=new Map;lastTestRunResult;lastLintErrorCount=0;lintToolUseIds=new Set;isVerbose;constructor(e=!1){this.isVerbose=e}logStart(e){e.model,e.budget}logMessage(e){switch(e.type){case`system`:this.handleSystemMessage(e);break;case`assistant`:this.handleAssistantMessage(e);break;case`user`:this.handleUserMessage(e);break;default:break}}logResult(e){e.subtype,e.num_turns;let t=e.total_cost_usd?.toFixed(4)??`N/A`,n=(e.duration_ms/1e3).toFixed(1);this.iterationCount,``+t,n+``}getIterationCount(){return this.iterationCount}buildValidationSummary(){let e=this.lastTestRunResult;return{greenTestsCount:e?.passed??0,redTestsCount:e?.failed??0,greyTestsCount:0,whiteTestsCount:0,naTestsCount:0,errorSuitsCount:e?.suitesFailed??0,lintErrorsCount:this.lastLintErrorCount}}handleSystemMessage(e){let t=cf(e);if(t.subtype!==`init`)return;let n=t.model??`unknown`,r=(0,h.isDefined)(t.session_id)?t.session_id.slice(0,8):`N/A`;Yd.debug(`Session `+r+` initialized | model: `+n)}handleAssistantMessage(e){let t=sf(e);if((0,h.isDefined)(t))for(let e of t)e.type===`text`&&typeof e.text==`string`&&e.text.trim()!==``?Yd.thinking(e.text.trim()):e.type===`tool_use`&&this.handleToolUse(e)}handleToolUse(e){let t=Kf(e),n=e.name??`Unknown`;if((0,h.isDefined)(e.id)&&this.toolUseMap.set(e.id,n),n===`Bash`&&Wf(t)){this.iterationCount+=1,this.iterationCount>1&&Yd.iterationSeparator(),Yd.testRun(this.iterationCount,t);return}n===`Bash`&&Gf(t)&&(0,h.isDefined)(e.id)&&this.lintToolUseIds.add(e.id),Yd.tool(n,t),this.isVerbose&&this.logVerboseToolUse(n,e)}logVerboseToolUse(e,t){if(e!==`Edit`||!(0,h.isDefined)(t.input))return;let n=typeof t.input.file_path==`string`?t.input.file_path:``,r=typeof t.input.old_string==`string`?t.input.old_string:``,i=typeof t.input.new_string==`string`?t.input.new_string:``;n!==``&&r!==``&&i!==``&&Xd.editDiff(n,r,i)}handleUserMessage(e){let t=sf(e);if((0,h.isDefined)(t)){for(let e of t)if(e.type===`tool_result`){let t=this.toolUseMap.get(e.tool_use_id??``);this.toolUseMap.delete(e.tool_use_id??``),this.logToolResult(e,t)}}}logToolResult(e,t){let n=(0,h.isString)(e.content)?e.content:Bf(e),r=Hf(n),i=e.tool_use_id??``;if(t===xd){this.processCheckAllResult(r);return}this.lintToolUseIds.has(i)&&(this.lintToolUseIds.delete(i),this.lastLintErrorCount=xf(r));let a=bf(r);if((0,h.isDefined)(a)){let e=yf(r);(0,h.isDefined)(e)&&(this.lastTestRunResult=e),this.isVerbose&&Xd.rawOutput(n),r.includes(`failed`)?Yd.testFail(a):Yd.testPass(a);return}this.logToolSpecificResult(e,t,n),this.isVerbose&&t===`Bash`&&Xd.rawOutput(n)}processCheckAllResult(e){try{let t=JSON.parse(e),n=t.gates;if(!Array.isArray(n)){Yd.toolResult(xd,`completed`);return}let r=n.find(e=>e.gate===`testCommand`),i=n.find(e=>e.gate===`lintCommand`);if((0,h.isDefined)(r?.output)){let e=yf(r.output);(0,h.isDefined)(e)&&(this.lastTestRunResult=e);let t=bf(r.output);(0,h.isDefined)(t)&&(r.output.includes(`failed`)?Yd.testFail(t):Yd.testPass(t))}(0,h.isDefined)(i?.output)&&(this.lastLintErrorCount=xf(i.output)),Yd.toolResult(xd,t.passed===!0?`all gates passed`:`some gates failed`)}catch{Yd.toolResult(xd,`completed`)}}logToolSpecificResult(e,t,n){if(e.is_error===!0){Yd.warn((t??`Tool`)+` returned an error`),Yd.warn(`Error content: `+n.slice(0,500));return}switch(t){case`Read`:{let e=qf(n);Yd.toolResult(`Read`,String(e)+` lines`),this.isVerbose&&Xd.filePreview(e,n);break}case`Edit`:Yd.toolResult(`Edit`,`applied successfully`);break;case`Write`:Yd.toolResult(`Write`,`file written`);break;case`Glob`:Yd.toolResult(`Glob`,String(Jf(n))+` files matched`),this.isVerbose&&Xd.searchResults(`Glob`,n);break;case`Grep`:Yd.toolResult(`Grep`,String(Jf(n))+` matches`),this.isVerbose&&Xd.searchResults(`Grep`,n);break;default:(0,h.isDefined)(t)&&t.startsWith(`mcp__`)&&(Yd.toolResult(t,`completed`),this.isVerbose&&Xd.rawOutput(Yf(e.content)));break}}};let Zf=function(e){return e.UNRESOLVED=`unresolved`,e.RESOLVED=`resolved`,e.VERIFIED=`verified`,e}({}),Qf=function(e){return e.PASSED=`passed`,e.FAILED=`failed`,e.SKIPPED=`skipped`,e}({});var $f=class{static TRACED_TOOLS=new Set([`Bash`,xd]);testResultIteration=0;toolsOutputBuffer={};toolUseInfoMap=new Map;constructor(e,t,n,r){this.metricReportService=e,this.parentRequestId=t,this.llmModel=n,this.testFilePath=r}async processMessage(e){try{let{toolsOutput:t,hasTestFileEdit:n}=this.extractToolsOutput(e);Object.assign(this.toolsOutputBuffer,t),n&&Object.keys(this.toolsOutputBuffer).length>0&&(this.testResultIteration+=1,await this.metricReportService.saveOperationMetricsTrace({parentRequestId:this.parentRequestId,llmModel:this.llmModel,testResultIteration:this.testResultIteration,toolsOutput:this.toolsOutputBuffer,testFileContent:this.readTestFileContent()}),this.toolsOutputBuffer={})}catch{H.default.warn(`Failed to process operation metrics trace`)}}async flush(){try{if(Object.keys(this.toolsOutputBuffer).length===0)return;this.testResultIteration+=1,await this.metricReportService.saveOperationMetricsTrace({parentRequestId:this.parentRequestId,llmModel:this.llmModel,testResultIteration:this.testResultIteration,toolsOutput:this.toolsOutputBuffer,testFileContent:this.readTestFileContent()}),this.toolsOutputBuffer={}}catch{H.default.warn(`Failed to process operation metrics trace`)}}logSyntheticTool(e,t,n){let r=Date.now();this.toolsOutputBuffer[e]={tool:e,input:t,content:[{type:`text`,text:JSON.stringify(n,null,2)}],startedAt:r,completedAt:r}}addPreVerification(e,t,n){let r=[`testCommand`,`buildCommand`,`lintCommand`,`prettierCommand`].map(e=>{let n=t[e];return{gate:e,passed:n.status===Qf.PASSED,skipped:n.status===Qf.SKIPPED,...n.status!==Qf.SKIPPED&&{command:n.command},...n.status===Qf.FAILED&&{output:n.output}}});this.logSyntheticTool(`pre-verification`,e,{passed:t.passed,gates:r}),this.logSyntheticTool(`decision`,t,n)}readTestFileContent(){try{return(0,w.readFileSync)(this.testFilePath,`utf8`)}catch{return}}extractToolsOutput(e){let t=sf(e);if(!(0,h.isDefined)(t))return{toolsOutput:{},hasTestFileEdit:!1};let n={},r=!1;for(let e of t)e.type===`tool_result`&&(0,h.isDefined)(e.tool_use_id)&&this.processToolResultBlock(e.tool_use_id,e,n),e.type===`tool_use`&&(0,h.isDefined)(e.id)&&(0,h.isDefined)(e.name)&&(r=this.processToolUseBlock(e.id,e)||r);return{toolsOutput:n,hasTestFileEdit:r}}processToolResultBlock(e,t,n){let r=this.toolUseInfoMap.get(e);if(!(0,h.isDefined)(r))return;let i;try{if(r.tool===`Bash`)i=yf(String(t.content));else if(r.tool===xd){let e=this.extractCheckAllTestOutput(t.content);i=(0,h.isDefined)(e)?yf(e):void 0}}catch{}n[e]={...r,content:t.content,is_error:t.is_error,completedAt:Date.now(),...(0,h.isDefined)(i)&&{testResult:i}},this.toolUseInfoMap.delete(e)}extractCheckAllTestOutput(e){let t=Array.isArray(e)?e.find(e=>typeof e==`object`&&!!e&&typeof e.text==`string`)?.text??``:String(e);return JSON.parse(t).gates?.find(e=>e.gate===`testCommand`)?.output}processToolUseBlock(e,t){let n=t.name??``,r=t.input;return this.toolUseInfoMap.set(e,{tool:n,input:r,startedAt:Date.now()}),(n===`Edit`||n===`Write`)&&r?.file_path===this.testFilePath}},ep=class extends Error{name=`SdkRunnerError`;constructor(e,t,n){super(`SDK runner failed: ${e}`),this.subtype=e,this.errors=t,this.costUsd=n}};let tp=`test("placeholder", () => {
32072
+ `):JSON.stringify(e)}return JSON.stringify(e??``)}var Xf=class{iterationCount=0;toolUseMap=new Map;lastTestRunResult;lastLintErrorCount=0;lintToolUseIds=new Set;isVerbose;constructor(e=!1){this.isVerbose=e}logStart(e){e.model,e.budget}logMessage(e){switch(e.type){case`system`:this.handleSystemMessage(e);break;case`assistant`:this.handleAssistantMessage(e);break;case`user`:this.handleUserMessage(e);break;default:break}}logResult(e){e.subtype,e.num_turns;let t=e.total_cost_usd?.toFixed(4)??`N/A`,n=(e.duration_ms/1e3).toFixed(1);this.iterationCount,``+t,n+``}getIterationCount(){return this.iterationCount}buildValidationSummary(){let e=this.lastTestRunResult;return{greenTestsCount:e?.passed??0,redTestsCount:e?.failed??0,greyTestsCount:0,whiteTestsCount:0,naTestsCount:0,errorSuitsCount:e?.suitesFailed??0,lintErrorsCount:this.lastLintErrorCount}}handleSystemMessage(e){let t=cf(e);if(t.subtype!==`init`)return;let n=t.model??`unknown`,r=(0,h.isDefined)(t.session_id)?t.session_id.slice(0,8):`N/A`;Yd.debug(`Session `+r+` initialized | model: `+n)}handleAssistantMessage(e){let t=sf(e);if((0,h.isDefined)(t))for(let e of t)e.type===`text`&&typeof e.text==`string`&&e.text.trim()!==``?Yd.thinking(e.text.trim()):e.type===`tool_use`&&this.handleToolUse(e)}handleToolUse(e){let t=Kf(e),n=e.name??`Unknown`;if((0,h.isDefined)(e.id)&&this.toolUseMap.set(e.id,n),n===`Bash`&&Wf(t)){this.iterationCount+=1,this.iterationCount>1&&Yd.iterationSeparator(),Yd.testRun(this.iterationCount,t);return}n===`Bash`&&Gf(t)&&(0,h.isDefined)(e.id)&&this.lintToolUseIds.add(e.id),Yd.tool(n,t),this.isVerbose&&this.logVerboseToolUse(n,e)}logVerboseToolUse(e,t){if(e!==`Edit`||!(0,h.isDefined)(t.input))return;let n=typeof t.input.file_path==`string`?t.input.file_path:``,r=typeof t.input.old_string==`string`?t.input.old_string:``,i=typeof t.input.new_string==`string`?t.input.new_string:``;n!==``&&r!==``&&i!==``&&Xd.editDiff(n,r,i)}handleUserMessage(e){let t=sf(e);if((0,h.isDefined)(t)){for(let e of t)if(e.type===`tool_result`){let t=this.toolUseMap.get(e.tool_use_id??``);this.toolUseMap.delete(e.tool_use_id??``),this.logToolResult(e,t)}}}logToolResult(e,t){let n=(0,h.isString)(e.content)?e.content:Bf(e),r=Hf(n),i=e.tool_use_id??``;if(t===xd){this.processCheckAllResult(r);return}this.lintToolUseIds.has(i)&&(this.lintToolUseIds.delete(i),this.lastLintErrorCount=xf(r));let a=bf(r);if((0,h.isDefined)(a)){let e=yf(r);(0,h.isDefined)(e)&&(this.lastTestRunResult=e),this.isVerbose&&Xd.rawOutput(n),r.includes(`failed`)?Yd.testFail(a):Yd.testPass(a);return}this.logToolSpecificResult(e,t,n),this.isVerbose&&t===`Bash`&&Xd.rawOutput(n)}processCheckAllResult(e){try{let t=JSON.parse(e),n=t.gates;if(!Array.isArray(n)){Yd.toolResult(xd,`completed`);return}let r=n.find(e=>e.gate===`testCommand`),i=n.find(e=>e.gate===`lintCommand`);if((0,h.isDefined)(r?.output)){let e=yf(r.output);(0,h.isDefined)(e)&&(this.lastTestRunResult=e);let t=bf(r.output);(0,h.isDefined)(t)&&(r.output.includes(`failed`)?Yd.testFail(t):Yd.testPass(t))}(0,h.isDefined)(i?.output)&&(this.lastLintErrorCount=xf(i.output)),Yd.toolResult(xd,t.passed===!0?`all gates passed`:`some gates failed`)}catch{Yd.toolResult(xd,`completed`)}}logToolSpecificResult(e,t,n){if(e.is_error===!0){Yd.warn((t??`Tool`)+` returned an error`),Yd.warn(`Error content: `+n.slice(0,500));return}switch(t){case`Read`:{let e=qf(n);Yd.toolResult(`Read`,String(e)+` lines`),this.isVerbose&&Xd.filePreview(e,n);break}case`Edit`:Yd.toolResult(`Edit`,`applied successfully`);break;case`Write`:Yd.toolResult(`Write`,`file written`);break;case`Glob`:Yd.toolResult(`Glob`,String(Jf(n))+` files matched`),this.isVerbose&&Xd.searchResults(`Glob`,n);break;case`Grep`:Yd.toolResult(`Grep`,String(Jf(n))+` matches`),this.isVerbose&&Xd.searchResults(`Grep`,n);break;default:(0,h.isDefined)(t)&&t.startsWith(`mcp__`)&&(Yd.toolResult(t,`completed`),this.isVerbose&&Xd.rawOutput(Yf(e.content)));break}}};let Zf=function(e){return e.UNRESOLVED=`unresolved`,e.RESOLVED=`resolved`,e.VERIFIED=`verified`,e}({}),Qf=function(e){return e.PASSED=`passed`,e.FAILED=`failed`,e.SKIPPED=`skipped`,e}({});var $f=class{static TRACED_TOOLS=new Set([`Bash`,xd]);testResultIteration=0;toolsOutputBuffer={};toolUseInfoMap=new Map;constructor(e,t,n,r){this.metricReportService=e,this.parentRequestId=t,this.llmModel=n,this.testFilePath=r}async processMessage(e){try{let{toolsOutput:t,hasTestFileEdit:n}=this.extractToolsOutput(e);Object.assign(this.toolsOutputBuffer,t),n&&Object.keys(this.toolsOutputBuffer).length>0&&(this.testResultIteration+=1,await this.metricReportService.saveOperationMetricsTrace({parentRequestId:this.parentRequestId,llmModel:this.llmModel,testResultIteration:this.testResultIteration,toolsOutput:this.toolsOutputBuffer,testFileContent:this.readTestFileContent()}),this.toolsOutputBuffer={})}catch{H.default.warn(`Failed to process operation metrics trace`)}}async flush(){try{if(Object.keys(this.toolsOutputBuffer).length===0)return;this.testResultIteration+=1,await this.metricReportService.saveOperationMetricsTrace({parentRequestId:this.parentRequestId,llmModel:this.llmModel,testResultIteration:this.testResultIteration,toolsOutput:this.toolsOutputBuffer,testFileContent:this.readTestFileContent()}),this.toolsOutputBuffer={}}catch{H.default.warn(`Failed to process operation metrics trace`)}}logSyntheticTool(e,t,n){let r=Date.now();this.toolsOutputBuffer[e]={tool:e,input:t,content:[{type:`text`,text:JSON.stringify(n,null,2)}],startedAt:r,completedAt:r}}addPreVerification(e,t,n){let r=[`testCommand`,`buildCommand`,`lintCommand`,`prettierCommand`].map(e=>{let n=t[e];return{gate:e,passed:n.status===Qf.PASSED,skipped:n.status===Qf.SKIPPED,...n.status!==Qf.SKIPPED&&{command:n.command},...n.status===Qf.FAILED&&{output:n.output}}});this.logSyntheticTool(`pre-verification`,e,{passed:t.passed,gates:r}),this.logSyntheticTool(`decision`,t,n)}readTestFileContent(){try{return(0,w.readFileSync)(this.testFilePath,`utf8`)}catch{return}}extractToolsOutput(e){let t=sf(e);if(!(0,h.isDefined)(t))return{toolsOutput:{},hasTestFileEdit:!1};let n={},r=!1;for(let e of t)e.type===`tool_result`&&(0,h.isDefined)(e.tool_use_id)&&this.processToolResultBlock(e.tool_use_id,e,n),e.type===`tool_use`&&(0,h.isDefined)(e.id)&&(0,h.isDefined)(e.name)&&(r=this.processToolUseBlock(e.id,e)||r);return{toolsOutput:n,hasTestFileEdit:r}}processToolResultBlock(e,t,n){let r=this.toolUseInfoMap.get(e);if(!(0,h.isDefined)(r))return;let i=Hf(Bf(t)),a;try{if(r.tool===`Bash`)a=yf(i);else if(r.tool===xd){let e=this.extractCheckAllTestOutput(i);a=(0,h.isDefined)(e)?yf(e):void 0}}catch{}n[e]={...r,content:i,is_error:t.is_error,completedAt:Date.now(),...(0,h.isDefined)(a)&&{testResult:a}},this.toolUseInfoMap.delete(e)}extractCheckAllTestOutput(e){return JSON.parse(e).gates?.find(e=>e.gate===`testCommand`)?.output}processToolUseBlock(e,t){let n=t.name??``,r=t.input;return this.toolUseInfoMap.set(e,{tool:n,input:r,startedAt:Date.now()}),(n===`Edit`||n===`Write`)&&r?.file_path===this.testFilePath}},ep=class extends Error{name=`SdkRunnerError`;constructor(e,t,n){super(`SDK runner failed: ${e}`),this.subtype=e,this.errors=t,this.costUsd=n}};let tp=`test("placeholder", () => {
32073
32073
  expect(true).toBe(true);
32074
32074
  });
32075
32075
  `;function np(e){switch(e){case`jest`:case`vitest`:return tp;case`mocha`:return`const assert = require("assert");
@@ -32081,7 +32081,7 @@ it("placeholder", () => {
32081
32081
  `)}function em(e){return[``,`<environment>`,`Your working directory is: \`${e}\``,`All tools (Bash, Read, Glob, Grep, Edit) operate relative to this directory automatically.`,"- Do NOT use `cd` to change directories before running commands. Commands like `npm run test` already run from the project root.","- Prefer using relative paths (e.g. `src/services/foo.ts`) instead of absolute paths.",`</environment>`].join(`
32082
32082
  `)}function tm(e){let t=[``,`<project-setup>`,`The following project tooling was verified. Use these commands directly.`,``];e.testCommand.status!==Zf.UNRESOLVED&&t.push(`- **Test command**: \`${e.testCommand.command}\``),e.buildCommand.status!==Zf.UNRESOLVED&&t.push(`- **Build command**: \`${e.buildCommand.command}\``),e.lintCommand.status!==Zf.UNRESOLVED&&t.push(`- **Lint command**: \`${e.lintCommand.command}\``),e.prettierCommand.status!==Zf.UNRESOLVED&&t.push(`- **Prettier command**: \`${e.prettierCommand.command}\``),t.push(`- **Package manager**: ${e.packageManager}`);let n=[];return e.testCommand.status===Zf.UNRESOLVED&&n.push(`testCommand`),e.buildCommand.status===Zf.UNRESOLVED&&n.push(`buildCommand`),e.lintCommand.status===Zf.UNRESOLVED&&n.push(`lintCommand`),e.prettierCommand.status===Zf.UNRESOLVED&&n.push(`prettierCommand`),(0,h.isEmpty)(n)||t.push(``,`The following commands could not be auto-discovered: ${n.join(`, `)}.`,`Search package.json and project config files to find these manually. Do NOT search for commands already listed above.`),t.push(`</project-setup>`),t.join(`
32083
32083
  `)}function nm(e){let t=[[`testCommand`,e.testCommand],[`buildCommand`,e.buildCommand],[`lintCommand`,e.lintCommand],[`prettierCommand`,e.prettierCommand]],n=[``,`<verification-results>`];for(let[e,r]of t)r.status===Qf.FAILED?n.push(`${e}: FAILED`,`Output:\n${r.output.trim()}`,``):r.status===Qf.PASSED?n.push(`${e}: PASSED`):n.push(`${e}: SKIPPED (command not configured)`);return n.push(`</verification-results>`),n.join(`
32084
- `)}let rm=[`testCommand`,`buildCommand`,`lintCommand`,`prettierCommand`],im={testCommand:`test`,buildCommand:`build`,lintCommand:`lint`,prettierCommand:`format`};function am(e){return e===Qf.PASSED?`✓`:e===Qf.FAILED?`✗`:`-`}function om(e){return rm.map(t=>`${im[t]} ${am(e[t].status)}`).join(` `)}function sm(e){return(0,h.isDefined)(e)?` — ${e.greenTestsCount} green, ${e.redTestsCount} red`:``}function cm(e,t){for(let n of rm){let r=t[n];r.status===Qf.FAILED&&e.verbose(` ${im[n]} output: ${r.output}`)}}function lm(e,t,n){let r=f.default.relative(t,n),i=e.getTestCommand(),a=e.getLintCommand(),o=e.getPrettierCommand(),s=zp(t,n);return(0,h.isDefined)(i)&&i!==Te&&(s.testCommand=i.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`testCommand`)),a!==Ee&&(s.lintCommand=a.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`lintCommand`)),o!==De&&(s.prettierCommand=o.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`prettierCommand`)),s}let um=class{constructor(e,t,n,r,i){this.globalConfigService=e,this.authStorage=t,this.llmModelService=n,this.metricReportService=r,this.verificationService=i}async run(e){let t=new AbortController,n=this.globalConfigService.getProgressLogger((0,h.isDefined)(e.methodName)?{parentName:e.parentName,methodName:e.methodName}:void 0);e.abortSignal&&e.abortSignal.addEventListener(`abort`,()=>t.abort());let{modelName:r,capPrice:i}=await this.llmModelService.getAgentSdkConfig(),a=lm(this.globalConfigService,e.workingDirectory,e.testFilePath);H.info.defaultLog(`[precalc] Project setup resolved:\n${JSON.stringify(a,null,2)}`);let o=[[`test`,a.testCommand],[`build`,a.typecheckCommand],[`lint`,a.lintCommand],[`format`,a.prettierCommand]];n.verbose(`Discovered commands:`);for(let[e,t]of o)n.verbose(` ${(0,h.isDefined)(t)?`✓`:`✗`} ${e}: ${t??`not found`}`);let s=H.getRequestId(),c=new $f(this.metricReportService,s,r,e.testFilePath),l=ip(a),u=np(a.testRunner);await(0,p.mkdir)(f.default.dirname(e.testFilePath),{recursive:!0}),await(0,p.writeFile)(e.testFilePath,u,`utf8`);let d=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});H.info.defaultLog(`[verification] Pre-generation: ${JSON.stringify(d,null,2)}`),n.verbose(`Pre-verification:`,om(d)),cm(n,d);let m=l;if(l=fp(l,d,e.testFilePath),c.addPreVerification(m,d,l),d.testCommand.status===Qf.FAILED){let t=d.testCommand.output;throw n.verbose(`Test command failed on dummy test — aborting`),H.default.warn(`[verification] Test command failed on dummy test — aborting.\n${t}`),await c.flush(),await(0,p.unlink)(e.testFilePath),new ep(`test_command_failed`,[`Test command failed: ${t.length>200?t.slice(0,200)+`...(truncated ${t.length-200} chars)`:t}`],0)}H.info.defaultLog(`[verification] Promoted setup: ${JSON.stringify(l,null,2)}`);let g=rm.filter(e=>l[e].status!==Zf.UNRESOLVED).map(e=>im[e]),_=rm.filter(e=>l[e].status===Zf.UNRESOLVED).map(e=>im[e]);n.verbose(`Verified:`,g.join(`, `)+((0,h.isEmpty)(_)?``:` (${_.join(`, `)} dropped)`));let v=await this.runGenerationQuery({...e,model:r,budget:i,verifiedSetup:l,abortController:t,metricsTracer:c,progressLogger:n}),y=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});if(H.info.defaultLog(`[verification] Post-generation: ${JSON.stringify(y,null,2)}`),n.verbose(`Post-verification ${y.passed?`passed`:`failed`}:`,om(y)+sm(v.validationSummary)),y.passed)return v;H.default.warn(`[verification] Gates failed — running cleanup agent to salvage passing tests`),await this.runCleanupQuery({workingDirectory:e.workingDirectory,testFilePath:e.testFilePath,model:r,budget:i,verifiedSetup:l,abortController:t,postVerification:y});let b=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});return H.info.defaultLog(`[verification] Post-cleanup: ${JSON.stringify(b,null,2)}`),n.verbose(`Post-cleanup ${b.passed?`passed`:`failed`}:`,om(b)),b.passed?{code:Zp(e.testFilePath),costUsd:v.costUsd,validationSummary:v.validationSummary}:(H.default.warn(`[verification] Cleanup failed — deleting test file: ${e.testFilePath}`),await(0,p.unlink)(e.testFilePath),{code:``,costUsd:v.costUsd,validationSummary:v.validationSummary})}async runCleanupQuery(e){let t=ff(e.testFilePath,e.workingDirectory),n=await this.authStorage.getJWTToken()??``,r=Math.max(e.budget*.25,.25),i=[...yd],a=new Xf(!1),o=H.getRequestId(),s=new $f(this.metricReportService,o,e.model,e.testFilePath);a.logStart({model:e.model,budget:r,cwd:e.workingDirectory,testFile:e.testFilePath,tools:i,hooks:{pre:[`file-restriction`,`env-protection`,`dangerous-command`,`bash-exit-code`],post:[]},maxTurns:15});let c=[`You are a test cleanup agent.`,`The generated test file has failed quality checks (lint, typecheck, prettier, or test failures).`,`Your ONLY goal is to salvage passing tests by removing test cases that fail any check.`,`DO NOT generate new tests. DO NOT fix or modify the logic of any existing test.`,`DO NOT add new imports or describe blocks.`,`Run the available checks, identify failing test cases, and remove them from the file.`,`Keep all tests that pass every check. Leave the file with only clean, passing tests.`].join(` `),l=`The test file at ${e.testFilePath} has failed quality verification.\nThe verification results below were already collected — use them directly to identify failing tests.\nRemove only the failing test cases from the file. Do not generate new tests and do not fix any test.\nAfter removing failing tests, re-run all configured checks (all non-skipped commands) to confirm they all pass.`+nm(e.postVerification)+em(e.workingDirectory)+tm(e.verifiedSetup),u=(0,oe.query)({prompt:l,options:{model:e.model,systemPrompt:c,allowedTools:[...yd],permissionMode:vd,allowDangerouslySkipPermissions:!0,maxBudgetUsd:r,maxTurns:15,cwd:e.workingDirectory,abortController:e.abortController,sessionId:(0,y.randomUUID)(),env:{...process.env,ANTHROPIC_BASE_URL:this.globalConfigService.getAnthropicProxyUrl(),ANTHROPIC_AUTH_TOKEN:n,ANTHROPIC_CUSTOM_HEADERS:[`x-request-id: `+H.getRequestId()].join(`
32084
+ `)}let rm=[`testCommand`,`buildCommand`,`lintCommand`,`prettierCommand`],im={testCommand:`test`,buildCommand:`build`,lintCommand:`lint`,prettierCommand:`format`};function am(e){return e===Qf.PASSED?`✓`:e===Qf.FAILED?`✗`:`-`}function om(e){return rm.map(t=>`${im[t]} ${am(e[t].status)}`).join(` `)}function sm(e){return(0,h.isDefined)(e)?` — ${e.greenTestsCount} green, ${e.redTestsCount} red`:``}function cm(e,t){for(let n of rm){let r=t[n];r.status===Qf.FAILED&&e.debug(` ${im[n]} output: ${r.output}`)}}function lm(e,t,n){let r=f.default.relative(t,n),i=e.getTestCommand(),a=e.getLintCommand(),o=e.getPrettierCommand(),s=zp(t,n);return(0,h.isDefined)(i)&&i!==Te&&(s.testCommand=i.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`testCommand`)),a!==Ee&&(s.lintCommand=a.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`lintCommand`)),o!==De&&(s.prettierCommand=o.replaceAll(Ce,r),s.missing=s.missing.filter(e=>e!==`prettierCommand`)),s}let um=class{constructor(e,t,n,r,i){this.globalConfigService=e,this.authStorage=t,this.llmModelService=n,this.metricReportService=r,this.verificationService=i}async run(e){let t=new AbortController,n=this.globalConfigService.getProgressLogger((0,h.isDefined)(e.methodName)?{parentName:e.parentName,methodName:e.methodName}:void 0);e.abortSignal&&e.abortSignal.addEventListener(`abort`,()=>t.abort());let{modelName:r,capPrice:i}=await this.llmModelService.getAgentSdkConfig(),a=lm(this.globalConfigService,e.workingDirectory,e.testFilePath);H.info.defaultLog(`[precalc] Project setup resolved:\n${JSON.stringify(a,null,2)}`);let o=[[`test`,a.testCommand],[`build`,a.typecheckCommand],[`lint`,a.lintCommand],[`format`,a.prettierCommand]];n.verbose(`Discovered commands:`);for(let[e,t]of o)n.verbose(` ${(0,h.isDefined)(t)?`✓`:`✗`} ${e}: ${t??`not found`}`);let s=H.getRequestId(),c=new $f(this.metricReportService,s,r,e.testFilePath),l=ip(a),u=np(a.testRunner);await(0,p.mkdir)(f.default.dirname(e.testFilePath),{recursive:!0}),await(0,p.writeFile)(e.testFilePath,u,`utf8`);let d=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});H.info.defaultLog(`[verification] Pre-generation: ${JSON.stringify(d,null,2)}`),n.verbose(`Pre-verification:`,om(d)),cm(n,d);let m=l;if(l=fp(l,d,e.testFilePath),c.addPreVerification(m,d,l),d.testCommand.status===Qf.FAILED){let t=d.testCommand.output;throw n.verbose(`Test command failed on dummy test — aborting`),H.default.warn(`[verification] Test command failed on dummy test — aborting.\n${t}`),await c.flush(),await(0,p.unlink)(e.testFilePath),new ep(`test_command_failed`,[`Test command failed: ${t.length>200?t.slice(0,200)+`...(truncated ${t.length-200} chars)`:t}`],0)}H.info.defaultLog(`[verification] Promoted setup: ${JSON.stringify(l,null,2)}`);let g=rm.filter(e=>l[e].status!==Zf.UNRESOLVED).map(e=>im[e]),_=rm.filter(e=>l[e].status===Zf.UNRESOLVED).map(e=>im[e]);n.verbose(`Verified:`,g.join(`, `)+((0,h.isEmpty)(_)?``:` (${_.join(`, `)} dropped)`));let v=await this.runGenerationQuery({...e,model:r,budget:i,verifiedSetup:l,abortController:t,metricsTracer:c,progressLogger:n}),y=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});if(H.info.defaultLog(`[verification] Post-generation: ${JSON.stringify(y,null,2)}`),n.verbose(`Post-verification ${y.passed?`passed`:`failed`}:`,om(y)+sm(v.validationSummary)),y.passed)return v;H.default.warn(`[verification] Gates failed — running cleanup agent to salvage passing tests`),await this.runCleanupQuery({workingDirectory:e.workingDirectory,testFilePath:e.testFilePath,model:r,budget:i,verifiedSetup:l,abortController:t,postVerification:y});let b=await this.verificationService.verify({setup:l,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory});return H.info.defaultLog(`[verification] Post-cleanup: ${JSON.stringify(b,null,2)}`),n.verbose(`Post-cleanup ${b.passed?`passed`:`failed`}:`,om(b)),b.passed?{code:Zp(e.testFilePath),costUsd:v.costUsd,validationSummary:v.validationSummary}:(H.default.warn(`[verification] Cleanup failed — deleting test file: ${e.testFilePath}`),await(0,p.unlink)(e.testFilePath),{code:``,costUsd:v.costUsd,validationSummary:v.validationSummary})}async runCleanupQuery(e){let t=ff(e.testFilePath,e.workingDirectory),n=await this.authStorage.getJWTToken()??``,r=Math.max(e.budget*.25,.25),i=[...yd],a=new Xf(!1),o=H.getRequestId(),s=new $f(this.metricReportService,o,e.model,e.testFilePath);a.logStart({model:e.model,budget:r,cwd:e.workingDirectory,testFile:e.testFilePath,tools:i,hooks:{pre:[`file-restriction`,`env-protection`,`dangerous-command`,`bash-exit-code`],post:[]},maxTurns:15});let c=[`You are a test cleanup agent.`,`The generated test file has failed quality checks (lint, typecheck, prettier, or test failures).`,`Your ONLY goal is to salvage passing tests by removing test cases that fail any check.`,`DO NOT generate new tests. DO NOT fix or modify the logic of any existing test.`,`DO NOT add new imports or describe blocks.`,`Run the available checks, identify failing test cases, and remove them from the file.`,`Keep all tests that pass every check. Leave the file with only clean, passing tests.`].join(` `),l=`The test file at ${e.testFilePath} has failed quality verification.\nThe verification results below were already collected — use them directly to identify failing tests.\nRemove only the failing test cases from the file. Do not generate new tests and do not fix any test.\nAfter removing failing tests, re-run all configured checks (all non-skipped commands) to confirm they all pass.`+nm(e.postVerification)+em(e.workingDirectory)+tm(e.verifiedSetup),u=(0,oe.query)({prompt:l,options:{model:e.model,systemPrompt:c,allowedTools:[...yd],permissionMode:vd,allowDangerouslySkipPermissions:!0,maxBudgetUsd:r,maxTurns:15,cwd:e.workingDirectory,abortController:e.abortController,sessionId:(0,y.randomUUID)(),env:{...process.env,ANTHROPIC_BASE_URL:this.globalConfigService.getAnthropicProxyUrl(),ANTHROPIC_AUTH_TOKEN:n,ANTHROPIC_CUSTOM_HEADERS:[`x-request-id: `+H.getRequestId()].join(`
32085
32085
  `)},hooks:{PreToolUse:[{matcher:`Write|Edit`,hooks:[t]},{matcher:`Read`,hooks:[df]},{matcher:`Bash`,hooks:[uf,lf]}]}}});for await(let e of u)if(a.logMessage(e),await s.processMessage(e),$d(e)){await s.flush(),a.logResult(e),H.info.defaultLog(`[cleanup] SDK model usage: `,e.modelUsage),ef(e)&&H.default.warn(`[cleanup] Agent finished with error: ${e.subtype}`);break}}async runGenerationQuery(e){let t=ff(e.testFilePath,e.workingDirectory),n=bd?new Up({setup:e.verifiedSetup,testFilePath:e.testFilePath,workingDirectory:e.workingDirectory,progressLogger:e.progressLogger}):void 0,r=n?Mf(n):void 0,i=new Xf(!1),a=[...yd];i.logStart({model:e.model,budget:e.budget,cwd:e.workingDirectory,testFile:e.testFilePath,tools:a,hooks:{pre:[`file-restriction`,`env-protection`,`dangerous-command`,`bash-exit-code`],post:[`test-prune`],...bd&&{stop:[`verification-gates`]}}});let o=$p(e.userPrompt,e.testFilePath)+em(e.workingDirectory)+tm(e.verifiedSetup),s=await this.authStorage.getJWTToken()??``,{metricsTracer:c}=e,l=(0,oe.query)({prompt:o,options:{model:e.model,systemPrompt:e.systemPrompt,allowedTools:a,permissionMode:vd,allowDangerouslySkipPermissions:!0,maxBudgetUsd:e.budget,cwd:e.workingDirectory,abortController:e.abortController,sessionId:(0,y.randomUUID)(),env:{...process.env,ANTHROPIC_BASE_URL:this.globalConfigService.getAnthropicProxyUrl(),ANTHROPIC_AUTH_TOKEN:s,ANTHROPIC_CUSTOM_HEADERS:[`x-request-id: `+H.getRequestId()].join(`
32086
32086
  `)},...n&&{mcpServers:{verification_gates:n.getServer()}},hooks:{PreToolUse:[{matcher:`Write|Edit`,hooks:[t]},{matcher:`Read`,hooks:[df]},{matcher:`Bash`,hooks:[uf,lf]}],PostToolUse:[{matcher:`Bash`,hooks:[Af]},{matcher:`${Sd}|${xd}`,hooks:[Af]}],...r&&{Stop:[{hooks:[r]}]}}}});for await(let t of l)if(i.logMessage(t),await c.processMessage(t),$d(t)){if(await c.flush(),i.logResult(t),H.info.defaultLog(`SDK model usage: `,t.modelUsage),ef(t))throw new ep(t.subtype,t.errors,t.total_cost_usd);let r=Zp(e.testFilePath),a=n?.buildValidationSummary()??i.buildValidationSummary();if(H.info.defaultLog(`Validation summary: `,a),!(0,h.isEmpty)(r)){let n=Qp(t)+r;return(0,w.writeFileSync)(e.testFilePath,n,`utf8`),{code:n,costUsd:t.total_cost_usd,validationSummary:a}}return{code:r,costUsd:t.total_cost_usd,validationSummary:a}}return{code:Zp(e.testFilePath)}}};um=(0,Kp.default)([(0,_.injectable)(),(0,Gp.default)(0,(0,_.inject)(He)),(0,Gp.default)(1,(0,_.inject)(Sr)),(0,Gp.default)(2,(0,_.inject)(zf)),(0,Gp.default)(3,(0,_.inject)(Yr)),(0,Gp.default)(4,(0,_.inject)(dp)),(0,Wp.default)(`design:paramtypes`,[Object,typeof(qp=Sr!==void 0&&Sr)==`function`?qp:Object,typeof(Jp=zf!==void 0&&zf)==`function`?Jp:Object,typeof(Yp=Yr!==void 0&&Yr)==`function`?Yp:Object,typeof(Xp=dp!==void 0&&dp)==`function`?Xp:Object])],um);var dm=class{execute(e){let t=!1,n=new Set(e.getKnownDependenciesSnapshot().flatMap(t=>e.getParentParameterRelations(t).filter(e=>e.depthLevelInParent>0).map(e=>e.parameterParentId)));for(let r of e.getKnownDependenciesSnapshot())e.getParentParameterRelations(r).every(e=>n.has(e.parameterParentId))&&(t||=e.moveKnownDependencyToMissing(r.name));let r=e.getDataSource().testedCodeDataSource.codeDependencies.length;return e.getDataSource().testedCodeDataSource.codeDependencies=e.getDataSource().testedCodeDataSource.codeDependencies.filter(t=>!e.getParentParameterRelations(t).every(e=>e.depthLevelInParent>0)),e.getDataSource().testedCodeDataSource.codeDependencies.length!==r&&(t=!0),t}},fm=class{kindsToRemove;constructor(...e){this.kindsToRemove=new Set(e)}execute(e){let t=!1;for(let n of e.getKnownDependenciesSnapshot())this.kindsToRemove.has(n.kind)&&(t||=e.moveKnownDependencyToMissing(n.name));return t}},pm=class{execute(e){let t=e.getDataSource().testedCodeDataSource.testedMethodClass,n=t?.constructorMetadata?.parameters??[],r=t?.properties??[],i=[...n,...r];return e.moveKnownDependencyToMissingByParameters(i)}},mm=class{kinds;constructor(...e){this.kinds=new Set(e)}execute(e){let t=!1,n=e.getMissingDependenciesSnapshot();for(let[r,i]of n.entries())this.kinds.has(i.kind)&&(t||=e.removeCodeInMissingDependencyByIndex(r));return t}},hm=class{execute(e){let t=e.getDataSource().testedCodeDataSource.testedMethod.parameters??[];return e.moveKnownDependencyToMissingByParameters(t)}},gm=class{execute(e){let t=e.getDataSourceSnapshot(),n=this.getParameters(t),r=!1;for(let i=0;i<t.testedCodeDataSource.missingDependencies.length;i++){let a=t.testedCodeDataSource.missingDependencies[i];(0,h.isDefined)(a.dependencyMetadata)&&(this.isMockDependencyKept(a.dependencyMetadata,n)||(r||=e.removeMockDependencyByIndex(i)))}return r}isMockDependencyKept(e,t){if((0,h.isEmpty)(t))return!1;let n=this.getParametersIdsFromMockDependency(e),r=(0,h.intersection)([...t],[...n]);return!(0,h.isEmpty)(r)}getParametersIdsFromMockDependency(e){let t=new h.SafeSet;if(!(0,h.isDefined)(e))return t.toSet();for(let n of e?.methodsMetadata??[]){for(let e of n.parameters)t.safeAdd(e.id);t.safeAdd(n?.returnParam?.id)}for(let n of e?.classMetadata?.properties??[])t.safeAdd(n?.id);for(let n of e?.classMetadata?.constructorMetadata?.parameters??[])t.safeAdd(n?.id);return t.toSet()}getParameters(e){let t=e.testedCodeDataSource.testedMethod.parameters.map(e=>e.id),n=e.testedCodeDataSource.testedMethod.returnParam?.id,r=e.testedCodeDataSource.testedMethodClass?.constructorMetadata?.parameters.map(e=>e.id)??[],i=e.testedCodeDataSource.testedMethodClass?.properties.map(e=>e.id)??[];return new h.SafeSet([...t,n,...r,...i]).toSet()}},_m=class{execute(e){let t=e.getDataSourceSnapshot(),n=t.testedCodeDataSource.testedMethod.parameters.map(e=>e.id),r=t.testedCodeDataSource.testedMethod.returnParam?.id,i=t.testedCodeDataSource.testedMethodClass?.constructorMetadata?.parameters.map(e=>e.id)??[],a=new Set([...n,r,...i].filter(e=>(0,h.isDefined)(e))),o=!1;for(let t of e.getKnownDependenciesSnapshot())this.isDependencyKept(t,a)||(o||=e.moveKnownDependencyToMissing(t.name));return o}isDependencyKept(e,t){return e.kind===`file`||e.kind===`enum`?!0:e.parentParameterRelations.some(e=>e.depthLevelInParent===0&&t.has(e.parameterParentId))}},vm=class{execute(e){let t=e.getDataSource().testedCodeDataSource.testedMethod.returnParam?.id;return(0,h.isDefined)(t)?e.moveKnowDependencyToMissingByParameterId(t):!1}},ym=class{dataSource;getKnownDependenciesSnapshot(){return this.getDataSourceSnapshot().testedCodeDataSource.codeDependencies}getMissingDependenciesSnapshot(){return this.getDataSourceSnapshot().testedCodeDataSource.missingDependencies}constructor(e){this.dataSource=e}getDataSourceSnapshot(){return structuredClone(this.dataSource)}getDataSource(){return this.dataSource}getParentParameterRelations(e){return e.kind===`file`?[]:e.parentParameterRelations}moveKnownDependencyToMissingByParameters(e){let t=e.map(e=>e.id).filter(e=>(0,h.isString)(e)),n=!1;for(let e of t)n||=this.moveKnowDependencyToMissingByParameterId(e);return n}moveKnownDependencyToMissing(e){let t=this.dataSource.testedCodeDataSource.codeDependencies.findIndex(t=>t.name===e);if(t===-1)return!1;let n=this.dataSource.testedCodeDataSource.codeDependencies[t],r=`parentParameterRelations`in n?n.parentParameterRelations:[];if(r.length>1)return!1;let i=r[0]?.parameterParentId;return(0,h.isDefined)(i)?this.moveKnowDependencyToMissingByParameterId(i):this.moveKnowDependencyToMissingByIndex(t)}moveKnowDependencyToMissingByParameterId(e){let t=this.dataSource.testedCodeDataSource.codeDependencies.filter(t=>{let n=this.getParentParameterRelations(t);return n.length===1&&n[0].parameterParentId===e}),n=!1;for(let e of t){this.getParentParameterRelations(e)[0].depthLevelInParent===0&&(this.dataSource.testedCodeDataSource.missingDependencies.push(this.convertCodeDependencyToMissingDependency(e)),n=!0);let t=this.dataSource.testedCodeDataSource.codeDependencies.length;this.dataSource.testedCodeDataSource.codeDependencies=this.dataSource.testedCodeDataSource.codeDependencies.filter(t=>t.name!==e.name),this.dataSource.testedCodeDataSource.codeDependencies.length!==t&&(n=!0)}return n}moveKnowDependencyToMissingByIndex(e){if(e<0||this.dataSource.testedCodeDataSource.codeDependencies.length<=e)return!1;let t=this.dataSource.testedCodeDataSource.codeDependencies[e],n=this.convertCodeDependencyToMissingDependency(t);return this.dataSource.testedCodeDataSource.codeDependencies.splice(e,1),this.dataSource.testedCodeDataSource.missingDependencies.push(n),!0}convertCodeDependencyToMissingDependency(e){let t=(e.kind===`file`?!1:e.containedInTestedFile)??!1;return{name:e.name,kind:e.kind,importPath:e.importPath,code:e.code,isCoreModule:!1,exportType:kt.Unknown,containedInTestedFile:t,isDataObject:e.isDataObject??!1,parentParameterRelations:e.kind===`file`?[]:e.parentParameterRelations,isGenerated:e.isGenerated,baseTypeNames:e.kind===`file`?[]:e.baseTypeNames,ancestorDepthFromTestedClass:e.kind===`file`?void 0:e.ancestorDepthFromTestedClass,importUsageMetadata:e.kind===`file`?void 0:e.importUsageMetadata}}removeMockDependencyByIndex(e){let t=this.dataSource.testedCodeDataSource.missingDependencies?.[e];if(!(0,h.isDefined)(t))return!1;let n=t.dependencyMetadata;return(0,h.isDefined)(n)?(t.dependencyMetadata=void 0,!0):!1}removeCodeInMissingDependencyByIndex(e){let t=this.dataSource.testedCodeDataSource.missingDependencies?.[e];return(0,h.isEmpty)(t?.code)?!1:(t.code=``,!0)}},bm=class{modifierHandlers=[];modifierCount;constructor(){let e=new mm(`react-class-component`,`react-hook`,`react-forward-ref-component`,`react-function-component`,`react-css-in-js`),t=new fm(`class`),n=new _m,r=new pm,i=new hm,a=new vm,o=new dm,s=new gm;this.modifierHandlers.push(e,t,n,r,i,a,o,s),this.modifierCount=this.modifierHandlers.length}refine(e){let t=new ym(e);for(let e of this.modifierHandlers)if(e.execute(t))return!0;return!1}},xm=class e{testCodeDatasourceRefiner=new bm;sizeLimit=0;constructor(e){this.sizeLimit=e??this.sizeLimit}static async init(t){return new e(await t.getDataSourceOptimizerSizeLimit())}async optimize(e){if(this.sizeLimit===0)return e;try{let t=structuredClone(e);return await this.iterateOptimize(t,1)}catch{return e}}getSizeInKilobytes(e){let t=JSON.stringify(e);return Buffer.byteLength(t)/1024}async iterateOptimize(e,t){if(this.testCodeDatasourceRefiner.modifierCount<t||!this.testCodeDatasourceRefiner.refine(e))return e;let n=await this.iterateOptimize(e,t+1);return this.getSizeInKilobytes(n)<=this.sizeLimit?n:await this.iterateOptimize(e,t+1)}};let Sm=()=>Ue().getRequestSource()===ue.IDE;var Cm=l(Ie()),wm=l(Le()),Tm=class{sourceFileCache=new Map;constructor(e,t){this.testable=e,this.filePath=t}async getReferences(e=2){let t=Jt.get(this.filePath),n=this.findTargetNode(t);if(!n)return[];let r=n.findReferences(),i=[];for(let e of r)for(let t of e.getReferences()){if(t.isDefinition()??!1)continue;let e=t.getSourceFile().getFilePath();if(!/\.spec|\.test/g.test(e)){let e=await this.getReferencedTestables(t);i.push(...e)}}return(0,h.uniqWith)(i,(e,t)=>e.node===t.node).slice(0,e).map(e=>e.node.getText())}findTargetNode(e){return e.getDescendantsOfKind(E.SyntaxKind.Identifier).find(e=>e.getText()===this.testable.name)}async getTestables(e){let t=e.getSourceFile(),n=t.getFilePath(),r=this.sourceFileCache.get(n);if((0,h.isDefined)(r))return r;let i=new Mn(await et.fromSourceFile(t).getText()).testables.getAllTestables();return this.sourceFileCache.set(n,i),i}async getReferencedTestables(e){try{let t=e.getNode(),[n,r]=[t.getStart(),t.getEnd()];return(await this.getTestables(e)).filter(({type:e,node:t})=>e===`class`||e===`object-method`?!1:t.containsRange(n,r))}catch(e){return H.error(`Error while getting js usage reference code`,e),[]}}};(0,wm.default)([Yt,(0,Cm.default)(`design:type`,Function),(0,Cm.default)(`design:paramtypes`,[Object]),(0,Cm.default)(`design:returntype`,Promise)],Tm.prototype,`getReferences`,null);var Em=l(Ie()),Dm=l(Cr()),Om=l(Le()),km;let Am=class{constructor(e){this.dependenciesService=e}async getTestedCodeDataSource(e,t,n){await Jt.init(e);let{methodType:r,methodName:i,parentName:a}=ai(t);H.addContext({subCategory:Et.CODE_EXTRACTOR}),H.debug.defaultLog(`Get testable context for ${r} ${i}() in ${e}.`);try{let o=await new et(e).getText(),s=at((0,f.extname)(e)),c=zl(s),l=c.extract({methodName:i,methodType:r,parentName:a,filePath:e}),u=Sm(),d=await this.dependenciesService.getTestCodeDataSourceCore(l,e,u);if(s===`javascript`)return Wa(await this.getJsCodeDataSource(e,t,o,d,l,n));let p,m,g,_,v={name:`NA`,kind:`file`,code:o,importPath:e,dependencyType:`file`,isGenerated:!1},b=[];(0,h.isDefined)(d)?(p=d.codeDependencies,m=d.missingDependencies,g=d.testedMethod,_=d.testedMethodClass,v=d.fileCodeDependency,b=d.libraries):(H.info.defaultLog(`No data source for ${i} - ${r}`),m=[],p=[],g={name:i,isAsync:!1,isStatic:!1,parameters:[],decorators:[],code:o.slice(t.startIndex,t.endIndex),callExpressions:[],imports:[],accessModifierType:At.PUBLIC,extendedProperties:{},signature:``,parameterId:(0,y.randomUUID)(),kind:`any`,exportType:kt.Unknown});let x=await new Tm(t,e).getReferences();return m=await this.reevaluateMissingDependencies(m,d,c),Wa({gitUrl:Ue().getGitURL(),filePath:e,relativePathToTestFile:this.getRelativePathToTestFile(e,n),testFramework:Ue().getTestFramework(),language:s,testedMethod:g,testedMethodClass:_,missingDependencies:m,codeDependencies:[v,...p],usages:x,libraries:b})}catch(e){throw H.error(`Error occurred during getTestedCodeDataSource ${i}`,e,i),new sr(ar.TESTED_CODE_DATA_SOURCE_ERROR,{methodName:i})}}async getJsCodeDataSource(e,t,n,r,i,a){let{methodName:o}=ai(t),s={name:o,isAsync:!1,isStatic:!1,parameters:[],decorators:[],code:n.slice(t.startIndex,t.endIndex),callExpressions:[],imports:r?.testedMethod.imports??[],exportType:r?.testedMethod.exportType??kt.Named,accessModifierType:r?.testedMethod.accessModifierType??At.PUBLIC,extendedProperties:r?.testedMethod.extendedProperties,signature:``,parameterId:(0,y.randomUUID)(),kind:`any`},c={name:`NA`,kind:`file`,code:n,importPath:e,dependencyType:`file`,isGenerated:!1},l=await new Tm(t,e).getReferences(),u=[];if((0,h.isDefined)(i)){let t=await new sc(i,e).extract(),n=i.testedMethod.nestedReactComponents?.hooks??[],r=i.testedMethod.nestedReactComponents?.jsxElements??[],a=[...n,...r].map(t=>({name:t.name,kind:t.kind,importPath:t.importPath,isCoreModule:t.isCoreModule,code:t.code,containedInTestedFile:Za(e,t),exportType:t.exportType,isDataObject:!1,parentParameterIds:[],parentParameterRelations:[],dependenciesMetadata:[],isGenerated:t.isGenerated,baseTypeNames:[]})),o=t.filter(e=>[`function`,`react-function-component`].includes(e.kind)).map(e=>({name:e.name,kind:e.kind,importPath:e.importPath,isCoreModule:e.isCoreModule,code:e.code,containedInTestedFile:e.containedInTestedFile,exportType:e.exportType,isDataObject:!1,parentParameterIds:[],parentParameterRelations:[],dependenciesMetadata:[],isGenerated:e.isGenerated,baseTypeNames:[]}));u=(0,h.uniqWith)([...o,...a],(e,t)=>e.name===t.name)}return{gitUrl:Ue().getGitURL(),filePath:e,relativePathToTestFile:this.getRelativePathToTestFile(e,a),testFramework:Ue().getTestFramework(),language:`javascript`,testedMethod:s,testedMethodClass:void 0,missingDependencies:u,codeDependencies:[c],usages:l,libraries:r?.libraries??[]}}async getSecondLevelReactMissingDependencies(e,t){if(!(0,h.isDefined)(e))return[];let n=Sm(),r=e.missingDependencies.filter(e=>e.kind===`react-function-component`);return(await Promise.all(r.map(async e=>{let r=e.sourceFile;if(!(0,h.isDefined)(r))return null;let i=et.fromAbsolutePath(r.getFilePath()).getRelativeFilePath(),a=t.extract({methodName:e.name,methodType:`function`,filePath:i});return await this.dependenciesService.getTestCodeDataSourceCore(a,i,n)}))).filter(e=>(0,h.isDefined)(e))}async reevaluateMissingDependencies(e,t,n){if(!(0,h.isDefined)(t))return e;let r=t.testedMethod.parameterId,i=(e,t)=>({...e,parentParameterIds:[r,...e.parentParameterIds],parentParameterRelations:[{parameterParentId:r,depthLevelInParent:t},...e.parentParameterRelations]}),a=t.missingDependencies.map(e=>i(e,1)),o=(await this.getSecondLevelReactMissingDependencies(t,n)).flatMap(e=>e.missingDependencies.map(e=>i(e,2)));return(0,h.uniqWith)([...a,...o],(e,t)=>e.name===t.name&&e.kind===t.kind)}getRelativePathToTestFile(e,t){let n=Jt.get(e);return Jt.get(t).getRelativePathTo(n)}};(0,Om.default)([Yt,(0,Em.default)(`design:type`,Function),(0,Em.default)(`design:paramtypes`,[String,Object,String]),(0,Em.default)(`design:returntype`,Promise)],Am.prototype,`getTestedCodeDataSource`,null),Am=(0,Om.default)([(0,_.injectable)(),(0,Dm.default)(0,(0,_.inject)(Pc)),(0,Em.default)(`design:paramtypes`,[typeof(km=Pc!==void 0&&Pc)==`function`?km:Object])],Am);var jm=l(Ie()),Mm=l(Cr()),Nm=l(Le()),Pm,Fm;let Im=class{constructor(e,t,n){this.globalConfigService=e,this.featureFlagsService=t,this.testableContextService=n}async gatherDataSource(e){let t=await this.testableContextService.getTestedCodeDataSource(e.path,e.testable,e.testFilePath),n={...(0,h.isDefined)(this.globalConfigService.getGenerateTestsLLMModelName())&&{modelName:this.globalConfigService.getGenerateTestsLLMModelName()},...(0,h.isDefined)(this.globalConfigService.getLLMTemperature())&&{temperature:this.globalConfigService.getLLMTemperature()},...(0,h.isDefined)(this.globalConfigService.getLLMTopP())&&{topP:this.globalConfigService.getLLMTopP()}},r=H.getRequestId();return await this.prepareDTO({dataSource:t,llmConfig:n,userPrompt:(0,h.isDefined)(e.userPrompt)&&!(0,h.isEmpty)(e.userPrompt)?e.userPrompt:this.globalConfigService.getUserPrompt(),generatedTestStructure:this.globalConfigService.getGeneratedTestStructure()},r)}async prepareDTO(e,t){let n=e.dataSource.testedMethod.name;H.debug.defaultLog(`Preparing dto for method ${n}`);try{let t=Yl(e,await this.featureFlagsService.isRemovingDuplicatedCodeInDependencyMetadataEnabled());return(await xm.init(this.featureFlagsService)).optimize(t)}catch(e){throw H.info.defaultLog(`Failed making preparations for generate test dto`,e,t),new sr(ar.PREPARATIONS_FOR_GENERATING_TEST_DTO_ERROR,{methodName:n,errorMessage:`Failed making preparations for generate test dto`})}}};Im=(0,Nm.default)([(0,_.injectable)(),(0,Mm.default)(0,(0,_.inject)(He)),(0,Mm.default)(1,(0,_.inject)(kc)),(0,Mm.default)(2,(0,_.inject)(Am)),(0,jm.default)(`design:paramtypes`,[typeof(Pm=He!==void 0&&He)==`function`?Pm:Object,Object,typeof(Fm=Am!==void 0&&Am)==`function`?Fm:Object])],Im);var Lm=l(Ie()),Rm=l(Cr()),zm=l(Le()),Bm,Vm;let Hm=class{constructor(e,t,n){this.apiService=e,this.globalConfigService=t,this.agentSdkRunner=n}async generate(e,t,n,r,i,a){let o={...e,testedCodeDataSource:{...e.testedCodeDataSource,metadataCollectionTime:n}};if(this.globalConfigService.getExperimentalAgentSdk()){H.info.defaultLog(`[experimental] Using generate-prompt endpoint`);let e;try{e=await this.generatePrompt(o,t,r)}catch(e){throw this.globalConfigService.getProgressLogger(a).verbose(`Failed to analyze function — skipping`),e}return this.generateTestViaClaudeAgentSdk(e,i,r,a)}return this.generateViaBackend(o,t,r)}async generateViaBackend(e,t,n){return this.apiService.post(`/api/v1/tests/generate-tests`,e,{headers:{[lr]:t},signal:n})}async generatePrompt(e,t,n){return await this.apiService.post(`/api/v1/tests/generate-prompt`,e,{headers:{[lr]:t},signal:n})}async generateTestViaClaudeAgentSdk(e,t,n,r){if(!(0,h.isDefined)(t)||(0,h.isEmpty)(t))throw Error(`[agent-sdk] testFilePath is required for experimental SDK flow`);H.info.defaultLog(`[agent-sdk] Running Claude Agent SDK locally...`);let i=this.globalConfigService.getRootPath(),a=(bd?`You are an expert unit test generation agent. Your goal is to produce 7-12 high-quality, passing, type-safe, lint-clean unit tests for a given function or method.
32087
32087
 
@@ -32375,7 +32375,7 @@ Start the workflow now with Phase 0 (read the provided project commands), then p
32375
32375
  newResult[${r}] = ${n}.value;
32376
32376
  }
32377
32377
 
32378
- `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=AW,s=!gW.jitless,c=s&&jW.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?BK([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function UK(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!KW(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>YW(e,r,_W())))}),t)}const WK=pW(`$ZodUnion`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),TW(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),TW(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),TW(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>SW(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>UK(t,i,e,a)):UK(s,i,e,a)}}),GK=pW(`$ZodDiscriminatedUnion`,(e,t)=>{WK.init(e,t);let n=e._zod.parse;TW(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bW(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!AW(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),KK=pW(`$ZodIntersection`,(e,t)=>{oK.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>JK(e,t,n)):JK(e,i,a)}});function qK(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(MW(e)&&MW(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qK(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=qK(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function JK(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),KW(e))return e;let r=qK(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Gee=pW(`$ZodEnum`,(e,t)=>{oK.init(e,t);let n=vW(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>PW.has(typeof e)).map(e=>typeof e==`string`?FW(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),YK=pW(`$ZodLiteral`,(e,t)=>{if(oK.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);e._zod.values=new Set(t.values),e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?FW(e):e?FW(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:`invalid_value`,values:t.values,input:i,inst:e}),n}}),XK=pW(`$ZodTransform`,(e,t)=>{oK.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mW;return n.value=i,n}});function ZK(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const QK=pW(`$ZodOptional`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ZK(t,e.value)):ZK(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),$K=pW(`$ZodNullable`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)}|null)$`):void 0}),TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),eq=pW(`$ZodDefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>tq(e,t)):tq(r,t)}});function tq(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nq=pW(`$ZodPrefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rq=pW(`$ZodNonOptional`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>iq(t,e)):iq(i,e)}});function iq(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const aq=pW(`$ZodCatch`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)}}),oq=pW(`$ZodPipe`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>t.in._zod.values),TW(e._zod,`optin`,()=>t.in._zod.optin),TW(e._zod,`optout`,()=>t.out._zod.optout),TW(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.in,n)):sq(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.out,n)):sq(r,t.out,n)}});function sq(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const cq=pW(`$ZodReadonly`,(e,t)=>{oK.init(e,t),TW(e._zod,`propValues`,()=>t.innerType._zod.propValues),TW(e._zod,`values`,()=>t.innerType._zod.values),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(lq):lq(r)}});function lq(e){return e.value=Object.freeze(e.value),e}const uq=pW(`$ZodCustom`,(e,t)=>{VG.init(e,t),oK.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>dq(t,n,r,e));dq(i,n,r,e)}});function dq(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(ZW(e))}}var fq=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function pq(){return new fq}const mq=pq();function hq(e,t){return new e({type:`string`,...LW(t)})}function gq(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...LW(t)})}function _q(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...LW(t)})}function vq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...LW(t)})}function yq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...LW(t)})}function bq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...LW(t)})}function xq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...LW(t)})}function Sq(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...LW(t)})}function Cq(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...LW(t)})}function wq(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...LW(t)})}function Tq(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...LW(t)})}function Eq(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...LW(t)})}function Dq(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...LW(t)})}function Kee(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...LW(t)})}function qee(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...LW(t)})}function Oq(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...LW(t)})}function kq(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...LW(t)})}function Aq(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...LW(t)})}function jq(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...LW(t)})}function Mq(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...LW(t)})}function Nq(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...LW(t)})}function Pq(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...LW(t)})}function Fq(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...LW(t)})}function Iq(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...LW(t)})}function Lq(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...LW(t)})}function Rq(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...LW(t)})}function zq(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...LW(t)})}function Bq(e,t){return new e({type:`number`,checks:[],...LW(t)})}function Vq(e,t){return new e({type:`number`,coerce:!0,checks:[],...LW(t)})}function Hq(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...LW(t)})}function Uq(e){return new e({type:`unknown`})}function Wq(e,t){return new e({type:`never`,...LW(t)})}function Gq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!1})}function Kq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!0})}function qq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!1})}function Jq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!0})}function Yq(e,t){return new GG({check:`multiple_of`,...LW(t),value:e})}function Xq(e,t){return new qG({check:`max_length`,...LW(t),maximum:e})}function Zq(e,t){return new JG({check:`min_length`,...LW(t),minimum:e})}function Qq(e,t){return new YG({check:`length_equals`,...LW(t),length:e})}function $q(e,t){return new ZG({check:`string_format`,format:`regex`,...LW(t),pattern:e})}function eJ(e){return new QG({check:`string_format`,format:`lowercase`,...LW(e)})}function tJ(e){return new $G({check:`string_format`,format:`uppercase`,...LW(e)})}function nJ(e,t){return new eK({check:`string_format`,format:`includes`,...LW(t),includes:e})}function rJ(e,t){return new tK({check:`string_format`,format:`starts_with`,...LW(t),prefix:e})}function iJ(e,t){return new nK({check:`string_format`,format:`ends_with`,...LW(t),suffix:e})}function aJ(e){return new rK({check:`overwrite`,tx:e})}function oJ(e){return aJ(t=>t.normalize(e))}function sJ(){return aJ(e=>e.trim())}function cJ(){return aJ(e=>e.toLowerCase())}function lJ(){return aJ(e=>e.toUpperCase())}function uJ(e,t,n){return new e({type:`array`,element:t,...LW(n)})}function dJ(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...LW(n)})}function fJ(e){let t=pJ(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(ZW(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(ZW(r))}},e(n.value,n)));return t}function pJ(e,t){let n=new VG({check:`custom`,...LW(t)});return n._zod.check=e,n}const mJ=pW(`ZodISODateTime`,(e,t)=>{Uee.init(e,t),LJ.init(e,t)});function hJ(e){return Iq(mJ,e)}const gJ=pW(`ZodISODate`,(e,t)=>{yK.init(e,t),LJ.init(e,t)});function _J(e){return Lq(gJ,e)}const vJ=pW(`ZodISOTime`,(e,t)=>{Wee.init(e,t),LJ.init(e,t)});function Jee(e){return Rq(vJ,e)}const yJ=pW(`ZodISODuration`,(e,t)=>{bK.init(e,t),LJ.init(e,t)});function bJ(e){return zq(yJ,e)}const xJ=(e,t)=>{$W.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nG(e,t)},flatten:{value:t=>tG(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yW,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yW,2)}},isEmpty:{get(){return e.issues.length===0}}})};pW(`ZodError`,xJ);const SJ=pW(`ZodError`,xJ,{Parent:Error}),CJ=rG(SJ),wJ=iG(SJ),TJ=aG(SJ),EJ=sG(SJ),DJ=lG(SJ),Yee=uG(SJ),OJ=dG(SJ),kJ=Lee(SJ),AJ=fG(SJ),jJ=pG(SJ),Xee=mG(SJ),MJ=hG(SJ),NJ=pW(`ZodType`,(e,t)=>(oK.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(DW(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>IW(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>CJ(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>TJ(e,t,n),e.parseAsync=async(t,n)=>wJ(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>EJ(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>DJ(e,t,n),e.decode=(t,n)=>Yee(e,t,n),e.encodeAsync=async(t,n)=>OJ(e,t,n),e.decodeAsync=async(t,n)=>kJ(e,t,n),e.safeEncode=(t,n)=>AJ(e,t,n),e.safeDecode=(t,n)=>jJ(e,t,n),e.safeEncodeAsync=async(t,n)=>Xee(e,t,n),e.safeDecodeAsync=async(t,n)=>MJ(e,t,n),e.refine=(t,n)=>e.check(WY(t,n)),e.superRefine=t=>e.check(GY(t)),e.overwrite=t=>e.check(aJ(t)),e.optional=()=>OY(e),e.nullable=()=>AY(e),e.nullish=()=>OY(AY(e)),e.nonoptional=t=>IY(e,t),e.array=()=>fY(e),e.or=t=>gY([e,t]),e.and=t=>bY(e,t),e.transform=t=>BY(e,EY(t)),e.default=t=>MY(e,t),e.prefault=t=>PY(e,t),e.catch=t=>RY(e,t),e.pipe=t=>BY(e,t),e.readonly=()=>HY(e),e.describe=t=>{let n=e.clone();return mq.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return mq.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return mq.get(e);let n=e.clone();return mq.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),PJ=pW(`_ZodString`,(e,t)=>{sK.init(e,t),NJ.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check($q(...t)),e.includes=(...t)=>e.check(nJ(...t)),e.startsWith=(...t)=>e.check(rJ(...t)),e.endsWith=(...t)=>e.check(iJ(...t)),e.min=(...t)=>e.check(Zq(...t)),e.max=(...t)=>e.check(Xq(...t)),e.length=(...t)=>e.check(Qq(...t)),e.nonempty=(...t)=>e.check(Zq(1,...t)),e.lowercase=t=>e.check(eJ(t)),e.uppercase=t=>e.check(tJ(t)),e.trim=()=>e.check(sJ()),e.normalize=(...t)=>e.check(oJ(...t)),e.toLowerCase=()=>e.check(cJ()),e.toUpperCase=()=>e.check(lJ())}),FJ=pW(`ZodString`,(e,t)=>{sK.init(e,t),PJ.init(e,t),e.email=t=>e.check(gq(RJ,t)),e.url=t=>e.check(Sq(HJ,t)),e.jwt=t=>e.check(Fq(rY,t)),e.emoji=t=>e.check(Cq(UJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.uuid=t=>e.check(vq(BJ,t)),e.uuidv4=t=>e.check(yq(BJ,t)),e.uuidv6=t=>e.check(bq(BJ,t)),e.uuidv7=t=>e.check(xq(BJ,t)),e.nanoid=t=>e.check(wq(WJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.cuid=t=>e.check(Tq(GJ,t)),e.cuid2=t=>e.check(Eq(KJ,t)),e.ulid=t=>e.check(Dq(qJ,t)),e.base64=t=>e.check(Mq(eY,t)),e.base64url=t=>e.check(Nq(tY,t)),e.xid=t=>e.check(Kee(JJ,t)),e.ksuid=t=>e.check(qee(YJ,t)),e.ipv4=t=>e.check(Oq(XJ,t)),e.ipv6=t=>e.check(kq(ZJ,t)),e.cidrv4=t=>e.check(Aq(QJ,t)),e.cidrv6=t=>e.check(jq($J,t)),e.e164=t=>e.check(Pq(nY,t)),e.datetime=t=>e.check(hJ(t)),e.date=t=>e.check(_J(t)),e.time=t=>e.check(Jee(t)),e.duration=t=>e.check(bJ(t))});function IJ(e){return hq(FJ,e)}const LJ=pW(`ZodStringFormat`,(e,t)=>{cK.init(e,t),PJ.init(e,t)}),RJ=pW(`ZodEmail`,(e,t)=>{dK.init(e,t),LJ.init(e,t)}),zJ=pW(`ZodGUID`,(e,t)=>{lK.init(e,t),LJ.init(e,t)}),BJ=pW(`ZodUUID`,(e,t)=>{uK.init(e,t),LJ.init(e,t)});function VJ(e){return vq(BJ,e)}const HJ=pW(`ZodURL`,(e,t)=>{fK.init(e,t),LJ.init(e,t)}),UJ=pW(`ZodEmoji`,(e,t)=>{pK.init(e,t),LJ.init(e,t)}),WJ=pW(`ZodNanoID`,(e,t)=>{mK.init(e,t),LJ.init(e,t)}),GJ=pW(`ZodCUID`,(e,t)=>{hK.init(e,t),LJ.init(e,t)}),KJ=pW(`ZodCUID2`,(e,t)=>{Hee.init(e,t),LJ.init(e,t)}),qJ=pW(`ZodULID`,(e,t)=>{gK.init(e,t),LJ.init(e,t)}),JJ=pW(`ZodXID`,(e,t)=>{_K.init(e,t),LJ.init(e,t)}),YJ=pW(`ZodKSUID`,(e,t)=>{vK.init(e,t),LJ.init(e,t)}),XJ=pW(`ZodIPv4`,(e,t)=>{xK.init(e,t),LJ.init(e,t)}),ZJ=pW(`ZodIPv6`,(e,t)=>{SK.init(e,t),LJ.init(e,t)}),QJ=pW(`ZodCIDRv4`,(e,t)=>{CK.init(e,t),LJ.init(e,t)}),$J=pW(`ZodCIDRv6`,(e,t)=>{wK.init(e,t),LJ.init(e,t)}),eY=pW(`ZodBase64`,(e,t)=>{EK.init(e,t),LJ.init(e,t)}),tY=pW(`ZodBase64URL`,(e,t)=>{OK.init(e,t),LJ.init(e,t)}),nY=pW(`ZodE164`,(e,t)=>{kK.init(e,t),LJ.init(e,t)}),rY=pW(`ZodJWT`,(e,t)=>{jK.init(e,t),LJ.init(e,t)}),iY=pW(`ZodNumber`,(e,t)=>{MK.init(e,t),NJ.init(e,t),e.gt=(t,n)=>e.check(qq(t,n)),e.gte=(t,n)=>e.check(Jq(t,n)),e.min=(t,n)=>e.check(Jq(t,n)),e.lt=(t,n)=>e.check(Gq(t,n)),e.lte=(t,n)=>e.check(Kq(t,n)),e.max=(t,n)=>e.check(Kq(t,n)),e.int=t=>e.check(sY(t)),e.safe=t=>e.check(sY(t)),e.positive=t=>e.check(qq(0,t)),e.nonnegative=t=>e.check(Jq(0,t)),e.negative=t=>e.check(Gq(0,t)),e.nonpositive=t=>e.check(Kq(0,t)),e.multipleOf=(t,n)=>e.check(Yq(t,n)),e.step=(t,n)=>e.check(Yq(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function aY(e){return Bq(iY,e)}const oY=pW(`ZodNumberFormat`,(e,t)=>{NK.init(e,t),iY.init(e,t)});function sY(e){return Hq(oY,e)}const cY=pW(`ZodUnknown`,(e,t)=>{PK.init(e,t),NJ.init(e,t)});function lY(){return Uq(cY)}const uY=pW(`ZodNever`,(e,t)=>{FK.init(e,t),NJ.init(e,t)});function dY(e){return Wq(uY,e)}const Zee=pW(`ZodArray`,(e,t)=>{LK.init(e,t),NJ.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Zq(t,n)),e.nonempty=t=>e.check(Zq(1,t)),e.max=(t,n)=>e.check(Xq(t,n)),e.length=(t,n)=>e.check(Qq(t,n)),e.unwrap=()=>e.element});function fY(e,t){return uJ(Zee,e,t)}const pY=pW(`ZodObject`,(e,t)=>{HK.init(e,t),NJ.init(e,t),TW(e,`shape`,()=>t.shape),e.keyof=()=>SY(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:lY()}),e.loose=()=>e.clone({...e._zod.def,catchall:lY()}),e.strict=()=>e.clone({...e._zod.def,catchall:dY()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>VW(e,t),e.safeExtend=t=>HW(e,t),e.merge=t=>UW(e,t),e.pick=t=>zW(e,t),e.omit=t=>BW(e,t),e.partial=(...t)=>WW(DY,e,t[0]),e.required=(...t)=>GW(FY,e,t[0])});function mY(e,t){return new pY({type:`object`,shape:e??{},...LW(t)})}const hY=pW(`ZodUnion`,(e,t)=>{WK.init(e,t),NJ.init(e,t),e.options=t.options});function gY(e,t){return new hY({type:`union`,options:e,...LW(t)})}const _Y=pW(`ZodDiscriminatedUnion`,(e,t)=>{hY.init(e,t),GK.init(e,t)});function vY(e,t,n){return new _Y({type:`union`,options:t,discriminator:e,...LW(n)})}const yY=pW(`ZodIntersection`,(e,t)=>{KK.init(e,t),NJ.init(e,t)});function bY(e,t){return new yY({type:`intersection`,left:e,right:t})}const xY=pW(`ZodEnum`,(e,t)=>{Gee.init(e,t),NJ.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})}});function SY(e,t){return new xY({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...LW(t)})}const CY=pW(`ZodLiteral`,(e,t)=>{YK.init(e,t),NJ.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wY(e,t){return new CY({type:`literal`,values:Array.isArray(e)?e:[e],...LW(t)})}const TY=pW(`ZodTransform`,(e,t)=>{XK.init(e,t),NJ.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(ZW(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(ZW(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function EY(e){return new TY({type:`transform`,transform:e})}const DY=pW(`ZodOptional`,(e,t)=>{QK.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function OY(e){return new DY({type:`optional`,innerType:e})}const kY=pW(`ZodNullable`,(e,t)=>{$K.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function AY(e){return new kY({type:`nullable`,innerType:e})}const jY=pW(`ZodDefault`,(e,t)=>{eq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function MY(e,t){return new jY({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const NY=pW(`ZodPrefault`,(e,t)=>{nq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PY(e,t){return new NY({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const FY=pW(`ZodNonOptional`,(e,t)=>{rq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IY(e,t){return new FY({type:`nonoptional`,innerType:e,...LW(t)})}const LY=pW(`ZodCatch`,(e,t)=>{aq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function RY(e,t){return new LY({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const zY=pW(`ZodPipe`,(e,t)=>{oq.init(e,t),NJ.init(e,t),e.in=t.in,e.out=t.out});function BY(e,t){return new zY({type:`pipe`,in:e,out:t})}const VY=pW(`ZodReadonly`,(e,t)=>{cq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function HY(e){return new VY({type:`readonly`,innerType:e})}const UY=pW(`ZodCustom`,(e,t)=>{uq.init(e,t),NJ.init(e,t)});function WY(e,t={}){return dJ(UY,e,t)}function GY(e){return fJ(e)}function KY(e){return Vq(iY,e)}let qY=function(e){return e.WEEKLY=`weekly`,e.MONTHLY=`monthly`,e}({});function JY(e){return IJ().default(String(e)).transform((e,t)=>{let n=Number(e);return Number.isNaN(n)||!Number.isInteger(n)?(t.issues.push({code:`custom`,input:e,message:`Expected an integer string, got "${e}"`}),fW):n})}const YY=mY({cliVersion:IJ().default(oe),traceId:VJ().default(y.randomUUID),command:SY(dW),rootPath:IJ().default(process.cwd()),requestSource:wY(cW.RequestSource.CLI),backendURL:IJ().default(`https://api.startearly.ai`),secretToken:IJ(),token:IJ(),SCMProvider:IJ().default(`github`),refName:IJ(),gitOrg:IJ().optional(),gitRepo:IJ().optional(),gitTopLevel:IJ().optional(),gitUserEmail:IJ().optional(),gitUserName:IJ().optional(),contributorName:IJ().optional(),contributorEmail:IJ().optional(),verbose:IJ().default(`false`).transform(e=>e===`true`),debug:IJ().default(`false`).transform(e=>e===`true`)}),XY=mY({testStructure:SY(cW.TestStructureVariant).optional(),testFramework:SY(cW.TestFramework).optional(),testSuffix:SY(cW.TestSuffix).optional(),testFileName:SY(cW.TestFileName).optional(),coverageThreshold:KY().min(cW.COVERAGE_THRESHOLD.MIN).max(cW.COVERAGE_THRESHOLD.MAX).default(cW.COVERAGE_THRESHOLD.DEFAULT),concurrency:KY().min(cW.CONCURRENCY.MIN).max(cW.CONCURRENCY.MAX).optional(),testCommand:IJ().default(`npx jest $early_filename --no-coverage --silent --json --forceExit --maxWorkers=1`).optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=50%`).optional(),lintCommand:IJ().default(`npx --no eslint $early_filename`).optional(),prettierCommand:IJ().default(`npx --no prettier $early_filename --write`).optional(),disableLintRules:IJ().default(`false`).transform(e=>e===`true`),autoCommit:IJ().transform(e=>e===`true`).default(!0),keepErrorTests:IJ().default(`false`).transform(e=>e===`true`),keepFailedTests:IJ().default(`false`).transform(e=>e===`true`),conditionalKeep:IJ().default(`false`).transform(e=>e===`true`),continueOnTestErrors:IJ().default(`false`).transform(e=>e===`true`),changedMethodsOnly:IJ().default(`true`).transform(e=>e===`true`),skipCoverageAfter:IJ().default(`false`).transform(e=>e===`true`),autoCommitSkipCi:IJ().default(`true`).transform(e=>e===`true`),perFunctionTimeout:KY().optional(),reuseCoverage:IJ().default(`false`).transform(e=>e===`true`),reuseCoverageMaxRuns:KY().min(1).max(10).default(10),experimentalAgentSdk:IJ().default(`true`).transform(e=>e===`true`),agentSdkModel:IJ().optional(),agentSdkBudget:KY().positive().optional()}),ZY=vY(`command`,[YY.extend({command:wY(dW.PR),prNumber:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),prName:IJ().optional(),prUrl:IJ().optional(),prChangedFiles:aY().optional(),contributorAvatarUrl:IJ().url().optional()}).extend(XY.shape),YY.extend({command:wY(dW.COMMIT),commitHash:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),commitName:IJ().optional()}).extend(XY.shape),YY.extend({command:wY(dW.PROJECT),targetDirectory:IJ(),maxTestables:JY(30)}).extend(XY.shape).extend({changedMethodsOnly:IJ().default(`false`).transform(e=>e===`true`)}),YY.extend({command:wY(dW.COVERAGE),frequency:SY(qY).default(qY.WEEKLY),startTime:hJ().optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=2`).optional()})]);var QY=s(((e,t)=>{var n=class e extends Error{constructor(t){super(`Format functions must be synchronous taking a two arguments: (info, opts)
32378
+ `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=AW,s=!gW.jitless,c=s&&jW.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?BK([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function UK(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!KW(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>YW(e,r,_W())))}),t)}const WK=pW(`$ZodUnion`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),TW(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),TW(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),TW(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>SW(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>UK(t,i,e,a)):UK(s,i,e,a)}}),GK=pW(`$ZodDiscriminatedUnion`,(e,t)=>{WK.init(e,t);let n=e._zod.parse;TW(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=bW(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!AW(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),KK=pW(`$ZodIntersection`,(e,t)=>{oK.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>JK(e,t,n)):JK(e,i,a)}});function qK(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(MW(e)&&MW(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=qK(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=qK(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function JK(e,t,n){if(t.issues.length&&e.issues.push(...t.issues),n.issues.length&&e.issues.push(...n.issues),KW(e))return e;let r=qK(t.value,n.value);if(!r.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(r.mergeErrorPath)}`);return e.value=r.data,e}const Gee=pW(`$ZodEnum`,(e,t)=>{oK.init(e,t);let n=vW(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>PW.has(typeof e)).map(e=>typeof e==`string`?FW(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),YK=pW(`$ZodLiteral`,(e,t)=>{if(oK.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);e._zod.values=new Set(t.values),e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?FW(e):e?FW(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(n,r)=>{let i=n.value;return e._zod.values.has(i)||n.issues.push({code:`invalid_value`,values:t.values,input:i,inst:e}),n}}),XK=pW(`$ZodTransform`,(e,t)=>{oK.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new mW;return n.value=i,n}});function ZK(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const QK=pW(`$ZodOptional`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>ZK(t,e.value)):ZK(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),$K=pW(`$ZodNullable`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${SW(e.source)}|null)$`):void 0}),TW(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),eq=pW(`$ZodDefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>tq(e,t)):tq(r,t)}});function tq(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const nq=pW(`$ZodPrefault`,(e,t)=>{oK.init(e,t),e._zod.optin=`optional`,TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),rq=pW(`$ZodNonOptional`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>iq(t,e)):iq(i,e)}});function iq(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const aq=pW(`$ZodCatch`,(e,t)=>{oK.init(e,t),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),TW(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>YW(e,n,_W()))},input:e.value}),e.issues=[]),e)}}),oq=pW(`$ZodPipe`,(e,t)=>{oK.init(e,t),TW(e._zod,`values`,()=>t.in._zod.values),TW(e._zod,`optin`,()=>t.in._zod.optin),TW(e._zod,`optout`,()=>t.out._zod.optout),TW(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.in,n)):sq(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>sq(e,t.out,n)):sq(r,t.out,n)}});function sq(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const cq=pW(`$ZodReadonly`,(e,t)=>{oK.init(e,t),TW(e._zod,`propValues`,()=>t.innerType._zod.propValues),TW(e._zod,`values`,()=>t.innerType._zod.values),TW(e._zod,`optin`,()=>t.innerType._zod.optin),TW(e._zod,`optout`,()=>t.innerType._zod.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(lq):lq(r)}});function lq(e){return e.value=Object.freeze(e.value),e}const uq=pW(`$ZodCustom`,(e,t)=>{VG.init(e,t),oK.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>dq(t,n,r,e));dq(i,n,r,e)}});function dq(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(ZW(e))}}var fq=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==`object`&&`id`in n){if(this._idmap.has(n.id))throw Error(`ID ${n.id} already exists in the registry`);this._idmap.set(n.id,e)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function pq(){return new fq}const mq=pq();function hq(e,t){return new e({type:`string`,...LW(t)})}function gq(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...LW(t)})}function _q(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...LW(t)})}function vq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...LW(t)})}function yq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...LW(t)})}function bq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...LW(t)})}function xq(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...LW(t)})}function Sq(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...LW(t)})}function Cq(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...LW(t)})}function wq(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...LW(t)})}function Tq(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...LW(t)})}function Eq(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...LW(t)})}function Dq(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...LW(t)})}function Kee(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...LW(t)})}function qee(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...LW(t)})}function Oq(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...LW(t)})}function kq(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...LW(t)})}function Aq(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...LW(t)})}function jq(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...LW(t)})}function Mq(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...LW(t)})}function Nq(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...LW(t)})}function Pq(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...LW(t)})}function Fq(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...LW(t)})}function Iq(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...LW(t)})}function Lq(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...LW(t)})}function Rq(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...LW(t)})}function zq(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...LW(t)})}function Bq(e,t){return new e({type:`number`,checks:[],...LW(t)})}function Vq(e,t){return new e({type:`number`,coerce:!0,checks:[],...LW(t)})}function Hq(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...LW(t)})}function Uq(e){return new e({type:`unknown`})}function Wq(e,t){return new e({type:`never`,...LW(t)})}function Gq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!1})}function Kq(e,t){return new UG({check:`less_than`,...LW(t),value:e,inclusive:!0})}function qq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!1})}function Jq(e,t){return new WG({check:`greater_than`,...LW(t),value:e,inclusive:!0})}function Yq(e,t){return new GG({check:`multiple_of`,...LW(t),value:e})}function Xq(e,t){return new qG({check:`max_length`,...LW(t),maximum:e})}function Zq(e,t){return new JG({check:`min_length`,...LW(t),minimum:e})}function Qq(e,t){return new YG({check:`length_equals`,...LW(t),length:e})}function $q(e,t){return new ZG({check:`string_format`,format:`regex`,...LW(t),pattern:e})}function eJ(e){return new QG({check:`string_format`,format:`lowercase`,...LW(e)})}function tJ(e){return new $G({check:`string_format`,format:`uppercase`,...LW(e)})}function nJ(e,t){return new eK({check:`string_format`,format:`includes`,...LW(t),includes:e})}function rJ(e,t){return new tK({check:`string_format`,format:`starts_with`,...LW(t),prefix:e})}function iJ(e,t){return new nK({check:`string_format`,format:`ends_with`,...LW(t),suffix:e})}function aJ(e){return new rK({check:`overwrite`,tx:e})}function oJ(e){return aJ(t=>t.normalize(e))}function sJ(){return aJ(e=>e.trim())}function cJ(){return aJ(e=>e.toLowerCase())}function lJ(){return aJ(e=>e.toUpperCase())}function uJ(e,t,n){return new e({type:`array`,element:t,...LW(n)})}function dJ(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...LW(n)})}function fJ(e){let t=pJ(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(ZW(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(ZW(r))}},e(n.value,n)));return t}function pJ(e,t){let n=new VG({check:`custom`,...LW(t)});return n._zod.check=e,n}const mJ=pW(`ZodISODateTime`,(e,t)=>{Uee.init(e,t),LJ.init(e,t)});function hJ(e){return Iq(mJ,e)}const gJ=pW(`ZodISODate`,(e,t)=>{yK.init(e,t),LJ.init(e,t)});function _J(e){return Lq(gJ,e)}const vJ=pW(`ZodISOTime`,(e,t)=>{Wee.init(e,t),LJ.init(e,t)});function Jee(e){return Rq(vJ,e)}const yJ=pW(`ZodISODuration`,(e,t)=>{bK.init(e,t),LJ.init(e,t)});function bJ(e){return zq(yJ,e)}const xJ=(e,t)=>{$W.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>nG(e,t)},flatten:{value:t=>tG(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,yW,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,yW,2)}},isEmpty:{get(){return e.issues.length===0}}})};pW(`ZodError`,xJ);const SJ=pW(`ZodError`,xJ,{Parent:Error}),CJ=rG(SJ),wJ=iG(SJ),TJ=aG(SJ),EJ=sG(SJ),DJ=lG(SJ),Yee=uG(SJ),OJ=dG(SJ),kJ=Lee(SJ),AJ=fG(SJ),jJ=pG(SJ),Xee=mG(SJ),MJ=hG(SJ),NJ=pW(`ZodType`,(e,t)=>(oK.init(e,t),e.def=t,e.type=t.type,Object.defineProperty(e,`_def`,{value:t}),e.check=(...n)=>e.clone(DW(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]})),e.clone=(t,n)=>IW(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>CJ(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>TJ(e,t,n),e.parseAsync=async(t,n)=>wJ(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>EJ(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>DJ(e,t,n),e.decode=(t,n)=>Yee(e,t,n),e.encodeAsync=async(t,n)=>OJ(e,t,n),e.decodeAsync=async(t,n)=>kJ(e,t,n),e.safeEncode=(t,n)=>AJ(e,t,n),e.safeDecode=(t,n)=>jJ(e,t,n),e.safeEncodeAsync=async(t,n)=>Xee(e,t,n),e.safeDecodeAsync=async(t,n)=>MJ(e,t,n),e.refine=(t,n)=>e.check(WY(t,n)),e.superRefine=t=>e.check(GY(t)),e.overwrite=t=>e.check(aJ(t)),e.optional=()=>OY(e),e.nullable=()=>AY(e),e.nullish=()=>OY(AY(e)),e.nonoptional=t=>IY(e,t),e.array=()=>fY(e),e.or=t=>gY([e,t]),e.and=t=>bY(e,t),e.transform=t=>BY(e,EY(t)),e.default=t=>MY(e,t),e.prefault=t=>PY(e,t),e.catch=t=>RY(e,t),e.pipe=t=>BY(e,t),e.readonly=()=>HY(e),e.describe=t=>{let n=e.clone();return mq.add(n,{description:t}),n},Object.defineProperty(e,`description`,{get(){return mq.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return mq.get(e);let n=e.clone();return mq.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e)),PJ=pW(`_ZodString`,(e,t)=>{sK.init(e,t),NJ.init(e,t);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check($q(...t)),e.includes=(...t)=>e.check(nJ(...t)),e.startsWith=(...t)=>e.check(rJ(...t)),e.endsWith=(...t)=>e.check(iJ(...t)),e.min=(...t)=>e.check(Zq(...t)),e.max=(...t)=>e.check(Xq(...t)),e.length=(...t)=>e.check(Qq(...t)),e.nonempty=(...t)=>e.check(Zq(1,...t)),e.lowercase=t=>e.check(eJ(t)),e.uppercase=t=>e.check(tJ(t)),e.trim=()=>e.check(sJ()),e.normalize=(...t)=>e.check(oJ(...t)),e.toLowerCase=()=>e.check(cJ()),e.toUpperCase=()=>e.check(lJ())}),FJ=pW(`ZodString`,(e,t)=>{sK.init(e,t),PJ.init(e,t),e.email=t=>e.check(gq(RJ,t)),e.url=t=>e.check(Sq(HJ,t)),e.jwt=t=>e.check(Fq(rY,t)),e.emoji=t=>e.check(Cq(UJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.uuid=t=>e.check(vq(BJ,t)),e.uuidv4=t=>e.check(yq(BJ,t)),e.uuidv6=t=>e.check(bq(BJ,t)),e.uuidv7=t=>e.check(xq(BJ,t)),e.nanoid=t=>e.check(wq(WJ,t)),e.guid=t=>e.check(_q(zJ,t)),e.cuid=t=>e.check(Tq(GJ,t)),e.cuid2=t=>e.check(Eq(KJ,t)),e.ulid=t=>e.check(Dq(qJ,t)),e.base64=t=>e.check(Mq(eY,t)),e.base64url=t=>e.check(Nq(tY,t)),e.xid=t=>e.check(Kee(JJ,t)),e.ksuid=t=>e.check(qee(YJ,t)),e.ipv4=t=>e.check(Oq(XJ,t)),e.ipv6=t=>e.check(kq(ZJ,t)),e.cidrv4=t=>e.check(Aq(QJ,t)),e.cidrv6=t=>e.check(jq($J,t)),e.e164=t=>e.check(Pq(nY,t)),e.datetime=t=>e.check(hJ(t)),e.date=t=>e.check(_J(t)),e.time=t=>e.check(Jee(t)),e.duration=t=>e.check(bJ(t))});function IJ(e){return hq(FJ,e)}const LJ=pW(`ZodStringFormat`,(e,t)=>{cK.init(e,t),PJ.init(e,t)}),RJ=pW(`ZodEmail`,(e,t)=>{dK.init(e,t),LJ.init(e,t)}),zJ=pW(`ZodGUID`,(e,t)=>{lK.init(e,t),LJ.init(e,t)}),BJ=pW(`ZodUUID`,(e,t)=>{uK.init(e,t),LJ.init(e,t)});function VJ(e){return vq(BJ,e)}const HJ=pW(`ZodURL`,(e,t)=>{fK.init(e,t),LJ.init(e,t)}),UJ=pW(`ZodEmoji`,(e,t)=>{pK.init(e,t),LJ.init(e,t)}),WJ=pW(`ZodNanoID`,(e,t)=>{mK.init(e,t),LJ.init(e,t)}),GJ=pW(`ZodCUID`,(e,t)=>{hK.init(e,t),LJ.init(e,t)}),KJ=pW(`ZodCUID2`,(e,t)=>{Hee.init(e,t),LJ.init(e,t)}),qJ=pW(`ZodULID`,(e,t)=>{gK.init(e,t),LJ.init(e,t)}),JJ=pW(`ZodXID`,(e,t)=>{_K.init(e,t),LJ.init(e,t)}),YJ=pW(`ZodKSUID`,(e,t)=>{vK.init(e,t),LJ.init(e,t)}),XJ=pW(`ZodIPv4`,(e,t)=>{xK.init(e,t),LJ.init(e,t)}),ZJ=pW(`ZodIPv6`,(e,t)=>{SK.init(e,t),LJ.init(e,t)}),QJ=pW(`ZodCIDRv4`,(e,t)=>{CK.init(e,t),LJ.init(e,t)}),$J=pW(`ZodCIDRv6`,(e,t)=>{wK.init(e,t),LJ.init(e,t)}),eY=pW(`ZodBase64`,(e,t)=>{EK.init(e,t),LJ.init(e,t)}),tY=pW(`ZodBase64URL`,(e,t)=>{OK.init(e,t),LJ.init(e,t)}),nY=pW(`ZodE164`,(e,t)=>{kK.init(e,t),LJ.init(e,t)}),rY=pW(`ZodJWT`,(e,t)=>{jK.init(e,t),LJ.init(e,t)}),iY=pW(`ZodNumber`,(e,t)=>{MK.init(e,t),NJ.init(e,t),e.gt=(t,n)=>e.check(qq(t,n)),e.gte=(t,n)=>e.check(Jq(t,n)),e.min=(t,n)=>e.check(Jq(t,n)),e.lt=(t,n)=>e.check(Gq(t,n)),e.lte=(t,n)=>e.check(Kq(t,n)),e.max=(t,n)=>e.check(Kq(t,n)),e.int=t=>e.check(sY(t)),e.safe=t=>e.check(sY(t)),e.positive=t=>e.check(qq(0,t)),e.nonnegative=t=>e.check(Jq(0,t)),e.negative=t=>e.check(Gq(0,t)),e.nonpositive=t=>e.check(Kq(0,t)),e.multipleOf=(t,n)=>e.check(Yq(t,n)),e.step=(t,n)=>e.check(Yq(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function aY(e){return Bq(iY,e)}const oY=pW(`ZodNumberFormat`,(e,t)=>{NK.init(e,t),iY.init(e,t)});function sY(e){return Hq(oY,e)}const cY=pW(`ZodUnknown`,(e,t)=>{PK.init(e,t),NJ.init(e,t)});function lY(){return Uq(cY)}const uY=pW(`ZodNever`,(e,t)=>{FK.init(e,t),NJ.init(e,t)});function dY(e){return Wq(uY,e)}const Zee=pW(`ZodArray`,(e,t)=>{LK.init(e,t),NJ.init(e,t),e.element=t.element,e.min=(t,n)=>e.check(Zq(t,n)),e.nonempty=t=>e.check(Zq(1,t)),e.max=(t,n)=>e.check(Xq(t,n)),e.length=(t,n)=>e.check(Qq(t,n)),e.unwrap=()=>e.element});function fY(e,t){return uJ(Zee,e,t)}const pY=pW(`ZodObject`,(e,t)=>{HK.init(e,t),NJ.init(e,t),TW(e,`shape`,()=>t.shape),e.keyof=()=>SY(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:lY()}),e.loose=()=>e.clone({...e._zod.def,catchall:lY()}),e.strict=()=>e.clone({...e._zod.def,catchall:dY()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>VW(e,t),e.safeExtend=t=>HW(e,t),e.merge=t=>UW(e,t),e.pick=t=>zW(e,t),e.omit=t=>BW(e,t),e.partial=(...t)=>WW(DY,e,t[0]),e.required=(...t)=>GW(FY,e,t[0])});function mY(e,t){return new pY({type:`object`,shape:e??{},...LW(t)})}const hY=pW(`ZodUnion`,(e,t)=>{WK.init(e,t),NJ.init(e,t),e.options=t.options});function gY(e,t){return new hY({type:`union`,options:e,...LW(t)})}const _Y=pW(`ZodDiscriminatedUnion`,(e,t)=>{hY.init(e,t),GK.init(e,t)});function vY(e,t,n){return new _Y({type:`union`,options:t,discriminator:e,...LW(n)})}const yY=pW(`ZodIntersection`,(e,t)=>{KK.init(e,t),NJ.init(e,t)});function bY(e,t){return new yY({type:`intersection`,left:e,right:t})}const xY=pW(`ZodEnum`,(e,t)=>{Gee.init(e,t),NJ.init(e,t),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new xY({...t,checks:[],...LW(r),entries:i})}});function SY(e,t){return new xY({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...LW(t)})}const CY=pW(`ZodLiteral`,(e,t)=>{YK.init(e,t),NJ.init(e,t),e.values=new Set(t.values),Object.defineProperty(e,`value`,{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function wY(e,t){return new CY({type:`literal`,values:Array.isArray(e)?e:[e],...LW(t)})}const TY=pW(`ZodTransform`,(e,t)=>{XK.init(e,t),NJ.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new hW(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(ZW(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(ZW(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function EY(e){return new TY({type:`transform`,transform:e})}const DY=pW(`ZodOptional`,(e,t)=>{QK.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function OY(e){return new DY({type:`optional`,innerType:e})}const kY=pW(`ZodNullable`,(e,t)=>{$K.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function AY(e){return new kY({type:`nullable`,innerType:e})}const jY=pW(`ZodDefault`,(e,t)=>{eq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function MY(e,t){return new jY({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const NY=pW(`ZodPrefault`,(e,t)=>{nq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function PY(e,t){return new NY({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():NW(t)}})}const FY=pW(`ZodNonOptional`,(e,t)=>{rq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function IY(e,t){return new FY({type:`nonoptional`,innerType:e,...LW(t)})}const LY=pW(`ZodCatch`,(e,t)=>{aq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function RY(e,t){return new LY({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const zY=pW(`ZodPipe`,(e,t)=>{oq.init(e,t),NJ.init(e,t),e.in=t.in,e.out=t.out});function BY(e,t){return new zY({type:`pipe`,in:e,out:t})}const VY=pW(`ZodReadonly`,(e,t)=>{cq.init(e,t),NJ.init(e,t),e.unwrap=()=>e._zod.def.innerType});function HY(e){return new VY({type:`readonly`,innerType:e})}const UY=pW(`ZodCustom`,(e,t)=>{uq.init(e,t),NJ.init(e,t)});function WY(e,t={}){return dJ(UY,e,t)}function GY(e){return fJ(e)}function KY(e){return Vq(iY,e)}let qY=function(e){return e.WEEKLY=`weekly`,e.MONTHLY=`monthly`,e}({});function JY(e){return IJ().default(String(e)).transform((e,t)=>{let n=Number(e);return Number.isNaN(n)||!Number.isInteger(n)?(t.issues.push({code:`custom`,input:e,message:`Expected an integer string, got "${e}"`}),fW):n})}const YY=mY({cliVersion:IJ().default(oe),traceId:VJ().default(y.randomUUID),command:SY(dW),rootPath:IJ().default(process.cwd()),requestSource:wY(cW.RequestSource.CLI),backendURL:IJ().default(`https://api.startearly.ai`),secretToken:IJ(),token:IJ(),SCMProvider:IJ().default(`github`),refName:IJ(),gitOrg:IJ().optional(),gitRepo:IJ().optional(),gitTopLevel:IJ().optional(),gitUserEmail:IJ().optional(),gitUserName:IJ().optional(),contributorName:IJ().optional(),contributorEmail:IJ().optional(),verbose:IJ().default(`false`).transform(e=>e===`true`),debug:IJ().default(`false`).transform(e=>e===`true`)}),XY=mY({testStructure:SY(cW.TestStructureVariant).optional(),testFramework:SY(cW.TestFramework).optional(),testSuffix:SY(cW.TestSuffix).optional(),testFileName:SY(cW.TestFileName).optional(),coverageThreshold:KY().min(cW.COVERAGE_THRESHOLD.MIN).max(cW.COVERAGE_THRESHOLD.MAX).default(cW.COVERAGE_THRESHOLD.DEFAULT),concurrency:KY().min(cW.CONCURRENCY.MIN).max(cW.CONCURRENCY.MAX).optional(),testCommand:IJ().default(`npx jest $early_filename --no-coverage --silent --json --forceExit --maxWorkers=1`).optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=50%`).optional(),lintCommand:IJ().default(`npx --no eslint $early_filename`).optional(),prettierCommand:IJ().default(`npx --no prettier $early_filename --write`).optional(),disableLintRules:IJ().default(`false`).transform(e=>e===`true`),autoCommit:IJ().transform(e=>e===`true`).default(!0),keepErrorTests:IJ().default(`false`).transform(e=>e===`true`),keepFailedTests:IJ().default(`false`).transform(e=>e===`true`),conditionalKeep:IJ().default(`false`).transform(e=>e===`true`),continueOnTestErrors:IJ().default(`false`).transform(e=>e===`true`),changedMethodsOnly:IJ().default(`true`).transform(e=>e===`true`),skipCoverageAfter:IJ().default(`false`).transform(e=>e===`true`),autoCommitSkipCi:IJ().default(`true`).transform(e=>e===`true`),perFunctionTimeout:KY().optional(),reuseCoverage:IJ().default(`false`).transform(e=>e===`true`),reuseCoverageMaxRuns:KY().min(1).max(10).default(10),experimentalAgentSdk:IJ().default(`true`).transform(e=>e===`true`),agentSdkModel:IJ().optional(),agentSdkBudget:KY().positive().optional()}),ZY=vY(`command`,[YY.extend({command:wY(dW.PR),prNumber:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),prName:IJ().optional(),prUrl:IJ().optional(),prChangedFiles:aY().optional(),contributorAvatarUrl:IJ().url().optional()}).extend(XY.shape),YY.extend({command:wY(dW.COMMIT),commitHash:IJ(),baseRef:IJ().optional(),maxTestables:JY(5),commitName:IJ().optional()}).extend(XY.shape),YY.extend({command:wY(dW.PROJECT),targetDirectory:IJ(),maxTestables:JY(10)}).extend(XY.shape).extend({changedMethodsOnly:IJ().default(`false`).transform(e=>e===`true`)}),YY.extend({command:wY(dW.COVERAGE),frequency:SY(qY).default(qY.WEEKLY),startTime:hJ().optional(),coverageCommand:IJ().default(`npx jest --coverage --coverageProvider=v8 --coveragePathIgnorePatterns "node_modules" "dist" ".*\\.early\\.(spec|test)\\.[tj]sx?$" --coverageReporters=json --coverageDirectory=$early_coverage_dir --silent --passWithNoTests --maxWorkers=2`).optional()})]);var QY=s(((e,t)=>{var n=class e extends Error{constructor(t){super(`Format functions must be synchronous taking a two arguments: (info, opts)
32379
32379
  Found: ${t.toString().split(`
32380
32380
  `)[0]}\n`),Error.captureStackTrace(this,e)}};t.exports=e=>{if(e.length>2)throw new n(e);function t(e={}){this.options=e}t.prototype.transform=e;function r(e){return new t(e)}return r.Format=t,r}})),$Y=s(((e,t)=>{var n={};t.exports=n;var r={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(r).forEach(function(e){var t=r[e],i=n[e]=[];i.open=`\x1B[`+t[0]+`m`,i.close=`\x1B[`+t[1]+`m`})})),eX=s(((e,t)=>{t.exports=function(e,t){t=t||process.argv||[];var n=t.indexOf(`--`),r=/^-{1,2}/.test(e)?``:`--`,i=t.indexOf(r+e);return i!==-1&&(n===-1?!0:i<n)}})),tX=s(((e,t)=>{var n=require(`os`),r=eX(),i=process.env,a=void 0;r(`no-color`)||r(`no-colors`)||r(`color=false`)?a=!1:(r(`color`)||r(`colors`)||r(`color=true`)||r(`color=always`))&&(a=!0),`FORCE_COLOR`in i&&(a=i.FORCE_COLOR.length===0||parseInt(i.FORCE_COLOR,10)!==0);function o(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function s(e){if(a===!1)return 0;if(r(`color=16m`)||r(`color=full`)||r(`color=truecolor`))return 3;if(r(`color=256`))return 2;if(e&&!e.isTTY&&a!==!0)return 0;var t=a?1:0;if(process.platform===`win32`){var o=n.release().split(`.`);return Number(process.versions.node.split(`.`)[0])>=8&&Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if(`CI`in i)return[`TRAVIS`,`CIRCLECI`,`APPVEYOR`,`GITLAB_CI`].some(function(e){return e in i})||i.CI_NAME===`codeship`?1:t;if(`TEAMCITY_VERSION`in i)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(i.TEAMCITY_VERSION)?1:0;if(`TERM_PROGRAM`in i){var s=parseInt((i.TERM_PROGRAM_VERSION||``).split(`.`)[0],10);switch(i.TERM_PROGRAM){case`iTerm.app`:return s>=3?3:2;case`Hyper`:return 3;case`Apple_Terminal`:return 2}}return/-256(color)?$/i.test(i.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(i.TERM)||`COLORTERM`in i?1:(i.TERM,t)}function c(e){return o(s(e))}t.exports={supportsColor:c,stdout:c(process.stdout),stderr:c(process.stderr)}})),nX=s(((e,t)=>{t.exports=function(e,t){var n=``;e||=`Run the trap, drop the bass`,e=e.split(``);var r={a:[`@`,`Ą`,`Ⱥ`,`Ʌ`,`Δ`,`Λ`,`Д`],b:[`ß`,`Ɓ`,`Ƀ`,`ɮ`,`β`,`฿`],c:[`©`,`Ȼ`,`Ͼ`],d:[`Ð`,`Ɗ`,`Ԁ`,`ԁ`,`Ԃ`,`ԃ`],e:[`Ë`,`ĕ`,`Ǝ`,`ɘ`,`Σ`,`ξ`,`Ҽ`,`੬`],f:[`Ӻ`],g:[`ɢ`],h:[`Ħ`,`ƕ`,`Ң`,`Һ`,`Ӈ`,`Ԋ`],i:[`༏`],j:[`Ĵ`],k:[`ĸ`,`Ҡ`,`Ӄ`,`Ԟ`],l:[`Ĺ`],m:[`ʍ`,`Ӎ`,`ӎ`,`Ԡ`,`ԡ`,`൩`],n:[`Ñ`,`ŋ`,`Ɲ`,`Ͷ`,`Π`,`Ҋ`],o:[`Ø`,`õ`,`ø`,`Ǿ`,`ʘ`,`Ѻ`,`ם`,`۝`,`๏`],p:[`Ƿ`,`Ҏ`],q:[`্`],r:[`®`,`Ʀ`,`Ȑ`,`Ɍ`,`ʀ`,`Я`],s:[`§`,`Ϟ`,`ϟ`,`Ϩ`],t:[`Ł`,`Ŧ`,`ͳ`],u:[`Ʊ`,`Ս`],v:[`ט`],w:[`Ш`,`Ѡ`,`Ѽ`,`൰`],x:[`Ҳ`,`Ӿ`,`Ӽ`,`ӽ`],y:[`¥`,`Ұ`,`Ӌ`],z:[`Ƶ`,`ɀ`]};return e.forEach(function(e){e=e.toLowerCase();var t=r[e]||[` `],i=Math.floor(Math.random()*t.length);r[e]===void 0?n+=e:n+=r[e][i]}),n}})),rX=s(((e,t)=>{t.exports=function(e,t){e||=` he is here `;var n={up:`̍.̎.̄.̅.̿.̑.̆.̐.͒.͗.͑.̇.̈.̊.͂.̓.̈.͊.͋.͌.̃.̂.̌.͐.̀.́.̋.̏.̒.̓.̔.̽.̉.ͣ.ͤ.ͥ.ͦ.ͧ.ͨ.ͩ.ͪ.ͫ.ͬ.ͭ.ͮ.ͯ.̾.͛.͆.̚`.split(`.`),down:`̖.̗.̘.̙.̜.̝.̞.̟.̠.̤.̥.̦.̩.̪.̫.̬.̭.̮.̯.̰.̱.̲.̳.̹.̺.̻.̼.ͅ.͇.͈.͉.͍.͎.͓.͔.͕.͖.͙.͚.̣`.split(`.`),mid:[`̕`,`̛`,`̀`,`́`,`͘`,`̡`,`̢`,`̧`,`̨`,`̴`,`̵`,`̶`,`͜`,`͝`,`͞`,`͟`,`͠`,`͢`,`̸`,`̷`,`͡`,` ҉`]},r=[].concat(n.up,n.down,n.mid);function i(e){return Math.floor(Math.random()*e)}function a(e){var t=!1;return r.filter(function(n){t=n===e}),t}function o(e,t){var r=``,o,s;for(s in t||={},t.up=t.up===void 0?!0:t.up,t.mid=t.mid===void 0?!0:t.mid,t.down=t.down===void 0?!0:t.down,t.size=t.size===void 0?`maxi`:t.size,e=e.split(``),e)if(!a(s)){switch(r+=e[s],o={up:0,down:0,mid:0},t.size){case`mini`:o.up=i(8),o.mid=i(2),o.down=i(8);break;case`maxi`:o.up=i(16)+3,o.mid=i(4)+1,o.down=i(64)+3;break;default:o.up=i(8)+1,o.mid=i(6)/2,o.down=i(8)+1;break}var c=[`up`,`mid`,`down`];for(var l in c)for(var u=c[l],d=0;d<=o[u];d++)t[u]&&(r+=n[u][i(n[u].length)])}return r}return o(e,t)}})),iX=s(((e,t)=>{t.exports=function(e){return function(t,n,r){if(t===` `)return t;switch(n%3){case 0:return e.red(t);case 1:return e.white(t);case 2:return e.blue(t)}}}})),aX=s(((e,t)=>{t.exports=function(e){return function(t,n,r){return n%2==0?t:e.inverse(t)}}})),oX=s(((e,t)=>{t.exports=function(e){var t=[`red`,`yellow`,`green`,`blue`,`magenta`];return function(n,r,i){return n===` `?n:e[t[r++%t.length]](n)}}})),sX=s(((e,t)=>{t.exports=function(e){var t=[`underline`,`inverse`,`grey`,`yellow`,`red`,`green`,`blue`,`white`,`cyan`,`magenta`,`brightYellow`,`brightRed`,`brightGreen`,`brightBlue`,`brightWhite`,`brightCyan`,`brightMagenta`];return function(n,r,i){return n===` `?n:e[t[Math.round(Math.random()*(t.length-2))]](n)}}})),cX=s(((e,t)=>{var n={};t.exports=n,n.themes={};var r=require(`util`),i=n.styles=$Y(),a=Object.defineProperties,o=new RegExp(/[\r\n]+/g);n.supportsColor=tX().supportsColor,n.enabled===void 0&&(n.enabled=n.supportsColor()!==!1),n.enable=function(){n.enabled=!0},n.disable=function(){n.enabled=!1},n.stripColors=n.strip=function(e){return(``+e).replace(/\x1B\[\d+m/g,``)},n.stylize=function(e,t){if(!n.enabled)return e+``;var r=i[t];return!r&&t in n?n[t](e):r.open+e+r.close};var s=/[|\\{}()[\]^$+*?.]/g,c=function(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(s,`\\$&`)};function l(e){var t=function e(){return f.apply(e,arguments)};return t._styles=e,t.__proto__=d,t}var u=(function(){var e={};return i.grey=i.gray,Object.keys(i).forEach(function(t){i[t].closeRe=new RegExp(c(i[t].close),`g`),e[t]={get:function(){return l(this._styles.concat(t))}}}),e})(),d=a(function(){},u);function f(){var e=Array.prototype.slice.call(arguments).map(function(e){return e!=null&&e.constructor===String?e:r.inspect(e)}).join(` `);if(!n.enabled||!e)return e;for(var t=e.indexOf(`
32381
32381
  `)!=-1,a=this._styles,s=a.length;s--;){var c=i[a[s]];e=c.open+e.replace(c.closeRe,c.open)+c.close,t&&(e=e.replace(o,function(e){return c.close+e+c.open}))}return e}n.setTheme=function(e){if(typeof e==`string`){console.log(`colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));`);return}for(var t in e)(function(t){n[t]=function(r){if(typeof e[t]==`object`){var i=r;for(var a in e[t])i=n[e[t][a]](i);return i}return n[e[t]](r)}})(t)};function p(){var e={};return Object.keys(u).forEach(function(t){e[t]={get:function(){return l([t])}}}),e}var m=function(e,t){var n=t.split(``);return n=n.map(e),n.join(``)};for(var h in n.trap=nX(),n.zalgo=rX(),n.maps={},n.maps.america=iX()(n),n.maps.zebra=aX()(n),n.maps.rainbow=oX()(n),n.maps.random=sX()(n),n.maps)(function(e){n[e]=function(t){return m(n.maps[e],t)}})(h);a(n,p())})),lX=s(((e,t)=>{t.exports=cX()})),uX=s((e=>{e.levels={error:0,warn:1,help:2,data:3,info:4,debug:5,prompt:6,verbose:7,input:8,silly:9},e.colors={error:`red`,warn:`yellow`,help:`cyan`,data:`grey`,info:`green`,debug:`blue`,prompt:`grey`,verbose:`cyan`,input:`grey`,silly:`magenta`}})),Qee=s((e=>{e.levels={error:0,warn:1,info:2,http:3,verbose:4,debug:5,silly:6},e.colors={error:`red`,warn:`yellow`,info:`green`,http:`green`,verbose:`cyan`,debug:`blue`,silly:`magenta`}})),dX=s((e=>{e.levels={emerg:0,alert:1,crit:2,error:3,warning:4,notice:5,info:6,debug:7},e.colors={emerg:`red`,alert:`yellow`,crit:`red`,error:`red`,warning:`red`,notice:`yellow`,info:`green`,debug:`blue`}})),fX=s((e=>{Object.defineProperty(e,`cli`,{value:uX()}),Object.defineProperty(e,`npm`,{value:Qee()}),Object.defineProperty(e,`syslog`,{value:dX()})})),pX=s((e=>{Object.defineProperty(e,`LEVEL`,{value:Symbol.for(`level`)}),Object.defineProperty(e,`MESSAGE`,{value:Symbol.for(`message`)}),Object.defineProperty(e,`SPLAT`,{value:Symbol.for(`splat`)}),Object.defineProperty(e,`configs`,{value:fX()})})),mX=s(((e,t)=>{let n=lX(),{LEVEL:r,MESSAGE:i}=pX();n.enabled=!0;let a=/\s+/;var o=class e{constructor(e={}){e.colors&&this.addColors(e.colors),this.options=e}static addColors(t){let n=Object.keys(t).reduce((e,n)=>(e[n]=a.test(t[n])?t[n].split(a):t[n],e),{});return e.allColors=Object.assign({},e.allColors||{},n),e.allColors}addColors(t){return e.addColors(t)}colorize(t,r,i){if(i===void 0&&(i=r),!Array.isArray(e.allColors[t]))return n[e.allColors[t]](i);for(let r=0,a=e.allColors[t].length;r<a;r++)i=n[e.allColors[t][r]](i);return i}transform(e,t){return t.all&&typeof e[i]==`string`&&(e[i]=this.colorize(e[r],e.level,e[i])),(t.level||t.all||!t.message)&&(e.level=this.colorize(e[r],e.level)),(t.all||t.message)&&(e.message=this.colorize(e[r],e.level,e.message)),e}};t.exports=e=>new o(e),t.exports.Colorizer=t.exports.Format=o})),hX=s(((e,t)=>{let{Colorizer:n}=mX();t.exports=e=>(n.addColors(e.colors||e),e)})),gX=s(((e,t)=>{t.exports=QY()(e=>(e.message=`\t${e.message}`,e))})),_X=s(((e,t)=>{let n=QY(),{LEVEL:r,MESSAGE:i}=pX();t.exports=n((e,{stack:t,cause:n})=>{if(e instanceof Error){let a=Object.assign({},e,{level:e.level,[r]:e[r]||e.level,message:e.message,[i]:e[i]||e.message});return t&&(a.stack=e.stack),n&&(a.cause=e.cause),a}if(!(e.message instanceof Error))return e;let a=e.message;return Object.assign(e,a),e.message=a.message,e[i]=a.message,t&&(e.stack=a.stack),n&&(e.cause=a.cause),e})})),vX=s(((e,t)=>{let{configs:n,LEVEL:r,MESSAGE:i}=pX();var a=class e{constructor(t={levels:n.npm.levels}){this.paddings=e.paddingForLevels(t.levels,t.filler),this.options=t}static getLongestLevel(e){let t=Object.keys(e).map(e=>e.length);return Math.max(...t)}static paddingForLevel(e,t,n){let r=n+1-e.length,i=Math.floor(r/t.length);return`${t}${t.repeat(i)}`.slice(0,r)}static paddingForLevels(t,n=` `){let r=e.getLongestLevel(t);return Object.keys(t).reduce((t,i)=>(t[i]=e.paddingForLevel(i,n,r),t),{})}transform(e,t){return e.message=`${this.paddings[e[r]]}${e.message}`,e[i]&&(e[i]=`${this.paddings[e[r]]}${e[i]}`),e}};t.exports=e=>new a(e),t.exports.Padder=t.exports.Format=a})),yX=s(((e,t)=>{let{Colorizer:n}=mX(),{Padder:r}=vX(),{configs:i,MESSAGE:a}=pX();var o=class{constructor(e={}){e.levels||=i.cli.levels,this.colorizer=new n(e),this.padder=new r(e),this.options=e}transform(e,t){return this.colorizer.transform(this.padder.transform(e,t),t),e[a]=`${e.level}:${e.message}`,e}};t.exports=e=>new o(e),t.exports.Format=o})),bX=s(((e,t)=>{let n=QY();function r(e){if(e.every(i))return t=>{let n=t;for(let t=0;t<e.length;t++)if(n=e[t].transform(n,e[t].options),!n)return!1;return n}}function i(e){if(typeof e.transform!=`function`)throw Error([`No transform function found on format. Did you create a format instance?`,`const myFormat = format(formatFn);`,`const instance = myFormat();`].join(`
@@ -32388,7 +32388,7 @@ var n=require(`buffer`),r=n.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}r.fr
32388
32388
  `),stack:e&&e.stack,exception:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:n.loadavg(),uptime:n.uptime()}}getTrace(e){return(e?o.parse(e):o.get()).map(e=>({column:e.getColumnNumber(),file:e.getFileName(),function:e.getFunctionName(),line:e.getLineNumber(),method:e.getMethodName(),native:e.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleExceptions=!0;let t=new s(e);this.handlers.set(e,t),this.logger.pipe(t)}}_uncaughtException(e){let t=this.getAllInfo(e),n=this._getExceptionHandlers(),o=typeof this.logger.exitOnError==`function`?this.logger.exitOnError(e):this.logger.exitOnError,s;!n.length&&o&&(console.warn(`winston: exitOnError cannot be true with no exception handlers.`),console.warn(`winston: not exiting process.`),o=!1);function c(){i(`doExit`,o),i(`process._exiting`,process._exiting),o&&!process._exiting&&(s&&clearTimeout(s),process.exit(1))}if(!n||n.length===0)return process.nextTick(c);r(n,(e,t)=>{let n=a(t),r=e.transport||e;function o(e){return()=>{i(e),n()}}r._ending=!0,r.once(`finish`,o(`finished`)),r.once(`error`,o(`error`))},()=>o&&c()),this.logger.log(t),o&&(s=setTimeout(c,3e3))}_getExceptionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleExceptions)}}})),qZ=s(((e,t)=>{let{Writable:n}=OZ();t.exports=class extends n{constructor(e){if(super({objectMode:!0}),!e)throw Error(`RejectionStream requires a TransportStream instance.`);this.handleRejections=!0,this.transport=e}_write(e,t,n){return e.rejection?this.transport.log(e,n):(n(),!0)}}})),JZ=s(((e,t)=>{let n=require(`os`),r=VZ(),i=jZ()(`winston:rejection`),a=UZ(),o=WZ(),s=qZ();t.exports=class{constructor(e){if(!e)throw Error(`Logger is required to handle rejections`);this.logger=e,this.handlers=new Map}handle(...e){e.forEach(e=>{if(Array.isArray(e))return e.forEach(e=>this._addHandler(e));this._addHandler(e)}),this.catcher||(this.catcher=this._unhandledRejection.bind(this),process.on(`unhandledRejection`,this.catcher))}unhandle(){this.catcher&&(process.removeListener(`unhandledRejection`,this.catcher),this.catcher=!1,Array.from(this.handlers.values()).forEach(e=>this.logger.unpipe(e)))}getAllInfo(e){let t=null;return e&&(t=typeof e==`string`?e:e.message),{error:e,level:`error`,message:[`unhandledRejection: ${t||`(no error message)`}`,e&&e.stack||` No stack trace`].join(`
32389
32389
  `),stack:e&&e.stack,rejection:!0,date:new Date().toString(),process:this.getProcessInfo(),os:this.getOsInfo(),trace:this.getTrace(e)}}getProcessInfo(){return{pid:process.pid,uid:process.getuid?process.getuid():null,gid:process.getgid?process.getgid():null,cwd:process.cwd(),execPath:process.execPath,version:process.version,argv:process.argv,memoryUsage:process.memoryUsage()}}getOsInfo(){return{loadavg:n.loadavg(),uptime:n.uptime()}}getTrace(e){return(e?o.parse(e):o.get()).map(e=>({column:e.getColumnNumber(),file:e.getFileName(),function:e.getFunctionName(),line:e.getLineNumber(),method:e.getMethodName(),native:e.isNative()}))}_addHandler(e){if(!this.handlers.has(e)){e.handleRejections=!0;let t=new s(e);this.handlers.set(e,t),this.logger.pipe(t)}}_unhandledRejection(e){let t=this.getAllInfo(e),n=this._getRejectionHandlers(),o=typeof this.logger.exitOnError==`function`?this.logger.exitOnError(e):this.logger.exitOnError,s;!n.length&&o&&(console.warn(`winston: exitOnError cannot be true with no rejection handlers.`),console.warn(`winston: not exiting process.`),o=!1);function c(){i(`doExit`,o),i(`process._exiting`,process._exiting),o&&!process._exiting&&(s&&clearTimeout(s),process.exit(1))}if(!n||n.length===0)return process.nextTick(c);r(n,(e,t)=>{let n=a(t),r=e.transport||e;function o(e){return()=>{i(e),n()}}r._ending=!0,r.once(`finish`,o(`finished`)),r.once(`error`,o(`error`))},()=>o&&c()),this.logger.log(t),o&&(s=setTimeout(c,3e3))}_getRejectionHandlers(){return this.logger.transports.filter(e=>(e.transport||e).handleRejections)}}})),ate=s(((e,t)=>{t.exports=class{constructor(e){let t=YZ();if(typeof e!=`object`||Array.isArray(e)||!(e instanceof t))throw Error(`Logger is required for profiling`);this.logger=e,this.start=Date.now()}done(...e){typeof e[e.length-1]==`function`&&(console.warn(`Callback function no longer supported as of winston@3.0.0`),e.pop());let t=typeof e[e.length-1]==`object`?e.pop():{};return t.level=t.level||`info`,t.durationMs=Date.now()-this.start,this.logger.write(t)}}})),YZ=s(((e,t)=>{let{Stream:n,Transform:r}=OZ(),i=VZ(),{LEVEL:a,SPLAT:o}=pX(),s=FZ(),c=KZ(),l=JZ(),u=YX(),d=ate(),{warn:f}=NX(),p=RZ(),m=/%[scdjifoO%]/g;var h=class extends r{constructor(e){super({objectMode:!0}),this.configure(e)}child(e){let t=this;return Object.create(t,{write:{value:function(n){let r=Object.assign({},e,n);n instanceof Error&&(r.stack=n.stack,r.message=n.message,r.cause=n.cause),t.write(r)}}})}configure({silent:e,format:t,defaultMeta:n,levels:r,level:i=`info`,exitOnError:a=!0,transports:o,colors:s,emitErrs:u,formatters:d,padLevels:f,rewriters:m,stripColors:h,exceptionHandlers:g,rejectionHandlers:_}={}){if(this.transports.length&&this.clear(),this.silent=e,this.format=t||this.format||SX()(),this.defaultMeta=n||null,this.levels=r||this.levels||p.npm.levels,this.level=i,this.exceptions&&this.exceptions.unhandle(),this.rejections&&this.rejections.unhandle(),this.exceptions=new c(this),this.rejections=new l(this),this.profilers={},this.exitOnError=a,o&&(o=Array.isArray(o)?o:[o],o.forEach(e=>this.add(e))),s||u||d||f||m||h)throw Error([`{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.`,`Use a custom winston.format(function) instead.`,`See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md`].join(`
32390
32390
  `));g&&this.exceptions.handle(g),_&&this.rejections.handle(_)}getHighestLogLevel(){let e=g(this.levels,this.level);return!this.transports||this.transports.length===0?e:this.transports.reduce((e,t)=>{let n=g(this.levels,t.level);return n!==null&&n>e?n:e},e)}isLevelEnabled(e){let t=g(this.levels,e);if(t===null)return!1;let n=g(this.levels,this.level);return n===null?!1:!this.transports||this.transports.length===0?n>=t:this.transports.findIndex(e=>{let r=g(this.levels,e.level);return r===null&&(r=n),r>=t})!==-1}log(e,t,...n){if(arguments.length===1)return e[a]=e.level,this._addDefaultMeta(e),this.write(e),this;if(arguments.length===2)return t&&typeof t==`object`?(t[a]=t.level=e,this._addDefaultMeta(t),this.write(t),this):(t={[a]:e,level:e,message:t},this._addDefaultMeta(t),this.write(t),this);let[r]=n;if(typeof r==`object`&&r&&!(t&&t.match&&t.match(m))){let i=Object.assign({},this.defaultMeta,r,{[a]:e,[o]:n,level:e,message:t});return r.message&&(i.message=`${i.message} ${r.message}`),r.stack&&(i.stack=r.stack),r.cause&&(i.cause=r.cause),this.write(i),this}return this.write(Object.assign({},this.defaultMeta,{[a]:e,[o]:n,level:e,message:t})),this}_transform(e,t,n){if(this.silent)return n();e[a]||(e[a]=e.level),!this.levels[e[a]]&&this.levels[e[a]]!==0&&console.error(`[winston] Unknown logger level: %s`,e[a]),this._readableState.pipes||console.error(`[winston] Attempt to write logs with no transports, which can increase memory usage: %j`,e);try{this.push(this.format.transform(e,this.format.options))}finally{this._writableState.sync=!1,n()}}_final(e){i(this.transports.slice(),(e,t)=>{if(!e||e.finished)return setImmediate(t);e.once(`finish`,t),e.end()},e)}add(e){let t=!s(e)||e.log.length>2?new u({transport:e}):e;if(!t._writableState||!t._writableState.objectMode)throw Error(`Transports must WritableStreams in objectMode. Set { objectMode: true }.`);return this._onEvent(`error`,t),this._onEvent(`warn`,t),this.pipe(t),e.handleExceptions&&this.exceptions.handle(),e.handleRejections&&this.rejections.handle(),this}remove(e){if(!e)return this;let t=e;return(!s(e)||e.log.length>2)&&(t=this.transports.filter(t=>t.transport===e)[0]),t&&this.unpipe(t),this}clear(){return this.unpipe(),this}close(){return this.exceptions.unhandle(),this.rejections.unhandle(),this.clear(),this.emit(`close`),this}setLevels(){f.deprecated(`setLevels`)}query(e,t){typeof e==`function`&&(t=e,e={}),e||={};let n={},r=Object.assign({},e.query||{});function a(t,n){e.query&&typeof t.formatQuery==`function`&&(e.query=t.formatQuery(r)),t.query(e,(r,i)=>{if(r)return n(r);typeof t.formatResults==`function`&&(i=t.formatResults(i,e.format)),n(null,i)})}function o(e,t){a(e,(r,i)=>{t&&(i=r||i,i&&(n[e.name]=i),t()),t=null})}i(this.transports.filter(e=>!!e.query),o,()=>t(null,n))}stream(e={}){let t=new n,r=[];return t._streams=r,t.destroy=()=>{let e=r.length;for(;e--;)r[e].destroy()},this.transports.filter(e=>!!e.stream).forEach(n=>{let i=n.stream(e);i&&(r.push(i),i.on(`log`,e=>{e.transport=e.transport||[],e.transport.push(n.name),t.emit(`log`,e)}),i.on(`error`,e=>{e.transport=e.transport||[],e.transport.push(n.name),t.emit(`error`,e)}))}),t}startTimer(){return new d(this)}profile(e,...t){let n=Date.now();if(this.profilers[e]){let r=this.profilers[e];delete this.profilers[e],typeof t[t.length-2]==`function`&&(console.warn(`Callback function no longer supported as of winston@3.0.0`),t.pop());let i=typeof t[t.length-1]==`object`?t.pop():{};return i.level=i.level||`info`,i.durationMs=n-r,i.message=i.message||e,this.write(i)}return this.profilers[e]=n,this}handleExceptions(...e){console.warn(`Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()`),this.exceptions.handle(...e)}unhandleExceptions(...e){console.warn(`Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()`),this.exceptions.unhandle(...e)}cli(){throw Error([`Logger.cli() was removed in winston@3.0.0`,`Use a custom winston.formats.cli() instead.`,`See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md`].join(`
32391
- `))}_onEvent(e,t){function n(n){e===`error`&&!this.transports.includes(t)&&this.add(t),this.emit(e,n,t)}t[`__winston`+e]||(t[`__winston`+e]=n.bind(this),t.on(e,t[`__winston`+e]))}_addDefaultMeta(e){this.defaultMeta&&Object.assign(e,this.defaultMeta)}};function g(e,t){let n=e[t];return!n&&n!==0?null:n}Object.defineProperty(h.prototype,`transports`,{configurable:!1,enumerable:!0,get(){let{pipes:e}=this._readableState;return Array.isArray(e)?e:[e].filter(Boolean)}}),t.exports=h})),XZ=s(((e,t)=>{let{LEVEL:n}=pX(),r=RZ(),i=YZ(),a=jZ()(`winston:create-logger`);function o(e){return`is`+e.charAt(0).toUpperCase()+e.slice(1)+`Enabled`}t.exports=function(e={}){e.levels=e.levels||r.npm.levels;class t extends i{constructor(e){super(e)}}let s=new t(e);return Object.keys(e.levels).forEach(function(e){if(a(`Define prototype method for "%s"`,e),e===`log`){console.warn(`Level "log" not defined: conflicts with the method "log". Use a different level name.`);return}t.prototype[e]=function(...t){let r=this||s;if(t.length===1){let[i]=t,a=i&&i.message&&i||{message:i};return a.level=a[n]=e,r._addDefaultMeta(a),r.write(a),this||s}return t.length===0?(r.log(e,``),r):r.log(e,...t)},t.prototype[o(e)]=function(){return(this||s).isLevelEnabled(e)}}),s}})),ZZ=s(((e,t)=>{let n=XZ();t.exports=class{constructor(e={}){this.loggers=new Map,this.options=e}add(e,t){if(!this.loggers.has(e)){t=Object.assign({},t||this.options);let r=t.transports||this.options.transports;r?t.transports=Array.isArray(r)?r.slice():[r]:t.transports=[];let i=n(t);i.on(`close`,()=>this._delete(e)),this.loggers.set(e,i)}return this.loggers.get(e)}get(e,t){return this.add(e,t)}has(e){return!!this.loggers.has(e)}close(e){if(e)return this._removeLogger(e);this.loggers.forEach((e,t)=>this._removeLogger(t))}_removeLogger(e){this.loggers.has(e)&&(this.loggers.get(e).close(),this._delete(e))}_delete(e){this.loggers.delete(e)}}})),QZ=u(s((e=>{let t=MX(),{warn:n}=NX();e.version=PX().version,e.transports=LZ(),e.config=RZ(),e.addColors=t.levels,e.format=t.format,e.createLogger=XZ(),e.Logger=YZ(),e.ExceptionHandler=KZ(),e.RejectionHandler=JZ(),e.Container=ZZ(),e.Transport=XX(),e.loggers=new e.Container;let r=e.createLogger();Object.keys(e.config.npm.levels).concat([`log`,`query`,`stream`,`add`,`remove`,`clear`,`profile`,`startTimer`,`handleExceptions`,`unhandleExceptions`,`handleRejections`,`unhandleRejections`,`configure`,`child`]).forEach(t=>e[t]=(...e)=>r[t](...e)),Object.defineProperty(e,`level`,{get(){return r.level},set(e){r.level=e}}),Object.defineProperty(e,`exceptions`,{get(){return r.exceptions}}),Object.defineProperty(e,`rejections`,{get(){return r.rejections}}),[`exitOnError`].forEach(t=>{Object.defineProperty(e,t,{get(){return r[t]},set(e){r[t]=e}})}),Object.defineProperty(e,`default`,{get(){return{exceptionHandlers:r.exceptionHandlers,rejectionHandlers:r.rejectionHandlers,transports:r.transports}}}),n.deprecated(e,`setLevels`),n.forFunctions(e,`useFormat`,[`cli`]),n.forProperties(e,`useFormat`,[`padLevels`,`stripColors`]),n.forFunctions(e,`deprecated`,[`addRewriter`,`addFilter`,`clone`,`extend`]),n.forProperties(e,`deprecated`,[`emitErrs`,`levelLength`])}))());let $Z=function(e){return e.ERROR=`error`,e.WARN=`warn`,e.INFO=`info`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({});const eQ=$Z.INFO,tQ=$Z.VERBOSE,nQ=$Z.DEBUG;$Z.ERROR,$Z.WARN,$Z.INFO,$Z.VERBOSE,$Z.DEBUG;function rQ(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function iQ(e,t){return function(n,r){t(n,r,e)}}function aQ(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function oQ(...e){return e.map(e=>typeof e==`object`&&e?(0,S.inspect)(e,{depth:4,breakLength:80}):String(e)).join(` `)}let sQ=class{logger;isDebugMode;constructor(e){this.isDebugMode=String(e?.debug)===`true`,this.logger=QZ.createLogger({level:this.getLogLevel(e),transports:[new QZ.transports.Console({format:QZ.format.printf(({message:e})=>String(e??``))})]})}error(...e){this.logger.error(oQ(...e))}warn(...e){this.logger.warn(oQ(...e))}info(...e){this.logger.info(oQ(...e))}verbose(...e){this.logger.verbose(oQ(...e))}debug(...e){this.logger.debug(oQ(...e))}getLogLevel(e){return String(e?.debug)===`true`?nQ:String(e?.verbose)===`true`?tQ:eQ}};sQ=aQ([et(),iQ(0,Ze(lW.CliOptions)),iQ(0,ut()),rQ(`design:paramtypes`,[Object])],sQ);let cQ=class{config;constructor(e,t){this.logger=t,this.config=this.initializeConfig(e)}getConfig(){return this.config}maskedConfig(){let e=this.config.gitTopLevel;return this.config.command===dW.PROJECT?{...this.config,secretToken:`xxxx`,token:`xxxx`,...(0,B.isDefined)(e)&&{rootPath:uW.default.relative(e,this.config.rootPath)},...(0,B.isDefined)(this.config.targetDirectory)&&{targetDirectory:uW.default.normalize(this.config.targetDirectory)}}:{...this.config,secretToken:`xxxx`,token:`xxxx`,...(0,B.isDefined)(e)&&{rootPath:uW.default.relative(e,this.config.rootPath)}}}isDev(){return process.env.IS_DEV===`true`}getConfigValue(e){return this.config[e]}updateConfigValue(e,t){this.config[e]=t}getConfigValueOrThrow(e,t){let n=this.config[e];if(!(0,B.isDefined)(n)){let n=t??`Configuration key ${e} is required but not configured`;throw Error(n)}return n}initializeConfig(e){let t=this.getRawConfigFromInputs(e),n=ZY.parse(t);return this.logger.verbose(`Configuration validated successfully`),this.logger.debug(`Configuration: ${JSON.stringify(n,null,2)}`),n}getRawConfigFromInputs(e){if(!e)throw Error(`CLI options are required but not provided`);let t={command:e.command,testStructure:e.testStructure,testFramework:e.testFramework,testSuffix:e.testSuffix,testFileName:e.testFileNaming,requestSource:cW.RequestSource.CLI,concurrency:e.maxConcurrency,backendURL:e.baseHost,secretToken:e.apiKey,autoCommit:e.autoCommit,token:e.token,testCommand:e.testCommand,coverageCommand:e.coverageCommand,lintCommand:e.lintCommand,prettierCommand:e.prettierCommand,disableLintRules:e.disableLintRules,refName:e.refName,baseRef:e.baseRef,gitOrg:e.gitOrg,gitRepo:e.gitRepo,gitUserEmail:e.gitUserEmail,gitUserName:e.gitUserName,SCMProvider:e.scmProvider,prNumber:e.prNumber,commitHash:e.commitHash,targetDirectory:e.targetDirectory,frequency:e.frequency,startTime:e.startTime,keepErrorTests:e.keepErrorTests,keepFailedTests:e.keepFailedTests,conditionalKeep:e.conditionalKeep,continueOnTestErrors:e.continueOnTestErrors,changedMethodsOnly:e.changedMethodsOnly,skipCoverageAfter:e.skipCoverageAfter,maxTestables:e.maxTestables,autoCommitSkipCi:e.autoCommitSkipCi,perFunctionTimeout:e.perFunctionTimeout,coverageThreshold:e.coverageThreshold,reuseCoverage:e.reuseCoverage,reuseCoverageMaxRuns:e.reuseCoverageMaxRuns,experimentalAgentSdk:e.experimentalAgentSdk,agentSdkModel:e.agentSdkModel,agentSdkBudget:e.agentSdkBudget,verbose:e.verbose,debug:e.debug,...this.isDev()&&{rootPath:e.rootPath}};return Object.fromEntries(Object.entries(t).filter(([,e])=>!(0,B.isEmpty)(e)))}};cQ=aQ([et(`Singleton`),iQ(0,Ze(lW.CliOptions)),iQ(1,Ze(sQ)),rQ(`design:paramtypes`,[Object,Object])],cQ);var lQ;let uQ=class{constructor(e,t){this.configService=e,this.logger=t}data={warnings:[]};setChangedFilesData(e){this.data.changedFiles=e}setCoverageData(e,t){this.data.coverage={before:e,after:t}}setPRCoverageData(e,t){this.data.prCoverage={before:e,after:t}}setCoverageSkipped(){this.data.coverageSkipped=!0}setCoverageBeforeSkipped(){this.data.coverageBeforeSkipped=!0}setTestGenerationData(e){this.data.testGeneration=e}setAutoCommitStatus(e){this.data.autoCommit={enabled:e}}addWarning(e){this.data.warnings.push({message:e})}getWorkflowRunOutput(){return{filesCount:this.data.changedFiles?.changedFilesCount??0,codeFileCount:this.data.changedFiles?.candidateFilesCount??0,methodsCount:this.data.changedFiles?.functionCount??0,publicMethodCount:this.data.changedFiles?.publicMethodCount??0,publicMethodBelowCoverageCount:this.data.changedFiles?.testablesToGenerateCount??0,generatedMethodsCount:this.data.testGeneration?.generated??0,successMethodsCount:this.data.testGeneration?.successMethodsCount??0,committedFilesCount:this.data.testGeneration?.committedFilesCount??0,numberOfGreenTests:this.data.testGeneration?.greenTests??0,numberOfRedTests:this.data.testGeneration?.redTests??0,publicMethods:this.data.changedFiles?.publicMethods,changedMethods:this.data.changedFiles?.changedMethods,methodsBelowCoverage:this.data.changedFiles?.methodsBelowCoverage}}generateMarkdownSummary(){let e=[];for(let t of this.data.warnings)e.push(`⚠️ ${t.message}`);if(e.push(``,`🧪 **Early Test Generation Agent**`,``),this.data.changedFiles){let{changedFilesCount:t,candidateFilesCount:n,functionCount:r,testablesToGenerateCount:i}=this.data.changedFiles;e.push(`- Changed files: ${t}`,`- Files with testable code: ${n}`,`- Total methods detected: ${r}`,`- Public methods below coverage threshold: ${i}`)}if(this.data.testGeneration){let{successMethodsCount:t,greenTests:n,redTests:r,skippedMethods:i}=this.data.testGeneration;e.push(`- Generated tests for ${t} methods`,`- Generated ${n} green unit tests`,`- Filtered ${r} red unit tests`,...(0,B.isDefined)(i)&&i>0?[`- Skipped ${i} methods (already tested)`]:[],`**Action Taken**`,``,`✅ Unit tests automatically generated for ${t} public functions below threshold.`)}if((0,B.isDefined)(this.data.autoCommit)&&this.data.autoCommit.enabled&&e.push(`📦 Test files have been auto-committed to this branch.`),(0,B.isDefined)(this.data.prCoverage)){let t=this.data.coverageBeforeSkipped??!1,n=this.data.coverageSkipped??!1,r=t?`Skipped`:`${this.data.prCoverage.before.percentage??0}%`,i=n?`Skipped`:`${this.data.prCoverage.after.percentage??0}%`;switch(this.configService.getConfigValue(`command`)){case dW.PR:e.push(``,`**📊 PR coverage before: `+r+`. PR coverage after: `+i+`.**`);break;case dW.COMMIT:e.push(``,`**📊 Commit coverage before: `+r+`. Commit coverage after: `+i+`.**`);break;case dW.PROJECT:e.push(``,`**📊 Project coverage before: `+r+`. Project coverage after: `+i+`.**`);break}}return e.push(``,`Early Agent is now guarding your coverage.`,"Early Trace ID: `"+this.configService.getConfigValue(`traceId`)+"`"),e.join(`
32391
+ `))}_onEvent(e,t){function n(n){e===`error`&&!this.transports.includes(t)&&this.add(t),this.emit(e,n,t)}t[`__winston`+e]||(t[`__winston`+e]=n.bind(this),t.on(e,t[`__winston`+e]))}_addDefaultMeta(e){this.defaultMeta&&Object.assign(e,this.defaultMeta)}};function g(e,t){let n=e[t];return!n&&n!==0?null:n}Object.defineProperty(h.prototype,`transports`,{configurable:!1,enumerable:!0,get(){let{pipes:e}=this._readableState;return Array.isArray(e)?e:[e].filter(Boolean)}}),t.exports=h})),XZ=s(((e,t)=>{let{LEVEL:n}=pX(),r=RZ(),i=YZ(),a=jZ()(`winston:create-logger`);function o(e){return`is`+e.charAt(0).toUpperCase()+e.slice(1)+`Enabled`}t.exports=function(e={}){e.levels=e.levels||r.npm.levels;class t extends i{constructor(e){super(e)}}let s=new t(e);return Object.keys(e.levels).forEach(function(e){if(a(`Define prototype method for "%s"`,e),e===`log`){console.warn(`Level "log" not defined: conflicts with the method "log". Use a different level name.`);return}t.prototype[e]=function(...t){let r=this||s;if(t.length===1){let[i]=t,a=i&&i.message&&i||{message:i};return a.level=a[n]=e,r._addDefaultMeta(a),r.write(a),this||s}return t.length===0?(r.log(e,``),r):r.log(e,...t)},t.prototype[o(e)]=function(){return(this||s).isLevelEnabled(e)}}),s}})),ZZ=s(((e,t)=>{let n=XZ();t.exports=class{constructor(e={}){this.loggers=new Map,this.options=e}add(e,t){if(!this.loggers.has(e)){t=Object.assign({},t||this.options);let r=t.transports||this.options.transports;r?t.transports=Array.isArray(r)?r.slice():[r]:t.transports=[];let i=n(t);i.on(`close`,()=>this._delete(e)),this.loggers.set(e,i)}return this.loggers.get(e)}get(e,t){return this.add(e,t)}has(e){return!!this.loggers.has(e)}close(e){if(e)return this._removeLogger(e);this.loggers.forEach((e,t)=>this._removeLogger(t))}_removeLogger(e){this.loggers.has(e)&&(this.loggers.get(e).close(),this._delete(e))}_delete(e){this.loggers.delete(e)}}})),QZ=u(s((e=>{let t=MX(),{warn:n}=NX();e.version=PX().version,e.transports=LZ(),e.config=RZ(),e.addColors=t.levels,e.format=t.format,e.createLogger=XZ(),e.Logger=YZ(),e.ExceptionHandler=KZ(),e.RejectionHandler=JZ(),e.Container=ZZ(),e.Transport=XX(),e.loggers=new e.Container;let r=e.createLogger();Object.keys(e.config.npm.levels).concat([`log`,`query`,`stream`,`add`,`remove`,`clear`,`profile`,`startTimer`,`handleExceptions`,`unhandleExceptions`,`handleRejections`,`unhandleRejections`,`configure`,`child`]).forEach(t=>e[t]=(...e)=>r[t](...e)),Object.defineProperty(e,`level`,{get(){return r.level},set(e){r.level=e}}),Object.defineProperty(e,`exceptions`,{get(){return r.exceptions}}),Object.defineProperty(e,`rejections`,{get(){return r.rejections}}),[`exitOnError`].forEach(t=>{Object.defineProperty(e,t,{get(){return r[t]},set(e){r[t]=e}})}),Object.defineProperty(e,`default`,{get(){return{exceptionHandlers:r.exceptionHandlers,rejectionHandlers:r.rejectionHandlers,transports:r.transports}}}),n.deprecated(e,`setLevels`),n.forFunctions(e,`useFormat`,[`cli`]),n.forProperties(e,`useFormat`,[`padLevels`,`stripColors`]),n.forFunctions(e,`deprecated`,[`addRewriter`,`addFilter`,`clone`,`extend`]),n.forProperties(e,`deprecated`,[`emitErrs`,`levelLength`])}))());let $Z=function(e){return e.ERROR=`error`,e.WARN=`warn`,e.INFO=`info`,e.VERBOSE=`verbose`,e.DEBUG=`debug`,e}({});const eQ=$Z.INFO,tQ=$Z.VERBOSE,nQ=$Z.DEBUG;$Z.ERROR,$Z.WARN,$Z.INFO,$Z.VERBOSE,$Z.DEBUG;function rQ(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function iQ(e,t){return function(n,r){t(n,r,e)}}function aQ(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function oQ(...e){return e.map(e=>typeof e==`object`&&e?(0,S.inspect)(e,{depth:4,breakLength:80}):String(e)).join(` `)}let sQ=class{logger;isDebugMode;constructor(e){this.isDebugMode=String(e?.debug)===`true`,this.logger=QZ.createLogger({level:this.getLogLevel(e),transports:[new QZ.transports.Console({format:QZ.format.printf(({message:e})=>String(e??``))})]})}error(...e){this.logger.error(oQ(...e))}warn(...e){this.logger.warn(oQ(...e))}info(...e){this.logger.info(oQ(...e))}verbose(...e){this.logger.verbose(oQ(...e))}debug(...e){this.logger.debug(oQ(...e))}getLogLevel(e){return String(e?.debug)===`true`?nQ:String(e?.verbose)===`true`?tQ:eQ}};sQ=aQ([et(),iQ(0,Ze(lW.CliOptions)),iQ(0,ut()),rQ(`design:paramtypes`,[Object])],sQ);let cQ=class{config;constructor(e,t){this.logger=t,this.config=this.initializeConfig(e)}getConfig(){return this.config}maskedConfig(){let e=this.config.gitTopLevel;return this.config.command===dW.PROJECT?{...this.config,secretToken:`xxxx`,token:`xxxx`,...(0,B.isDefined)(e)&&{rootPath:uW.default.relative(e,this.config.rootPath)},...(0,B.isDefined)(this.config.targetDirectory)&&{targetDirectory:uW.default.normalize(this.config.targetDirectory)}}:{...this.config,secretToken:`xxxx`,token:`xxxx`,...(0,B.isDefined)(e)&&{rootPath:uW.default.relative(e,this.config.rootPath)}}}isDev(){return process.env.IS_DEV===`true`}getConfigValue(e){return this.config[e]}updateConfigValue(e,t){this.config[e]=t}getConfigValueOrThrow(e,t){let n=this.config[e];if(!(0,B.isDefined)(n)){let n=t??`Configuration key ${e} is required but not configured`;throw Error(n)}return n}initializeConfig(e){let t=this.getRawConfigFromInputs(e),n=ZY.parse(t);return this.capMaxTestables(n),this.logger.verbose(`Configuration validated successfully`),this.logger.debug(`Configuration: ${JSON.stringify(n,null,2)}`),n}capMaxTestables(e){e.command===dW.COVERAGE||e.maxTestables<=10||(this.logger.warn(`Capping maxTestables from ${e.maxTestables} to 10 (maximum allowed).`),e.maxTestables=10)}getRawConfigFromInputs(e){if(!e)throw Error(`CLI options are required but not provided`);let t={command:e.command,testStructure:e.testStructure,testFramework:e.testFramework,testSuffix:e.testSuffix,testFileName:e.testFileNaming,requestSource:cW.RequestSource.CLI,concurrency:e.maxConcurrency,backendURL:e.baseHost,secretToken:e.apiKey,autoCommit:e.autoCommit,token:e.token,testCommand:e.testCommand,coverageCommand:e.coverageCommand,lintCommand:e.lintCommand,prettierCommand:e.prettierCommand,disableLintRules:e.disableLintRules,refName:e.refName,baseRef:e.baseRef,gitOrg:e.gitOrg,gitRepo:e.gitRepo,gitUserEmail:e.gitUserEmail,gitUserName:e.gitUserName,SCMProvider:e.scmProvider,prNumber:e.prNumber,commitHash:e.commitHash,targetDirectory:e.targetDirectory,frequency:e.frequency,startTime:e.startTime,keepErrorTests:e.keepErrorTests,keepFailedTests:e.keepFailedTests,conditionalKeep:e.conditionalKeep,continueOnTestErrors:e.continueOnTestErrors,changedMethodsOnly:e.changedMethodsOnly,skipCoverageAfter:e.skipCoverageAfter,maxTestables:e.maxTestables,autoCommitSkipCi:e.autoCommitSkipCi,perFunctionTimeout:e.perFunctionTimeout,coverageThreshold:e.coverageThreshold,reuseCoverage:e.reuseCoverage,reuseCoverageMaxRuns:e.reuseCoverageMaxRuns,experimentalAgentSdk:e.experimentalAgentSdk,agentSdkModel:e.agentSdkModel,agentSdkBudget:e.agentSdkBudget,verbose:e.verbose,debug:e.debug,...this.isDev()&&{rootPath:e.rootPath}};return Object.fromEntries(Object.entries(t).filter(([,e])=>!(0,B.isEmpty)(e)))}};cQ=aQ([et(`Singleton`),iQ(0,Ze(lW.CliOptions)),iQ(1,Ze(sQ)),rQ(`design:paramtypes`,[Object,Object])],cQ);var lQ;let uQ=class{constructor(e,t){this.configService=e,this.logger=t}data={warnings:[]};setChangedFilesData(e){this.data.changedFiles=e}setCoverageData(e,t){this.data.coverage={before:e,after:t}}setPRCoverageData(e,t){this.data.prCoverage={before:e,after:t}}setCoverageSkipped(){this.data.coverageSkipped=!0}setCoverageBeforeSkipped(){this.data.coverageBeforeSkipped=!0}setTestGenerationData(e){this.data.testGeneration=e}setAutoCommitStatus(e){this.data.autoCommit={enabled:e}}addWarning(e){this.data.warnings.push({message:e})}getWorkflowRunOutput(){return{filesCount:this.data.changedFiles?.changedFilesCount??0,codeFileCount:this.data.changedFiles?.candidateFilesCount??0,methodsCount:this.data.changedFiles?.functionCount??0,publicMethodCount:this.data.changedFiles?.publicMethodCount??0,publicMethodBelowCoverageCount:this.data.changedFiles?.testablesToGenerateCount??0,generatedMethodsCount:this.data.testGeneration?.generated??0,successMethodsCount:this.data.testGeneration?.successMethodsCount??0,committedFilesCount:this.data.testGeneration?.committedFilesCount??0,numberOfGreenTests:this.data.testGeneration?.greenTests??0,numberOfRedTests:this.data.testGeneration?.redTests??0,publicMethods:this.data.changedFiles?.publicMethods,changedMethods:this.data.changedFiles?.changedMethods,methodsBelowCoverage:this.data.changedFiles?.methodsBelowCoverage}}generateMarkdownSummary(){let e=[];for(let t of this.data.warnings)e.push(`⚠️ ${t.message}`);if(e.push(``,`🧪 **Early Test Generation Agent**`,``),this.data.changedFiles){let{changedFilesCount:t,candidateFilesCount:n,functionCount:r,testablesToGenerateCount:i}=this.data.changedFiles;e.push(`- Changed files: ${t}`,`- Files with testable code: ${n}`,`- Total methods detected: ${r}`,`- Public methods below coverage threshold: ${i}`)}if(this.data.testGeneration){let{successMethodsCount:t,greenTests:n,redTests:r,skippedMethods:i}=this.data.testGeneration;e.push(`- Generated tests for ${t} methods`,`- Generated ${n} green unit tests`,`- Filtered ${r} red unit tests`,...(0,B.isDefined)(i)&&i>0?[`- Skipped ${i} methods (already tested)`]:[],`**Action Taken**`,``,`✅ Unit tests automatically generated for ${t} public functions below threshold.`)}if((0,B.isDefined)(this.data.autoCommit)&&this.data.autoCommit.enabled&&e.push(`📦 Test files have been auto-committed to this branch.`),(0,B.isDefined)(this.data.prCoverage)){let t=this.data.coverageBeforeSkipped??!1,n=this.data.coverageSkipped??!1,r=t?`Skipped`:`${this.data.prCoverage.before.percentage??0}%`,i=n?`Skipped`:`${this.data.prCoverage.after.percentage??0}%`;switch(this.configService.getConfigValue(`command`)){case dW.PR:e.push(``,`**📊 PR coverage before: `+r+`. PR coverage after: `+i+`.**`);break;case dW.COMMIT:e.push(``,`**📊 Commit coverage before: `+r+`. Commit coverage after: `+i+`.**`);break;case dW.PROJECT:e.push(``,`**📊 Project coverage before: `+r+`. Project coverage after: `+i+`.**`);break}}return e.push(``,`Early Agent is now guarding your coverage.`,"Early Trace ID: `"+this.configService.getConfigValue(`traceId`)+"`"),e.join(`
32392
32392
  `)}async addToJobSummary(){try{this.logger.info(`Successfully added summary to job summary`)}catch(e){this.logger.warn(`Failed to add summary to job summary: ${e instanceof Error?e.message:`Unknown error`}`)}}clear(){this.data={warnings:[]}}};uQ=aQ([et(),iQ(0,Ze(cQ)),iQ(1,Ze(sQ)),rQ(`design:paramtypes`,[typeof(lQ=cQ!==void 0&&cQ)==`function`?lQ:Object,Object])],uQ);const dQ={allowedExtensions:[`.ts`,`.tsx`,`.js`,`.jsx`,`.py`],excludePatterns:[`.test.`,`.spec.`,`.d.ts`,`jest.config`,`vitest.config`,`webpack.config`,`rollup.config`,`vite.config`,`tsconfig`,`eslint.config`,`prettier.config`,`babel.config`,`.eslintrc`,`.prettierrc`,`dist/`,`build/`,`out/`,`.next/`,`.nuxt/`,`.early.test`,`_test.py`,`conftest.py`,`__pycache__/`,`.venv/`]};let fQ=function(e){return e.Added=`added`,e.Modified=`modified`,e}({});var pQ,mQ;let hQ=class{constructor(e,t,n){this.configService=e,this.summaryService=t,this.logger=n}async safePostSummaryToPr(){try{if((0,B.isDefined)(this.configService.getConfigValue(`prNumber`)))await this.postSummaryToPr();else{let e=this.summaryService.generateMarkdownSummary();this.logger.info(e)}}catch(e){this.logger.error(`Failed to post summary to PR: ${e instanceof Error?e.message:`Unknown error`}`)}}async getChangedFilesWithStatus(){return(await this.getChangedFilesPR()).map(e=>({filePath:e,status:fQ.Modified}))}async getContributorAvatarUrl(){}};hQ=aQ([et(),iQ(0,Ze(cQ)),iQ(1,Ze(uQ)),iQ(2,Ze(sQ)),rQ(`design:paramtypes`,[typeof(pQ=cQ!==void 0&&cQ)==`function`?pQ:Object,typeof(mQ=uQ!==void 0&&uQ)==`function`?mQ:Object,Object])],hQ);const gQ=()=>H0.get(cQ),_Q=(0,S.promisify)(f.exec),vQ=async(e,t={})=>await _Q(e,{cwd:gQ().getConfig().rootPath,...t});var yQ,bQ;let xQ=class{constructor(e,t,n){this.configService=e,this.scmHostService=t,this.logger=n}async hydrateConfig(){let e=this.configService.getConfigValue(`commitHash`),t=await this.getGitInfo({authorSha:e});this.configService.updateConfigValue(`gitOrg`,t.owner),this.configService.updateConfigValue(`gitRepo`,t.repository),this.configService.updateConfigValue(`gitTopLevel`,t.topLevel),this.configService.updateConfigValue(`contributorName`,t.authorName),this.configService.updateConfigValue(`contributorEmail`,t.authorEmail)}async getGitInfo(e){try{let t=e?.authorSha,[n,r,i,a,o,s,c]=await Promise.all([this.getRefName(),this.getSha(),this.getRemoteUrl(),this.getTopLevel(),this.getCommitDate(),this.getCommitAuthorName(t),this.getCommitAuthorEmail(t)]),{owner:l,repository:u}=this.parseRemoteUrl(i);return{ref_name:n,repository:u,owner:l,sha:r,topLevel:a,remoteUrl:i,commitDate:o,authorName:s,authorEmail:c}}catch(e){return this.logger.warn(`Failed to get local Git info: ${e instanceof Error?e.message:`Unknown error`}`),{ref_name:``,repository:``,owner:``,sha:``,topLevel:``,remoteUrl:``,commitDate:``,authorName:``,authorEmail:``}}}async getRefName(){try{let{stdout:e}=await vQ(`git rev-parse --abbrev-ref HEAD`);return e.trim()}catch{return this.logger.warn(`Could not get ref_name from local Git`),``}}async getSha(){try{let{stdout:e}=await vQ(`git rev-parse HEAD`);return e.trim()}catch{return this.logger.warn(`Could not get SHA from local Git`),``}}async getRemoteUrl(){try{let{stdout:e}=await vQ(`git remote get-url origin`);return e.trim()}catch{return this.logger.warn(`Could not get remote URL from local Git`),``}}async getTopLevel(){try{let{stdout:e}=await vQ(`git rev-parse --show-toplevel`);return e.trim()}catch{return this.logger.warn(`Could not get top-level directory from local Git`),``}}parseRemoteUrl(e){if(!e)return{owner:``,repository:``};try{if(e.startsWith(`http`)){let t=new URL(e).pathname.split(`/`).filter(Boolean);if(t.length>=2)return{owner:t[0],repository:t[1].replace(`.git`,``)}}if(e.includes(`@`)&&e.includes(`:`)){let t=e.split(`:`);if(t.length===2){let e=t[1].split(`/`).filter(Boolean);if(e.length>=2)return{owner:e[0],repository:e[1].replace(`.git`,``)}}}return{owner:``,repository:``}}catch{return this.logger.warn(`Failed to parse remote URL: ${e}`),{owner:``,repository:``}}}async getEarlyFiles(e){let{stdout:t}=await vQ(`git ls-files --others --exclude-standard`),{stdout:n}=await vQ(`git diff --name-only --diff-filter=M`),r=[...new Set([...t.trim().split(`
32393
32393
  `),...n.trim().split(`
32394
32394
  `)])].filter(Boolean).filter(e=>e.includes(`.early.`));return(0,B.isDefined)(e)&&e.absolute?r.map(e=>uW.default.resolve(this.configService.getConfigValue(`gitTopLevel`),e)):r}async commitFiles(e){try{await this.scmHostService.setupGit(),await vQ(`git fetch`),(0,B.isDefined)(e)&&(await vQ(`git checkout ${e}`),await vQ(`git branch --set-upstream-to=origin/${e}`),await vQ(`git pull`));let t=await this.getEarlyFiles();if(t.length===0)return this.logger.info(`No files to commit`),{committedFiles:[],error:``};for(let e of t)await vQ(`git add "${e}"`);let{name:n,email:r}=this.scmHostService.getGitCommiterInfo();await vQ(`git -c user.name="${n}" -c user.email="${r}" commit --no-verify -m "${this.configService.getConfigValue(`autoCommitSkipCi`)?`chore: add early-catch tests [skip ci]`:`chore: add early-catch tests`}"`),this.logger.info(`Committed ${t.length} files`),await vQ(`git push --no-verify`);let{stdout:i}=await vQ(`git rev-parse HEAD`);return{committedFiles:t,error:``,resultCommitSha:i.trim()}}catch(e){let t=e instanceof Error?e.message:`Unknown error`;return this.logger.error(`Failed to commit files: ${t}`),{committedFiles:[],error:t}}finally{await this.scmHostService.teardownGit()}}async checkRefExists(e){try{if(!e)return!1;let{origin:t}=this.scmHostService.getGitOrigin(),{stdout:n}=await vQ(`git ls-remote --heads --tags ${t} ${e}`);return n.trim().length>0}catch(t){return this.logger.warn(`Failed to check if reference '${e}' exists: ${t instanceof Error?t.message:`Unknown error`}`),!1}}async getChangedFilesForPR(e={}){return(await this.getChangedFilesForPRWithStatus(e)).map(e=>e.filePath)}async getChangedFilesForPRWithStatus(e={}){try{let t=await this.scmHostService.getChangedFilesWithStatus();if((0,B.isDefined)(e.absolute)&&e.absolute){let e=await this.getTopLevel();return t.map(t=>({filePath:uW.default.join(e,t.filePath),status:t.status}))}return t}catch(e){let t=e instanceof Error?e.message:`Unknown error`;throw this.logger.error(`Failed to get changed files for PR: ${t}`),Error(`Failed to get changed files for PR: ${t}`)}}async getChangedFilesForCommit(e={}){return(await this.getChangedFilesForCommitWithStatus(e)).map(e=>e.filePath)}async getChangedFilesForCommitWithStatus(e={}){let t=this.configService.getConfigValue(`commitHash`);if(!(0,B.isDefined)(t))throw Error(`commitHash config is required for commit file retrieval`);try{let n=this.configService.getConfigValue(`baseRef`),r;r=(0,B.isDefined)(n)?(await vQ(`git diff --name-status --diff-filter=AM "${await this.getBaseRevision({baseBranch:n})}...${t}"`)).stdout:(await vQ(`git diff-tree --no-commit-id --name-status -r --diff-filter=AM "${t}"`)).stdout;let i=r.trim().split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@earlyai/cli",
3
- "version": "2.3.1",
3
+ "version": "2.4.0",
4
4
  "description": "early cli",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  },
56
56
  "devDependencies": {
57
57
  "@earlyai/core": "^1.5.0",
58
- "@earlyai/ts-agent": "^0.74.0",
58
+ "@earlyai/ts-agent": "^0.74.1",
59
59
  "@eslint/compat": "^1.3.2",
60
60
  "@eslint/eslintrc": "^3.3.1",
61
61
  "@eslint/js": "^9.34.0",