imdone-cli 0.76.0 → 0.77.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/.claude/plugins/imdone/README.md +1 -1
- package/dist/.claude/plugins/imdone/scripts/ai_adjustment_note_hook.mjs +89 -5
- package/dist/.claude/plugins/imdone/scripts/record_ai_adjustment_note.mjs +49 -1
- package/dist/.claude/skills/hypothesis-driven-development/SKILL.md +22 -11
- package/dist/.claude/skills/hypothesis-driven-development/references/interaction-contract.md +11 -10
- package/dist/.claude/skills/hypothesis-driven-development/references/prove-the-outcome.md +5 -5
- package/dist/.claude/skills/hypothesis-driven-development/references/session-setup.md +21 -10
- package/dist/.claude/skills/hypothesis-driven-development/scripts/evaluate_progress_notes_contract.mjs +6 -3
- package/dist/.codex/plugins/imdone/README.md +1 -1
- package/dist/.codex/plugins/imdone/scripts/ai_adjustment_note_hook.mjs +89 -5
- package/dist/.codex/plugins/imdone/scripts/record_ai_adjustment_note.mjs +49 -1
- package/dist/.codex/skills/hypothesis-driven-development/SKILL.md +22 -11
- package/dist/.codex/skills/hypothesis-driven-development/references/interaction-contract.md +11 -10
- package/dist/.codex/skills/hypothesis-driven-development/references/prove-the-outcome.md +5 -5
- package/dist/.codex/skills/hypothesis-driven-development/references/session-setup.md +21 -10
- package/dist/.codex/skills/hypothesis-driven-development/scripts/evaluate_progress_notes_contract.mjs +6 -3
- package/dist/CHANGELOG.md +4 -0
- package/dist/index.cjs +5 -4
- package/dist/index.cjs.map +2 -2
- package/dist/index.min.cjs +2 -2
- package/dist/index.min.cjs.map +2 -2
- package/dist/preinstall.cjs +1 -1
- package/dist/preinstall.cjs.map +1 -1
- package/dist/preinstall.min.cjs +1 -1
- package/dist/preinstall.min.cjs.map +1 -1
- package/package.json +1 -1
package/dist/index.min.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
var h_e=Object.create;var T1=Object.defineProperty;var D_e=Object.getOwnPropertyDescriptor;var g_e=Object.getOwnPropertyNames;var x_e=Object.getPrototypeOf,F_e=Object.prototype.hasOwnProperty;var b=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var A=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},uu=(e,t)=>{for(var r in t)T1(e,r,{get:t[r],enumerable:!0})},VP=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of g_e(t))!F_e.call(e,i)&&i!==r&&T1(e,i,{get:()=>t[i],enumerable:!(n=D_e(t,i))||n.enumerable});return e};var N=(e,t,r)=>(r=e!=null?h_e(x_e(e)):{},VP(t||!e||!e.__esModule?T1(r,"default",{value:e,enumerable:!0}):r,e)),y_e=e=>VP(T1({},"__esModule",{value:!0}),e);function E_e(){let t=new Error().stack?.split(`
|
|
3
|
-
`);if(!t||t.length<5)return{};let r=t[4]||t[3],n=r.match(/at (.+?) \((.+):(\d+):(\d+)\)/)||r.match(/at (.+):(\d+):(\d+)/);if(n){if(n.length===5)return{functionName:n[1],file:n[2],line:parseInt(n[3],10),column:parseInt(n[4],10)};if(n.length===4)return{functionName:"<anonymous>",file:n[1],line:parseInt(n[2],10),column:parseInt(n[3],10)}}return{}}var jr,XA,C_e,e6,w,Se=b(()=>{jr={ERROR:0,WARN:1,INFO:2,DEBUG:3,TRACE:4,NONE:-1};XA=jr.WARN,C_e=Object.keys(jr).find(e=>jr[e]===XA),e6=class{constructor(){this.level=XA}setLevel(t){return t in jr?this.level=jr[t]:typeof t=="number"&&t>=-1&&t<=4?this.level=t:(this.level=XA,console.warn(`Invalid log level: ${t}. Using default ${C_e} level.`)),this}shouldLog(t){return t<=this.level}formatMessage(t){let r=E_e(),n=r.file?`[${r.file}:${r.line}] ${r.functionName} - `:"";return typeof t[0]=="string"?t[0]=n+t[0]:t.unshift(n),t}log(...t){this.shouldLog(jr.INFO)&&console.log(...this.formatMessage(t))}error(...t){this.shouldLog(jr.ERROR)&&console.error(...this.formatMessage(t))}warn(...t){this.shouldLog(jr.WARN)&&console.warn(...this.formatMessage(t))}info(...t){this.shouldLog(jr.INFO)&&console.info(...this.formatMessage(t))}debug(...t){this.shouldLog(jr.DEBUG)&&console.debug("[DEBUG]",...this.formatMessage(t))}trace(...t){this.shouldLog(jr.TRACE)&&console.trace("[TRACE]",...this.formatMessage(t))}time(t){this.shouldLog(jr.DEBUG)&&console.time(t)}timeEnd(t){this.shouldLog(jr.DEBUG)&&console.timeEnd(t)}},w=new e6});var YP,KP=b(()=>{YP={name:"imdone-cli",version:"0.76.0",author:"Jesse Piascik",description:"Turn Jira or GitHub issues into a local Markdown workspace for AI and humans, synced back to your provider.",license:"Proprietary",homepage:"https://imdone.io/docs/imdone-cli",preferGlobal:!0,engines:{node:">=22.0.0"},main:"./dist/index.min.cjs",type:"module",bin:{imdone:"./dist/index.min.cjs","imdone-cli":"./dist/index.min.cjs","imdone-debug":"./dist/index.cjs"},files:["dist","LICENSE","README.md","CHANGELOG.md",".npmignore"],scripts:{prepublishOnly:"node scripts/prepublish-only.mjs",link:"npm link ../../imdone-core ../../imdone-api",clean:"rm -rf dist/","build-bundle":"npm run clean && node esbuild.config.js && cp -R public/ dist/ && cp README.md dist/ && cp CHANGELOG.md dist/ && cp src/adapters/jwt-public.pem dist/",build:"SKIP_BACKLOG_COPY=1 ./build.sh","build:no-test":"SKIP_TESTS=1 SKIP_BACKLOG_COPY=1 ./build.sh","build:with-backlog":"./build.sh","install:global":"npm run build:no-test && npm install -g .","pack:share":"npm run build:no-test && npm pack && node scripts/show-install-command.mjs","pack:share:with-backlog":"SKIP_TESTS=1 ./build.sh && npm pack && node scripts/show-install-command.mjs","package:macos-arm64":"npm run build:no-test && node scripts/package-macos-arm64.mjs","package:macos-arm64:no-build":"node scripts/package-macos-arm64.mjs","deploy:macos-arm64":"node scripts/deploy-macos-arm64-package.mjs","deploy:macos-arm64:dry-run":"node scripts/deploy-macos-arm64-package.mjs --dry-run",coverage:"vitest --run --coverage",test:"vitest --run","test-ci":"vitest --run","version:patch":'npm version patch --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"',"version:minor":'npm version minor --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"',"version:major":'npm version major --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"'},overrides:{"chrono-node":"2.7.8","gray-matter":"2.0.1",monquery:"https://github.com/imdone/node-monquery/archive/refs/tags/0.2.2.tar.gz"},dependencies:{"@inquirer/prompts":"^7.10.1",chalk:"^5.4.1",commander:"^13.1.0",dotenv:"16.4.5",execa:"^9.5.3","find-up-simple":"^1.0.1","imdone-core":"^2.3.2","js-yaml":"^4.1.0",jsonwebtoken:"^9.0.2",markdownlint:"^0.38.0",open:"^9.1.0",ora:"^8.2.0",semver:"^7.7.2","simple-git":"^3.27.0",yaml:"^2.8.1"},devDependencies:{"@vitest/coverage-v8":"^4.1.2",esbuild:"^0.28.1","esbuild-plugin-copy":"^2.1.1",glob:"^12.0.0",vitest:"^4.1.2"}}});var g0=A((O2t,JP)=>{"use strict";var w_e="2.0.0",A_e=Number.MAX_SAFE_INTEGER||9007199254740991,__e=16,v_e=250,S_e=["major","premajor","minor","preminor","patch","prepatch","prerelease"];JP.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:__e,MAX_SAFE_BUILD_LENGTH:v_e,MAX_SAFE_INTEGER:A_e,RELEASE_TYPES:S_e,SEMVER_SPEC_VERSION:w_e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Up=A((L2t,QP)=>{"use strict";var B_e=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};QP.exports=B_e});var x0=A((Nu,ZP)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:t6,MAX_SAFE_BUILD_LENGTH:k_e,MAX_LENGTH:T_e}=g0(),I_e=Up();Nu=ZP.exports={};var O_e=Nu.re=[],L_e=Nu.safeRe=[],Fe=Nu.src=[],R_e=Nu.safeSrc=[],ye=Nu.t={},P_e=0,r6="[a-zA-Z0-9-]",$_e=[["\\s",1],["\\d",T_e],[r6,k_e]],N_e=e=>{for(let[t,r]of $_e)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},Me=(e,t,r)=>{let n=N_e(t),i=P_e++;I_e(e,i,t),ye[e]=i,Fe[i]=t,R_e[i]=n,O_e[i]=new RegExp(t,r?"g":void 0),L_e[i]=new RegExp(n,r?"g":void 0)};Me("NUMERICIDENTIFIER","0|[1-9]\\d*");Me("NUMERICIDENTIFIERLOOSE","\\d+");Me("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${r6}*`);Me("MAINVERSION",`(${Fe[ye.NUMERICIDENTIFIER]})\\.(${Fe[ye.NUMERICIDENTIFIER]})\\.(${Fe[ye.NUMERICIDENTIFIER]})`);Me("MAINVERSIONLOOSE",`(${Fe[ye.NUMERICIDENTIFIERLOOSE]})\\.(${Fe[ye.NUMERICIDENTIFIERLOOSE]})\\.(${Fe[ye.NUMERICIDENTIFIERLOOSE]})`);Me("PRERELEASEIDENTIFIER",`(?:${Fe[ye.NONNUMERICIDENTIFIER]}|${Fe[ye.NUMERICIDENTIFIER]})`);Me("PRERELEASEIDENTIFIERLOOSE",`(?:${Fe[ye.NONNUMERICIDENTIFIER]}|${Fe[ye.NUMERICIDENTIFIERLOOSE]})`);Me("PRERELEASE",`(?:-(${Fe[ye.PRERELEASEIDENTIFIER]}(?:\\.${Fe[ye.PRERELEASEIDENTIFIER]})*))`);Me("PRERELEASELOOSE",`(?:-?(${Fe[ye.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Fe[ye.PRERELEASEIDENTIFIERLOOSE]})*))`);Me("BUILDIDENTIFIER",`${r6}+`);Me("BUILD",`(?:\\+(${Fe[ye.BUILDIDENTIFIER]}(?:\\.${Fe[ye.BUILDIDENTIFIER]})*))`);Me("FULLPLAIN",`v?${Fe[ye.MAINVERSION]}${Fe[ye.PRERELEASE]}?${Fe[ye.BUILD]}?`);Me("FULL",`^${Fe[ye.FULLPLAIN]}$`);Me("LOOSEPLAIN",`[v=\\s]*${Fe[ye.MAINVERSIONLOOSE]}${Fe[ye.PRERELEASELOOSE]}?${Fe[ye.BUILD]}?`);Me("LOOSE",`^${Fe[ye.LOOSEPLAIN]}$`);Me("GTLT","((?:<|>)?=?)");Me("XRANGEIDENTIFIERLOOSE",`${Fe[ye.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Me("XRANGEIDENTIFIER",`${Fe[ye.NUMERICIDENTIFIER]}|x|X|\\*`);Me("XRANGEPLAIN",`[v=\\s]*(${Fe[ye.XRANGEIDENTIFIER]})(?:\\.(${Fe[ye.XRANGEIDENTIFIER]})(?:\\.(${Fe[ye.XRANGEIDENTIFIER]})(?:${Fe[ye.PRERELEASE]})?${Fe[ye.BUILD]}?)?)?`);Me("XRANGEPLAINLOOSE",`[v=\\s]*(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:${Fe[ye.PRERELEASELOOSE]})?${Fe[ye.BUILD]}?)?)?`);Me("XRANGE",`^${Fe[ye.GTLT]}\\s*${Fe[ye.XRANGEPLAIN]}$`);Me("XRANGELOOSE",`^${Fe[ye.GTLT]}\\s*${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t6}})(?:\\.(\\d{1,${t6}}))?(?:\\.(\\d{1,${t6}}))?`);Me("COERCE",`${Fe[ye.COERCEPLAIN]}(?:$|[^\\d])`);Me("COERCEFULL",Fe[ye.COERCEPLAIN]+`(?:${Fe[ye.PRERELEASE]})?(?:${Fe[ye.BUILD]})?(?:$|[^\\d])`);Me("COERCERTL",Fe[ye.COERCE],!0);Me("COERCERTLFULL",Fe[ye.COERCEFULL],!0);Me("LONETILDE","(?:~>?)");Me("TILDETRIM",`(\\s*)${Fe[ye.LONETILDE]}\\s+`,!0);Nu.tildeTrimReplace="$1~";Me("TILDE",`^${Fe[ye.LONETILDE]}${Fe[ye.XRANGEPLAIN]}$`);Me("TILDELOOSE",`^${Fe[ye.LONETILDE]}${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("LONECARET","(?:\\^)");Me("CARETTRIM",`(\\s*)${Fe[ye.LONECARET]}\\s+`,!0);Nu.caretTrimReplace="$1^";Me("CARET",`^${Fe[ye.LONECARET]}${Fe[ye.XRANGEPLAIN]}$`);Me("CARETLOOSE",`^${Fe[ye.LONECARET]}${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("COMPARATORLOOSE",`^${Fe[ye.GTLT]}\\s*(${Fe[ye.LOOSEPLAIN]})$|^$`);Me("COMPARATOR",`^${Fe[ye.GTLT]}\\s*(${Fe[ye.FULLPLAIN]})$|^$`);Me("COMPARATORTRIM",`(\\s*)${Fe[ye.GTLT]}\\s*(${Fe[ye.LOOSEPLAIN]}|${Fe[ye.XRANGEPLAIN]})`,!0);Nu.comparatorTrimReplace="$1$2$3";Me("HYPHENRANGE",`^\\s*(${Fe[ye.XRANGEPLAIN]})\\s+-\\s+(${Fe[ye.XRANGEPLAIN]})\\s*$`);Me("HYPHENRANGELOOSE",`^\\s*(${Fe[ye.XRANGEPLAINLOOSE]})\\s+-\\s+(${Fe[ye.XRANGEPLAINLOOSE]})\\s*$`);Me("STAR","(<|>)?=?\\s*\\*");Me("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Me("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var I1=A((R2t,XP)=>{"use strict";var M_e=Object.freeze({loose:!0}),q_e=Object.freeze({}),U_e=e=>e?typeof e!="object"?M_e:e:q_e;XP.exports=U_e});var n6=A((P2t,r$)=>{"use strict";var e$=/^[0-9]+$/,t$=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=e$.test(e),n=e$.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},j_e=(e,t)=>t$(t,e);r$.exports={compareIdentifiers:t$,rcompareIdentifiers:j_e}});var Hr=A(($2t,i$)=>{"use strict";var O1=Up(),{MAX_LENGTH:n$,MAX_SAFE_INTEGER:L1}=g0(),{safeRe:R1,t:P1}=x0(),H_e=I1(),{compareIdentifiers:i6}=n6(),G_e=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(i6(e[n],r[n])!==0)return!1;return!0},u6=class e{constructor(t,r){if(r=H_e(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>n$)throw new TypeError(`version is longer than ${n$} characters`);O1("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?R1[P1.LOOSE]:R1[P1.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>L1||this.major<0)throw new TypeError("Invalid major version");if(this.minor>L1||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>L1||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let u=+i;if(u>=0&&u<L1)return u}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(O1("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],i=t.prerelease[r];if(O1("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return i6(n,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],i=t.build[r];if(O1("build compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return i6(n,i)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?R1[P1.PRERELEASELOOSE]:R1[P1.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let u=this.prerelease.length;for(;--u>=0;)typeof this.prerelease[u]=="number"&&(this.prerelease[u]++,u=-2);if(u===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let u=[r,i];if(n===!1&&(u=[r]),G_e(this.prerelease,r)){let o=this.prerelease[r.split(".").length];isNaN(o)&&(this.prerelease=u)}else this.prerelease=u}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};i$.exports=u6});var Ms=A((N2t,o$)=>{"use strict";var u$=Hr(),z_e=(e,t,r=!1)=>{if(e instanceof u$)return e;try{return new u$(e,t)}catch(n){if(!r)return null;throw n}};o$.exports=z_e});var a$=A((M2t,s$)=>{"use strict";var W_e=Ms(),V_e=(e,t)=>{let r=W_e(e,t);return r?r.version:null};s$.exports=V_e});var l$=A((q2t,c$)=>{"use strict";var K_e=Ms(),Y_e=(e,t)=>{let r=K_e(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};c$.exports=Y_e});var p$=A((U2t,d$)=>{"use strict";var f$=Hr(),J_e=(e,t,r,n,i)=>{typeof r=="string"&&(i=n,n=r,r=void 0);try{return new f$(e instanceof f$?e.version:e,r).inc(t,n,i).version}catch{return null}};d$.exports=J_e});var D$=A((j2t,h$)=>{"use strict";var m$=Ms(),Q_e=(e,t)=>{let r=m$(e,null,!0),n=m$(t,null,!0),i=r.compare(n);if(i===0)return null;let u=i>0,o=u?r:n,s=u?n:r,a=!!o.prerelease.length;if(!!s.prerelease.length&&!a){if(!s.patch&&!s.minor)return"major";if(s.compareMain(o)===0)return s.minor&&!s.patch?"minor":"patch"}let l=a?"pre":"";return r.major!==n.major?l+"major":r.minor!==n.minor?l+"minor":r.patch!==n.patch?l+"patch":"prerelease"};h$.exports=Q_e});var x$=A((H2t,g$)=>{"use strict";var Z_e=Hr(),X_e=(e,t)=>new Z_e(e,t).major;g$.exports=X_e});var y$=A((G2t,F$)=>{"use strict";var eve=Hr(),tve=(e,t)=>new eve(e,t).minor;F$.exports=tve});var C$=A((z2t,E$)=>{"use strict";var rve=Hr(),nve=(e,t)=>new rve(e,t).patch;E$.exports=nve});var w$=A((W2t,b$)=>{"use strict";var ive=Ms(),uve=(e,t)=>{let r=ive(e,t);return r&&r.prerelease.length?r.prerelease:null};b$.exports=uve});var xi=A((V2t,_$)=>{"use strict";var A$=Hr(),ove=(e,t,r)=>new A$(e,r).compare(new A$(t,r));_$.exports=ove});var S$=A((K2t,v$)=>{"use strict";var sve=xi(),ave=(e,t,r)=>sve(t,e,r);v$.exports=ave});var k$=A((Y2t,B$)=>{"use strict";var cve=xi(),lve=(e,t)=>cve(e,t,!0);B$.exports=lve});var $1=A((J2t,I$)=>{"use strict";var T$=Hr(),fve=(e,t,r)=>{let n=new T$(e,r),i=new T$(t,r);return n.compare(i)||n.compareBuild(i)};I$.exports=fve});var L$=A((Q2t,O$)=>{"use strict";var dve=$1(),pve=(e,t)=>e.sort((r,n)=>dve(r,n,t));O$.exports=pve});var P$=A((Z2t,R$)=>{"use strict";var mve=$1(),hve=(e,t)=>e.sort((r,n)=>mve(n,r,t));R$.exports=hve});var jp=A((X2t,$$)=>{"use strict";var Dve=xi(),gve=(e,t,r)=>Dve(e,t,r)>0;$$.exports=gve});var N1=A((ext,N$)=>{"use strict";var xve=xi(),Fve=(e,t,r)=>xve(e,t,r)<0;N$.exports=Fve});var o6=A((txt,M$)=>{"use strict";var yve=xi(),Eve=(e,t,r)=>yve(e,t,r)===0;M$.exports=Eve});var s6=A((rxt,q$)=>{"use strict";var Cve=xi(),bve=(e,t,r)=>Cve(e,t,r)!==0;q$.exports=bve});var M1=A((nxt,U$)=>{"use strict";var wve=xi(),Ave=(e,t,r)=>wve(e,t,r)>=0;U$.exports=Ave});var q1=A((ixt,j$)=>{"use strict";var _ve=xi(),vve=(e,t,r)=>_ve(e,t,r)<=0;j$.exports=vve});var a6=A((uxt,H$)=>{"use strict";var Sve=o6(),Bve=s6(),kve=jp(),Tve=M1(),Ive=N1(),Ove=q1(),Lve=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Sve(e,r,n);case"!=":return Bve(e,r,n);case">":return kve(e,r,n);case">=":return Tve(e,r,n);case"<":return Ive(e,r,n);case"<=":return Ove(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};H$.exports=Lve});var z$=A((oxt,G$)=>{"use strict";var Rve=Hr(),Pve=Ms(),{safeRe:U1,t:j1}=x0(),$ve=(e,t)=>{if(e instanceof Rve)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?U1[j1.COERCEFULL]:U1[j1.COERCE]);else{let a=t.includePrerelease?U1[j1.COERCERTLFULL]:U1[j1.COERCERTL],c;for(;(c=a.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||c.index+c[0].length!==r.index+r[0].length)&&(r=c),a.lastIndex=c.index+c[1].length+c[2].length;a.lastIndex=-1}if(r===null)return null;let n=r[2],i=r[3]||"0",u=r[4]||"0",o=t.includePrerelease&&r[5]?`-${r[5]}`:"",s=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Pve(`${n}.${i}.${u}${o}${s}`,t)};G$.exports=$ve});var V$=A((sxt,W$)=>{"use strict";var Nve=Ms(),Mve=g0(),qve=Hr(),Uve=(e,t,r)=>{if(!Mve.RELEASE_TYPES.includes(t))return null;let n=jve(e,r);return n&&Hve(n,t)},jve=(e,t)=>{let r=e instanceof qve?e.version:e;return Nve(r,t)},Hve=(e,t)=>{if(Gve(t))return e.version;switch(e.prerelease=[],t){case"major":e.minor=0,e.patch=0;break;case"minor":e.patch=0;break}return e.format()},Gve=e=>e.startsWith("pre");W$.exports=Uve});var Y$=A((axt,K$)=>{"use strict";var c6=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,r)}return this}};K$.exports=c6});var Fi=A((cxt,X$)=>{"use strict";var zve=/\s+/g,l6=class e{constructor(t,r){if(r=Vve(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof f6)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(zve," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!Q$(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&r4e(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(t4e,"");let n=((this.options.includePrerelease&&Xve)|(this.options.loose&&e4e))+":"+t,i=J$.get(n);if(i)return i;let u=this.options.loose,o=u?hn[Gr.HYPHENRANGELOOSE]:hn[Gr.HYPHENRANGE];t=t.replace(o,p4e(this.options.includePrerelease)),It("hyphen replace",t),t=t.replace(hn[Gr.COMPARATORTRIM],Jve),It("comparator trim",t),t=t.replace(hn[Gr.TILDETRIM],Qve),It("tilde trim",t),t=t.replace(hn[Gr.CARETTRIM],Zve),It("caret trim",t);let s=t.split(" ").map(f=>n4e(f,this.options)).join(" ").split(/\s+/).map(f=>d4e(f,this.options));u&&(s=s.filter(f=>(It("loose invalid filter",f,this.options),!!f.match(hn[Gr.COMPARATORLOOSE])))),It("range list",s);let a=new Map,c=s.map(f=>new f6(f,this.options));for(let f of c){if(Q$(f))return[f];a.set(f.value,f)}a.size>1&&a.has("")&&a.delete("");let l=[...a.values()];return J$.set(n,l),l}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Z$(n,r)&&t.set.some(i=>Z$(i,r)&&n.every(u=>i.every(o=>u.intersects(o,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new Kve(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(m4e(this.set[r],t,this.options))return!0;return!1}};X$.exports=l6;var Wve=Y$(),J$=new Wve,Vve=I1(),f6=Hp(),It=Up(),Kve=Hr(),{safeRe:hn,src:Yve,t:Gr,comparatorTrimReplace:Jve,tildeTrimReplace:Qve,caretTrimReplace:Zve}=x0(),{FLAG_INCLUDE_PRERELEASE:Xve,FLAG_LOOSE:e4e}=g0(),t4e=new RegExp(Yve[Gr.BUILD],"g"),Q$=e=>e.value==="<0.0.0-0",r4e=e=>e.value==="",Z$=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(u=>i.intersects(u,t)),i=n.pop();return r},n4e=(e,t)=>(e=e.replace(hn[Gr.BUILD],""),It("comp",e,t),e=s4e(e,t),It("caret",e),e=u4e(e,t),It("tildes",e),e=c4e(e,t),It("xrange",e),e=f4e(e,t),It("stars",e),e),xr=e=>!e||e.toLowerCase()==="x"||e==="*",i4e=(e,t,r)=>xr(e)&&!xr(t)||xr(t)&&r&&!xr(r),u4e=(e,t)=>e.trim().split(/\s+/).map(r=>o4e(r,t)).join(" "),o4e=(e,t)=>{let r=t.loose?hn[Gr.TILDELOOSE]:hn[Gr.TILDE],n=t.includePrerelease?"-0":"";return e.replace(r,(i,u,o,s,a)=>{It("tilde",e,i,u,o,s,a);let c;return xr(u)?c="":xr(o)?c=`>=${u}.0.0${n} <${+u+1}.0.0-0`:xr(s)?c=`>=${u}.${o}.0${n} <${u}.${+o+1}.0-0`:a?(It("replaceTilde pr",a),c=`>=${u}.${o}.${s}-${a} <${u}.${+o+1}.0-0`):c=`>=${u}.${o}.${s} <${u}.${+o+1}.0-0`,It("tilde return",c),c})},s4e=(e,t)=>e.trim().split(/\s+/).map(r=>a4e(r,t)).join(" "),a4e=(e,t)=>{It("caret",e,t);let r=t.loose?hn[Gr.CARETLOOSE]:hn[Gr.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(i,u,o,s,a)=>{It("caret",e,i,u,o,s,a);let c;return xr(u)?c="":xr(o)?c=`>=${u}.0.0${n} <${+u+1}.0.0-0`:xr(s)?u==="0"?c=`>=${u}.${o}.0${n} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.0${n} <${+u+1}.0.0-0`:a?(It("replaceCaret pr",a),u==="0"?o==="0"?c=`>=${u}.${o}.${s}-${a} <${u}.${o}.${+s+1}-0`:c=`>=${u}.${o}.${s}-${a} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.${s}-${a} <${+u+1}.0.0-0`):(It("no pr"),u==="0"?o==="0"?c=`>=${u}.${o}.${s} <${u}.${o}.${+s+1}-0`:c=`>=${u}.${o}.${s} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.${s} <${+u+1}.0.0-0`),It("caret return",c),c})},c4e=(e,t)=>(It("replaceXRanges",e,t),e.split(/\s+/).map(r=>l4e(r,t)).join(" ")),l4e=(e,t)=>{e=e.trim();let r=t.loose?hn[Gr.XRANGELOOSE]:hn[Gr.XRANGE];return e.replace(r,(n,i,u,o,s,a)=>{if(It("xRange",e,n,i,u,o,s,a),i4e(u,o,s))return e;let c=xr(u),l=c||xr(o),f=l||xr(s),d=f;return i==="="&&d&&(i=""),a=t.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&d?(l&&(o=0),s=0,i===">"?(i=">=",l?(u=+u+1,o=0,s=0):(o=+o+1,s=0)):i==="<="&&(i="<",l?u=+u+1:o=+o+1),i==="<"&&(a="-0"),n=`${i+u}.${o}.${s}${a}`):l?n=`>=${u}.0.0${a} <${+u+1}.0.0-0`:f&&(n=`>=${u}.${o}.0${a} <${u}.${+o+1}.0-0`),It("xRange return",n),n})},f4e=(e,t)=>(It("replaceStars",e,t),e.trim().replace(hn[Gr.STAR],"")),d4e=(e,t)=>(It("replaceGTE0",e,t),e.trim().replace(hn[t.includePrerelease?Gr.GTE0PRE:Gr.GTE0],"")),p4e=e=>(t,r,n,i,u,o,s,a,c,l,f,d)=>(xr(n)?r="":xr(i)?r=`>=${n}.0.0${e?"-0":""}`:xr(u)?r=`>=${n}.${i}.0${e?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,xr(c)?a="":xr(l)?a=`<${+c+1}.0.0-0`:xr(f)?a=`<${c}.${+l+1}.0-0`:d?a=`<=${c}.${l}.${f}-${d}`:e?a=`<${c}.${l}.${+f+1}-0`:a=`<=${a}`,`${r} ${a}`.trim()),m4e=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(It(e[n].semver),e[n].semver!==f6.ANY&&e[n].semver.prerelease.length>0){let i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var Hp=A((lxt,uN)=>{"use strict";var Gp=Symbol("SemVer ANY"),m6=class e{static get ANY(){return Gp}constructor(t,r){if(r=eN(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),p6("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===Gp?this.value="":this.value=this.operator+this.semver.version,p6("comp",this)}parse(t){let r=this.options.loose?tN[rN.COMPARATORLOOSE]:tN[rN.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new nN(n[2],this.options.loose):this.semver=Gp}toString(){return this.value}test(t){if(p6("Comparator.test",t,this.options.loose),this.semver===Gp||t===Gp)return!0;if(typeof t=="string")try{t=new nN(t,this.options)}catch{return!1}return d6(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new iN(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new iN(this.value,r).test(t.semver):(r=eN(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||d6(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||d6(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};uN.exports=m6;var eN=I1(),{safeRe:tN,t:rN}=x0(),d6=a6(),p6=Up(),nN=Hr(),iN=Fi()});var zp=A((fxt,oN)=>{"use strict";var h4e=Fi(),D4e=(e,t,r)=>{try{t=new h4e(t,r)}catch{return!1}return t.test(e)};oN.exports=D4e});var aN=A((dxt,sN)=>{"use strict";var g4e=Fi(),x4e=(e,t)=>new g4e(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));sN.exports=x4e});var lN=A((pxt,cN)=>{"use strict";var F4e=Hr(),y4e=Fi(),E4e=(e,t,r)=>{let n=null,i=null,u=null;try{u=new y4e(t,r)}catch{return null}return e.forEach(o=>{u.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new F4e(n,r))}),n};cN.exports=E4e});var dN=A((mxt,fN)=>{"use strict";var C4e=Hr(),b4e=Fi(),w4e=(e,t,r)=>{let n=null,i=null,u=null;try{u=new b4e(t,r)}catch{return null}return e.forEach(o=>{u.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new C4e(n,r))}),n};fN.exports=w4e});var hN=A((hxt,mN)=>{"use strict";var h6=Hr(),A4e=Fi(),pN=jp(),_4e=(e,t)=>{e=new A4e(e,t);let r=new h6("0.0.0");if(e.test(r)||(r=new h6("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let i=e.set[n],u=null;i.forEach(o=>{let s=new h6(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!u||pN(s,u))&&(u=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),u&&(!r||pN(r,u))&&(r=u)}return r&&e.test(r)?r:null};mN.exports=_4e});var gN=A((Dxt,DN)=>{"use strict";var v4e=Fi(),S4e=(e,t)=>{try{return new v4e(e,t).range||"*"}catch{return null}};DN.exports=S4e});var H1=A((gxt,EN)=>{"use strict";var B4e=Hr(),yN=Hp(),{ANY:k4e}=yN,T4e=Fi(),I4e=zp(),xN=jp(),FN=N1(),O4e=q1(),L4e=M1(),R4e=(e,t,r,n)=>{e=new B4e(e,n),t=new T4e(t,n);let i,u,o,s,a;switch(r){case">":i=xN,u=O4e,o=FN,s=">",a=">=";break;case"<":i=FN,u=L4e,o=xN,s="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(I4e(e,t,n))return!1;for(let c=0;c<t.set.length;++c){let l=t.set[c],f=null,d=null;if(l.forEach(p=>{p.semver===k4e&&(p=new yN(">=0.0.0")),f=f||p,d=d||p,i(p.semver,f.semver,n)?f=p:o(p.semver,d.semver,n)&&(d=p)}),f.operator===s||f.operator===a||(!d.operator||d.operator===s)&&u(e,d.semver))return!1;if(d.operator===a&&o(e,d.semver))return!1}return!0};EN.exports=R4e});var bN=A((xxt,CN)=>{"use strict";var P4e=H1(),$4e=(e,t,r)=>P4e(e,t,">",r);CN.exports=$4e});var AN=A((Fxt,wN)=>{"use strict";var N4e=H1(),M4e=(e,t,r)=>N4e(e,t,"<",r);wN.exports=M4e});var SN=A((yxt,vN)=>{"use strict";var _N=Fi(),q4e=(e,t,r)=>(e=new _N(e,r),t=new _N(t,r),e.intersects(t,r));vN.exports=q4e});var kN=A((Ext,BN)=>{"use strict";var U4e=zp(),j4e=xi();BN.exports=(e,t,r)=>{let n=[],i=null,u=null,o=e.sort((l,f)=>j4e(l,f,r));for(let l of o)U4e(l,t,r)?(u=l,i||(i=l)):(u&&n.push([i,u]),u=null,i=null);i&&n.push([i,null]);let s=[];for(let[l,f]of n)l===f?s.push(l):!f&&l===o[0]?s.push("*"):f?l===o[0]?s.push(`<=${f}`):s.push(`${l} - ${f}`):s.push(`>=${l}`);let a=s.join(" || "),c=typeof t.raw=="string"?t.raw:String(t);return a.length<c.length?a:t}});var PN=A((Cxt,RN)=>{"use strict";var TN=Fi(),x6=Hp(),{ANY:D6}=x6,g6=zp(),F6=xi(),H4e=(e,t,r={})=>{if(e===t)return!0;e=new TN(e,r),t=new TN(t,r);let n=!1;e:for(let i of e.set){for(let u of t.set){let o=z4e(i,u,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},G4e=[new x6(">=0.0.0-0")],IN=[new x6(">=0.0.0")],z4e=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===D6){if(t.length===1&&t[0].semver===D6)return!0;r.includePrerelease?e=G4e:e=IN}if(t.length===1&&t[0].semver===D6){if(r.includePrerelease)return!0;t=IN}let n=new Set,i,u;for(let p of e)p.operator===">"||p.operator===">="?i=ON(i,p,r):p.operator==="<"||p.operator==="<="?u=LN(u,p,r):n.add(p.semver);if(n.size>1)return null;let o;if(i&&u){if(o=F6(i.semver,u.semver,r),o>0)return null;if(o===0&&(i.operator!==">="||u.operator!=="<="))return null}for(let p of n){if(i&&!g6(p,String(i),r)||u&&!g6(p,String(u),r))return null;for(let h of t)if(!g6(p,String(h),r))return!1;return!0}let s,a,c,l,f=u&&!r.includePrerelease&&u.semver.prerelease.length?u.semver:!1,d=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;f&&f.prerelease.length===1&&u.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",i){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator===">"||p.operator===">="){if(s=ON(i,p,r),s===p&&s!==i)return!1}else if(i.operator===">="&&!p.test(i.semver))return!1}if(u){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator==="<"||p.operator==="<="){if(a=LN(u,p,r),a===p&&a!==u)return!1}else if(u.operator==="<="&&!p.test(u.semver))return!1}if(!p.operator&&(u||i)&&o!==0)return!1}return!(i&&c&&!u&&o!==0||u&&l&&!i&&o!==0||d||f)},ON=(e,t,r)=>{if(!e)return t;let n=F6(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},LN=(e,t,r)=>{if(!e)return t;let n=F6(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};RN.exports=H4e});var F0=A((bxt,MN)=>{"use strict";var y6=x0(),$N=g0(),W4e=Hr(),NN=n6(),V4e=Ms(),K4e=a$(),Y4e=l$(),J4e=p$(),Q4e=D$(),Z4e=x$(),X4e=y$(),e5e=C$(),t5e=w$(),r5e=xi(),n5e=S$(),i5e=k$(),u5e=$1(),o5e=L$(),s5e=P$(),a5e=jp(),c5e=N1(),l5e=o6(),f5e=s6(),d5e=M1(),p5e=q1(),m5e=a6(),h5e=z$(),D5e=V$(),g5e=Hp(),x5e=Fi(),F5e=zp(),y5e=aN(),E5e=lN(),C5e=dN(),b5e=hN(),w5e=gN(),A5e=H1(),_5e=bN(),v5e=AN(),S5e=SN(),B5e=kN(),k5e=PN();MN.exports={parse:V4e,valid:K4e,clean:Y4e,inc:J4e,diff:Q4e,major:Z4e,minor:X4e,patch:e5e,prerelease:t5e,compare:r5e,rcompare:n5e,compareLoose:i5e,compareBuild:u5e,sort:o5e,rsort:s5e,gt:a5e,lt:c5e,eq:l5e,neq:f5e,gte:d5e,lte:p5e,cmp:m5e,coerce:h5e,truncate:D5e,Comparator:g5e,Range:x5e,satisfies:F5e,toComparators:y5e,maxSatisfying:E5e,minSatisfying:C5e,minVersion:b5e,validRange:w5e,outside:A5e,gtr:_5e,ltr:v5e,intersects:S5e,simplifyRange:B5e,subset:k5e,SemVer:W4e,re:y6.re,src:y6.src,tokens:y6.t,SEMVER_SPEC_VERSION:$N.SEMVER_SPEC_VERSION,RELEASE_TYPES:$N.RELEASE_TYPES,compareIdentifiers:NN.compareIdentifiers,rcompareIdentifiers:NN.rcompareIdentifiers}});function C6(){return T5e.node||">=22.0.0"}function O5e(){return process.env.IMDONE_FORCE_LATEST_VERSION?.trim()||null}async function G1(e){let t=O5e();return t||new Promise((r,n)=>{UN.default.get(`https://registry.npmjs.org/${e}/latest`,i=>{let u="";i.on("data",o=>u+=o),i.on("end",()=>{try{let o=JSON.parse(u);r(o.version)}catch(o){n(o)}})}).on("error",n)})}async function GN(){try{let e=await G1(Oo);return{currentVersion:vn,latestVersion:e,isOutdated:await b6(e),error:null}}catch(e){return{currentVersion:vn,latestVersion:null,isOutdated:!1,error:e}}}function L5e(e=Oo){return I5e.resolve(`${e}/package.json`)}function R5e(e,t){if(!e||!t)return null;let r=e.split(/\r?\n/),n=`## ${t}`,i=r.findIndex(o=>o.trim()===n);if(i===-1)return null;let u=r.length;for(let o=i+1;o<r.length;o+=1)if(r[o].startsWith("## ")){u=o;break}return r.slice(i,u).join(`
|
|
3
|
+
`);if(!t||t.length<5)return{};let r=t[4]||t[3],n=r.match(/at (.+?) \((.+):(\d+):(\d+)\)/)||r.match(/at (.+):(\d+):(\d+)/);if(n){if(n.length===5)return{functionName:n[1],file:n[2],line:parseInt(n[3],10),column:parseInt(n[4],10)};if(n.length===4)return{functionName:"<anonymous>",file:n[1],line:parseInt(n[2],10),column:parseInt(n[3],10)}}return{}}var jr,XA,C_e,e6,w,Se=b(()=>{jr={ERROR:0,WARN:1,INFO:2,DEBUG:3,TRACE:4,NONE:-1};XA=jr.WARN,C_e=Object.keys(jr).find(e=>jr[e]===XA),e6=class{constructor(){this.level=XA}setLevel(t){return t in jr?this.level=jr[t]:typeof t=="number"&&t>=-1&&t<=4?this.level=t:(this.level=XA,console.warn(`Invalid log level: ${t}. Using default ${C_e} level.`)),this}shouldLog(t){return t<=this.level}formatMessage(t){let r=E_e(),n=r.file?`[${r.file}:${r.line}] ${r.functionName} - `:"";return typeof t[0]=="string"?t[0]=n+t[0]:t.unshift(n),t}log(...t){this.shouldLog(jr.INFO)&&console.log(...this.formatMessage(t))}error(...t){this.shouldLog(jr.ERROR)&&console.error(...this.formatMessage(t))}warn(...t){this.shouldLog(jr.WARN)&&console.warn(...this.formatMessage(t))}info(...t){this.shouldLog(jr.INFO)&&console.info(...this.formatMessage(t))}debug(...t){this.shouldLog(jr.DEBUG)&&console.debug("[DEBUG]",...this.formatMessage(t))}trace(...t){this.shouldLog(jr.TRACE)&&console.trace("[TRACE]",...this.formatMessage(t))}time(t){this.shouldLog(jr.DEBUG)&&console.time(t)}timeEnd(t){this.shouldLog(jr.DEBUG)&&console.timeEnd(t)}},w=new e6});var YP,KP=b(()=>{YP={name:"imdone-cli",version:"0.77.0",author:"Jesse Piascik",description:"Turn Jira or GitHub issues into a local Markdown workspace for AI and humans, synced back to your provider.",license:"Proprietary",homepage:"https://imdone.io/docs/imdone-cli",preferGlobal:!0,engines:{node:">=22.0.0"},main:"./dist/index.min.cjs",type:"module",bin:{imdone:"./dist/index.min.cjs","imdone-cli":"./dist/index.min.cjs","imdone-debug":"./dist/index.cjs"},files:["dist","LICENSE","README.md","CHANGELOG.md",".npmignore"],scripts:{prepublishOnly:"node scripts/prepublish-only.mjs",link:"npm link ../../imdone-core ../../imdone-api",clean:"rm -rf dist/","build-bundle":"npm run clean && node esbuild.config.js && cp -R public/ dist/ && cp README.md dist/ && cp CHANGELOG.md dist/ && cp src/adapters/jwt-public.pem dist/",build:"SKIP_BACKLOG_COPY=1 ./build.sh","build:no-test":"SKIP_TESTS=1 SKIP_BACKLOG_COPY=1 ./build.sh","build:with-backlog":"./build.sh","install:global":"npm run build:no-test && npm install -g .","pack:share":"npm run build:no-test && npm pack && node scripts/show-install-command.mjs","pack:share:with-backlog":"SKIP_TESTS=1 ./build.sh && npm pack && node scripts/show-install-command.mjs","package:macos-arm64":"npm run build:no-test && node scripts/package-macos-arm64.mjs","package:macos-arm64:no-build":"node scripts/package-macos-arm64.mjs","deploy:macos-arm64":"node scripts/deploy-macos-arm64-package.mjs","deploy:macos-arm64:dry-run":"node scripts/deploy-macos-arm64-package.mjs --dry-run",coverage:"vitest --run --coverage",test:"vitest --run","test-ci":"vitest --run","version:patch":'npm version patch --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"',"version:minor":'npm version minor --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"',"version:major":'npm version major --no-git-tag-version && git -C .. add cli-package/package.json cli-package/package-lock.json && git -C .. commit -m "Update version"'},overrides:{"chrono-node":"2.7.8","gray-matter":"2.0.1",monquery:"https://github.com/imdone/node-monquery/archive/refs/tags/0.2.2.tar.gz"},dependencies:{"@inquirer/prompts":"^7.10.1",chalk:"^5.4.1",commander:"^13.1.0",dotenv:"16.4.5",execa:"^9.5.3","find-up-simple":"^1.0.1","imdone-core":"^2.3.2","js-yaml":"^4.1.0",jsonwebtoken:"^9.0.2",markdownlint:"^0.38.0",open:"^9.1.0",ora:"^8.2.0",semver:"^7.7.2","simple-git":"^3.27.0",yaml:"^2.8.1"},devDependencies:{"@vitest/coverage-v8":"^4.1.2",esbuild:"^0.28.1","esbuild-plugin-copy":"^2.1.1",glob:"^12.0.0",vitest:"^4.1.2"}}});var g0=A((O2t,JP)=>{"use strict";var w_e="2.0.0",A_e=Number.MAX_SAFE_INTEGER||9007199254740991,__e=16,v_e=250,S_e=["major","premajor","minor","preminor","patch","prepatch","prerelease"];JP.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:__e,MAX_SAFE_BUILD_LENGTH:v_e,MAX_SAFE_INTEGER:A_e,RELEASE_TYPES:S_e,SEMVER_SPEC_VERSION:w_e,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Up=A((L2t,QP)=>{"use strict";var B_e=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};QP.exports=B_e});var x0=A((Nu,ZP)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:t6,MAX_SAFE_BUILD_LENGTH:k_e,MAX_LENGTH:T_e}=g0(),I_e=Up();Nu=ZP.exports={};var O_e=Nu.re=[],L_e=Nu.safeRe=[],Fe=Nu.src=[],R_e=Nu.safeSrc=[],ye=Nu.t={},P_e=0,r6="[a-zA-Z0-9-]",$_e=[["\\s",1],["\\d",T_e],[r6,k_e]],N_e=e=>{for(let[t,r]of $_e)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},Me=(e,t,r)=>{let n=N_e(t),i=P_e++;I_e(e,i,t),ye[e]=i,Fe[i]=t,R_e[i]=n,O_e[i]=new RegExp(t,r?"g":void 0),L_e[i]=new RegExp(n,r?"g":void 0)};Me("NUMERICIDENTIFIER","0|[1-9]\\d*");Me("NUMERICIDENTIFIERLOOSE","\\d+");Me("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${r6}*`);Me("MAINVERSION",`(${Fe[ye.NUMERICIDENTIFIER]})\\.(${Fe[ye.NUMERICIDENTIFIER]})\\.(${Fe[ye.NUMERICIDENTIFIER]})`);Me("MAINVERSIONLOOSE",`(${Fe[ye.NUMERICIDENTIFIERLOOSE]})\\.(${Fe[ye.NUMERICIDENTIFIERLOOSE]})\\.(${Fe[ye.NUMERICIDENTIFIERLOOSE]})`);Me("PRERELEASEIDENTIFIER",`(?:${Fe[ye.NONNUMERICIDENTIFIER]}|${Fe[ye.NUMERICIDENTIFIER]})`);Me("PRERELEASEIDENTIFIERLOOSE",`(?:${Fe[ye.NONNUMERICIDENTIFIER]}|${Fe[ye.NUMERICIDENTIFIERLOOSE]})`);Me("PRERELEASE",`(?:-(${Fe[ye.PRERELEASEIDENTIFIER]}(?:\\.${Fe[ye.PRERELEASEIDENTIFIER]})*))`);Me("PRERELEASELOOSE",`(?:-?(${Fe[ye.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Fe[ye.PRERELEASEIDENTIFIERLOOSE]})*))`);Me("BUILDIDENTIFIER",`${r6}+`);Me("BUILD",`(?:\\+(${Fe[ye.BUILDIDENTIFIER]}(?:\\.${Fe[ye.BUILDIDENTIFIER]})*))`);Me("FULLPLAIN",`v?${Fe[ye.MAINVERSION]}${Fe[ye.PRERELEASE]}?${Fe[ye.BUILD]}?`);Me("FULL",`^${Fe[ye.FULLPLAIN]}$`);Me("LOOSEPLAIN",`[v=\\s]*${Fe[ye.MAINVERSIONLOOSE]}${Fe[ye.PRERELEASELOOSE]}?${Fe[ye.BUILD]}?`);Me("LOOSE",`^${Fe[ye.LOOSEPLAIN]}$`);Me("GTLT","((?:<|>)?=?)");Me("XRANGEIDENTIFIERLOOSE",`${Fe[ye.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Me("XRANGEIDENTIFIER",`${Fe[ye.NUMERICIDENTIFIER]}|x|X|\\*`);Me("XRANGEPLAIN",`[v=\\s]*(${Fe[ye.XRANGEIDENTIFIER]})(?:\\.(${Fe[ye.XRANGEIDENTIFIER]})(?:\\.(${Fe[ye.XRANGEIDENTIFIER]})(?:${Fe[ye.PRERELEASE]})?${Fe[ye.BUILD]}?)?)?`);Me("XRANGEPLAINLOOSE",`[v=\\s]*(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Fe[ye.XRANGEIDENTIFIERLOOSE]})(?:${Fe[ye.PRERELEASELOOSE]})?${Fe[ye.BUILD]}?)?)?`);Me("XRANGE",`^${Fe[ye.GTLT]}\\s*${Fe[ye.XRANGEPLAIN]}$`);Me("XRANGELOOSE",`^${Fe[ye.GTLT]}\\s*${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("COERCEPLAIN",`(^|[^\\d])(\\d{1,${t6}})(?:\\.(\\d{1,${t6}}))?(?:\\.(\\d{1,${t6}}))?`);Me("COERCE",`${Fe[ye.COERCEPLAIN]}(?:$|[^\\d])`);Me("COERCEFULL",Fe[ye.COERCEPLAIN]+`(?:${Fe[ye.PRERELEASE]})?(?:${Fe[ye.BUILD]})?(?:$|[^\\d])`);Me("COERCERTL",Fe[ye.COERCE],!0);Me("COERCERTLFULL",Fe[ye.COERCEFULL],!0);Me("LONETILDE","(?:~>?)");Me("TILDETRIM",`(\\s*)${Fe[ye.LONETILDE]}\\s+`,!0);Nu.tildeTrimReplace="$1~";Me("TILDE",`^${Fe[ye.LONETILDE]}${Fe[ye.XRANGEPLAIN]}$`);Me("TILDELOOSE",`^${Fe[ye.LONETILDE]}${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("LONECARET","(?:\\^)");Me("CARETTRIM",`(\\s*)${Fe[ye.LONECARET]}\\s+`,!0);Nu.caretTrimReplace="$1^";Me("CARET",`^${Fe[ye.LONECARET]}${Fe[ye.XRANGEPLAIN]}$`);Me("CARETLOOSE",`^${Fe[ye.LONECARET]}${Fe[ye.XRANGEPLAINLOOSE]}$`);Me("COMPARATORLOOSE",`^${Fe[ye.GTLT]}\\s*(${Fe[ye.LOOSEPLAIN]})$|^$`);Me("COMPARATOR",`^${Fe[ye.GTLT]}\\s*(${Fe[ye.FULLPLAIN]})$|^$`);Me("COMPARATORTRIM",`(\\s*)${Fe[ye.GTLT]}\\s*(${Fe[ye.LOOSEPLAIN]}|${Fe[ye.XRANGEPLAIN]})`,!0);Nu.comparatorTrimReplace="$1$2$3";Me("HYPHENRANGE",`^\\s*(${Fe[ye.XRANGEPLAIN]})\\s+-\\s+(${Fe[ye.XRANGEPLAIN]})\\s*$`);Me("HYPHENRANGELOOSE",`^\\s*(${Fe[ye.XRANGEPLAINLOOSE]})\\s+-\\s+(${Fe[ye.XRANGEPLAINLOOSE]})\\s*$`);Me("STAR","(<|>)?=?\\s*\\*");Me("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Me("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var I1=A((R2t,XP)=>{"use strict";var M_e=Object.freeze({loose:!0}),q_e=Object.freeze({}),U_e=e=>e?typeof e!="object"?M_e:e:q_e;XP.exports=U_e});var n6=A((P2t,r$)=>{"use strict";var e$=/^[0-9]+$/,t$=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;let r=e$.test(e),n=e$.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:e<t?-1:1},j_e=(e,t)=>t$(t,e);r$.exports={compareIdentifiers:t$,rcompareIdentifiers:j_e}});var Hr=A(($2t,i$)=>{"use strict";var O1=Up(),{MAX_LENGTH:n$,MAX_SAFE_INTEGER:L1}=g0(),{safeRe:R1,t:P1}=x0(),H_e=I1(),{compareIdentifiers:i6}=n6(),G_e=(e,t)=>{let r=t.split(".");if(r.length>e.length)return!1;for(let n=0;n<r.length;n++)if(i6(e[n],r[n])!==0)return!1;return!0},u6=class e{constructor(t,r){if(r=H_e(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>n$)throw new TypeError(`version is longer than ${n$} characters`);O1("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?R1[P1.LOOSE]:R1[P1.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>L1||this.major<0)throw new TypeError("Invalid major version");if(this.minor>L1||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>L1||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(i=>{if(/^[0-9]+$/.test(i)){let u=+i;if(u>=0&&u<L1)return u}return i}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(O1("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],i=t.prerelease[r];if(O1("prerelease compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return i6(n,i)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],i=t.build[r];if(O1("build compare",r,n,i),n===void 0&&i===void 0)return 0;if(i===void 0)return 1;if(n===void 0)return-1;if(n===i)continue;return i6(n,i)}while(++r)}inc(t,r,n){if(t.startsWith("pre")){if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let i=`-${r}`.match(this.options.loose?R1[P1.PRERELEASELOOSE]:R1[P1.PRERELEASE]);if(!i||i[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let i=Number(n)?1:0;if(this.prerelease.length===0)this.prerelease=[i];else{let u=this.prerelease.length;for(;--u>=0;)typeof this.prerelease[u]=="number"&&(this.prerelease[u]++,u=-2);if(u===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(i)}}if(r){let u=[r,i];if(n===!1&&(u=[r]),G_e(this.prerelease,r)){let o=this.prerelease[r.split(".").length];isNaN(o)&&(this.prerelease=u)}else this.prerelease=u}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};i$.exports=u6});var Ms=A((N2t,o$)=>{"use strict";var u$=Hr(),z_e=(e,t,r=!1)=>{if(e instanceof u$)return e;try{return new u$(e,t)}catch(n){if(!r)return null;throw n}};o$.exports=z_e});var a$=A((M2t,s$)=>{"use strict";var W_e=Ms(),V_e=(e,t)=>{let r=W_e(e,t);return r?r.version:null};s$.exports=V_e});var l$=A((q2t,c$)=>{"use strict";var K_e=Ms(),Y_e=(e,t)=>{let r=K_e(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};c$.exports=Y_e});var p$=A((U2t,d$)=>{"use strict";var f$=Hr(),J_e=(e,t,r,n,i)=>{typeof r=="string"&&(i=n,n=r,r=void 0);try{return new f$(e instanceof f$?e.version:e,r).inc(t,n,i).version}catch{return null}};d$.exports=J_e});var D$=A((j2t,h$)=>{"use strict";var m$=Ms(),Q_e=(e,t)=>{let r=m$(e,null,!0),n=m$(t,null,!0),i=r.compare(n);if(i===0)return null;let u=i>0,o=u?r:n,s=u?n:r,a=!!o.prerelease.length;if(!!s.prerelease.length&&!a){if(!s.patch&&!s.minor)return"major";if(s.compareMain(o)===0)return s.minor&&!s.patch?"minor":"patch"}let l=a?"pre":"";return r.major!==n.major?l+"major":r.minor!==n.minor?l+"minor":r.patch!==n.patch?l+"patch":"prerelease"};h$.exports=Q_e});var x$=A((H2t,g$)=>{"use strict";var Z_e=Hr(),X_e=(e,t)=>new Z_e(e,t).major;g$.exports=X_e});var y$=A((G2t,F$)=>{"use strict";var eve=Hr(),tve=(e,t)=>new eve(e,t).minor;F$.exports=tve});var C$=A((z2t,E$)=>{"use strict";var rve=Hr(),nve=(e,t)=>new rve(e,t).patch;E$.exports=nve});var w$=A((W2t,b$)=>{"use strict";var ive=Ms(),uve=(e,t)=>{let r=ive(e,t);return r&&r.prerelease.length?r.prerelease:null};b$.exports=uve});var xi=A((V2t,_$)=>{"use strict";var A$=Hr(),ove=(e,t,r)=>new A$(e,r).compare(new A$(t,r));_$.exports=ove});var S$=A((K2t,v$)=>{"use strict";var sve=xi(),ave=(e,t,r)=>sve(t,e,r);v$.exports=ave});var k$=A((Y2t,B$)=>{"use strict";var cve=xi(),lve=(e,t)=>cve(e,t,!0);B$.exports=lve});var $1=A((J2t,I$)=>{"use strict";var T$=Hr(),fve=(e,t,r)=>{let n=new T$(e,r),i=new T$(t,r);return n.compare(i)||n.compareBuild(i)};I$.exports=fve});var L$=A((Q2t,O$)=>{"use strict";var dve=$1(),pve=(e,t)=>e.sort((r,n)=>dve(r,n,t));O$.exports=pve});var P$=A((Z2t,R$)=>{"use strict";var mve=$1(),hve=(e,t)=>e.sort((r,n)=>mve(n,r,t));R$.exports=hve});var jp=A((X2t,$$)=>{"use strict";var Dve=xi(),gve=(e,t,r)=>Dve(e,t,r)>0;$$.exports=gve});var N1=A((ext,N$)=>{"use strict";var xve=xi(),Fve=(e,t,r)=>xve(e,t,r)<0;N$.exports=Fve});var o6=A((txt,M$)=>{"use strict";var yve=xi(),Eve=(e,t,r)=>yve(e,t,r)===0;M$.exports=Eve});var s6=A((rxt,q$)=>{"use strict";var Cve=xi(),bve=(e,t,r)=>Cve(e,t,r)!==0;q$.exports=bve});var M1=A((nxt,U$)=>{"use strict";var wve=xi(),Ave=(e,t,r)=>wve(e,t,r)>=0;U$.exports=Ave});var q1=A((ixt,j$)=>{"use strict";var _ve=xi(),vve=(e,t,r)=>_ve(e,t,r)<=0;j$.exports=vve});var a6=A((uxt,H$)=>{"use strict";var Sve=o6(),Bve=s6(),kve=jp(),Tve=M1(),Ive=N1(),Ove=q1(),Lve=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Sve(e,r,n);case"!=":return Bve(e,r,n);case">":return kve(e,r,n);case">=":return Tve(e,r,n);case"<":return Ive(e,r,n);case"<=":return Ove(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};H$.exports=Lve});var z$=A((oxt,G$)=>{"use strict";var Rve=Hr(),Pve=Ms(),{safeRe:U1,t:j1}=x0(),$ve=(e,t)=>{if(e instanceof Rve)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?U1[j1.COERCEFULL]:U1[j1.COERCE]);else{let a=t.includePrerelease?U1[j1.COERCERTLFULL]:U1[j1.COERCERTL],c;for(;(c=a.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||c.index+c[0].length!==r.index+r[0].length)&&(r=c),a.lastIndex=c.index+c[1].length+c[2].length;a.lastIndex=-1}if(r===null)return null;let n=r[2],i=r[3]||"0",u=r[4]||"0",o=t.includePrerelease&&r[5]?`-${r[5]}`:"",s=t.includePrerelease&&r[6]?`+${r[6]}`:"";return Pve(`${n}.${i}.${u}${o}${s}`,t)};G$.exports=$ve});var V$=A((sxt,W$)=>{"use strict";var Nve=Ms(),Mve=g0(),qve=Hr(),Uve=(e,t,r)=>{if(!Mve.RELEASE_TYPES.includes(t))return null;let n=jve(e,r);return n&&Hve(n,t)},jve=(e,t)=>{let r=e instanceof qve?e.version:e;return Nve(r,t)},Hve=(e,t)=>{if(Gve(t))return e.version;switch(e.prerelease=[],t){case"major":e.minor=0,e.patch=0;break;case"minor":e.patch=0;break}return e.format()},Gve=e=>e.startsWith("pre");W$.exports=Uve});var Y$=A((axt,K$)=>{"use strict";var c6=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let i=this.map.keys().next().value;this.delete(i)}this.map.set(t,r)}return this}};K$.exports=c6});var Fi=A((cxt,X$)=>{"use strict";var zve=/\s+/g,l6=class e{constructor(t,r){if(r=Vve(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof f6)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace(zve," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(i=>!Q$(i[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let i of this.set)if(i.length===1&&r4e(i[0])){this.set=[i];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t<this.set.length;t++){t>0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n<r.length;n++)n>0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){t=t.replace(t4e,"");let n=((this.options.includePrerelease&&Xve)|(this.options.loose&&e4e))+":"+t,i=J$.get(n);if(i)return i;let u=this.options.loose,o=u?hn[Gr.HYPHENRANGELOOSE]:hn[Gr.HYPHENRANGE];t=t.replace(o,p4e(this.options.includePrerelease)),It("hyphen replace",t),t=t.replace(hn[Gr.COMPARATORTRIM],Jve),It("comparator trim",t),t=t.replace(hn[Gr.TILDETRIM],Qve),It("tilde trim",t),t=t.replace(hn[Gr.CARETTRIM],Zve),It("caret trim",t);let s=t.split(" ").map(f=>n4e(f,this.options)).join(" ").split(/\s+/).map(f=>d4e(f,this.options));u&&(s=s.filter(f=>(It("loose invalid filter",f,this.options),!!f.match(hn[Gr.COMPARATORLOOSE])))),It("range list",s);let a=new Map,c=s.map(f=>new f6(f,this.options));for(let f of c){if(Q$(f))return[f];a.set(f.value,f)}a.size>1&&a.has("")&&a.delete("");let l=[...a.values()];return J$.set(n,l),l}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Z$(n,r)&&t.set.some(i=>Z$(i,r)&&n.every(u=>i.every(o=>u.intersects(o,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new Kve(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(m4e(this.set[r],t,this.options))return!0;return!1}};X$.exports=l6;var Wve=Y$(),J$=new Wve,Vve=I1(),f6=Hp(),It=Up(),Kve=Hr(),{safeRe:hn,src:Yve,t:Gr,comparatorTrimReplace:Jve,tildeTrimReplace:Qve,caretTrimReplace:Zve}=x0(),{FLAG_INCLUDE_PRERELEASE:Xve,FLAG_LOOSE:e4e}=g0(),t4e=new RegExp(Yve[Gr.BUILD],"g"),Q$=e=>e.value==="<0.0.0-0",r4e=e=>e.value==="",Z$=(e,t)=>{let r=!0,n=e.slice(),i=n.pop();for(;r&&n.length;)r=n.every(u=>i.intersects(u,t)),i=n.pop();return r},n4e=(e,t)=>(e=e.replace(hn[Gr.BUILD],""),It("comp",e,t),e=s4e(e,t),It("caret",e),e=u4e(e,t),It("tildes",e),e=c4e(e,t),It("xrange",e),e=f4e(e,t),It("stars",e),e),xr=e=>!e||e.toLowerCase()==="x"||e==="*",i4e=(e,t,r)=>xr(e)&&!xr(t)||xr(t)&&r&&!xr(r),u4e=(e,t)=>e.trim().split(/\s+/).map(r=>o4e(r,t)).join(" "),o4e=(e,t)=>{let r=t.loose?hn[Gr.TILDELOOSE]:hn[Gr.TILDE],n=t.includePrerelease?"-0":"";return e.replace(r,(i,u,o,s,a)=>{It("tilde",e,i,u,o,s,a);let c;return xr(u)?c="":xr(o)?c=`>=${u}.0.0${n} <${+u+1}.0.0-0`:xr(s)?c=`>=${u}.${o}.0${n} <${u}.${+o+1}.0-0`:a?(It("replaceTilde pr",a),c=`>=${u}.${o}.${s}-${a} <${u}.${+o+1}.0-0`):c=`>=${u}.${o}.${s} <${u}.${+o+1}.0-0`,It("tilde return",c),c})},s4e=(e,t)=>e.trim().split(/\s+/).map(r=>a4e(r,t)).join(" "),a4e=(e,t)=>{It("caret",e,t);let r=t.loose?hn[Gr.CARETLOOSE]:hn[Gr.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(i,u,o,s,a)=>{It("caret",e,i,u,o,s,a);let c;return xr(u)?c="":xr(o)?c=`>=${u}.0.0${n} <${+u+1}.0.0-0`:xr(s)?u==="0"?c=`>=${u}.${o}.0${n} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.0${n} <${+u+1}.0.0-0`:a?(It("replaceCaret pr",a),u==="0"?o==="0"?c=`>=${u}.${o}.${s}-${a} <${u}.${o}.${+s+1}-0`:c=`>=${u}.${o}.${s}-${a} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.${s}-${a} <${+u+1}.0.0-0`):(It("no pr"),u==="0"?o==="0"?c=`>=${u}.${o}.${s} <${u}.${o}.${+s+1}-0`:c=`>=${u}.${o}.${s} <${u}.${+o+1}.0-0`:c=`>=${u}.${o}.${s} <${+u+1}.0.0-0`),It("caret return",c),c})},c4e=(e,t)=>(It("replaceXRanges",e,t),e.split(/\s+/).map(r=>l4e(r,t)).join(" ")),l4e=(e,t)=>{e=e.trim();let r=t.loose?hn[Gr.XRANGELOOSE]:hn[Gr.XRANGE];return e.replace(r,(n,i,u,o,s,a)=>{if(It("xRange",e,n,i,u,o,s,a),i4e(u,o,s))return e;let c=xr(u),l=c||xr(o),f=l||xr(s),d=f;return i==="="&&d&&(i=""),a=t.includePrerelease?"-0":"",c?i===">"||i==="<"?n="<0.0.0-0":n="*":i&&d?(l&&(o=0),s=0,i===">"?(i=">=",l?(u=+u+1,o=0,s=0):(o=+o+1,s=0)):i==="<="&&(i="<",l?u=+u+1:o=+o+1),i==="<"&&(a="-0"),n=`${i+u}.${o}.${s}${a}`):l?n=`>=${u}.0.0${a} <${+u+1}.0.0-0`:f&&(n=`>=${u}.${o}.0${a} <${u}.${+o+1}.0-0`),It("xRange return",n),n})},f4e=(e,t)=>(It("replaceStars",e,t),e.trim().replace(hn[Gr.STAR],"")),d4e=(e,t)=>(It("replaceGTE0",e,t),e.trim().replace(hn[t.includePrerelease?Gr.GTE0PRE:Gr.GTE0],"")),p4e=e=>(t,r,n,i,u,o,s,a,c,l,f,d)=>(xr(n)?r="":xr(i)?r=`>=${n}.0.0${e?"-0":""}`:xr(u)?r=`>=${n}.${i}.0${e?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,xr(c)?a="":xr(l)?a=`<${+c+1}.0.0-0`:xr(f)?a=`<${c}.${+l+1}.0-0`:d?a=`<=${c}.${l}.${f}-${d}`:e?a=`<${c}.${l}.${+f+1}-0`:a=`<=${a}`,`${r} ${a}`.trim()),m4e=(e,t,r)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let n=0;n<e.length;n++)if(It(e[n].semver),e[n].semver!==f6.ANY&&e[n].semver.prerelease.length>0){let i=e[n].semver;if(i.major===t.major&&i.minor===t.minor&&i.patch===t.patch)return!0}return!1}return!0}});var Hp=A((lxt,uN)=>{"use strict";var Gp=Symbol("SemVer ANY"),m6=class e{static get ANY(){return Gp}constructor(t,r){if(r=eN(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),p6("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===Gp?this.value="":this.value=this.operator+this.semver.version,p6("comp",this)}parse(t){let r=this.options.loose?tN[rN.COMPARATORLOOSE]:tN[rN.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new nN(n[2],this.options.loose):this.semver=Gp}toString(){return this.value}test(t){if(p6("Comparator.test",t,this.options.loose),this.semver===Gp||t===Gp)return!0;if(typeof t=="string")try{t=new nN(t,this.options)}catch{return!1}return d6(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new iN(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new iN(this.value,r).test(t.semver):(r=eN(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||d6(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||d6(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};uN.exports=m6;var eN=I1(),{safeRe:tN,t:rN}=x0(),d6=a6(),p6=Up(),nN=Hr(),iN=Fi()});var zp=A((fxt,oN)=>{"use strict";var h4e=Fi(),D4e=(e,t,r)=>{try{t=new h4e(t,r)}catch{return!1}return t.test(e)};oN.exports=D4e});var aN=A((dxt,sN)=>{"use strict";var g4e=Fi(),x4e=(e,t)=>new g4e(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));sN.exports=x4e});var lN=A((pxt,cN)=>{"use strict";var F4e=Hr(),y4e=Fi(),E4e=(e,t,r)=>{let n=null,i=null,u=null;try{u=new y4e(t,r)}catch{return null}return e.forEach(o=>{u.test(o)&&(!n||i.compare(o)===-1)&&(n=o,i=new F4e(n,r))}),n};cN.exports=E4e});var dN=A((mxt,fN)=>{"use strict";var C4e=Hr(),b4e=Fi(),w4e=(e,t,r)=>{let n=null,i=null,u=null;try{u=new b4e(t,r)}catch{return null}return e.forEach(o=>{u.test(o)&&(!n||i.compare(o)===1)&&(n=o,i=new C4e(n,r))}),n};fN.exports=w4e});var hN=A((hxt,mN)=>{"use strict";var h6=Hr(),A4e=Fi(),pN=jp(),_4e=(e,t)=>{e=new A4e(e,t);let r=new h6("0.0.0");if(e.test(r)||(r=new h6("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n<e.set.length;++n){let i=e.set[n],u=null;i.forEach(o=>{let s=new h6(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!u||pN(s,u))&&(u=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),u&&(!r||pN(r,u))&&(r=u)}return r&&e.test(r)?r:null};mN.exports=_4e});var gN=A((Dxt,DN)=>{"use strict";var v4e=Fi(),S4e=(e,t)=>{try{return new v4e(e,t).range||"*"}catch{return null}};DN.exports=S4e});var H1=A((gxt,EN)=>{"use strict";var B4e=Hr(),yN=Hp(),{ANY:k4e}=yN,T4e=Fi(),I4e=zp(),xN=jp(),FN=N1(),O4e=q1(),L4e=M1(),R4e=(e,t,r,n)=>{e=new B4e(e,n),t=new T4e(t,n);let i,u,o,s,a;switch(r){case">":i=xN,u=O4e,o=FN,s=">",a=">=";break;case"<":i=FN,u=L4e,o=xN,s="<",a="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(I4e(e,t,n))return!1;for(let c=0;c<t.set.length;++c){let l=t.set[c],f=null,d=null;if(l.forEach(p=>{p.semver===k4e&&(p=new yN(">=0.0.0")),f=f||p,d=d||p,i(p.semver,f.semver,n)?f=p:o(p.semver,d.semver,n)&&(d=p)}),f.operator===s||f.operator===a||(!d.operator||d.operator===s)&&u(e,d.semver))return!1;if(d.operator===a&&o(e,d.semver))return!1}return!0};EN.exports=R4e});var bN=A((xxt,CN)=>{"use strict";var P4e=H1(),$4e=(e,t,r)=>P4e(e,t,">",r);CN.exports=$4e});var AN=A((Fxt,wN)=>{"use strict";var N4e=H1(),M4e=(e,t,r)=>N4e(e,t,"<",r);wN.exports=M4e});var SN=A((yxt,vN)=>{"use strict";var _N=Fi(),q4e=(e,t,r)=>(e=new _N(e,r),t=new _N(t,r),e.intersects(t,r));vN.exports=q4e});var kN=A((Ext,BN)=>{"use strict";var U4e=zp(),j4e=xi();BN.exports=(e,t,r)=>{let n=[],i=null,u=null,o=e.sort((l,f)=>j4e(l,f,r));for(let l of o)U4e(l,t,r)?(u=l,i||(i=l)):(u&&n.push([i,u]),u=null,i=null);i&&n.push([i,null]);let s=[];for(let[l,f]of n)l===f?s.push(l):!f&&l===o[0]?s.push("*"):f?l===o[0]?s.push(`<=${f}`):s.push(`${l} - ${f}`):s.push(`>=${l}`);let a=s.join(" || "),c=typeof t.raw=="string"?t.raw:String(t);return a.length<c.length?a:t}});var PN=A((Cxt,RN)=>{"use strict";var TN=Fi(),x6=Hp(),{ANY:D6}=x6,g6=zp(),F6=xi(),H4e=(e,t,r={})=>{if(e===t)return!0;e=new TN(e,r),t=new TN(t,r);let n=!1;e:for(let i of e.set){for(let u of t.set){let o=z4e(i,u,r);if(n=n||o!==null,o)continue e}if(n)return!1}return!0},G4e=[new x6(">=0.0.0-0")],IN=[new x6(">=0.0.0")],z4e=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===D6){if(t.length===1&&t[0].semver===D6)return!0;r.includePrerelease?e=G4e:e=IN}if(t.length===1&&t[0].semver===D6){if(r.includePrerelease)return!0;t=IN}let n=new Set,i,u;for(let p of e)p.operator===">"||p.operator===">="?i=ON(i,p,r):p.operator==="<"||p.operator==="<="?u=LN(u,p,r):n.add(p.semver);if(n.size>1)return null;let o;if(i&&u){if(o=F6(i.semver,u.semver,r),o>0)return null;if(o===0&&(i.operator!==">="||u.operator!=="<="))return null}for(let p of n){if(i&&!g6(p,String(i),r)||u&&!g6(p,String(u),r))return null;for(let h of t)if(!g6(p,String(h),r))return!1;return!0}let s,a,c,l,f=u&&!r.includePrerelease&&u.semver.prerelease.length?u.semver:!1,d=i&&!r.includePrerelease&&i.semver.prerelease.length?i.semver:!1;f&&f.prerelease.length===1&&u.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let p of t){if(l=l||p.operator===">"||p.operator===">=",c=c||p.operator==="<"||p.operator==="<=",i){if(d&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===d.major&&p.semver.minor===d.minor&&p.semver.patch===d.patch&&(d=!1),p.operator===">"||p.operator===">="){if(s=ON(i,p,r),s===p&&s!==i)return!1}else if(i.operator===">="&&!p.test(i.semver))return!1}if(u){if(f&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===f.major&&p.semver.minor===f.minor&&p.semver.patch===f.patch&&(f=!1),p.operator==="<"||p.operator==="<="){if(a=LN(u,p,r),a===p&&a!==u)return!1}else if(u.operator==="<="&&!p.test(u.semver))return!1}if(!p.operator&&(u||i)&&o!==0)return!1}return!(i&&c&&!u&&o!==0||u&&l&&!i&&o!==0||d||f)},ON=(e,t,r)=>{if(!e)return t;let n=F6(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},LN=(e,t,r)=>{if(!e)return t;let n=F6(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};RN.exports=H4e});var F0=A((bxt,MN)=>{"use strict";var y6=x0(),$N=g0(),W4e=Hr(),NN=n6(),V4e=Ms(),K4e=a$(),Y4e=l$(),J4e=p$(),Q4e=D$(),Z4e=x$(),X4e=y$(),e5e=C$(),t5e=w$(),r5e=xi(),n5e=S$(),i5e=k$(),u5e=$1(),o5e=L$(),s5e=P$(),a5e=jp(),c5e=N1(),l5e=o6(),f5e=s6(),d5e=M1(),p5e=q1(),m5e=a6(),h5e=z$(),D5e=V$(),g5e=Hp(),x5e=Fi(),F5e=zp(),y5e=aN(),E5e=lN(),C5e=dN(),b5e=hN(),w5e=gN(),A5e=H1(),_5e=bN(),v5e=AN(),S5e=SN(),B5e=kN(),k5e=PN();MN.exports={parse:V4e,valid:K4e,clean:Y4e,inc:J4e,diff:Q4e,major:Z4e,minor:X4e,patch:e5e,prerelease:t5e,compare:r5e,rcompare:n5e,compareLoose:i5e,compareBuild:u5e,sort:o5e,rsort:s5e,gt:a5e,lt:c5e,eq:l5e,neq:f5e,gte:d5e,lte:p5e,cmp:m5e,coerce:h5e,truncate:D5e,Comparator:g5e,Range:x5e,satisfies:F5e,toComparators:y5e,maxSatisfying:E5e,minSatisfying:C5e,minVersion:b5e,validRange:w5e,outside:A5e,gtr:_5e,ltr:v5e,intersects:S5e,simplifyRange:B5e,subset:k5e,SemVer:W4e,re:y6.re,src:y6.src,tokens:y6.t,SEMVER_SPEC_VERSION:$N.SEMVER_SPEC_VERSION,RELEASE_TYPES:$N.RELEASE_TYPES,compareIdentifiers:NN.compareIdentifiers,rcompareIdentifiers:NN.rcompareIdentifiers}});function C6(){return T5e.node||">=22.0.0"}function O5e(){return process.env.IMDONE_FORCE_LATEST_VERSION?.trim()||null}async function G1(e){let t=O5e();return t||new Promise((r,n)=>{UN.default.get(`https://registry.npmjs.org/${e}/latest`,i=>{let u="";i.on("data",o=>u+=o),i.on("end",()=>{try{let o=JSON.parse(u);r(o.version)}catch(o){n(o)}})}).on("error",n)})}async function GN(){try{let e=await G1(Oo);return{currentVersion:vn,latestVersion:e,isOutdated:await b6(e),error:null}}catch(e){return{currentVersion:vn,latestVersion:null,isOutdated:!1,error:e}}}function L5e(e=Oo){return I5e.resolve(`${e}/package.json`)}function R5e(e,t){if(!e||!t)return null;let r=e.split(/\r?\n/),n=`## ${t}`,i=r.findIndex(o=>o.trim()===n);if(i===-1)return null;let u=r.length;for(let o=i+1;o<r.length;o+=1)if(r[o].startsWith("## ")){u=o;break}return r.slice(i,u).join(`
|
|
4
4
|
`).trim()}function P5e(e,t,r){if(!e||!y0.default.valid(t)||!y0.default.valid(r))return null;let n=e.split(/\r?\n/),i=[];for(let u=0;u<n.length;u+=1){let o=n[u].trim().match(/^##\s+(.+)$/);if(!o)continue;let s=o[1].trim();if(!y0.default.valid(s)||!y0.default.gt(s,t)||!y0.default.lte(s,r))continue;let a=n.length;for(let c=u+1;c<n.length;c+=1)if(n[c].startsWith("## ")){a=c;break}i.push(n.slice(u,a).join(`
|
|
5
5
|
`).trim())}return i.length?i.join(`
|
|
6
6
|
|
|
@@ -499,7 +499,7 @@ ${t}
|
|
|
499
499
|
`).map(u=>u.trim()).filter(Boolean)}function mue(e){try{let t=Yo(e);return!t?.host||!t.owner||!t.repo||!/(^|\.)github(\.|$)/i.test(t.host)?null:{owner:t.owner,repo:t.repo}}catch(t){return w.warn(`Error parsing GitHub URL: ${t.message}`),null}}async function hue(e,t){let r=Rr(e),n=(await r.status()).current;try{return await Uf(r),await Nh(e)&&(await r.checkout("main"),await r.fetch("origin"),await r.raw(["reset","--hard","origin/main"]),t?.info?.("Successfully reset local main to origin/main."),n!=="main"&&await r.checkout(n)),n!=="main"&&(await r.merge(["main"]),t?.info?.("Successfully merged main into the current work branch.")),!0}catch(i){w.warn("Error during syncCurrentBranchWithMain:",i);try{(await r.status()).current!==n&&await r.checkout(n)}catch(u){w.warn("Error restoring branch after syncCurrentBranchWithMain failure:",u)}throw i}}async function Due(e,t){let r=Rr(e);try{if(await Uf(r),!await Nh(e))throw new Error("No remote origin found. Cannot rebuild branches from origin/main.");let n=await r.branchLocal(),i=n.all.includes("imdone-work"),u=n.all.includes("main");return i?await r.checkout("imdone-work"):await r.checkoutLocalBranch("imdone-work"),t?.info?.("Switched to working branch 'imdone-work'."),await r.fetch("origin"),u&&(await r.raw(["branch","-D","main"]),t?.info?.("Deleted local main branch.")),await r.raw(["checkout","-b","main","origin/main"]),t?.info?.("Recreated local main from origin/main."),await r.raw(["branch","-D","imdone-work"]),t?.info?.("Deleted local working branch 'imdone-work'."),await r.checkoutLocalBranch("imdone-work"),t?.info?.("Recreated and switched to working branch 'imdone-work'."),!0}catch(n){throw w.warn("Error during rebuildBranchesFromOriginMain:",n),n}}async function gue(e,t,{feedback:r}={feedback:$n}){try{try{if(await no.default.access(t).then(()=>!0).catch(()=>!1)){if((await no.default.readdir(t)).length>0)return r.warn(`Destination directory ${t} is not empty. Aborting clone. If you want to reclone, delete or move the existing backlog directory and run imdone clone again.`),!1}else await no.default.mkdir(t,{recursive:!0})}catch(u){return r.fail(`Error checking/creating destination directory: ${u.message}`),!1}let n=[e,...Jee(e)],i;for(let u=0;u<n.length;u+=1){let o=n[u];u>0&&(await no.default.rm(t,{recursive:!0,force:!0}),await no.default.mkdir(t,{recursive:!0}),r.info(`Clone failed with ${n[u-1]}. Retrying with ${o}...`)),r.text=`Cloning repository from ${o}...`;try{let{stdout:s}=await wt("git",["clone",o,t]);return w.debug(`Git clone output: ${s}`),!0}catch(s){i=s,w.warn(`Clone attempt failed for ${o}: ${s.message}`)}}return w.error(`Error cloning repository: ${i?.message}`),r.fail(`Error cloning repository: ${i?.message}`),!1}catch(n){return w.error(`Error cloning repository: ${n.message}`),r.fail(`Error cloning repository: ${n.message}`),!1}}async function xue(e){try{return await wt("git",["-C",e,"rev-parse"]),!0}catch{return!1}}async function bVe(e){try{let r=(await no.default.readFile(e,"utf8")).split(/\r?\n/),n=r.some(o=>/^<{7}( .*)?$/.test(o)),i=r.some(o=>/^={7}$/.test(o)),u=r.some(o=>/^>{7}( .*)?$/.test(o));return n&&i&&u}catch(t){return w.warn(`Error reading file ${e} to check for conflict markers:`,t),!1}}async function wVe(e,t=["."]){let r=[];try{let n=await ur(e,t),i=[...n.modified,...n.not_added,...n.created,...n.renamed.map(u=>u.to),...n.conflicted];for(let u of i){let o=Jc.default.join(e,u);try{await bVe(o)&&r.push(u)}catch(s){w.warn(`Error checking file ${o} for conflict markers:`,s)}}return r}catch(n){throw w.error("Error getting changed files:",n),n}}async function cE(e,t=["."]){try{let r=await wVe(e,t);return{hasConflicts:r.length>0,conflictedFiles:r}}catch(r){throw w.error("Error checking for merge conflicts:",r),r}}var ya,Jc,no,pVe,Vr=b(()=>{_ie();Se();Bh();Mf();uue();ya=require("fs/promises"),Jc=N(require("path"),1);da();no=N(require("node:fs/promises"),1);xa();qs();na();dh();({CONFIG_FILE_YML:pVe}=ri)});function O7(e){return e?.config?.cards?.archiveFolder||e?.config?.archiveFolder}function yue(e){return e?.config?.cards?.doneList||"DONE"}function AVe(e,t){if(t)return ni.default.isAbsolute(t)?t:ni.default.join(e,t)}function Fue(e,t,r){!t||!r||(t.source?.path&&(t.source.path=ni.default.isAbsolute(t.source.path)?r:ni.default.relative(e,r)),t.path&&(t.path=ni.default.isAbsolute(t.path)?r:ni.default.relative(e,r)))}function _Ve({project:e,defaultDirectory:t="",task:r,issueKey:n}){let i=r?.source?.path||r?.path,u=AVe(e.path,i);return u?ni.default.dirname(u):ni.default.join(e.path,t,`${n}-temp`)}async function lE({project:e,task:t,commentsCard:r,issueKey:n,defaultDirectory:i="",destinationDirName:u}){let o=O7(e);if(!o||!t||!n)return null;let s=_Ve({project:e,defaultDirectory:i,task:t,issueKey:n}),a=await Py(s,ni.default.join(e.path,o,u||ni.default.basename(s)));return Fue(e.path,t,ni.default.join(a,`issue-${n}.md`)),Fue(e.path,r,ni.default.join(a,`comments-${n}.md`)),a}var ni,L7=b(()=>{ni=N(require("path"),1);pa()});function SVe(e){return e?.length?e.includes(0):!1}function BVe(e){if(e?.mimeType?.toLowerCase()?.startsWith("image/"))return!0;let r=qe.default.extname(e?.savedPath||e?.originalName||"").toLowerCase();return vVe.has(r)}async function q7(e){try{return await jf(qe.default.dirname(e))}catch(t){return w.debug("Unable to resolve source repo origin for repo-link rewrite:",t.message),null}}async function kVe(e,t,r){if(!r)return;let n=qe.default.dirname(e.find(o=>o?.savedPath)?.savedPath||""),i=n?await dr(n):{attachments:{}},u=new Map;for(let[o,s]of Object.entries(i.attachments||{})){s?.current&&u.set(s.current,o);for(let a of s?.versions||[])a?.id&&u.set(a.id,o)}for(let o of e){if(!o?.savedPath||BVe(o))continue;let s;try{s=await uo.default.readFile(o.savedPath)}catch(f){if(f.code==="ENOENT")continue;throw f}if(SVe(s))continue;let a=s.toString("utf8"),c=W2(a,u,{localPrefix:""}),l=G2(c,{backlogPath:t,contentPath:o.savedPath,sourceRepoOrigin:r});l!==a&&await uo.default.writeFile(o.savedPath,l,"utf8")}}function TVe(e){if(!e)return[];let t=[],r=e.split(/\n---\n/);for(let n of r){let i=n.match(/^##\s+(.+?)\s+\|\s+(.+?)\s+\|\s+(\d+)\s*$/m);if(!i)continue;let[,u,o,s]=i,a=n.indexOf(`
|
|
500
500
|
`,n.indexOf("##")),c=a!==-1?n.substring(a+1).trim():"";c&&t.push({id:s,body:c,author:{displayName:u.trim(),name:u.trim().toLowerCase().replace(/\s+/g,"-")},created:o.trim()})}return t}function ut(e){return e?.providerName||"jira"}function _ue(e){let r=(Array.isArray(e)?e:[e]).map(n=>`meta.${ut(n)}=*`);return r.length===1?r[0]:`(${r.join(" OR ")})`}async function vue(e,t,r,n,i,{projectPath:u,sourceRepoOrigin:o}={}){try{i&&(i.text=`\u{1F4CE} Processing attachments for ${e}...`);let s=qe.default.join(t,"attachments");try{let f=r?TVe(r):[];w.debug(`Parsing ${f?.length||0} comments for ${e}`);let d=await dr(s),p=bte(f,d);if(p>0){let h=qe.default.join(s,".metadata.yml");await uo.default.mkdir(s,{recursive:!0}),await uo.default.writeFile(h,Aue.default.stringify(d,{indent:2,lineWidth:0,minContentWidth:0}),"utf8"),w.info(`\u2705 Synced ${p} ignored entries from comments for ${e}`)}else w.debug(`No ignored entries to sync from comments for ${e}`)}catch(f){w.error(`Failed to sync ignored list from comments for ${e}:`,f)}let a=await n.getAttachments(e),c=await wte(a,s,n.downloadAttachment.bind(n));await kVe(c,u,o),w.debug(`Saved ${c.length} attachments for ${e}`);let l=new Set(c.filter(f=>(f.error&&i.warn(`Failed to save attachment for ${e}: ${f.originalName}: ${f.error.message}`),!f.error||f.placeholder)).map(f=>f.originalName));return a}catch(s){return w.warn(`Failed to process attachments for ${e}:`,s.message),i?.warn&&i.warn(`Failed to process attachments for ${e}: ${s.message}`),[]}}function U7(e){return e?.config?.cards?.archiveFolder||e?.config?.archiveFolder}function Sue(e){return e?.config?.cards?.doneList||"DONE"}function IVe({project:e,task:t,nextList:r}){if(!U7(e))return!1;let i=Sue(e);return r===i&&t?.list!==i}function OVe({project:e,list:t}){if(!U7(e))return!1;let n=Sue(e);return t===n}function Bue({project:e,defaultDirectory:t,shouldArchive:r=!1}){let n=U7(e);return r&&n?qe.default.join(e.path,n):qe.default.join(e.path,t)}function kue(e,t){if(t)return qe.default.isAbsolute(t)?t:qe.default.join(e,t)}function fE(e,t,r){!t||!r||(t.source?.path&&(t.source.path=qe.default.isAbsolute(t.source.path)?r:qe.default.relative(e,r)),t.path&&(t.path=qe.default.isAbsolute(t.path)?r:qe.default.relative(e,r)))}function R7(e,t={}){let r=t.isPullRequest?.[0];return r===!0||r==="true"?`PR-${e}`:e}function LVe({project:e,defaultDirectory:t,issueKey:r,issueDirectoryKey:n=r,issueTitle:i,shouldArchive:u=!1,destinationRoot:o}){let s=o||Bue({project:e,defaultDirectory:t,shouldArchive:u});return qe.default.join(s,gh(`${n}-${i}`))}async function P7({project:e,defaultDirectory:t="",task:r,commentsCard:n,shouldArchive:i,issueKey:u,issueDirectoryKey:o=u,issueTitle:s,destinationRoot:a}){let c=r.source?.path||r.path,l=kue(e.path,c),f=l?qe.default.dirname(l):qe.default.join(e.path,t,gh(`${u}-temp`)),d=LVe({project:e,defaultDirectory:t,issueKey:u,issueDirectoryKey:o,issueTitle:s||qe.default.basename(f),shouldArchive:i,destinationRoot:a});if(f===d)return fE(e.path,r,qe.default.join(f,`issue-${u}.md`)),fE(e.path,n,qe.default.join(f,`comments-${u}.md`)),f;let p=await Py(f,d);return fE(e.path,r,qe.default.join(p,`issue-${u}.md`)),fE(e.path,n,qe.default.join(p,`comments-${u}.md`)),p}async function Eue(e,t){if(!(!e||!t||e===t))try{await uo.default.rm(e,{recursive:!0,force:!0})}catch(r){w.warn(`Failed to remove archived source directory ${e}:`,r.message)}}function RVe(e,t){return e.startsWith(`${t}-`)||e.startsWith(`PR-${t}-`)}async function $7(e,t){if(!e||!t)return;let r=qe.default.dirname(e),n=qe.default.basename(e);try{if(!(await uo.default.stat(e).catch(()=>null))?.isDirectory()){w.warn(`Skipping duplicate cleanup for ${t}; final issue directory does not exist: ${e}`);return}let u=await uo.default.readdir(r,{withFileTypes:!0});for(let o of u){if(!o.isDirectory()||o.name===n||!RVe(o.name,t))continue;let s=qe.default.join(r,o.name);w.warn(`Removing stale duplicate issue directory for ${t}: ${s}`),await uo.default.rm(s,{recursive:!0,force:!0})}}catch(i){w.warn(`Failed to clean duplicate issue directories for ${t}:`,i.message)}}function N7({project:e,defaultDirectory:t,task:r,issueKey:n}){let i=r.source?.path||r.path,u=kue(e.path,i);return u?qe.default.dirname(u):qe.default.join(e.path,t,gh(`${n}-temp`))}async function $Ve(e,t,r,n,i,u,o){let s=++PVe;if(w.debug(`[updateExistingCard#${s} ENTRY] task=${e?e.text:"UNDEFINED"}, metaKey=${r}`),!e)return w.error("updateExistingCard called with undefined task"),null;let a=t.find(R=>R.meta[r][0]===e.meta[r][0]);if(!a)return w.warn(`No provider issue found for task ${e.text} (${e.meta[r][0]})`),e;let{list:c,content:l,tags:f,meta:d,commentsTask:p}=a,h=d[r][0],x=l.split(`
|
|
501
501
|
`)[0],D=IVe({project:n,task:e,nextList:c}),y=await q7(n.path);w.debug(`[updateExistingCard#${s}] Updating task ${e.text} (${e.meta[r][0]}) with provider data`,{list:c,content:l,tags:f,meta:d});let C=N7({project:n,defaultDirectory:i,task:e,issueKey:h}),v=await vue(h,C,p?.content,u,o,{projectPath:n.path,sourceRepoOrigin:y});if(S_(C,a,o).catch(R=>{w.error(`Failed to sync changelog for ${h}:`,R)}),v.length>0){let R=new Map(v.map(O=>[O.url,O.filename]));l=W2(l,R)}l=G2(l,{backlogPath:n.path,contentPath:qe.default.join(C,`issue-${h}.md`),sourceRepoOrigin:y}),w.debug(`[updateExistingCard#${s}] About to call updateImdoneTask for task: ${e?e.text:"UNDEFINED"}, task.list=${e?.list}, list param=${c}`);let S=await M7({project:n,task:e,list:c,content:l,tags:f,meta:d});if(!p){let R=await P7({project:n,defaultDirectory:i,task:S,shouldArchive:D,issueKey:h,issueDirectoryKey:R7(h,d),issueTitle:x});return await Eue(C,R),await $7(R,h),S}let k=await n.getAllCards(`meta.commentsOn="${h}"`);if(w.debug(`[updateExistingCard#${s}] Found ${k?.length||0} comment cards for ${h}. First card: ${k?.[0]?k[0].text:"UNDEFINED"}`),!k||k.length===0)return S;let B=k[0];w.debug(`[updateExistingCard#${s}] Updating comments card for task ${e.text} (${e.meta[r][0]})`,{commentsCard:B,commentsTask:p}),w.debug(`[updateExistingCard#${s}] About to update commentsCard: ${B?B.text:"UNDEFINED"}, commentsCard.list=${B?.list}`),await M7({project:n,task:B,list:c,content:p.content,tags:f,meta:p.meta||{}});let P=await P7({project:n,defaultDirectory:i,task:S,commentsCard:B,shouldArchive:D,issueKey:h,issueDirectoryKey:R7(h,d),issueTitle:x});return await Eue(C,P),await $7(P,h),S}async function NVe(e,t,r,n,i,u,o){let{list:s=n,content:a,tags:c,meta:l,commentsTask:f}=e,d=l[t][0],p=a.split(`
|
|
502
|
-
`)[0],h=OVe({project:r,list:s}),x=await q7(r.path),y=l.isPullRequest?.[0]===!0?"PR-":"",C=qe.default.join(Bue({project:r,defaultDirectory:i,shouldArchive:h}),gh(`${y}${d}-${p}`)),v=qe.default.join(C,`issue-${d}.md`),S=qe.default.join(C,`comments-${d}.md`),k=await vue(d,C,f?.content,u,o,{projectPath:r.path,sourceRepoOrigin:x});if(S_(C,e,o).catch(R=>{w.error(`Failed to sync changelog for ${d}:`,R)}),k.length>0){let R=new Map(k.map(O=>[O.url,O.filename]));a=W2(a,R)}a=G2(a,{backlogPath:r.path,contentPath:v,sourceRepoOrigin:x});let B=f?.content,P=f?.meta||{};return B&&(w.debug(`Adding comments for task ${p} (${d})`),await r.addCardToFile({content:B,list:s,path:S,tags:c,meta:P})),w.debug(`Adding task ${p} (${d})`,{content:a,list:s,issuePath:v,tags:c,meta:l}),await r.addCardToFile({content:a,list:s,path:v,tags:c,meta:l})}async function Cue(e,t=15){let r=new Array(e.length);for(let n=0;n<e.length;n+=t){let u=e.slice(n,n+t).map((o,s)=>Promise.resolve(o()).then(a=>(r[n+s]=a,a)));await Promise.all(u)}return r}async function MVe({project:e,query:t="",projectKeys:r,providerAdapter:n}){if(!n)throw new Error("JiraPlugin: providerAdapter is required before building existing issue query. Check .imdone/config.yml settings.plugins.JiraPlugin.");let i=ut(n);if(i==="jira"&&(!Array.isArray(r)||r.length===0))throw new Error("JiraPlugin: projectKeys is required before building existing Jira issue query. Add settings.plugins.JiraPlugin.projectKeys in .imdone/config.yml.");let u=i==="jira"?await e.getAllCards(r.map(o=>`meta.${i}=${o}*`).join(" OR ")):await e.getAllCards(`meta.${i}=*`);if(u.length>0){let o=u.map(s=>s.meta[i][0]).join(",");t=i==="jira"?`key in (${o}) or ${t}`:`${o.replace(/,/g," ")} OR ${t}`}return t}function bue({preserveRawQuery:e=!1,providerAdapter:t}){return e&&t?.providerName==="jira"&&typeof t?.getTasksWithRawJql=="function"}function wue({preserveRawQuery:e=!1,providerAdapter:t}){return!e&&t?.providerName==="jira"&&typeof t?.getTasksWithRawJql=="function"}function qVe(e,t=100){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}async function UVe({issueKeys:e,providerAdapter:t,feedback:r}){if(!e.length)return[];let n=qVe(e),i=[];for(let[u,o]of n.entries()){r&&n.length>1&&(r.text=`\u{1F504} Fetching existing Jira issues batch ${u+1}/${n.length}...`);let s=`key in (${o.join(",")})`,a=await t.getTasksWithRawJql(s);i.push(...a)}return i}function jVe(e,t){let r=new Map;for(let n of e){let i=n?.meta?.[t]?.[0];i&&r.set(i,n)}return[...r.values()]}function HVe({providerAdapter:e,strategy:t="fullFetch",skippedFullFetch:r=!1}={}){if(typeof e?.getSearchSummary!="function")return;let n=e.getSearchSummary();if(!n)return;let i=Array.isArray(n.batches)?n.batches:[],u=i.at(-1),o=n.lastBatchSize??u?.count??u?.issues?.length??0;return{provider:e.providerName||"jira",strategy:t,skippedFullFetch:r,pagination:n.pagination,requestCount:n.requestCount??i.length,batchCount:n.batchCount??i.length,lastBatchSize:o,batches:i}}async function j7({project:e,providerAdapter:t}){let r=ut(t),n=t?.projectKeys||[];return r==="jira"&&n.length>0?await e.getAllCards(n.map(i=>`meta.${r}=${i}*`).join(" OR ")):await e.getAllCards(`meta.${r}=*`)}async function GVe({project:e,issues:t,providerAdapter:r,feedback:n}){let i=ut(r),u=await j7({project:e,providerAdapter:r}),o=new Set(t.map(a=>a?.meta?.[i]?.[0]).filter(Boolean)),s=u.filter(a=>{let c=a?.meta?.[i]?.[0];return c&&!a?.meta?.commentsOn&&!o.has(c)});n&&s.length>0&&(n.text=`\u{1F5C3}\uFE0F Archiving ${s.length} missing local issue${s.length===1?"":"s"}...`);for(let a of s){let c=a?.meta?.[i]?.[0],l=null;try{l=(await e.getAllCards?.(`meta.commentsOn="${c}"`))?.[0]??null}catch{l=null}await lE({project:e,task:a,commentsCard:l,issueKey:c})}}async function zVe({project:e,issues:t,providerAdapter:r}){let n=ut(r);if(!t?.length)return w.debug("No provider issues returned; skipping existing card lookup"),[];w.debug("Getting existing cards for provider issues:",JSON.stringify(t[0]));let i=new Set(t.map(o=>o.meta?.[n]?.[0]).filter(Boolean)),u=await j7({project:e,providerAdapter:r});return w.debug("Getting existing cards from local provider card pool:",{providerCardCount:u.length,providerIssueCount:i.size}),u.filter(o=>i.has(o.meta?.[n]?.[0]))}async function Tue({project:e,providerAdapter:t=Xu(),task:r}){if(H7(e,r))return;let n=ut(t),i=r.meta[n],{description:u}=await t.getTask(i);Pue(e,u,`"${i}" copied to clipboard`)}async function Iue({project:e,providerAdapter:t=Xu()}){let r=await t.getStatuses();Pue(e,JSON.stringify(r,null,2),"Provider statuses copied to clipboard")}async function WVe({providerAdapter:e=Xu(),feedback:t}){let r=e?.providerName==="github"?"GitHub":"Jira",n=e?.userName;if(!n&&typeof e?.getCurrentUser=="function"){let u=await e.getCurrentUser();n=u?.displayName||u?.name||u?.login||u?.emailAddress}let i=await e.getPermissions();return t.succeed(`Provider Permissions for ${r} user ${n||"unknown"} on ${e.projectKeys} project:`),t[i.canEdit?"succeed":"warn"](`Can push: ${i.canEdit} `),t[i.canBrowse?"succeed":"warn"](`Can pull: ${i.canBrowse} `),i}async function Oue({jiraPlugin:e,feedback:t}){let r=e?.allAdapters?.length?e.allAdapters:[e?.providerAdapter||e?.jiraAdapter].filter(Boolean),n=[];for(let i of r)try{await WVe({providerAdapter:i,feedback:t})}catch(u){n.push({provider:i?.providerName||"jira",error:u}),t.warn(`Failed to test ${i?.providerName||"jira"} provider: ${u.message}`)}if(n.length>0){let i=n.map(({provider:o})=>o).join(", "),u=new Error(`Provider test failed for: ${i}`);throw u.failures=n,u}return{providersTested:r.length}}async function Lue({cliConfig:e,_getJiraAdapter:t=Xu,_getGitHubAdapter:r=Ry}){let n=e?.providers?.length?e.providers:[e?.provider].filter(Boolean),i=[],u=[];for(let o of n)try{if(o==="jira"){i.push(await t({imdoneProjectPath:e.fullBacklogDir,statusMap:[],projectKeys:(e.projectKeys||[]).map(s=>typeof s=="string"?s:s?.key).filter(Boolean),issueType:e.issueType,jiraUrl:e.jiraUrl}));continue}if(o==="github"){i.push(await r({owner:e.githubOwner,repo:e.githubRepo,token:e.githubToken,statusMap:[]}));continue}throw new Error(`Unsupported provider: ${o}`)}catch(s){u.push({provider:o,error:s})}return{adapters:i,failures:u}}async function Hf({project:e,query:t,preserveRawQuery:r=!1,defaultList:n,defaultDirectory:i,providerAdapter:u=Xu(),statuses:o,feedback:s}){w.debug("Updating project from provider",{query:t,defaultList:n,defaultDirectory:i,providerAdapter:u,statuses:o}),t||Qc(e,"No query defined in plugin settings. Updating existing issues only.");let{projectKeys:a}=u;!r&&!bue({preserveRawQuery:r,providerAdapter:u})&&!wue({preserveRawQuery:r,providerAdapter:u})&&(t=await MVe({project:e,query:t,projectKeys:a,providerAdapter:u})),Ea(e,`Updating project from provider with query: ${t}`),s&&(s.text="\u{1F504} Fetching issues from provider... (this may take a moment for large projects)"),w.debug("Fetching issues from provider with query:",t);let c=ut(u),l=bue({preserveRawQuery:r,providerAdapter:u})?await u.getTasksWithRawJql(t):wue({preserveRawQuery:r,providerAdapter:u})?jVe([...t?await u.getTasks(t):[],...await UVe({issueKeys:(await j7({project:e,providerAdapter:u})).map(D=>D.meta?.[c]?.[0]).filter(Boolean),providerAdapter:u,feedback:s})],c):await u.getTasks(t),f=await zVe({project:e,issues:l,providerAdapter:u});w.debug("Existing cards:",f.map(D=>D.meta[c])),w.debug("Provider issues:",l.map(D=>D.meta[c]));let d=l.filter(D=>!f.find(y=>y.meta[c][0]===D.meta[c][0]));if(Ea(e,`Found ${l.length} issues in provider. ${f.length} already exist in the project, ${d.length} are new.`),s){let D=f.length+d.length;D>10?s.text=`\u{1F4DD} Processing ${D} issues... (hang tight, this takes a moment)`:s.text="\u{1F4DD} Processing issues and attachments..."}Ea(e,`Found ${l.length} issues in provider. ${f.length} already exist in the project, ${d.length} are new.`),s&&f.length>0&&(s.text=`\u{1F504} Updating ${f.length} existing issue${f.length===1?"":"s"}...`);let p=await Cue(f.filter(D=>D?!0:(w.error("existingCards contains undefined task - filtering it out"),!1)).map(D=>async()=>{try{return await $Ve(D,l,c,e,i,u,s)}catch(y){throw w.error(y),Ea(e,y.message),y}}));Ea(e,`Updated ${f.length} tasks in the project`),s&&d.length>0&&(s.text=`\u2728 Creating ${d.length} new issue${d.length===1?"":"s"}...`);let h=await Cue(d.map(D=>async()=>{try{return await NVe(D,c,e,n,i,u,s)}catch(y){w.error(y);let v=`Error adding card for provider issue ${D.meta?.[c]?.[0]||"unknown"}: ${y.message}`;throw Ea(e,v),s?.warn&&s.warn(v),y}}));r||await GVe({project:e,issues:l,providerAdapter:u,feedback:s}),Ea(e,"Project updated from provider");let x=HVe({providerAdapter:u});return x?{existing:p,added:h,providerCallSummary:x}:{existing:p,added:h}}async function Rue({project:e,task:t,providerAdapter:r=Xu()}){if(H7(e,t))return;let n=ut(r),i=t.meta[n];if(!i)return Qc(e,"Card is not published to provider");Qc(e,`Updating card from provider: ${i}`);let{list:u,content:o,tags:s,meta:a}=await r.getTask(i);try{return w.debug(`[updateTaskFromProvider] About to call updateImdoneTask for task: ${t?t.text:"UNDEFINED"}`),await M7({project:e,task:t,list:u,content:o,tags:s,meta:a})}catch(c){w.error(c),Ea(e,c.message)}}async function dE({project:e,task:t,providerAdapter:r=Xu()}){if(w.debug("Publishing issue to provider",JSON.stringify({task:t})),H7(e,t))return;let n=await tKe(e.path,t),i=ut(r),u=`${i}Url`,o=n.allTags.length>0?n.allTags:void 0,s=n.meta?.[i]&&n.meta?.[i][0];if(!s)return w.debug(`Skipping task ${n.source?.path}: no ${i} key`),null;let a=n.meta?.issueType&&n.meta?.issueType[0],l=ut(r)==="github"?iKe(n.text):n.text,f=s==="true"?r.createTask.bind(r):r.updateTask.bind(r),d=s?`${s} - "${n.text}"`:n.text;Qc(e,`Publishing ${d} to provider`);try{let p=null,h=await q7(e.path),x=n.source?.path||n.path;if(x){let v=eKe(e.path,x);w.debug(`Loading attachment metadata for ${s}:`,{taskPath:x,attachmentsDir:v});try{p=await dr(v),w.debug(`Loaded attachment metadata for ${s}:`,p)}catch(S){w.debug(`No attachment metadata found for ${s}:`,S.message)}}else w.debug(`No task path for ${s}, skipping attachment metadata`);let D=rKe(n,r,{attachmentMetadata:p,backlogPath:e.path,contentPath:x?qe.default.join(e.path,x):null,sourceRepoOrigin:h}),y=await f({key:s,title:l,description:D,issueType:a,labels:o});t?.meta?.[i]&&await e.removeMetadata(t,i,s),await e.addMetadata(t,i,y.key),t?.meta?.publishedAt&&await e.removeMetadata(t,"publishedAt",t.meta.publishedAt[0]),await e.addMetadata(t,"publishedAt",UG()),t?.meta?.[u]&&await e.removeMetadata(t,u,t.meta[u][0]),await e.addMetadata(t,u,r.getTaskUrl(y.key));let C=(await e.getAllCards?.(`meta.commentsOn="${y.key}"`))?.[0]??null;return await P7({project:e,task:t,commentsCard:C,issueKey:y.key,issueDirectoryKey:R7(y.key,t.meta),issueTitle:l,destinationRoot:qe.default.dirname(N7({project:e,defaultDirectory:"",task:t,issueKey:y.key}))}),await $7(N7({project:e,defaultDirectory:"",task:t,issueKey:y.key}),y.key),y.task=t,Qc(e,`${y.key} published to provider`),y}catch(p){w.error(p),Qc(e,`Error publishing issue: ${p.message}`)}}async function M7({project:e,task:t,list:r,content:n,tags:i,meta:u}){if(w.debug(`[updateImdoneTask] Received parameters: task=${t?t.text:"UNDEFINED"}, project=${!!e}, list=${r}, content length=${n?.length}`),!t)throw console.error("[updateImdoneTask] Called with undefined task from:"),console.trace(),new Error("updateImdoneTask called with undefined task");if(!t.list)throw new Error(`updateImdoneTask called with task missing list property. Task: ${JSON.stringify(t)}`);return r&&t.list&&t.list!==r&&await e.moveTask(t,r),n=await e.addTagsToContent(i,n),n=await e.addMetaToContent(u,n),await e.updateCardContent(t,n),t}function Qc(e,t,r=1e4){e.toast({message:t,duration:r})}function Ea(e,t,r=1e4){e.snackBar({message:t,duration:r})}function Pue(e,t,r){e.copyToClipboard(t,r)}function YVe(e){return ut(e)==="github"?KVe:VVe}function JVe(e){let t=e.split(`
|
|
502
|
+
`)[0],h=OVe({project:r,list:s}),x=await q7(r.path),y=l.isPullRequest?.[0]===!0?"PR-":"",C=qe.default.join(Bue({project:r,defaultDirectory:i,shouldArchive:h}),gh(`${y}${d}-${p}`)),v=qe.default.join(C,`issue-${d}.md`),S=qe.default.join(C,`comments-${d}.md`),k=await vue(d,C,f?.content,u,o,{projectPath:r.path,sourceRepoOrigin:x});if(S_(C,e,o).catch(R=>{w.error(`Failed to sync changelog for ${d}:`,R)}),k.length>0){let R=new Map(k.map(O=>[O.url,O.filename]));a=W2(a,R)}a=G2(a,{backlogPath:r.path,contentPath:v,sourceRepoOrigin:x});let B=f?.content,P=f?.meta||{};return B&&(w.debug(`Adding comments for task ${p} (${d})`),await r.addCardToFile({content:B,list:s,path:S,tags:c,meta:P})),w.debug(`Adding task ${p} (${d})`,{content:a,list:s,issuePath:v,tags:c,meta:l}),await r.addCardToFile({content:a,list:s,path:v,tags:c,meta:l})}async function Cue(e,t=15){let r=new Array(e.length);for(let n=0;n<e.length;n+=t){let u=e.slice(n,n+t).map((o,s)=>Promise.resolve(o()).then(a=>(r[n+s]=a,a)));await Promise.all(u)}return r}async function MVe({project:e,query:t="",projectKeys:r,providerAdapter:n}){if(!n)throw new Error("JiraPlugin: providerAdapter is required before building existing issue query. Check .imdone/config.yml settings.plugins.JiraPlugin.");let i=ut(n);if(i==="jira"&&(!Array.isArray(r)||r.length===0))throw new Error("JiraPlugin: projectKeys is required before building existing Jira issue query. Add settings.plugins.JiraPlugin.projectKeys in .imdone/config.yml.");let u=i==="jira"?await e.getAllCards(r.map(o=>`meta.${i}=${o}*`).join(" OR ")):await e.getAllCards(`meta.${i}=*`);if(u.length>0){let o=u.map(s=>s.meta[i][0]).join(",");t=i==="jira"?`key in (${o}) or ${t}`:`${o.replace(/,/g," ")} OR ${t}`}return t}function bue({preserveRawQuery:e=!1,providerAdapter:t}){return e&&t?.providerName==="jira"&&typeof t?.getTasksWithRawJql=="function"}function wue({preserveRawQuery:e=!1,providerAdapter:t}){return!e&&t?.providerName==="jira"&&typeof t?.getTasksWithRawJql=="function"}function qVe(e,t=100){let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}async function UVe({issueKeys:e,providerAdapter:t,feedback:r}){if(!e.length)return[];let n=qVe(e),i=[];for(let[u,o]of n.entries()){r&&n.length>1&&(r.text=`\u{1F504} Fetching existing Jira issues batch ${u+1}/${n.length}...`);let s=`key in (${o.join(",")})`,a=await t.getTasksWithRawJql(s);i.push(...a)}return i}function jVe(e,t){let r=new Map;for(let n of e){let i=n?.meta?.[t]?.[0];i&&r.set(i,n)}return[...r.values()]}function HVe({providerAdapter:e,strategy:t="fullFetch",skippedFullFetch:r=!1}={}){if(typeof e?.getSearchSummary!="function")return;let n=e.getSearchSummary();if(!n)return;let i=Array.isArray(n.batches)?n.batches:[],u=i.at(-1),o=n.lastBatchSize??u?.count??u?.issues?.length??0;return{provider:e.providerName||"jira",strategy:t,skippedFullFetch:r,pagination:n.pagination,requestCount:n.requestCount??i.length,batchCount:n.batchCount??i.length,lastBatchSize:o,batches:i}}async function j7({project:e,providerAdapter:t}){let r=ut(t),n=t?.projectKeys||[];return r==="jira"&&n.length>0?await e.getAllCards(n.map(i=>`meta.${r}=${i}*`).join(" OR ")):await e.getAllCards(`meta.${r}=*`)}async function GVe({project:e,issues:t,providerAdapter:r,feedback:n}){let i=ut(r),u=await j7({project:e,providerAdapter:r}),o=new Set(t.map(a=>a?.meta?.[i]?.[0]).filter(Boolean)),s=u.filter(a=>{let c=a?.meta?.[i]?.[0];return c&&!a?.meta?.commentsOn&&!o.has(c)});n&&s.length>0&&(n.text=`\u{1F5C3}\uFE0F Archiving ${s.length} missing local issue${s.length===1?"":"s"}...`);for(let a of s){let c=a?.meta?.[i]?.[0],l=null;try{l=(await e.getAllCards?.(`meta.commentsOn="${c}"`))?.[0]??null}catch{l=null}await lE({project:e,task:a,commentsCard:l,issueKey:c})}}async function zVe({project:e,issues:t,providerAdapter:r}){let n=ut(r);if(!t?.length)return w.debug("No provider issues returned; skipping existing card lookup"),[];w.debug("Getting existing cards for provider issues:",JSON.stringify(t[0]));let i=new Set(t.map(o=>o.meta?.[n]?.[0]).filter(Boolean)),u=await j7({project:e,providerAdapter:r});return w.debug("Getting existing cards from local provider card pool:",{providerCardCount:u.length,providerIssueCount:i.size}),u.filter(o=>i.has(o.meta?.[n]?.[0]))}async function Tue({project:e,providerAdapter:t=Xu(),task:r}){if(H7(e,r))return;let n=ut(t),i=r.meta[n],{description:u}=await t.getTask(i);Pue(e,u,`"${i}" copied to clipboard`)}async function Iue({project:e,providerAdapter:t=Xu()}){let r=await t.getStatuses();Pue(e,JSON.stringify(r,null,2),"Provider statuses copied to clipboard")}async function WVe({providerAdapter:e=Xu(),feedback:t}){let r=e?.providerName==="github"?"GitHub":"Jira",n=e?.userName;if(!n&&typeof e?.getCurrentUser=="function"){let u=await e.getCurrentUser();n=u?.displayName||u?.name||u?.login||u?.emailAddress}let i=await e.getPermissions();return t.succeed(`Provider Permissions for ${r} user ${n||"unknown"} on ${e.projectKeys} project:`),t[i.canEdit?"succeed":"warn"](`Can push: ${i.canEdit} `),t[i.canBrowse?"succeed":"warn"](`Can pull: ${i.canBrowse} `),i}async function Oue({jiraPlugin:e,feedback:t}){let r=e?.allAdapters?.length?e.allAdapters:[e?.providerAdapter||e?.jiraAdapter].filter(Boolean),n=[];for(let i of r)try{await WVe({providerAdapter:i,feedback:t})}catch(u){n.push({provider:i?.providerName||"jira",error:u}),t.warn(`Failed to test ${i?.providerName||"jira"} provider: ${u.message}`)}if(n.length>0){let i=n.map(({provider:o})=>o).join(", "),u=new Error(`Provider test failed for: ${i}`);throw u.failures=n,u}return{providersTested:r.length}}async function Lue({cliConfig:e,_getJiraAdapter:t=Xu,_getGitHubAdapter:r=Ry}){let n=e?.providers?.length?e.providers:[e?.provider].filter(Boolean),i=[],u=[];for(let o of n)try{if(o==="jira"){i.push(await t({imdoneProjectPath:e.fullBacklogDir,statusMap:[],projectKeys:(e.projectKeys||[]).map(s=>typeof s=="string"?s:s?.key).filter(Boolean),issueType:e.issueType,jiraUrl:e.jiraUrl}));continue}if(o==="github"){i.push(await r({owner:e.githubOwner,repo:e.githubRepo,token:e.githubToken,statusMap:[]}));continue}throw new Error(`Unsupported provider: ${o}`)}catch(s){u.push({provider:o,error:s})}return{adapters:i,failures:u}}async function Hf({project:e,query:t,preserveRawQuery:r=!1,defaultList:n,defaultDirectory:i,providerAdapter:u=Xu(),statuses:o,feedback:s}){w.debug("Updating project from provider",{query:t,defaultList:n,defaultDirectory:i,providerAdapter:u,statuses:o}),t||Qc(e,"No query defined in plugin settings. Updating existing issues only.");let{projectKeys:a}=u;!r&&!bue({preserveRawQuery:r,providerAdapter:u})&&!wue({preserveRawQuery:r,providerAdapter:u})&&(t=await MVe({project:e,query:t,projectKeys:a,providerAdapter:u})),Ea(e,`Updating project from provider with query: ${t}`),s&&(s.text="\u{1F504} Fetching issues from provider... (this may take a moment for large projects)"),w.debug("Fetching issues from provider with query:",t);let c=ut(u),l=bue({preserveRawQuery:r,providerAdapter:u})?await u.getTasksWithRawJql(t):wue({preserveRawQuery:r,providerAdapter:u})?jVe([...t?await u.getTasks(t):[],...await UVe({issueKeys:(await j7({project:e,providerAdapter:u})).map(D=>D.meta?.[c]?.[0]).filter(Boolean),providerAdapter:u,feedback:s})],c):await u.getTasks(t),f=await zVe({project:e,issues:l,providerAdapter:u});w.debug("Existing cards:",f.map(D=>D.meta[c])),w.debug("Provider issues:",l.map(D=>D.meta[c]));let d=l.filter(D=>!f.find(y=>y.meta[c][0]===D.meta[c][0]));if(Ea(e,`Found ${l.length} issues in provider. ${f.length} already exist in the project, ${d.length} are new.`),s){let D=f.length+d.length;D>10?s.text=`\u{1F4DD} Processing ${D} issues... (hang tight, this takes a moment)`:s.text="\u{1F4DD} Processing issues and attachments..."}Ea(e,`Found ${l.length} issues in provider. ${f.length} already exist in the project, ${d.length} are new.`),s&&f.length>0&&(s.text=`\u{1F504} Updating ${f.length} existing issue${f.length===1?"":"s"}...`);let p=await Cue(f.filter(D=>D?!0:(w.error("existingCards contains undefined task - filtering it out"),!1)).map(D=>async()=>{try{return await $Ve(D,l,c,e,i,u,s)}catch(y){throw w.error(y),Ea(e,y.message),y}}));Ea(e,`Updated ${f.length} tasks in the project`),s&&d.length>0&&(s.text=`\u2728 Creating ${d.length} new issue${d.length===1?"":"s"}...`);let h=await Cue(d.map(D=>async()=>{try{return await NVe(D,c,e,n,i,u,s)}catch(y){w.error(y);let v=`Error adding card for provider issue ${D.meta?.[c]?.[0]||"unknown"}: ${y.message}`;throw Ea(e,v),s?.warn&&s.warn(v),y}}));r||await GVe({project:e,issues:l,providerAdapter:u,feedback:s}),Ea(e,"Project updated from provider");let x=HVe({providerAdapter:u});return x?{existing:p,added:h,providerCallSummary:x}:{existing:p,added:h}}async function Rue({project:e,task:t,providerAdapter:r=Xu()}){if(H7(e,t))return;let n=ut(r),i=t.meta[n];if(!i)return Qc(e,"Card is not published to provider");Qc(e,`Updating card from provider: ${i}`);let{list:u,content:o,tags:s,meta:a}=await r.getTask(i);try{return w.debug(`[updateTaskFromProvider] About to call updateImdoneTask for task: ${t?t.text:"UNDEFINED"}`),await M7({project:e,task:t,list:u,content:o,tags:s,meta:a})}catch(c){w.error(c),Ea(e,c.message)}}async function dE({project:e,task:t,providerAdapter:r=Xu()}){if(w.debug("Publishing issue to provider",JSON.stringify({task:t})),H7(e,t))return;let n=await tKe(e.path,t),i=ut(r),u=`${i}Url`,o=n.allTags.length>0?n.allTags:void 0,s=n.meta?.[i]&&n.meta?.[i][0];if(!s)return w.debug(`Skipping task ${n.source?.path}: no ${i} key`),null;let a=n.meta?.issueType&&n.meta?.issueType[0],l=ut(r)==="github"?iKe(n.text):n.text,f=s==="true"?r.createTask.bind(r):r.updateTask.bind(r),d=s?`${s} - "${n.text}"`:n.text;Qc(e,`Publishing ${d} to provider`);try{let p=null,h=await q7(e.path),x=n.source?.path||n.path;if(x){let v=eKe(e.path,x);w.debug(`Loading attachment metadata for ${s}:`,{taskPath:x,attachmentsDir:v});try{p=await dr(v),w.debug(`Loaded attachment metadata for ${s}:`,p)}catch(S){w.debug(`No attachment metadata found for ${s}:`,S.message)}}else w.debug(`No task path for ${s}, skipping attachment metadata`);let D=rKe(n,r,{attachmentMetadata:p,backlogPath:e.path,contentPath:x?qe.default.join(e.path,x):null,sourceRepoOrigin:h}),y=await f({key:s,title:l,description:D,issueType:a,labels:o});t?.meta?.[i]&&await e.removeMetadata(t,i,s),await e.addMetadata(t,i,y.key),t?.meta?.publishedAt&&await e.removeMetadata(t,"publishedAt",t.meta.publishedAt[0]),await e.addMetadata(t,"publishedAt",UG()),t?.meta?.[u]&&await e.removeMetadata(t,u,t.meta[u][0]),await e.addMetadata(t,u,r.getTaskUrl(y.key));let C=(await e.getAllCards?.(`meta.commentsOn="${y.key}"`))?.[0]??null;return await P7({project:e,task:t,commentsCard:C,issueKey:y.key,issueDirectoryKey:R7(y.key,t.meta),issueTitle:l,destinationRoot:qe.default.dirname(N7({project:e,defaultDirectory:"",task:t,issueKey:y.key}))}),await $7(N7({project:e,defaultDirectory:"",task:t,issueKey:y.key}),y.key),y.task=t,Qc(e,`${y.key} published to provider`),y}catch(p){w.error(p),Qc(e,`Error publishing issue: ${p.message}`)}}async function M7({project:e,task:t,list:r,content:n,tags:i,meta:u}){if(w.debug(`[updateImdoneTask] Received parameters: task=${t?t.text:"UNDEFINED"}, project=${!!e}, list=${r}, content length=${n?.length}`),!t)throw console.error("[updateImdoneTask] Called with undefined task from:"),console.trace(),new Error("updateImdoneTask called with undefined task");if(!t.list)throw new Error(`updateImdoneTask called with task missing list property. Task: ${JSON.stringify(t)}`);return n=await e.addTagsToContent(i,n),n=await e.addMetaToContent(u,n),await e.updateCardContent(t,n),r&&t.list&&t.list!==r&&(await e.moveTask(t,r),t.list=r),t}function Qc(e,t,r=1e4){e.toast({message:t,duration:r})}function Ea(e,t,r=1e4){e.snackBar({message:t,duration:r})}function Pue(e,t,r){e.copyToClipboard(t,r)}function YVe(e){return ut(e)==="github"?KVe:VVe}function JVe(e){let t=e.split(`
|
|
503
503
|
`);return t.shift(),t.join(`
|
|
504
504
|
`)}function QVe(e,t){if(!e||Object.keys(e).length===0)return{};let r=YVe(t);return Object.fromEntries(Object.entries(e).filter(([n])=>!r.includes(n)))}function ZVe(e,t){let r=QVe(e,t);return Object.keys(r).length===0?"":["```JSON",JSON.stringify({imdone:r}),"```",""].join(`
|
|
505
505
|
`)}function XVe(e,t){return t?`${e}
|