@invariant.guru/cli 0.6.7 → 0.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js CHANGED
@@ -793,7 +793,7 @@ ${dd.join(`
793
793
  ${L_.split(R_).join("]]]]><![CDATA[>")}
794
794
  ${R_}`}e($_,"wrapCdata");function N_(L_){const j_=L_.split(`
795
795
  `);let H_;for(const V_ of j_){if(V_.trim().length===0)continue;const J_=V_.length-V_.trimStart().length;if(J_===0)return L_;H_=H_===void 0?J_:Math.min(H_,J_)}return H_===void 0||H_===0?L_:j_.map(V_=>V_.trim().length===0?"":V_.slice(H_)).join(`
796
- `)}e(N_,"dedentBlock");function M_(L_){const j_=L_.trim();if(!j_.startsWith(F_))return N_(L_);const H_=[];let V_=0;for(;V_<j_.length;){const J_=j_.indexOf(F_,V_);if(J_===-1)break;const z_=j_.indexOf(R_,J_+F_.length);if(z_===-1)return L_;H_.push(j_.slice(J_+F_.length,z_)),V_=z_+R_.length}return H_.length===0?L_:N_(H_.join("").replace(/^\r?\n/,"").replace(/\r?\n[ \t]*$/,""))}return e(M_,"stripCdata"),reviewXml}e(requireReviewXml,"requireReviewXml");var reviewPaths={},hasRequiredReviewPaths;function requireReviewPaths(){return hasRequiredReviewPaths||(hasRequiredReviewPaths=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.REVIEW_SLUG_MAX_LENGTH=t.REVIEW_SLUG_PATTERN=t.REVIEW_FILE_EXTENSIONS=t.REVIEW_FILE_EXTENSION=t.DEFAULT_REVIEW_DIRECTORY=void 0,t.stripReviewExtension=fd,t.hasReviewExtension=pd,t.normalizePosixPath=dd,t.isAbsolutePath=Rd,t.isProjectRelative=Bd,t.branchToSlug=C_,t.normalizeReviewSlug=F_,t.resolveReviewSlug=R_,t.isReviewSlug=$_,t.assertReviewSlug=N_,t.reviewFileFor=M_,t.reviewBasenameFor=L_;const Xf=requireInvalidReviewDocument_error();t.DEFAULT_REVIEW_DIRECTORY="doc/review",t.REVIEW_FILE_EXTENSION=".xml",t.REVIEW_FILE_EXTENSIONS=[".xml",".md"];function fd(j_){const H_=t.REVIEW_FILE_EXTENSIONS.find(V_=>j_.toLowerCase().endsWith(V_));return H_?j_.slice(0,-H_.length):j_}e(fd,"stripReviewExtension");function pd(j_){return t.REVIEW_FILE_EXTENSIONS.some(H_=>j_.toLowerCase().endsWith(H_))}e(pd,"hasReviewExtension"),t.REVIEW_SLUG_PATTERN=/^[a-z0-9][a-z0-9._-]{0,99}$/,t.REVIEW_SLUG_MAX_LENGTH=100;function dd(j_){return j_.replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/^\.\//,"")}e(dd,"normalizePosixPath");function Rd(j_){return j_.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(j_)}e(Rd,"isAbsolutePath");function Bd(j_){return j_.length===0||Rd(j_)?!1:!dd(j_).split("/").includes("..")}e(Bd,"isProjectRelative");function C_(j_){const H_=j_.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/-{2,}/g,"-").replace(/^[-._]+|[-._]+$/g,"").slice(0,t.REVIEW_SLUG_MAX_LENGTH).replace(/[-._]+$/g,"");if(H_.length===0)throw new Xf.InvalidReviewDocumentError("branch",`"${j_}" has no filesystem-safe characters`);return H_}e(C_,"branchToSlug");function F_(j_){const H_=dd(j_).split("/").pop()??j_;return fd(H_).toLowerCase()}e(F_,"normalizeReviewSlug");function R_(j_,H_=t.DEFAULT_REVIEW_DIRECTORY){const V_=dd(j_.trim()),J_=`${dd(H_).replace(/\/+$/,"")}/`,z_=V_.startsWith(J_)?V_.slice(J_.length):V_;if(pd(z_))return F_(z_);const Y_=z_.toLowerCase();return $_(Y_)?Y_:C_(z_)}e(R_,"resolveReviewSlug");function $_(j_){return t.REVIEW_SLUG_PATTERN.test(j_)}e($_,"isReviewSlug");function N_(j_){if(!$_(j_))throw new Xf.InvalidReviewDocumentError("slug",`"${j_}" is not a valid review slug`);return j_}e(N_,"assertReviewSlug");function M_(j_,H_=t.DEFAULT_REVIEW_DIRECTORY){return`${dd(H_).replace(/\/+$/,"")}/${L_(j_)}`}e(M_,"reviewFileFor");function L_(j_){return`${N_(j_)}${t.REVIEW_FILE_EXTENSION}`}e(L_,"reviewBasenameFor")})(reviewPaths)),reviewPaths}e(requireReviewPaths,"requireReviewPaths");var reviewComment={},hasRequiredReviewComment;function requireReviewComment(){return hasRequiredReviewComment||(hasRequiredReviewComment=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ReviewComment=t.COMMENT_TITLE_MAX_LENGTH=t.COMMENT_ID_PATTERN=void 0,t.parseComment=C_;const Xf=requireReviewStatus_enum(),fd=requireInvalidReviewDocument_error(),pd=requireReviewXml(),dd=requireReviewPaths();t.COMMENT_ID_PATTERN=/^c-\d{3,}$/,t.COMMENT_TITLE_MAX_LENGTH=120;function Rd(N_){return N_.replace(/\s+/g," ").trim()}e(Rd,"singleLine");class Bd{static{e(this,"ReviewComment")}constructor(M_){this.props=M_}static create(M_){if(!t.COMMENT_ID_PATTERN.test(M_.id))throw new fd.InvalidReviewDocumentError("comment.id","must look like `c-001`");if(!(0,Xf.isReviewCommentStatus)(M_.status))throw new fd.InvalidReviewDocumentError("comment.status","must be open | staged | discarded");if(!(0,Xf.isReviewCommentSeverity)(M_.severity))throw new fd.InvalidReviewDocumentError("comment.severity","must be blocker | major | minor | nit | praise");if(!(0,Xf.isReviewCommentCategory)(M_.category))throw new fd.InvalidReviewDocumentError("comment.category","must be one of the seven categories");if(M_.file!==void 0&&!(0,dd.isProjectRelative)(M_.file))throw new fd.InvalidReviewDocumentError("comment.file",`must be a project-relative path that stays inside the project (got "${M_.file}")`);if(M_.line!==void 0&&(!Number.isInteger(M_.line)||M_.line<1))throw new fd.InvalidReviewDocumentError("comment.line","must be a 1-based integer");if(M_.endLine!==void 0&&(!Number.isInteger(M_.endLine)||M_.endLine<1))throw new fd.InvalidReviewDocumentError("comment.end-line","must be a 1-based integer");const L_=Rd(M_.title);if(L_.length===0)throw new fd.InvalidReviewDocumentError("comment.title","must not be empty");const j_=M_.line,H_=M_.endLine!==void 0&&j_!==void 0&&M_.endLine<j_?void 0:M_.endLine;return new Bd({...M_,title:L_.slice(0,t.COMMENT_TITLE_MAX_LENGTH),body:M_.body.replace(/\s+$/,""),file:M_.file===void 0?void 0:(0,dd.normalizePosixPath)(M_.file),line:j_,endLine:H_,symbol:M_.symbol?Rd(M_.symbol):void 0,suggestion:M_.suggestion?.replace(/\s+$/,"")||void 0,suggestionLang:M_.suggestionLang?Rd(M_.suggestionLang):void 0})}get id(){return this.props.id}get status(){return this.props.status}get severity(){return this.props.severity}get category(){return this.props.category}get file(){return this.props.file}get line(){return this.props.line}get endLine(){return this.props.endLine}get symbol(){return this.props.symbol}get edited(){return this.props.edited}get discussion(){return this.props.discussion}get title(){return this.props.title}get body(){return this.props.body}get suggestion(){return this.props.suggestion}get suggestionLang(){return this.props.suggestionLang}get location(){if(this.props.file)return this.props.line===void 0?this.props.file:`${this.props.file}:${this.props.line}`}get isOpen(){return this.props.status===Xf.ReviewCommentStatus.Open}get isStaged(){return this.props.status===Xf.ReviewCommentStatus.Staged}withStatus(M_){return Bd.create({...this.props,status:M_})}withDiscussion(M_){return Bd.create({...this.props,discussion:M_})}withEdits(M_,L_){const j_=M_.title!==void 0&&Rd(M_.title)!==this.props.title||M_.body!==void 0&&M_.body.replace(/\s+$/,"")!==this.props.body;return Bd.create({...this.props,title:M_.title??this.props.title,body:M_.body??this.props.body,severity:M_.severity??this.props.severity,category:M_.category??this.props.category,status:M_.status??this.props.status,edited:j_?L_:this.props.edited})}serialize(){const L_=[`<comment ${(0,pd.writeAttributes)([["id",this.props.id],["status",this.props.status],["severity",this.props.severity],["category",this.props.category],["file",this.props.file],["line",this.props.line],["end-line",this.props.endLine],["symbol",this.props.symbol],["edited",this.props.edited],["discussion",this.props.discussion]])}>`,`<title>${(0,pd.escapeXmlText)(this.props.title)}</title>`,"<body>"];if(L_.push((0,pd.wrapCdata)(this.props.body.length>0?this.props.body:"_No detail._")),L_.push("</body>"),this.props.suggestion){const j_=this.props.suggestionLang?` lang="${this.props.suggestionLang}"`:"";L_.push(`<suggestion${j_}>`,(0,pd.wrapCdata)(this.props.suggestion),"</suggestion>")}return L_.push("</comment>"),L_.join(`
796
+ `)}e(N_,"dedentBlock");function M_(L_){const j_=L_.trim();if(!j_.startsWith(F_))return N_(L_);const H_=[];let V_=0;for(;V_<j_.length;){const J_=j_.indexOf(F_,V_);if(J_===-1)break;const z_=j_.indexOf(R_,J_+F_.length);if(z_===-1)return L_;H_.push(j_.slice(J_+F_.length,z_)),V_=z_+R_.length}return H_.length===0?L_:N_(H_.join("").replace(/^\r?\n/,"").replace(/\r?\n[ \t]*$/,""))}return e(M_,"stripCdata"),reviewXml}e(requireReviewXml,"requireReviewXml");var reviewPaths={},hasRequiredReviewPaths;function requireReviewPaths(){return hasRequiredReviewPaths||(hasRequiredReviewPaths=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.REVIEW_SLUG_MAX_LENGTH=t.REVIEW_SLUG_PATTERN=t.REVIEW_FILE_EXTENSIONS=t.REVIEW_FILE_EXTENSION=t.DEFAULT_REVIEW_DIRECTORY=void 0,t.stripReviewExtension=fd,t.hasReviewExtension=pd,t.normalizePosixPath=dd,t.isAbsolutePath=Rd,t.isProjectRelative=Bd,t.branchToSlug=C_,t.normalizeReviewSlug=F_,t.resolveReviewSlug=R_,t.isReviewSlug=$_,t.assertReviewSlug=N_,t.reviewFileFor=M_,t.reviewBasenameFor=L_;const Xf=requireInvalidReviewDocument_error();t.DEFAULT_REVIEW_DIRECTORY="doc/review",t.REVIEW_FILE_EXTENSION=".xml",t.REVIEW_FILE_EXTENSIONS=[".xml",".md"];function fd(j_){const H_=t.REVIEW_FILE_EXTENSIONS.find(V_=>j_.toLowerCase().endsWith(V_));return H_?j_.slice(0,-H_.length):j_}e(fd,"stripReviewExtension");function pd(j_){return t.REVIEW_FILE_EXTENSIONS.some(H_=>j_.toLowerCase().endsWith(H_))}e(pd,"hasReviewExtension"),t.REVIEW_SLUG_PATTERN=/^[a-z0-9][a-z0-9._-]{0,99}$/,t.REVIEW_SLUG_MAX_LENGTH=100;function dd(j_){return j_.replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/^\.\//,"")}e(dd,"normalizePosixPath");function Rd(j_){return j_.startsWith("/")||/^[a-zA-Z]:[\\/]/.test(j_)}e(Rd,"isAbsolutePath");function Bd(j_){return j_.length===0||Rd(j_)?!1:!dd(j_).split("/").includes("..")}e(Bd,"isProjectRelative");function C_(j_){const H_=j_.trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/-{2,}/g,"-").replace(/^[-._]+|[-._]+$/g,"").slice(0,t.REVIEW_SLUG_MAX_LENGTH).replace(/[-._]+$/g,"");if(H_.length===0)throw new Xf.InvalidReviewDocumentError("branch",`"${j_}" has no filesystem-safe characters`);return H_}e(C_,"branchToSlug");function F_(j_){const H_=dd(j_).split("/").pop()??j_;return fd(H_).toLowerCase()}e(F_,"normalizeReviewSlug");function R_(j_,H_=t.DEFAULT_REVIEW_DIRECTORY){const V_=dd(j_.trim()),J_=`${dd(H_).replace(/\/+$/,"")}/`,z_=V_.startsWith(J_)?V_.slice(J_.length):V_;if(pd(z_))return F_(z_);const Y_=z_.toLowerCase();return $_(Y_)?Y_:C_(z_)}e(R_,"resolveReviewSlug");function $_(j_){return t.REVIEW_SLUG_PATTERN.test(j_)}e($_,"isReviewSlug");function N_(j_){if(!$_(j_))throw new Xf.InvalidReviewDocumentError("slug",`"${j_}" is not a valid review slug`);return j_}e(N_,"assertReviewSlug");function M_(j_,H_=t.DEFAULT_REVIEW_DIRECTORY){return`${dd(H_).replace(/\/+$/,"")}/${L_(j_)}`}e(M_,"reviewFileFor");function L_(j_){return`${N_(j_)}${t.REVIEW_FILE_EXTENSION}`}e(L_,"reviewBasenameFor")})(reviewPaths)),reviewPaths}e(requireReviewPaths,"requireReviewPaths");var reviewComment={},hasRequiredReviewComment;function requireReviewComment(){return hasRequiredReviewComment||(hasRequiredReviewComment=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ReviewComment=t.COMMENT_TITLE_MAX_LENGTH=t.COMMENT_ID_PATTERN=void 0,t.parseComment=C_;const Xf=requireReviewStatus_enum(),fd=requireInvalidReviewDocument_error(),pd=requireReviewXml(),dd=requireReviewPaths();t.COMMENT_ID_PATTERN=/^c-\d{3,}$/,t.COMMENT_TITLE_MAX_LENGTH=120;function Rd(N_){return N_.replace(/\s+/g," ").trim()}e(Rd,"singleLine");class Bd{static{e(this,"ReviewComment")}constructor(M_){this.props=M_}static create(M_){if(!t.COMMENT_ID_PATTERN.test(M_.id))throw new fd.InvalidReviewDocumentError("comment.id","must look like `c-001`");if(!(0,Xf.isReviewCommentStatus)(M_.status))throw new fd.InvalidReviewDocumentError("comment.status","must be open | staged | discarded");if(!(0,Xf.isReviewCommentSeverity)(M_.severity))throw new fd.InvalidReviewDocumentError("comment.severity","must be blocker | major | minor | nit | praise");if(!(0,Xf.isReviewCommentCategory)(M_.category))throw new fd.InvalidReviewDocumentError("comment.category","must be one of the seven categories");if(M_.file!==void 0&&!(0,dd.isProjectRelative)(M_.file))throw new fd.InvalidReviewDocumentError("comment.file",`must be a project-relative path that stays inside the project (got "${M_.file}")`);if(M_.line!==void 0&&(!Number.isInteger(M_.line)||M_.line<1))throw new fd.InvalidReviewDocumentError("comment.line","must be a 1-based integer");if(M_.endLine!==void 0&&(!Number.isInteger(M_.endLine)||M_.endLine<1))throw new fd.InvalidReviewDocumentError("comment.end-line","must be a 1-based integer");const L_=Rd(M_.title);if(L_.length===0)throw new fd.InvalidReviewDocumentError("comment.title","must not be empty");const j_=M_.line,H_=M_.endLine!==void 0&&j_!==void 0&&M_.endLine<j_?void 0:M_.endLine;return new Bd({...M_,title:L_.slice(0,t.COMMENT_TITLE_MAX_LENGTH),body:M_.body.replace(/\s+$/,""),file:M_.file===void 0?void 0:(0,dd.normalizePosixPath)(M_.file),line:j_,endLine:H_,symbol:M_.symbol?Rd(M_.symbol):void 0,suggestion:M_.suggestion?.replace(/\s+$/,"")||void 0,suggestionLang:M_.suggestionLang?Rd(M_.suggestionLang):void 0})}get id(){return this.props.id}get status(){return this.props.status}get severity(){return this.props.severity}get category(){return this.props.category}get file(){return this.props.file}get line(){return this.props.line}get endLine(){return this.props.endLine}get symbol(){return this.props.symbol}get edited(){return this.props.edited}get discussion(){return this.props.discussion}get title(){return this.props.title}get body(){return this.props.body}get suggestion(){return this.props.suggestion}get suggestionLang(){return this.props.suggestionLang}get location(){if(this.props.file)return this.props.line===void 0?this.props.file:`${this.props.file}:${this.props.line}`}get isOpen(){return this.props.status===Xf.ReviewCommentStatus.Open}get isStaged(){return this.props.status===Xf.ReviewCommentStatus.Staged}withStatus(M_){return Bd.create({...this.props,status:M_})}withDiscussion(M_){return Bd.create({...this.props,discussion:M_})}withEdits(M_,L_){const j_=M_.title!==void 0&&Rd(M_.title)!==this.props.title||M_.body!==void 0&&M_.body.replace(/\s+$/,"")!==this.props.body||M_.severity!==void 0&&M_.severity!==this.props.severity||M_.category!==void 0&&M_.category!==this.props.category;return Bd.create({...this.props,title:M_.title??this.props.title,body:M_.body??this.props.body,severity:M_.severity??this.props.severity,category:M_.category??this.props.category,status:M_.status??this.props.status,edited:j_?L_:this.props.edited})}serialize(){const L_=[`<comment ${(0,pd.writeAttributes)([["id",this.props.id],["status",this.props.status],["severity",this.props.severity],["category",this.props.category],["file",this.props.file],["line",this.props.line],["end-line",this.props.endLine],["symbol",this.props.symbol],["edited",this.props.edited],["discussion",this.props.discussion]])}>`,`<title>${(0,pd.escapeXmlText)(this.props.title)}</title>`,"<body>"];if(L_.push((0,pd.wrapCdata)(this.props.body.length>0?this.props.body:"_No detail._")),L_.push("</body>"),this.props.suggestion){const j_=this.props.suggestionLang?` lang="${this.props.suggestionLang}"`:"";L_.push(`<suggestion${j_}>`,(0,pd.wrapCdata)(this.props.suggestion),"</suggestion>")}return L_.push("</comment>"),L_.join(`
797
797
  `)}toJSON(){return{...this.props,location:this.location}}}t.ReviewComment=Bd;function C_(N_,M_,L_){const j_=[],H_=(0,pd.readAttributes)(N_),V_=(0,pd.readElements)(M_),J_=H_.get("id")??"";let z_=J_;t.COMMENT_ID_PATTERN.test(J_)||(j_.push(`Comment id "${J_}" is not \`c-NNN\` \u2014 renumbered to \`${L_}\`.`),z_=L_);const Y_=R_(H_.get("status"),Xf.isReviewCommentStatus,Xf.DEFAULT_COMMENT_STATUS,"status",z_,j_),Q_=R_(H_.get("severity"),Xf.isReviewCommentSeverity,Xf.DEFAULT_COMMENT_SEVERITY,"severity",z_,j_),Z_=R_(H_.get("category"),Xf.isReviewCommentCategory,Xf.DEFAULT_COMMENT_CATEGORY,"category",z_,j_);let L0=H_.get("file");L0!==void 0&&!(0,dd.isProjectRelative)(L0)&&(j_.push(`Comment ${z_} points at "${L0}", which is not inside the project \u2014 link dropped.`),L0=void 0);const j0=$_(H_.get("line"),"line",z_,j_),Y0=$_(H_.get("end-line"),"end-line",z_,j_),Z0=V_.get("title")??H_.get("title")??"",Dv=F_(M_,"body")??V_.get("body")??"",Mv=F_(M_,"suggestion"),Ov=M_.match(/<suggestion\s+lang\s*=\s*"([^"]*)"/i)?.[1];Z0.trim().length===0&&j_.push(`Comment ${z_} has no <title> \u2014 the first line of its body is used instead.`);const pb=Z0.trim().length>0?Z0:Dv.split(`
798
798
  `).find(bx=>bx.trim().length>0)??`Comment ${z_}`;return{comment:Bd.create({id:z_,status:Y_,severity:Q_,category:Z_,file:L0,line:j0,endLine:Y0,symbol:H_.get("symbol")||void 0,edited:H_.get("edited")||void 0,discussion:H_.get("discussion")||void 0,title:pb,body:Dv,suggestion:Mv||void 0,suggestionLang:Ov||void 0}),issues:j_}}e(C_,"parseComment");function F_(N_,M_){const L_=new RegExp(`<${M_}(?:\\s[^>]*)?>\\r?\\n?([\\s\\S]*?)\\r?\\n?</${M_}\\s*>`,"i"),j_=N_.match(L_);return j_?(0,pd.stripCdata)(j_[1]):void 0}e(F_,"readRawElement");function R_(N_,M_,L_,j_,H_,V_){return N_===void 0||N_.length===0?L_:M_(N_)?N_:(V_.push(`Comment ${H_} has ${j_}="${N_}", which is not a known value \u2014 read as \`${String(L_)}\`.`),L_)}e(R_,"coerce");function $_(N_,M_,L_,j_){if(N_===void 0||N_.length===0)return;const H_=Number(N_);if(!Number.isInteger(H_)||H_<1){j_.push(`Comment ${L_} has ${M_}="${N_}", which is not a 1-based line number \u2014 dropped.`);return}return H_}e($_,"readPositiveInt")})(reviewComment)),reviewComment}e(requireReviewComment,"requireReviewComment");var reviewRun={},hasRequiredReviewRun;function requireReviewRun(){return hasRequiredReviewRun||(hasRequiredReviewRun=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ReviewRun=t.RUN_ID_PATTERN=void 0,t.parseRun=Bd;const Xf=requireReviewStatus_enum(),fd=requireReviewComment(),pd=requireInvalidReviewDocument_error(),dd=requireReviewXml();t.RUN_ID_PATTERN=/^run-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;class Rd{static{e(this,"ReviewRun")}constructor(F_){this.props=F_}static create(F_){if(!t.RUN_ID_PATTERN.test(F_.id))throw new pd.InvalidReviewDocumentError("run.id","must look like `run-<uuid>`");if(!(0,Xf.isReviewRunStatus)(F_.status))throw new pd.InvalidReviewDocumentError("run.status","must be open | triaged | published");return new Rd({...F_,summary:F_.summary.replace(/\s+$/,"")})}get id(){return this.props.id}get sessionId(){return this.props.sessionId}get headSha(){return this.props.headSha}get created(){return this.props.created}get status(){return this.props.status}get summary(){return this.props.summary}get comments(){return[...this.props.comments]}get counts(){const F_=(0,Xf.emptyCounts)();for(const R_ of this.props.comments)F_.total+=1,R_.status===Xf.ReviewCommentStatus.Open?F_.open+=1:R_.status===Xf.ReviewCommentStatus.Staged?F_.staged+=1:F_.discarded+=1;return F_}get sortedComments(){return[...this.props.comments].sort((F_,R_)=>{const $_=(0,Xf.severityRank)(F_.severity)-(0,Xf.severityRank)(R_.severity);if($_!==0)return $_;const N_=(F_.file??"").localeCompare(R_.file??"");return N_!==0?N_:(F_.line??0)-(R_.line??0)})}find(F_){return this.props.comments.find(R_=>R_.id===F_)}withStatus(F_){return Rd.create({...this.props,status:F_})}withComment(F_){return Rd.create({...this.props,comments:this.props.comments.map(R_=>R_.id===F_.id?F_:R_)})}serialize(){const R_=[`<review-run ${(0,dd.writeAttributes)([["id",this.props.id],["session",this.props.sessionId],["head-sha",this.props.headSha],["created",this.props.created],["status",this.props.status]])}>`,""];R_.push("<review-summary>"),R_.push((0,dd.wrapCdata)(this.props.summary.length>0?this.props.summary:"_No summary._")),R_.push("</review-summary>","");for(const $_ of this.props.comments)R_.push($_.serialize(),"");return R_.push("</review-run>"),R_.join(`
799
799
  `)}}t.ReviewRun=Rd;function Bd(C_,F_,R_,$_,N_){const M_=[],L_=(0,dd.readAttributes)(C_),j_=L_.get("id")??"";let H_=j_;t.RUN_ID_PATTERN.test(j_)||(H_=`run-00000000-0000-4000-8000-${String(R_).padStart(12,"0")}`,M_.push(`Review run ${R_+1} has id "${j_}", which is not \`run-<uuid>\` \u2014 replaced.`));const V_=L_.get("status");let J_=Xf.DEFAULT_RUN_STATUS;V_!==void 0&&V_.length>0&&((0,Xf.isReviewRunStatus)(V_)?J_=V_:M_.push(`Review run ${H_} has status="${V_}" \u2014 read as \`open\`.`));const z_=(0,dd.findBlocks)(F_,"review-summary")[0],Y_=z_?(0,dd.stripCdata)(z_.inner).replace(/^\r?\n/,"").replace(/\s+$/,""):"";z_||M_.push(`Review run ${H_} has no <review-summary>.`);const Q_=[];for(const Z_ of(0,dd.findBlocks)(F_,"comment")){const L0=`c-${String(N_()).padStart(3,"0")}`,j0=(0,fd.parseComment)(Z_.attributesText,Z_.inner,L0);Q_.push(j0.comment),M_.push(...j0.issues)}return{run:Rd.create({id:H_,sessionId:L_.get("session")||void 0,headSha:L_.get("head-sha")||"unknown",created:L_.get("created")||$_,status:J_,summary:Y_,comments:Q_}),issues:M_}}e(Bd,"parseRun")})(reviewRun)),reviewRun}e(requireReviewRun,"requireReviewRun");var reviewMeta={},hasRequiredReviewMeta;function requireReviewMeta(){return hasRequiredReviewMeta||(hasRequiredReviewMeta=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ReviewMeta=t.REVIEW_META_CLOSE=t.REVIEW_META_OPEN=void 0,t.parseReviewMeta=F_,t.isPublishable=R_;const Xf=requireInvalidReviewDocument_error(),fd=requireReviewXml(),pd=requireReviewPaths();t.REVIEW_META_OPEN="<review-meta>",t.REVIEW_META_CLOSE="</review-meta>";const dd=/^[0-9a-f]{7,40}$/i,Rd=["file","branch","base","base-sha","start-sha","head-sha","scope","created","updated"];function Bd($_){return typeof $_=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test($_)}e(Bd,"isIsoTimestamp");class C_{static{e(this,"ReviewMeta")}constructor(N_){this.props=N_}static create(N_){if(!N_.file||!(0,pd.hasReviewExtension)(N_.file))throw new Xf.InvalidReviewDocumentError("file",`must be the review file basename ending in ${pd.REVIEW_FILE_EXTENSION}`);if(!N_.branch||N_.branch.trim().length===0)throw new Xf.InvalidReviewDocumentError("branch","must not be empty");for(const M_ of["baseSha","startSha","headSha"])if(!dd.test(N_[M_]))throw new Xf.InvalidReviewDocumentError(M_,`must be a git sha (got "${N_[M_]}")`);if(!Bd(N_.created))throw new Xf.InvalidReviewDocumentError("created","must be an ISO-8601 UTC timestamp");if(!Bd(N_.updated))throw new Xf.InvalidReviewDocumentError("updated","must be an ISO-8601 UTC timestamp");return new C_({...N_,file:(0,pd.normalizePosixPath)(N_.file).split("/").pop(),branch:N_.branch.trim(),base:N_.base.trim()})}get file(){return this.props.file}get slug(){return(0,pd.stripReviewExtension)(this.props.file)}get branch(){return this.props.branch}get base(){return this.props.base}get baseSha(){return this.props.baseSha}get startSha(){return this.props.startSha}get headSha(){return this.props.headSha}get scope(){return this.props.scope}get created(){return this.props.created}get updated(){return this.props.updated}withTouched(N_){return C_.create({...this.props,updated:N_})}withHead(N_,M_){return C_.create({...this.props,headSha:N_,updated:M_})}serialize(){const N_={file:this.props.file,branch:this.props.branch,base:this.props.base,"base-sha":this.props.baseSha,"start-sha":this.props.startSha,"head-sha":this.props.headSha,scope:this.props.scope,created:this.props.created,updated:this.props.updated},M_=[t.REVIEW_META_OPEN];for(const L_ of Rd)M_.push(` <${L_}>${(0,fd.escapeXmlText)(N_[L_])}</${L_}>`);return M_.push(t.REVIEW_META_CLOSE),M_.join(`
@@ -1069,7 +1069,7 @@ ${JSON.stringify(dd,null,2)}`);const Bd=pd[Rd]();return new Language(INTERNAL,Bd
1069
1069
  ${V_}
1070
1070
 
1071
1071
  ${pd}`}),treePrompt}e(requireTreePrompt,"requireTreePrompt");var hasRequiredAddInteractive_command;function requireAddInteractive_command(){if(hasRequiredAddInteractive_command)return addInteractive_command;hasRequiredAddInteractive_command=1;var t=addInteractive_command&&addInteractive_command.__decorate||function(j_,H_,V_,J_){var z_=arguments.length,Y_=z_<3?H_:J_===null?J_=Object.getOwnPropertyDescriptor(H_,V_):J_,Q_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Y_=Reflect.decorate(j_,H_,V_,J_);else for(var Z_=j_.length-1;Z_>=0;Z_--)(Q_=j_[Z_])&&(Y_=(z_<3?Q_(Y_):z_>3?Q_(H_,V_,Y_):Q_(H_,V_))||Y_);return z_>3&&Y_&&Object.defineProperty(H_,V_,Y_),Y_},Xf=addInteractive_command&&addInteractive_command.__metadata||function(j_,H_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(j_,H_)};Object.defineProperty(addInteractive_command,"__esModule",{value:!0}),addInteractive_command.AddInteractiveCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=require$$3,Bd=requireCommands$3(),C_=requireQueries$2(),F_=requireGetWorkingDirectory$1(),R_=requireRenderSyncResult(),$_=requireItemTree(),N_=requireTreePrompt(),M_="(space to toggle, a to toggle all, i to invert, enter to confirm)";let L_=class extends fd.CommandRunner{static{e(this,"AddInteractiveCliCommand")}constructor(H_,V_){super(),this.commandBus=H_,this.queryBus=V_}async run(H_,V_){if(!process.stdin.isTTY||!process.stdout.isTTY){console.log(dd.red("\u2716 Error: add-interactive requires an interactive terminal.")),console.log(dd.gray(" Use 'invariant add <target>' instead."));return}const J_=(0,F_.getWorkingDirectory)();let z_;try{z_=await this.queryBus.execute(new C_.ListAddableItemsQuery(J_))}catch(Y_){if(Y_ instanceof Error){console.log(dd.red(`\u2716 Error: ${Y_.message}`));return}throw Y_}if(z_.packages.length===0){console.log(dd.yellow("No packages installed. Run 'invariant install <package>' first."));return}if(z_.packages.every(Y_=>Y_.items.length===0)){console.log(dd.yellow("Installed packages contain no addable items."));return}try{const Y_=V_.packages?await this.runPackageLevel(J_,z_.packages):await this.runItemTree(J_,z_.packages);V_.sync&&await this.runSync(J_,Y_,V_.target)}catch(Y_){if(Y_ instanceof Error&&Y_.name==="ExitPromptError"){console.log(dd.gray("Aborted. No changes made."));return}throw Y_}}async runPackageLevel(H_,V_){const J_=await(0,Rd.default)({message:`Select packages to activate ${M_}`,pageSize:15,choices:V_.map(Z_=>({name:`${Z_.packageName}@${Z_.version}`,value:Z_.packageName,description:`${Z_.activeCount}/${Z_.items.length} items active`,checked:Z_.activeCount>0}))}),z_=new Set(J_);let Y_=0,Q_=0;for(const Z_ of V_){const L0=Z_.activeCount>0,j0=z_.has(Z_.packageName);L0!==j0&&(j0?Y_+=await this.dispatchAdd(H_,{packageName:Z_.packageName,itemType:"all"}):Q_+=await this.dispatchRemove(H_,{packageName:Z_.packageName,itemType:"all"}))}return this.printSummary(Y_,Q_),Y_+Q_}async runItemTree(H_,V_){const J_=(0,$_.buildTreeRows)(V_),z_=(0,$_.initialSelection)(J_),Y_=await(0,N_.treePrompt)({message:"Select items to activate",rows:J_,initial:z_});let Q_=0,Z_=0;for(const L0 of J_){if(L0.kind!=="item"||!L0.value)continue;const j0=z_.has(L0.id),Y0=Y_.has(L0.id);j0!==Y0&&(Y0?Q_+=await this.dispatchAdd(H_,L0.value):Z_+=await this.dispatchRemove(H_,L0.value))}return this.printSummary(Q_,Z_),Q_+Z_}async dispatchAdd(H_,V_){try{const J_=await this.commandBus.execute(new Bd.AddItemsCommand(H_,V_)),z_=J_.copiedItems.reduce((Q_,Z_)=>Q_+Z_.itemNames.length,0),Y_=V_.itemName?`${V_.itemType}/${V_.itemName}`:`all items (${z_})`;return console.log(dd.green(`\u2713 Added ${Y_} from ${V_.packageName}`)),J_.warnings.forEach(Q_=>console.log(dd.yellow(` \u26A0 ${Q_}`))),1}catch(J_){if(J_ instanceof Error)return console.log(dd.red(`\u2716 Error adding from ${V_.packageName}: ${J_.message}`)),0;throw J_}}async dispatchRemove(H_,V_){try{const z_=(await this.commandBus.execute(new Bd.RemoveItemsCommand(H_,V_))).removedItems.reduce((Q_,Z_)=>Q_+Z_.itemNames.length,0),Y_=V_.itemName?`${V_.itemType}/${V_.itemName}`:`all items (${z_})`;return console.log(dd.yellow(`- Removed ${Y_} from ${V_.packageName}`)),1}catch(J_){if(J_ instanceof Error)return console.log(dd.red(`\u2716 Error removing from ${V_.packageName}: ${J_.message}`)),0;throw J_}}printSummary(H_,V_){if(console.log(""),H_===0&&V_===0){console.log(dd.yellow("No changes selected."));return}console.log(dd.green(`\u2713 ${H_} added, ${V_} removed`))}async runSync(H_,V_,J_){if(V_===0){console.log(dd.yellow("Nothing changed \u2014 skipping sync."));return}console.log("");try{const z_=await this.commandBus.execute(new Bd.SyncCommand(H_,{target:J_}));(0,R_.renderSyncResult)(z_)}catch(z_){if(z_ instanceof Error)console.log(dd.red(`\u2716 Sync error: ${z_.message}`));else throw z_}}parseSync(){return!0}parsePackages(){return!0}parseTarget(H_){return H_}};return addInteractive_command.AddInteractiveCliCommand=L_,t([(0,fd.Option)({flags:"-s, --sync",description:"Run invariant sync after applying changes"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],L_.prototype,"parseSync",null),t([(0,fd.Option)({flags:"-p, --packages",description:"Select whole packages instead of individual items"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],L_.prototype,"parsePackages",null),t([(0,fd.Option)({flags:"-t, --target <target>",description:"With --sync, sync only to a specific target (e.g., claude, cursor)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],L_.prototype,"parseTarget",null),addInteractive_command.AddInteractiveCliCommand=L_=t([(0,fd.Command)({name:"add-interactive",description:"Interactively select/unselect package items to activate (like yarn upgrade-interactive)"}),Xf("design:paramtypes",[pd.CommandBus,pd.QueryBus])],L_),addInteractive_command}e(requireAddInteractive_command,"requireAddInteractive_command");var hasRequiredAddInteractive;function requireAddInteractive(){return hasRequiredAddInteractive||(hasRequiredAddInteractive=1,(function(t){var Xf=addInteractive&&addInteractive.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=addInteractive&&addInteractive.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireAddInteractive_command(),t)})(addInteractive)),addInteractive}e(requireAddInteractive,"requireAddInteractive");var list={},list_command={},hasRequiredList_command;function requireList_command(){if(hasRequiredList_command)return list_command;hasRequiredList_command=1;var t=list_command&&list_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=list_command&&list_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(list_command,"__esModule",{value:!0}),list_command.ListCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$2(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"ListCliCommand")}constructor(R_){super(),this.queryBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)();$_.remote?await this.listRemote():await this.listInstalled(N_,$_.active)}async listInstalled(R_,$_){const N_=$_?"Active packages:":"Installed packages:";console.log(dd.blue(N_));const M_=await this.queryBus.execute(new Rd.ListPackagesQuery(R_,{active:$_}));if(M_.length===0){console.log(dd.gray(" No packages installed.")),console.log(dd.gray(" Run `invariant install <package>` to install packages."));return}M_.forEach(L_=>{const j_=L_.isActive?dd.green(" [active]"):"";console.log(dd.white(` ${L_.name}@${L_.version}`)+j_),console.log(dd.gray(` Source: ${L_.source}`))})}async listRemote(){console.log(dd.blue("Available packages in registry:")),(await this.queryBus.execute(new Rd.ListRemotePackagesQuery)).packages.forEach($_=>{console.log(dd.white(` ${$_.name}@${$_.version}`)),$_.description&&console.log(dd.gray(` ${$_.description}`))})}parseRemote(){return!0}parseActive(){return!0}};return list_command.ListCliCommand=C_,t([(0,fd.Option)({flags:"-r, --remote",description:"List available packages from registry"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseRemote",null),t([(0,fd.Option)({flags:"-a, --active",description:"List only active packages"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseActive",null),list_command.ListCliCommand=C_=t([(0,fd.Command)({name:"list",description:"List installed or available packages"}),Xf("design:paramtypes",[pd.QueryBus])],C_),list_command}e(requireList_command,"requireList_command");var hasRequiredList;function requireList(){return hasRequiredList||(hasRequiredList=1,(function(t){var Xf=list&&list.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=list&&list.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireList_command(),t)})(list)),list}e(requireList,"requireList");var plan={},plan_command={},hasRequiredPlan_command;function requirePlan_command(){if(hasRequiredPlan_command)return plan_command;hasRequiredPlan_command=1;var t=plan_command&&plan_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=plan_command&&plan_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(plan_command,"__esModule",{value:!0}),plan_command.PlanCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"PlanCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)(),[M_]=R_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a prompt.")),console.log(dd.gray(' Usage: invariant plan "Your task description"')),console.log(dd.gray(' invariant plan "Your task" --context package/context-name'));return}try{console.log(dd.blue("Generating session file..."));const L_=await this.commandBus.execute(new Rd.PlanComposeCommand(N_,M_,{context:$_.context,full:$_.full}));console.log(dd.green("\u2713 Created session file")),console.log(""),L_.claudeReference&&console.log(dd.gray(` Base instructions: ${L_.claudeReference}`)),L_.includedContext&&console.log(dd.gray(` Context: ${L_.includedContext}`)),L_.includedInstructions.length>0&&(console.log(dd.gray(` Instructions from ${L_.includedInstructions.length} package(s):`)),L_.includedInstructions.forEach(j_=>{console.log(dd.gray(` - ${j_}`))})),console.log(""),console.log(dd.blue("Ready to paste in your CLI:")),console.log(dd.white(` "execute instructions from ${L_.sessionPath}"`))}catch(L_){if(L_ instanceof Error)console.log(dd.red(`\u2716 Error: ${L_.message}`));else throw L_}}parseContext(R_){return R_}parseFull(){return!0}};return plan_command.PlanCliCommand=C_,t([(0,fd.Option)({flags:"-c, --context <context>",description:"Context to include (format: package/context-name)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseContext",null),t([(0,fd.Option)({flags:"-f, --full",description:"Include full content from active packages instead of context file reference"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseFull",null),plan_command.PlanCliCommand=C_=t([(0,fd.Command)({name:"plan",arguments:"<prompt>",description:"Generate a session file with instructions and context"}),Xf("design:paramtypes",[pd.CommandBus])],C_),plan_command}e(requirePlan_command,"requirePlan_command");var hasRequiredPlan;function requirePlan(){return hasRequiredPlan||(hasRequiredPlan=1,(function(t){var Xf=plan&&plan.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=plan&&plan.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requirePlan_command(),t)})(plan)),plan}e(requirePlan,"requirePlan");var review$1={},review_command={},reviewCandidates={},hasRequiredReviewCandidates;function requireReviewCandidates(){if(hasRequiredReviewCandidates)return reviewCandidates;hasRequiredReviewCandidates=1,Object.defineProperty(reviewCandidates,"__esModule",{value:!0}),reviewCandidates.listReviewCandidates=fd;const t=requireSession$1(),Xf=6;async function fd(pd,dd,Rd=Xf){const Bd=await pd.listSessionIds(dd),C_=[];for(const F_ of Bd){const R_=await pd.readSessionFile(dd,F_);if(R_===null)continue;const $_=(0,t.parseSessionDocument)(R_,{file:`${F_}.md`});if($_.header.kind!=="review"&&(C_.push({sessionId:F_,title:$_.header.title,status:$_.header.status,kind:$_.header.kind}),C_.length===Rd))break}return C_}return e(fd,"listReviewCandidates"),reviewCandidates}e(requireReviewCandidates,"requireReviewCandidates");var reviewList_command={},hasRequiredReviewList_command;function requireReviewList_command(){if(hasRequiredReviewList_command)return reviewList_command;hasRequiredReviewList_command=1;var t=reviewList_command&&reviewList_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=reviewList_command&&reviewList_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(reviewList_command,"__esModule",{value:!0}),reviewList_command.ReviewListCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$2(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"ReviewListCliCommand")}constructor(R_){super(),this.queryBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)();try{const M_=await this.queryBus.execute(new Rd.ListReviewsQuery(N_));if($_.json){console.log(JSON.stringify(M_,null,2));return}if(M_.reviews.length===0){console.log(dd.gray(`No reviews in ${M_.directory}. Run \`invariant review\` to create one.`));return}console.log(dd.blue(`Reviews in ${M_.directory}:`)),console.log("");for(const L_ of M_.reviews){const j_=L_.counts.open>0?dd.yellow(`${L_.counts.open} awaiting triage`):dd.green("triaged");console.log(` ${dd.white(L_.branch)} ${dd.gray(`(${L_.slug})`)}`),console.log(dd.gray(` ${L_.counts.total} comments \xB7 ${L_.counts.staged} staged \xB7 ${L_.counts.discarded} discarded \u2014 `)+j_),console.log(dd.gray(` ${L_.path}`)),console.log("")}}catch(M_){if(M_ instanceof Error)console.log(dd.red(`\u2716 Error: ${M_.message}`));else throw M_}}parseJson(){return!0}};return reviewList_command.ReviewListCliCommand=C_,t([(0,fd.Option)({flags:"--json",description:"Emit machine-readable JSON"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseJson",null),reviewList_command.ReviewListCliCommand=C_=t([(0,fd.SubCommand)({name:"list",description:"List every review document in this project"}),Xf("design:paramtypes",[pd.QueryBus])],C_),reviewList_command}e(requireReviewList_command,"requireReviewList_command");var reviewShow_command={},hasRequiredReviewShow_command;function requireReviewShow_command(){if(hasRequiredReviewShow_command)return reviewShow_command;hasRequiredReviewShow_command=1;var t=reviewShow_command&&reviewShow_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=reviewShow_command&&reviewShow_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)};Object.defineProperty(reviewShow_command,"__esModule",{value:!0}),reviewShow_command.ReviewShowCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$2(),Bd=requireGetWorkingDirectory$1(),C_=requireReview$2(),F_={[C_.ReviewCommentSeverity.Blocker]:dd.red,[C_.ReviewCommentSeverity.Major]:dd.yellow,[C_.ReviewCommentSeverity.Minor]:dd.cyan,[C_.ReviewCommentSeverity.Nit]:dd.gray,[C_.ReviewCommentSeverity.Praise]:dd.green},R_={[C_.ReviewCommentStatus.Open]:"\u25CB",[C_.ReviewCommentStatus.Staged]:"\u2713",[C_.ReviewCommentStatus.Discarded]:"\u2717"};let $_=class extends fd.CommandRunner{static{e(this,"ReviewShowCliCommand")}constructor(L_){super(),this.queryBus=L_}async run(L_,j_){const H_=(0,Bd.getWorkingDirectory)(),[V_]=L_;if(!V_){console.log(dd.red("\u2716 Error: Please provide a branch, slug, or review file path."));return}try{const J_=await this.queryBus.execute(new Rd.GetReviewQuery(H_,V_)),{document:z_}=J_;if(j_.json){console.log(JSON.stringify({slug:z_.slug,meta:z_.meta.toJSON(),counts:z_.counts,isTriaged:z_.isTriaged,issues:z_.issues,comments:z_.comments.map(Y_=>Y_.toJSON())},null,2));return}console.log(dd.blue(`Review: ${z_.meta.branch}`)),console.log(dd.gray(` ${J_.path} \u2014 ${(0,C_.describeCounts)(z_.counts)}`)),console.log("");for(const Y_ of z_.runs){console.log(dd.gray(` run ${Y_.id.slice(4,12)} \xB7 ${Y_.headSha.slice(0,7)} \xB7 ${Y_.status}`));for(const Q_ of Y_.sortedComments.filter(Z_=>N_(Z_,j_)))this.printComment(Q_);console.log("")}if(z_.issues.length>0){console.log(dd.yellow(" Issues while reading:"));for(const Y_ of z_.issues)console.log(dd.gray(` - ${Y_}`))}}catch(J_){if(J_ instanceof Error)console.log(dd.red(`\u2716 Error: ${J_.message}`));else throw J_}}printComment(L_){const j_=F_[L_.severity]??dd.white,H_=L_.location?dd.gray(` ${L_.location}`):"";console.log(` ${R_[L_.status]} ${dd.gray(L_.id)} ${j_(L_.severity)}/${dd.gray(L_.category)}${H_}`),console.log(` ${L_.title}`)}parseStaged(){return!0}parseOpen(){return!0}parseJson(){return!0}};reviewShow_command.ReviewShowCliCommand=$_,t([(0,fd.Option)({flags:"--staged",description:"Only the comments that were accepted"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],$_.prototype,"parseStaged",null),t([(0,fd.Option)({flags:"--open",description:"Only the comments still awaiting a decision"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],$_.prototype,"parseOpen",null),t([(0,fd.Option)({flags:"--json",description:"Emit machine-readable JSON"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],$_.prototype,"parseJson",null),reviewShow_command.ReviewShowCliCommand=$_=t([(0,fd.SubCommand)({name:"show",arguments:"<review>",description:"Print a review document\u2019s comments"}),Xf("design:paramtypes",[pd.QueryBus])],$_);function N_(M_,L_){return L_.staged?M_.status===C_.ReviewCommentStatus.Staged:L_.open?M_.status===C_.ReviewCommentStatus.Open:!0}return e(N_,"keep"),reviewShow_command}e(requireReviewShow_command,"requireReviewShow_command");var reviewPlanChanges_command={},hasRequiredReviewPlanChanges_command;function requireReviewPlanChanges_command(){if(hasRequiredReviewPlanChanges_command)return reviewPlanChanges_command;hasRequiredReviewPlanChanges_command=1;var t=reviewPlanChanges_command&&reviewPlanChanges_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=reviewPlanChanges_command&&reviewPlanChanges_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(reviewPlanChanges_command,"__esModule",{value:!0}),reviewPlanChanges_command.ReviewPlanChangesCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1(),C_=requireSession$1();let F_=class extends fd.CommandRunner{static{e(this,"ReviewPlanChangesCliCommand")}constructor($_){super(),this.commandBus=$_}async run($_){const N_=(0,Bd.getWorkingDirectory)(),[M_]=$_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a branch, slug, or review file path.")),console.log(dd.gray(" Usage: invariant review plan-changes <review>"));return}try{const L_=await this.commandBus.execute(new Rd.ReviewPlanChangesCommand(N_,M_));if(L_.status===C_.SessionStatus.Executed){console.log(dd.green("\u2713 Review closed \u2014 every comment was discarded")),console.log(dd.gray(` ${L_.summary}`)),console.log(dd.gray(` ${L_.sessionPath}`));return}console.log(dd.green(`\u2713 Planned ${L_.stagedIds.length} change(s)`)),console.log(dd.gray(` ${L_.summary}`)),console.log(dd.gray(` ${L_.stagedIds.join(", ")}`)),console.log(""),console.log(dd.blue("Paste this into the SAME conversation that wrote the review:")),console.log(dd.white(` "execute instructions from ${L_.sessionPath}"`)),console.log(dd.gray(" It already holds the diff and the reasoning behind every comment."))}catch(L_){if(L_ instanceof Error)console.log(dd.red(`\u2716 Error: ${L_.message}`));else throw L_}}};return reviewPlanChanges_command.ReviewPlanChangesCliCommand=F_,reviewPlanChanges_command.ReviewPlanChangesCliCommand=F_=t([(0,fd.SubCommand)({name:"plan-changes",arguments:"<review>",description:"Turn a triaged review into its session\u2019s Plan"}),Xf("design:paramtypes",[pd.CommandBus])],F_),reviewPlanChanges_command}e(requireReviewPlanChanges_command,"requireReviewPlanChanges_command");var reviewPublish_command={},sessionUi={},commands$2={},uiDefaults={},hasRequiredUiDefaults;function requireUiDefaults(){if(hasRequiredUiDefaults)return uiDefaults;hasRequiredUiDefaults=1,Object.defineProperty(uiDefaults,"__esModule",{value:!0}),uiDefaults.UI_STOP_GRACE_MS=uiDefaults.UI_START_POLL_INTERVAL_MS=uiDefaults.UI_START_DEADLINE_MS=uiDefaults.UI_PORT_PROBE_RANGE=uiDefaults.DEFAULT_UI_PORT=void 0,uiDefaults.uiUrl=t,uiDefaults.DEFAULT_UI_PORT=4200,uiDefaults.UI_PORT_PROBE_RANGE=99,uiDefaults.UI_START_DEADLINE_MS=8e3,uiDefaults.UI_START_POLL_INTERVAL_MS=120,uiDefaults.UI_STOP_GRACE_MS=2e3;function t(Xf){return`http://127.0.0.1:${Xf}`}return e(t,"uiUrl"),uiDefaults}e(requireUiDefaults,"requireUiDefaults");var startUi={},startUi_command={},persistence$3={},session_repository={},hasRequiredSession_repository;function requireSession_repository(){if(hasRequiredSession_repository)return session_repository;hasRequiredSession_repository=1,Object.defineProperty(session_repository,"__esModule",{value:!0}),session_repository.SessionRepository=void 0;class t{static{e(this,"SessionRepository")}}return session_repository.SessionRepository=t,session_repository}e(requireSession_repository,"requireSession_repository");var uiRegistry_repository={},hasRequiredUiRegistry_repository;function requireUiRegistry_repository(){if(hasRequiredUiRegistry_repository)return uiRegistry_repository;hasRequiredUiRegistry_repository=1,Object.defineProperty(uiRegistry_repository,"__esModule",{value:!0}),uiRegistry_repository.UiRegistryRepository=void 0;class t{static{e(this,"UiRegistryRepository")}}return uiRegistry_repository.UiRegistryRepository=t,uiRegistry_repository}e(requireUiRegistry_repository,"requireUiRegistry_repository");var review_repository={},hasRequiredReview_repository;function requireReview_repository(){if(hasRequiredReview_repository)return review_repository;hasRequiredReview_repository=1,Object.defineProperty(review_repository,"__esModule",{value:!0}),review_repository.ReviewRepository=void 0;class t{static{e(this,"ReviewRepository")}}return review_repository.ReviewRepository=t,review_repository}e(requireReview_repository,"requireReview_repository");var publisherSettings_repository={},hasRequiredPublisherSettings_repository;function requirePublisherSettings_repository(){if(hasRequiredPublisherSettings_repository)return publisherSettings_repository;hasRequiredPublisherSettings_repository=1,Object.defineProperty(publisherSettings_repository,"__esModule",{value:!0}),publisherSettings_repository.PublisherSettingsRepository=void 0;class t{static{e(this,"PublisherSettingsRepository")}}return publisherSettings_repository.PublisherSettingsRepository=t,publisherSettings_repository}e(requirePublisherSettings_repository,"requirePublisherSettings_repository");var hasRequiredPersistence$3;function requirePersistence$3(){return hasRequiredPersistence$3||(hasRequiredPersistence$3=1,(function(t){var Xf=persistence$3&&persistence$3.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=persistence$3&&persistence$3.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSession_repository(),t),fd(requireUiRegistry_repository(),t),fd(requireReview_repository(),t),fd(requirePublisherSettings_repository(),t)})(persistence$3)),persistence$3}e(requirePersistence$3,"requirePersistence$3");var gateways$3={},project_gateway={},hasRequiredProject_gateway;function requireProject_gateway(){if(hasRequiredProject_gateway)return project_gateway;hasRequiredProject_gateway=1,Object.defineProperty(project_gateway,"__esModule",{value:!0}),project_gateway.ProjectGateway=void 0;class t{static{e(this,"ProjectGateway")}}return project_gateway.ProjectGateway=t,project_gateway}e(requireProject_gateway,"requireProject_gateway");var daemonProcess_gateway$1={},hasRequiredDaemonProcess_gateway$1;function requireDaemonProcess_gateway$1(){if(hasRequiredDaemonProcess_gateway$1)return daemonProcess_gateway$1;hasRequiredDaemonProcess_gateway$1=1,Object.defineProperty(daemonProcess_gateway$1,"__esModule",{value:!0}),daemonProcess_gateway$1.UiDaemonProcessGateway=void 0;class t{static{e(this,"UiDaemonProcessGateway")}}return daemonProcess_gateway$1.UiDaemonProcessGateway=t,daemonProcess_gateway$1}e(requireDaemonProcess_gateway$1,"requireDaemonProcess_gateway$1");var uiClient_gateway={},hasRequiredUiClient_gateway;function requireUiClient_gateway(){if(hasRequiredUiClient_gateway)return uiClient_gateway;hasRequiredUiClient_gateway=1,Object.defineProperty(uiClient_gateway,"__esModule",{value:!0}),uiClient_gateway.UiClientGateway=void 0;class t{static{e(this,"UiClientGateway")}}return uiClient_gateway.UiClientGateway=t,uiClient_gateway}e(requireUiClient_gateway,"requireUiClient_gateway");var cliRunner_gateway={},hasRequiredCliRunner_gateway;function requireCliRunner_gateway(){if(hasRequiredCliRunner_gateway)return cliRunner_gateway;hasRequiredCliRunner_gateway=1,Object.defineProperty(cliRunner_gateway,"__esModule",{value:!0}),cliRunner_gateway.CliRunnerGateway=void 0;class t{static{e(this,"CliRunnerGateway")}}return cliRunner_gateway.CliRunnerGateway=t,cliRunner_gateway}e(requireCliRunner_gateway,"requireCliRunner_gateway");var workspaceWatcher_gateway={},hasRequiredWorkspaceWatcher_gateway;function requireWorkspaceWatcher_gateway(){if(hasRequiredWorkspaceWatcher_gateway)return workspaceWatcher_gateway;hasRequiredWorkspaceWatcher_gateway=1,Object.defineProperty(workspaceWatcher_gateway,"__esModule",{value:!0}),workspaceWatcher_gateway.WorkspaceWatcherGateway=void 0;class t{static{e(this,"WorkspaceWatcherGateway")}}return workspaceWatcher_gateway.WorkspaceWatcherGateway=t,workspaceWatcher_gateway}e(requireWorkspaceWatcher_gateway,"requireWorkspaceWatcher_gateway");var browserOpener_gateway={},hasRequiredBrowserOpener_gateway;function requireBrowserOpener_gateway(){if(hasRequiredBrowserOpener_gateway)return browserOpener_gateway;hasRequiredBrowserOpener_gateway=1,Object.defineProperty(browserOpener_gateway,"__esModule",{value:!0}),browserOpener_gateway.BrowserOpenerGateway=void 0;class t{static{e(this,"BrowserOpenerGateway")}}return browserOpener_gateway.BrowserOpenerGateway=t,browserOpener_gateway}e(requireBrowserOpener_gateway,"requireBrowserOpener_gateway");var reviewPublisher_gateway={},hasRequiredReviewPublisher_gateway;function requireReviewPublisher_gateway(){if(hasRequiredReviewPublisher_gateway)return reviewPublisher_gateway;hasRequiredReviewPublisher_gateway=1,Object.defineProperty(reviewPublisher_gateway,"__esModule",{value:!0}),reviewPublisher_gateway.ReviewPublisherGateway=void 0;class t{static{e(this,"ReviewPublisherGateway")}}return reviewPublisher_gateway.ReviewPublisherGateway=t,reviewPublisher_gateway}e(requireReviewPublisher_gateway,"requireReviewPublisher_gateway");var packageCatalog_gateway={},hasRequiredPackageCatalog_gateway;function requirePackageCatalog_gateway(){if(hasRequiredPackageCatalog_gateway)return packageCatalog_gateway;hasRequiredPackageCatalog_gateway=1,Object.defineProperty(packageCatalog_gateway,"__esModule",{value:!0}),packageCatalog_gateway.PackageCatalogGateway=void 0;class t{static{e(this,"PackageCatalogGateway")}}return packageCatalog_gateway.PackageCatalogGateway=t,packageCatalog_gateway}e(requirePackageCatalog_gateway,"requirePackageCatalog_gateway");var hasRequiredGateways$3;function requireGateways$3(){return hasRequiredGateways$3||(hasRequiredGateways$3=1,(function(t){var Xf=gateways$3&&gateways$3.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=gateways$3&&gateways$3.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireProject_gateway(),t),fd(requireDaemonProcess_gateway$1(),t),fd(requireUiClient_gateway(),t),fd(requireCliRunner_gateway(),t),fd(requireWorkspaceWatcher_gateway(),t),fd(requireBrowserOpener_gateway(),t),fd(requireReviewPublisher_gateway(),t),fd(requirePackageCatalog_gateway(),t)})(gateways$3)),gateways$3}e(requireGateways$3,"requireGateways$3");var domain$1={},session={},hasRequiredSession;function requireSession(){if(hasRequiredSession)return session;hasRequiredSession=1,Object.defineProperty(session,"__esModule",{value:!0}),session.Session=void 0;const t=220;class Xf{static{e(this,"Session")}constructor(pd){this.props=pd}static rehydrate(pd){return new Xf(pd)}get id(){return this.props.id}get file(){return`${this.props.id}.md`}get path(){return this.props.path}get header(){return this.props.header}get body(){return this.props.body}get status(){return this.props.header.status}get kind(){return this.props.header.kind}get parent(){return this.props.header.parent}get branch(){return this.props.header.branch}get reviewFile(){return this.props.header.reviewFile}get etag(){return this.props.etag}get sizeBytes(){return this.props.sizeBytes}get hasHeader(){return this.props.hasHeader}get legacy(){return this.props.legacy}get issues(){return[...this.props.issues]}get needsMigration(){return!this.props.hasHeader||this.props.issues.length>0}get excerpt(){const pd=this.props.body.split(`
1072
- `),dd=pd.findIndex(R_=>/^##[ \t]+Task[ \t]*\r?$/.test(R_)),Rd=dd===-1?pd:pd.slice(dd+1),Bd=[];let C_=!1;for(const R_ of Rd){const $_=R_.trim();if($_.startsWith("```")){C_=!C_;continue}if(!C_){if(dd!==-1&&/^##[ \t]/.test($_))break;if($_.length===0){if(Bd.length>0)break;continue}if(!($_.startsWith("<")||$_.startsWith("#")||$_.startsWith("|"))&&(Bd.push($_.replace(/^[-*>\s]+/,"")),Bd.join(" ").length>=t))break}}const F_=Bd.join(" ").replace(/\s+/g," ").trim();return F_.length>t?`${F_.slice(0,t-1).trimEnd()}\u2026`:F_}toListItem(){return{id:this.id,file:this.file,title:this.header.title,kind:this.kind,status:this.status,parent:this.header.parent,branch:this.header.branch,reviewFile:this.header.reviewFile,reviewSessionIds:[],created:this.header.created,updated:this.header.updated,tags:this.header.tags,summary:this.header.summary,completed:this.header.completed,excerpt:this.excerpt,sizeBytes:this.props.sizeBytes,etag:this.etag,hasHeader:this.props.hasHeader,needsMigration:this.needsMigration,issues:this.issues}}toDetail(){return{...this.toListItem(),body:this.body,path:this.path}}}return session.Session=Xf,session}e(requireSession,"requireSession");var review={},hasRequiredReview$1;function requireReview$1(){if(hasRequiredReview$1)return review;hasRequiredReview$1=1,Object.defineProperty(review,"__esModule",{value:!0}),review.Review=void 0;const t=requireReview$2();class Xf{static{e(this,"Review")}constructor(dd){this.props=dd}static rehydrate(dd){return new Xf(dd)}get slug(){return this.props.slug}get file(){return this.props.relativePath.split("/").pop()??this.props.slug}get path(){return this.props.path}get relativePath(){return this.props.relativePath}get document(){return this.props.document}get etag(){return this.props.etag}get counts(){return this.props.document.counts}get isTriaged(){return this.props.document.isTriaged}toListItem(){const dd=this.props.document,Rd=dd.latestRun;return{slug:this.slug,branch:dd.meta.branch,path:this.props.relativePath,base:dd.meta.base,headSha:dd.meta.headSha,runCount:dd.runs.length,status:Rd?Rd.status:t.ReviewRunStatus.Open,counts:dd.counts,isTriaged:dd.isTriaged,canPublish:(0,t.isPublishable)(dd.meta),sessionId:dd.sessionId,updated:this.props.updated,sizeBytes:this.props.sizeBytes,etag:this.props.etag,issues:dd.issues}}toDetail(){return{...this.toListItem(),absolutePath:this.props.path,scope:{baseSha:this.props.document.meta.baseSha,startSha:this.props.document.meta.startSha,headSha:this.props.document.meta.headSha,scope:this.props.document.meta.scope},runs:this.props.document.runs.map(dd=>({id:dd.id,sessionId:dd.sessionId,headSha:dd.headSha,created:dd.created,status:dd.status,summary:dd.summary,counts:dd.counts,comments:dd.sortedComments.map(fd)}))}}}review.Review=Xf;function fd(pd){return{id:pd.id,status:pd.status,severity:pd.severity,category:pd.category,file:pd.file,line:pd.line,endLine:pd.endLine,symbol:pd.symbol,edited:pd.edited,discussion:pd.discussion,title:pd.title,body:pd.body,suggestion:pd.suggestion,suggestionLang:pd.suggestionLang,location:pd.location}}return e(fd,"toCommentView"),review}e(requireReview$1,"requireReview$1");var errors$2={},sessionNotFound_error={},hasRequiredSessionNotFound_error;function requireSessionNotFound_error(){if(hasRequiredSessionNotFound_error)return sessionNotFound_error;hasRequiredSessionNotFound_error=1,Object.defineProperty(sessionNotFound_error,"__esModule",{value:!0}),sessionNotFound_error.SessionNotFoundError=void 0;class t extends Error{static{e(this,"SessionNotFoundError")}constructor(fd){super(`Session "${fd}" was not found in this project.`),this.sessionId=fd,this.code="SESSION_NOT_FOUND",this.name="SessionNotFoundError"}}return sessionNotFound_error.SessionNotFoundError=t,sessionNotFound_error}e(requireSessionNotFound_error,"requireSessionNotFound_error");var sessionConflict_error={},hasRequiredSessionConflict_error;function requireSessionConflict_error(){if(hasRequiredSessionConflict_error)return sessionConflict_error;hasRequiredSessionConflict_error=1,Object.defineProperty(sessionConflict_error,"__esModule",{value:!0}),sessionConflict_error.SessionConflictError=void 0;class t extends Error{static{e(this,"SessionConflictError")}constructor(fd,pd,dd,Rd){super(`Session "${fd}" changed on disk since it was loaded.`),this.sessionId=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.code="SESSION_CONFLICT",this.name="SessionConflictError"}}return sessionConflict_error.SessionConflictError=t,sessionConflict_error}e(requireSessionConflict_error,"requireSessionConflict_error");var sessionMergeConflict_error={},hasRequiredSessionMergeConflict_error;function requireSessionMergeConflict_error(){if(hasRequiredSessionMergeConflict_error)return sessionMergeConflict_error;hasRequiredSessionMergeConflict_error=1,Object.defineProperty(sessionMergeConflict_error,"__esModule",{value:!0}),sessionMergeConflict_error.SessionMergeConflictError=void 0;class t extends Error{static{e(this,"SessionMergeConflictError")}constructor(fd,pd,dd,Rd,Bd,C_,F_){super(`Session "${fd}" changed on disk in ${C_} place(s) you also edited.`),this.sessionId=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.mergedPreview=Bd,this.conflictCount=C_,this.stashedPath=F_,this.code="SESSION_MERGE_CONFLICT",this.name="SessionMergeConflictError"}}return sessionMergeConflict_error.SessionMergeConflictError=t,sessionMergeConflict_error}e(requireSessionMergeConflict_error,"requireSessionMergeConflict_error");var invalidSessionRequest_error={},hasRequiredInvalidSessionRequest_error;function requireInvalidSessionRequest_error(){if(hasRequiredInvalidSessionRequest_error)return invalidSessionRequest_error;hasRequiredInvalidSessionRequest_error=1,Object.defineProperty(invalidSessionRequest_error,"__esModule",{value:!0}),invalidSessionRequest_error.InvalidSessionRequestError=void 0;class t extends Error{static{e(this,"InvalidSessionRequestError")}constructor(fd){super(fd),this.code="INVALID_REQUEST",this.name="InvalidSessionRequestError"}}return invalidSessionRequest_error.InvalidSessionRequestError=t,invalidSessionRequest_error}e(requireInvalidSessionRequest_error,"requireInvalidSessionRequest_error");var uiNotRunning_error={},hasRequiredUiNotRunning_error;function requireUiNotRunning_error(){if(hasRequiredUiNotRunning_error)return uiNotRunning_error;hasRequiredUiNotRunning_error=1,Object.defineProperty(uiNotRunning_error,"__esModule",{value:!0}),uiNotRunning_error.UiNotRunningError=void 0;class t extends Error{static{e(this,"UiNotRunningError")}constructor(fd,pd){super(`The Invariant UI is not running for ${fd}${pd?` \u2014 ${pd}`:""}.`),this.directory=fd,this.code="UI_NOT_RUNNING",this.name="UiNotRunningError"}}return uiNotRunning_error.UiNotRunningError=t,uiNotRunning_error}e(requireUiNotRunning_error,"requireUiNotRunning_error");var portUnavailable_error={},hasRequiredPortUnavailable_error;function requirePortUnavailable_error(){if(hasRequiredPortUnavailable_error)return portUnavailable_error;hasRequiredPortUnavailable_error=1,Object.defineProperty(portUnavailable_error,"__esModule",{value:!0}),portUnavailable_error.PortUnavailableError=void 0;class t extends Error{static{e(this,"PortUnavailableError")}constructor(fd,pd){super(`Port ${fd} is not available \u2014 ${pd}`),this.port=fd,this.code="PORT_UNAVAILABLE",this.name="PortUnavailableError"}}return portUnavailable_error.PortUnavailableError=t,portUnavailable_error}e(requirePortUnavailable_error,"requirePortUnavailable_error");var projectNotInitialized_error={},hasRequiredProjectNotInitialized_error;function requireProjectNotInitialized_error(){if(hasRequiredProjectNotInitialized_error)return projectNotInitialized_error;hasRequiredProjectNotInitialized_error=1,Object.defineProperty(projectNotInitialized_error,"__esModule",{value:!0}),projectNotInitialized_error.UiProjectNotInitializedError=void 0;class t extends Error{static{e(this,"UiProjectNotInitializedError")}constructor(fd){super(`No .invariant project found in ${fd}. Run "invariant init <target>" first.`),this.directory=fd,this.code="PROJECT_NOT_INITIALIZED",this.name="UiProjectNotInitializedError"}}return projectNotInitialized_error.UiProjectNotInitializedError=t,projectNotInitialized_error}e(requireProjectNotInitialized_error,"requireProjectNotInitialized_error");var reviewConflict_error={},hasRequiredReviewConflict_error;function requireReviewConflict_error(){if(hasRequiredReviewConflict_error)return reviewConflict_error;hasRequiredReviewConflict_error=1,Object.defineProperty(reviewConflict_error,"__esModule",{value:!0}),reviewConflict_error.ReviewConflictError=void 0;class t extends Error{static{e(this,"ReviewConflictError")}constructor(fd,pd,dd,Rd){super(`Review "${fd}" changed on disk since it was loaded.`),this.slug=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.code="REVIEW_CONFLICT",this.name="ReviewConflictError"}}return reviewConflict_error.ReviewConflictError=t,reviewConflict_error}e(requireReviewConflict_error,"requireReviewConflict_error");var publisherNotConfigured_error={},hasRequiredPublisherNotConfigured_error;function requirePublisherNotConfigured_error(){if(hasRequiredPublisherNotConfigured_error)return publisherNotConfigured_error;hasRequiredPublisherNotConfigured_error=1,Object.defineProperty(publisherNotConfigured_error,"__esModule",{value:!0}),publisherNotConfigured_error.PublisherNotConfiguredError=void 0;class t extends Error{static{e(this,"PublisherNotConfiguredError")}constructor(fd,pd){super(pd),this.reason=fd,this.name="PublisherNotConfiguredError"}get code(){return this.reason==="not-implemented"?"NOT_IMPLEMENTED":"PUBLISHER_NOT_CONFIGURED"}get status(){return this.reason==="not-implemented"?501:409}}return publisherNotConfigured_error.PublisherNotConfiguredError=t,publisherNotConfigured_error}e(requirePublisherNotConfigured_error,"requirePublisherNotConfigured_error");var publisherProjectMismatch_error={},hasRequiredPublisherProjectMismatch_error;function requirePublisherProjectMismatch_error(){if(hasRequiredPublisherProjectMismatch_error)return publisherProjectMismatch_error;hasRequiredPublisherProjectMismatch_error=1,Object.defineProperty(publisherProjectMismatch_error,"__esModule",{value:!0}),publisherProjectMismatch_error.PublisherProjectMismatchError=void 0;class t extends Error{static{e(this,"PublisherProjectMismatchError")}constructor(fd,pd){super(`This project's origin is now "${pd}", but the saved GitLab settings were made for "${fd}". Update the publishing settings before publishing.`),this.storedRemote=fd,this.currentRemote=pd,this.code="PUBLISHER_PROJECT_MISMATCH",this.name="PublisherProjectMismatchError"}}return publisherProjectMismatch_error.PublisherProjectMismatchError=t,publisherProjectMismatch_error}e(requirePublisherProjectMismatch_error,"requirePublisherProjectMismatch_error");var publisherNoMergeRequest_error={},hasRequiredPublisherNoMergeRequest_error;function requirePublisherNoMergeRequest_error(){if(hasRequiredPublisherNoMergeRequest_error)return publisherNoMergeRequest_error;hasRequiredPublisherNoMergeRequest_error=1,Object.defineProperty(publisherNoMergeRequest_error,"__esModule",{value:!0}),publisherNoMergeRequest_error.PublisherNoMergeRequestError=void 0;class t extends Error{static{e(this,"PublisherNoMergeRequestError")}constructor(fd,pd){super(`No open merge request in "${pd}" has "${fd}" as its source branch. Open one, or pick a merge request explicitly.`),this.branch=fd,this.projectPath=pd,this.code="PUBLISHER_NO_MERGE_REQUEST",this.name="PublisherNoMergeRequestError"}}return publisherNoMergeRequest_error.PublisherNoMergeRequestError=t,publisherNoMergeRequest_error}e(requirePublisherNoMergeRequest_error,"requirePublisherNoMergeRequest_error");var publisherAuthFailed_error={},hasRequiredPublisherAuthFailed_error;function requirePublisherAuthFailed_error(){if(hasRequiredPublisherAuthFailed_error)return publisherAuthFailed_error;hasRequiredPublisherAuthFailed_error=1,Object.defineProperty(publisherAuthFailed_error,"__esModule",{value:!0}),publisherAuthFailed_error.PublisherAuthFailedError=void 0;class t extends Error{static{e(this,"PublisherAuthFailedError")}constructor(fd){super(fd),this.code="PUBLISHER_AUTH_FAILED",this.hint="A personal access token needs the `api` scope \u2014 `read_api` is not enough.",this.name="PublisherAuthFailedError"}}return publisherAuthFailed_error.PublisherAuthFailedError=t,publisherAuthFailed_error}e(requirePublisherAuthFailed_error,"requirePublisherAuthFailed_error");var publisherRequestFailed_error={},hasRequiredPublisherRequestFailed_error;function requirePublisherRequestFailed_error(){if(hasRequiredPublisherRequestFailed_error)return publisherRequestFailed_error;hasRequiredPublisherRequestFailed_error=1,Object.defineProperty(publisherRequestFailed_error,"__esModule",{value:!0}),publisherRequestFailed_error.PublisherRequestFailedError=void 0;class t extends Error{static{e(this,"PublisherRequestFailedError")}constructor(fd,pd,dd,Rd){super(`GitLab answered ${fd} to ${dd} ${Rd}: ${pd}`),this.status=fd,this.gitlabMessage=pd,this.method=dd,this.path=Rd,this.code="PUBLISHER_REQUEST_FAILED",this.name="PublisherRequestFailedError"}}return publisherRequestFailed_error.PublisherRequestFailedError=t,publisherRequestFailed_error}e(requirePublisherRequestFailed_error,"requirePublisherRequestFailed_error");var packageNotCached_error={},hasRequiredPackageNotCached_error;function requirePackageNotCached_error(){if(hasRequiredPackageNotCached_error)return packageNotCached_error;hasRequiredPackageNotCached_error=1,Object.defineProperty(packageNotCached_error,"__esModule",{value:!0}),packageNotCached_error.PackageNotCachedError=void 0;class t extends Error{static{e(this,"PackageNotCachedError")}constructor(fd){super(`Package "${fd}" is not installed in this project.`),this.packageName=fd,this.code="PACKAGE_NOT_CACHED",this.name="PackageNotCachedError"}}return packageNotCached_error.PackageNotCachedError=t,packageNotCached_error}e(requirePackageNotCached_error,"requirePackageNotCached_error");var invalidPackageRequest_error={},hasRequiredInvalidPackageRequest_error;function requireInvalidPackageRequest_error(){if(hasRequiredInvalidPackageRequest_error)return invalidPackageRequest_error;hasRequiredInvalidPackageRequest_error=1,Object.defineProperty(invalidPackageRequest_error,"__esModule",{value:!0}),invalidPackageRequest_error.InvalidPackageRequestError=void 0;class t extends Error{static{e(this,"InvalidPackageRequestError")}constructor(fd){super(fd),this.code="INVALID_PACKAGE_REQUEST",this.name="InvalidPackageRequestError"}}return invalidPackageRequest_error.InvalidPackageRequestError=t,invalidPackageRequest_error}e(requireInvalidPackageRequest_error,"requireInvalidPackageRequest_error");var packageOperationFailed_error={},hasRequiredPackageOperationFailed_error;function requirePackageOperationFailed_error(){if(hasRequiredPackageOperationFailed_error)return packageOperationFailed_error;hasRequiredPackageOperationFailed_error=1,Object.defineProperty(packageOperationFailed_error,"__esModule",{value:!0}),packageOperationFailed_error.PackageOperationFailedError=void 0;class t extends Error{static{e(this,"PackageOperationFailedError")}constructor(fd,pd,dd,Rd){super(dd),this.argv=fd,this.transcript=pd,this.phase=Rd,this.code="PACKAGE_OPERATION_FAILED",this.name="PackageOperationFailedError"}get commandLine(){return`invariant ${this.argv.join(" ")}`}}return packageOperationFailed_error.PackageOperationFailedError=t,packageOperationFailed_error}e(requirePackageOperationFailed_error,"requirePackageOperationFailed_error");var hasRequiredErrors$2;function requireErrors$2(){return hasRequiredErrors$2||(hasRequiredErrors$2=1,(function(t){var Xf=errors$2&&errors$2.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=errors$2&&errors$2.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSessionNotFound_error(),t),fd(requireSessionConflict_error(),t),fd(requireSessionMergeConflict_error(),t),fd(requireInvalidSessionRequest_error(),t),fd(requireUiNotRunning_error(),t),fd(requirePortUnavailable_error(),t),fd(requireProjectNotInitialized_error(),t),fd(requireReviewConflict_error(),t),fd(requirePublisherNotConfigured_error(),t),fd(requirePublisherProjectMismatch_error(),t),fd(requirePublisherNoMergeRequest_error(),t),fd(requirePublisherAuthFailed_error(),t),fd(requirePublisherRequestFailed_error(),t),fd(requirePackageNotCached_error(),t),fd(requireInvalidPackageRequest_error(),t),fd(requirePackageOperationFailed_error(),t)})(errors$2)),errors$2}e(requireErrors$2,"requireErrors$2");var hasRequiredDomain$1;function requireDomain$1(){return hasRequiredDomain$1||(hasRequiredDomain$1=1,(function(t){var Xf=domain$1&&domain$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=domain$1&&domain$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSession(),t),fd(requireReview$1(),t),fd(requireErrors$2(),t)})(domain$1)),domain$1}e(requireDomain$1,"requireDomain$1");var hasRequiredStartUi_command;function requireStartUi_command(){if(hasRequiredStartUi_command)return startUi_command;hasRequiredStartUi_command=1;var t=startUi_command&&startUi_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=startUi_command&&startUi_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=startUi_command&&startUi_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(startUi_command,"__esModule",{value:!0}),startUi_command.StartUiCommandHandler=startUi_command.StartUiCommand=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=requireUiDefaults();class R_{static{e(this,"StartUiCommand")}constructor(L_,j_){this.directory=L_,this.port=j_}}startUi_command.StartUiCommand=R_;let $_=class{static{e(this,"StartUiCommandHandler")}constructor(L_,j_,H_,V_){this.registry=L_,this.projectGateway=j_,this.daemon=H_,this.client=V_}async execute(L_){const j_=await this.projectGateway.resolve(L_.directory);if(!j_.initialized)throw new C_.UiProjectNotInitializedError(j_.directory);const H_=await this.findLiveInstance(j_.directory);if(H_)return{directory:j_.directory,port:H_,url:(0,F_.uiUrl)(H_),alreadyRunning:!0};await this.registry.remove(j_.directory),await this.daemon.spawn({directory:j_.directory,port:L_.port??F_.DEFAULT_UI_PORT,portIsExplicit:L_.port!==void 0});const V_=await this.waitUntilHealthy(j_.directory);return{directory:j_.directory,port:V_,url:(0,F_.uiUrl)(V_),alreadyRunning:!1}}async findLiveInstance(L_){const j_=await this.registry.find(L_);if(!j_||!this.daemon.isPidAlive(j_.pid))return;const H_=await this.client.health(j_.port);return H_&&H_.directory===L_?j_.port:void 0}async waitUntilHealthy(L_){const j_=Date.now()+F_.UI_START_DEADLINE_MS;for(;Date.now()<j_;){const H_=await this.findLiveInstance(L_);if(H_!==void 0)return H_;await N_(F_.UI_START_POLL_INTERVAL_MS)}throw new C_.UiNotRunningError(L_,"the daemon did not become healthy in time")}};startUi_command.StartUiCommandHandler=$_,startUi_command.StartUiCommandHandler=$_=t([(0,pd.CommandHandler)(R_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],$_);function N_(M_){return new Promise(L_=>setTimeout(L_,M_))}return e(N_,"sleep"),startUi_command}e(requireStartUi_command,"requireStartUi_command");var hasRequiredStartUi;function requireStartUi(){return hasRequiredStartUi||(hasRequiredStartUi=1,(function(t){var Xf=startUi&&startUi.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=startUi&&startUi.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireStartUi_command(),t)})(startUi)),startUi}e(requireStartUi,"requireStartUi");var stopUi={},stopUi_command={},hasRequiredStopUi_command;function requireStopUi_command(){if(hasRequiredStopUi_command)return stopUi_command;hasRequiredStopUi_command=1;var t=stopUi_command&&stopUi_command.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=stopUi_command&&stopUi_command.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)},fd=stopUi_command&&stopUi_command.__param||function(N_,M_){return function(L_,j_){M_(L_,j_,N_)}};Object.defineProperty(stopUi_command,"__esModule",{value:!0}),stopUi_command.StopUiCommandHandler=stopUi_command.StopUiCommand=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireUiDefaults();class F_{static{e(this,"StopUiCommand")}constructor(M_,L_=!1){this.directory=M_,this.all=L_}}stopUi_command.StopUiCommand=F_;let R_=class{static{e(this,"StopUiCommandHandler")}constructor(M_,L_,j_,H_){this.registry=M_,this.projectGateway=L_,this.daemon=j_,this.client=H_}async execute(M_){const L_=await this.targets(M_),j_=[];for(const H_ of L_){const V_=await this.stop(H_);await this.registry.remove(H_.directory),j_.push({directory:H_.directory,port:H_.port,pid:H_.pid,wasRunning:V_})}return{stopped:j_}}async targets(M_){if(M_.all)return this.registry.read();const L_=await this.projectGateway.resolve(M_.directory),j_=await this.registry.find(L_.directory);return j_?[j_]:[]}async stop(M_){return this.daemon.isPidAlive(M_.pid)?(await this.client.shutdown(M_.port,M_.token),await this.waitForExit(M_.pid)||(this.daemon.kill(M_.pid,"SIGTERM"),await this.waitForExit(M_.pid))||this.daemon.kill(M_.pid,"SIGKILL"),!0):!1}async waitForExit(M_){const L_=Date.now()+C_.UI_STOP_GRACE_MS;for(;Date.now()<L_;){if(!this.daemon.isPidAlive(M_))return!0;await $_(50)}return!this.daemon.isPidAlive(M_)}};stopUi_command.StopUiCommandHandler=R_,stopUi_command.StopUiCommandHandler=R_=t([(0,pd.CommandHandler)(F_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],R_);function $_(N_){return new Promise(M_=>setTimeout(M_,N_))}return e($_,"sleep"),stopUi_command}e(requireStopUi_command,"requireStopUi_command");var hasRequiredStopUi;function requireStopUi(){return hasRequiredStopUi||(hasRequiredStopUi=1,(function(t){var Xf=stopUi&&stopUi.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=stopUi&&stopUi.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireStopUi_command(),t)})(stopUi)),stopUi}e(requireStopUi,"requireStopUi");var serveUi={},serveUi_command={},uiServer={},apiRouter={},queries$1={},listSessions={},listSessions_query={},hasRequiredListSessions_query;function requireListSessions_query(){if(hasRequiredListSessions_query)return listSessions_query;hasRequiredListSessions_query=1;var t=listSessions_query&&listSessions_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=listSessions_query&&listSessions_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=listSessions_query&&listSessions_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(listSessions_query,"__esModule",{value:!0}),listSessions_query.ListSessionsQueryHandler=listSessions_query.ListSessionsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireSession$1();class C_{static{e(this,"ListSessionsQuery")}}listSessions_query.ListSessionsQuery=C_;let F_=class{static{e(this,"ListSessionsQueryHandler")}constructor($_){this.sessions=$_}async execute(){const $_=await this.sessions.list(),N_=Bd.SESSION_STATUSES.reduce((L_,j_)=>({...L_,[j_]:0}),{});for(const L_ of $_)N_[L_.status]+=1;const M_=new Map;for(const L_ of $_){const j_=L_.parent;j_&&M_.set(j_,[...M_.get(j_)??[],L_.id])}return{sessions:$_.map(L_=>({...L_.toListItem(),reviewSessionIds:M_.get(L_.id)??[]})),counts:N_,total:$_.length,needingMigration:$_.filter(L_=>L_.needsMigration).length}}};return listSessions_query.ListSessionsQueryHandler=F_,listSessions_query.ListSessionsQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Rd.SessionRepository])],F_),listSessions_query}e(requireListSessions_query,"requireListSessions_query");var hasRequiredListSessions;function requireListSessions(){return hasRequiredListSessions||(hasRequiredListSessions=1,(function(t){var Xf=listSessions&&listSessions.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listSessions&&listSessions.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListSessions_query(),t)})(listSessions)),listSessions}e(requireListSessions,"requireListSessions");var getSession={},getSession_query={},hasRequiredGetSession_query;function requireGetSession_query(){if(hasRequiredGetSession_query)return getSession_query;hasRequiredGetSession_query=1;var t=getSession_query&&getSession_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=getSession_query&&getSession_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=getSession_query&&getSession_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(getSession_query,"__esModule",{value:!0}),getSession_query.GetSessionQueryHandler=getSession_query.GetSessionQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3();class Bd{static{e(this,"GetSessionQuery")}constructor(R_){this.sessionId=R_}}getSession_query.GetSessionQuery=Bd;let C_=class{static{e(this,"GetSessionQueryHandler")}constructor(R_){this.sessions=R_}async execute(R_){return(await this.sessions.findOrFail(R_.sessionId)).toDetail()}};return getSession_query.GetSessionQueryHandler=C_,getSession_query.GetSessionQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Rd.SessionRepository])],C_),getSession_query}e(requireGetSession_query,"requireGetSession_query");var hasRequiredGetSession;function requireGetSession(){return hasRequiredGetSession||(hasRequiredGetSession=1,(function(t){var Xf=getSession&&getSession.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getSession&&getSession.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetSession_query(),t)})(getSession)),getSession}e(requireGetSession,"requireGetSession");var getUiStatus={},getUiStatus_query={},hasRequiredGetUiStatus_query;function requireGetUiStatus_query(){if(hasRequiredGetUiStatus_query)return getUiStatus_query;hasRequiredGetUiStatus_query=1;var t=getUiStatus_query&&getUiStatus_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getUiStatus_query&&getUiStatus_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getUiStatus_query&&getUiStatus_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getUiStatus_query,"__esModule",{value:!0}),getUiStatus_query.GetUiStatusQueryHandler=getUiStatus_query.GetUiStatusQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireUiDefaults();class F_{static{e(this,"GetUiStatusQuery")}constructor(N_){this.directory=N_}}getUiStatus_query.GetUiStatusQuery=F_;let R_=class{static{e(this,"GetUiStatusQueryHandler")}constructor(N_,M_,L_,j_){this.registry=N_,this.projectGateway=M_,this.daemon=L_,this.client=j_}async execute(N_){const M_=await this.projectGateway.resolve(N_.directory),L_=await this.registry.read(),j_=await Promise.all(L_.map(async H_=>{const V_=[],J_=this.daemon.isPidAlive(H_.pid),z_=J_?await this.client.health(H_.port):void 0;return J_?z_?z_.directory!==H_.directory&&V_.push(`port ${H_.port} is now serving ${z_.directory}`):V_.push("process is alive but not answering /health"):V_.push("recorded process is gone \u2014 run `invariant ui stop` to clean up"),{directory:H_.directory,port:H_.port,pid:H_.pid,url:(0,C_.uiUrl)(H_.port),startedAt:H_.startedAt,cliVersion:H_.cliVersion,running:z_!==void 0&&z_.directory===H_.directory,current:H_.directory===M_.directory,uptimeSeconds:z_?.uptimeSeconds,warnings:V_}}));return j_.sort((H_,V_)=>Number(V_.current)-Number(H_.current)||H_.port-V_.port),{instances:j_,currentDirectory:M_.directory,anyRunning:j_.some(H_=>H_.running),registryPath:this.registry.path()}}};return getUiStatus_query.GetUiStatusQueryHandler=R_,getUiStatus_query.GetUiStatusQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],R_),getUiStatus_query}e(requireGetUiStatus_query,"requireGetUiStatus_query");var hasRequiredGetUiStatus;function requireGetUiStatus(){return hasRequiredGetUiStatus||(hasRequiredGetUiStatus=1,(function(t){var Xf=getUiStatus&&getUiStatus.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getUiStatus&&getUiStatus.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetUiStatus_query(),t)})(getUiStatus)),getUiStatus}e(requireGetUiStatus,"requireGetUiStatus");var getProjectSummary={},getProjectSummary_query={},hasRequiredGetProjectSummary_query;function requireGetProjectSummary_query(){if(hasRequiredGetProjectSummary_query)return getProjectSummary_query;hasRequiredGetProjectSummary_query=1;var t=getProjectSummary_query&&getProjectSummary_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getProjectSummary_query&&getProjectSummary_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getProjectSummary_query&&getProjectSummary_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getProjectSummary_query,"__esModule",{value:!0}),getProjectSummary_query.GetProjectSummaryQueryHandler=getProjectSummary_query.GetProjectSummaryQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3();class C_{static{e(this,"GetProjectSummaryQuery")}}getProjectSummary_query.GetProjectSummaryQuery=C_;let F_=class{static{e(this,"GetProjectSummaryQueryHandler")}constructor($_,N_){this.sessions=$_,this.projectGateway=N_}async execute(){const $_=await this.projectGateway.resolve(this.sessions.directory);return{directory:$_.directory,name:$_.name,sessionsDirectory:this.sessions.sessionsDirectory(),packageCount:$_.packageCount,activeItemCount:$_.activeItemCount,targets:$_.targets}}};return getProjectSummary_query.GetProjectSummaryQueryHandler=F_,getProjectSummary_query.GetProjectSummaryQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.ProjectGateway])],F_),getProjectSummary_query}e(requireGetProjectSummary_query,"requireGetProjectSummary_query");var hasRequiredGetProjectSummary;function requireGetProjectSummary(){return hasRequiredGetProjectSummary||(hasRequiredGetProjectSummary=1,(function(t){var Xf=getProjectSummary&&getProjectSummary.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getProjectSummary&&getProjectSummary.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetProjectSummary_query(),t)})(getProjectSummary)),getProjectSummary}e(requireGetProjectSummary,"requireGetProjectSummary");var listReviews={},listReviews_query={},hasRequiredListReviews_query;function requireListReviews_query(){if(hasRequiredListReviews_query)return listReviews_query;hasRequiredListReviews_query=1;var t=listReviews_query&&listReviews_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=listReviews_query&&listReviews_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=listReviews_query&&listReviews_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(listReviews_query,"__esModule",{value:!0}),listReviews_query.ListReviewsQueryHandler=listReviews_query.ListReviewsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireReview$2();class C_{static{e(this,"ListReviewsQuery")}}listReviews_query.ListReviewsQuery=C_;let F_=class{static{e(this,"ListReviewsQueryHandler")}constructor($_){this.reviews=$_}async execute(){const[$_,N_]=await Promise.all([this.reviews.list(),this.reviews.reviewDirectory()]),M_=$_.map(L_=>L_.toListItem());return{reviews:M_,directory:N_,counts:M_.reduce((L_,j_)=>(0,Bd.addCounts)(L_,j_.counts),(0,Bd.emptyCounts)()),awaitingTriage:M_.filter(L_=>L_.counts.open>0).length}}};return listReviews_query.ListReviewsQueryHandler=F_,listReviews_query.ListReviewsQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),Xf("design:paramtypes",[Rd.ReviewRepository])],F_),listReviews_query}e(requireListReviews_query,"requireListReviews_query");var hasRequiredListReviews;function requireListReviews(){return hasRequiredListReviews||(hasRequiredListReviews=1,(function(t){var Xf=listReviews&&listReviews.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listReviews&&listReviews.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListReviews_query(),t)})(listReviews)),listReviews}e(requireListReviews,"requireListReviews");var getReview={},getReview_query={},hasRequiredGetReview_query;function requireGetReview_query(){if(hasRequiredGetReview_query)return getReview_query;hasRequiredGetReview_query=1;var t=getReview_query&&getReview_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=getReview_query&&getReview_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=getReview_query&&getReview_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(getReview_query,"__esModule",{value:!0}),getReview_query.GetReviewQueryHandler=getReview_query.GetReviewQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3();class Bd{static{e(this,"GetReviewQuery")}constructor(R_){this.slug=R_}}getReview_query.GetReviewQuery=Bd;let C_=class{static{e(this,"GetReviewQueryHandler")}constructor(R_){this.reviews=R_}async execute(R_){return(await this.reviews.findOrFail(R_.slug)).toDetail()}};return getReview_query.GetReviewQueryHandler=C_,getReview_query.GetReviewQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),Xf("design:paramtypes",[Rd.ReviewRepository])],C_),getReview_query}e(requireGetReview_query,"requireGetReview_query");var hasRequiredGetReview;function requireGetReview(){return hasRequiredGetReview||(hasRequiredGetReview=1,(function(t){var Xf=getReview&&getReview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getReview&&getReview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetReview_query(),t)})(getReview)),getReview}e(requireGetReview,"requireGetReview");var getGitStatus={},getGitStatus_query={},hasRequiredGetGitStatus_query;function requireGetGitStatus_query(){if(hasRequiredGetGitStatus_query)return getGitStatus_query;hasRequiredGetGitStatus_query=1;var t=getGitStatus_query&&getGitStatus_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getGitStatus_query&&getGitStatus_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getGitStatus_query&&getGitStatus_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getGitStatus_query,"__esModule",{value:!0}),getGitStatus_query.GetGitStatusQueryHandler=getGitStatus_query.GetGitStatusQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGit();class C_{static{e(this,"GetGitStatusQuery")}}getGitStatus_query.GetGitStatusQuery=C_;let F_=class{static{e(this,"GetGitStatusQueryHandler")}constructor($_,N_){this.git=$_,this.sessions=N_}async execute(){const $_=this.sessions.directory,N_=e(z_=>({isRepository:!1,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:z_}),"unavailable");if(!await this.git.isRepository($_))return N_("This project is not a git repository.");const M_=await this.git.currentBranch($_);if(!M_)return{isRepository:!0,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:"HEAD is detached \u2014 check out a branch to review it."};const L_=await this.git.resolveBaseBranch($_),j_=L_?await this.git.mergeBase($_,L_):await this.git.rootCommit($_);if(!j_)return{isRepository:!0,branch:M_,baseBranch:L_,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:"No base commit to diff against."};const[H_,V_,J_]=await Promise.all([this.git.headSha($_),this.git.changedFiles($_,j_),this.git.hasStagedChanges($_)]);return{isRepository:!0,branch:M_,baseBranch:L_,headSha:H_,baseSha:j_,hasStagedChanges:J_,changedFileCount:V_.length,canReview:V_.length>0,reason:V_.length>0?void 0:"Nothing to review \u2014 commit or stage your changes first."}}};return getGitStatus_query.GetGitStatusQueryHandler=F_,getGitStatus_query.GetGitStatusQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Bd.GitGateway)),fd(1,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Bd.GitGateway,Rd.SessionRepository])],F_),getGitStatus_query}e(requireGetGitStatus_query,"requireGetGitStatus_query");var hasRequiredGetGitStatus;function requireGetGitStatus(){return hasRequiredGetGitStatus||(hasRequiredGetGitStatus=1,(function(t){var Xf=getGitStatus&&getGitStatus.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getGitStatus&&getGitStatus.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetGitStatus_query(),t)})(getGitStatus)),getGitStatus}e(requireGetGitStatus,"requireGetGitStatus");var getPackageOverview={},getPackageOverview_query={},hasRequiredGetPackageOverview_query;function requireGetPackageOverview_query(){if(hasRequiredGetPackageOverview_query)return getPackageOverview_query;hasRequiredGetPackageOverview_query=1;var t=getPackageOverview_query&&getPackageOverview_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getPackageOverview_query&&getPackageOverview_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getPackageOverview_query&&getPackageOverview_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getPackageOverview_query,"__esModule",{value:!0}),getPackageOverview_query.GetPackageOverviewQueryHandler=getPackageOverview_query.GetPackageOverviewQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3();class C_{static{e(this,"GetPackageOverviewQuery")}}getPackageOverview_query.GetPackageOverviewQuery=C_;let F_=class{static{e(this,"GetPackageOverviewQueryHandler")}constructor($_,N_,M_){this.sessions=$_,this.projectGateway=N_,this.catalog=M_}async execute(){const $_=await this.projectGateway.resolve(this.sessions.directory),N_=$_.initialized?await this.catalog.inspect($_.directory):[];return{directory:$_.directory,name:$_.name,initialized:$_.initialized,canonicalDir:$_.canonicalDir,targets:$_.targets,packages:N_,totals:{packages:N_.length,activeItems:N_.reduce((M_,L_)=>M_+L_.activeCount,0),totalItems:N_.reduce((M_,L_)=>M_+L_.totalCount,0)}}}};return getPackageOverview_query.GetPackageOverviewQueryHandler=F_,getPackageOverview_query.GetPackageOverviewQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.ProjectGateway,Bd.PackageCatalogGateway])],F_),getPackageOverview_query}e(requireGetPackageOverview_query,"requireGetPackageOverview_query");var hasRequiredGetPackageOverview;function requireGetPackageOverview(){return hasRequiredGetPackageOverview||(hasRequiredGetPackageOverview=1,(function(t){var Xf=getPackageOverview&&getPackageOverview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPackageOverview&&getPackageOverview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPackageOverview_query(),t)})(getPackageOverview)),getPackageOverview}e(requireGetPackageOverview,"requireGetPackageOverview");var getPackageDetail={},getPackageDetail_query={},_package$1={},identifiers={},hasRequiredIdentifiers;function requireIdentifiers(){if(hasRequiredIdentifiers)return identifiers;hasRequiredIdentifiers=1,Object.defineProperty(identifiers,"__esModule",{value:!0}),identifiers.isPackageName=C_,identifiers.isItemName=F_,identifiers.isGitHubSegment=R_,identifiers.isGitRef=$_,identifiers.isPackageVersion=N_,identifiers.isPackageItemType=M_;const t=requireDomain$2(),Xf=/^@?[a-z0-9][a-z0-9._-]*(\/[a-z0-9][a-z0-9._-]*)?$/,fd=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,pd=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,dd=/^[A-Za-z0-9][A-Za-z0-9._+-]*$/,Rd=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function Bd(L_){return typeof L_=="string"&&L_.length>0&&L_.length<=214&&!L_.startsWith("-")&&!L_.includes("..")&&!L_.includes("\\")&&!/\s/.test(L_)}e(Bd,"isPlausibleArgument");function C_(L_){return!Bd(L_)||L_.includes("/")&&!L_.startsWith("@")?!1:Xf.test(L_)}e(C_,"isPackageName");function F_(L_){return Bd(L_)&&!L_.includes("/")&&fd.test(L_)}e(F_,"isItemName");function R_(L_){return Bd(L_)&&!L_.includes("/")&&Rd.test(L_)}e(R_,"isGitHubSegment");function $_(L_){return Bd(L_)&&pd.test(L_)}e($_,"isGitRef");function N_(L_){return Bd(L_)&&!L_.includes("/")&&dd.test(L_)}e(N_,"isPackageVersion");function M_(L_){return t.PACKAGE_ITEM_TYPES.includes(L_)}return e(M_,"isPackageItemType"),identifiers}e(requireIdentifiers,"requireIdentifiers");var hasRequired_package$1;function require_package$2(){return hasRequired_package$1||(hasRequired_package$1=1,(function(t){var Xf=_package$1&&_package$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=_package$1&&_package$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireIdentifiers(),t)})(_package$1)),_package$1}e(require_package$2,"require_package$2");var hasRequiredGetPackageDetail_query;function requireGetPackageDetail_query(){if(hasRequiredGetPackageDetail_query)return getPackageDetail_query;hasRequiredGetPackageDetail_query=1;var t=getPackageDetail_query&&getPackageDetail_query.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=getPackageDetail_query&&getPackageDetail_query.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)},fd=getPackageDetail_query&&getPackageDetail_query.__param||function(N_,M_){return function(L_,j_){M_(L_,j_,N_)}};Object.defineProperty(getPackageDetail_query,"__esModule",{value:!0}),getPackageDetail_query.GetPackageDetailQueryHandler=getPackageDetail_query.GetPackageDetailQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=require_package$2();class R_{static{e(this,"GetPackageDetailQuery")}constructor(M_){this.packageName=M_}}getPackageDetail_query.GetPackageDetailQuery=R_;let $_=class{static{e(this,"GetPackageDetailQueryHandler")}constructor(M_,L_){this.sessions=M_,this.catalog=L_}async execute(M_){if(!(0,F_.isPackageName)(M_.packageName))throw new C_.InvalidPackageRequestError(`"${M_.packageName}" is not a valid package name.`);const L_=await this.catalog.inspectOne(this.sessions.directory,M_.packageName);if(!L_)throw new C_.PackageNotCachedError(M_.packageName);return L_}};return getPackageDetail_query.GetPackageDetailQueryHandler=$_,getPackageDetail_query.GetPackageDetailQueryHandler=$_=t([(0,pd.QueryHandler)(R_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.PackageCatalogGateway])],$_),getPackageDetail_query}e(requireGetPackageDetail_query,"requireGetPackageDetail_query");var hasRequiredGetPackageDetail;function requireGetPackageDetail(){return hasRequiredGetPackageDetail||(hasRequiredGetPackageDetail=1,(function(t){var Xf=getPackageDetail&&getPackageDetail.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPackageDetail&&getPackageDetail.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPackageDetail_query(),t)})(getPackageDetail)),getPackageDetail}e(requireGetPackageDetail,"requireGetPackageDetail");var listRegistryPackages={},listRegistryPackages_query={},hasRequiredListRegistryPackages_query;function requireListRegistryPackages_query(){if(hasRequiredListRegistryPackages_query)return listRegistryPackages_query;hasRequiredListRegistryPackages_query=1;var t=listRegistryPackages_query&&listRegistryPackages_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=listRegistryPackages_query&&listRegistryPackages_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=listRegistryPackages_query&&listRegistryPackages_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(listRegistryPackages_query,"__esModule",{value:!0}),listRegistryPackages_query.ListRegistryPackagesQueryHandler=listRegistryPackages_query.ListRegistryPackagesQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requireGateways$3();class Bd{static{e(this,"ListRegistryPackagesQuery")}}listRegistryPackages_query.ListRegistryPackagesQuery=Bd;let C_=class{static{e(this,"ListRegistryPackagesQueryHandler")}constructor(R_){this.catalog=R_}async execute(){const R_=await this.catalog.listRegistry();return{packages:R_,unavailable:R_.length===0}}};return listRegistryPackages_query.ListRegistryPackagesQueryHandler=C_,listRegistryPackages_query.ListRegistryPackagesQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.PackageCatalogGateway])],C_),listRegistryPackages_query}e(requireListRegistryPackages_query,"requireListRegistryPackages_query");var hasRequiredListRegistryPackages;function requireListRegistryPackages(){return hasRequiredListRegistryPackages||(hasRequiredListRegistryPackages=1,(function(t){var Xf=listRegistryPackages&&listRegistryPackages.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listRegistryPackages&&listRegistryPackages.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListRegistryPackages_query(),t)})(listRegistryPackages)),listRegistryPackages}e(requireListRegistryPackages,"requireListRegistryPackages");var getPublisherSettings={},getPublisherSettings_query={},codeHost={},gitlabRemote={},hasRequiredGitlabRemote;function requireGitlabRemote(){if(hasRequiredGitlabRemote)return gitlabRemote;hasRequiredGitlabRemote=1,Object.defineProperty(gitlabRemote,"__esModule",{value:!0}),gitlabRemote.parseGitLabRemote=Xf,gitlabRemote.normalizeProjectPath=fd,gitlabRemote.sameRemote=pd,gitlabRemote.blobUrl=dd;const t=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function Xf(R_){const $_=R_.trim();if($_.length===0)return;const N_=$_.includes("://")?Rd($_):Bd($_);if(!N_)return;const M_=fd(N_.path);if(M_)return{host:N_.host,projectPath:M_}}e(Xf,"parseGitLabRemote");function fd(R_){const $_=R_.trim().replace(/\\/g,"/").replace(/^\/+/,"").replace(/\/+$/,"").replace(/\.git$/i,"");if($_.length===0)return;const N_=$_.split("/");if(!(N_.length<2)&&N_.every(M_=>t.test(M_)))return N_.join("/")}e(fd,"normalizeProjectPath");function pd(R_,$_){if(R_.trim()===$_.trim())return!0;const N_=Xf(R_),M_=Xf($_);return!N_||!M_?!1:N_.host===M_.host&&N_.projectPath===M_.projectPath}e(pd,"sameRemote");function dd(R_,$_,N_,M_){return`${R_.replace(/\/+$/,"")}/${$_}/-/blob/${N_}/${M_.replace(/^\/+/,"")}`}e(dd,"blobUrl");function Rd(R_){const $_=R_.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/([^/]+)(\/.*)?$/);if(!$_)return;const N_=$_[1].toLowerCase(),M_=$_[2],L_=$_[3]??"",j_=M_.includes("@")?M_.slice(M_.lastIndexOf("@")+1):M_,[H_,V_]=C_(j_),J_=F_(H_);if(J_.length===0)return;const z_=N_==="http"?"http":"https",Y_=z_==="http"||N_==="https"?V_:void 0;return{host:`${z_}://${J_}${Y_?`:${Y_}`:""}`,path:L_}}e(Rd,"fromSchemeUrl");function Bd(R_){const $_=R_.indexOf(":");if($_<=0)return;const N_=R_.slice(0,$_),M_=R_.slice($_+1),L_=N_.includes("@")?N_.slice(N_.lastIndexOf("@")+1):N_,j_=F_(L_);if(!(j_.length===0||!j_.includes(".")))return{host:`https://${j_}`,path:M_}}e(Bd,"fromScpForm");function C_(R_){const $_=R_.lastIndexOf(":");if($_===-1)return[R_,void 0];const N_=R_.slice($_+1);return/^\d+$/.test(N_)?[R_.slice(0,$_),N_]:[R_,void 0]}e(C_,"splitPort");function F_(R_){const $_=R_.toLowerCase();if(!$_.includes("-"))return $_;const N_=$_.slice(0,$_.lastIndexOf("-"));return N_.includes(".")?N_:$_}return e(F_,"stripSshAlias"),gitlabRemote}e(requireGitlabRemote,"requireGitlabRemote");var hasRequiredCodeHost;function requireCodeHost(){return hasRequiredCodeHost||(hasRequiredCodeHost=1,(function(t){var Xf=codeHost&&codeHost.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=codeHost&&codeHost.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGitlabRemote(),t)})(codeHost)),codeHost}e(requireCodeHost,"requireCodeHost");var hasRequiredGetPublisherSettings_query;function requireGetPublisherSettings_query(){if(hasRequiredGetPublisherSettings_query)return getPublisherSettings_query;hasRequiredGetPublisherSettings_query=1;var t=getPublisherSettings_query&&getPublisherSettings_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getPublisherSettings_query&&getPublisherSettings_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getPublisherSettings_query&&getPublisherSettings_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getPublisherSettings_query,"__esModule",{value:!0}),getPublisherSettings_query.GetPublisherSettingsQueryHandler=getPublisherSettings_query.GetPublisherSettingsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGit(),C_=requireCodeHost();class F_{static{e(this,"GetPublisherSettingsQuery")}}getPublisherSettings_query.GetPublisherSettingsQuery=F_;let R_=class{static{e(this,"GetPublisherSettingsQueryHandler")}constructor(N_,M_){this.settings=N_,this.git=M_}async execute(){const N_=this.settings.directory,[M_,L_,j_]=await Promise.all([this.settings.read(),this.settings.isProtectedFromGit(),this.git.remoteUrl(N_,"origin")]),H_=j_?(0,C_.parseGitLabRemote)(j_):void 0,V_=j_?{url:j_,host:H_?.host,projectPath:H_?.projectPath}:void 0;if(!M_){const z_=!!(process.env.GITLAB_TOKEN??process.env.GITLAB_PRIVATE_TOKEN);return{publisher:"gitlab",configured:z_&&H_!==void 0,source:z_?"environment":"none",host:H_?.host,projectPath:H_?.projectPath,projectPathSource:H_?"origin":void 0,projectUrl:H_?`${H_.host}/${H_.projectPath}`:void 0,storedAt:this.settings.relativePath(),gitignored:L_,remote:V_,directory:N_}}const J_=j_&&M_.remoteUrl.length>0&&!(0,C_.sameRemote)(M_.remoteUrl,j_)?{storedRemote:M_.remoteUrl,currentRemote:j_}:void 0;return{publisher:M_.publisher,configured:!0,source:"stored",host:M_.host,projectPath:M_.projectPath,projectPathSource:M_.projectPathSource,projectUrl:`${M_.host.replace(/\/+$/,"")}/${M_.projectPath}`,tokenHint:M_.token.slice(-4),storedAt:this.settings.relativePath(),gitignored:L_,updatedAt:M_.updatedAt,remote:V_,mismatch:J_,directory:N_}}};return getPublisherSettings_query.GetPublisherSettingsQueryHandler=R_,getPublisherSettings_query.GetPublisherSettingsQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.PublisherSettingsRepository)),fd(1,(0,dd.Inject)(Bd.GitGateway)),Xf("design:paramtypes",[Rd.PublisherSettingsRepository,Bd.GitGateway])],R_),getPublisherSettings_query}e(requireGetPublisherSettings_query,"requireGetPublisherSettings_query");var hasRequiredGetPublisherSettings;function requireGetPublisherSettings(){return hasRequiredGetPublisherSettings||(hasRequiredGetPublisherSettings=1,(function(t){var Xf=getPublisherSettings&&getPublisherSettings.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPublisherSettings&&getPublisherSettings.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPublisherSettings_query(),t)})(getPublisherSettings)),getPublisherSettings}e(requireGetPublisherSettings,"requireGetPublisherSettings");var verifyPublisher={},verifyPublisher_query={},hasRequiredVerifyPublisher_query;function requireVerifyPublisher_query(){if(hasRequiredVerifyPublisher_query)return verifyPublisher_query;hasRequiredVerifyPublisher_query=1;var t=verifyPublisher_query&&verifyPublisher_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=verifyPublisher_query&&verifyPublisher_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=verifyPublisher_query&&verifyPublisher_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(verifyPublisher_query,"__esModule",{value:!0}),verifyPublisher_query.VerifyPublisherQueryHandler=verifyPublisher_query.VerifyPublisherQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requireGateways$3();class Bd{static{e(this,"VerifyPublisherQuery")}}verifyPublisher_query.VerifyPublisherQuery=Bd;let C_=class{static{e(this,"VerifyPublisherQueryHandler")}constructor(R_){this.publisher=R_}async execute(){return{...await this.publisher.verify(),publisher:this.publisher.id}}};return verifyPublisher_query.VerifyPublisherQueryHandler=C_,verifyPublisher_query.VerifyPublisherQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewPublisherGateway])],C_),verifyPublisher_query}e(requireVerifyPublisher_query,"requireVerifyPublisher_query");var hasRequiredVerifyPublisher;function requireVerifyPublisher(){return hasRequiredVerifyPublisher||(hasRequiredVerifyPublisher=1,(function(t){var Xf=verifyPublisher&&verifyPublisher.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=verifyPublisher&&verifyPublisher.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireVerifyPublisher_query(),t)})(verifyPublisher)),verifyPublisher}e(requireVerifyPublisher,"requireVerifyPublisher");var getPublishPreflight={},getPublishPreflight_query={},publishReview={},publishReview_command={},hasRequiredPublishReview_command;function requirePublishReview_command(){if(hasRequiredPublishReview_command)return publishReview_command;hasRequiredPublishReview_command=1;var t=publishReview_command&&publishReview_command.__decorate||function(L_,j_,H_,V_){var J_=arguments.length,z_=J_<3?j_:V_===null?V_=Object.getOwnPropertyDescriptor(j_,H_):V_,Y_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")z_=Reflect.decorate(L_,j_,H_,V_);else for(var Q_=L_.length-1;Q_>=0;Q_--)(Y_=L_[Q_])&&(z_=(J_<3?Y_(z_):J_>3?Y_(j_,H_,z_):Y_(j_,H_))||z_);return J_>3&&z_&&Object.defineProperty(j_,H_,z_),z_},Xf=publishReview_command&&publishReview_command.__metadata||function(L_,j_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(L_,j_)},fd=publishReview_command&&publishReview_command.__param||function(L_,j_){return function(H_,V_){j_(H_,V_,L_)}};Object.defineProperty(publishReview_command,"__esModule",{value:!0}),publishReview_command.PublishReviewCommandHandler=publishReview_command.PublishReviewCommand=void 0,publishReview_command.buildPublishInput=N_;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=requireReview$2();class R_{static{e(this,"PublishReviewCommand")}constructor(j_,H_={}){this.slug=j_,this.options=H_}}publishReview_command.PublishReviewCommand=R_;let $_=class{static{e(this,"PublishReviewCommandHandler")}constructor(j_,H_){this.reviews=j_,this.publisher=H_}async execute(j_){const H_=await this.reviews.findOrFail(j_.slug),V_=N_(H_),J_=await this.publisher.publish(V_,j_.options);if(J_.dryRun||Object.keys(J_.discussionIds).length===0)return{...J_,slug:H_.slug,publisher:this.publisher.id,review:H_.toDetail()};const z_=await this.reviews.markPublished({slug:H_.slug,references:J_.discussionIds,publishedRunIds:M_(H_,J_),at:new Date().toISOString()});return{...J_,slug:H_.slug,publisher:this.publisher.id,review:z_.toDetail()}}};publishReview_command.PublishReviewCommandHandler=$_,publishReview_command.PublishReviewCommandHandler=$_=t([(0,pd.CommandHandler)(R_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),fd(1,(0,dd.Inject)(Bd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewRepository,Bd.ReviewPublisherGateway])],$_);function N_(L_){if(L_.counts.open>0)throw new F_.ReviewNotTriagedError(L_.slug,L_.counts.open);if(!(0,F_.isPublishable)(L_.document.meta))throw new C_.PublisherNotConfiguredError("not-publishable",`Review "${L_.slug}" is missing the commit shas a discussion needs to anchor to.`);const j_=L_.document.stagedComments;if(j_.length===0)throw new C_.PublisherNotConfiguredError("nothing-staged",`Review "${L_.slug}" has no staged comments \u2014 there is nothing to publish.`);const H_=L_.document.meta;return{slug:L_.slug,branch:H_.branch,baseSha:H_.baseSha,startSha:H_.startSha,headSha:H_.headSha,summary:L_.document.latestRun?.summary??"",comments:j_.map(V_=>({id:V_.id,severity:V_.severity,category:V_.category,file:V_.file,line:V_.line,endLine:V_.endLine,title:V_.title,body:V_.body,suggestion:V_.suggestion,suggestionLang:V_.suggestionLang,hostReference:V_.discussion}))}}e(N_,"buildPublishInput");function M_(L_,j_){return L_.document.runs.filter(H_=>{const V_=H_.comments.filter(J_=>J_.isStaged);return V_.length===0?!1:V_.every(J_=>j_.discussionIds[J_.id]!==void 0||j_.skipped.includes(J_.id))}).map(H_=>H_.id)}return e(M_,"fullyPublishedRuns"),publishReview_command}e(requirePublishReview_command,"requirePublishReview_command");var hasRequiredPublishReview;function requirePublishReview(){return hasRequiredPublishReview||(hasRequiredPublishReview=1,(function(t){var Xf=publishReview&&publishReview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=publishReview&&publishReview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requirePublishReview_command(),t)})(publishReview)),publishReview}e(requirePublishReview,"requirePublishReview");var hasRequiredGetPublishPreflight_query;function requireGetPublishPreflight_query(){if(hasRequiredGetPublishPreflight_query)return getPublishPreflight_query;hasRequiredGetPublishPreflight_query=1;var t=getPublishPreflight_query&&getPublishPreflight_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getPublishPreflight_query&&getPublishPreflight_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getPublishPreflight_query&&getPublishPreflight_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getPublishPreflight_query,"__esModule",{value:!0}),getPublishPreflight_query.GetPublishPreflightQueryHandler=getPublishPreflight_query.GetPublishPreflightQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requirePublishReview();class F_{static{e(this,"GetPublishPreflightQuery")}constructor(N_,M_){this.slug=N_,this.mergeRequestIid=M_}}getPublishPreflight_query.GetPublishPreflightQuery=F_;let R_=class{static{e(this,"GetPublishPreflightQueryHandler")}constructor(N_,M_){this.reviews=N_,this.publisher=M_}async execute(N_){const M_=await this.reviews.findOrFail(N_.slug);return{...await this.publisher.preflight((0,C_.buildPublishInput)(M_),{mergeRequestIid:N_.mergeRequestIid}),slug:M_.slug}}};return getPublishPreflight_query.GetPublishPreflightQueryHandler=R_,getPublishPreflight_query.GetPublishPreflightQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),fd(1,(0,dd.Inject)(Bd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewRepository,Bd.ReviewPublisherGateway])],R_),getPublishPreflight_query}e(requireGetPublishPreflight_query,"requireGetPublishPreflight_query");var hasRequiredGetPublishPreflight;function requireGetPublishPreflight(){return hasRequiredGetPublishPreflight||(hasRequiredGetPublishPreflight=1,(function(t){var Xf=getPublishPreflight&&getPublishPreflight.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPublishPreflight&&getPublishPreflight.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPublishPreflight_query(),t)})(getPublishPreflight)),getPublishPreflight}e(requireGetPublishPreflight,"requireGetPublishPreflight");var hasRequiredQueries$1;function requireQueries$1(){return hasRequiredQueries$1||(hasRequiredQueries$1=1,(function(t){var Xf=queries$1&&queries$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=queries$1&&queries$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListSessions(),t),fd(requireGetSession(),t),fd(requireGetUiStatus(),t),fd(requireGetProjectSummary(),t),fd(requireListReviews(),t),fd(requireGetReview(),t),fd(requireGetGitStatus(),t),fd(requireGetPackageOverview(),t),fd(requireGetPackageDetail(),t),fd(requireListRegistryPackages(),t),fd(requireGetPublisherSettings(),t),fd(requireVerifyPublisher(),t),fd(requireGetPublishPreflight(),t)})(queries$1)),queries$1}e(requireQueries$1,"requireQueries$1");var sourceReader={},hasRequiredSourceReader;function requireSourceReader(){if(hasRequiredSourceReader)return sourceReader;hasRequiredSourceReader=1,Object.defineProperty(sourceReader,"__esModule",{value:!0}),sourceReader.readSourceWindow=C_;const t=require$$1$4,Xf=require$$2$3,fd=requireDomain$1(),pd=400,dd=64*1024,Rd=12,Bd=120;async function C_(F_,R_,$_,N_=Rd){const M_=R_.replace(/\\/g,"/").replace(/^\.\//,"");if(M_.length===0||M_.startsWith("/")||/^[a-zA-Z]:\//.test(M_))throw new fd.InvalidSessionRequestError("A project-relative path is required.");if(M_.split("/").includes(".."))throw new fd.InvalidSessionRequestError("The path must stay inside the project.");const L_=await t.realpath(F_),j_=Xf.resolve(L_,...M_.split("/"));let H_;try{H_=await t.realpath(j_)}catch{throw new fd.SessionNotFoundError(M_)}if(H_!==L_&&!H_.startsWith(`${L_}${Xf.sep}`))throw new fd.InvalidSessionRequestError("The path resolves outside the project.");const V_=await t.stat(H_).catch(()=>null);if(!V_||!V_.isFile())throw new fd.SessionNotFoundError(M_);const z_=(await t.readFile(H_,"utf-8")).split(`
1072
+ `),dd=pd.findIndex(R_=>/^##[ \t]+Task[ \t]*\r?$/.test(R_)),Rd=dd===-1?pd:pd.slice(dd+1),Bd=[];let C_=!1;for(const R_ of Rd){const $_=R_.trim();if($_.startsWith("```")){C_=!C_;continue}if(!C_){if(dd!==-1&&/^##[ \t]/.test($_))break;if($_.length===0){if(Bd.length>0)break;continue}if(!($_.startsWith("<")||$_.startsWith("#")||$_.startsWith("|"))&&(Bd.push($_.replace(/^[-*>\s]+/,"")),Bd.join(" ").length>=t))break}}const F_=Bd.join(" ").replace(/\s+/g," ").trim();return F_.length>t?`${F_.slice(0,t-1).trimEnd()}\u2026`:F_}toListItem(){return{id:this.id,file:this.file,title:this.header.title,kind:this.kind,status:this.status,parent:this.header.parent,branch:this.header.branch,reviewFile:this.header.reviewFile,reviewSessionIds:[],created:this.header.created,updated:this.header.updated,tags:this.header.tags,summary:this.header.summary,completed:this.header.completed,excerpt:this.excerpt,sizeBytes:this.props.sizeBytes,etag:this.etag,hasHeader:this.props.hasHeader,needsMigration:this.needsMigration,issues:this.issues}}toDetail(){return{...this.toListItem(),body:this.body,path:this.path}}}return session.Session=Xf,session}e(requireSession,"requireSession");var review={},hasRequiredReview$1;function requireReview$1(){if(hasRequiredReview$1)return review;hasRequiredReview$1=1,Object.defineProperty(review,"__esModule",{value:!0}),review.Review=void 0;const t=requireReview$2();class Xf{static{e(this,"Review")}constructor(dd){this.props=dd}static rehydrate(dd){return new Xf(dd)}get slug(){return this.props.slug}get file(){return this.props.relativePath.split("/").pop()??this.props.slug}get path(){return this.props.path}get relativePath(){return this.props.relativePath}get document(){return this.props.document}get etag(){return this.props.etag}get counts(){return this.props.document.counts}get isTriaged(){return this.props.document.isTriaged}toListItem(){const dd=this.props.document,Rd=dd.latestRun;return{slug:this.slug,branch:dd.meta.branch,path:this.props.relativePath,base:dd.meta.base,headSha:dd.meta.headSha,runCount:dd.runs.length,status:Rd?Rd.status:t.ReviewRunStatus.Open,counts:dd.counts,isTriaged:dd.isTriaged,canPublish:(0,t.isPublishable)(dd.meta),sessionId:dd.sessionId,updated:this.props.updated,sizeBytes:this.props.sizeBytes,etag:this.props.etag,issues:dd.issues}}toDetail(){return{...this.toListItem(),absolutePath:this.props.path,scope:{baseSha:this.props.document.meta.baseSha,startSha:this.props.document.meta.startSha,headSha:this.props.document.meta.headSha,scope:this.props.document.meta.scope},runs:this.props.document.runs.map(dd=>({id:dd.id,sessionId:dd.sessionId,headSha:dd.headSha,created:dd.created,status:dd.status,summary:dd.summary,counts:dd.counts,comments:dd.sortedComments.map(fd)}))}}}review.Review=Xf;function fd(pd){return{id:pd.id,status:pd.status,severity:pd.severity,category:pd.category,file:pd.file,line:pd.line,endLine:pd.endLine,symbol:pd.symbol,edited:pd.edited,discussion:pd.discussion,title:pd.title,body:pd.body,suggestion:pd.suggestion,suggestionLang:pd.suggestionLang,location:pd.location}}return e(fd,"toCommentView"),review}e(requireReview$1,"requireReview$1");var errors$2={},sessionNotFound_error={},hasRequiredSessionNotFound_error;function requireSessionNotFound_error(){if(hasRequiredSessionNotFound_error)return sessionNotFound_error;hasRequiredSessionNotFound_error=1,Object.defineProperty(sessionNotFound_error,"__esModule",{value:!0}),sessionNotFound_error.SessionNotFoundError=void 0;class t extends Error{static{e(this,"SessionNotFoundError")}constructor(fd){super(`Session "${fd}" was not found in this project.`),this.sessionId=fd,this.code="SESSION_NOT_FOUND",this.name="SessionNotFoundError"}}return sessionNotFound_error.SessionNotFoundError=t,sessionNotFound_error}e(requireSessionNotFound_error,"requireSessionNotFound_error");var sessionConflict_error={},hasRequiredSessionConflict_error;function requireSessionConflict_error(){if(hasRequiredSessionConflict_error)return sessionConflict_error;hasRequiredSessionConflict_error=1,Object.defineProperty(sessionConflict_error,"__esModule",{value:!0}),sessionConflict_error.SessionConflictError=void 0;class t extends Error{static{e(this,"SessionConflictError")}constructor(fd,pd,dd,Rd){super(`Session "${fd}" changed on disk since it was loaded.`),this.sessionId=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.code="SESSION_CONFLICT",this.name="SessionConflictError"}}return sessionConflict_error.SessionConflictError=t,sessionConflict_error}e(requireSessionConflict_error,"requireSessionConflict_error");var sessionMergeConflict_error={},hasRequiredSessionMergeConflict_error;function requireSessionMergeConflict_error(){if(hasRequiredSessionMergeConflict_error)return sessionMergeConflict_error;hasRequiredSessionMergeConflict_error=1,Object.defineProperty(sessionMergeConflict_error,"__esModule",{value:!0}),sessionMergeConflict_error.SessionMergeConflictError=void 0;class t extends Error{static{e(this,"SessionMergeConflictError")}constructor(fd,pd,dd,Rd,Bd,C_,F_){super(`Session "${fd}" changed on disk in ${C_} place(s) you also edited.`),this.sessionId=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.mergedPreview=Bd,this.conflictCount=C_,this.stashedPath=F_,this.code="SESSION_MERGE_CONFLICT",this.name="SessionMergeConflictError"}}return sessionMergeConflict_error.SessionMergeConflictError=t,sessionMergeConflict_error}e(requireSessionMergeConflict_error,"requireSessionMergeConflict_error");var invalidSessionRequest_error={},hasRequiredInvalidSessionRequest_error;function requireInvalidSessionRequest_error(){if(hasRequiredInvalidSessionRequest_error)return invalidSessionRequest_error;hasRequiredInvalidSessionRequest_error=1,Object.defineProperty(invalidSessionRequest_error,"__esModule",{value:!0}),invalidSessionRequest_error.InvalidSessionRequestError=void 0;class t extends Error{static{e(this,"InvalidSessionRequestError")}constructor(fd){super(fd),this.code="INVALID_REQUEST",this.name="InvalidSessionRequestError"}}return invalidSessionRequest_error.InvalidSessionRequestError=t,invalidSessionRequest_error}e(requireInvalidSessionRequest_error,"requireInvalidSessionRequest_error");var uiNotRunning_error={},hasRequiredUiNotRunning_error;function requireUiNotRunning_error(){if(hasRequiredUiNotRunning_error)return uiNotRunning_error;hasRequiredUiNotRunning_error=1,Object.defineProperty(uiNotRunning_error,"__esModule",{value:!0}),uiNotRunning_error.UiNotRunningError=void 0;class t extends Error{static{e(this,"UiNotRunningError")}constructor(fd,pd){super(`The Invariant UI is not running for ${fd}${pd?` \u2014 ${pd}`:""}.`),this.directory=fd,this.code="UI_NOT_RUNNING",this.name="UiNotRunningError"}}return uiNotRunning_error.UiNotRunningError=t,uiNotRunning_error}e(requireUiNotRunning_error,"requireUiNotRunning_error");var portUnavailable_error={},hasRequiredPortUnavailable_error;function requirePortUnavailable_error(){if(hasRequiredPortUnavailable_error)return portUnavailable_error;hasRequiredPortUnavailable_error=1,Object.defineProperty(portUnavailable_error,"__esModule",{value:!0}),portUnavailable_error.PortUnavailableError=void 0;class t extends Error{static{e(this,"PortUnavailableError")}constructor(fd,pd){super(`Port ${fd} is not available \u2014 ${pd}`),this.port=fd,this.code="PORT_UNAVAILABLE",this.name="PortUnavailableError"}}return portUnavailable_error.PortUnavailableError=t,portUnavailable_error}e(requirePortUnavailable_error,"requirePortUnavailable_error");var projectNotInitialized_error={},hasRequiredProjectNotInitialized_error;function requireProjectNotInitialized_error(){if(hasRequiredProjectNotInitialized_error)return projectNotInitialized_error;hasRequiredProjectNotInitialized_error=1,Object.defineProperty(projectNotInitialized_error,"__esModule",{value:!0}),projectNotInitialized_error.UiProjectNotInitializedError=void 0;class t extends Error{static{e(this,"UiProjectNotInitializedError")}constructor(fd){super(`No .invariant project found in ${fd}. Run "invariant init <target>" first.`),this.directory=fd,this.code="PROJECT_NOT_INITIALIZED",this.name="UiProjectNotInitializedError"}}return projectNotInitialized_error.UiProjectNotInitializedError=t,projectNotInitialized_error}e(requireProjectNotInitialized_error,"requireProjectNotInitialized_error");var reviewConflict_error={},hasRequiredReviewConflict_error;function requireReviewConflict_error(){if(hasRequiredReviewConflict_error)return reviewConflict_error;hasRequiredReviewConflict_error=1,Object.defineProperty(reviewConflict_error,"__esModule",{value:!0}),reviewConflict_error.ReviewConflictError=void 0;class t extends Error{static{e(this,"ReviewConflictError")}constructor(fd,pd,dd,Rd){super(`Review "${fd}" changed on disk since it was loaded.`),this.slug=fd,this.expectedEtag=pd,this.actualEtag=dd,this.currentContent=Rd,this.code="REVIEW_CONFLICT",this.name="ReviewConflictError"}}return reviewConflict_error.ReviewConflictError=t,reviewConflict_error}e(requireReviewConflict_error,"requireReviewConflict_error");var publisherNotConfigured_error={},hasRequiredPublisherNotConfigured_error;function requirePublisherNotConfigured_error(){if(hasRequiredPublisherNotConfigured_error)return publisherNotConfigured_error;hasRequiredPublisherNotConfigured_error=1,Object.defineProperty(publisherNotConfigured_error,"__esModule",{value:!0}),publisherNotConfigured_error.PublisherNotConfiguredError=void 0;class t extends Error{static{e(this,"PublisherNotConfiguredError")}constructor(fd,pd){super(pd),this.reason=fd,this.name="PublisherNotConfiguredError"}get code(){return this.reason==="not-implemented"?"NOT_IMPLEMENTED":"PUBLISHER_NOT_CONFIGURED"}get status(){return this.reason==="not-implemented"?501:409}}return publisherNotConfigured_error.PublisherNotConfiguredError=t,publisherNotConfigured_error}e(requirePublisherNotConfigured_error,"requirePublisherNotConfigured_error");var publisherProjectMismatch_error={},hasRequiredPublisherProjectMismatch_error;function requirePublisherProjectMismatch_error(){if(hasRequiredPublisherProjectMismatch_error)return publisherProjectMismatch_error;hasRequiredPublisherProjectMismatch_error=1,Object.defineProperty(publisherProjectMismatch_error,"__esModule",{value:!0}),publisherProjectMismatch_error.PublisherProjectMismatchError=void 0;class t extends Error{static{e(this,"PublisherProjectMismatchError")}constructor(fd,pd){super(`This project's origin is now "${pd}", but the saved GitLab settings were made for "${fd}". Update the publishing settings before publishing.`),this.storedRemote=fd,this.currentRemote=pd,this.code="PUBLISHER_PROJECT_MISMATCH",this.name="PublisherProjectMismatchError"}}return publisherProjectMismatch_error.PublisherProjectMismatchError=t,publisherProjectMismatch_error}e(requirePublisherProjectMismatch_error,"requirePublisherProjectMismatch_error");var publisherNoMergeRequest_error={},hasRequiredPublisherNoMergeRequest_error;function requirePublisherNoMergeRequest_error(){if(hasRequiredPublisherNoMergeRequest_error)return publisherNoMergeRequest_error;hasRequiredPublisherNoMergeRequest_error=1,Object.defineProperty(publisherNoMergeRequest_error,"__esModule",{value:!0}),publisherNoMergeRequest_error.PublisherNoMergeRequestError=void 0;class t extends Error{static{e(this,"PublisherNoMergeRequestError")}constructor(fd,pd){super(`No open merge request in "${pd}" has "${fd}" as its source branch. Open one, or pick a merge request explicitly.`),this.branch=fd,this.projectPath=pd,this.code="PUBLISHER_NO_MERGE_REQUEST",this.name="PublisherNoMergeRequestError"}}return publisherNoMergeRequest_error.PublisherNoMergeRequestError=t,publisherNoMergeRequest_error}e(requirePublisherNoMergeRequest_error,"requirePublisherNoMergeRequest_error");var publisherAuthFailed_error={},hasRequiredPublisherAuthFailed_error;function requirePublisherAuthFailed_error(){if(hasRequiredPublisherAuthFailed_error)return publisherAuthFailed_error;hasRequiredPublisherAuthFailed_error=1,Object.defineProperty(publisherAuthFailed_error,"__esModule",{value:!0}),publisherAuthFailed_error.PublisherAuthFailedError=void 0;class t extends Error{static{e(this,"PublisherAuthFailedError")}constructor(fd){super(fd),this.code="PUBLISHER_AUTH_FAILED",this.hint="A personal access token needs the `api` scope \u2014 `read_api` is not enough.",this.name="PublisherAuthFailedError"}}return publisherAuthFailed_error.PublisherAuthFailedError=t,publisherAuthFailed_error}e(requirePublisherAuthFailed_error,"requirePublisherAuthFailed_error");var publisherRequestFailed_error={},hasRequiredPublisherRequestFailed_error;function requirePublisherRequestFailed_error(){if(hasRequiredPublisherRequestFailed_error)return publisherRequestFailed_error;hasRequiredPublisherRequestFailed_error=1,Object.defineProperty(publisherRequestFailed_error,"__esModule",{value:!0}),publisherRequestFailed_error.PublisherRequestFailedError=void 0;class t extends Error{static{e(this,"PublisherRequestFailedError")}constructor(fd,pd,dd,Rd){super(`GitLab answered ${fd} to ${dd} ${Rd}: ${pd}`),this.status=fd,this.gitlabMessage=pd,this.method=dd,this.path=Rd,this.code="PUBLISHER_REQUEST_FAILED",this.name="PublisherRequestFailedError"}}return publisherRequestFailed_error.PublisherRequestFailedError=t,publisherRequestFailed_error}e(requirePublisherRequestFailed_error,"requirePublisherRequestFailed_error");var packageNotCached_error={},hasRequiredPackageNotCached_error;function requirePackageNotCached_error(){if(hasRequiredPackageNotCached_error)return packageNotCached_error;hasRequiredPackageNotCached_error=1,Object.defineProperty(packageNotCached_error,"__esModule",{value:!0}),packageNotCached_error.PackageNotCachedError=void 0;class t extends Error{static{e(this,"PackageNotCachedError")}constructor(fd){super(`Package "${fd}" is not installed in this project.`),this.packageName=fd,this.code="PACKAGE_NOT_CACHED",this.name="PackageNotCachedError"}}return packageNotCached_error.PackageNotCachedError=t,packageNotCached_error}e(requirePackageNotCached_error,"requirePackageNotCached_error");var invalidPackageRequest_error={},hasRequiredInvalidPackageRequest_error;function requireInvalidPackageRequest_error(){if(hasRequiredInvalidPackageRequest_error)return invalidPackageRequest_error;hasRequiredInvalidPackageRequest_error=1,Object.defineProperty(invalidPackageRequest_error,"__esModule",{value:!0}),invalidPackageRequest_error.InvalidPackageRequestError=void 0;class t extends Error{static{e(this,"InvalidPackageRequestError")}constructor(fd){super(fd),this.code="INVALID_PACKAGE_REQUEST",this.name="InvalidPackageRequestError"}}return invalidPackageRequest_error.InvalidPackageRequestError=t,invalidPackageRequest_error}e(requireInvalidPackageRequest_error,"requireInvalidPackageRequest_error");var packageOperationFailed_error={},hasRequiredPackageOperationFailed_error;function requirePackageOperationFailed_error(){if(hasRequiredPackageOperationFailed_error)return packageOperationFailed_error;hasRequiredPackageOperationFailed_error=1,Object.defineProperty(packageOperationFailed_error,"__esModule",{value:!0}),packageOperationFailed_error.PackageOperationFailedError=void 0;class t extends Error{static{e(this,"PackageOperationFailedError")}constructor(fd,pd,dd,Rd){super(dd),this.argv=fd,this.transcript=pd,this.phase=Rd,this.code="PACKAGE_OPERATION_FAILED",this.name="PackageOperationFailedError"}get commandLine(){return`invariant ${this.argv.join(" ")}`}}return packageOperationFailed_error.PackageOperationFailedError=t,packageOperationFailed_error}e(requirePackageOperationFailed_error,"requirePackageOperationFailed_error");var hasRequiredErrors$2;function requireErrors$2(){return hasRequiredErrors$2||(hasRequiredErrors$2=1,(function(t){var Xf=errors$2&&errors$2.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=errors$2&&errors$2.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSessionNotFound_error(),t),fd(requireSessionConflict_error(),t),fd(requireSessionMergeConflict_error(),t),fd(requireInvalidSessionRequest_error(),t),fd(requireUiNotRunning_error(),t),fd(requirePortUnavailable_error(),t),fd(requireProjectNotInitialized_error(),t),fd(requireReviewConflict_error(),t),fd(requirePublisherNotConfigured_error(),t),fd(requirePublisherProjectMismatch_error(),t),fd(requirePublisherNoMergeRequest_error(),t),fd(requirePublisherAuthFailed_error(),t),fd(requirePublisherRequestFailed_error(),t),fd(requirePackageNotCached_error(),t),fd(requireInvalidPackageRequest_error(),t),fd(requirePackageOperationFailed_error(),t)})(errors$2)),errors$2}e(requireErrors$2,"requireErrors$2");var hasRequiredDomain$1;function requireDomain$1(){return hasRequiredDomain$1||(hasRequiredDomain$1=1,(function(t){var Xf=domain$1&&domain$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=domain$1&&domain$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSession(),t),fd(requireReview$1(),t),fd(requireErrors$2(),t)})(domain$1)),domain$1}e(requireDomain$1,"requireDomain$1");var hasRequiredStartUi_command;function requireStartUi_command(){if(hasRequiredStartUi_command)return startUi_command;hasRequiredStartUi_command=1;var t=startUi_command&&startUi_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=startUi_command&&startUi_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=startUi_command&&startUi_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(startUi_command,"__esModule",{value:!0}),startUi_command.StartUiCommandHandler=startUi_command.StartUiCommand=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=requireUiDefaults();class R_{static{e(this,"StartUiCommand")}constructor(L_,j_){this.directory=L_,this.port=j_}}startUi_command.StartUiCommand=R_;let $_=class{static{e(this,"StartUiCommandHandler")}constructor(L_,j_,H_,V_){this.registry=L_,this.projectGateway=j_,this.daemon=H_,this.client=V_}async execute(L_){const j_=await this.projectGateway.resolve(L_.directory);if(!j_.initialized)throw new C_.UiProjectNotInitializedError(j_.directory);const H_=await this.findLiveInstance(j_.directory);if(H_)return{directory:j_.directory,port:H_,url:(0,F_.uiUrl)(H_),alreadyRunning:!0};await this.registry.remove(j_.directory),await this.daemon.spawn({directory:j_.directory,port:L_.port??F_.DEFAULT_UI_PORT,portIsExplicit:L_.port!==void 0});const V_=await this.waitUntilHealthy(j_.directory);return{directory:j_.directory,port:V_,url:(0,F_.uiUrl)(V_),alreadyRunning:!1}}async findLiveInstance(L_){const j_=await this.registry.find(L_);if(!j_||!this.daemon.isPidAlive(j_.pid))return;const H_=await this.client.health(j_.port);return H_&&H_.directory===L_?j_.port:void 0}async waitUntilHealthy(L_){const j_=Date.now()+F_.UI_START_DEADLINE_MS;for(;Date.now()<j_;){const H_=await this.findLiveInstance(L_);if(H_!==void 0)return H_;await N_(F_.UI_START_POLL_INTERVAL_MS)}throw new C_.UiNotRunningError(L_,"the daemon did not become healthy in time")}};startUi_command.StartUiCommandHandler=$_,startUi_command.StartUiCommandHandler=$_=t([(0,pd.CommandHandler)(R_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],$_);function N_(M_){return new Promise(L_=>setTimeout(L_,M_))}return e(N_,"sleep"),startUi_command}e(requireStartUi_command,"requireStartUi_command");var hasRequiredStartUi;function requireStartUi(){return hasRequiredStartUi||(hasRequiredStartUi=1,(function(t){var Xf=startUi&&startUi.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=startUi&&startUi.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireStartUi_command(),t)})(startUi)),startUi}e(requireStartUi,"requireStartUi");var stopUi={},stopUi_command={},hasRequiredStopUi_command;function requireStopUi_command(){if(hasRequiredStopUi_command)return stopUi_command;hasRequiredStopUi_command=1;var t=stopUi_command&&stopUi_command.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=stopUi_command&&stopUi_command.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)},fd=stopUi_command&&stopUi_command.__param||function(N_,M_){return function(L_,j_){M_(L_,j_,N_)}};Object.defineProperty(stopUi_command,"__esModule",{value:!0}),stopUi_command.StopUiCommandHandler=stopUi_command.StopUiCommand=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireUiDefaults();class F_{static{e(this,"StopUiCommand")}constructor(M_,L_=!1){this.directory=M_,this.all=L_}}stopUi_command.StopUiCommand=F_;let R_=class{static{e(this,"StopUiCommandHandler")}constructor(M_,L_,j_,H_){this.registry=M_,this.projectGateway=L_,this.daemon=j_,this.client=H_}async execute(M_){const L_=await this.targets(M_),j_=[];for(const H_ of L_){const V_=await this.stop(H_);await this.registry.remove(H_.directory),j_.push({directory:H_.directory,port:H_.port,pid:H_.pid,wasRunning:V_})}return{stopped:j_}}async targets(M_){if(M_.all)return this.registry.read();const L_=await this.projectGateway.resolve(M_.directory),j_=await this.registry.find(L_.directory);return j_?[j_]:[]}async stop(M_){return this.daemon.isPidAlive(M_.pid)?(await this.client.shutdown(M_.port,M_.token),await this.waitForExit(M_.pid)||(this.daemon.kill(M_.pid,"SIGTERM"),await this.waitForExit(M_.pid))||this.daemon.kill(M_.pid,"SIGKILL"),!0):!1}async waitForExit(M_){const L_=Date.now()+C_.UI_STOP_GRACE_MS;for(;Date.now()<L_;){if(!this.daemon.isPidAlive(M_))return!0;await $_(50)}return!this.daemon.isPidAlive(M_)}};stopUi_command.StopUiCommandHandler=R_,stopUi_command.StopUiCommandHandler=R_=t([(0,pd.CommandHandler)(F_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],R_);function $_(N_){return new Promise(M_=>setTimeout(M_,N_))}return e($_,"sleep"),stopUi_command}e(requireStopUi_command,"requireStopUi_command");var hasRequiredStopUi;function requireStopUi(){return hasRequiredStopUi||(hasRequiredStopUi=1,(function(t){var Xf=stopUi&&stopUi.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=stopUi&&stopUi.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireStopUi_command(),t)})(stopUi)),stopUi}e(requireStopUi,"requireStopUi");var serveUi={},serveUi_command={},uiServer={},apiRouter={},queries$1={},listSessions={},listSessions_query={},hasRequiredListSessions_query;function requireListSessions_query(){if(hasRequiredListSessions_query)return listSessions_query;hasRequiredListSessions_query=1;var t=listSessions_query&&listSessions_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=listSessions_query&&listSessions_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=listSessions_query&&listSessions_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(listSessions_query,"__esModule",{value:!0}),listSessions_query.ListSessionsQueryHandler=listSessions_query.ListSessionsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireSession$1();class C_{static{e(this,"ListSessionsQuery")}}listSessions_query.ListSessionsQuery=C_;let F_=class{static{e(this,"ListSessionsQueryHandler")}constructor($_){this.sessions=$_}async execute(){const $_=await this.sessions.list(),N_=Bd.SESSION_STATUSES.reduce((L_,j_)=>({...L_,[j_]:0}),{});for(const L_ of $_)N_[L_.status]+=1;const M_=new Map;for(const L_ of $_){const j_=L_.parent;j_&&M_.set(j_,[...M_.get(j_)??[],L_.id])}return{sessions:$_.map(L_=>({...L_.toListItem(),reviewSessionIds:M_.get(L_.id)??[]})),counts:N_,total:$_.length,needingMigration:$_.filter(L_=>L_.needsMigration).length}}};return listSessions_query.ListSessionsQueryHandler=F_,listSessions_query.ListSessionsQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Rd.SessionRepository])],F_),listSessions_query}e(requireListSessions_query,"requireListSessions_query");var hasRequiredListSessions;function requireListSessions(){return hasRequiredListSessions||(hasRequiredListSessions=1,(function(t){var Xf=listSessions&&listSessions.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listSessions&&listSessions.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListSessions_query(),t)})(listSessions)),listSessions}e(requireListSessions,"requireListSessions");var getSession={},getSession_query={},hasRequiredGetSession_query;function requireGetSession_query(){if(hasRequiredGetSession_query)return getSession_query;hasRequiredGetSession_query=1;var t=getSession_query&&getSession_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=getSession_query&&getSession_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=getSession_query&&getSession_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(getSession_query,"__esModule",{value:!0}),getSession_query.GetSessionQueryHandler=getSession_query.GetSessionQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3();class Bd{static{e(this,"GetSessionQuery")}constructor(R_){this.sessionId=R_}}getSession_query.GetSessionQuery=Bd;let C_=class{static{e(this,"GetSessionQueryHandler")}constructor(R_){this.sessions=R_}async execute(R_){return(await this.sessions.findOrFail(R_.sessionId)).toDetail()}};return getSession_query.GetSessionQueryHandler=C_,getSession_query.GetSessionQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Rd.SessionRepository])],C_),getSession_query}e(requireGetSession_query,"requireGetSession_query");var hasRequiredGetSession;function requireGetSession(){return hasRequiredGetSession||(hasRequiredGetSession=1,(function(t){var Xf=getSession&&getSession.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getSession&&getSession.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetSession_query(),t)})(getSession)),getSession}e(requireGetSession,"requireGetSession");var getUiStatus={},getUiStatus_query={},hasRequiredGetUiStatus_query;function requireGetUiStatus_query(){if(hasRequiredGetUiStatus_query)return getUiStatus_query;hasRequiredGetUiStatus_query=1;var t=getUiStatus_query&&getUiStatus_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getUiStatus_query&&getUiStatus_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getUiStatus_query&&getUiStatus_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getUiStatus_query,"__esModule",{value:!0}),getUiStatus_query.GetUiStatusQueryHandler=getUiStatus_query.GetUiStatusQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireUiDefaults();class F_{static{e(this,"GetUiStatusQuery")}constructor(N_){this.directory=N_}}getUiStatus_query.GetUiStatusQuery=F_;let R_=class{static{e(this,"GetUiStatusQueryHandler")}constructor(N_,M_,L_,j_){this.registry=N_,this.projectGateway=M_,this.daemon=L_,this.client=j_}async execute(N_){const M_=await this.projectGateway.resolve(N_.directory),L_=await this.registry.read(),j_=await Promise.all(L_.map(async H_=>{const V_=[],J_=this.daemon.isPidAlive(H_.pid),z_=J_?await this.client.health(H_.port):void 0;return J_?z_?z_.directory!==H_.directory&&V_.push(`port ${H_.port} is now serving ${z_.directory}`):V_.push("process is alive but not answering /health"):V_.push("recorded process is gone \u2014 run `invariant ui stop` to clean up"),{directory:H_.directory,port:H_.port,pid:H_.pid,url:(0,C_.uiUrl)(H_.port),startedAt:H_.startedAt,cliVersion:H_.cliVersion,running:z_!==void 0&&z_.directory===H_.directory,current:H_.directory===M_.directory,uptimeSeconds:z_?.uptimeSeconds,warnings:V_}}));return j_.sort((H_,V_)=>Number(V_.current)-Number(H_.current)||H_.port-V_.port),{instances:j_,currentDirectory:M_.directory,anyRunning:j_.some(H_=>H_.running),registryPath:this.registry.path()}}};return getUiStatus_query.GetUiStatusQueryHandler=R_,getUiStatus_query.GetUiStatusQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.UiRegistryRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.UiDaemonProcessGateway)),fd(3,(0,dd.Inject)(Bd.UiClientGateway)),Xf("design:paramtypes",[Rd.UiRegistryRepository,Bd.ProjectGateway,Bd.UiDaemonProcessGateway,Bd.UiClientGateway])],R_),getUiStatus_query}e(requireGetUiStatus_query,"requireGetUiStatus_query");var hasRequiredGetUiStatus;function requireGetUiStatus(){return hasRequiredGetUiStatus||(hasRequiredGetUiStatus=1,(function(t){var Xf=getUiStatus&&getUiStatus.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getUiStatus&&getUiStatus.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetUiStatus_query(),t)})(getUiStatus)),getUiStatus}e(requireGetUiStatus,"requireGetUiStatus");var getProjectSummary={},getProjectSummary_query={},hasRequiredGetProjectSummary_query;function requireGetProjectSummary_query(){if(hasRequiredGetProjectSummary_query)return getProjectSummary_query;hasRequiredGetProjectSummary_query=1;var t=getProjectSummary_query&&getProjectSummary_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getProjectSummary_query&&getProjectSummary_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getProjectSummary_query&&getProjectSummary_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getProjectSummary_query,"__esModule",{value:!0}),getProjectSummary_query.GetProjectSummaryQueryHandler=getProjectSummary_query.GetProjectSummaryQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3();class C_{static{e(this,"GetProjectSummaryQuery")}}getProjectSummary_query.GetProjectSummaryQuery=C_;let F_=class{static{e(this,"GetProjectSummaryQueryHandler")}constructor($_,N_){this.sessions=$_,this.projectGateway=N_}async execute(){const $_=await this.projectGateway.resolve(this.sessions.directory);return{directory:$_.directory,name:$_.name,sessionsDirectory:this.sessions.sessionsDirectory(),packageCount:$_.packageCount,activeItemCount:$_.activeItemCount,targets:$_.targets}}};return getProjectSummary_query.GetProjectSummaryQueryHandler=F_,getProjectSummary_query.GetProjectSummaryQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.ProjectGateway])],F_),getProjectSummary_query}e(requireGetProjectSummary_query,"requireGetProjectSummary_query");var hasRequiredGetProjectSummary;function requireGetProjectSummary(){return hasRequiredGetProjectSummary||(hasRequiredGetProjectSummary=1,(function(t){var Xf=getProjectSummary&&getProjectSummary.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getProjectSummary&&getProjectSummary.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetProjectSummary_query(),t)})(getProjectSummary)),getProjectSummary}e(requireGetProjectSummary,"requireGetProjectSummary");var listReviews={},listReviews_query={},hasRequiredListReviews_query;function requireListReviews_query(){if(hasRequiredListReviews_query)return listReviews_query;hasRequiredListReviews_query=1;var t=listReviews_query&&listReviews_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=listReviews_query&&listReviews_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=listReviews_query&&listReviews_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(listReviews_query,"__esModule",{value:!0}),listReviews_query.ListReviewsQueryHandler=listReviews_query.ListReviewsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireReview$2();class C_{static{e(this,"ListReviewsQuery")}}listReviews_query.ListReviewsQuery=C_;let F_=class{static{e(this,"ListReviewsQueryHandler")}constructor($_){this.reviews=$_}async execute(){const[$_,N_]=await Promise.all([this.reviews.list(),this.reviews.reviewDirectory()]),M_=$_.map(L_=>L_.toListItem());return{reviews:M_,directory:N_,counts:M_.reduce((L_,j_)=>(0,Bd.addCounts)(L_,j_.counts),(0,Bd.emptyCounts)()),awaitingTriage:M_.filter(L_=>L_.counts.open>0).length}}};return listReviews_query.ListReviewsQueryHandler=F_,listReviews_query.ListReviewsQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),Xf("design:paramtypes",[Rd.ReviewRepository])],F_),listReviews_query}e(requireListReviews_query,"requireListReviews_query");var hasRequiredListReviews;function requireListReviews(){return hasRequiredListReviews||(hasRequiredListReviews=1,(function(t){var Xf=listReviews&&listReviews.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listReviews&&listReviews.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListReviews_query(),t)})(listReviews)),listReviews}e(requireListReviews,"requireListReviews");var getReview={},getReview_query={},hasRequiredGetReview_query;function requireGetReview_query(){if(hasRequiredGetReview_query)return getReview_query;hasRequiredGetReview_query=1;var t=getReview_query&&getReview_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=getReview_query&&getReview_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=getReview_query&&getReview_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(getReview_query,"__esModule",{value:!0}),getReview_query.GetReviewQueryHandler=getReview_query.GetReviewQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3();class Bd{static{e(this,"GetReviewQuery")}constructor(R_){this.slug=R_}}getReview_query.GetReviewQuery=Bd;let C_=class{static{e(this,"GetReviewQueryHandler")}constructor(R_){this.reviews=R_}async execute(R_){return(await this.reviews.findOrFail(R_.slug)).toDetail()}};return getReview_query.GetReviewQueryHandler=C_,getReview_query.GetReviewQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),Xf("design:paramtypes",[Rd.ReviewRepository])],C_),getReview_query}e(requireGetReview_query,"requireGetReview_query");var hasRequiredGetReview;function requireGetReview(){return hasRequiredGetReview||(hasRequiredGetReview=1,(function(t){var Xf=getReview&&getReview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getReview&&getReview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetReview_query(),t)})(getReview)),getReview}e(requireGetReview,"requireGetReview");var getGitStatus={},getGitStatus_query={},hasRequiredGetGitStatus_query;function requireGetGitStatus_query(){if(hasRequiredGetGitStatus_query)return getGitStatus_query;hasRequiredGetGitStatus_query=1;var t=getGitStatus_query&&getGitStatus_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getGitStatus_query&&getGitStatus_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getGitStatus_query&&getGitStatus_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getGitStatus_query,"__esModule",{value:!0}),getGitStatus_query.GetGitStatusQueryHandler=getGitStatus_query.GetGitStatusQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGit();class C_{static{e(this,"GetGitStatusQuery")}}getGitStatus_query.GetGitStatusQuery=C_;let F_=class{static{e(this,"GetGitStatusQueryHandler")}constructor($_,N_){this.git=$_,this.sessions=N_}async execute(){const $_=this.sessions.directory,N_=e(z_=>({isRepository:!1,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:z_}),"unavailable");if(!await this.git.isRepository($_))return N_("This project is not a git repository.");const M_=await this.git.currentBranch($_);if(!M_)return{isRepository:!0,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:"HEAD is detached \u2014 check out a branch to review it."};const L_=await this.git.resolveBaseBranch($_),j_=L_?await this.git.mergeBase($_,L_):await this.git.rootCommit($_);if(!j_)return{isRepository:!0,branch:M_,baseBranch:L_,hasStagedChanges:!1,changedFileCount:0,canReview:!1,reason:"No base commit to diff against."};const[H_,V_,J_]=await Promise.all([this.git.headSha($_),this.git.changedFiles($_,j_),this.git.hasStagedChanges($_)]);return{isRepository:!0,branch:M_,baseBranch:L_,headSha:H_,baseSha:j_,hasStagedChanges:J_,changedFileCount:V_.length,canReview:V_.length>0,reason:V_.length>0?void 0:"Nothing to review \u2014 commit or stage your changes first."}}};return getGitStatus_query.GetGitStatusQueryHandler=F_,getGitStatus_query.GetGitStatusQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Bd.GitGateway)),fd(1,(0,dd.Inject)(Rd.SessionRepository)),Xf("design:paramtypes",[Bd.GitGateway,Rd.SessionRepository])],F_),getGitStatus_query}e(requireGetGitStatus_query,"requireGetGitStatus_query");var hasRequiredGetGitStatus;function requireGetGitStatus(){return hasRequiredGetGitStatus||(hasRequiredGetGitStatus=1,(function(t){var Xf=getGitStatus&&getGitStatus.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getGitStatus&&getGitStatus.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetGitStatus_query(),t)})(getGitStatus)),getGitStatus}e(requireGetGitStatus,"requireGetGitStatus");var getPackageOverview={},getPackageOverview_query={},hasRequiredGetPackageOverview_query;function requireGetPackageOverview_query(){if(hasRequiredGetPackageOverview_query)return getPackageOverview_query;hasRequiredGetPackageOverview_query=1;var t=getPackageOverview_query&&getPackageOverview_query.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=getPackageOverview_query&&getPackageOverview_query.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)},fd=getPackageOverview_query&&getPackageOverview_query.__param||function(R_,$_){return function(N_,M_){$_(N_,M_,R_)}};Object.defineProperty(getPackageOverview_query,"__esModule",{value:!0}),getPackageOverview_query.GetPackageOverviewQueryHandler=getPackageOverview_query.GetPackageOverviewQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3();class C_{static{e(this,"GetPackageOverviewQuery")}}getPackageOverview_query.GetPackageOverviewQuery=C_;let F_=class{static{e(this,"GetPackageOverviewQueryHandler")}constructor($_,N_,M_){this.sessions=$_,this.projectGateway=N_,this.catalog=M_}async execute(){const $_=await this.projectGateway.resolve(this.sessions.directory),N_=$_.initialized?await this.catalog.inspect($_.directory):[];return{directory:$_.directory,name:$_.name,initialized:$_.initialized,canonicalDir:$_.canonicalDir,targets:$_.targets,packages:N_,totals:{packages:N_.length,activeItems:N_.reduce((M_,L_)=>M_+L_.activeCount,0),totalItems:N_.reduce((M_,L_)=>M_+L_.totalCount,0)}}}};return getPackageOverview_query.GetPackageOverviewQueryHandler=F_,getPackageOverview_query.GetPackageOverviewQueryHandler=F_=t([(0,pd.QueryHandler)(C_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.ProjectGateway)),fd(2,(0,dd.Inject)(Bd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.ProjectGateway,Bd.PackageCatalogGateway])],F_),getPackageOverview_query}e(requireGetPackageOverview_query,"requireGetPackageOverview_query");var hasRequiredGetPackageOverview;function requireGetPackageOverview(){return hasRequiredGetPackageOverview||(hasRequiredGetPackageOverview=1,(function(t){var Xf=getPackageOverview&&getPackageOverview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPackageOverview&&getPackageOverview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPackageOverview_query(),t)})(getPackageOverview)),getPackageOverview}e(requireGetPackageOverview,"requireGetPackageOverview");var getPackageDetail={},getPackageDetail_query={},_package$1={},identifiers={},hasRequiredIdentifiers;function requireIdentifiers(){if(hasRequiredIdentifiers)return identifiers;hasRequiredIdentifiers=1,Object.defineProperty(identifiers,"__esModule",{value:!0}),identifiers.isPackageName=C_,identifiers.isItemName=F_,identifiers.isGitHubSegment=R_,identifiers.isGitRef=$_,identifiers.isPackageVersion=N_,identifiers.isPackageItemType=M_;const t=requireDomain$2(),Xf=/^@?[a-z0-9][a-z0-9._-]*(\/[a-z0-9][a-z0-9._-]*)?$/,fd=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,pd=/^[A-Za-z0-9][A-Za-z0-9._/-]*$/,dd=/^[A-Za-z0-9][A-Za-z0-9._+-]*$/,Rd=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function Bd(L_){return typeof L_=="string"&&L_.length>0&&L_.length<=214&&!L_.startsWith("-")&&!L_.includes("..")&&!L_.includes("\\")&&!/\s/.test(L_)}e(Bd,"isPlausibleArgument");function C_(L_){return!Bd(L_)||L_.includes("/")&&!L_.startsWith("@")?!1:Xf.test(L_)}e(C_,"isPackageName");function F_(L_){return Bd(L_)&&!L_.includes("/")&&fd.test(L_)}e(F_,"isItemName");function R_(L_){return Bd(L_)&&!L_.includes("/")&&Rd.test(L_)}e(R_,"isGitHubSegment");function $_(L_){return Bd(L_)&&pd.test(L_)}e($_,"isGitRef");function N_(L_){return Bd(L_)&&!L_.includes("/")&&dd.test(L_)}e(N_,"isPackageVersion");function M_(L_){return t.PACKAGE_ITEM_TYPES.includes(L_)}return e(M_,"isPackageItemType"),identifiers}e(requireIdentifiers,"requireIdentifiers");var hasRequired_package$1;function require_package$2(){return hasRequired_package$1||(hasRequired_package$1=1,(function(t){var Xf=_package$1&&_package$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=_package$1&&_package$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireIdentifiers(),t)})(_package$1)),_package$1}e(require_package$2,"require_package$2");var hasRequiredGetPackageDetail_query;function requireGetPackageDetail_query(){if(hasRequiredGetPackageDetail_query)return getPackageDetail_query;hasRequiredGetPackageDetail_query=1;var t=getPackageDetail_query&&getPackageDetail_query.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=getPackageDetail_query&&getPackageDetail_query.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)},fd=getPackageDetail_query&&getPackageDetail_query.__param||function(N_,M_){return function(L_,j_){M_(L_,j_,N_)}};Object.defineProperty(getPackageDetail_query,"__esModule",{value:!0}),getPackageDetail_query.GetPackageDetailQueryHandler=getPackageDetail_query.GetPackageDetailQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=require_package$2();class R_{static{e(this,"GetPackageDetailQuery")}constructor(M_){this.packageName=M_}}getPackageDetail_query.GetPackageDetailQuery=R_;let $_=class{static{e(this,"GetPackageDetailQueryHandler")}constructor(M_,L_){this.sessions=M_,this.catalog=L_}async execute(M_){if(!(0,F_.isPackageName)(M_.packageName))throw new C_.InvalidPackageRequestError(`"${M_.packageName}" is not a valid package name.`);const L_=await this.catalog.inspectOne(this.sessions.directory,M_.packageName);if(!L_)throw new C_.PackageNotCachedError(M_.packageName);return L_}};return getPackageDetail_query.GetPackageDetailQueryHandler=$_,getPackageDetail_query.GetPackageDetailQueryHandler=$_=t([(0,pd.QueryHandler)(R_),fd(0,(0,dd.Inject)(Rd.SessionRepository)),fd(1,(0,dd.Inject)(Bd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.SessionRepository,Bd.PackageCatalogGateway])],$_),getPackageDetail_query}e(requireGetPackageDetail_query,"requireGetPackageDetail_query");var hasRequiredGetPackageDetail;function requireGetPackageDetail(){return hasRequiredGetPackageDetail||(hasRequiredGetPackageDetail=1,(function(t){var Xf=getPackageDetail&&getPackageDetail.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPackageDetail&&getPackageDetail.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPackageDetail_query(),t)})(getPackageDetail)),getPackageDetail}e(requireGetPackageDetail,"requireGetPackageDetail");var listRegistryPackages={},listRegistryPackages_query={},hasRequiredListRegistryPackages_query;function requireListRegistryPackages_query(){if(hasRequiredListRegistryPackages_query)return listRegistryPackages_query;hasRequiredListRegistryPackages_query=1;var t=listRegistryPackages_query&&listRegistryPackages_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=listRegistryPackages_query&&listRegistryPackages_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=listRegistryPackages_query&&listRegistryPackages_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(listRegistryPackages_query,"__esModule",{value:!0}),listRegistryPackages_query.ListRegistryPackagesQueryHandler=listRegistryPackages_query.ListRegistryPackagesQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requireGateways$3();class Bd{static{e(this,"ListRegistryPackagesQuery")}}listRegistryPackages_query.ListRegistryPackagesQuery=Bd;let C_=class{static{e(this,"ListRegistryPackagesQueryHandler")}constructor(R_){this.catalog=R_}async execute(){const R_=await this.catalog.listRegistry();return{packages:R_,unavailable:R_.length===0}}};return listRegistryPackages_query.ListRegistryPackagesQueryHandler=C_,listRegistryPackages_query.ListRegistryPackagesQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.PackageCatalogGateway)),Xf("design:paramtypes",[Rd.PackageCatalogGateway])],C_),listRegistryPackages_query}e(requireListRegistryPackages_query,"requireListRegistryPackages_query");var hasRequiredListRegistryPackages;function requireListRegistryPackages(){return hasRequiredListRegistryPackages||(hasRequiredListRegistryPackages=1,(function(t){var Xf=listRegistryPackages&&listRegistryPackages.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=listRegistryPackages&&listRegistryPackages.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListRegistryPackages_query(),t)})(listRegistryPackages)),listRegistryPackages}e(requireListRegistryPackages,"requireListRegistryPackages");var getPublisherSettings={},getPublisherSettings_query={},codeHost={},gitlabRemote={},hasRequiredGitlabRemote;function requireGitlabRemote(){if(hasRequiredGitlabRemote)return gitlabRemote;hasRequiredGitlabRemote=1,Object.defineProperty(gitlabRemote,"__esModule",{value:!0}),gitlabRemote.parseGitLabRemote=Xf,gitlabRemote.normalizeProjectPath=fd,gitlabRemote.sameRemote=pd,gitlabRemote.blobUrl=dd;const t=/^[A-Za-z0-9][A-Za-z0-9._-]*$/;function Xf(R_){const $_=R_.trim();if($_.length===0)return;const N_=$_.includes("://")?Rd($_):Bd($_);if(!N_)return;const M_=fd(N_.path);if(M_)return{host:N_.host,projectPath:M_}}e(Xf,"parseGitLabRemote");function fd(R_){const $_=R_.trim().replace(/\\/g,"/").replace(/^\/+/,"").replace(/\/+$/,"").replace(/\.git$/i,"");if($_.length===0)return;const N_=$_.split("/");if(!(N_.length<2)&&N_.every(M_=>t.test(M_)))return N_.join("/")}e(fd,"normalizeProjectPath");function pd(R_,$_){if(R_.trim()===$_.trim())return!0;const N_=Xf(R_),M_=Xf($_);return!N_||!M_?!1:N_.host===M_.host&&N_.projectPath===M_.projectPath}e(pd,"sameRemote");function dd(R_,$_,N_,M_){return`${R_.replace(/\/+$/,"")}/${$_}/-/blob/${N_}/${M_.replace(/^\/+/,"")}`}e(dd,"blobUrl");function Rd(R_){const $_=R_.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/([^/]+)(\/.*)?$/);if(!$_)return;const N_=$_[1].toLowerCase(),M_=$_[2],L_=$_[3]??"",j_=M_.includes("@")?M_.slice(M_.lastIndexOf("@")+1):M_,[H_,V_]=C_(j_),J_=F_(H_);if(J_.length===0)return;const z_=N_==="http"?"http":"https",Y_=z_==="http"||N_==="https"?V_:void 0;return{host:`${z_}://${J_}${Y_?`:${Y_}`:""}`,path:L_}}e(Rd,"fromSchemeUrl");function Bd(R_){const $_=R_.indexOf(":");if($_<=0)return;const N_=R_.slice(0,$_),M_=R_.slice($_+1),L_=N_.includes("@")?N_.slice(N_.lastIndexOf("@")+1):N_,j_=F_(L_);if(!(j_.length===0||!j_.includes(".")))return{host:`https://${j_}`,path:M_}}e(Bd,"fromScpForm");function C_(R_){const $_=R_.lastIndexOf(":");if($_===-1)return[R_,void 0];const N_=R_.slice($_+1);return/^\d+$/.test(N_)?[R_.slice(0,$_),N_]:[R_,void 0]}e(C_,"splitPort");function F_(R_){const $_=R_.toLowerCase();if(!$_.includes("-"))return $_;const N_=$_.slice(0,$_.lastIndexOf("-"));return N_.includes(".")?N_:$_}return e(F_,"stripSshAlias"),gitlabRemote}e(requireGitlabRemote,"requireGitlabRemote");var hasRequiredCodeHost;function requireCodeHost(){return hasRequiredCodeHost||(hasRequiredCodeHost=1,(function(t){var Xf=codeHost&&codeHost.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=codeHost&&codeHost.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGitlabRemote(),t)})(codeHost)),codeHost}e(requireCodeHost,"requireCodeHost");var hasRequiredGetPublisherSettings_query;function requireGetPublisherSettings_query(){if(hasRequiredGetPublisherSettings_query)return getPublisherSettings_query;hasRequiredGetPublisherSettings_query=1;var t=getPublisherSettings_query&&getPublisherSettings_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getPublisherSettings_query&&getPublisherSettings_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getPublisherSettings_query&&getPublisherSettings_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getPublisherSettings_query,"__esModule",{value:!0}),getPublisherSettings_query.GetPublisherSettingsQueryHandler=getPublisherSettings_query.GetPublisherSettingsQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGit(),C_=requireCodeHost();class F_{static{e(this,"GetPublisherSettingsQuery")}}getPublisherSettings_query.GetPublisherSettingsQuery=F_;let R_=class{static{e(this,"GetPublisherSettingsQueryHandler")}constructor(N_,M_){this.settings=N_,this.git=M_}async execute(){const N_=this.settings.directory,[M_,L_,j_]=await Promise.all([this.settings.read(),this.settings.isProtectedFromGit(),this.git.remoteUrl(N_,"origin")]),H_=j_?(0,C_.parseGitLabRemote)(j_):void 0,V_=j_?{url:j_,host:H_?.host,projectPath:H_?.projectPath}:void 0;if(!M_){const z_=!!(process.env.GITLAB_TOKEN??process.env.GITLAB_PRIVATE_TOKEN);return{publisher:"gitlab",configured:z_&&H_!==void 0,source:z_?"environment":"none",host:H_?.host,projectPath:H_?.projectPath,projectPathSource:H_?"origin":void 0,projectUrl:H_?`${H_.host}/${H_.projectPath}`:void 0,storedAt:this.settings.relativePath(),gitignored:L_,remote:V_,directory:N_}}const J_=j_&&M_.remoteUrl.length>0&&!(0,C_.sameRemote)(M_.remoteUrl,j_)?{storedRemote:M_.remoteUrl,currentRemote:j_}:void 0;return{publisher:M_.publisher,configured:!0,source:"stored",host:M_.host,projectPath:M_.projectPath,projectPathSource:M_.projectPathSource,projectUrl:`${M_.host.replace(/\/+$/,"")}/${M_.projectPath}`,tokenHint:M_.token.slice(-4),storedAt:this.settings.relativePath(),gitignored:L_,updatedAt:M_.updatedAt,remote:V_,mismatch:J_,directory:N_}}};return getPublisherSettings_query.GetPublisherSettingsQueryHandler=R_,getPublisherSettings_query.GetPublisherSettingsQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.PublisherSettingsRepository)),fd(1,(0,dd.Inject)(Bd.GitGateway)),Xf("design:paramtypes",[Rd.PublisherSettingsRepository,Bd.GitGateway])],R_),getPublisherSettings_query}e(requireGetPublisherSettings_query,"requireGetPublisherSettings_query");var hasRequiredGetPublisherSettings;function requireGetPublisherSettings(){return hasRequiredGetPublisherSettings||(hasRequiredGetPublisherSettings=1,(function(t){var Xf=getPublisherSettings&&getPublisherSettings.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPublisherSettings&&getPublisherSettings.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPublisherSettings_query(),t)})(getPublisherSettings)),getPublisherSettings}e(requireGetPublisherSettings,"requireGetPublisherSettings");var verifyPublisher={},verifyPublisher_query={},hasRequiredVerifyPublisher_query;function requireVerifyPublisher_query(){if(hasRequiredVerifyPublisher_query)return verifyPublisher_query;hasRequiredVerifyPublisher_query=1;var t=verifyPublisher_query&&verifyPublisher_query.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=verifyPublisher_query&&verifyPublisher_query.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)},fd=verifyPublisher_query&&verifyPublisher_query.__param||function(F_,R_){return function($_,N_){R_($_,N_,F_)}};Object.defineProperty(verifyPublisher_query,"__esModule",{value:!0}),verifyPublisher_query.VerifyPublisherQueryHandler=verifyPublisher_query.VerifyPublisherQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requireGateways$3();class Bd{static{e(this,"VerifyPublisherQuery")}}verifyPublisher_query.VerifyPublisherQuery=Bd;let C_=class{static{e(this,"VerifyPublisherQueryHandler")}constructor(R_){this.publisher=R_}async execute(){return{...await this.publisher.verify(),publisher:this.publisher.id}}};return verifyPublisher_query.VerifyPublisherQueryHandler=C_,verifyPublisher_query.VerifyPublisherQueryHandler=C_=t([(0,pd.QueryHandler)(Bd),fd(0,(0,dd.Inject)(Rd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewPublisherGateway])],C_),verifyPublisher_query}e(requireVerifyPublisher_query,"requireVerifyPublisher_query");var hasRequiredVerifyPublisher;function requireVerifyPublisher(){return hasRequiredVerifyPublisher||(hasRequiredVerifyPublisher=1,(function(t){var Xf=verifyPublisher&&verifyPublisher.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=verifyPublisher&&verifyPublisher.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireVerifyPublisher_query(),t)})(verifyPublisher)),verifyPublisher}e(requireVerifyPublisher,"requireVerifyPublisher");var getPublishPreflight={},getPublishPreflight_query={},publishReview={},publishReview_command={},hasRequiredPublishReview_command;function requirePublishReview_command(){if(hasRequiredPublishReview_command)return publishReview_command;hasRequiredPublishReview_command=1;var t=publishReview_command&&publishReview_command.__decorate||function(J_,z_,Y_,Q_){var Z_=arguments.length,L0=Z_<3?z_:Q_===null?Q_=Object.getOwnPropertyDescriptor(z_,Y_):Q_,j0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L0=Reflect.decorate(J_,z_,Y_,Q_);else for(var Y0=J_.length-1;Y0>=0;Y0--)(j0=J_[Y0])&&(L0=(Z_<3?j0(L0):Z_>3?j0(z_,Y_,L0):j0(z_,Y_))||L0);return Z_>3&&L0&&Object.defineProperty(z_,Y_,L0),L0},Xf=publishReview_command&&publishReview_command.__metadata||function(J_,z_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(J_,z_)},fd=publishReview_command&&publishReview_command.__param||function(J_,z_){return function(Y_,Q_){z_(Y_,Q_,J_)}};Object.defineProperty(publishReview_command,"__esModule",{value:!0}),publishReview_command.PublishReviewCommandHandler=publishReview_command.PublishReviewCommand=void 0,publishReview_command.publishSummary=M_,publishReview_command.openRunIds=L_,publishReview_command.allStagedLanded=j_,publishReview_command.buildPublishInput=H_;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requireDomain$1(),F_=requireReview$2(),R_=requireSession$1();class $_{static{e(this,"PublishReviewCommand")}constructor(z_,Y_={}){this.slug=z_,this.options=Y_}}publishReview_command.PublishReviewCommand=$_;let N_=class{static{e(this,"PublishReviewCommandHandler")}constructor(z_,Y_,Q_){this.reviews=z_,this.sessions=Y_,this.publisher=Q_}async execute(z_){const Y_=await this.reviews.findOrFail(z_.slug),Q_=H_(Y_),Z_=await this.publisher.publish(Q_,z_.options);if(Z_.dryRun)return{...Z_,slug:Y_.slug,publisher:this.publisher.id,review:Y_.toDetail()};const L0=V_(Y_,Z_),j0=L_(Y_),Y0=Z_.discussionIds,Dv=Object.keys(Y0).length>0||L0.length>0||j0.length>0?await this.reviews.markPublished({slug:Y_.slug,references:Y0,publishedRunIds:L0,triagedRunIds:j0,at:(0,R_.nowIso)()}):Y_,Mv=j_(Y_,L0)?await this.closeSession(Y_,Z_):void 0;return{...Z_,slug:Y_.slug,publisher:this.publisher.id,review:Dv.toDetail(),session:Mv}}async closeSession(z_,Y_){const Q_=z_.document.sessionId;if(Q_)try{const Z_=await this.sessions.find(Q_);return!Z_||Z_.status!==R_.SessionStatus.Review?void 0:(await this.sessions.setStatus({sessionId:Q_,status:R_.SessionStatus.Executed,summary:M_(Y_),at:(0,R_.nowIso)()})).toDetail()}catch{return}}};publishReview_command.PublishReviewCommandHandler=N_,publishReview_command.PublishReviewCommandHandler=N_=t([(0,pd.CommandHandler)($_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),fd(1,(0,dd.Inject)(Rd.SessionRepository)),fd(2,(0,dd.Inject)(Bd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewRepository,Rd.SessionRepository,Bd.ReviewPublisherGateway])],N_);function M_(J_){return`Published ${J_.created.length+J_.updated.length+J_.skipped.length} comment(s) to GitLab !${J_.mergeRequestIid}`}e(M_,"publishSummary");function L_(J_){return J_.document.runs.filter(z_=>z_.status===F_.ReviewRunStatus.Open).map(z_=>z_.id)}e(L_,"openRunIds");function j_(J_,z_){const Y_=J_.document.runs.filter(Q_=>Q_.comments.some(Z_=>Z_.isStaged));return Y_.length>0&&Y_.every(Q_=>z_.includes(Q_.id))}e(j_,"allStagedLanded");function H_(J_){if(J_.counts.open>0)throw new F_.ReviewNotTriagedError(J_.slug,J_.counts.open);if(!(0,F_.isPublishable)(J_.document.meta))throw new C_.PublisherNotConfiguredError("not-publishable",`Review "${J_.slug}" is missing the commit shas a discussion needs to anchor to.`);const z_=J_.document.stagedComments;if(z_.length===0)throw new C_.PublisherNotConfiguredError("nothing-staged",`Review "${J_.slug}" has no staged comments \u2014 there is nothing to publish.`);const Y_=J_.document.meta;return{slug:J_.slug,branch:Y_.branch,baseSha:Y_.baseSha,startSha:Y_.startSha,headSha:Y_.headSha,summary:J_.document.latestRun?.summary??"",comments:z_.map(Q_=>({id:Q_.id,severity:Q_.severity,category:Q_.category,file:Q_.file,line:Q_.line,endLine:Q_.endLine,title:Q_.title,body:Q_.body,suggestion:Q_.suggestion,suggestionLang:Q_.suggestionLang,hostReference:Q_.discussion}))}}e(H_,"buildPublishInput");function V_(J_,z_){return J_.document.runs.filter(Y_=>{const Q_=Y_.comments.filter(Z_=>Z_.isStaged);return Q_.length===0?!1:Q_.every(Z_=>z_.discussionIds[Z_.id]!==void 0||z_.skipped.includes(Z_.id))}).map(Y_=>Y_.id)}return e(V_,"fullyPublishedRuns"),publishReview_command}e(requirePublishReview_command,"requirePublishReview_command");var hasRequiredPublishReview;function requirePublishReview(){return hasRequiredPublishReview||(hasRequiredPublishReview=1,(function(t){var Xf=publishReview&&publishReview.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=publishReview&&publishReview.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requirePublishReview_command(),t)})(publishReview)),publishReview}e(requirePublishReview,"requirePublishReview");var hasRequiredGetPublishPreflight_query;function requireGetPublishPreflight_query(){if(hasRequiredGetPublishPreflight_query)return getPublishPreflight_query;hasRequiredGetPublishPreflight_query=1;var t=getPublishPreflight_query&&getPublishPreflight_query.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=getPublishPreflight_query&&getPublishPreflight_query.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)},fd=getPublishPreflight_query&&getPublishPreflight_query.__param||function($_,N_){return function(M_,L_){N_(M_,L_,$_)}};Object.defineProperty(getPublishPreflight_query,"__esModule",{value:!0}),getPublishPreflight_query.GetPublishPreflightQueryHandler=getPublishPreflight_query.GetPublishPreflightQuery=void 0;const pd=requireCqrs(),dd=requireCommon$1(),Rd=requirePersistence$3(),Bd=requireGateways$3(),C_=requirePublishReview();class F_{static{e(this,"GetPublishPreflightQuery")}constructor(N_,M_){this.slug=N_,this.mergeRequestIid=M_}}getPublishPreflight_query.GetPublishPreflightQuery=F_;let R_=class{static{e(this,"GetPublishPreflightQueryHandler")}constructor(N_,M_){this.reviews=N_,this.publisher=M_}async execute(N_){const M_=await this.reviews.findOrFail(N_.slug);return{...await this.publisher.preflight((0,C_.buildPublishInput)(M_),{mergeRequestIid:N_.mergeRequestIid}),slug:M_.slug}}};return getPublishPreflight_query.GetPublishPreflightQueryHandler=R_,getPublishPreflight_query.GetPublishPreflightQueryHandler=R_=t([(0,pd.QueryHandler)(F_),fd(0,(0,dd.Inject)(Rd.ReviewRepository)),fd(1,(0,dd.Inject)(Bd.ReviewPublisherGateway)),Xf("design:paramtypes",[Rd.ReviewRepository,Bd.ReviewPublisherGateway])],R_),getPublishPreflight_query}e(requireGetPublishPreflight_query,"requireGetPublishPreflight_query");var hasRequiredGetPublishPreflight;function requireGetPublishPreflight(){return hasRequiredGetPublishPreflight||(hasRequiredGetPublishPreflight=1,(function(t){var Xf=getPublishPreflight&&getPublishPreflight.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=getPublishPreflight&&getPublishPreflight.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGetPublishPreflight_query(),t)})(getPublishPreflight)),getPublishPreflight}e(requireGetPublishPreflight,"requireGetPublishPreflight");var hasRequiredQueries$1;function requireQueries$1(){return hasRequiredQueries$1||(hasRequiredQueries$1=1,(function(t){var Xf=queries$1&&queries$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=queries$1&&queries$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireListSessions(),t),fd(requireGetSession(),t),fd(requireGetUiStatus(),t),fd(requireGetProjectSummary(),t),fd(requireListReviews(),t),fd(requireGetReview(),t),fd(requireGetGitStatus(),t),fd(requireGetPackageOverview(),t),fd(requireGetPackageDetail(),t),fd(requireListRegistryPackages(),t),fd(requireGetPublisherSettings(),t),fd(requireVerifyPublisher(),t),fd(requireGetPublishPreflight(),t)})(queries$1)),queries$1}e(requireQueries$1,"requireQueries$1");var sourceReader={},hasRequiredSourceReader;function requireSourceReader(){if(hasRequiredSourceReader)return sourceReader;hasRequiredSourceReader=1,Object.defineProperty(sourceReader,"__esModule",{value:!0}),sourceReader.readSourceWindow=C_;const t=require$$1$4,Xf=require$$2$3,fd=requireDomain$1(),pd=400,dd=64*1024,Rd=12,Bd=120;async function C_(F_,R_,$_,N_=Rd){const M_=R_.replace(/\\/g,"/").replace(/^\.\//,"");if(M_.length===0||M_.startsWith("/")||/^[a-zA-Z]:\//.test(M_))throw new fd.InvalidSessionRequestError("A project-relative path is required.");if(M_.split("/").includes(".."))throw new fd.InvalidSessionRequestError("The path must stay inside the project.");const L_=await t.realpath(F_),j_=Xf.resolve(L_,...M_.split("/"));let H_;try{H_=await t.realpath(j_)}catch{throw new fd.SessionNotFoundError(M_)}if(H_!==L_&&!H_.startsWith(`${L_}${Xf.sep}`))throw new fd.InvalidSessionRequestError("The path resolves outside the project.");const V_=await t.stat(H_).catch(()=>null);if(!V_||!V_.isFile())throw new fd.SessionNotFoundError(M_);const z_=(await t.readFile(H_,"utf-8")).split(`
1073
1073
  `),Y_=z_.length,Q_=Math.min(Math.max(Math.trunc(N_)||Rd,1),Bd),Z_=$_===void 0?1:Math.min(Math.max(Math.trunc($_),1),Y_),L0=$_===void 0?1:Math.max(Z_-Q_,1),j0=Math.min($_===void 0?pd:Z_+Q_,Y_,L0+pd-1),Y0=z_.slice(L0-1,j0);let Z0=0;const Dv=[];for(const Mv of Y0){if(Z0+=Buffer.byteLength(Mv)+1,Z0>dd)break;Dv.push(Mv)}return{path:M_,startLine:L0,endLine:L0+Dv.length-1,totalLines:Y_,lines:Dv,truncated:Dv.length<Y0.length||j0<Y_}}return e(C_,"readSourceWindow"),sourceReader}e(requireSourceReader,"requireSourceReader");var security={},hasRequiredSecurity;function requireSecurity(){if(hasRequiredSecurity)return security;hasRequiredSecurity=1,Object.defineProperty(security,"__esModule",{value:!0}),security.checkRequest=Xf,security.readBearerToken=fd;const t=e(pd=>[`127.0.0.1:${pd}`,`localhost:${pd}`,`[::1]:${pd}`],"ALLOWED_HOSTS");function Xf(pd,dd,Rd){const Bd=pd.headers.host;if(!Bd||!t(dd.port).includes(Bd.toLowerCase()))return{ok:!1,status:403,message:"Host not allowed."};const C_=pd.headers.origin;return C_!==void 0&&!t(dd.port).map(R_=>`http://${R_}`).includes(C_.toLowerCase())?{ok:!1,status:403,message:"Cross-origin request rejected."}:Rd.requireToken?fd(pd)!==dd.token?{ok:!1,status:401,message:"Missing or invalid token."}:{ok:!0}:{ok:!0}}e(Xf,"checkRequest");function fd(pd){const dd=pd.headers.authorization;return dd?.startsWith("Bearer ")?dd.slice(7).trim():new URL(pd.url??"/","http://127.0.0.1").searchParams.get("token")??void 0}return e(fd,"readBearerToken"),security}e(requireSecurity,"requireSecurity");var uiLogger={},hasRequiredUiLogger;function requireUiLogger(){if(hasRequiredUiLogger)return uiLogger;hasRequiredUiLogger=1,Object.defineProperty(uiLogger,"__esModule",{value:!0}),uiLogger.uiLog=t;function t(Xf){process.stdout.write(`${JSON.stringify({ts:new Date().toISOString(),...Xf})}
1074
1074
  `)}return e(t,"uiLog"),uiLogger}e(requireUiLogger,"requireUiLogger");var hasRequiredApiRouter;function requireApiRouter(){if(hasRequiredApiRouter)return apiRouter;hasRequiredApiRouter=1,Object.defineProperty(apiRouter,"__esModule",{value:!0}),apiRouter.ApiRouter=void 0;const t=requireCommands$2(),Xf=requireQueries$1(),fd=requireDomain$1(),pd=requireSession$1(),dd=require_package$2(),Rd=requireReview$2(),Bd=requireGit(),C_=requireSourceReader(),F_=requireSecurity(),R_=requireUiLogger(),$_=1024*1024,N_=/^\/api\/sessions\/([^/]+)$/,M_=/^\/api\/sessions\/([^/]+)\/status$/,L_=/^\/api\/sessions\/([^/]+)\/migrate-header$/,j_=/^\/api\/sessions\/([^/]+)\/stash$/,H_=/^\/api\/sessions\/([^/]+)\/review$/,V_=/^\/api\/sessions\/([^/]+)\/parent$/,J_=/^\/api\/reviews\/([^/]+)$/,z_=/^\/api\/reviews\/([^/]+)\/comments\/([^/]+)$/,Y_=/^\/api\/reviews\/([^/]+)\/comments\/bulk$/,Q_=/^\/api\/reviews\/([^/]+)\/plan-changes$/,Z_=/^\/api\/reviews\/([^/]+)\/publish$/,L0=/^\/api\/reviews\/([^/]+)\/publish\/preflight$/,j0=/^\/api\/packages\/(.+?)$/,Y0=/^\/api\/packages\/(.+?)\/items$/;class Z0{static{e(this,"ApiRouter")}constructor(Ov,pb,bx,Kv){this.commandBus=Ov,this.queryBus=pb,this.sse=bx,this.context=Kv}async handle(Ov,pb,bx){if(Ov==="/health")return this.sendJson(bx,200,this.health()),!0;if(!Ov.startsWith("/api/"))return!1;const Kv=(0,F_.checkRequest)(pb,this.context,{requireToken:!0});if(!Kv.ok)return this.sendError(bx,Kv.status,"FORBIDDEN",Kv.message),!0;try{await this.route(Ov,pb,bx)}catch(zx){this.sendDomainError(bx,zx)}return!0}async route(Ov,pb,bx){const Kv=pb.method??"GET";if(Ov==="/api/events"&&Kv==="GET"){this.sse.subscribe(pb,bx);return}if(Ov==="/api/project"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetProjectSummaryQuery));return}if(Ov==="/api/statuses"&&Kv==="GET"){this.sendJson(bx,200,{statuses:pd.SESSION_STATUSES});return}if(Ov==="/api/shutdown"&&Kv==="POST"){this.sendJson(bx,202,{stopping:!0}),setTimeout(()=>this.context.onShutdown(),10).unref();return}if(Ov==="/api/sessions"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.ListSessionsQuery));return}if(Ov==="/api/sessions"&&Kv==="POST"){const uC=await this.readJson(pb),ux=await this.commandBus.execute(new t.CreateSessionCommand(uC.prompt??"",{context:uC.context,full:uC.full}));this.sendJson(bx,201,ux);return}if(Ov==="/api/sessions/migrate-header"&&Kv==="POST"){this.sendJson(bx,200,await this.commandBus.execute(new t.MigrateSessionHeaderCommand));return}const zx=Ov.match(M_);if(zx&&Kv==="PATCH"){const uC=this.readSessionId(zx[1]),ux=await this.readJson(pb),NS=await this.commandBus.execute(new t.SetSessionStatusCommand(uC,ux.status??"",ux.summary));this.sendJson(bx,200,NS);return}const HD=Ov.match(j_);if(HD&&Kv==="POST"){const uC=this.readSessionId(HD[1]),ux=await this.readJson(pb);if(typeof ux.body!="string")throw new fd.InvalidSessionRequestError("A `body` string is required.");const NS=await this.commandBus.execute(new t.StashSessionBodyCommand(uC,ux.body));this.sendJson(bx,201,NS);return}const ES=Ov.match(L_);if(ES&&Kv==="POST"){const uC=this.readSessionId(ES[1]),ux=await this.commandBus.execute(new t.MigrateSessionHeaderCommand(uC));this.sendJson(bx,200,ux);return}const JS=Ov.match(V_);if(JS&&Kv==="PATCH"){const uC=this.readSessionId(JS[1]),ux=await this.readJson(pb),NS=await this.commandBus.execute(new t.LinkReviewSessionCommand(uC,ux.parentSessionId??""));this.sendJson(bx,200,NS);return}const US=Ov.match(H_);if(US&&Kv==="POST"){const uC=this.readSessionId(US[1]),ux=await this.readJson(pb),NS=await this.commandBus.execute(new t.CreateReviewSessionCommand(uC,ux.base));this.sendJson(bx,201,NS);return}if(Ov==="/api/git"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetGitStatusQuery));return}if(Ov==="/api/review-vocabulary"&&Kv==="GET"){this.sendJson(bx,200,{statuses:Rd.REVIEW_COMMENT_STATUSES,severities:Rd.REVIEW_COMMENT_SEVERITIES,categories:Rd.REVIEW_COMMENT_CATEGORIES});return}if(Ov==="/api/source"&&Kv==="GET"){const uC=new URL(pb.url??"/","http://127.0.0.1").searchParams,ux=uC.get("path");if(!ux)throw new fd.InvalidSessionRequestError("A `path` query parameter is required.");const NS=await(0,C_.readSourceWindow)(this.context.directory,ux,Dv(uC.get("line")),Dv(uC.get("radius"))??void 0);this.sendJson(bx,200,NS);return}if(Ov==="/api/reviews"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.ListReviewsQuery));return}if(Ov==="/api/reviews"&&Kv==="POST"){const uC=await this.readJson(pb);if(uC.standalone!==!0&&!uC.sessionId)throw new Rd.ReviewParentRequiredError;const ux=await this.commandBus.execute(uC.standalone===!0?new t.CreateReviewSessionCommand(void 0,uC.base,!0):new t.CreateReviewSessionCommand(this.readSessionId(uC.sessionId),uC.base));this.sendJson(bx,201,ux);return}const XD=Ov.match(Y_);if(XD&&Kv==="POST"){const uC=this.readReviewSlug(XD[1]),ux=await this.readJson(pb);if(!Array.isArray(ux.ids))throw new fd.InvalidSessionRequestError("An `ids` array is required.");const NS=await this.commandBus.execute(new t.BulkUpdateReviewCommentsCommand(uC,ux.ids,ux.status??"",this.readIfMatch(pb,ux.force),ux.expectedStatus));this.sendJson(bx,200,NS);return}const TS=Ov.match(z_);if(TS&&Kv==="PATCH"){const uC=this.readReviewSlug(TS[1]),ux=decodeURIComponent(TS[2]),NS=await this.readJson(pb),iC=await this.commandBus.execute(new t.UpdateReviewCommentCommand(uC,ux,{status:NS.status,severity:NS.severity,category:NS.category,title:NS.title,body:NS.body},this.readIfMatch(pb,NS.force),NS.expectedStatus));this.sendJson(bx,200,iC);return}const GD=Ov.match(Q_);if(GD&&Kv==="POST"){const uC=this.readReviewSlug(GD[1]);this.sendJson(bx,200,await this.commandBus.execute(new t.PlanReviewChangesCommand(uC)));return}const _S=Ov.match(L0);if(_S&&Kv==="GET"){const uC=this.readReviewSlug(_S[1]),ux=Dv(new URL(pb.url??"/","http://localhost").searchParams.get("mergeRequestIid"));this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPublishPreflightQuery(uC,ux)));return}const CC=Ov.match(Z_);if(CC&&Kv==="POST"){const uC=this.readReviewSlug(CC[1]),ux=await this.readJson(pb),NS=await this.commandBus.execute(new t.PublishReviewCommand(uC,{mergeRequestIid:Number.isInteger(ux.mergeRequestIid)&&(ux.mergeRequestIid??0)>0?ux.mergeRequestIid:void 0,dryRun:ux.dryRun===!0,only:Array.isArray(ux.only)?ux.only.filter(iC=>typeof iC=="string"):void 0}));this.sendJson(bx,200,NS);return}if(Ov==="/api/settings/publisher"){if(Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPublisherSettingsQuery));return}if(Kv==="PUT"){const uC=await this.readJson(pb);await this.commandBus.execute(new t.SavePublisherSettingsCommand(uC)),this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPublisherSettingsQuery));return}if(Kv==="DELETE"){await this.commandBus.execute(new t.RemovePublisherSettingsCommand),this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPublisherSettingsQuery));return}}if(Ov==="/api/settings/publisher/test"&&Kv==="POST"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.VerifyPublisherQuery));return}const Qx=Ov.match(J_);if(Qx&&Kv==="GET"){const uC=this.readReviewSlug(Qx[1]);this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetReviewQuery(uC)));return}const jx=Ov.match(N_);if(jx){const uC=this.readSessionId(jx[1]);if(Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetSessionQuery(uC)));return}if(Kv==="PUT"){const ux=await this.readJson(pb);if(typeof ux.body!="string")throw new fd.InvalidSessionRequestError("A `body` string is required.");const NS=pb.headers["if-match"];if(!ux.force&&typeof NS!="string")throw new fd.InvalidSessionRequestError("An `If-Match` header with the loaded etag is required.");const iC=await this.commandBus.execute(new t.SaveSessionCommand(uC,ux.body,ux.force?void 0:NS,ux.force?void 0:ux.baseBody,ux.title));this.sendJson(bx,200,iC);return}if(Kv==="DELETE"){this.sendJson(bx,200,await this.commandBus.execute(new t.ArchiveSessionCommand(uC)));return}}if(Ov==="/api/packages"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPackageOverviewQuery));return}if(Ov==="/api/packages"&&Kv==="POST"){const uC=await this.readJson(pb),ux=await this.commandBus.execute(new t.InstallPackageUiCommand(uC.source,{activate:uC.activate,sync:uC.sync}));this.announcePackages(),this.sendJson(bx,201,ux);return}if(Ov==="/api/registry/packages"&&Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.ListRegistryPackagesQuery));return}if(Ov==="/api/sync"&&Kv==="POST"){const uC=await this.readJson(pb),ux=await this.commandBus.execute(new t.SyncProjectCommand({target:uC.target,check:uC.check,force:uC.force}));uC.check!==!0&&this.announcePackages(),this.sendJson(bx,200,ux);return}const LD=Ov.match(Y0);if(LD&&Kv==="POST"){const uC=this.readPackageName(LD[1]),ux=await this.readJson(pb),NS=ux.all!==void 0?{kind:"all",action:ux.all}:{kind:"items",add:ux.add??[],remove:ux.remove??[]},iC=await this.commandBus.execute(new t.ApplyPackageItemsCommand(uC,NS,{sync:ux.sync}));this.announcePackages(),this.sendJson(bx,200,iC);return}const nS=Ov.match(j0);if(nS){const uC=this.readPackageName(nS[1]);if(Kv==="GET"){this.sendJson(bx,200,await this.queryBus.execute(new Xf.GetPackageDetailQuery(uC)));return}if(Kv==="DELETE"){const ux=await this.commandBus.execute(new t.UninstallPackageUiCommand(uC));this.announcePackages(),this.sendJson(bx,200,ux);return}}this.sendError(bx,404,"NOT_FOUND",`No route for ${Kv} ${Ov}.`)}readPackageName(Ov){const pb=decodeURIComponent(Ov);if(!(0,dd.isPackageName)(pb))throw new fd.InvalidPackageRequestError(`"${pb}" is not a valid package name.`);return pb}announcePackages(){this.sse.broadcast({event:"packages.changed",data:{}})}health(){return{service:"invariant-ui",directory:this.context.directory,port:this.context.port,pid:this.context.pid,version:this.context.version,uptimeSeconds:Math.round((Date.now()-this.context.startedAtMs)/1e3)}}readReviewSlug(Ov){const pb=(0,Rd.normalizeReviewSlug)(decodeURIComponent(Ov));if(!(0,Rd.isReviewSlug)(pb))throw new fd.InvalidSessionRequestError(`"${Ov}" is not a valid review slug.`);return pb}readIfMatch(Ov,pb){if(pb)return;const bx=Ov.headers["if-match"];if(typeof bx!="string")throw new fd.InvalidSessionRequestError("An `If-Match` header with the loaded etag is required.");return bx}readSessionId(Ov){const pb=decodeURIComponent(Ov);if(!(0,pd.isSessionId)(pb))throw new fd.InvalidSessionRequestError(`"${pb}" is not a valid session id.`);return pb}readJson(Ov){return new Promise((pb,bx)=>{let Kv=0;const zx=[];Ov.on("data",HD=>{if(Kv+=HD.length,Kv>$_){bx(new fd.InvalidSessionRequestError("Request body is too large (1 MB limit).")),Ov.destroy();return}zx.push(HD)}),Ov.on("error",bx),Ov.on("end",()=>{const HD=Buffer.concat(zx).toString("utf-8");if(HD.trim().length===0){pb({});return}try{pb(JSON.parse(HD))}catch{bx(new fd.InvalidSessionRequestError("Request body is not valid JSON."))}})})}sendJson(Ov,pb,bx){const Kv=JSON.stringify(bx);Ov.writeHead(pb,{"Content-Type":"application/json; charset=utf-8","Cache-Control":"no-store","Content-Length":Buffer.byteLength(Kv)}),Ov.end(Kv)}sendError(Ov,pb,bx,Kv,zx={}){this.sendJson(Ov,pb,{error:{code:bx,message:Kv,...zx}})}sendDomainError(Ov,pb){if(!Ov.headersSent){if(pb instanceof fd.SessionNotFoundError){this.sendError(Ov,404,pb.code,pb.message);return}if(pb instanceof fd.SessionMergeConflictError){this.sendError(Ov,409,pb.code,pb.message,{expectedEtag:pb.expectedEtag,actualEtag:pb.actualEtag,currentContent:pb.currentContent,mergedPreview:pb.mergedPreview,conflictCount:pb.conflictCount});return}if(pb instanceof fd.SessionConflictError){this.sendError(Ov,409,pb.code,pb.message,{expectedEtag:pb.expectedEtag,actualEtag:pb.actualEtag,currentContent:pb.currentContent});return}if(pb instanceof fd.InvalidSessionRequestError){this.sendError(Ov,400,pb.code,pb.message);return}if(pb instanceof Rd.ReviewNotFoundError||pb instanceof Rd.ReviewCommentNotFoundError){this.sendError(Ov,404,pb.code,pb.message);return}if(pb instanceof fd.ReviewConflictError){this.sendError(Ov,409,pb.code,pb.message,{expectedEtag:pb.expectedEtag,actualEtag:pb.actualEtag,currentContent:pb.currentContent});return}if(pb instanceof Rd.ReviewNotTriagedError){this.sendError(Ov,409,pb.code,pb.message,{openCount:pb.openCount});return}if(pb instanceof Rd.ReviewSessionMissingError){this.sendError(Ov,409,pb.code,pb.message);return}if(pb instanceof Rd.ReviewParentRequiredError||pb instanceof Rd.ReviewParentNotFoundError||pb instanceof Rd.InvalidReviewLinkError){this.sendError(Ov,400,pb.code,pb.message);return}if(pb instanceof Bd.GitUnavailableError){this.sendError(Ov,409,pb.code,pb.message,{reason:pb.reason});return}if(pb instanceof fd.PublisherNotConfiguredError){this.sendError(Ov,pb.status,pb.code,pb.message,{reason:pb.reason});return}if(pb instanceof fd.PublisherProjectMismatchError){this.sendError(Ov,409,pb.code,pb.message,{storedRemote:pb.storedRemote,currentRemote:pb.currentRemote});return}if(pb instanceof fd.PublisherNoMergeRequestError){this.sendError(Ov,409,pb.code,pb.message,{branch:pb.branch,projectPath:pb.projectPath});return}if(pb instanceof fd.PublisherAuthFailedError){this.sendError(Ov,401,pb.code,pb.message,{hint:pb.hint});return}if(pb instanceof fd.PublisherRequestFailedError){this.sendError(Ov,502,pb.code,pb.message,{status:pb.status,gitlabMessage:pb.gitlabMessage,method:pb.method});return}if(pb instanceof fd.PackageNotCachedError){this.sendError(Ov,404,pb.code,pb.message,{packageName:pb.packageName});return}if(pb instanceof fd.InvalidPackageRequestError){this.sendError(Ov,400,pb.code,pb.message);return}if(pb instanceof fd.UiProjectNotInitializedError){this.sendError(Ov,409,pb.code,pb.message,{directory:pb.directory});return}if(pb instanceof fd.PackageOperationFailedError){this.sendError(Ov,422,pb.code,pb.message,{argv:pb.argv,commandLine:pb.commandLine,transcript:pb.transcript,phase:pb.phase});return}(0,R_.uiLog)({event:"api.unhandled_error",message:String(pb)}),this.sendError(Ov,500,"INTERNAL",pb instanceof Error?pb.message:String(pb))}}}apiRouter.ApiRouter=Z0;function Dv(Mv){if(Mv===null||Mv.length===0)return;const Ov=Number(Mv);return Number.isInteger(Ov)&&Ov>0?Ov:void 0}return e(Dv,"readOptionalInt"),apiRouter}e(requireApiRouter,"requireApiRouter");var sseHub={},hasRequiredSseHub;function requireSseHub(){if(hasRequiredSseHub)return sseHub;hasRequiredSseHub=1,Object.defineProperty(sseHub,"__esModule",{value:!0}),sseHub.SseHub=void 0;const t=25e3;class Xf{static{e(this,"SseHub")}constructor(){this.clients=new Set}subscribe(pd,dd){dd.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-store",Connection:"keep-alive","X-Accel-Buffering":"no"}),dd.write(`: connected
1075
1075
 
@@ -1079,7 +1079,7 @@ data: ${JSON.stringify(pd.data)}
1079
1079
  `;for(const Rd of this.clients)try{Rd.write(dd)}catch{this.clients.delete(Rd)}}get size(){return this.clients.size}close(){this.stopHeartbeat();for(const pd of this.clients)try{pd.end()}catch{}this.clients.clear()}startHeartbeat(){this.heartbeat||(this.heartbeat=setInterval(()=>{for(const pd of this.clients)try{pd.write(`: ping
1080
1080
 
1081
1081
  `)}catch{this.clients.delete(pd)}},t),this.heartbeat.unref())}stopHeartbeat(){this.heartbeat&&(clearInterval(this.heartbeat),this.heartbeat=void 0)}}return sseHub.SseHub=Xf,sseHub}e(requireSseHub,"requireSseHub");var staticFileHandler={},hasRequiredStaticFileHandler;function requireStaticFileHandler(){return hasRequiredStaticFileHandler||(hasRequiredStaticFileHandler=1,(function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.StaticFileHandler=t.TOKEN_PLACEHOLDER=void 0;const Xf=require$$2$2,fd=require$$2$3,pd={".html":"text/html; charset=utf-8",".js":"text/javascript; charset=utf-8",".mjs":"text/javascript; charset=utf-8",".css":"text/css; charset=utf-8",".json":"application/json; charset=utf-8",".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".webp":"image/webp",".ico":"image/x-icon",".woff":"font/woff",".woff2":"font/woff2",".map":"application/json; charset=utf-8"};t.TOKEN_PLACEHOLDER="__INVARIANT_UI_TOKEN__";class dd{static{e(this,"StaticFileHandler")}constructor(C_,F_=""){this.root=C_,this.token=F_}handle(C_,F_,R_){const $_=this.resolve(C_);if($_===void 0){R_.writeHead(404,{"Content-Type":"text/plain; charset=utf-8"}),R_.end("Not found");return}const N_=fd.extname($_).toLowerCase(),M_=/\/assets\//.test($_)&&/\.[0-9a-f]{8,}\./.test(fd.basename($_)),L_={"Content-Type":pd[N_]??"application/octet-stream","Cache-Control":M_?"public, max-age=31536000, immutable":"no-store","X-Content-Type-Options":"nosniff"};if(F_.method==="HEAD"){R_.writeHead(200,L_),R_.end();return}if(N_===".html"){const j_=Xf.readFileSync($_,"utf-8").split(t.TOKEN_PLACEHOLDER).join(this.token);R_.writeHead(200,{...L_,"Content-Length":Buffer.byteLength(j_)}),R_.end(j_);return}R_.writeHead(200,L_),Xf.createReadStream($_).pipe(R_)}resolve(C_){const F_=decodeURIComponent(C_).replace(/^\/+/,""),R_=fd.resolve(this.root,F_);if(R_!==this.root&&!R_.startsWith(`${this.root}${fd.sep}`))return;if(F_.length>0&&Rd(R_))return R_;const $_=fd.join(this.root,"index.html");return Rd($_)?$_:void 0}}t.StaticFileHandler=dd;function Rd(Bd){try{return Xf.statSync(Bd).isFile()}catch{return!1}}e(Rd,"isFile")})(staticFileHandler)),staticFileHandler}e(requireStaticFileHandler,"requireStaticFileHandler");var uiAssetsDirectory={},hasRequiredUiAssetsDirectory;function requireUiAssetsDirectory(){if(hasRequiredUiAssetsDirectory)return uiAssetsDirectory;hasRequiredUiAssetsDirectory=1,Object.defineProperty(uiAssetsDirectory,"__esModule",{value:!0}),uiAssetsDirectory.uiAssetsDirectory=fd,uiAssetsDirectory.uiAssetsExist=pd;const t=require$$2$2,Xf=require$$2$3;function fd(){const dd=t.realpathSync(__filename);if(!dd.endsWith(".ts"))return Xf.join(Xf.dirname(dd),"ui");let Rd=Xf.dirname(dd);for(let Bd=0;Bd<10;Bd+=1){const C_=Xf.join(Rd,"dist","ui");if(t.existsSync(Xf.join(Rd,"package.json"))&&t.existsSync(C_))return C_;const F_=Xf.dirname(Rd);if(F_===Rd)break;Rd=F_}throw new Error("the UI assets are missing \u2014 build them first (yarn build:ui) so dist/ui exists")}e(fd,"uiAssetsDirectory$1");function pd(){try{return t.existsSync(Xf.join(fd(),"index.html"))}catch{return!1}}return e(pd,"uiAssetsExist"),uiAssetsDirectory}e(requireUiAssetsDirectory,"requireUiAssetsDirectory");var hasRequiredUiServer;function requireUiServer(){if(hasRequiredUiServer)return uiServer;hasRequiredUiServer=1;var t=uiServer&&uiServer.__decorate||function(Y_,Q_,Z_,L0){var j0=arguments.length,Y0=j0<3?Q_:L0===null?L0=Object.getOwnPropertyDescriptor(Q_,Z_):L0,Z0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Y0=Reflect.decorate(Y_,Q_,Z_,L0);else for(var Dv=Y_.length-1;Dv>=0;Dv--)(Z0=Y_[Dv])&&(Y0=(j0<3?Z0(Y0):j0>3?Z0(Q_,Z_,Y0):Z0(Q_,Z_))||Y0);return j0>3&&Y0&&Object.defineProperty(Q_,Z_,Y0),Y0},Xf=uiServer&&uiServer.__metadata||function(Y_,Q_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(Y_,Q_)},fd=uiServer&&uiServer.__param||function(Y_,Q_){return function(Z_,L0){Q_(Z_,L0,Y_)}};Object.defineProperty(uiServer,"__esModule",{value:!0}),uiServer.UiHttpServer=void 0;const pd=requireCommon$1(),dd=requireCqrs(),Rd=require$$2$4,Bd=requireApiRouter(),C_=requireSseHub(),F_=requireStaticFileHandler(),R_=requireUiAssetsDirectory(),$_=requireUiDefaults(),N_=requireDomain$1(),M_=requireGateways$3(),L_=requirePersistence$3(),j_=requireCommands$2(),H_=requireUiLogger();function V_(Y_,Q_){return new Promise((Z_,L0)=>{const j0=e(Z0=>{Y_.removeListener("listening",Y0),Z0.code==="EADDRINUSE"||Z0.code==="EACCES"?Z_("in-use"):L0(Z0)},"onError"),Y0=e(()=>{Y_.removeListener("error",j0),Z_("listening")},"onListening");Y_.once("error",j0),Y_.once("listening",Y0),Y_.listen(Q_,"127.0.0.1")})}e(V_,"listenOnce");let J_=class{static{e(this,"UiHttpServer")}constructor(Q_,Z_,L0,j0,Y0){this.commandBus=Q_,this.queryBus=Z_,this.watcher=L0,this.reviews=j0,this.client=Y0}async start(Q_){(0,R_.uiAssetsExist)()||(0,H_.uiLog)({event:"assets.missing",hint:"run `yarn build:ui` so dist/ui exists"});const Z_=new C_.SseHub,L0=new Promise(bx=>{this.resolveShutdown=bx}),j0={directory:Q_.directory,token:Q_.token,version:Q_.version,pid:process.pid,port:Q_.port,startedAtMs:Date.now(),onShutdown:e(()=>{this.shutdown()},"onShutdown")},Y0=new Bd.ApiRouter(this.commandBus,this.queryBus,Z_,j0),Z0=new F_.StaticFileHandler(z_(),Q_.token),Dv=Rd.createServer((bx,Kv)=>{const zx=new URL(bx.url??"/",`http://${bx.headers.host??"127.0.0.1"}`);Y0.handle(zx.pathname,bx,Kv).then(HD=>{HD||Z0.handle(zx.pathname,bx,Kv)}).catch(HD=>{(0,H_.uiLog)({event:"server.unhandled_error",message:String(HD)}),Kv.headersSent||Kv.writeHead(500),Kv.end()})}),Mv=await this.bind(Dv,Q_);if(Mv===void 0)return Z_.close(),{kind:"sibling-running",port:Q_.port};j0.port=Mv,this.server=Dv,this.sse=Z_;const Ov=await this.reviews.reviewDirectory();this.stopWatching=this.watcher.watch(Q_.directory,{reviewDirectory:Ov},bx=>{bx.resource==="packages"?Z_.broadcast({event:"packages.changed",data:{}}):Z_.broadcast({event:`${bx.resource}.${bx.kind}`,data:bx.resource==="session"?{sessionId:bx.id}:{slug:bx.id}}),bx.resource==="session"&&bx.kind==="updated"&&this.commandBus.execute(new j_.PromoteSessionActivityCommand(bx.id)).catch(Kv=>(0,H_.uiLog)({event:"session.promote_failed",sessionId:bx.id,message:String(Kv)}))});const pb=e(()=>{this.shutdown()},"onSignal");return process.once("SIGTERM",pb),process.once("SIGINT",pb),{kind:"started",port:Mv,waitUntilShutdown:e(()=>L0,"waitUntilShutdown")}}async bind(Q_,Z_){let L0=Z_.port;for(;await V_(Q_,L0)!=="listening";){if(L0===Z_.port){const Z0=await this.client.health(L0);if(Z0&&Z0.directory===Z_.directory){Q_.close();return}if(Z_.portIsExplicit)throw Q_.close(),new N_.PortUnavailableError(L0,Z0?`it is serving ${Z0.directory}`:"another process is listening there (omit the port to auto-select)")}if(L0+=1,L0>Z_.port+$_.UI_PORT_PROBE_RANGE)throw Q_.close(),new N_.PortUnavailableError(Z_.port,`no free port in ${Z_.port}-${Z_.port+$_.UI_PORT_PROBE_RANGE}`)}const j0=Q_.address();return typeof j0=="object"&&j0!==null?j0.port:L0}async shutdown(){const Q_=this.server;if(this.stopWatching?.(),this.sse?.close(),!Q_){this.resolveShutdown?.();return}this.server=void 0,await new Promise(Z_=>{Q_.close(()=>Z_()),setTimeout(Z_,2e3).unref()}),(0,H_.uiLog)({event:"daemon.stopped"}),this.resolveShutdown?.()}};uiServer.UiHttpServer=J_,uiServer.UiHttpServer=J_=t([(0,pd.Injectable)(),fd(2,(0,pd.Inject)(M_.WorkspaceWatcherGateway)),fd(3,(0,pd.Inject)(L_.ReviewRepository)),fd(4,(0,pd.Inject)(M_.UiClientGateway)),Xf("design:paramtypes",[dd.CommandBus,dd.QueryBus,M_.WorkspaceWatcherGateway,L_.ReviewRepository,M_.UiClientGateway])],J_);function z_(){try{return(0,R_.uiAssetsDirectory)()}catch{return""}}return e(z_,"safeAssetsDirectory"),uiServer}e(requireUiServer,"requireUiServer");var persistence$2={},fileSystemSession_repository={},hasRequiredFileSystemSession_repository;function requireFileSystemSession_repository(){if(hasRequiredFileSystemSession_repository)return fileSystemSession_repository;hasRequiredFileSystemSession_repository=1;var t=fileSystemSession_repository&&fileSystemSession_repository.__decorate||function(H_,V_,J_,z_){var Y_=arguments.length,Q_=Y_<3?V_:z_===null?z_=Object.getOwnPropertyDescriptor(V_,J_):z_,Z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Q_=Reflect.decorate(H_,V_,J_,z_);else for(var L0=H_.length-1;L0>=0;L0--)(Z_=H_[L0])&&(Q_=(Y_<3?Z_(Q_):Y_>3?Z_(V_,J_,Q_):Z_(V_,J_))||Q_);return Y_>3&&Q_&&Object.defineProperty(V_,J_,Q_),Q_};Object.defineProperty(fileSystemSession_repository,"__esModule",{value:!0}),fileSystemSession_repository.FileSystemSessionRepository=void 0,fileSystemSession_repository.etagOf=L_;const Xf=requireCommon$1(),fd=require$$1$4,pd=require$$2$3,dd=requirePersistence$3(),Rd=requireDomain$1(),Bd=requireSession$1(),C_=".invariant",F_="sessions",R_=".archive",$_=".conflicts",N_=5e3;let M_=class extends dd.SessionRepository{static{e(this,"FileSystemSessionRepository")}constructor(){super(...arguments),this.ownWrites=new Map}pin(V_){this.pinnedDirectory=V_}get directory(){if(!this.pinnedDirectory)throw new Error("SessionRepository used before the project directory was pinned");return this.pinnedDirectory}sessionsDirectory(){return pd.join(this.directory,C_,F_)}async list(){let V_;try{V_=await fd.readdir(this.sessionsDirectory())}catch{return[]}return(await Promise.all(V_.filter(z_=>z_.endsWith(".md")&&(0,Bd.isSessionId)(z_.slice(0,-3))).map(z_=>this.read(z_.slice(0,-3))))).filter(z_=>z_!==void 0).sort((z_,Y_)=>Y_.header.updated.localeCompare(z_.header.updated))}async find(V_){return this.assertSessionId(V_),this.read(V_)}async findOrFail(V_){const J_=await this.find(V_);if(!J_)throw new Rd.SessionNotFoundError(V_);return J_}async save(V_){const J_=await this.findOrFail(V_.sessionId),z_=(0,Bd.parseSessionDocument)(V_.body,{file:J_.file}),Y_=V_.expectedEtag!==void 0&&V_.expectedEtag!==J_.etag;let Q_=z_.body,Z_=!1;if(Y_){V_.baseBody===void 0&&this.assertEtag(J_,V_.expectedEtag);const Y0=(0,Bd.mergeThreeWay)(V_.baseBody,z_.body,J_.body);if(!Y0.clean){const Z0=await this.stashConflict(V_.sessionId,J_.body);throw new Rd.SessionMergeConflictError(V_.sessionId,V_.expectedEtag,J_.etag,J_.body,Y0.merged,Y0.conflicts,Z0)}Q_=Y0.merged,Z_=J_.body!==V_.baseBody}else V_.expectedEtag===void 0&&J_.body!==z_.body&&await this.stashConflict(V_.sessionId,J_.body);let L0=!Y_&&z_.hasHeader?z_.header:J_.header;return V_.title!==void 0&&(L0=L0.withTitle(V_.title,V_.at)),L0=L0.withTouched(V_.at),{session:await this.write(V_.sessionId,(0,Bd.composeSessionDocument)(L0,Q_)),merged:Z_}}wasWrittenByUs(V_){const J_=Date.now();for(const[z_,Y_]of this.ownWrites)Y_<=J_&&this.ownWrites.delete(z_);return this.ownWrites.has(V_)}async stashConflict(V_,J_){const z_=pd.join(this.sessionsDirectory(),$_);await fd.mkdir(z_,{recursive:!0});const Y_=(0,Bd.nowIso)().replace(/[:-]/g,"").replace("Z",""),Q_=pd.join(z_,`${V_}.${Y_}.md`);return await fd.writeFile(Q_,J_,"utf-8"),Q_}async setStatus(V_){const J_=await this.findOrFail(V_.sessionId),z_=J_.header.withStatus(V_.status,{at:V_.at,summary:V_.summary});return this.write(V_.sessionId,(0,Bd.composeSessionDocument)(z_,J_.body))}async linkParent(V_){const J_=await this.findOrFail(V_.sessionId),z_=J_.header.withReviewScope({parent:V_.parentSessionId},V_.at);return this.write(V_.sessionId,(0,Bd.composeSessionDocument)(z_,J_.body))}async migrateHeader(V_,J_){const z_=await this.findOrFail(V_),Y_=z_.hasHeader&&z_.issues.length===0?z_.header:z_.header.withTouched(J_);return this.write(V_,(0,Bd.composeSessionDocument)(Y_,z_.body))}async archive(V_){const J_=await this.findOrFail(V_),z_=pd.join(this.sessionsDirectory(),R_);await fd.mkdir(z_,{recursive:!0});let Y_=pd.join(z_,J_.file);try{await fd.access(Y_);const Q_=(0,Bd.nowIso)().replace(/[:-]/g,"").replace("Z","");Y_=pd.join(z_,`${V_}.${Q_}.md`)}catch{}return await fd.rename(J_.path,Y_),{sessionId:V_,archivedPath:Y_}}async read(V_){const J_=this.pathFor(V_);let z_,Y_;try{[z_,Y_]=await Promise.all([fd.readFile(J_,"utf-8"),fd.stat(J_)])}catch{return}const Q_=(0,Bd.parseSessionDocument)(z_,{file:`${V_}.md`,fallbackCreated:j_(Y_.birthtimeMs||Y_.mtimeMs),fallbackUpdated:j_(Y_.mtimeMs)});return Rd.Session.rehydrate({id:V_,path:J_,header:Q_.header,body:Q_.body,sizeBytes:Y_.size,etag:L_(Y_),hasHeader:Q_.hasHeader,legacy:Q_.legacy,issues:Q_.issues})}async write(V_,J_){const z_=this.pathFor(V_),Y_=`${z_}.tmp-${process.pid}`;await fd.writeFile(Y_,J_,"utf-8"),await fd.rename(Y_,z_);const Q_=await this.read(V_);if(!Q_)throw new Rd.SessionNotFoundError(V_);return this.ownWrites.set(Q_.etag,Date.now()+N_),Q_}assertEtag(V_,J_){if(J_!==void 0&&J_!==V_.etag)throw new Rd.SessionConflictError(V_.id,J_,V_.etag,(0,Bd.composeSessionDocument)(V_.header,V_.body))}assertSessionId(V_){if(!(0,Bd.isSessionId)(V_))throw new Rd.InvalidSessionRequestError(`"${V_}" is not a valid session id.`)}pathFor(V_){return this.assertSessionId(V_),pd.join(this.sessionsDirectory(),`${V_}.md`)}};fileSystemSession_repository.FileSystemSessionRepository=M_,fileSystemSession_repository.FileSystemSessionRepository=M_=t([(0,Xf.Injectable)()],M_);function L_(H_){return`${Math.trunc(H_.mtimeMs)}-${H_.size}`}e(L_,"etagOf");function j_(H_){return new Date(H_).toISOString().replace(/\.\d{3}Z$/,"Z")}return e(j_,"toIso"),fileSystemSession_repository}e(requireFileSystemSession_repository,"requireFileSystemSession_repository");var fileUiRegistry_repository={},home={},invariantHome$1={},hasRequiredInvariantHome$1;function requireInvariantHome$1(){if(hasRequiredInvariantHome$1)return invariantHome$1;hasRequiredInvariantHome$1=1,Object.defineProperty(invariantHome$1,"__esModule",{value:!0}),invariantHome$1.invariantHomeDir=pd,invariantHome$1.ensureInvariantHomeDir=dd,invariantHome$1.invariantLogDir=Rd,invariantHome$1.ensureInvariantLogDir=Bd,invariantHome$1.writeFilePrivate=C_,invariantHome$1.uiRegistryFilePath=F_,invariantHome$1.uiRegistryLockFilePath=R_,invariantHome$1.uiLogFilePath=$_;const t=require$$0$5,Xf=require$$2$3,fd=require$$2$2;function pd(){return Xf.join(t.homedir(),".invariant")}e(pd,"invariantHomeDir");function dd(){const N_=pd();return fd.mkdirSync(N_,{recursive:!0,mode:448}),N_}e(dd,"ensureInvariantHomeDir");function Rd(){return Xf.join(pd(),"logs")}e(Rd,"invariantLogDir");function Bd(){return dd(),fd.mkdirSync(Rd(),{recursive:!0,mode:448}),Rd()}e(Bd,"ensureInvariantLogDir");function C_(N_,M_){dd(),fd.writeFileSync(N_,M_,{encoding:"utf-8",mode:384})}e(C_,"writeFilePrivate");function F_(){return Xf.join(pd(),"ui.json")}e(F_,"uiRegistryFilePath");function R_(){return Xf.join(pd(),"ui.json.lock")}e(R_,"uiRegistryLockFilePath");function $_(){return Xf.join(Rd(),"ui.log")}return e($_,"uiLogFilePath"),invariantHome$1}e(requireInvariantHome$1,"requireInvariantHome$1");var hasRequiredHome;function requireHome(){return hasRequiredHome||(hasRequiredHome=1,(function(t){var Xf=home&&home.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=home&&home.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireInvariantHome$1(),t)})(home)),home}e(requireHome,"requireHome");var hasRequiredFileUiRegistry_repository;function requireFileUiRegistry_repository(){if(hasRequiredFileUiRegistry_repository)return fileUiRegistry_repository;hasRequiredFileUiRegistry_repository=1;var t=fileUiRegistry_repository&&fileUiRegistry_repository.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_};Object.defineProperty(fileUiRegistry_repository,"__esModule",{value:!0}),fileUiRegistry_repository.FileUiRegistryRepository=void 0;const Xf=requireCommon$1(),fd=require$$2$2,pd=requireHome(),dd=50,Rd=2e3,Bd=1e4;let C_=class{static{e(this,"FileUiRegistryRepository")}async read(){const $_=this.readFile();return Object.entries($_.instances).map(([N_,M_])=>({directory:N_,...M_}))}async find($_){const M_=this.readFile().instances[$_];return M_?{directory:$_,...M_}:void 0}async upsert($_){await this.mutate(N_=>{const{directory:M_,...L_}=$_;N_.instances[M_]=L_})}async remove($_){await this.mutate(N_=>{delete N_.instances[$_]})}path(){return(0,pd.uiRegistryFilePath)()}async mutate($_){const N_=await this.acquireLock();try{const M_=this.readFile();$_(M_),(0,pd.writeFilePrivate)(this.path(),`${JSON.stringify(M_,null,2)}
1082
- `)}finally{N_()}}readFile(){try{return{instances:JSON.parse(fd.readFileSync(this.path(),"utf-8")).instances??{}}}catch{return{instances:{}}}}async acquireLock(){(0,pd.ensureInvariantHomeDir)();const $_=(0,pd.uiRegistryLockFilePath)(),N_=Date.now()+Rd;for(;;)try{const M_=fd.openSync($_,"wx",384);return fd.closeSync(M_),()=>{try{fd.unlinkSync($_)}catch{}}}catch{if(this.breakStaleLock($_),Date.now()>=N_){try{fd.unlinkSync($_)}catch{}continue}await F_(dd)}}breakStaleLock($_){try{const N_=fd.statSync($_);Date.now()-N_.mtimeMs>Bd&&fd.unlinkSync($_)}catch{}}};fileUiRegistry_repository.FileUiRegistryRepository=C_,fileUiRegistry_repository.FileUiRegistryRepository=C_=t([(0,Xf.Injectable)()],C_);function F_(R_){return new Promise($_=>setTimeout($_,R_))}return e(F_,"sleep"),fileUiRegistry_repository}e(requireFileUiRegistry_repository,"requireFileUiRegistry_repository");var fileSystemReview_repository={},hasRequiredFileSystemReview_repository;function requireFileSystemReview_repository(){if(hasRequiredFileSystemReview_repository)return fileSystemReview_repository;hasRequiredFileSystemReview_repository=1;var t=fileSystemReview_repository&&fileSystemReview_repository.__decorate||function(j_,H_,V_,J_){var z_=arguments.length,Y_=z_<3?H_:J_===null?J_=Object.getOwnPropertyDescriptor(H_,V_):J_,Q_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Y_=Reflect.decorate(j_,H_,V_,J_);else for(var Z_=j_.length-1;Z_>=0;Z_--)(Q_=j_[Z_])&&(Y_=(z_<3?Q_(Y_):z_>3?Q_(H_,V_,Y_):Q_(H_,V_))||Y_);return z_>3&&Y_&&Object.defineProperty(H_,V_,Y_),Y_};Object.defineProperty(fileSystemReview_repository,"__esModule",{value:!0}),fileSystemReview_repository.FileSystemReviewRepository=void 0;const Xf=requireCommon$1(),fd=require$$1$4,pd=require$$2$3,dd=requirePersistence$3(),Rd=requireDomain$1(),Bd=requireReview$2(),C_=requireDomain$1(),F_=requireFileSystemSession_repository(),R_="invariant.json";let $_=class extends dd.ReviewRepository{static{e(this,"FileSystemReviewRepository")}pin(H_){this.pinnedDirectory=H_,this.cachedReviewDirectory=void 0}get directory(){if(!this.pinnedDirectory)throw new Error("ReviewRepository used before the project directory was pinned");return this.pinnedDirectory}async reviewDirectory(){if(this.cachedReviewDirectory!==void 0)return this.cachedReviewDirectory;let H_=Bd.DEFAULT_REVIEW_DIRECTORY;try{const V_=await fd.readFile(pd.join(this.directory,R_),"utf-8"),z_=JSON.parse(V_).review?.directory;typeof z_=="string"&&N_(z_)&&(H_=z_)}catch{}return this.cachedReviewDirectory=H_,H_}async reviewsPath(){const H_=await this.reviewDirectory();return pd.join(this.directory,...H_.split("/"))}async list(){const H_=await this.reviewsPath();let V_;try{V_=await fd.readdir(H_)}catch{return[]}return(await Promise.all(V_.filter(z_=>(0,Bd.hasReviewExtension)(z_)&&(0,Bd.isReviewSlug)((0,Bd.stripReviewExtension)(z_))).map(z_=>this.read((0,Bd.stripReviewExtension)(z_))))).filter(z_=>z_!==void 0).sort((z_,Y_)=>Y_.toListItem().updated.localeCompare(z_.toListItem().updated))}async find(H_){return this.read(this.assertSlug(H_))}async findOrFail(H_){const V_=await this.find(H_);if(!V_)throw new Bd.ReviewNotFoundError((0,Bd.normalizeReviewSlug)(H_));return V_}async updateComment(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_);(!(H_.severity===void 0&&H_.category===void 0&&H_.title===void 0&&H_.body===void 0)||!this.commentsStillHold(J_,[H_.commentId],H_.expectedStatus))&&this.assertEtag(J_,H_.expectedEtag);const Y_=J_.document.find(H_.commentId);if(!Y_)throw new Bd.ReviewCommentNotFoundError(V_,H_.commentId);const Q_=Y_.comment.withEdits({status:H_.status,severity:H_.severity,category:H_.category,title:H_.title,body:H_.body},H_.at);return this.write(V_,(0,Bd.composeReviewDocument)(J_.document.withComment(Q_,H_.at)))}async updateComments(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_);this.commentsStillHold(J_,H_.commentIds,H_.expectedStatus)||this.assertEtag(J_,H_.expectedEtag);const z_=H_.commentIds.map(Y_=>{const Q_=J_.document.find(Y_);if(!Q_)throw new Bd.ReviewCommentNotFoundError(V_,Y_);return Q_.comment.withStatus(H_.status)});return this.write(V_,(0,Bd.composeReviewDocument)(J_.document.withComments(z_,H_.at)))}async markPublished(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_),z_=Object.entries(H_.references).map(([Q_,Z_])=>{const L0=J_.document.find(Q_);if(!L0)throw new Bd.ReviewCommentNotFoundError(V_,Q_);return L0.comment.withDiscussion(Z_)});let Y_=J_.document.withComments(z_,H_.at);for(const Q_ of H_.publishedRunIds)Y_=Y_.withRunStatus(Q_,Bd.ReviewRunStatus.Published,H_.at);return this.write(V_,(0,Bd.composeReviewDocument)(Y_))}async read(H_){const V_=await this.pathFor(H_);let J_,z_;try{[J_,z_]=await Promise.all([fd.readFile(V_,"utf-8"),fd.stat(V_)])}catch{return}const Y_=M_(z_.mtimeMs),Q_=await this.reviewDirectory(),Z_=pd.basename(V_);return Rd.Review.rehydrate({slug:H_,path:V_,relativePath:`${Q_}/${Z_}`,document:(0,Bd.parseReviewDocument)(J_,{file:Z_,fallbackAt:Y_}),sizeBytes:z_.size,etag:(0,F_.etagOf)(z_),updated:Y_})}async write(H_,V_){const J_=await this.pathFor(H_),z_=`${J_}.tmp-${process.pid}`;await fd.writeFile(z_,V_,"utf-8"),await fd.rename(z_,J_);const Y_=await this.read(H_);if(!Y_)throw new Bd.ReviewNotFoundError(H_);return Y_}commentsStillHold(H_,V_,J_){return J_===void 0?!1:V_.every(z_=>H_.document.find(z_)?.comment.status===J_)}assertEtag(H_,V_){if(V_!==void 0&&V_!==H_.etag)throw new Rd.ReviewConflictError(H_.slug,V_,H_.etag,(0,Bd.composeReviewDocument)(H_.document))}assertSlug(H_){const V_=(0,Bd.normalizeReviewSlug)(H_);if(!(0,Bd.isReviewSlug)(V_))throw new C_.InvalidSessionRequestError(`"${H_}" is not a valid review slug.`);return V_}async pathFor(H_){const V_=await this.reviewsPath(),J_=this.assertSlug(H_),z_=pd.join(V_,(0,Bd.reviewBasenameFor)(J_));for(const Y_ of Bd.REVIEW_FILE_EXTENSIONS){const Q_=pd.join(V_,`${J_}${Y_}`);if(await L_(Q_))return Q_}return z_}};fileSystemReview_repository.FileSystemReviewRepository=$_,fileSystemReview_repository.FileSystemReviewRepository=$_=t([(0,Xf.Injectable)()],$_);function N_(j_){const H_=j_.replace(/\\/g,"/");return H_.length===0||H_.startsWith("/")||/^[a-zA-Z]:\//.test(H_)?!1:!H_.split("/").includes("..")}e(N_,"isSafeRelative");function M_(j_){return new Date(j_).toISOString().replace(/\.\d{3}Z$/,"Z")}e(M_,"toIso");async function L_(j_){try{return await fd.access(j_),!0}catch{return!1}}return e(L_,"fileExists"),fileSystemReview_repository}e(requireFileSystemReview_repository,"requireFileSystemReview_repository");var filePublisherSettings_repository={},hasRequiredFilePublisherSettings_repository;function requireFilePublisherSettings_repository(){return hasRequiredFilePublisherSettings_repository||(hasRequiredFilePublisherSettings_repository=1,(function(t){var Xf=filePublisherSettings_repository&&filePublisherSettings_repository.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_};Object.defineProperty(t,"__esModule",{value:!0}),t.FilePublisherSettingsRepository=t.PUBLISHER_SETTINGS_FILE=t.PUBLISHER_SETTINGS_DIRECTORY=void 0;const fd=requireCommon$1(),pd=require$$1$4,dd=require$$2$3,Rd=requirePersistence$3();t.PUBLISHER_SETTINGS_DIRECTORY=".invariant",t.PUBLISHER_SETTINGS_FILE="publisher.local.json";const Bd=["# Local, machine-specific settings written by `invariant ui`.","# These carry credentials. Never commit them.","*.local.json",""].join(`
1082
+ `)}finally{N_()}}readFile(){try{return{instances:JSON.parse(fd.readFileSync(this.path(),"utf-8")).instances??{}}}catch{return{instances:{}}}}async acquireLock(){(0,pd.ensureInvariantHomeDir)();const $_=(0,pd.uiRegistryLockFilePath)(),N_=Date.now()+Rd;for(;;)try{const M_=fd.openSync($_,"wx",384);return fd.closeSync(M_),()=>{try{fd.unlinkSync($_)}catch{}}}catch{if(this.breakStaleLock($_),Date.now()>=N_){try{fd.unlinkSync($_)}catch{}continue}await F_(dd)}}breakStaleLock($_){try{const N_=fd.statSync($_);Date.now()-N_.mtimeMs>Bd&&fd.unlinkSync($_)}catch{}}};fileUiRegistry_repository.FileUiRegistryRepository=C_,fileUiRegistry_repository.FileUiRegistryRepository=C_=t([(0,Xf.Injectable)()],C_);function F_(R_){return new Promise($_=>setTimeout($_,R_))}return e(F_,"sleep"),fileUiRegistry_repository}e(requireFileUiRegistry_repository,"requireFileUiRegistry_repository");var fileSystemReview_repository={},hasRequiredFileSystemReview_repository;function requireFileSystemReview_repository(){if(hasRequiredFileSystemReview_repository)return fileSystemReview_repository;hasRequiredFileSystemReview_repository=1;var t=fileSystemReview_repository&&fileSystemReview_repository.__decorate||function(j_,H_,V_,J_){var z_=arguments.length,Y_=z_<3?H_:J_===null?J_=Object.getOwnPropertyDescriptor(H_,V_):J_,Q_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Y_=Reflect.decorate(j_,H_,V_,J_);else for(var Z_=j_.length-1;Z_>=0;Z_--)(Q_=j_[Z_])&&(Y_=(z_<3?Q_(Y_):z_>3?Q_(H_,V_,Y_):Q_(H_,V_))||Y_);return z_>3&&Y_&&Object.defineProperty(H_,V_,Y_),Y_};Object.defineProperty(fileSystemReview_repository,"__esModule",{value:!0}),fileSystemReview_repository.FileSystemReviewRepository=void 0;const Xf=requireCommon$1(),fd=require$$1$4,pd=require$$2$3,dd=requirePersistence$3(),Rd=requireDomain$1(),Bd=requireReview$2(),C_=requireDomain$1(),F_=requireFileSystemSession_repository(),R_="invariant.json";let $_=class extends dd.ReviewRepository{static{e(this,"FileSystemReviewRepository")}pin(H_){this.pinnedDirectory=H_,this.cachedReviewDirectory=void 0}get directory(){if(!this.pinnedDirectory)throw new Error("ReviewRepository used before the project directory was pinned");return this.pinnedDirectory}async reviewDirectory(){if(this.cachedReviewDirectory!==void 0)return this.cachedReviewDirectory;let H_=Bd.DEFAULT_REVIEW_DIRECTORY;try{const V_=await fd.readFile(pd.join(this.directory,R_),"utf-8"),z_=JSON.parse(V_).review?.directory;typeof z_=="string"&&N_(z_)&&(H_=z_)}catch{}return this.cachedReviewDirectory=H_,H_}async reviewsPath(){const H_=await this.reviewDirectory();return pd.join(this.directory,...H_.split("/"))}async list(){const H_=await this.reviewsPath();let V_;try{V_=await fd.readdir(H_)}catch{return[]}return(await Promise.all(V_.filter(z_=>(0,Bd.hasReviewExtension)(z_)&&(0,Bd.isReviewSlug)((0,Bd.stripReviewExtension)(z_))).map(z_=>this.read((0,Bd.stripReviewExtension)(z_))))).filter(z_=>z_!==void 0).sort((z_,Y_)=>Y_.toListItem().updated.localeCompare(z_.toListItem().updated))}async find(H_){return this.read(this.assertSlug(H_))}async findOrFail(H_){const V_=await this.find(H_);if(!V_)throw new Bd.ReviewNotFoundError((0,Bd.normalizeReviewSlug)(H_));return V_}async updateComment(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_);(!(H_.severity===void 0&&H_.category===void 0&&H_.title===void 0&&H_.body===void 0)||!this.commentsStillHold(J_,[H_.commentId],H_.expectedStatus))&&this.assertEtag(J_,H_.expectedEtag);const Y_=J_.document.find(H_.commentId);if(!Y_)throw new Bd.ReviewCommentNotFoundError(V_,H_.commentId);const Q_=Y_.comment.withEdits({status:H_.status,severity:H_.severity,category:H_.category,title:H_.title,body:H_.body},H_.at);return this.write(V_,(0,Bd.composeReviewDocument)(J_.document.withComment(Q_,H_.at)))}async updateComments(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_);this.commentsStillHold(J_,H_.commentIds,H_.expectedStatus)||this.assertEtag(J_,H_.expectedEtag);const z_=H_.commentIds.map(Y_=>{const Q_=J_.document.find(Y_);if(!Q_)throw new Bd.ReviewCommentNotFoundError(V_,Y_);return Q_.comment.withStatus(H_.status)});return this.write(V_,(0,Bd.composeReviewDocument)(J_.document.withComments(z_,H_.at)))}async markPublished(H_){const V_=this.assertSlug(H_.slug),J_=await this.findOrFail(V_),z_=Object.entries(H_.references).map(([Q_,Z_])=>{const L0=J_.document.find(Q_);if(!L0)throw new Bd.ReviewCommentNotFoundError(V_,Q_);return L0.comment.withDiscussion(Z_)});let Y_=J_.document.withComments(z_,H_.at);for(const Q_ of H_.triagedRunIds??[])Y_.runs.find(L0=>L0.id===Q_)?.status===Bd.ReviewRunStatus.Open&&(Y_=Y_.withRunStatus(Q_,Bd.ReviewRunStatus.Triaged,H_.at));for(const Q_ of H_.publishedRunIds)Y_=Y_.withRunStatus(Q_,Bd.ReviewRunStatus.Published,H_.at);return this.write(V_,(0,Bd.composeReviewDocument)(Y_))}async read(H_){const V_=await this.pathFor(H_);let J_,z_;try{[J_,z_]=await Promise.all([fd.readFile(V_,"utf-8"),fd.stat(V_)])}catch{return}const Y_=M_(z_.mtimeMs),Q_=await this.reviewDirectory(),Z_=pd.basename(V_);return Rd.Review.rehydrate({slug:H_,path:V_,relativePath:`${Q_}/${Z_}`,document:(0,Bd.parseReviewDocument)(J_,{file:Z_,fallbackAt:Y_}),sizeBytes:z_.size,etag:(0,F_.etagOf)(z_),updated:Y_})}async write(H_,V_){const J_=await this.pathFor(H_),z_=`${J_}.tmp-${process.pid}`;await fd.writeFile(z_,V_,"utf-8"),await fd.rename(z_,J_);const Y_=await this.read(H_);if(!Y_)throw new Bd.ReviewNotFoundError(H_);return Y_}commentsStillHold(H_,V_,J_){return J_===void 0?!1:V_.every(z_=>H_.document.find(z_)?.comment.status===J_)}assertEtag(H_,V_){if(V_!==void 0&&V_!==H_.etag)throw new Rd.ReviewConflictError(H_.slug,V_,H_.etag,(0,Bd.composeReviewDocument)(H_.document))}assertSlug(H_){const V_=(0,Bd.normalizeReviewSlug)(H_);if(!(0,Bd.isReviewSlug)(V_))throw new C_.InvalidSessionRequestError(`"${H_}" is not a valid review slug.`);return V_}async pathFor(H_){const V_=await this.reviewsPath(),J_=this.assertSlug(H_),z_=pd.join(V_,(0,Bd.reviewBasenameFor)(J_));for(const Y_ of Bd.REVIEW_FILE_EXTENSIONS){const Q_=pd.join(V_,`${J_}${Y_}`);if(await L_(Q_))return Q_}return z_}};fileSystemReview_repository.FileSystemReviewRepository=$_,fileSystemReview_repository.FileSystemReviewRepository=$_=t([(0,Xf.Injectable)()],$_);function N_(j_){const H_=j_.replace(/\\/g,"/");return H_.length===0||H_.startsWith("/")||/^[a-zA-Z]:\//.test(H_)?!1:!H_.split("/").includes("..")}e(N_,"isSafeRelative");function M_(j_){return new Date(j_).toISOString().replace(/\.\d{3}Z$/,"Z")}e(M_,"toIso");async function L_(j_){try{return await fd.access(j_),!0}catch{return!1}}return e(L_,"fileExists"),fileSystemReview_repository}e(requireFileSystemReview_repository,"requireFileSystemReview_repository");var filePublisherSettings_repository={},hasRequiredFilePublisherSettings_repository;function requireFilePublisherSettings_repository(){return hasRequiredFilePublisherSettings_repository||(hasRequiredFilePublisherSettings_repository=1,(function(t){var Xf=filePublisherSettings_repository&&filePublisherSettings_repository.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_};Object.defineProperty(t,"__esModule",{value:!0}),t.FilePublisherSettingsRepository=t.PUBLISHER_SETTINGS_FILE=t.PUBLISHER_SETTINGS_DIRECTORY=void 0;const fd=requireCommon$1(),pd=require$$1$4,dd=require$$2$3,Rd=requirePersistence$3();t.PUBLISHER_SETTINGS_DIRECTORY=".invariant",t.PUBLISHER_SETTINGS_FILE="publisher.local.json";const Bd=["# Local, machine-specific settings written by `invariant ui`.","# These carry credentials. Never commit them.","*.local.json",""].join(`
1083
1083
  `);let C_=class extends Rd.PublisherSettingsRepository{static{e(this,"FilePublisherSettingsRepository")}pin($_){this.pinnedDirectory=$_}get directory(){if(!this.pinnedDirectory)throw new Error("PublisherSettingsRepository used before the project directory was pinned");return this.pinnedDirectory}path(){return dd.join(this.directory,t.PUBLISHER_SETTINGS_DIRECTORY,t.PUBLISHER_SETTINGS_FILE)}relativePath(){return`${t.PUBLISHER_SETTINGS_DIRECTORY}/${t.PUBLISHER_SETTINGS_FILE}`}async read(){let $_;try{$_=await pd.readFile(this.path(),"utf-8")}catch{return}let N_;try{N_=JSON.parse($_)}catch{return}const M_=F_(N_.host),L_=F_(N_.projectPath),j_=F_(N_.token);if(!(!M_||!L_||!j_))return{publisher:"gitlab",host:M_,projectPath:L_,projectPathSource:N_.projectPathSource==="override"?"override":"origin",remoteUrl:F_(N_.remoteUrl)??"",token:j_,updatedAt:F_(N_.updatedAt)??new Date().toISOString()}}async write($_){const N_={...$_,updatedAt:new Date().toISOString()},M_=dd.join(this.directory,t.PUBLISHER_SETTINGS_DIRECTORY);await pd.mkdir(M_,{recursive:!0}),await this.ensureGitignoreGuard(M_);const L_=this.path(),j_=`${L_}.tmp-${process.pid}`;return await pd.writeFile(j_,`${JSON.stringify(N_,null,2)}
1084
1084
  `,{encoding:"utf-8",mode:384}),await pd.chmod(j_,384),await pd.rename(j_,L_),N_}async remove(){try{await pd.unlink(this.path())}catch{}}async isProtectedFromGit(){try{return(await pd.readFile(dd.join(this.directory,t.PUBLISHER_SETTINGS_DIRECTORY,".gitignore"),"utf-8")).split(`
1085
1085
  `).map(N_=>N_.trim()).some(N_=>N_==="*.local.json"||N_===t.PUBLISHER_SETTINGS_FILE)}catch{return!1}}async ensureGitignoreGuard($_){if(await this.isProtectedFromGit())return;const N_=dd.join($_,".gitignore");let M_="";try{M_=await pd.readFile(N_,"utf-8")}catch{}const L_=M_.length>0&&!M_.endsWith(`
@@ -1096,7 +1096,7 @@ data: ${JSON.stringify(pd.data)}
1096
1096
  ${L_.suggestion}
1097
1097
  \`\`\``:`\`\`\`${L_.suggestionLang??""}
1098
1098
  ${L_.suggestion}
1099
- \`\`\``}return e(M_,"renderSuggestion"),gitlabNoteBody}e(requireGitlabNoteBody,"requireGitlabNoteBody");var gitlabApi_client={},hasRequiredGitlabApi_client;function requireGitlabApi_client(){if(hasRequiredGitlabApi_client)return gitlabApi_client;hasRequiredGitlabApi_client=1,Object.defineProperty(gitlabApi_client,"__esModule",{value:!0}),gitlabApi_client.GitLabApiClient=void 0,gitlabApi_client.formEncode=F_;const t=requireDomain$1(),Xf=15e3,fd=2,pd=100;class dd{static{e(this,"GitLabApiClient")}constructor(N_){this.options=N_,this.base=`${N_.host.replace(/\/+$/,"")}/api/v4`,this.timeoutMs=N_.timeoutMs??Xf,this.fetchImpl=N_.fetchImpl??globalThis.fetch}currentUser(){return this.request("GET","/user")}project(N_){return this.request("GET",`/projects/${Rd(N_)}`)}openMergeRequestsForBranch(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests?source_branch=${encodeURIComponent(M_)}&state=opened&order_by=updated_at&sort=desc`)}mergeRequest(N_,M_){return this.request("GET",`/projects/${Rd(N_)}/merge_requests/${M_}`)}mergeRequestDiffs(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests/${M_}/diffs`)}draftNotes(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes`)}async createDraftNote(N_,M_,L_,j_){const H_=`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes`;try{return await this.request("POST",H_,{note:L_,...j_?{position:j_}:{}})}catch(V_){if(!j_||!C_(V_))throw V_;return this.request("POST",H_,void 0,F_({note:L_,position:j_}))}}updateDraftNote(N_,M_,L_,j_){return this.request("PUT",`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes/${L_}`,{note:j_})}async deleteDraftNote(N_,M_,L_){await this.request("DELETE",`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes/${L_}`)}async paginate(N_){const M_=N_.includes("?")?"&":"?",L_=[];for(let j_=1;j_<=50;j_+=1){const H_=await this.request("GET",`${N_}${M_}per_page=${pd}&page=${j_}`);if(!Array.isArray(H_)||(L_.push(...H_),H_.length<pd))break}return L_}async request(N_,M_,L_,j_){let H_;for(let V_=1;V_<=fd+1;V_+=1){const J_=new AbortController,z_=setTimeout(()=>J_.abort(),this.timeoutMs);let Y_;try{Y_=await this.fetchImpl(`${this.base}${M_}`,{method:N_,headers:{"PRIVATE-TOKEN":this.options.token,Accept:"application/json",...L_!==void 0?{"Content-Type":"application/json"}:{},...j_!==void 0?{"Content-Type":"application/x-www-form-urlencoded"}:{}},body:L_!==void 0?JSON.stringify(L_):j_,signal:J_.signal})}catch(Z_){throw H_=new t.PublisherRequestFailedError(0,this.redact(String(Z_)),N_,M_),clearTimeout(z_),H_}finally{clearTimeout(z_)}if(Y_.status===429&&V_<=fd){await R_(V_*3e3);continue}const Q_=await Y_.text();if(Y_.status===401||Y_.status===403)throw new t.PublisherAuthFailedError(`GitLab rejected the token (${Y_.status}). ${Bd(Q_)}`.trim());if(!Y_.ok)throw new t.PublisherRequestFailedError(Y_.status,this.redact(Bd(Q_)),N_,M_);return Q_.length>0?JSON.parse(Q_):void 0}throw H_??new t.PublisherRequestFailedError(429,"GitLab is rate limiting this token.",N_,M_)}redact(N_){return this.options.token.length>0?N_.split(this.options.token).join("[token redacted]"):N_}}gitlabApi_client.GitLabApiClient=dd;function Rd($_){return encodeURIComponent($_)}e(Rd,"encode");function Bd($_){if($_.length===0)return"";try{const N_=JSON.parse($_),M_=N_.message??N_.error;if(typeof M_=="string")return M_;if(M_!==void 0)return JSON.stringify(M_)}catch{}return $_.slice(0,400)}e(Bd,"messageOf");function C_($_){return $_ instanceof t.PublisherRequestFailedError&&$_.status===400&&/position/i.test($_.gitlabMessage)}e(C_,"isPositionRejection");function F_($_){const N_=[],M_=e((L_,j_)=>{if(j_!=null){if(typeof j_=="object"&&!Array.isArray(j_)){for(const[H_,V_]of Object.entries(j_))M_(`${L_}[${H_}]`,V_);return}N_.push(`${encodeURIComponent(L_)}=${encodeURIComponent(String(j_))}`)}},"walk");for(const[L_,j_]of Object.entries($_))M_(L_,j_);return N_.join("&")}e(F_,"formEncode");function R_($_){return new Promise(N_=>setTimeout(N_,$_))}return e(R_,"sleep"),gitlabApi_client}e(requireGitlabApi_client,"requireGitlabApi_client");var httpGitlabReviewPublisher_gateway={},hasRequiredHttpGitlabReviewPublisher_gateway;function requireHttpGitlabReviewPublisher_gateway(){if(hasRequiredHttpGitlabReviewPublisher_gateway)return httpGitlabReviewPublisher_gateway;hasRequiredHttpGitlabReviewPublisher_gateway=1;var t=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__decorate||function(z_,Y_,Q_,Z_){var L0=arguments.length,j0=L0<3?Y_:Z_===null?Z_=Object.getOwnPropertyDescriptor(Y_,Q_):Z_,Y0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j0=Reflect.decorate(z_,Y_,Q_,Z_);else for(var Z0=z_.length-1;Z0>=0;Z0--)(Y0=z_[Z0])&&(j0=(L0<3?Y0(j0):L0>3?Y0(Y_,Q_,j0):Y0(Y_,Q_))||j0);return L0>3&&j0&&Object.defineProperty(Y_,Q_,j0),j0},Xf=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__metadata||function(z_,Y_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(z_,Y_)},fd=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__param||function(z_,Y_){return function(Q_,Z_){Y_(Q_,Z_,z_)}};Object.defineProperty(httpGitlabReviewPublisher_gateway,"__esModule",{value:!0}),httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=void 0;const pd=requireCommon$1(),dd=requireGateways$3(),Rd=requirePersistence$3(),Bd=requireDomain$1(),C_=requireGit(),F_=requireGitlabApi_client(),R_=requireGitlabDiffPosition(),$_=requireGitlabNoteBody(),N_=requireCodeHost(),M_=2;let L_=class extends dd.ReviewPublisherGateway{static{e(this,"HttpGitLabReviewPublisherGateway")}constructor(Y_,Q_){super(),this.settings=Y_,this.git=Q_,this.id="gitlab"}async isConfigured(){return await this.resolveSettings()!==void 0}async verify(){const Y_=await this.requireSettings(),Q_=this.clientFor(Y_);try{const[Z_,L0]=await Promise.all([Q_.currentUser(),Q_.project(Y_.projectPath)]);return{ok:!0,username:Z_.username,projectPath:L0.path_with_namespace}}catch(Z_){if(Z_ instanceof Bd.PublisherAuthFailedError)return{ok:!1,message:`${Z_.message} ${Z_.hint}`};if(Z_ instanceof Bd.PublisherRequestFailedError)return{ok:!1,message:Z_.status===404?`GitLab has no project "${Y_.projectPath}", or this token cannot see it.`:Z_.message};throw Z_}}async preflight(Y_,Q_={}){return(await this.resolveContext(Y_,Q_)).preflight}async publish(Y_,Q_={}){const Z_=await this.resolveContext(Y_,Q_),{preflight:L0,client:j0,settings:Y0,existingByMarker:Z0}=Z_,Dv={url:L0.mergeRequest.url,mergeRequestIid:L0.mergeRequest.iid,discussionIds:{},created:[],updated:[],skipped:[],failures:[],targets:L0.targets,dryRun:Q_.dryRun===!0};if(Q_.dryRun)return Dv;const Mv=Z_.comments.map(({comment:Ov,planned:pb})=>async()=>{const bx=(0,$_.buildNoteBody)({reviewSlug:Y_.slug,commentId:Ov.id,severity:Ov.severity,category:Ov.category,title:Ov.title,body:Ov.body,file:Ov.file,line:Ov.line,endLine:Ov.endLine,suggestion:Ov.suggestion,suggestionLang:Ov.suggestionLang,target:pb,host:Y0.host,projectPath:Y0.projectPath,headSha:L0.mergeRequest.headSha}),Kv=(0,$_.noteMarker)(Y_.slug,Ov.id),zx=Z0.get(Kv);try{if(zx){await j0.updateDraftNote(Y0.projectPath,L0.mergeRequest.iid,zx.id,bx),Dv.updated.push(Ov.id),Dv.discussionIds[Ov.id]=H_(zx.id);return}if(Ov.hostReference&&!zx){Dv.skipped.push(Ov.id);return}const HD=await this.createWithFallback(j0,Y0.projectPath,L0.mergeRequest.iid,bx,pb);Dv.created.push(Ov.id),Dv.discussionIds[Ov.id]=H_(HD.id)}catch(HD){Dv.failures.push({commentId:Ov.id,message:V_(HD)})}});return await J_(Mv,M_),Dv}async createWithFallback(Y_,Q_,Z_,L0,j0){const Y0=j0.position;try{return await Y_.createDraftNote(Q_,Z_,L0,Y0)}catch(Z0){if(!j0.position?.line_range||!(Z0 instanceof Bd.PublisherRequestFailedError))throw Z0;const Dv=(0,R_.withoutRange)(j0.position);return Y_.createDraftNote(Q_,Z_,L0,Dv)}}async resolveContext(Y_,Q_){const Z_=await this.requireSettings();await this.assertSameRepository(Z_);const L0=this.clientFor(Z_),j0=await L0.openMergeRequestsForBranch(Z_.projectPath,Y_.branch),Y0=Q_.mergeRequestIid?await L0.mergeRequest(Z_.projectPath,Q_.mergeRequestIid):j0[0];if(!Y0)throw new Bd.PublisherNoMergeRequestError(Y_.branch,Z_.projectPath);const Z0=Y0.diff_refs?Y0:await L0.mergeRequest(Z_.projectPath,Y0.iid),Dv=Z0.diff_refs;if(!Dv)throw new Bd.PublisherRequestFailedError(200,`Merge request !${Z0.iid} did not report the diff refs a comment position needs.`,"GET",`/merge_requests/${Z0.iid}`);const[Mv,Ov]=await Promise.all([L0.mergeRequestDiffs(Z_.projectPath,Z0.iid),L0.draftNotes(Z_.projectPath,Z0.iid)]),pb=(0,R_.indexDiffs)(Mv),bx=new Map;for(const US of Ov){const XD=(0,$_.readMarker)(US.note??"");XD&&bx.set(XD,US)}const zx=(Q_.only?Y_.comments.filter(US=>Q_.only?.includes(US.id)):Y_.comments).map(US=>{const XD=(0,R_.planTarget)(pb,Dv,{file:US.file,line:US.line,endLine:US.endLine}),TS=bx.get((0,$_.noteMarker)(Y_.slug,US.id)),GD={commentId:US.id,title:US.title,severity:US.severity,file:US.file,line:US.line,endLine:US.endLine,kind:XD.kind,detail:XD.detail,snappedTo:XD.snappedTo,existingReference:TS?H_(TS.id):US.hostReference};return{comment:US,planned:XD,target:GD}}),HD=j_(Z0,Dv.head_sha),ES=await this.originProjectPath(),JS={publisher:this.id,host:Z_.host,projectPath:Z_.projectPath,projectPathSource:Z_.projectPathSource,projectUrl:`${Z_.host.replace(/\/+$/,"")}/${Z_.projectPath}`,remoteUrl:Z_.remoteUrl,originProjectPath:ES&&ES!==Z_.projectPath?ES:void 0,mergeRequest:HD,candidates:j0.map(US=>j_(US,US.sha)),changedFileCount:pb.length,drift:Y_.headSha&&Dv.head_sha&&!Dv.head_sha.startsWith(Y_.headSha.slice(0,7))?{reviewHeadSha:Y_.headSha,mergeRequestHeadSha:Dv.head_sha}:void 0,targets:zx.map(US=>US.target),alreadyPublished:zx.filter(US=>US.target.existingReference!==void 0).length};return{settings:Z_,client:L0,preflight:JS,comments:zx,existingByMarker:bx,files:pb}}async assertSameRepository(Y_){const Q_=await this.git.remoteUrl(this.settings.directory,"origin");if(!(!Q_||Y_.remoteUrl.length===0)&&!(0,N_.sameRemote)(Y_.remoteUrl,Q_))throw new Bd.PublisherProjectMismatchError(Y_.remoteUrl,Q_)}async originProjectPath(){const Y_=await this.git.remoteUrl(this.settings.directory,"origin");return Y_?(0,N_.parseGitLabRemote)(Y_)?.projectPath:void 0}clientFor(Y_){return new F_.GitLabApiClient({host:Y_.host,token:Y_.token})}async requireSettings(){const Y_=await this.resolveSettings();if(!Y_)throw new Bd.PublisherNotConfiguredError("not-configured","This project has no GitLab token. Add one in Settings \u2192 Publishing \u2014 it is stored for this project only.");return Y_}async resolveSettings(){const Y_=await this.settings.read();if(Y_)return Y_;const Q_=process.env.GITLAB_TOKEN??process.env.GITLAB_PRIVATE_TOKEN;if(!Q_)return;const Z_=await this.git.remoteUrl(this.settings.directory,"origin"),L0=Z_?(0,N_.parseGitLabRemote)(Z_):void 0;if(!(!L0||!Z_))return{publisher:"gitlab",host:process.env.GITLAB_HOST??L0.host,projectPath:L0.projectPath,projectPathSource:"origin",remoteUrl:Z_,token:Q_,updatedAt:new Date().toISOString()}}};httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=L_,httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=L_=t([(0,pd.Injectable)(),fd(0,(0,pd.Inject)(Rd.PublisherSettingsRepository)),fd(1,(0,pd.Inject)(C_.GitGateway)),Xf("design:paramtypes",[Rd.PublisherSettingsRepository,C_.GitGateway])],L_);function j_(z_,Y_){return{iid:z_.iid,title:z_.title,url:z_.web_url,sourceBranch:z_.source_branch,targetBranch:z_.target_branch,headSha:Y_,updatedAt:z_.updated_at}}e(j_,"toSummary");function H_(z_){return`draft:${z_}`}e(H_,"referenceOf");function V_(z_){return z_ instanceof Error?z_.message:String(z_)}e(V_,"messageOf");async function J_(z_,Y_){let Q_=0;const Z_=Array.from({length:Math.min(Y_,z_.length)},async()=>{for(;;){const L0=Q_;if(Q_+=1,L0>=z_.length)return;await z_[L0]()}});await Promise.all(Z_)}return e(J_,"runWithConcurrency"),httpGitlabReviewPublisher_gateway}e(requireHttpGitlabReviewPublisher_gateway,"requireHttpGitlabReviewPublisher_gateway");var hasRequiredGitlab;function requireGitlab(){return hasRequiredGitlab||(hasRequiredGitlab=1,(function(t){var Xf=gitlab&&gitlab.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=gitlab&&gitlab.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGitlabDiffPosition(),t),fd(requireGitlabNoteBody(),t),fd(requireGitlabApi_client(),t),fd(requireHttpGitlabReviewPublisher_gateway(),t)})(gitlab)),gitlab}e(requireGitlab,"requireGitlab");var queryBusPackageCatalog_gateway={},hasRequiredQueryBusPackageCatalog_gateway;function requireQueryBusPackageCatalog_gateway(){if(hasRequiredQueryBusPackageCatalog_gateway)return queryBusPackageCatalog_gateway;hasRequiredQueryBusPackageCatalog_gateway=1;var t=queryBusPackageCatalog_gateway&&queryBusPackageCatalog_gateway.__decorate||function(C_,F_,R_,$_){var N_=arguments.length,M_=N_<3?F_:$_===null?$_=Object.getOwnPropertyDescriptor(F_,R_):$_,L_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")M_=Reflect.decorate(C_,F_,R_,$_);else for(var j_=C_.length-1;j_>=0;j_--)(L_=C_[j_])&&(M_=(N_<3?L_(M_):N_>3?L_(F_,R_,M_):L_(F_,R_))||M_);return N_>3&&M_&&Object.defineProperty(F_,R_,M_),M_},Xf=queryBusPackageCatalog_gateway&&queryBusPackageCatalog_gateway.__metadata||function(C_,F_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(C_,F_)};Object.defineProperty(queryBusPackageCatalog_gateway,"__esModule",{value:!0}),queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=void 0;const fd=requireCommon$1(),pd=requireCqrs(),dd=requireQueries$2(),Rd=requireUiLogger();let Bd=class{static{e(this,"QueryBusPackageCatalogGateway")}constructor(F_){this.queryBus=F_}async inspect(F_){return(await this.queryBus.execute(new dd.InspectPackagesQuery(F_))).packages}async inspectOne(F_,R_){return(await this.queryBus.execute(new dd.InspectPackagesQuery(F_,R_))).packages[0]}async listRegistry(){try{return(await this.queryBus.execute(new dd.ListRemotePackagesQuery)).packages}catch(F_){return(0,Rd.uiLog)({event:"packages.registry_unavailable",message:String(F_)}),[]}}};return queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=Bd,queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=Bd=t([(0,fd.Injectable)(),Xf("design:paramtypes",[pd.QueryBus])],Bd),queryBusPackageCatalog_gateway}e(requireQueryBusPackageCatalog_gateway,"requireQueryBusPackageCatalog_gateway");var hasRequiredGateways$2;function requireGateways$2(){return hasRequiredGateways$2||(hasRequiredGateways$2=1,(function(t){var Xf=gateways$2&&gateways$2.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=gateways$2&&gateways$2.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireFileSystemProject_gateway(),t),fd(requireNodeUiDaemonProcess_gateway(),t),fd(requireFetchUiClient_gateway(),t),fd(requireSpawnCliRunner_gateway(),t),fd(requireFsWatchWorkspaceWatcher_gateway(),t),fd(requirePlatformBrowserOpener_gateway(),t),fd(requireUnavailableReviewPublisher_gateway(),t),fd(requireGitlab(),t),fd(requireQueryBusPackageCatalog_gateway(),t)})(gateways$2)),gateways$2}e(requireGateways$2,"requireGateways$2");var cli$1={},ui$9={},ui_command={},uiStart_command={},getWorkingDirectory={},hasRequiredGetWorkingDirectory;function requireGetWorkingDirectory(){if(hasRequiredGetWorkingDirectory)return getWorkingDirectory;hasRequiredGetWorkingDirectory=1,Object.defineProperty(getWorkingDirectory,"__esModule",{value:!0}),getWorkingDirectory.getWorkingDirectory=t;function t(){return process.env.INVARIANT_CWD||process.cwd()}return e(t,"getWorkingDirectory$1"),getWorkingDirectory}e(requireGetWorkingDirectory,"requireGetWorkingDirectory");var renderStart={},hasRequiredRenderStart;function requireRenderStart(){if(hasRequiredRenderStart)return renderStart;hasRequiredRenderStart=1,Object.defineProperty(renderStart,"__esModule",{value:!0}),renderStart.renderStartResult=Xf;const t=requireSource();function Xf(fd){const pd=fd.alreadyRunning?"already running":"started";console.log(t.green(`\u2713 invariant ui ${pd} on ${fd.url}`)),console.log(t.gray(` project ${fd.directory}`)),console.log(t.gray(" stop invariant ui stop"))}return e(Xf,"renderStartResult"),renderStart}e(requireRenderStart,"requireRenderStart");var parsePort={},hasRequiredParsePort;function requireParsePort(){if(hasRequiredParsePort)return parsePort;hasRequiredParsePort=1,Object.defineProperty(parsePort,"__esModule",{value:!0}),parsePort.parsePort=Xf;const t=requireDomain$1();function Xf(fd){if(fd===void 0||fd==="")return;const pd=typeof fd=="number"?fd:Number.parseInt(fd,10);if(!Number.isInteger(pd)||pd<1||pd>65535)throw new t.InvalidSessionRequestError(`"${fd}" is not a valid port.`);return pd}return e(Xf,"parsePort$1"),parsePort}e(requireParsePort,"requireParsePort");var hasRequiredUiStart_command;function requireUiStart_command(){if(hasRequiredUiStart_command)return uiStart_command;hasRequiredUiStart_command=1;var t=uiStart_command&&uiStart_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=uiStart_command&&uiStart_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=uiStart_command&&uiStart_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(uiStart_command,"__esModule",{value:!0}),uiStart_command.UiStartCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommands$2(),Bd=requireGateways$3(),C_=requireCommon$1(),F_=requireGetWorkingDirectory(),R_=requireRenderStart(),$_=requireParsePort();let N_=class extends pd.CommandRunner{static{e(this,"UiStartCliCommand")}constructor(L_,j_){super(),this.commandBus=L_,this.browser=j_}async run(L_,j_={}){const H_=j_.port??(0,$_.parsePort)(L_[0]),V_=await this.commandBus.execute(new Rd.StartUiCommand((0,F_.getWorkingDirectory)(),H_));(0,R_.renderStartResult)(V_),j_.open!==!1&&await this.browser.open(V_.url)}parsePortOption(L_){return(0,$_.parsePort)(L_)}parseNoOpen(){return!1}};return uiStart_command.UiStartCliCommand=N_,t([(0,pd.Option)({flags:"-p, --port <port>",description:"Port to listen on (default 4200)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],N_.prototype,"parsePortOption",null),t([(0,pd.Option)({flags:"--no-open",description:"Do not open a browser window"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],N_.prototype,"parseNoOpen",null),uiStart_command.UiStartCliCommand=N_=t([(0,pd.SubCommand)({name:"start",arguments:"[port]",description:"Start the local session UI for this project (default port 4200)"}),fd(1,(0,C_.Inject)(Bd.BrowserOpenerGateway)),Xf("design:paramtypes",[dd.CommandBus,Bd.BrowserOpenerGateway])],N_),uiStart_command}e(requireUiStart_command,"requireUiStart_command");var uiStop_command={},hasRequiredUiStop_command;function requireUiStop_command(){if(hasRequiredUiStop_command)return uiStop_command;hasRequiredUiStop_command=1;var t=uiStop_command&&uiStop_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=uiStop_command&&uiStop_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(uiStop_command,"__esModule",{value:!0}),uiStop_command.UiStopCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$2(),Bd=requireGetWorkingDirectory();let C_=class extends fd.CommandRunner{static{e(this,"UiStopCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_={}){const N_=await this.commandBus.execute(new Rd.StopUiCommand((0,Bd.getWorkingDirectory)(),$_.all===!0));if(N_.stopped.length===0){console.log(dd.gray("ui was not running"));return}for(const M_ of N_.stopped){const L_=M_.wasRunning?"stopped":"cleaned up (already gone)";console.log(dd.green(`\u2713 ui ${L_} \u2014 port ${M_.port} ${M_.directory}`))}}parseAll(){return!0}};return uiStop_command.UiStopCliCommand=C_,t([(0,fd.Option)({flags:"--all",description:"Stop every running UI instance on this machine"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseAll",null),uiStop_command.UiStopCliCommand=C_=t([(0,fd.SubCommand)({name:"stop",description:"Stop the UI for this project (--all stops every instance)"}),Xf("design:paramtypes",[pd.CommandBus])],C_),uiStop_command}e(requireUiStop_command,"requireUiStop_command");var uiStatus_command={},hasRequiredUiStatus_command;function requireUiStatus_command(){if(hasRequiredUiStatus_command)return uiStatus_command;hasRequiredUiStatus_command=1;var t=uiStatus_command&&uiStatus_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=uiStatus_command&&uiStatus_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(uiStatus_command,"__esModule",{value:!0}),uiStatus_command.UiStatusCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$1(),Bd=requireGetWorkingDirectory();let C_=class extends fd.CommandRunner{static{e(this,"UiStatusCliCommand")}constructor($_){super(),this.queryBus=$_}async run($_,N_={}){const M_=await this.queryBus.execute(new Rd.GetUiStatusQuery((0,Bd.getWorkingDirectory)()));N_.json?console.log(JSON.stringify(M_,null,2)):this.render(M_),process.exitCode=M_.anyRunning?0:1}parseJson(){return!0}render($_){if($_.instances.length===0){console.log(dd.yellow("invariant ui \u2014 STOPPED (hint: invariant ui)")),console.log(dd.gray(`current ${$_.currentDirectory}`));return}for(const N_ of $_.instances){const M_=N_.current?dd.white("\u25B8"):dd.gray(" "),L_=N_.running?dd.green(`RUNNING ${N_.url} pid ${N_.pid} up ${F_(N_.uptimeSeconds)}`):dd.yellow(`STOPPED port ${N_.port} pid ${N_.pid}`);console.log(`${M_} ${L_}`),console.log(dd.gray(` ${N_.directory} (v${N_.cliVersion})`));for(const j_ of N_.warnings)console.log(dd.yellow(` \u26A0 ${j_}`))}console.log(dd.gray(`registry ${$_.registryPath}`))}};uiStatus_command.UiStatusCliCommand=C_,t([(0,fd.Option)({flags:"--json",description:"Machine-readable output"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseJson",null),uiStatus_command.UiStatusCliCommand=C_=t([(0,fd.SubCommand)({name:"status",description:"Show every running UI instance (--json for machine output)"}),Xf("design:paramtypes",[pd.QueryBus])],C_);function F_(R_){if(R_===void 0)return"?";const $_=Math.floor(R_/3600),N_=Math.floor(R_%3600/60);if($_>0)return`${$_}h${String(N_).padStart(2,"0")}m`;const M_=R_%60;return N_>0?`${N_}m${String(M_).padStart(2,"0")}s`:`${M_}s`}return e(F_,"formatUptime"),uiStatus_command}e(requireUiStatus_command,"requireUiStatus_command");var uiServe_command={},getCliVersion$1={},hasRequiredGetCliVersion$1;function requireGetCliVersion$1(){if(hasRequiredGetCliVersion$1)return getCliVersion$1;hasRequiredGetCliVersion$1=1,Object.defineProperty(getCliVersion$1,"__esModule",{value:!0}),getCliVersion$1.getCliVersion=fd;const t=require$$2$2,Xf=require$$2$3;function fd(){const pd=[Xf.resolve(__dirname,"..","package.json"),Xf.resolve(__dirname,"..","..","package.json"),Xf.resolve(__dirname,"..","..","..","..","..","..","package.json")];for(const dd of pd)try{const Rd=JSON.parse(t.readFileSync(dd,"utf-8"));if(Rd.version)return Rd.version}catch{}return"0.0.0"}return e(fd,"getCliVersion"),getCliVersion$1}e(requireGetCliVersion$1,"requireGetCliVersion$1");var hasRequiredUiServe_command;function requireUiServe_command(){if(hasRequiredUiServe_command)return uiServe_command;hasRequiredUiServe_command=1;var t=uiServe_command&&uiServe_command.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=uiServe_command&&uiServe_command.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)};Object.defineProperty(uiServe_command,"__esModule",{value:!0}),uiServe_command.UiServeCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireCommands$2(),Rd=requireGetCliVersion$1(),Bd=requireGetWorkingDirectory(),C_=requireUiLogger(),F_=requireParsePort();let R_=class extends fd.CommandRunner{static{e(this,"UiServeCliCommand")}constructor(N_){super(),this.commandBus=N_}setCommand(N_){return N_._hidden=!0,super.setCommand(N_)}async run(N_,M_={}){try{const L_=await this.commandBus.execute(new dd.ServeUiCommand((0,Bd.getWorkingDirectory)(),M_.port??dd.DEFAULT_UI_PORT,M_.explicitPort===!0,(0,Rd.getCliVersion)()));if(L_.kind==="sibling-running")return;await L_.waitUntilShutdown()}catch(L_){(0,C_.uiLog)({event:"daemon.start_failed",message:L_ instanceof Error?L_.message:String(L_)}),process.exitCode=1}}parsePortOption(N_){return(0,F_.parsePort)(N_)}parseExplicitPort(){return!0}};return uiServe_command.UiServeCliCommand=R_,t([(0,fd.Option)({flags:"--port <port>",description:"Port to bind"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],R_.prototype,"parsePortOption",null),t([(0,fd.Option)({flags:"--explicit-port",description:"Fail instead of probing forward"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],R_.prototype,"parseExplicitPort",null),uiServe_command.UiServeCliCommand=R_=t([(0,fd.SubCommand)({name:"serve",description:"Run the UI daemon in-process (internal)",options:{hidden:!0}}),Xf("design:paramtypes",[pd.CommandBus])],R_),uiServe_command}e(requireUiServe_command,"requireUiServe_command");var uiMigrateHeaders_command={},hasRequiredUiMigrateHeaders_command;function requireUiMigrateHeaders_command(){if(hasRequiredUiMigrateHeaders_command)return uiMigrateHeaders_command;hasRequiredUiMigrateHeaders_command=1;var t=uiMigrateHeaders_command&&uiMigrateHeaders_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=uiMigrateHeaders_command&&uiMigrateHeaders_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=uiMigrateHeaders_command&&uiMigrateHeaders_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(uiMigrateHeaders_command,"__esModule",{value:!0}),uiMigrateHeaders_command.UiMigrateHeadersCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireSource(),Bd=requireCommon$1(),C_=requireCommands$2(),F_=requireGateways$3(),R_=requirePersistence$2(),$_=requireGetWorkingDirectory();let N_=class extends pd.CommandRunner{static{e(this,"UiMigrateHeadersCliCommand")}constructor(L_,j_,H_,V_){super(),this.commandBus=L_,this.queryBus=j_,this.projectGateway=H_,this.sessions=V_}async run(){const L_=await this.projectGateway.resolve((0,$_.getWorkingDirectory)());this.sessions.pin(L_.directory);const j_=await this.commandBus.execute(new C_.MigrateSessionHeaderCommand);if(j_.migrated.length===0){console.log(Rd.green("\u2713 every session already has a valid <session-meta> header"));return}console.log(Rd.green(`\u2713 migrated ${j_.migrated.length} session(s)`));for(const H_ of j_.migrated)console.log(Rd.gray(` ${H_.status.padEnd(11)} ${H_.title}`))}};return uiMigrateHeaders_command.UiMigrateHeadersCliCommand=N_,uiMigrateHeaders_command.UiMigrateHeadersCliCommand=N_=t([(0,pd.SubCommand)({name:"migrate-headers",description:"Add a canonical <session-meta> header to legacy session files"}),fd(2,(0,Bd.Inject)(F_.ProjectGateway)),Xf("design:paramtypes",[dd.CommandBus,dd.QueryBus,F_.ProjectGateway,R_.FileSystemSessionRepository])],N_),uiMigrateHeaders_command}e(requireUiMigrateHeaders_command,"requireUiMigrateHeaders_command");var hasRequiredUi_command;function requireUi_command(){if(hasRequiredUi_command)return ui_command;hasRequiredUi_command=1;var t=ui_command&&ui_command.__decorate||function(J_,z_,Y_,Q_){var Z_=arguments.length,L0=Z_<3?z_:Q_===null?Q_=Object.getOwnPropertyDescriptor(z_,Y_):Q_,j0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L0=Reflect.decorate(J_,z_,Y_,Q_);else for(var Y0=J_.length-1;Y0>=0;Y0--)(j0=J_[Y0])&&(L0=(Z_<3?j0(L0):Z_>3?j0(z_,Y_,L0):j0(z_,Y_))||L0);return Z_>3&&L0&&Object.defineProperty(z_,Y_,L0),L0},Xf=ui_command&&ui_command.__metadata||function(J_,z_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(J_,z_)},fd=ui_command&&ui_command.__param||function(J_,z_){return function(Y_,Q_){z_(Y_,Q_,J_)}};Object.defineProperty(ui_command,"__esModule",{value:!0}),ui_command.UiCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommon$1(),Bd=requireCommands$2(),C_=requireGateways$3(),F_=requireUiStart_command(),R_=requireUiStop_command(),$_=requireUiStatus_command(),N_=requireUiServe_command(),M_=requireUiMigrateHeaders_command(),L_=requireGetWorkingDirectory(),j_=requireRenderStart(),H_=requireParsePort();let V_=class extends pd.CommandRunner{static{e(this,"UiCliCommand")}constructor(z_,Y_){super(),this.commandBus=z_,this.browser=Y_}async run(z_,Y_={}){const Q_=Y_.port??(0,H_.parsePort)(z_[0]),Z_=await this.commandBus.execute(new Bd.StartUiCommand((0,L_.getWorkingDirectory)(),Q_));(0,j_.renderStartResult)(Z_),Y_.open!==!1&&await this.browser.open(Z_.url)}parsePortOption(z_){return(0,H_.parsePort)(z_)}parseNoOpen(){return!1}};return ui_command.UiCliCommand=V_,t([(0,pd.Option)({flags:"-p, --port <port>",description:"Port to listen on (default 4200)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],V_.prototype,"parsePortOption",null),t([(0,pd.Option)({flags:"--no-open",description:"Do not open a browser window"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],V_.prototype,"parseNoOpen",null),ui_command.UiCliCommand=V_=t([(0,pd.Command)({name:"ui",arguments:"[port]",description:"Local web UI for this project\u2019s sessions (start, stop, status)",subCommands:[F_.UiStartCliCommand,R_.UiStopCliCommand,$_.UiStatusCliCommand,N_.UiServeCliCommand,M_.UiMigrateHeadersCliCommand]}),fd(1,(0,Rd.Inject)(C_.BrowserOpenerGateway)),Xf("design:paramtypes",[dd.CommandBus,C_.BrowserOpenerGateway])],V_),ui_command}e(requireUi_command,"requireUi_command");var hasRequiredUi;function requireUi(){return hasRequiredUi||(hasRequiredUi=1,(function(t){var Xf=ui$9&&ui$9.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=ui$9&&ui$9.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUi_command(),t),fd(requireUiStart_command(),t),fd(requireUiStop_command(),t),fd(requireUiStatus_command(),t),fd(requireUiServe_command(),t),fd(requireUiMigrateHeaders_command(),t)})(ui$9)),ui$9}e(requireUi,"requireUi");var hasRequiredCli$1;function requireCli$1(){return hasRequiredCli$1||(hasRequiredCli$1=1,(function(t){var Xf=cli$1&&cli$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=cli$1&&cli$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUi(),t)})(cli$1)),cli$1}e(requireCli$1,"requireCli$1");var hasRequiredSessionUi_module;function requireSessionUi_module(){if(hasRequiredSessionUi_module)return sessionUi_module;hasRequiredSessionUi_module=1;var t=sessionUi_module&&sessionUi_module.__decorate||function(Q_,Z_,L0,j0){var Y0=arguments.length,Z0=Y0<3?Z_:j0===null?j0=Object.getOwnPropertyDescriptor(Z_,L0):j0,Dv;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Z0=Reflect.decorate(Q_,Z_,L0,j0);else for(var Mv=Q_.length-1;Mv>=0;Mv--)(Dv=Q_[Mv])&&(Z0=(Y0<3?Dv(Z0):Y0>3?Dv(Z_,L0,Z0):Dv(Z_,L0))||Z0);return Y0>3&&Z0&&Object.defineProperty(Z_,L0,Z0),Z0};Object.defineProperty(sessionUi_module,"__esModule",{value:!0}),sessionUi_module.SessionUiModule=void 0;const Xf=requireCommon$1(),fd=requireCqrs(),pd=requireGit(),dd=requireCommands$2(),Rd=requireQueries$1(),Bd=requirePersistence$3(),C_=requireGateways$3(),F_=requirePersistence$2(),R_=requireGateways$2(),$_=requireUiServer(),N_=requireCli$1(),M_=[F_.FileSystemSessionRepository,{provide:Bd.SessionRepository,useExisting:F_.FileSystemSessionRepository},F_.FileSystemReviewRepository,{provide:Bd.ReviewRepository,useExisting:F_.FileSystemReviewRepository},{provide:Bd.UiRegistryRepository,useClass:F_.FileUiRegistryRepository},F_.FilePublisherSettingsRepository,{provide:Bd.PublisherSettingsRepository,useExisting:F_.FilePublisherSettingsRepository},F_.ProjectPin],L_=[{provide:C_.ProjectGateway,useClass:R_.FileSystemProjectGateway},{provide:C_.UiDaemonProcessGateway,useClass:R_.NodeUiDaemonProcessGateway},{provide:C_.UiClientGateway,useClass:R_.FetchUiClientGateway},{provide:C_.CliRunnerGateway,useClass:R_.SpawnCliRunnerGateway},{provide:C_.WorkspaceWatcherGateway,useClass:R_.FsWatchWorkspaceWatcherGateway},{provide:C_.ReviewPublisherGateway,useClass:R_.HttpGitLabReviewPublisherGateway},{provide:C_.BrowserOpenerGateway,useClass:R_.PlatformBrowserOpenerGateway},{provide:C_.PackageCatalogGateway,useClass:R_.QueryBusPackageCatalogGateway}],j_=[$_.UiHttpServer],H_=[dd.PackageOperationLock],V_=[dd.StartUiCommandHandler,dd.StopUiCommandHandler,dd.ServeUiCommandHandler,dd.SaveSessionCommandHandler,dd.StashSessionBodyCommandHandler,dd.SetSessionStatusCommandHandler,dd.PromoteSessionActivityCommandHandler,dd.CreateSessionCommandHandler,dd.ArchiveSessionCommandHandler,dd.MigrateSessionHeaderCommandHandler,dd.CreateReviewSessionCommandHandler,dd.LinkReviewSessionCommandHandler,dd.UpdateReviewCommentCommandHandler,dd.BulkUpdateReviewCommentsCommandHandler,dd.PlanReviewChangesCommandHandler,dd.PublishReviewCommandHandler,dd.SavePublisherSettingsCommandHandler,dd.RemovePublisherSettingsCommandHandler,dd.InstallPackageUiCommandHandler,dd.ApplyPackageItemsCommandHandler,dd.UninstallPackageUiCommandHandler,dd.SyncProjectCommandHandler],J_=[Rd.ListSessionsQueryHandler,Rd.GetSessionQueryHandler,Rd.GetUiStatusQueryHandler,Rd.GetProjectSummaryQueryHandler,Rd.ListReviewsQueryHandler,Rd.GetReviewQueryHandler,Rd.GetGitStatusQueryHandler,Rd.GetPackageOverviewQueryHandler,Rd.GetPackageDetailQueryHandler,Rd.ListRegistryPackagesQueryHandler,Rd.GetPublisherSettingsQueryHandler,Rd.VerifyPublisherQueryHandler,Rd.GetPublishPreflightQueryHandler],z_=[N_.UiCliCommand,N_.UiStartCliCommand,N_.UiStopCliCommand,N_.UiStatusCliCommand,N_.UiServeCliCommand,N_.UiMigrateHeadersCliCommand];let Y_=class{static{e(this,"SessionUiModule")}};return sessionUi_module.SessionUiModule=Y_,sessionUi_module.SessionUiModule=Y_=t([(0,Xf.Module)({imports:[fd.CqrsModule,pd.GitModule],providers:[...M_,...L_,...j_,...H_,...V_,...J_,...z_],exports:[Bd.SessionRepository,Bd.ReviewRepository,Bd.UiRegistryRepository,F_.ProjectPin]})],Y_),sessionUi_module}e(requireSessionUi_module,"requireSessionUi_module");var hasRequiredSessionUi;function requireSessionUi(){return hasRequiredSessionUi||(hasRequiredSessionUi=1,(function(t){var Xf=sessionUi&&sessionUi.__createBinding||(Object.create?(function(Rd,Bd,C_,F_){F_===void 0&&(F_=C_);var R_=Object.getOwnPropertyDescriptor(Bd,C_);(!R_||("get"in R_?!Bd.__esModule:R_.writable||R_.configurable))&&(R_={enumerable:!0,get:e(function(){return Bd[C_]},"get")}),Object.defineProperty(Rd,F_,R_)}):(function(Rd,Bd,C_,F_){F_===void 0&&(F_=C_),Rd[F_]=Bd[C_]})),fd=sessionUi&&sessionUi.__exportStar||function(Rd,Bd){for(var C_ in Rd)C_!=="default"&&!Object.prototype.hasOwnProperty.call(Bd,C_)&&Xf(Bd,Rd,C_)};Object.defineProperty(t,"__esModule",{value:!0}),t.SessionUiModule=t.ProjectPin=void 0,fd(requireCommands$2(),t),fd(requireQueries$1(),t);var pd=requireProjectPin();Object.defineProperty(t,"ProjectPin",{enumerable:!0,get:e(function(){return pd.ProjectPin},"get")});var dd=requireSessionUi_module();Object.defineProperty(t,"SessionUiModule",{enumerable:!0,get:e(function(){return dd.SessionUiModule},"get")})})(sessionUi)),sessionUi}e(requireSessionUi,"requireSessionUi");var hasRequiredReviewPublish_command;function requireReviewPublish_command(){if(hasRequiredReviewPublish_command)return reviewPublish_command;hasRequiredReviewPublish_command=1;var t=reviewPublish_command&&reviewPublish_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=reviewPublish_command&&reviewPublish_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(reviewPublish_command,"__esModule",{value:!0}),reviewPublish_command.ReviewPublishCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireSessionUi(),Bd=requireGetWorkingDirectory$1(),C_=requireReview$2();let F_=class extends fd.CommandRunner{static{e(this,"ReviewPublishCliCommand")}constructor($_,N_,M_){super(),this.commandBus=$_,this.queryBus=N_,this.projectPin=M_}parseDryRun(){return!0}parseMr($_){return Number($_)}async run($_,N_={}){const[M_]=$_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a branch, slug, or review file path.")),console.log(dd.gray(" Usage: invariant review publish <review> [--dry-run] [--mr <iid>]"));return}this.projectPin.pin((0,Bd.getWorkingDirectory)());const L_=(0,C_.normalizeReviewSlug)(M_);try{const j_=await this.queryBus.execute(new Rd.GetPublishPreflightQuery(L_,N_.mr));if(this.printPreflight(j_),N_.dryRun){console.log(""),console.log(dd.gray("Dry run \u2014 nothing was written."));return}const H_=await this.commandBus.execute(new Rd.PublishReviewCommand(L_,{mergeRequestIid:N_.mr})),V_=H_.created.length+H_.updated.length;console.log(""),console.log(dd.green(`\u2713 ${V_} draft comment(s) on !${H_.mergeRequestIid}`)),H_.skipped.length>0&&console.log(dd.gray(` ${H_.skipped.length} already submitted \u2014 left alone`));for(const J_ of H_.failures)console.log(dd.red(` \u2716 ${J_.commentId}: ${J_.message}`));console.log(""),console.log(dd.blue("These are PENDING comments. Read them and press \u201CSubmit review\u201D:")),console.log(dd.white(` ${H_.url}`))}catch(j_){if(j_ instanceof Error){console.log(dd.red(`\u2716 Error: ${j_.message}`));return}throw j_}}printPreflight($_){console.log(dd.gray(` Project ${$_.projectPath} (${$_.projectPathSource})`)),console.log(dd.gray(` Merge req. !${$_.mergeRequest.iid} ${$_.mergeRequest.title}`)),console.log(dd.gray(` Diff ${$_.changedFileCount} file(s) \xB7 head ${$_.mergeRequest.headSha.slice(0,7)}`)),console.log(dd.gray(` Sending ${$_.targets.length} staged comment(s)`)),$_.originProjectPath&&console.log(dd.yellow(` ! Publishing to ${$_.projectPath}, which is not origin (${$_.originProjectPath})`)),$_.drift&&console.log(dd.yellow(` ! Review written against ${$_.drift.reviewHeadSha.slice(0,7)}; the MR is at ${$_.drift.mergeRequestHeadSha.slice(0,7)} \u2014 lines may have moved`));for(const N_ of $_.targets){const M_=N_.file?`${N_.file}${N_.line?`:${N_.line}`:""}`:"general comment";console.log(dd.gray(` ${N_.kind.padEnd(8)} ${M_} \u2014 ${N_.title}`))}}};return reviewPublish_command.ReviewPublishCliCommand=F_,t([(0,fd.Option)({flags:"--dry-run",description:"Resolve everything and write nothing"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],F_.prototype,"parseDryRun",null),t([(0,fd.Option)({flags:"--mr <iid>",description:"Publish to this merge request rather than resolving one"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],F_.prototype,"parseMr",null),reviewPublish_command.ReviewPublishCliCommand=F_=t([(0,fd.SubCommand)({name:"publish",arguments:"<review>",description:"Publish a triaged review to GitLab as draft merge-request comments"}),Xf("design:paramtypes",[pd.CommandBus,pd.QueryBus,Rd.ProjectPin])],F_),reviewPublish_command}e(requireReviewPublish_command,"requireReviewPublish_command");var hasRequiredReview_command;function requireReview_command(){if(hasRequiredReview_command)return review_command;hasRequiredReview_command=1;var t=review_command&&review_command.__decorate||function(z_,Y_,Q_,Z_){var L0=arguments.length,j0=L0<3?Y_:Z_===null?Z_=Object.getOwnPropertyDescriptor(Y_,Q_):Z_,Y0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j0=Reflect.decorate(z_,Y_,Q_,Z_);else for(var Z0=z_.length-1;Z0>=0;Z0--)(Y0=z_[Z0])&&(j0=(L0<3?Y0(j0):L0>3?Y0(Y_,Q_,j0):Y0(Y_,Q_))||j0);return L0>3&&j0&&Object.defineProperty(Y_,Q_,j0),j0},Xf=review_command&&review_command.__metadata||function(z_,Y_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(z_,Y_)},fd=review_command&&review_command.__param||function(z_,Y_){return function(Q_,Z_){Y_(Q_,Z_,z_)}};Object.defineProperty(review_command,"__esModule",{value:!0}),review_command.ReviewCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommon$1(),Bd=requireSource(),C_=requireCommands$3(),F_=requirePersistence$5(),R_=requireGetWorkingDirectory$1(),$_=requireSession$1(),N_=requireReview$2(),M_=requireReviewCandidates(),L_=requireReviewList_command(),j_=requireReviewShow_command(),H_=requireReviewPlanChanges_command(),V_=requireReviewPublish_command();let J_=class extends pd.CommandRunner{static{e(this,"ReviewCliCommand")}constructor(Y_,Q_){super(),this.commandBus=Y_,this.storageRepository=Q_}async run(Y_,Q_){const Z_=(0,R_.getWorkingDirectory)();try{(Q_.session||Q_.standalone)&&console.log(Bd.blue("Resolving the diff to review..."));const L0=await this.commandBus.execute(new C_.ReviewComposeCommand(Z_,{parentSessionId:Q_.session?(0,$_.normalizeSessionId)(Q_.session):void 0,standalone:Q_.standalone,base:Q_.base}));console.log(Bd.green("\u2713 Created review session")),console.log(""),console.log(Bd.gray(` Branch ${L0.branch}`)),console.log(Bd.gray(` Base ${L0.base} at ${L0.baseSha.slice(0,7)}`)),console.log(Bd.gray(` Head ${L0.headSha.slice(0,7)}`)),console.log(Bd.gray(` Files ${L0.changedFileCount}`)),console.log(Bd.gray(` Review file ${L0.reviewFile}`)),console.log(Bd.gray(L0.parentSessionId?` Reviewing ${L0.parentSessionId}`:" Reviewing this branch on its own \u2014 tied to no session")),L0.hasStagedChanges||console.log(Bd.gray(" Note nothing is staged \u2014 only committed work is in scope")),console.log(""),console.log(Bd.blue("Paste this into a NEW agent conversation:")),console.log(Bd.white(` "execute instructions from ${L0.sessionPath}"`)),console.log(Bd.gray(" A fresh conversation is what keeps the review honest \u2014 it has not seen the plan."))}catch(L0){if(L0 instanceof N_.ReviewParentRequiredError||L0 instanceof N_.ReviewParentNotFoundError){await this.explainMissingParent(Z_,L0);return}if(L0 instanceof N_.InvalidReviewLinkError){console.log(Bd.red(`\u2716 ${L0.message}`));return}if(L0 instanceof Error)console.log(Bd.red(`\u2716 Error: ${L0.message}`));else throw L0}}async explainMissingParent(Y_,Q_){console.log(Bd.red(`\u2716 ${Q_.message}`)),console.log(""),console.log(Bd.gray(" A review says what it is about \u2014 one of:")),console.log(Bd.white(" invariant review --session <session-id> # this session's work")),console.log(Bd.white(" invariant review --standalone # this branch, on its own"));const Z_=await(0,M_.listReviewCandidates)(this.storageRepository,Y_).catch(()=>[]);if(Z_.length===0)return;console.log(""),console.log(Bd.blue(" Recent sessions:"));const L0=Z_.reduce((j0,Y0)=>Math.max(j0,Y0.status.length),0);for(const j0 of Z_)console.log(Bd.gray(` ${j0.sessionId} ${j0.status.padEnd(L0)} ${j0.title}`))}parseSession(Y_){return Y_}parseStandalone(){return!0}parseBase(Y_){return Y_}};return review_command.ReviewCliCommand=J_,t([(0,pd.Option)({flags:"-s, --session <session>",description:"The plan session whose work is under review"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],J_.prototype,"parseSession",null),t([(0,pd.Option)({flags:"--standalone",description:"Review this branch on its own, tied to no session"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],J_.prototype,"parseStandalone",null),t([(0,pd.Option)({flags:"-b, --base <ref>",description:"Ref to diff against (default: origin/main, then origin/master, main, master)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],J_.prototype,"parseBase",null),review_command.ReviewCliCommand=J_=t([(0,pd.Command)({name:"review",description:"Compose a review session for the current branch (list, show, plan-changes, publish)",subCommands:[L_.ReviewListCliCommand,j_.ReviewShowCliCommand,H_.ReviewPlanChangesCliCommand,V_.ReviewPublishCliCommand]}),fd(1,(0,Rd.Inject)(F_.StorageRepository)),Xf("design:paramtypes",[dd.CommandBus,F_.StorageRepository])],J_),review_command}e(requireReview_command,"requireReview_command");var hasRequiredReview;function requireReview(){return hasRequiredReview||(hasRequiredReview=1,(function(t){var Xf=review$1&&review$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=review$1&&review$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireReview_command(),t),fd(requireReviewList_command(),t),fd(requireReviewShow_command(),t),fd(requireReviewPlanChanges_command(),t),fd(requireReviewPublish_command(),t)})(review$1)),review$1}e(requireReview,"requireReview");var planComplete={},planComplete_command={},hasRequiredPlanComplete_command;function requirePlanComplete_command(){if(hasRequiredPlanComplete_command)return planComplete_command;hasRequiredPlanComplete_command=1;var t=planComplete_command&&planComplete_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=planComplete_command&&planComplete_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(planComplete_command,"__esModule",{value:!0}),planComplete_command.PlanCompleteCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"PlanCompleteCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)(),[M_]=R_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a session id or path.")),console.log(dd.gray(' Usage: invariant plan:complete <session> --summary "What was done"'));return}if(!$_.summary){console.log(dd.red("\u2716 Error: --summary is required.")),console.log(dd.gray(' Usage: invariant plan:complete <session> --summary "What was done"'));return}const L_=$_.date??this.today();try{const j_=await this.commandBus.execute(new Rd.PlanCompleteCommand(N_,M_,L_,$_.summary,$_.note));console.log(dd.green("\u2713 Marked session complete")),console.log(dd.gray(` ${j_.sessionPath}`))}catch(j_){if(j_ instanceof Error)console.log(dd.red(`\u2716 Error: ${j_.message}`));else throw j_}}today(){return new Date().toISOString().slice(0,10)}parseSummary(R_){return R_}parseNote(R_,$_=[]){return[...$_,R_]}parseDate(R_){return R_}};return planComplete_command.PlanCompleteCliCommand=C_,t([(0,fd.Option)({flags:"-s, --summary <summary>",description:"Short resume of what the session accomplished"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseSummary",null),t([(0,fd.Option)({flags:"-n, --note <note>",description:"Extra note line (repeatable)"}),Xf("design:type",Function),Xf("design:paramtypes",[String,Array]),Xf("design:returntype",Array)],C_.prototype,"parseNote",null),t([(0,fd.Option)({flags:"-d, --date <date>",description:"Completion date (YYYY-MM-DD). Defaults to today."}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseDate",null),planComplete_command.PlanCompleteCliCommand=C_=t([(0,fd.Command)({name:"plan:complete",arguments:"<session>",description:"Stamp a completion header at the top of a finished session file"}),Xf("design:paramtypes",[pd.CommandBus])],C_),planComplete_command}e(requirePlanComplete_command,"requirePlanComplete_command");var hasRequiredPlanComplete;function requirePlanComplete(){return hasRequiredPlanComplete||(hasRequiredPlanComplete=1,(function(t){var Xf=planComplete&&planComplete.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=planComplete&&planComplete.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requirePlanComplete_command(),t)})(planComplete)),planComplete}e(requirePlanComplete,"requirePlanComplete");var inspect={},inspect_command={},hasRequiredInspect_command;function requireInspect_command(){if(hasRequiredInspect_command)return inspect_command;hasRequiredInspect_command=1;var t=inspect_command&&inspect_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=inspect_command&&inspect_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)};Object.defineProperty(inspect_command,"__esModule",{value:!0}),inspect_command.InspectCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$2(),Bd=requireCommands$3(),C_=requireDomain$2(),F_=requireGetWorkingDirectory$1();let R_=class extends fd.CommandRunner{static{e(this,"InspectCliCommand")}constructor(L_){super(),this.queryBus=L_}async run(L_,j_){const H_=(0,F_.getWorkingDirectory)(),[V_]=L_,J_=V_!==void 0||!!j_.details;try{const z_=await this.queryBus.execute(new Rd.InspectPackagesQuery(H_,V_));if(V_&&z_.packages.length===0){process.exitCode=1,console.log(dd.red(`\u2716 Package "${V_}" not found in cache.`)),console.log(dd.gray(` Run 'invariant install ${V_}' first.`));return}if(z_.packages.length===0){console.log(dd.yellow("No packages installed.")),console.log(dd.gray(" Run 'invariant install <package>' to install a package."));return}for(const Y_ of z_.packages)this.renderPackage(Y_,J_)}catch(z_){if(z_ instanceof Bd.ProjectNotInitializedError){process.exitCode=1,console.log(dd.red("\u2716 Project not initialized.")),console.log(dd.gray(" Run 'invariant init' first."));return}if(z_ instanceof Error){process.exitCode=1,console.log(dd.red(`\u2716 Error: ${z_.message}`));return}throw z_}}renderPackage(L_,j_){if(console.log(dd.blue(`
1099
+ \`\`\``}return e(M_,"renderSuggestion"),gitlabNoteBody}e(requireGitlabNoteBody,"requireGitlabNoteBody");var gitlabApi_client={},hasRequiredGitlabApi_client;function requireGitlabApi_client(){if(hasRequiredGitlabApi_client)return gitlabApi_client;hasRequiredGitlabApi_client=1,Object.defineProperty(gitlabApi_client,"__esModule",{value:!0}),gitlabApi_client.GitLabApiClient=void 0,gitlabApi_client.formEncode=F_;const t=requireDomain$1(),Xf=15e3,fd=2,pd=100;class dd{static{e(this,"GitLabApiClient")}constructor(N_){this.options=N_,this.base=`${N_.host.replace(/\/+$/,"")}/api/v4`,this.timeoutMs=N_.timeoutMs??Xf,this.fetchImpl=N_.fetchImpl??globalThis.fetch}currentUser(){return this.request("GET","/user")}project(N_){return this.request("GET",`/projects/${Rd(N_)}`)}openMergeRequestsForBranch(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests?source_branch=${encodeURIComponent(M_)}&state=opened&order_by=updated_at&sort=desc`)}mergeRequest(N_,M_){return this.request("GET",`/projects/${Rd(N_)}/merge_requests/${M_}`)}mergeRequestDiffs(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests/${M_}/diffs`)}draftNotes(N_,M_){return this.paginate(`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes`)}async createDraftNote(N_,M_,L_,j_){const H_=`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes`;try{return await this.request("POST",H_,{note:L_,...j_?{position:j_}:{}})}catch(V_){if(!j_||!C_(V_))throw V_;return this.request("POST",H_,void 0,F_({note:L_,position:j_}))}}updateDraftNote(N_,M_,L_,j_){return this.request("PUT",`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes/${L_}`,{note:j_})}async deleteDraftNote(N_,M_,L_){await this.request("DELETE",`/projects/${Rd(N_)}/merge_requests/${M_}/draft_notes/${L_}`)}async paginate(N_){const M_=N_.includes("?")?"&":"?",L_=[];for(let j_=1;j_<=50;j_+=1){const H_=await this.request("GET",`${N_}${M_}per_page=${pd}&page=${j_}`);if(!Array.isArray(H_)||(L_.push(...H_),H_.length<pd))break}return L_}async request(N_,M_,L_,j_){let H_;for(let V_=1;V_<=fd+1;V_+=1){const J_=new AbortController,z_=setTimeout(()=>J_.abort(),this.timeoutMs);let Y_;try{Y_=await this.fetchImpl(`${this.base}${M_}`,{method:N_,headers:{"PRIVATE-TOKEN":this.options.token,Accept:"application/json",...L_!==void 0?{"Content-Type":"application/json"}:{},...j_!==void 0?{"Content-Type":"application/x-www-form-urlencoded"}:{}},body:L_!==void 0?JSON.stringify(L_):j_,signal:J_.signal})}catch(Z_){throw H_=new t.PublisherRequestFailedError(0,this.redact(String(Z_)),N_,M_),clearTimeout(z_),H_}finally{clearTimeout(z_)}if(Y_.status===429&&V_<=fd){await R_(V_*3e3);continue}const Q_=await Y_.text();if(Y_.status===401||Y_.status===403)throw new t.PublisherAuthFailedError(`GitLab rejected the token (${Y_.status}). ${Bd(Q_)}`.trim());if(!Y_.ok)throw new t.PublisherRequestFailedError(Y_.status,this.redact(Bd(Q_)),N_,M_);return Q_.length>0?JSON.parse(Q_):void 0}throw H_??new t.PublisherRequestFailedError(429,"GitLab is rate limiting this token.",N_,M_)}redact(N_){return this.options.token.length>0?N_.split(this.options.token).join("[token redacted]"):N_}}gitlabApi_client.GitLabApiClient=dd;function Rd($_){return encodeURIComponent($_)}e(Rd,"encode");function Bd($_){if($_.length===0)return"";try{const N_=JSON.parse($_),M_=N_.message??N_.error;if(typeof M_=="string")return M_;if(M_!==void 0)return JSON.stringify(M_)}catch{}return $_.slice(0,400)}e(Bd,"messageOf");function C_($_){return $_ instanceof t.PublisherRequestFailedError&&$_.status===400&&/position/i.test($_.gitlabMessage)}e(C_,"isPositionRejection");function F_($_){const N_=[],M_=e((L_,j_)=>{if(j_!=null){if(typeof j_=="object"&&!Array.isArray(j_)){for(const[H_,V_]of Object.entries(j_))M_(`${L_}[${H_}]`,V_);return}N_.push(`${encodeURIComponent(L_)}=${encodeURIComponent(String(j_))}`)}},"walk");for(const[L_,j_]of Object.entries($_))M_(L_,j_);return N_.join("&")}e(F_,"formEncode");function R_($_){return new Promise(N_=>setTimeout(N_,$_))}return e(R_,"sleep"),gitlabApi_client}e(requireGitlabApi_client,"requireGitlabApi_client");var httpGitlabReviewPublisher_gateway={},hasRequiredHttpGitlabReviewPublisher_gateway;function requireHttpGitlabReviewPublisher_gateway(){if(hasRequiredHttpGitlabReviewPublisher_gateway)return httpGitlabReviewPublisher_gateway;hasRequiredHttpGitlabReviewPublisher_gateway=1;var t=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__decorate||function(z_,Y_,Q_,Z_){var L0=arguments.length,j0=L0<3?Y_:Z_===null?Z_=Object.getOwnPropertyDescriptor(Y_,Q_):Z_,Y0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j0=Reflect.decorate(z_,Y_,Q_,Z_);else for(var Z0=z_.length-1;Z0>=0;Z0--)(Y0=z_[Z0])&&(j0=(L0<3?Y0(j0):L0>3?Y0(Y_,Q_,j0):Y0(Y_,Q_))||j0);return L0>3&&j0&&Object.defineProperty(Y_,Q_,j0),j0},Xf=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__metadata||function(z_,Y_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(z_,Y_)},fd=httpGitlabReviewPublisher_gateway&&httpGitlabReviewPublisher_gateway.__param||function(z_,Y_){return function(Q_,Z_){Y_(Q_,Z_,z_)}};Object.defineProperty(httpGitlabReviewPublisher_gateway,"__esModule",{value:!0}),httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=void 0;const pd=requireCommon$1(),dd=requireGateways$3(),Rd=requirePersistence$3(),Bd=requireDomain$1(),C_=requireGit(),F_=requireGitlabApi_client(),R_=requireGitlabDiffPosition(),$_=requireGitlabNoteBody(),N_=requireCodeHost(),M_=2;let L_=class extends dd.ReviewPublisherGateway{static{e(this,"HttpGitLabReviewPublisherGateway")}constructor(Y_,Q_){super(),this.settings=Y_,this.git=Q_,this.id="gitlab"}async isConfigured(){return await this.resolveSettings()!==void 0}async verify(){const Y_=await this.requireSettings(),Q_=this.clientFor(Y_);try{const[Z_,L0]=await Promise.all([Q_.currentUser(),Q_.project(Y_.projectPath)]);return{ok:!0,username:Z_.username,projectPath:L0.path_with_namespace}}catch(Z_){if(Z_ instanceof Bd.PublisherAuthFailedError)return{ok:!1,message:`${Z_.message} ${Z_.hint}`};if(Z_ instanceof Bd.PublisherRequestFailedError)return{ok:!1,message:Z_.status===404?`GitLab has no project "${Y_.projectPath}", or this token cannot see it.`:Z_.message};throw Z_}}async preflight(Y_,Q_={}){return(await this.resolveContext(Y_,Q_)).preflight}async publish(Y_,Q_={}){const Z_=await this.resolveContext(Y_,Q_),{preflight:L0,client:j0,settings:Y0,existingByMarker:Z0}=Z_,Dv={url:L0.mergeRequest.url,mergeRequestIid:L0.mergeRequest.iid,discussionIds:{},created:[],updated:[],skipped:[],failures:[],targets:L0.targets,dryRun:Q_.dryRun===!0};if(Q_.dryRun)return Dv;const Mv=Z_.comments.map(({comment:Ov,planned:pb})=>async()=>{const bx=(0,$_.buildNoteBody)({reviewSlug:Y_.slug,commentId:Ov.id,severity:Ov.severity,category:Ov.category,title:Ov.title,body:Ov.body,file:Ov.file,line:Ov.line,endLine:Ov.endLine,suggestion:Ov.suggestion,suggestionLang:Ov.suggestionLang,target:pb,host:Y0.host,projectPath:Y0.projectPath,headSha:L0.mergeRequest.headSha}),Kv=(0,$_.noteMarker)(Y_.slug,Ov.id),zx=Z0.get(Kv);try{if(zx){await j0.updateDraftNote(Y0.projectPath,L0.mergeRequest.iid,zx.id,bx),Dv.updated.push(Ov.id),Dv.discussionIds[Ov.id]=H_(zx.id);return}if(Ov.hostReference&&!zx){Dv.skipped.push(Ov.id);return}const HD=await this.createWithFallback(j0,Y0.projectPath,L0.mergeRequest.iid,bx,pb);Dv.created.push(Ov.id),Dv.discussionIds[Ov.id]=H_(HD.id)}catch(HD){Dv.failures.push({commentId:Ov.id,message:V_(HD)})}});return await J_(Mv,M_),Dv}async createWithFallback(Y_,Q_,Z_,L0,j0){const Y0=j0.position;try{return await Y_.createDraftNote(Q_,Z_,L0,Y0)}catch(Z0){if(!j0.position?.line_range||!(Z0 instanceof Bd.PublisherRequestFailedError))throw Z0;const Dv=(0,R_.withoutRange)(j0.position);return Y_.createDraftNote(Q_,Z_,L0,Dv)}}async resolveContext(Y_,Q_){const Z_=await this.requireSettings();await this.assertSameRepository(Z_);const L0=this.clientFor(Z_),j0=await L0.openMergeRequestsForBranch(Z_.projectPath,Y_.branch),Y0=Q_.mergeRequestIid?await L0.mergeRequest(Z_.projectPath,Q_.mergeRequestIid):j0[0];if(!Y0)throw new Bd.PublisherNoMergeRequestError(Y_.branch,Z_.projectPath);const Z0=Y0.diff_refs?Y0:await L0.mergeRequest(Z_.projectPath,Y0.iid),Dv=Z0.diff_refs;if(!Dv)throw new Bd.PublisherRequestFailedError(200,`Merge request !${Z0.iid} did not report the diff refs a comment position needs.`,"GET",`/merge_requests/${Z0.iid}`);const[Mv,Ov]=await Promise.all([L0.mergeRequestDiffs(Z_.projectPath,Z0.iid),L0.draftNotes(Z_.projectPath,Z0.iid)]),pb=(0,R_.indexDiffs)(Mv),bx=new Map;for(const US of Ov){const XD=(0,$_.readMarker)(US.note??"");XD&&bx.set(XD,US)}const zx=(Q_.only?Y_.comments.filter(US=>Q_.only?.includes(US.id)):Y_.comments).map(US=>{const XD=(0,R_.planTarget)(pb,Dv,{file:US.file,line:US.line,endLine:US.endLine}),TS=bx.get((0,$_.noteMarker)(Y_.slug,US.id)),GD={commentId:US.id,title:US.title,severity:US.severity,file:US.file,line:US.line,endLine:US.endLine,kind:XD.kind,detail:XD.detail,snappedTo:XD.snappedTo,existingReference:TS?H_(TS.id):US.hostReference};return{comment:US,planned:XD,target:GD}}),HD=j_(Z0,Dv.head_sha),ES=await this.originProjectPath(),JS={publisher:this.id,host:Z_.host,projectPath:Z_.projectPath,projectPathSource:Z_.projectPathSource,projectUrl:`${Z_.host.replace(/\/+$/,"")}/${Z_.projectPath}`,remoteUrl:Z_.remoteUrl,originProjectPath:ES&&ES!==Z_.projectPath?ES:void 0,mergeRequest:HD,candidates:j0.map(US=>j_(US,US.sha)),changedFileCount:pb.length,drift:Y_.headSha&&Dv.head_sha&&!Dv.head_sha.startsWith(Y_.headSha.slice(0,7))?{reviewHeadSha:Y_.headSha,mergeRequestHeadSha:Dv.head_sha}:void 0,targets:zx.map(US=>US.target),alreadyPublished:zx.filter(US=>US.target.existingReference!==void 0).length};return{settings:Z_,client:L0,preflight:JS,comments:zx,existingByMarker:bx,files:pb}}async assertSameRepository(Y_){const Q_=await this.git.remoteUrl(this.settings.directory,"origin");if(!(!Q_||Y_.remoteUrl.length===0)&&!(0,N_.sameRemote)(Y_.remoteUrl,Q_))throw new Bd.PublisherProjectMismatchError(Y_.remoteUrl,Q_)}async originProjectPath(){const Y_=await this.git.remoteUrl(this.settings.directory,"origin");return Y_?(0,N_.parseGitLabRemote)(Y_)?.projectPath:void 0}clientFor(Y_){return new F_.GitLabApiClient({host:Y_.host,token:Y_.token})}async requireSettings(){const Y_=await this.resolveSettings();if(!Y_)throw new Bd.PublisherNotConfiguredError("not-configured","This project has no GitLab token. Add one in Settings \u2192 Publishing \u2014 it is stored for this project only.");return Y_}async resolveSettings(){const Y_=await this.settings.read();if(Y_)return Y_;const Q_=process.env.GITLAB_TOKEN??process.env.GITLAB_PRIVATE_TOKEN;if(!Q_)return;const Z_=await this.git.remoteUrl(this.settings.directory,"origin"),L0=Z_?(0,N_.parseGitLabRemote)(Z_):void 0;if(!(!L0||!Z_))return{publisher:"gitlab",host:process.env.GITLAB_HOST??L0.host,projectPath:L0.projectPath,projectPathSource:"origin",remoteUrl:Z_,token:Q_,updatedAt:new Date().toISOString()}}};httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=L_,httpGitlabReviewPublisher_gateway.HttpGitLabReviewPublisherGateway=L_=t([(0,pd.Injectable)(),fd(0,(0,pd.Inject)(Rd.PublisherSettingsRepository)),fd(1,(0,pd.Inject)(C_.GitGateway)),Xf("design:paramtypes",[Rd.PublisherSettingsRepository,C_.GitGateway])],L_);function j_(z_,Y_){return{iid:z_.iid,title:z_.title,url:z_.web_url,sourceBranch:z_.source_branch,targetBranch:z_.target_branch,headSha:Y_,updatedAt:z_.updated_at}}e(j_,"toSummary");function H_(z_){return`draft:${z_}`}e(H_,"referenceOf");function V_(z_){return z_ instanceof Error?z_.message:String(z_)}e(V_,"messageOf");async function J_(z_,Y_){let Q_=0;const Z_=Array.from({length:Math.min(Y_,z_.length)},async()=>{for(;;){const L0=Q_;if(Q_+=1,L0>=z_.length)return;await z_[L0]()}});await Promise.all(Z_)}return e(J_,"runWithConcurrency"),httpGitlabReviewPublisher_gateway}e(requireHttpGitlabReviewPublisher_gateway,"requireHttpGitlabReviewPublisher_gateway");var hasRequiredGitlab;function requireGitlab(){return hasRequiredGitlab||(hasRequiredGitlab=1,(function(t){var Xf=gitlab&&gitlab.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=gitlab&&gitlab.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireGitlabDiffPosition(),t),fd(requireGitlabNoteBody(),t),fd(requireGitlabApi_client(),t),fd(requireHttpGitlabReviewPublisher_gateway(),t)})(gitlab)),gitlab}e(requireGitlab,"requireGitlab");var queryBusPackageCatalog_gateway={},hasRequiredQueryBusPackageCatalog_gateway;function requireQueryBusPackageCatalog_gateway(){if(hasRequiredQueryBusPackageCatalog_gateway)return queryBusPackageCatalog_gateway;hasRequiredQueryBusPackageCatalog_gateway=1;var t=queryBusPackageCatalog_gateway&&queryBusPackageCatalog_gateway.__decorate||function(C_,F_,R_,$_){var N_=arguments.length,M_=N_<3?F_:$_===null?$_=Object.getOwnPropertyDescriptor(F_,R_):$_,L_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")M_=Reflect.decorate(C_,F_,R_,$_);else for(var j_=C_.length-1;j_>=0;j_--)(L_=C_[j_])&&(M_=(N_<3?L_(M_):N_>3?L_(F_,R_,M_):L_(F_,R_))||M_);return N_>3&&M_&&Object.defineProperty(F_,R_,M_),M_},Xf=queryBusPackageCatalog_gateway&&queryBusPackageCatalog_gateway.__metadata||function(C_,F_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(C_,F_)};Object.defineProperty(queryBusPackageCatalog_gateway,"__esModule",{value:!0}),queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=void 0;const fd=requireCommon$1(),pd=requireCqrs(),dd=requireQueries$2(),Rd=requireUiLogger();let Bd=class{static{e(this,"QueryBusPackageCatalogGateway")}constructor(F_){this.queryBus=F_}async inspect(F_){return(await this.queryBus.execute(new dd.InspectPackagesQuery(F_))).packages}async inspectOne(F_,R_){return(await this.queryBus.execute(new dd.InspectPackagesQuery(F_,R_))).packages[0]}async listRegistry(){try{return(await this.queryBus.execute(new dd.ListRemotePackagesQuery)).packages}catch(F_){return(0,Rd.uiLog)({event:"packages.registry_unavailable",message:String(F_)}),[]}}};return queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=Bd,queryBusPackageCatalog_gateway.QueryBusPackageCatalogGateway=Bd=t([(0,fd.Injectable)(),Xf("design:paramtypes",[pd.QueryBus])],Bd),queryBusPackageCatalog_gateway}e(requireQueryBusPackageCatalog_gateway,"requireQueryBusPackageCatalog_gateway");var hasRequiredGateways$2;function requireGateways$2(){return hasRequiredGateways$2||(hasRequiredGateways$2=1,(function(t){var Xf=gateways$2&&gateways$2.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=gateways$2&&gateways$2.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireFileSystemProject_gateway(),t),fd(requireNodeUiDaemonProcess_gateway(),t),fd(requireFetchUiClient_gateway(),t),fd(requireSpawnCliRunner_gateway(),t),fd(requireFsWatchWorkspaceWatcher_gateway(),t),fd(requirePlatformBrowserOpener_gateway(),t),fd(requireUnavailableReviewPublisher_gateway(),t),fd(requireGitlab(),t),fd(requireQueryBusPackageCatalog_gateway(),t)})(gateways$2)),gateways$2}e(requireGateways$2,"requireGateways$2");var cli$1={},ui$9={},ui_command={},uiStart_command={},getWorkingDirectory={},hasRequiredGetWorkingDirectory;function requireGetWorkingDirectory(){if(hasRequiredGetWorkingDirectory)return getWorkingDirectory;hasRequiredGetWorkingDirectory=1,Object.defineProperty(getWorkingDirectory,"__esModule",{value:!0}),getWorkingDirectory.getWorkingDirectory=t;function t(){return process.env.INVARIANT_CWD||process.cwd()}return e(t,"getWorkingDirectory$1"),getWorkingDirectory}e(requireGetWorkingDirectory,"requireGetWorkingDirectory");var renderStart={},hasRequiredRenderStart;function requireRenderStart(){if(hasRequiredRenderStart)return renderStart;hasRequiredRenderStart=1,Object.defineProperty(renderStart,"__esModule",{value:!0}),renderStart.renderStartResult=Xf;const t=requireSource();function Xf(fd){const pd=fd.alreadyRunning?"already running":"started";console.log(t.green(`\u2713 invariant ui ${pd} on ${fd.url}`)),console.log(t.gray(` project ${fd.directory}`)),console.log(t.gray(" stop invariant ui stop"))}return e(Xf,"renderStartResult"),renderStart}e(requireRenderStart,"requireRenderStart");var parsePort={},hasRequiredParsePort;function requireParsePort(){if(hasRequiredParsePort)return parsePort;hasRequiredParsePort=1,Object.defineProperty(parsePort,"__esModule",{value:!0}),parsePort.parsePort=Xf;const t=requireDomain$1();function Xf(fd){if(fd===void 0||fd==="")return;const pd=typeof fd=="number"?fd:Number.parseInt(fd,10);if(!Number.isInteger(pd)||pd<1||pd>65535)throw new t.InvalidSessionRequestError(`"${fd}" is not a valid port.`);return pd}return e(Xf,"parsePort$1"),parsePort}e(requireParsePort,"requireParsePort");var hasRequiredUiStart_command;function requireUiStart_command(){if(hasRequiredUiStart_command)return uiStart_command;hasRequiredUiStart_command=1;var t=uiStart_command&&uiStart_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=uiStart_command&&uiStart_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=uiStart_command&&uiStart_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(uiStart_command,"__esModule",{value:!0}),uiStart_command.UiStartCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommands$2(),Bd=requireGateways$3(),C_=requireCommon$1(),F_=requireGetWorkingDirectory(),R_=requireRenderStart(),$_=requireParsePort();let N_=class extends pd.CommandRunner{static{e(this,"UiStartCliCommand")}constructor(L_,j_){super(),this.commandBus=L_,this.browser=j_}async run(L_,j_={}){const H_=j_.port??(0,$_.parsePort)(L_[0]),V_=await this.commandBus.execute(new Rd.StartUiCommand((0,F_.getWorkingDirectory)(),H_));(0,R_.renderStartResult)(V_),j_.open!==!1&&await this.browser.open(V_.url)}parsePortOption(L_){return(0,$_.parsePort)(L_)}parseNoOpen(){return!1}};return uiStart_command.UiStartCliCommand=N_,t([(0,pd.Option)({flags:"-p, --port <port>",description:"Port to listen on (default 4200)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],N_.prototype,"parsePortOption",null),t([(0,pd.Option)({flags:"--no-open",description:"Do not open a browser window"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],N_.prototype,"parseNoOpen",null),uiStart_command.UiStartCliCommand=N_=t([(0,pd.SubCommand)({name:"start",arguments:"[port]",description:"Start the local session UI for this project (default port 4200)"}),fd(1,(0,C_.Inject)(Bd.BrowserOpenerGateway)),Xf("design:paramtypes",[dd.CommandBus,Bd.BrowserOpenerGateway])],N_),uiStart_command}e(requireUiStart_command,"requireUiStart_command");var uiStop_command={},hasRequiredUiStop_command;function requireUiStop_command(){if(hasRequiredUiStop_command)return uiStop_command;hasRequiredUiStop_command=1;var t=uiStop_command&&uiStop_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=uiStop_command&&uiStop_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(uiStop_command,"__esModule",{value:!0}),uiStop_command.UiStopCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$2(),Bd=requireGetWorkingDirectory();let C_=class extends fd.CommandRunner{static{e(this,"UiStopCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_={}){const N_=await this.commandBus.execute(new Rd.StopUiCommand((0,Bd.getWorkingDirectory)(),$_.all===!0));if(N_.stopped.length===0){console.log(dd.gray("ui was not running"));return}for(const M_ of N_.stopped){const L_=M_.wasRunning?"stopped":"cleaned up (already gone)";console.log(dd.green(`\u2713 ui ${L_} \u2014 port ${M_.port} ${M_.directory}`))}}parseAll(){return!0}};return uiStop_command.UiStopCliCommand=C_,t([(0,fd.Option)({flags:"--all",description:"Stop every running UI instance on this machine"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseAll",null),uiStop_command.UiStopCliCommand=C_=t([(0,fd.SubCommand)({name:"stop",description:"Stop the UI for this project (--all stops every instance)"}),Xf("design:paramtypes",[pd.CommandBus])],C_),uiStop_command}e(requireUiStop_command,"requireUiStop_command");var uiStatus_command={},hasRequiredUiStatus_command;function requireUiStatus_command(){if(hasRequiredUiStatus_command)return uiStatus_command;hasRequiredUiStatus_command=1;var t=uiStatus_command&&uiStatus_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=uiStatus_command&&uiStatus_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(uiStatus_command,"__esModule",{value:!0}),uiStatus_command.UiStatusCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$1(),Bd=requireGetWorkingDirectory();let C_=class extends fd.CommandRunner{static{e(this,"UiStatusCliCommand")}constructor($_){super(),this.queryBus=$_}async run($_,N_={}){const M_=await this.queryBus.execute(new Rd.GetUiStatusQuery((0,Bd.getWorkingDirectory)()));N_.json?console.log(JSON.stringify(M_,null,2)):this.render(M_),process.exitCode=M_.anyRunning?0:1}parseJson(){return!0}render($_){if($_.instances.length===0){console.log(dd.yellow("invariant ui \u2014 STOPPED (hint: invariant ui)")),console.log(dd.gray(`current ${$_.currentDirectory}`));return}for(const N_ of $_.instances){const M_=N_.current?dd.white("\u25B8"):dd.gray(" "),L_=N_.running?dd.green(`RUNNING ${N_.url} pid ${N_.pid} up ${F_(N_.uptimeSeconds)}`):dd.yellow(`STOPPED port ${N_.port} pid ${N_.pid}`);console.log(`${M_} ${L_}`),console.log(dd.gray(` ${N_.directory} (v${N_.cliVersion})`));for(const j_ of N_.warnings)console.log(dd.yellow(` \u26A0 ${j_}`))}console.log(dd.gray(`registry ${$_.registryPath}`))}};uiStatus_command.UiStatusCliCommand=C_,t([(0,fd.Option)({flags:"--json",description:"Machine-readable output"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],C_.prototype,"parseJson",null),uiStatus_command.UiStatusCliCommand=C_=t([(0,fd.SubCommand)({name:"status",description:"Show every running UI instance (--json for machine output)"}),Xf("design:paramtypes",[pd.QueryBus])],C_);function F_(R_){if(R_===void 0)return"?";const $_=Math.floor(R_/3600),N_=Math.floor(R_%3600/60);if($_>0)return`${$_}h${String(N_).padStart(2,"0")}m`;const M_=R_%60;return N_>0?`${N_}m${String(M_).padStart(2,"0")}s`:`${M_}s`}return e(F_,"formatUptime"),uiStatus_command}e(requireUiStatus_command,"requireUiStatus_command");var uiServe_command={},getCliVersion$1={},hasRequiredGetCliVersion$1;function requireGetCliVersion$1(){if(hasRequiredGetCliVersion$1)return getCliVersion$1;hasRequiredGetCliVersion$1=1,Object.defineProperty(getCliVersion$1,"__esModule",{value:!0}),getCliVersion$1.getCliVersion=fd;const t=require$$2$2,Xf=require$$2$3;function fd(){const pd=[Xf.resolve(__dirname,"..","package.json"),Xf.resolve(__dirname,"..","..","package.json"),Xf.resolve(__dirname,"..","..","..","..","..","..","package.json")];for(const dd of pd)try{const Rd=JSON.parse(t.readFileSync(dd,"utf-8"));if(Rd.version)return Rd.version}catch{}return"0.0.0"}return e(fd,"getCliVersion"),getCliVersion$1}e(requireGetCliVersion$1,"requireGetCliVersion$1");var hasRequiredUiServe_command;function requireUiServe_command(){if(hasRequiredUiServe_command)return uiServe_command;hasRequiredUiServe_command=1;var t=uiServe_command&&uiServe_command.__decorate||function($_,N_,M_,L_){var j_=arguments.length,H_=j_<3?N_:L_===null?L_=Object.getOwnPropertyDescriptor(N_,M_):L_,V_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")H_=Reflect.decorate($_,N_,M_,L_);else for(var J_=$_.length-1;J_>=0;J_--)(V_=$_[J_])&&(H_=(j_<3?V_(H_):j_>3?V_(N_,M_,H_):V_(N_,M_))||H_);return j_>3&&H_&&Object.defineProperty(N_,M_,H_),H_},Xf=uiServe_command&&uiServe_command.__metadata||function($_,N_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata($_,N_)};Object.defineProperty(uiServe_command,"__esModule",{value:!0}),uiServe_command.UiServeCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireCommands$2(),Rd=requireGetCliVersion$1(),Bd=requireGetWorkingDirectory(),C_=requireUiLogger(),F_=requireParsePort();let R_=class extends fd.CommandRunner{static{e(this,"UiServeCliCommand")}constructor(N_){super(),this.commandBus=N_}setCommand(N_){return N_._hidden=!0,super.setCommand(N_)}async run(N_,M_={}){try{const L_=await this.commandBus.execute(new dd.ServeUiCommand((0,Bd.getWorkingDirectory)(),M_.port??dd.DEFAULT_UI_PORT,M_.explicitPort===!0,(0,Rd.getCliVersion)()));if(L_.kind==="sibling-running")return;await L_.waitUntilShutdown()}catch(L_){(0,C_.uiLog)({event:"daemon.start_failed",message:L_ instanceof Error?L_.message:String(L_)}),process.exitCode=1}}parsePortOption(N_){return(0,F_.parsePort)(N_)}parseExplicitPort(){return!0}};return uiServe_command.UiServeCliCommand=R_,t([(0,fd.Option)({flags:"--port <port>",description:"Port to bind"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],R_.prototype,"parsePortOption",null),t([(0,fd.Option)({flags:"--explicit-port",description:"Fail instead of probing forward"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],R_.prototype,"parseExplicitPort",null),uiServe_command.UiServeCliCommand=R_=t([(0,fd.SubCommand)({name:"serve",description:"Run the UI daemon in-process (internal)",options:{hidden:!0}}),Xf("design:paramtypes",[pd.CommandBus])],R_),uiServe_command}e(requireUiServe_command,"requireUiServe_command");var uiMigrateHeaders_command={},hasRequiredUiMigrateHeaders_command;function requireUiMigrateHeaders_command(){if(hasRequiredUiMigrateHeaders_command)return uiMigrateHeaders_command;hasRequiredUiMigrateHeaders_command=1;var t=uiMigrateHeaders_command&&uiMigrateHeaders_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=uiMigrateHeaders_command&&uiMigrateHeaders_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)},fd=uiMigrateHeaders_command&&uiMigrateHeaders_command.__param||function(M_,L_){return function(j_,H_){L_(j_,H_,M_)}};Object.defineProperty(uiMigrateHeaders_command,"__esModule",{value:!0}),uiMigrateHeaders_command.UiMigrateHeadersCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireSource(),Bd=requireCommon$1(),C_=requireCommands$2(),F_=requireGateways$3(),R_=requirePersistence$2(),$_=requireGetWorkingDirectory();let N_=class extends pd.CommandRunner{static{e(this,"UiMigrateHeadersCliCommand")}constructor(L_,j_,H_,V_){super(),this.commandBus=L_,this.queryBus=j_,this.projectGateway=H_,this.sessions=V_}async run(){const L_=await this.projectGateway.resolve((0,$_.getWorkingDirectory)());this.sessions.pin(L_.directory);const j_=await this.commandBus.execute(new C_.MigrateSessionHeaderCommand);if(j_.migrated.length===0){console.log(Rd.green("\u2713 every session already has a valid <session-meta> header"));return}console.log(Rd.green(`\u2713 migrated ${j_.migrated.length} session(s)`));for(const H_ of j_.migrated)console.log(Rd.gray(` ${H_.status.padEnd(11)} ${H_.title}`))}};return uiMigrateHeaders_command.UiMigrateHeadersCliCommand=N_,uiMigrateHeaders_command.UiMigrateHeadersCliCommand=N_=t([(0,pd.SubCommand)({name:"migrate-headers",description:"Add a canonical <session-meta> header to legacy session files"}),fd(2,(0,Bd.Inject)(F_.ProjectGateway)),Xf("design:paramtypes",[dd.CommandBus,dd.QueryBus,F_.ProjectGateway,R_.FileSystemSessionRepository])],N_),uiMigrateHeaders_command}e(requireUiMigrateHeaders_command,"requireUiMigrateHeaders_command");var hasRequiredUi_command;function requireUi_command(){if(hasRequiredUi_command)return ui_command;hasRequiredUi_command=1;var t=ui_command&&ui_command.__decorate||function(J_,z_,Y_,Q_){var Z_=arguments.length,L0=Z_<3?z_:Q_===null?Q_=Object.getOwnPropertyDescriptor(z_,Y_):Q_,j0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L0=Reflect.decorate(J_,z_,Y_,Q_);else for(var Y0=J_.length-1;Y0>=0;Y0--)(j0=J_[Y0])&&(L0=(Z_<3?j0(L0):Z_>3?j0(z_,Y_,L0):j0(z_,Y_))||L0);return Z_>3&&L0&&Object.defineProperty(z_,Y_,L0),L0},Xf=ui_command&&ui_command.__metadata||function(J_,z_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(J_,z_)},fd=ui_command&&ui_command.__param||function(J_,z_){return function(Y_,Q_){z_(Y_,Q_,J_)}};Object.defineProperty(ui_command,"__esModule",{value:!0}),ui_command.UiCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommon$1(),Bd=requireCommands$2(),C_=requireGateways$3(),F_=requireUiStart_command(),R_=requireUiStop_command(),$_=requireUiStatus_command(),N_=requireUiServe_command(),M_=requireUiMigrateHeaders_command(),L_=requireGetWorkingDirectory(),j_=requireRenderStart(),H_=requireParsePort();let V_=class extends pd.CommandRunner{static{e(this,"UiCliCommand")}constructor(z_,Y_){super(),this.commandBus=z_,this.browser=Y_}async run(z_,Y_={}){const Q_=Y_.port??(0,H_.parsePort)(z_[0]),Z_=await this.commandBus.execute(new Bd.StartUiCommand((0,L_.getWorkingDirectory)(),Q_));(0,j_.renderStartResult)(Z_),Y_.open!==!1&&await this.browser.open(Z_.url)}parsePortOption(z_){return(0,H_.parsePort)(z_)}parseNoOpen(){return!1}};return ui_command.UiCliCommand=V_,t([(0,pd.Option)({flags:"-p, --port <port>",description:"Port to listen on (default 4200)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],V_.prototype,"parsePortOption",null),t([(0,pd.Option)({flags:"--no-open",description:"Do not open a browser window"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],V_.prototype,"parseNoOpen",null),ui_command.UiCliCommand=V_=t([(0,pd.Command)({name:"ui",arguments:"[port]",description:"Local web UI for this project\u2019s sessions (start, stop, status)",subCommands:[F_.UiStartCliCommand,R_.UiStopCliCommand,$_.UiStatusCliCommand,N_.UiServeCliCommand,M_.UiMigrateHeadersCliCommand]}),fd(1,(0,Rd.Inject)(C_.BrowserOpenerGateway)),Xf("design:paramtypes",[dd.CommandBus,C_.BrowserOpenerGateway])],V_),ui_command}e(requireUi_command,"requireUi_command");var hasRequiredUi;function requireUi(){return hasRequiredUi||(hasRequiredUi=1,(function(t){var Xf=ui$9&&ui$9.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=ui$9&&ui$9.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUi_command(),t),fd(requireUiStart_command(),t),fd(requireUiStop_command(),t),fd(requireUiStatus_command(),t),fd(requireUiServe_command(),t),fd(requireUiMigrateHeaders_command(),t)})(ui$9)),ui$9}e(requireUi,"requireUi");var hasRequiredCli$1;function requireCli$1(){return hasRequiredCli$1||(hasRequiredCli$1=1,(function(t){var Xf=cli$1&&cli$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=cli$1&&cli$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUi(),t)})(cli$1)),cli$1}e(requireCli$1,"requireCli$1");var hasRequiredSessionUi_module;function requireSessionUi_module(){if(hasRequiredSessionUi_module)return sessionUi_module;hasRequiredSessionUi_module=1;var t=sessionUi_module&&sessionUi_module.__decorate||function(Q_,Z_,L0,j0){var Y0=arguments.length,Z0=Y0<3?Z_:j0===null?j0=Object.getOwnPropertyDescriptor(Z_,L0):j0,Dv;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")Z0=Reflect.decorate(Q_,Z_,L0,j0);else for(var Mv=Q_.length-1;Mv>=0;Mv--)(Dv=Q_[Mv])&&(Z0=(Y0<3?Dv(Z0):Y0>3?Dv(Z_,L0,Z0):Dv(Z_,L0))||Z0);return Y0>3&&Z0&&Object.defineProperty(Z_,L0,Z0),Z0};Object.defineProperty(sessionUi_module,"__esModule",{value:!0}),sessionUi_module.SessionUiModule=void 0;const Xf=requireCommon$1(),fd=requireCqrs(),pd=requireGit(),dd=requireCommands$2(),Rd=requireQueries$1(),Bd=requirePersistence$3(),C_=requireGateways$3(),F_=requirePersistence$2(),R_=requireGateways$2(),$_=requireUiServer(),N_=requireCli$1(),M_=[F_.FileSystemSessionRepository,{provide:Bd.SessionRepository,useExisting:F_.FileSystemSessionRepository},F_.FileSystemReviewRepository,{provide:Bd.ReviewRepository,useExisting:F_.FileSystemReviewRepository},{provide:Bd.UiRegistryRepository,useClass:F_.FileUiRegistryRepository},F_.FilePublisherSettingsRepository,{provide:Bd.PublisherSettingsRepository,useExisting:F_.FilePublisherSettingsRepository},F_.ProjectPin],L_=[{provide:C_.ProjectGateway,useClass:R_.FileSystemProjectGateway},{provide:C_.UiDaemonProcessGateway,useClass:R_.NodeUiDaemonProcessGateway},{provide:C_.UiClientGateway,useClass:R_.FetchUiClientGateway},{provide:C_.CliRunnerGateway,useClass:R_.SpawnCliRunnerGateway},{provide:C_.WorkspaceWatcherGateway,useClass:R_.FsWatchWorkspaceWatcherGateway},{provide:C_.ReviewPublisherGateway,useClass:R_.HttpGitLabReviewPublisherGateway},{provide:C_.BrowserOpenerGateway,useClass:R_.PlatformBrowserOpenerGateway},{provide:C_.PackageCatalogGateway,useClass:R_.QueryBusPackageCatalogGateway}],j_=[$_.UiHttpServer],H_=[dd.PackageOperationLock],V_=[dd.StartUiCommandHandler,dd.StopUiCommandHandler,dd.ServeUiCommandHandler,dd.SaveSessionCommandHandler,dd.StashSessionBodyCommandHandler,dd.SetSessionStatusCommandHandler,dd.PromoteSessionActivityCommandHandler,dd.CreateSessionCommandHandler,dd.ArchiveSessionCommandHandler,dd.MigrateSessionHeaderCommandHandler,dd.CreateReviewSessionCommandHandler,dd.LinkReviewSessionCommandHandler,dd.UpdateReviewCommentCommandHandler,dd.BulkUpdateReviewCommentsCommandHandler,dd.PlanReviewChangesCommandHandler,dd.PublishReviewCommandHandler,dd.SavePublisherSettingsCommandHandler,dd.RemovePublisherSettingsCommandHandler,dd.InstallPackageUiCommandHandler,dd.ApplyPackageItemsCommandHandler,dd.UninstallPackageUiCommandHandler,dd.SyncProjectCommandHandler],J_=[Rd.ListSessionsQueryHandler,Rd.GetSessionQueryHandler,Rd.GetUiStatusQueryHandler,Rd.GetProjectSummaryQueryHandler,Rd.ListReviewsQueryHandler,Rd.GetReviewQueryHandler,Rd.GetGitStatusQueryHandler,Rd.GetPackageOverviewQueryHandler,Rd.GetPackageDetailQueryHandler,Rd.ListRegistryPackagesQueryHandler,Rd.GetPublisherSettingsQueryHandler,Rd.VerifyPublisherQueryHandler,Rd.GetPublishPreflightQueryHandler],z_=[N_.UiCliCommand,N_.UiStartCliCommand,N_.UiStopCliCommand,N_.UiStatusCliCommand,N_.UiServeCliCommand,N_.UiMigrateHeadersCliCommand];let Y_=class{static{e(this,"SessionUiModule")}};return sessionUi_module.SessionUiModule=Y_,sessionUi_module.SessionUiModule=Y_=t([(0,Xf.Module)({imports:[fd.CqrsModule,pd.GitModule],providers:[...M_,...L_,...j_,...H_,...V_,...J_,...z_],exports:[Bd.SessionRepository,Bd.ReviewRepository,Bd.UiRegistryRepository,F_.ProjectPin]})],Y_),sessionUi_module}e(requireSessionUi_module,"requireSessionUi_module");var hasRequiredSessionUi;function requireSessionUi(){return hasRequiredSessionUi||(hasRequiredSessionUi=1,(function(t){var Xf=sessionUi&&sessionUi.__createBinding||(Object.create?(function(Rd,Bd,C_,F_){F_===void 0&&(F_=C_);var R_=Object.getOwnPropertyDescriptor(Bd,C_);(!R_||("get"in R_?!Bd.__esModule:R_.writable||R_.configurable))&&(R_={enumerable:!0,get:e(function(){return Bd[C_]},"get")}),Object.defineProperty(Rd,F_,R_)}):(function(Rd,Bd,C_,F_){F_===void 0&&(F_=C_),Rd[F_]=Bd[C_]})),fd=sessionUi&&sessionUi.__exportStar||function(Rd,Bd){for(var C_ in Rd)C_!=="default"&&!Object.prototype.hasOwnProperty.call(Bd,C_)&&Xf(Bd,Rd,C_)};Object.defineProperty(t,"__esModule",{value:!0}),t.SessionUiModule=t.ProjectPin=void 0,fd(requireCommands$2(),t),fd(requireQueries$1(),t);var pd=requireProjectPin();Object.defineProperty(t,"ProjectPin",{enumerable:!0,get:e(function(){return pd.ProjectPin},"get")});var dd=requireSessionUi_module();Object.defineProperty(t,"SessionUiModule",{enumerable:!0,get:e(function(){return dd.SessionUiModule},"get")})})(sessionUi)),sessionUi}e(requireSessionUi,"requireSessionUi");var hasRequiredReviewPublish_command;function requireReviewPublish_command(){if(hasRequiredReviewPublish_command)return reviewPublish_command;hasRequiredReviewPublish_command=1;var t=reviewPublish_command&&reviewPublish_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=reviewPublish_command&&reviewPublish_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(reviewPublish_command,"__esModule",{value:!0}),reviewPublish_command.ReviewPublishCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireSessionUi(),Bd=requireGetWorkingDirectory$1(),C_=requireReview$2();let F_=class extends fd.CommandRunner{static{e(this,"ReviewPublishCliCommand")}constructor($_,N_,M_){super(),this.commandBus=$_,this.queryBus=N_,this.projectPin=M_}parseDryRun(){return!0}parseMr($_){return Number($_)}async run($_,N_={}){const[M_]=$_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a branch, slug, or review file path.")),console.log(dd.gray(" Usage: invariant review publish <review> [--dry-run] [--mr <iid>]"));return}this.projectPin.pin((0,Bd.getWorkingDirectory)());const L_=(0,C_.normalizeReviewSlug)(M_);try{const j_=await this.queryBus.execute(new Rd.GetPublishPreflightQuery(L_,N_.mr));if(this.printPreflight(j_),N_.dryRun){console.log(""),console.log(dd.gray("Dry run \u2014 nothing was written."));return}const H_=await this.commandBus.execute(new Rd.PublishReviewCommand(L_,{mergeRequestIid:N_.mr})),V_=H_.created.length+H_.updated.length;console.log(""),console.log(dd.green(`\u2713 ${V_} draft comment(s) on !${H_.mergeRequestIid}`)),H_.skipped.length>0&&console.log(dd.gray(` ${H_.skipped.length} already submitted \u2014 left alone`));for(const J_ of H_.failures)console.log(dd.red(` \u2716 ${J_.commentId}: ${J_.message}`));this.printSessionOutcome(H_),console.log(""),console.log(dd.blue("These are PENDING comments. Read them and press \u201CSubmit review\u201D:")),console.log(dd.white(` ${H_.url}`))}catch(j_){if(j_ instanceof Error){console.log(dd.red(`\u2716 Error: ${j_.message}`));return}throw j_}}printSessionOutcome($_){if($_.session){console.log(dd.green(` \u2713 Review closed \u2014 session ${$_.session.id} marked executed`));return}if($_.review.sessionId){if($_.failures.length>0){console.log(dd.yellow(" ! The session stays in review until the remaining comments are published"));return}console.log(dd.gray(" The session was left as it is \u2014 nothing was closed by this publish"))}}printPreflight($_){console.log(dd.gray(` Project ${$_.projectPath} (${$_.projectPathSource})`)),console.log(dd.gray(` Merge req. !${$_.mergeRequest.iid} ${$_.mergeRequest.title}`)),console.log(dd.gray(` Diff ${$_.changedFileCount} file(s) \xB7 head ${$_.mergeRequest.headSha.slice(0,7)}`)),console.log(dd.gray(` Sending ${$_.targets.length} staged comment(s)`)),$_.originProjectPath&&console.log(dd.yellow(` ! Publishing to ${$_.projectPath}, which is not origin (${$_.originProjectPath})`)),$_.drift&&console.log(dd.yellow(` ! Review written against ${$_.drift.reviewHeadSha.slice(0,7)}; the MR is at ${$_.drift.mergeRequestHeadSha.slice(0,7)} \u2014 lines may have moved`));for(const N_ of $_.targets){const M_=N_.file?`${N_.file}${N_.line?`:${N_.line}`:""}`:"general comment";console.log(dd.gray(` ${N_.kind.padEnd(8)} ${M_} \u2014 ${N_.title}`))}}};return reviewPublish_command.ReviewPublishCliCommand=F_,t([(0,fd.Option)({flags:"--dry-run",description:"Resolve everything and write nothing"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],F_.prototype,"parseDryRun",null),t([(0,fd.Option)({flags:"--mr <iid>",description:"Publish to this merge request rather than resolving one"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],F_.prototype,"parseMr",null),reviewPublish_command.ReviewPublishCliCommand=F_=t([(0,fd.SubCommand)({name:"publish",arguments:"<review>",description:"Publish a triaged review to GitLab as draft merge-request comments"}),Xf("design:paramtypes",[pd.CommandBus,pd.QueryBus,Rd.ProjectPin])],F_),reviewPublish_command}e(requireReviewPublish_command,"requireReviewPublish_command");var hasRequiredReview_command;function requireReview_command(){if(hasRequiredReview_command)return review_command;hasRequiredReview_command=1;var t=review_command&&review_command.__decorate||function(z_,Y_,Q_,Z_){var L0=arguments.length,j0=L0<3?Y_:Z_===null?Z_=Object.getOwnPropertyDescriptor(Y_,Q_):Z_,Y0;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j0=Reflect.decorate(z_,Y_,Q_,Z_);else for(var Z0=z_.length-1;Z0>=0;Z0--)(Y0=z_[Z0])&&(j0=(L0<3?Y0(j0):L0>3?Y0(Y_,Q_,j0):Y0(Y_,Q_))||j0);return L0>3&&j0&&Object.defineProperty(Y_,Q_,j0),j0},Xf=review_command&&review_command.__metadata||function(z_,Y_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(z_,Y_)},fd=review_command&&review_command.__param||function(z_,Y_){return function(Q_,Z_){Y_(Q_,Z_,z_)}};Object.defineProperty(review_command,"__esModule",{value:!0}),review_command.ReviewCliCommand=void 0;const pd=requireSrc(),dd=requireCqrs(),Rd=requireCommon$1(),Bd=requireSource(),C_=requireCommands$3(),F_=requirePersistence$5(),R_=requireGetWorkingDirectory$1(),$_=requireSession$1(),N_=requireReview$2(),M_=requireReviewCandidates(),L_=requireReviewList_command(),j_=requireReviewShow_command(),H_=requireReviewPlanChanges_command(),V_=requireReviewPublish_command();let J_=class extends pd.CommandRunner{static{e(this,"ReviewCliCommand")}constructor(Y_,Q_){super(),this.commandBus=Y_,this.storageRepository=Q_}async run(Y_,Q_){const Z_=(0,R_.getWorkingDirectory)();try{(Q_.session||Q_.standalone)&&console.log(Bd.blue("Resolving the diff to review..."));const L0=await this.commandBus.execute(new C_.ReviewComposeCommand(Z_,{parentSessionId:Q_.session?(0,$_.normalizeSessionId)(Q_.session):void 0,standalone:Q_.standalone,base:Q_.base}));console.log(Bd.green("\u2713 Created review session")),console.log(""),console.log(Bd.gray(` Branch ${L0.branch}`)),console.log(Bd.gray(` Base ${L0.base} at ${L0.baseSha.slice(0,7)}`)),console.log(Bd.gray(` Head ${L0.headSha.slice(0,7)}`)),console.log(Bd.gray(` Files ${L0.changedFileCount}`)),console.log(Bd.gray(` Review file ${L0.reviewFile}`)),console.log(Bd.gray(L0.parentSessionId?` Reviewing ${L0.parentSessionId}`:" Reviewing this branch on its own \u2014 tied to no session")),L0.hasStagedChanges||console.log(Bd.gray(" Note nothing is staged \u2014 only committed work is in scope")),console.log(""),console.log(Bd.blue("Paste this into a NEW agent conversation:")),console.log(Bd.white(` "execute instructions from ${L0.sessionPath}"`)),console.log(Bd.gray(" A fresh conversation is what keeps the review honest \u2014 it has not seen the plan."))}catch(L0){if(L0 instanceof N_.ReviewParentRequiredError||L0 instanceof N_.ReviewParentNotFoundError){await this.explainMissingParent(Z_,L0);return}if(L0 instanceof N_.InvalidReviewLinkError){console.log(Bd.red(`\u2716 ${L0.message}`));return}if(L0 instanceof Error)console.log(Bd.red(`\u2716 Error: ${L0.message}`));else throw L0}}async explainMissingParent(Y_,Q_){console.log(Bd.red(`\u2716 ${Q_.message}`)),console.log(""),console.log(Bd.gray(" A review says what it is about \u2014 one of:")),console.log(Bd.white(" invariant review --session <session-id> # this session's work")),console.log(Bd.white(" invariant review --standalone # this branch, on its own"));const Z_=await(0,M_.listReviewCandidates)(this.storageRepository,Y_).catch(()=>[]);if(Z_.length===0)return;console.log(""),console.log(Bd.blue(" Recent sessions:"));const L0=Z_.reduce((j0,Y0)=>Math.max(j0,Y0.status.length),0);for(const j0 of Z_)console.log(Bd.gray(` ${j0.sessionId} ${j0.status.padEnd(L0)} ${j0.title}`))}parseSession(Y_){return Y_}parseStandalone(){return!0}parseBase(Y_){return Y_}};return review_command.ReviewCliCommand=J_,t([(0,pd.Option)({flags:"-s, --session <session>",description:"The plan session whose work is under review"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],J_.prototype,"parseSession",null),t([(0,pd.Option)({flags:"--standalone",description:"Review this branch on its own, tied to no session"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],J_.prototype,"parseStandalone",null),t([(0,pd.Option)({flags:"-b, --base <ref>",description:"Ref to diff against (default: origin/main, then origin/master, main, master)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],J_.prototype,"parseBase",null),review_command.ReviewCliCommand=J_=t([(0,pd.Command)({name:"review",description:"Compose a review session for the current branch (list, show, plan-changes, publish)",subCommands:[L_.ReviewListCliCommand,j_.ReviewShowCliCommand,H_.ReviewPlanChangesCliCommand,V_.ReviewPublishCliCommand]}),fd(1,(0,Rd.Inject)(F_.StorageRepository)),Xf("design:paramtypes",[dd.CommandBus,F_.StorageRepository])],J_),review_command}e(requireReview_command,"requireReview_command");var hasRequiredReview;function requireReview(){return hasRequiredReview||(hasRequiredReview=1,(function(t){var Xf=review$1&&review$1.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=review$1&&review$1.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireReview_command(),t),fd(requireReviewList_command(),t),fd(requireReviewShow_command(),t),fd(requireReviewPlanChanges_command(),t),fd(requireReviewPublish_command(),t)})(review$1)),review$1}e(requireReview,"requireReview");var planComplete={},planComplete_command={},hasRequiredPlanComplete_command;function requirePlanComplete_command(){if(hasRequiredPlanComplete_command)return planComplete_command;hasRequiredPlanComplete_command=1;var t=planComplete_command&&planComplete_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=planComplete_command&&planComplete_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(planComplete_command,"__esModule",{value:!0}),planComplete_command.PlanCompleteCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"PlanCompleteCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)(),[M_]=R_;if(!M_){console.log(dd.red("\u2716 Error: Please provide a session id or path.")),console.log(dd.gray(' Usage: invariant plan:complete <session> --summary "What was done"'));return}if(!$_.summary){console.log(dd.red("\u2716 Error: --summary is required.")),console.log(dd.gray(' Usage: invariant plan:complete <session> --summary "What was done"'));return}const L_=$_.date??this.today();try{const j_=await this.commandBus.execute(new Rd.PlanCompleteCommand(N_,M_,L_,$_.summary,$_.note));console.log(dd.green("\u2713 Marked session complete")),console.log(dd.gray(` ${j_.sessionPath}`))}catch(j_){if(j_ instanceof Error)console.log(dd.red(`\u2716 Error: ${j_.message}`));else throw j_}}today(){return new Date().toISOString().slice(0,10)}parseSummary(R_){return R_}parseNote(R_,$_=[]){return[...$_,R_]}parseDate(R_){return R_}};return planComplete_command.PlanCompleteCliCommand=C_,t([(0,fd.Option)({flags:"-s, --summary <summary>",description:"Short resume of what the session accomplished"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseSummary",null),t([(0,fd.Option)({flags:"-n, --note <note>",description:"Extra note line (repeatable)"}),Xf("design:type",Function),Xf("design:paramtypes",[String,Array]),Xf("design:returntype",Array)],C_.prototype,"parseNote",null),t([(0,fd.Option)({flags:"-d, --date <date>",description:"Completion date (YYYY-MM-DD). Defaults to today."}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseDate",null),planComplete_command.PlanCompleteCliCommand=C_=t([(0,fd.Command)({name:"plan:complete",arguments:"<session>",description:"Stamp a completion header at the top of a finished session file"}),Xf("design:paramtypes",[pd.CommandBus])],C_),planComplete_command}e(requirePlanComplete_command,"requirePlanComplete_command");var hasRequiredPlanComplete;function requirePlanComplete(){return hasRequiredPlanComplete||(hasRequiredPlanComplete=1,(function(t){var Xf=planComplete&&planComplete.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=planComplete&&planComplete.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requirePlanComplete_command(),t)})(planComplete)),planComplete}e(requirePlanComplete,"requirePlanComplete");var inspect={},inspect_command={},hasRequiredInspect_command;function requireInspect_command(){if(hasRequiredInspect_command)return inspect_command;hasRequiredInspect_command=1;var t=inspect_command&&inspect_command.__decorate||function(M_,L_,j_,H_){var V_=arguments.length,J_=V_<3?L_:H_===null?H_=Object.getOwnPropertyDescriptor(L_,j_):H_,z_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")J_=Reflect.decorate(M_,L_,j_,H_);else for(var Y_=M_.length-1;Y_>=0;Y_--)(z_=M_[Y_])&&(J_=(V_<3?z_(J_):V_>3?z_(L_,j_,J_):z_(L_,j_))||J_);return V_>3&&J_&&Object.defineProperty(L_,j_,J_),J_},Xf=inspect_command&&inspect_command.__metadata||function(M_,L_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(M_,L_)};Object.defineProperty(inspect_command,"__esModule",{value:!0}),inspect_command.InspectCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireQueries$2(),Bd=requireCommands$3(),C_=requireDomain$2(),F_=requireGetWorkingDirectory$1();let R_=class extends fd.CommandRunner{static{e(this,"InspectCliCommand")}constructor(L_){super(),this.queryBus=L_}async run(L_,j_){const H_=(0,F_.getWorkingDirectory)(),[V_]=L_,J_=V_!==void 0||!!j_.details;try{const z_=await this.queryBus.execute(new Rd.InspectPackagesQuery(H_,V_));if(V_&&z_.packages.length===0){process.exitCode=1,console.log(dd.red(`\u2716 Package "${V_}" not found in cache.`)),console.log(dd.gray(` Run 'invariant install ${V_}' first.`));return}if(z_.packages.length===0){console.log(dd.yellow("No packages installed.")),console.log(dd.gray(" Run 'invariant install <package>' to install a package."));return}for(const Y_ of z_.packages)this.renderPackage(Y_,J_)}catch(z_){if(z_ instanceof Bd.ProjectNotInitializedError){process.exitCode=1,console.log(dd.red("\u2716 Project not initialized.")),console.log(dd.gray(" Run 'invariant init' first."));return}if(z_ instanceof Error){process.exitCode=1,console.log(dd.red(`\u2716 Error: ${z_.message}`));return}throw z_}}renderPackage(L_,j_){if(console.log(dd.blue(`
1100
1100
  ${L_.name}@${L_.version}`)),console.log(dd.gray("\u2500".repeat(40))),L_.presence==="declared-only"){console.log(dd.yellow(" Declared in invariant.json but not installed.")),console.log(dd.gray(` Run 'invariant install ${L_.name}' to fetch it.`)),console.log("");return}for(const H_ of C_.PACKAGE_ITEM_TYPES)this.renderItemType(L_,H_,j_);console.log("")}renderItemType(L_,j_,H_){const V_=L_.items.filter(z_=>z_.type===j_);if(V_.length===0)return;const J_=H_?V_:V_.filter(z_=>z_.active);if(J_.length!==0){console.log(dd.white(` ${j_}/`));for(const z_ of J_)console.log(` ${$_(z_)} ${N_(z_)}`)}}parseDetails(){return!0}};inspect_command.InspectCliCommand=R_,t([(0,fd.Option)({flags:"-d, --details",description:"Show all items including not added ones"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],R_.prototype,"parseDetails",null),inspect_command.InspectCliCommand=R_=t([(0,fd.Command)({name:"inspect",arguments:"[package]",description:"Show package contents with active items highlighted"}),Xf("design:paramtypes",[pd.QueryBus])],R_);function $_(M_){return M_.active?dd.green("\u2713"):dd.gray("\u25CB")}e($_,"glyph");function N_(M_){return M_.active?dd.green(M_.name):dd.gray(M_.name)}return e(N_,"label"),inspect_command}e(requireInspect_command,"requireInspect_command");var hasRequiredInspect;function requireInspect(){return hasRequiredInspect||(hasRequiredInspect=1,(function(t){var Xf=inspect&&inspect.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=inspect&&inspect.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireInspect_command(),t)})(inspect)),inspect}e(requireInspect,"requireInspect");var remove={},remove_command={},hasRequiredRemove_command;function requireRemove_command(){if(hasRequiredRemove_command)return remove_command;hasRequiredRemove_command=1;var t=remove_command&&remove_command.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=remove_command&&remove_command.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)};Object.defineProperty(remove_command,"__esModule",{value:!0}),remove_command.RemoveCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireDomain$2(),C_=requireGetWorkingDirectory$1(),F_={agent:"agents",skill:"skills",command:"commands",rule:"rules",context:"contexts",instruction:"instructions",agents:"agents",skills:"skills",commands:"commands",rules:"rules",contexts:"contexts",instructions:"instructions"},R_=Bd.PACKAGE_ITEM_TYPES;let $_=class extends fd.CommandRunner{static{e(this,"RemoveCliCommand")}constructor(M_){super(),this.commandBus=M_}async run(M_){if(M_.length===0){process.exitCode=1,this.printUsage();return}const L_=(0,C_.getWorkingDirectory)();for(const j_ of M_){const H_=this.parseTargetArg(j_);if(H_)try{const V_=H_.itemType==="all"?"all items":H_.itemType,J_=H_.itemName?`/${H_.itemName}`:"";console.log(dd.blue(`Removing ${V_}${J_} from ${H_.packageName}...`));const z_=await this.commandBus.execute(new Rd.RemoveItemsCommand(L_,H_));console.log(dd.green(`\u2713 Removed items from ${z_.packageName}`));for(const Y_ of z_.removedItems){console.log(dd.gray(` ${Y_.type}:`));for(const Q_ of Y_.itemNames)console.log(dd.gray(` - ${Q_}`))}z_.removedItems.length===0&&console.log(dd.yellow(" No items to remove for the specified target."))}catch(V_){if(V_ instanceof Error)process.exitCode=1,console.log(dd.red(`\u2716 Error: ${V_.message}`));else throw V_}}}printUsage(){console.log(dd.red("\u2716 Error: Please specify what to remove.")),console.log(""),console.log(dd.white("Usage:")),console.log(dd.gray(" invariant remove <target> [<target>...] Remove one or more items")),console.log(""),console.log(dd.white("Target formats:")),console.log(dd.gray(" <package> Remove all added items")),console.log(dd.gray(" <type>:<package> Remove all items of type")),console.log(dd.gray(" <type>:<package>/<item> Remove specific item")),console.log(""),console.log(dd.white("Examples:")),console.log(""),console.log(dd.gray(" # Remove all added items from a package")),console.log(dd.white(" invariant remove everything-claude-code")),console.log(""),console.log(dd.gray(" # Remove a specific agent")),console.log(dd.white(" invariant remove agent:everything-claude-code/planner")),console.log(""),console.log(dd.gray(" # Remove multiple items at once")),console.log(dd.white(" invariant remove skill:my-pkg/react-expert skill:my-pkg/ts-patterns")),console.log(""),console.log(dd.gray('Note: The package stays in cache. Use "invariant uninstall" to fully remove.'))}parseTargetArg(M_){const L_=M_.indexOf(":");if(L_!==-1){const H_=M_.substring(0,L_).toLowerCase(),V_=M_.substring(L_+1),J_=F_[H_]||H_;if(!R_.includes(J_))return process.exitCode=1,console.log(dd.red(`\u2716 Invalid type: ${H_}`)),null;const z_=V_.indexOf("/");return z_===-1?{packageName:V_,itemType:J_}:{packageName:V_.substring(0,z_),itemName:V_.substring(z_+1),itemType:J_}}const j_=M_.indexOf("/");return j_===-1?{packageName:M_,itemType:"all"}:{packageName:M_.substring(0,j_),itemType:"all",itemName:M_.substring(j_+1)}}};return remove_command.RemoveCliCommand=$_,remove_command.RemoveCliCommand=$_=t([(0,fd.Command)({name:"remove",arguments:"[targets...]",description:"Remove added items (inverse of add, keeps cache)"}),Xf("design:paramtypes",[pd.CommandBus])],$_),remove_command}e(requireRemove_command,"requireRemove_command");var hasRequiredRemove;function requireRemove(){return hasRequiredRemove||(hasRequiredRemove=1,(function(t){var Xf=remove&&remove.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=remove&&remove.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireRemove_command(),t)})(remove)),remove}e(requireRemove,"requireRemove");var uninstall={},uninstall_command={},hasRequiredUninstall_command;function requireUninstall_command(){if(hasRequiredUninstall_command)return uninstall_command;hasRequiredUninstall_command=1;var t=uninstall_command&&uninstall_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=uninstall_command&&uninstall_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(uninstall_command,"__esModule",{value:!0}),uninstall_command.UninstallCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"UninstallCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_){const $_=(0,Bd.getWorkingDirectory)();if(R_.length===0){process.exitCode=1,console.log(dd.red("\u2716 Error: Please specify a package to uninstall.")),console.log(dd.gray(" Usage: invariant uninstall <package> [<package>...]"));return}for(const N_ of R_)await this.uninstallOne($_,N_)}async uninstallOne(R_,$_){try{console.log(dd.blue(`Uninstalling ${$_}...`));const N_=await this.commandBus.execute(new Rd.UninstallPackageCommand(R_,$_));if(console.log(dd.green(`\u2713 Uninstalled ${N_.packageName}`)),N_.removedItems.length>0){console.log(dd.gray(" Removed active items:"));for(const M_ of N_.removedItems){console.log(dd.gray(` ${M_.type}:`));for(const L_ of M_.itemNames)console.log(dd.gray(` - ${L_}`))}}console.log(dd.gray(" Removed from cache and config."))}catch(N_){if(N_ instanceof Error)process.exitCode=1,console.log(dd.red(`\u2716 Error: ${N_.message}`));else throw N_}}};return uninstall_command.UninstallCliCommand=C_,uninstall_command.UninstallCliCommand=C_=t([(0,fd.Command)({name:"uninstall",arguments:"<packages...>",description:"Completely remove packages (cache, config, and all added items)"}),Xf("design:paramtypes",[pd.CommandBus])],C_),uninstall_command}e(requireUninstall_command,"requireUninstall_command");var hasRequiredUninstall;function requireUninstall(){return hasRequiredUninstall||(hasRequiredUninstall=1,(function(t){var Xf=uninstall&&uninstall.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=uninstall&&uninstall.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUninstall_command(),t)})(uninstall)),uninstall}e(requireUninstall,"requireUninstall");var sync={},sync_command={},hasRequiredSync_command;function requireSync_command(){if(hasRequiredSync_command)return sync_command;hasRequiredSync_command=1;var t=sync_command&&sync_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=sync_command&&sync_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(sync_command,"__esModule",{value:!0}),sync_command.SyncCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1(),C_=requireRenderSyncResult();let F_=class extends fd.CommandRunner{static{e(this,"SyncCliCommand")}constructor($_){super(),this.commandBus=$_}async run($_,N_){const M_=(0,Bd.getWorkingDirectory)();try{const L_=await this.commandBus.execute(new Rd.SyncCommand(M_,{target:N_.target,check:N_.check,force:N_.force}));(0,C_.renderSyncResult)(L_),L_.checked&&L_.materialization.drift&&(process.exitCode=1)}catch(L_){if(L_ instanceof Error)process.exitCode=1,console.log(dd.red(`\u2716 Error: ${L_.message}`));else throw L_}}parseTarget($_){return $_}parseCheck(){return!0}parseForce(){return!0}};return sync_command.SyncCliCommand=F_,t([(0,fd.Option)({flags:"-t, --target <target>",description:"Sync only to a specific target (e.g., claude, cursor)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],F_.prototype,"parseTarget",null),t([(0,fd.Option)({flags:"--check",description:"Report drift without writing anything (exits 1 when out of sync)"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],F_.prototype,"parseCheck",null),t([(0,fd.Option)({flags:"--force",description:"Replace target files that were hand-edited away from the canonical item"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],F_.prototype,"parseForce",null),sync_command.SyncCliCommand=F_=t([(0,fd.Command)({name:"sync",description:"Sync active instructions and contexts to configured CLI targets"}),Xf("design:paramtypes",[pd.CommandBus])],F_),sync_command}e(requireSync_command,"requireSync_command");var hasRequiredSync;function requireSync(){return hasRequiredSync||(hasRequiredSync=1,(function(t){var Xf=sync&&sync.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=sync&&sync.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireSync_command(),t)})(sync)),sync}e(requireSync,"requireSync");var version={},version_command={},hasRequiredVersion_command;function requireVersion_command(){if(hasRequiredVersion_command)return version_command;hasRequiredVersion_command=1;var t=version_command&&version_command.__decorate||function(Rd,Bd,C_,F_){var R_=arguments.length,$_=R_<3?Bd:F_===null?F_=Object.getOwnPropertyDescriptor(Bd,C_):F_,N_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")$_=Reflect.decorate(Rd,Bd,C_,F_);else for(var M_=Rd.length-1;M_>=0;M_--)(N_=Rd[M_])&&($_=(R_<3?N_($_):R_>3?N_(Bd,C_,$_):N_(Bd,C_))||$_);return R_>3&&$_&&Object.defineProperty(Bd,C_,$_),$_};Object.defineProperty(version_command,"__esModule",{value:!0}),version_command.VersionCliCommand=void 0;const Xf=requireSrc(),fd=require$$2$3,pd=require$$2$2;let dd=class extends Xf.CommandRunner{static{e(this,"VersionCliCommand")}async run(){const Bd=fd.resolve(__dirname,"..","package.json"),C_=JSON.parse(pd.readFileSync(Bd,"utf-8"));console.log(C_.version)}};return version_command.VersionCliCommand=dd,version_command.VersionCliCommand=dd=t([(0,Xf.Command)({name:"version",description:"Display the CLI version"})],dd),version_command}e(requireVersion_command,"requireVersion_command");var hasRequiredVersion;function requireVersion(){return hasRequiredVersion||(hasRequiredVersion=1,(function(t){var Xf=version&&version.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=version&&version.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireVersion_command(),t)})(version)),version}e(requireVersion,"requireVersion");var scan={},scan_command={},hasRequiredScan_command;function requireScan_command(){if(hasRequiredScan_command)return scan_command;hasRequiredScan_command=1;var t=scan_command&&scan_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=scan_command&&scan_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(scan_command,"__esModule",{value:!0}),scan_command.ScanCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireDomain$2(),C_=requireGetWorkingDirectory$1();let F_=class extends fd.CommandRunner{static{e(this,"ScanCliCommand")}constructor($_){super(),this.commandBus=$_}async run($_,N_){const M_=(0,C_.getWorkingDirectory)();try{console.log(dd.blue("Scanning codebase..."));const L_=await this.commandBus.execute(new Rd.ScanCodebaseCommand(M_,{includeGlobs:N_.include??["**/*"],excludeGlobs:N_.exclude??[],maxFileSizeBytes:N_.maxSize??1048576,maxFiles:N_.maxFiles??5e3,scopes:N_.scope}));this.printSummary(L_)}catch(L_){if(L_ instanceof Bd.ScanNotInitializedError){console.log(dd.yellow(`\u26A0 ${L_.message}`));return}throw L_}}printSummary($_){const{scan:N_,codegraphPath:M_}=$_,L_=N_.duration?`${(N_.duration/1e3).toFixed(1)}s`:"";console.log(dd.green(` \u2713 ${N_.summary.totalFiles} files / ${N_.summary.totalLines.toLocaleString()} lines / ${N_.summary.totalSymbols.toLocaleString()} symbols (${L_})`)),console.log(dd.green(` \u2713 CodeGraph: ${M_}`)),console.log(""),console.log(dd.gray("Top languages:"));const j_=N_.summary.byLanguage,H_=Object.entries(j_).sort(([,V_],[,J_])=>(J_?.fileCount??0)-(V_?.fileCount??0));for(const[V_,J_]of H_){if(!J_)continue;const z_=V_.padEnd(16);console.log(dd.gray(` ${z_} ${String(J_.fileCount).padStart(4)} files ${J_.lineCount.toLocaleString().padStart(8)} lines`))}N_.skippedPaths.length>0&&(console.log(""),console.log(dd.gray(`Skipped: ${N_.skippedPaths.length} files`)))}parseInclude($_,N_=[]){return[...N_,$_]}parseExclude($_,N_=[]){return[...N_,$_]}parseScope($_,N_=[]){return[...N_,$_]}parseMaxSize($_){return parseInt($_,10)}parseMaxFiles($_){return parseInt($_,10)}};return scan_command.ScanCliCommand=F_,t([(0,fd.Option)({flags:"-i, --include <globs...>",description:"Include globs (default: **/*)"}),Xf("design:type",Function),Xf("design:paramtypes",[String,Array]),Xf("design:returntype",Array)],F_.prototype,"parseInclude",null),t([(0,fd.Option)({flags:"-e, --exclude <globs...>",description:"Exclude globs (in addition to defaults)"}),Xf("design:type",Function),Xf("design:paramtypes",[String,Array]),Xf("design:returntype",Array)],F_.prototype,"parseExclude",null),t([(0,fd.Option)({flags:"-s, --scope <scopes...>",description:"Scope scan to specific paths (e.g., apps/cli, src/core/auth)"}),Xf("design:type",Function),Xf("design:paramtypes",[String,Array]),Xf("design:returntype",Array)],F_.prototype,"parseScope",null),t([(0,fd.Option)({flags:"--max-size <bytes>",description:"Max file size in bytes (default: 1MB)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],F_.prototype,"parseMaxSize",null),t([(0,fd.Option)({flags:"--max-files <count>",description:"Max files to scan (default: 5000)"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",Number)],F_.prototype,"parseMaxFiles",null),scan_command.ScanCliCommand=F_=t([(0,fd.Command)({name:"scan",description:"Scan codebase and produce a CodeGraph for LLM navigation"}),Xf("design:paramtypes",[pd.CommandBus])],F_),scan_command}e(requireScan_command,"requireScan_command");var hasRequiredScan;function requireScan(){return hasRequiredScan||(hasRequiredScan=1,(function(t){var Xf=scan&&scan.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=scan&&scan.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireScan_command(),t)})(scan)),scan}e(requireScan,"requireScan");var update={},update_command={},hasRequiredUpdate_command;function requireUpdate_command(){if(hasRequiredUpdate_command)return update_command;hasRequiredUpdate_command=1;var t=update_command&&update_command.__decorate||function(N_,M_,L_,j_){var H_=arguments.length,V_=H_<3?M_:j_===null?j_=Object.getOwnPropertyDescriptor(M_,L_):j_,J_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")V_=Reflect.decorate(N_,M_,L_,j_);else for(var z_=N_.length-1;z_>=0;z_--)(J_=N_[z_])&&(V_=(H_<3?J_(V_):H_>3?J_(M_,L_,V_):J_(M_,L_))||V_);return H_>3&&V_&&Object.defineProperty(M_,L_,V_),V_},Xf=update_command&&update_command.__metadata||function(N_,M_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(N_,M_)};Object.defineProperty(update_command,"__esModule",{value:!0}),update_command.UpdateCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=require$$1$5,Rd=requireSource(),Bd=require$$2$3,C_=require$$2$2,F_=requireCheckUpdate(),R_=requirePackageManagerDetector();let $_=class extends fd.CommandRunner{static{e(this,"UpdateCliCommand")}constructor(M_){super(),this.commandBus=M_,this.detector=new R_.PackageManagerDetector}async run(M_,L_){const j_=this.getCurrentVersion();try{const H_=await this.commandBus.execute(new F_.CheckUpdateCommand(j_,L_.version));if(L_.check){this.printCheckResult(H_);return}if(!H_.updateAvailable){console.log(Rd.green(`\u2713 Already on latest version (${j_})`));return}this.performUpdate(H_)}catch(H_){if(H_ instanceof Error){console.log(Rd.red(`\u2716 ${H_.message}`));return}throw H_}}printCheckResult(M_){console.log(`Current version: ${M_.currentVersion}`),console.log(`Latest version: ${M_.latestVersion}`),M_.updateAvailable?(console.log(""),console.log(Rd.blue("Update available! Run `invariant update` to upgrade."))):(console.log(""),console.log(Rd.green("\u2713 You are on the latest version.")))}performUpdate(M_){const L_=this.detector.detect(),j_=this.detector.getUpgradeCommand(L_,M_.packageName,M_.latestVersion);console.log(`Current version: ${M_.currentVersion}`),console.log(`Target version: ${M_.latestVersion}`),console.log(""),console.log(Rd.blue(`Updating via ${L_==="unknown"?"npm":L_}...`)),console.log(Rd.gray(` $ ${j_}`)),console.log("");try{(0,dd.execSync)(j_,{stdio:"inherit"}),console.log(""),console.log(Rd.green(`\u2713 Updated to ${M_.latestVersion}`))}catch{console.log(""),console.log(Rd.red("\u2716 Update failed.")),console.log(Rd.gray(` Try running manually: ${j_}`)),console.log(Rd.gray(" You may need sudo or to fix directory permissions."))}}getCurrentVersion(){const M_=Bd.resolve(__dirname,"..","package.json");return JSON.parse(C_.readFileSync(M_,"utf-8")).version}parseVersion(M_){return M_}parseCheck(){return!0}};return update_command.UpdateCliCommand=$_,t([(0,fd.Option)({flags:"-v, --version <version>",description:"Update to a specific version"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],$_.prototype,"parseVersion",null),t([(0,fd.Option)({flags:"-c, --check",description:"Only check if an update is available"}),Xf("design:type",Function),Xf("design:paramtypes",[]),Xf("design:returntype",Boolean)],$_.prototype,"parseCheck",null),update_command.UpdateCliCommand=$_=t([(0,fd.Command)({name:"update",description:"Update the CLI to the latest version"}),Xf("design:paramtypes",[pd.CommandBus])],$_),update_command}e(requireUpdate_command,"requireUpdate_command");var hasRequiredUpdate;function requireUpdate(){return hasRequiredUpdate||(hasRequiredUpdate=1,(function(t){var Xf=update&&update.__createBinding||(Object.create?(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd);var C_=Object.getOwnPropertyDescriptor(dd,Rd);(!C_||("get"in C_?!dd.__esModule:C_.writable||C_.configurable))&&(C_={enumerable:!0,get:e(function(){return dd[Rd]},"get")}),Object.defineProperty(pd,Bd,C_)}):(function(pd,dd,Rd,Bd){Bd===void 0&&(Bd=Rd),pd[Bd]=dd[Rd]})),fd=update&&update.__exportStar||function(pd,dd){for(var Rd in pd)Rd!=="default"&&!Object.prototype.hasOwnProperty.call(dd,Rd)&&Xf(dd,pd,Rd)};Object.defineProperty(t,"__esModule",{value:!0}),fd(requireUpdate_command(),t)})(update)),update}e(requireUpdate,"requireUpdate");var _package={},package_command={},packageCreate_command={},hasRequiredPackageCreate_command;function requirePackageCreate_command(){if(hasRequiredPackageCreate_command)return packageCreate_command;hasRequiredPackageCreate_command=1;var t=packageCreate_command&&packageCreate_command.__decorate||function(F_,R_,$_,N_){var M_=arguments.length,L_=M_<3?R_:N_===null?N_=Object.getOwnPropertyDescriptor(R_,$_):N_,j_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L_=Reflect.decorate(F_,R_,$_,N_);else for(var H_=F_.length-1;H_>=0;H_--)(j_=F_[H_])&&(L_=(M_<3?j_(L_):M_>3?j_(R_,$_,L_):j_(R_,$_))||L_);return M_>3&&L_&&Object.defineProperty(R_,$_,L_),L_},Xf=packageCreate_command&&packageCreate_command.__metadata||function(F_,R_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(F_,R_)};Object.defineProperty(packageCreate_command,"__esModule",{value:!0}),packageCreate_command.PackageCreateCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireGetWorkingDirectory$1();let C_=class extends fd.CommandRunner{static{e(this,"PackageCreateCliCommand")}constructor(R_){super(),this.commandBus=R_}async run(R_,$_){const N_=(0,Bd.getWorkingDirectory)();try{const M_=await this.commandBus.execute(new Rd.CreatePackageManifestCommand(N_,{name:$_.name,version:$_.version,description:$_.description,author:$_.author,license:$_.license,repository:$_.repository}));this.printResult(M_)}catch(M_){if(M_ instanceof Error)console.log(dd.red(`\u2716 ${M_.message}`));else throw M_}}printResult(R_){const{config:$_}=R_;console.log(dd.green("\u2713 Updated invariant.json with package metadata")),console.log(dd.gray(` ${$_.name}@${$_.version}`));const N_=$_.items||{};for(const[M_,L_]of Object.entries(N_))if(!(!L_||L_.length===0)){console.log(dd.white(` ${M_}/`));for(const j_ of L_)console.log(dd.gray(` ${j_.name}`))}console.log(dd.gray(`
1101
1101
  ${R_.itemCount} item(s) detected.`))}parseName(R_){return R_}parseVersion(R_){return R_}parseDescription(R_){return R_}parseAuthor(R_){return R_}parseLicense(R_){return R_}parseRepository(R_){return R_}};return packageCreate_command.PackageCreateCliCommand=C_,t([(0,fd.Option)({flags:"-n, --name <name>",description:"Package name"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseName",null),t([(0,fd.Option)({flags:"--version <version>",description:"Package version"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseVersion",null),t([(0,fd.Option)({flags:"-d, --description <desc>",description:"Description"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseDescription",null),t([(0,fd.Option)({flags:"-a, --author <author>",description:"Author"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseAuthor",null),t([(0,fd.Option)({flags:"-l, --license <license>",description:"License"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseLicense",null),t([(0,fd.Option)({flags:"-r, --repository <url>",description:"Repository URL"}),Xf("design:type",Function),Xf("design:paramtypes",[String]),Xf("design:returntype",String)],C_.prototype,"parseRepository",null),packageCreate_command.PackageCreateCliCommand=C_=t([(0,fd.SubCommand)({name:"create",description:"Scan current folder and add package metadata to invariant.json"}),Xf("design:paramtypes",[pd.CommandBus])],C_),packageCreate_command}e(requirePackageCreate_command,"requirePackageCreate_command");var packageValidate_command={},hasRequiredPackageValidate_command;function requirePackageValidate_command(){if(hasRequiredPackageValidate_command)return packageValidate_command;hasRequiredPackageValidate_command=1;var t=packageValidate_command&&packageValidate_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=packageValidate_command&&packageValidate_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(packageValidate_command,"__esModule",{value:!0}),packageValidate_command.PackageValidateCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireDomain$2(),C_=requireGetWorkingDirectory$1();let F_=class extends fd.CommandRunner{static{e(this,"PackageValidateCliCommand")}constructor($_){super(),this.commandBus=$_}async run(){const $_=(0,C_.getWorkingDirectory)();try{const N_=await this.commandBus.execute(new Rd.ValidatePackageManifestCommand($_));this.printResult(N_)}catch(N_){if(N_ instanceof Bd.NotAPackageError){console.log(dd.red('\u2716 Not a package \u2014 no "items" block in invariant.json.')),console.log(dd.gray(" Run 'invariant package create' first."));return}if(N_ instanceof Error)console.log(dd.red(`\u2716 ${N_.message}`));else throw N_}}printResult($_){if(console.log(dd.blue(`${$_.manifestName}@${$_.manifestVersion}`)),$_.valid){console.log(dd.green("\u2713 Package is valid."));return}console.log(dd.red(`\u2716 Found ${$_.issues.length} issue(s):
1102
1102
  `));for(const N_ of $_.issues)N_.type==="missing_on_disk"?console.log(dd.red(` \u2716 ${N_.itemType}/${N_.itemName}: declared but missing on disk`)):console.log(dd.yellow(` \u26A0 ${N_.itemType}/${N_.itemName}: on disk but not in manifest`))}};return packageValidate_command.PackageValidateCliCommand=F_,packageValidate_command.PackageValidateCliCommand=F_=t([(0,fd.SubCommand)({name:"validate",description:"Validate package items in invariant.json against disk contents"}),Xf("design:paramtypes",[pd.CommandBus])],F_),packageValidate_command}e(requirePackageValidate_command,"requirePackageValidate_command");var packageRefresh_command={},hasRequiredPackageRefresh_command;function requirePackageRefresh_command(){if(hasRequiredPackageRefresh_command)return packageRefresh_command;hasRequiredPackageRefresh_command=1;var t=packageRefresh_command&&packageRefresh_command.__decorate||function(R_,$_,N_,M_){var L_=arguments.length,j_=L_<3?$_:M_===null?M_=Object.getOwnPropertyDescriptor($_,N_):M_,H_;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")j_=Reflect.decorate(R_,$_,N_,M_);else for(var V_=R_.length-1;V_>=0;V_--)(H_=R_[V_])&&(j_=(L_<3?H_(j_):L_>3?H_($_,N_,j_):H_($_,N_))||j_);return L_>3&&j_&&Object.defineProperty($_,N_,j_),j_},Xf=packageRefresh_command&&packageRefresh_command.__metadata||function(R_,$_){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(R_,$_)};Object.defineProperty(packageRefresh_command,"__esModule",{value:!0}),packageRefresh_command.PackageRefreshCliCommand=void 0;const fd=requireSrc(),pd=requireCqrs(),dd=requireSource(),Rd=requireCommands$3(),Bd=requireDomain$2(),C_=requireGetWorkingDirectory$1();let F_=class extends fd.CommandRunner{static{e(this,"PackageRefreshCliCommand")}constructor($_){super(),this.commandBus=$_}async run(){const $_=(0,C_.getWorkingDirectory)();try{const N_=await this.commandBus.execute(new Rd.RefreshPackageManifestCommand($_));this.printResult(N_)}catch(N_){if(N_ instanceof Bd.NotAPackageError){console.log(dd.red('\u2716 Not a package \u2014 no "items" block in invariant.json.')),console.log(dd.gray(" Run 'invariant package create' first."));return}if(N_ instanceof Error)console.log(dd.red(`\u2716 ${N_.message}`));else throw N_}}printResult($_){const{config:N_}=$_;console.log(dd.green("\u2713 Refreshed items in invariant.json")),console.log(dd.gray(` ${N_.name}@${N_.version}`));const M_=N_.items||{};for(const[L_,j_]of Object.entries(M_))if(!(!j_||j_.length===0)){console.log(dd.white(` ${L_}/`));for(const H_ of j_)console.log(dd.gray(` ${H_.name}`))}console.log(dd.gray(`