`;\n notificationContent.appendChild(ungroupedLine);\n } // Create a label line for groups\n\n\n const groupLabelLine = document.createElement('div');\n groupLabelLine.innerHTML = `Packages with choices:`;\n notificationContent.appendChild(groupLabelLine); // Create one line per group with a select inside\n\n const groupedList = document.createElement('ul');\n groupedDependencies.forEach((item, index) => {\n const listItem = document.createElement('li');\n const select = document.createElement('select');\n select.innerHTML = item.map(subitem => ``).join('\\n');\n select.addEventListener('change', () => {\n // Change the selected value for this index for resolve to use\n const subitem = item.find(entry => entry.name === select.value);\n\n if (subitem != null) {\n groupChoices[index] = subitem;\n }\n });\n listItem.style.marginTop = '5px';\n listItem.appendChild(select);\n groupedList.appendChild(listItem);\n });\n notificationContent.appendChild(groupedList);\n } catch (err) {\n console.error('[Package-Deps] Error during showing package choices to user', err);\n }\n });\n}\nfunction getView({\n packageName,\n dependencies\n}) {\n const failed = [];\n const notification = atom.notifications.addInfo(`Installing ${packageName} dependencies`, {\n detail: `Installing ${dependencies.map(item => item.name).join(', ')}`,\n dismissable: true\n });\n const progress = document.createElement('progress');\n progress.max = dependencies.length;\n progress.style.width = '100%';\n\n try {\n var _notificationView$ele2;\n\n const notificationView = atom.views.getView(notification);\n const notificationElement = (_notificationView$ele2 = notificationView === null || notificationView === void 0 ? void 0 : notificationView.element) !== null && _notificationView$ele2 !== void 0 ? _notificationView$ele2 : null;\n\n if (notificationElement == null) {\n throw new Error('Unable to get notification element from view');\n }\n\n const notificationContent = notificationElement.querySelector('.detail-content');\n\n if (notificationContent == null) {\n throw new Error('Content detail container not found inside the notification');\n }\n\n notificationContent.appendChild(progress);\n } catch (err) {\n console.error('[Package-Deps] Error during showing installation progress to user', err);\n }\n\n return {\n handleFailure({\n dependency,\n error\n }) {\n var _error$stack;\n\n failed.push(dependency.name);\n progress.value += 1;\n console.error(`[Package-Deps] Unable to install ${dependency.name}, Error:`, (_error$stack = error === null || error === void 0 ? void 0 : error.stack) !== null && _error$stack !== void 0 ? _error$stack : error);\n },\n\n handleDependencyInstalled(dependency) {\n progress.value += 1;\n },\n\n handleComplete() {\n notification.dismiss();\n\n if (failed.length > 0) {\n atom.notifications.addWarning(`Failed to install ${packageName} dependencies`, {\n detail: `These packages were not installed, check your console\\nfor more info.\\n${failed.join('\\n')}`,\n dismissable: true\n });\n } else {\n atom.notifications.addSuccess(`Installed ${packageName} dependencies`, {\n detail: `Installed ${dependencies.map(item => item.name).join(', ')}`\n });\n }\n\n Promise.all(dependencies.map(item => {\n if (!failed.includes(item.name)) {\n return atom.packages.activatePackage(item.name);\n }\n\n return null;\n })).catch(err => {\n console.error(`[Package-Deps] Error activating installed packages for ${packageName}`, err);\n });\n }\n\n };\n}\n\nasync function confirmPackagesToInstall$1({\n dependencies\n}) {\n // No user interaction on the CLI. Install the first (aka \"default\" choice) package\n return dependencies.map(item => Array.isArray(item) ? item[0] : item);\n}\nfunction getView$1({\n dependencies\n}) {\n let failed = false;\n console.log(`Installing dependencies:\\n${dependencies.map(item => ` - ${item.name}`).join('\\n')}`);\n return {\n handleFailure({\n dependency,\n error\n }) {\n var _error$stack;\n\n failed = true;\n console.error(`Unable to install ${dependency.name}, Error:`, (_error$stack = error === null || error === void 0 ? void 0 : error.stack) !== null && _error$stack !== void 0 ? _error$stack : error);\n },\n\n handleDependencyInstalled(dependency) {\n console.log('Successfully installed', dependency.name);\n },\n\n handleComplete() {\n console.log('Installation complete');\n\n if (failed) {\n // Fail the invocation\n process.exitCode = 1;\n }\n }\n\n };\n}\n\nconst getView$2 = IS_ATOM ? getView : getView$1;\nconst confirmPackagesToInstall$2 = IS_ATOM ? confirmPackagesToInstall : confirmPackagesToInstall$1;\n\nasync function install(packageName, hideUserPrompt = false) {\n invariant(typeof packageName === 'string' && packageName.length > 0, '[Package-Deps] Package name is required');\n\n if (isPackageIgnored(packageName)) {\n // User ignored this package\n return;\n } // Get list of relevant dependencies\n\n\n const dependencies = await getDependencies$2(packageName);\n\n if (dependencies.length === 0) {\n // Short-circuit\n return;\n } // Resolve directories of relevant dependencies\n\n\n const resolvedDependencies = await Promise.all(dependencies.map(async item => {\n if (Array.isArray(item)) {\n return Promise.all(item.map(getResolvedDependency));\n }\n\n return getResolvedDependency(item);\n })); // Filter out already installed, in range dependencies\n // If one dependency from a group is already installed, whole group is ignored\n\n const dependenciesToInstall = await pFilter_1(resolvedDependencies, async function (item) {\n if (Array.isArray(item)) {\n return (await Promise.all(item.map(subitem => shouldInstallDependency(subitem)))).every(Boolean);\n }\n\n return shouldInstallDependency(item);\n });\n\n if (dependenciesToInstall.length === 0) {\n // Short-circuit if all have been skipped\n return;\n }\n\n let chosenDependencies;\n\n if (!hideUserPrompt) {\n chosenDependencies = await confirmPackagesToInstall$2({\n packageName,\n dependencies: dependenciesToInstall\n });\n } else {\n // prompt-less installation\n chosenDependencies = dependenciesToInstall.map(dep => {\n if (Array.isArray(dep)) {\n return dep[0];\n }\n\n return dep;\n });\n }\n\n if (chosenDependencies.length === 0) {\n // Short-circuit if user interaction cancelled all\n return;\n }\n\n const view = getView$2({\n packageName,\n dependencies: chosenDependencies\n });\n await pMap(chosenDependencies, async function (dependency) {\n try {\n await installPackage(dependency);\n view.handleDependencyInstalled(dependency);\n } catch (err) {\n view.handleFailure({\n dependency,\n error: err\n });\n }\n }, {\n concurrency: 2\n });\n view.handleComplete();\n}\n\nexports.install = install;\n"],"names":["$848ea5d074acd496825c50b493d29862$var$_interopDefaultLegacy","e","$848ea5d074acd496825c50b493d29862$var$invariant","condition","message1","Error","$848ea5d074acd496825c50b493d29862$var$shouldInstallDependency","dependency","directory","minimumVersion","version","async","$848ea5d074acd496825c50b493d29862$var$IS_ATOM","atomPackageVersion","_packageModule$metada","packageModule","atom","packages","getLoadedPackage","name","metadata","$848ea5d074acd496825c50b493d29862$var$getInstalledDependencyVersion","_manifest$version","_manifest","manifest","JSON","parse","$848ea5d074acd496825c50b493d29862$var$fs__default","promises","readFile","$848ea5d074acd496825c50b493d29862$var$path__default","join","_","$848ea5d074acd496825c50b493d29862$var$getInstalledDependencyVersion$1","$848ea5d074acd496825c50b493d29862$var$getInstalledDependencyVersion$2","a","b","pa","split","pb","i","na","nb","isNaN","$848ea5d074acd496825c50b493d29862$var$semverCompare","$848ea5d074acd496825c50b493d29862$var$getResolvedDependency","item","$848ea5d074acd496825c50b493d29862$var$resolveDependencyPath$2","console","error","entry","Object","defineProperty","module","exports","value","$848ea5d074acd496825c50b493d29862$var$os__default","$22KIE$os","$22KIE$fs","$22KIE$path","$848ea5d074acd496825c50b493d29862$var$extractPathRegex","$848ea5d074acd496825c50b493d29862$var$pathRegex","$848ea5d074acd496825c50b493d29862$var$homeDir","homedir","$848ea5d074acd496825c50b493d29862$var$AggregateError","errors","Array","isArray","TypeError","message","map","assign","stack","replace","$848ea5d074acd496825c50b493d29862$var$cleanInternalStack","options","pretty","filter","line","pathMatches","match","includes","test","trim","m","p1","String","string","count","indent","includeEmptyLines","repeat","$848ea5d074acd496825c50b493d29862$var$indentString","super","this","Symbol","iterator","_errors","$848ea5d074acd496825c50b493d29862$var$aggregateError","$848ea5d074acd496825c50b493d29862$var$pMap$1","iterable","mapper","Promise","resolve","reject","concurrency","Infinity","ret","isRejected","isIterableDone","resolvingCount","currentIndex","next","nextItem","done","then","element","$848ea5d074acd496825c50b493d29862$var$pMap_1","default","$848ea5d074acd496825c50b493d29862$var$pFilter","filterer","index","all","$848ea5d074acd496825c50b493d29862$var$pFilter_1","$848ea5d074acd496825c50b493d29862$var$IS_DEV","$848ea5d074acd496825c50b493d29862$var$IGNORED_CONFIG_NAME","$848ea5d074acd496825c50b493d29862$var$matchHtmlRegExp","$848ea5d074acd496825c50b493d29862$var$escapeHtml_1","escape","str","exec","html","lastIndex","length","charCodeAt","substring","packageName","resolvePackagePath","_process$env$ATOM_HOM","packageDirectory","process","env","ATOM_HOME","access","constants","R_OK","$848ea5d074acd496825c50b493d29862$var$INSTALL_VALID_TICKS","Set","$848ea5d074acd496825c50b493d29862$var$INSTALL_VALIDATION_REGEXP","$848ea5d074acd496825c50b493d29862$var$showResetInstruction","$848ea5d074acd496825c50b493d29862$var$getView$2","dependencies","failed","notification","notifications","addInfo","detail","dismissable","progress","document","createElement","max","style","width","_notificationView$ele2","notificationView","views","getView","notificationElement","notificationContent","querySelector","appendChild","err","handleFailure","_error$stack","push","handleDependencyInstalled","handleComplete","dismiss","addWarning","addSuccess","activatePackage","catch","log","exitCode","$848ea5d074acd496825c50b493d29862$var$confirmPackagesToInstall$2","ungroupedDependencies","groupedDependencies","skipGroups","groupChoices","isPackageDisabled","warn","icon","description","buttons","text","onDidClick","concat","_atom$config$get2","ignoredPackages","config","get","add","set","from","$848ea5d074acd496825c50b493d29862$var$markPackageAsIgnored","onDidDismiss","_notificationView$ele","innerHTML","ungroupedLine","groupLabelLine","groupedList","forEach","listItem","select","subitem","addEventListener","find","marginTop","install","hideUserPrompt","_atom$config$get","packageDependencies","$848ea5d074acd496825c50b493d29862$var$getDependencies","packageStats","stat","isDirectory","parsed","contents","$848ea5d074acd496825c50b493d29862$var$getDependencies$1","subindex","invalidMessage","$848ea5d074acd496825c50b493d29862$var$getDependencies$2","resolvedDependencies","dependenciesToInstall","every","Boolean","chosenDependencies","dep","view","stopOnError","Number","isSafeInteger","result","errors1","$848ea5d074acd496825c50b493d29862$var$pMap","apmPath","getApmPath","stdout","stderr","command","args","spawnedProcess","promise","$22KIE$spawn","output","on","chunk","handleStdout","handleStderr","code","outputStdout","encoding","Buffer","outputStderr","handleChildProcess","$848ea5d074acd496825c50b493d29862$var$spawnInternal","shell","_spawnedProcess","kill","signal","$848ea5d074acd496825c50b493d29862$var$spawn","has","$848ea5d074acd496825c50b493d29862$var$installPackage"],"version":3,"file":"atom-package-deps.85572a72.js.map"}
\ No newline at end of file
diff --git a/dist/compare.2ebd832c.js b/dist/compare.049958b5.js
similarity index 67%
rename from dist/compare.2ebd832c.js
rename to dist/compare.049958b5.js
index 70f3a7c..31c298a 100644
--- a/dist/compare.2ebd832c.js
+++ b/dist/compare.049958b5.js
@@ -1,2 +1,2 @@
-var e=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire4554;e.register("5PzzV",((r,E)=>{var s=e("1pAt5");r.exports=(e,r,E)=>new s(e,E).compare(new s(r,E))})),e.register("1pAt5",(function(r,E){var s=e("1L0zH"),t=e("6npyS"),i=t.MAX_LENGTH,I=t.MAX_SAFE_INTEGER,o=e("6MCo5"),n=o.re,a=o.t,h=e("136oX"),N=e("USEGB").compareIdentifiers;class R{constructor(e,r){if(r=h(r),e instanceof R){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);s("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;const E=e.trim().match(r.loose?n[a.LOOSE]:n[a.FULL]);if(!E)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+E[1],this.minor=+E[2],this.patch=+E[3],this.major>I||0>this.major)throw new TypeError("Invalid major version");if(this.minor>I||0>this.minor)throw new TypeError("Invalid minor version");if(this.patch>I||0>this.patch)throw new TypeError("Invalid patch version");this.prerelease=E[4]?E[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const r=+e;if(r>=0&&I>r)return r}return e})):[],this.build=E[5]?E[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(e){if(s("SemVer.compare",this.version,this.options,e),!(e instanceof R)){if("string"==typeof e&&e===this.version)return 0;e=new R(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof R||(e=new R(e,this.options)),N(this.major,e.major)||N(this.minor,e.minor)||N(this.patch,e.patch)}comparePre(e){if(e instanceof R||(e=new R(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{const E=this.prerelease[r],t=e.prerelease[r];if(s("prerelease compare",r,E,t),void 0===E&&void 0===t)return 0;if(void 0===t)return 1;if(void 0===E)return-1;if(E!==t)return N(E,t)}while(++r)}compareBuild(e){e instanceof R||(e=new R(e,this.options));let r=0;do{const E=this.build[r],t=e.build[r];if(s("prerelease compare",r,E,t),void 0===E&&void 0===t)return 0;if(void 0===t)return 1;if(void 0===E)return-1;if(E!==t)return N(E,t)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",r),this.inc("pre",r);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}r.exports=R})),e.register("1L0zH",((e,r)=>{const E="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=E})),e.register("6npyS",((e,r)=>{e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16}})),e.register("6MCo5",((r,E)=>{var s=e("6npyS").MAX_SAFE_COMPONENT_LENGTH,t=e("1L0zH");const i=(E=r.exports={}).re=[],I=E.src=[],o=E.t={};let n=0;const a=(e,r,E)=>{const s=n++;t(s,r),o[e]=s,I[s]=r,i[s]=RegExp(r,E?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${I[o.NUMERICIDENTIFIER]})\\.(${I[o.NUMERICIDENTIFIER]})\\.(${I[o.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${I[o.NUMERICIDENTIFIERLOOSE]})\\.(${I[o.NUMERICIDENTIFIERLOOSE]})\\.(${I[o.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${I[o.NUMERICIDENTIFIER]}|${I[o.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${I[o.NUMERICIDENTIFIERLOOSE]}|${I[o.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${I[o.PRERELEASEIDENTIFIER]}(?:\\.${I[o.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${I[o.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${I[o.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${I[o.BUILDIDENTIFIER]}(?:\\.${I[o.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${I[o.MAINVERSION]}${I[o.PRERELEASE]}?${I[o.BUILD]}?`),a("FULL",`^${I[o.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${I[o.MAINVERSIONLOOSE]}${I[o.PRERELEASELOOSE]}?${I[o.BUILD]}?`),a("LOOSE",`^${I[o.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",I[o.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),a("XRANGEIDENTIFIER",I[o.NUMERICIDENTIFIER]+"|x|X|\\*"),a("XRANGEPLAIN",`[v=\\s]*(${I[o.XRANGEIDENTIFIER]})(?:\\.(${I[o.XRANGEIDENTIFIER]})(?:\\.(${I[o.XRANGEIDENTIFIER]})(?:${I[o.PRERELEASE]})?${I[o.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${I[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${I[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${I[o.XRANGEIDENTIFIERLOOSE]})(?:${I[o.PRERELEASELOOSE]})?${I[o.BUILD]}?)?)?`),a("XRANGE",`^${I[o.GTLT]}\\s*${I[o.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${I[o.GTLT]}\\s*${I[o.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${s}})(?:\\.(\\d{1,${s}}))?(?:\\.(\\d{1,${s}}))?(?:$|[^\\d])`),a("COERCERTL",I[o.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${I[o.LONETILDE]}\\s+`,!0),E.tildeTrimReplace="$1~",a("TILDE",`^${I[o.LONETILDE]}${I[o.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${I[o.LONETILDE]}${I[o.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${I[o.LONECARET]}\\s+`,!0),E.caretTrimReplace="$1^",a("CARET",`^${I[o.LONECARET]}${I[o.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${I[o.LONECARET]}${I[o.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${I[o.GTLT]}\\s*(${I[o.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${I[o.GTLT]}\\s*(${I[o.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${I[o.GTLT]}\\s*(${I[o.LOOSEPLAIN]}|${I[o.XRANGEPLAIN]})`,!0),E.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${I[o.XRANGEPLAIN]})\\s+-\\s+(${I[o.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${I[o.XRANGEPLAINLOOSE]})\\s+-\\s+(${I[o.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")})),e.register("136oX",((e,r)=>{const E=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:E.filter((r=>e[r])).reduce(((e,r)=>(e[r]=!0,e)),{}):{}})),e.register("USEGB",((e,r)=>{const E=/^[0-9]+$/,s=(e,r)=>{const s=E.test(e),t=E.test(r);return s&&t&&(e=+e,r=+r),e===r?0:s&&!t?-1:t&&!s?1:r>e?-1:1};e.exports={compareIdentifiers:s,rcompareIdentifiers(e,r){return s(r,e)}}}));
-//# sourceMappingURL=compare.2ebd832c.js.map
+var e=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequireaf25;e.register("882zr",((r,s)=>{var E=e("dVD8h");r.exports=(e,r,s)=>new E(e,s).compare(new E(r,s))})),e.register("dVD8h",(function(r,s){var E=e("7smq9"),t=e("inmSx"),i=t.MAX_LENGTH,I=t.MAX_SAFE_INTEGER,o=e("ac3zA"),n=o.re,a=o.t,h=e("4KAsJ"),N=e("ly1Ja").compareIdentifiers;class R{constructor(e,r){if(r=h(r),e instanceof R){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>i)throw new TypeError(`version is longer than ${i} characters`);E("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;const s=e.trim().match(r.loose?n[a.LOOSE]:n[a.FULL]);if(!s)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>I||0>this.major)throw new TypeError("Invalid major version");if(this.minor>I||0>this.minor)throw new TypeError("Invalid minor version");if(this.patch>I||0>this.patch)throw new TypeError("Invalid patch version");this.prerelease=s[4]?s[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const r=+e;if(r>=0&&I>r)return r}return e})):[],this.build=s[5]?s[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(e){if(E("SemVer.compare",this.version,this.options,e),!(e instanceof R)){if("string"==typeof e&&e===this.version)return 0;e=new R(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof R||(e=new R(e,this.options)),N(this.major,e.major)||N(this.minor,e.minor)||N(this.patch,e.patch)}comparePre(e){if(e instanceof R||(e=new R(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{const s=this.prerelease[r],t=e.prerelease[r];if(E("prerelease compare",r,s,t),void 0===s&&void 0===t)return 0;if(void 0===t)return 1;if(void 0===s)return-1;if(s!==t)return N(s,t)}while(++r)}compareBuild(e){e instanceof R||(e=new R(e,this.options));let r=0;do{const s=this.build[r],t=e.build[r];if(E("prerelease compare",r,s,t),void 0===s&&void 0===t)return 0;if(void 0===t)return 1;if(void 0===s)return-1;if(s!==t)return N(s,t)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",r),this.inc("pre",r);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this}}r.exports=R})),e.register("7smq9",((e,r)=>{const s="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=s})),e.register("inmSx",((e,r)=>{e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16}})),e.register("ac3zA",((r,s)=>{var E=e("inmSx").MAX_SAFE_COMPONENT_LENGTH,t=e("7smq9");const i=(s=r.exports={}).re=[],I=s.src=[],o=s.t={};let n=0;const a=(e,r,s)=>{const E=n++;t(E,r),o[e]=E,I[E]=r,i[E]=RegExp(r,s?"g":void 0)};a("NUMERICIDENTIFIER","0|[1-9]\\d*"),a("NUMERICIDENTIFIERLOOSE","[0-9]+"),a("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),a("MAINVERSION",`(${I[o.NUMERICIDENTIFIER]})\\.(${I[o.NUMERICIDENTIFIER]})\\.(${I[o.NUMERICIDENTIFIER]})`),a("MAINVERSIONLOOSE",`(${I[o.NUMERICIDENTIFIERLOOSE]})\\.(${I[o.NUMERICIDENTIFIERLOOSE]})\\.(${I[o.NUMERICIDENTIFIERLOOSE]})`),a("PRERELEASEIDENTIFIER",`(?:${I[o.NUMERICIDENTIFIER]}|${I[o.NONNUMERICIDENTIFIER]})`),a("PRERELEASEIDENTIFIERLOOSE",`(?:${I[o.NUMERICIDENTIFIERLOOSE]}|${I[o.NONNUMERICIDENTIFIER]})`),a("PRERELEASE",`(?:-(${I[o.PRERELEASEIDENTIFIER]}(?:\\.${I[o.PRERELEASEIDENTIFIER]})*))`),a("PRERELEASELOOSE",`(?:-?(${I[o.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${I[o.PRERELEASEIDENTIFIERLOOSE]})*))`),a("BUILDIDENTIFIER","[0-9A-Za-z-]+"),a("BUILD",`(?:\\+(${I[o.BUILDIDENTIFIER]}(?:\\.${I[o.BUILDIDENTIFIER]})*))`),a("FULLPLAIN",`v?${I[o.MAINVERSION]}${I[o.PRERELEASE]}?${I[o.BUILD]}?`),a("FULL",`^${I[o.FULLPLAIN]}$`),a("LOOSEPLAIN",`[v=\\s]*${I[o.MAINVERSIONLOOSE]}${I[o.PRERELEASELOOSE]}?${I[o.BUILD]}?`),a("LOOSE",`^${I[o.LOOSEPLAIN]}$`),a("GTLT","((?:<|>)?=?)"),a("XRANGEIDENTIFIERLOOSE",I[o.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*"),a("XRANGEIDENTIFIER",I[o.NUMERICIDENTIFIER]+"|x|X|\\*"),a("XRANGEPLAIN",`[v=\\s]*(${I[o.XRANGEIDENTIFIER]})(?:\\.(${I[o.XRANGEIDENTIFIER]})(?:\\.(${I[o.XRANGEIDENTIFIER]})(?:${I[o.PRERELEASE]})?${I[o.BUILD]}?)?)?`),a("XRANGEPLAINLOOSE",`[v=\\s]*(${I[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${I[o.XRANGEIDENTIFIERLOOSE]})(?:\\.(${I[o.XRANGEIDENTIFIERLOOSE]})(?:${I[o.PRERELEASELOOSE]})?${I[o.BUILD]}?)?)?`),a("XRANGE",`^${I[o.GTLT]}\\s*${I[o.XRANGEPLAIN]}$`),a("XRANGELOOSE",`^${I[o.GTLT]}\\s*${I[o.XRANGEPLAINLOOSE]}$`),a("COERCE",`(^|[^\\d])(\\d{1,${E}})(?:\\.(\\d{1,${E}}))?(?:\\.(\\d{1,${E}}))?(?:$|[^\\d])`),a("COERCERTL",I[o.COERCE],!0),a("LONETILDE","(?:~>?)"),a("TILDETRIM",`(\\s*)${I[o.LONETILDE]}\\s+`,!0),s.tildeTrimReplace="$1~",a("TILDE",`^${I[o.LONETILDE]}${I[o.XRANGEPLAIN]}$`),a("TILDELOOSE",`^${I[o.LONETILDE]}${I[o.XRANGEPLAINLOOSE]}$`),a("LONECARET","(?:\\^)"),a("CARETTRIM",`(\\s*)${I[o.LONECARET]}\\s+`,!0),s.caretTrimReplace="$1^",a("CARET",`^${I[o.LONECARET]}${I[o.XRANGEPLAIN]}$`),a("CARETLOOSE",`^${I[o.LONECARET]}${I[o.XRANGEPLAINLOOSE]}$`),a("COMPARATORLOOSE",`^${I[o.GTLT]}\\s*(${I[o.LOOSEPLAIN]})$|^$`),a("COMPARATOR",`^${I[o.GTLT]}\\s*(${I[o.FULLPLAIN]})$|^$`),a("COMPARATORTRIM",`(\\s*)${I[o.GTLT]}\\s*(${I[o.LOOSEPLAIN]}|${I[o.XRANGEPLAIN]})`,!0),s.comparatorTrimReplace="$1$2$3",a("HYPHENRANGE",`^\\s*(${I[o.XRANGEPLAIN]})\\s+-\\s+(${I[o.XRANGEPLAIN]})\\s*$`),a("HYPHENRANGELOOSE",`^\\s*(${I[o.XRANGEPLAINLOOSE]})\\s+-\\s+(${I[o.XRANGEPLAINLOOSE]})\\s*$`),a("STAR","(<|>)?=?\\s*\\*"),a("GTE0","^\\s*>=\\s*0.0.0\\s*$"),a("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")})),e.register("4KAsJ",((e,r)=>{const s=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:s.filter((r=>e[r])).reduce(((e,r)=>(e[r]=!0,e)),{}):{}})),e.register("ly1Ja",((e,r)=>{const s=/^[0-9]+$/,E=(e,r)=>{const E=s.test(e),t=s.test(r);return E&&t&&(e=+e,r=+r),e===r?0:E&&!t?-1:t&&!E?1:r>e?-1:1};e.exports={compareIdentifiers:E,rcompareIdentifiers(e,r){return E(r,e)}}}));
+//# sourceMappingURL=compare.049958b5.js.map
diff --git a/dist/compare.049958b5.js.map b/dist/compare.049958b5.js.map
new file mode 100644
index 0000000..43e6b80
--- /dev/null
+++ b/dist/compare.049958b5.js.map
@@ -0,0 +1 @@
+{"mappings":"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","sources":["node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/compare.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/classes/semver.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/debug.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/constants.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/re.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/parse-options.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/identifiers.js"],"sourcesContent":["const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n"],"names":["module","exports","a","b","loose","$dVD8h","compare","$inmSx","MAX_LENGTH","MAX_SAFE_INTEGER","$ac3zA","re","t","compareIdentifiers","$a23ef4266495bbf9$var$SemVer","version","options","$4KAsJ","includePrerelease","TypeError","length","$a23ef4266495bbf9$require$MAX_LENGTH","$7smq9","this","m","trim","match","$a23ef4266495bbf9$require$re","$a23ef4266495bbf9$require$t","LOOSE","FULL","raw","major","minor","patch","$a23ef4266495bbf9$require$MAX_SAFE_INTEGER","prerelease","split","map","id","test","num","build","format","join","toString","other","compareMain","comparePre","other1","$a23ef4266495bbf9$require$compareIdentifiers","other2","i","undefined","compareBuild","other3","inc","release","identifier","push","isNaN","Error","$56dc8a3a1e9f5fff$var$debug","process","env","NODE_DEBUG","args","console","error","Number","MAX_SAFE_COMPONENT_LENGTH","src","R","createToken","name","value","isGlobal","index","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","$76bdcbe5320ddd55$require$MAX_SAFE_COMPONENT_LENGTH","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","$3757bdf88a41a032$var$opts","options1","filter","k","reduce","$fafe1d01df1a48c7$var$numeric","$fafe1d01df1a48c7$var$compareIdentifiers","anum","bnum"],"version":3,"file":"compare.049958b5.js.map"}
\ No newline at end of file
diff --git a/dist/compare.2ebd832c.js.map b/dist/compare.2ebd832c.js.map
deleted file mode 100644
index 30fd14a..0000000
--- a/dist/compare.2ebd832c.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"mappings":"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","sources":["node_modules/.pnpm/semver@7.3.5/node_modules/semver/functions/compare.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/classes/semver.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/debug.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/constants.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/re.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/parse-options.js","node_modules/.pnpm/semver@7.3.5/node_modules/semver/internal/identifiers.js"],"sourcesContent":["const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.format()\n this.raw = this.version\n return this\n }\n}\n\nmodule.exports = SemVer\n","const debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\nmodule.exports = {\n SEMVER_SPEC_VERSION,\n MAX_LENGTH,\n MAX_SAFE_INTEGER,\n MAX_SAFE_COMPONENT_LENGTH\n}\n","const { MAX_SAFE_COMPONENT_LENGTH } = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst createToken = (name, value, isGlobal) => {\n const index = R++\n debug(index, value)\n t[name] = index\n src[index] = value\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*')\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\.0\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\.0\\.0-0\\\\s*$')\n","// parse out just the options we care about so we always get a consistent\n// obj with keys in a consistent order.\nconst opts = ['includePrerelease', 'loose', 'rtl']\nconst parseOptions = options =>\n !options ? {}\n : typeof options !== 'object' ? { loose: true }\n : opts.filter(k => options[k]).reduce((options, k) => {\n options[k] = true\n return options\n }, {})\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n}\n"],"names":["module","exports","a","b","loose","$1pAt5","compare","$6npyS","MAX_LENGTH","MAX_SAFE_INTEGER","$6MCo5","re","t","compareIdentifiers","$2e6ad4e169e2467c00c235be67c05082$var$SemVer","version","options","$136oX","includePrerelease","TypeError","length","$2e6ad4e169e2467c00c235be67c05082$require$MAX_LENGTH","$1L0zH","m","trim","match","$2e6ad4e169e2467c00c235be67c05082$require$re","$2e6ad4e169e2467c00c235be67c05082$require$t","LOOSE","FULL","raw","major","minor","patch","$2e6ad4e169e2467c00c235be67c05082$require$MAX_SAFE_INTEGER","this","prerelease","split","map","id","test","num","build","format","join","toString","other","compareMain","comparePre","$2e6ad4e169e2467c00c235be67c05082$require$compareIdentifiers","i","undefined","compareBuild","inc","release","identifier","push","isNaN","Error","$39c4f6f454aca34948e1ad143cefe9fa$var$debug","process","env","NODE_DEBUG","args","console","error","Number","MAX_SAFE_COMPONENT_LENGTH","src","R","createToken","name","value","isGlobal","index","RegExp","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","$dee825ef1e4665b5f452455d2750201a$require$MAX_SAFE_COMPONENT_LENGTH","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","$22805dad65507c0700a7ffe47cecab09$var$opts","filter","k","reduce","options1","$1e24f3556ca3a885ffcf100d6955b0e1$var$numeric","$1e24f3556ca3a885ffcf100d6955b0e1$var$compareIdentifiers","anum","bnum"],"version":3,"file":"compare.2ebd832c.js.map"}
\ No newline at end of file
diff --git a/dist/darwin-x64/serve-d b/dist/darwin-x64/serve-d
index 22e00a4..1df8b85 100755
Binary files a/dist/darwin-x64/serve-d and b/dist/darwin-x64/serve-d differ
diff --git a/dist/ide-d.js b/dist/ide-d.js
index b3ccc86..33d3dd3 100644
--- a/dist/ide-d.js
+++ b/dist/ide-d.js
@@ -1,2 +1,2 @@
-var e=require("atom-languageclient").AutoLanguageClient,a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},r={},s=a.parcelRequire4554;null==s&&((s=e=>{if(e in t)return t[e].exports;if(e in r){let a=r[e];delete r[e];let s={id:e,exports:{}};return t[e]=s,a.call(s.exports,s,s.exports),s.exports}var a=Error("Cannot find module '"+e+"'");throw a.code="MODULE_NOT_FOUND",a}).register=(e,a)=>{r[e]=a},a.parcelRequire4554=s),s.register("5EKin",((e,a)=>{e.exports=Promise.resolve(require("./atom-package-deps.85572a72.js")).then((()=>s("428aZ")))})),s.register("7kOdm",((e,a)=>{e.exports=Promise.resolve(require("./installation.f7c50dd8.js")).then((()=>s("5jKoN")))})),module.exports=new class extends e{async activate(){super.activate(),atom.packages.isPackageLoaded("atom-ide-base")||(await(await s("5EKin")).install("ide-d",!0),atom.packages.enablePackage("atom-ide-base"),atom.notifications.addSuccess("ide-d: atom-ide-base was installed and enabled..."))}getGrammarScopes(){return["source.d","D"]}getLanguageName(){return"D"}getServerName(){return"serve-d"}getConnectionType(){return"stdio"}async startServerProcess(e){const{installServeD:a}=await s("7kOdm"),t=await a();return super.spawn(t,["--require","workspaces"],{cwd:e})}};
+var e=require("atom-languageclient"),a=require("atom-package-deps"),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},t={},n={},s=r.parcelRequireaf25;null==s&&((s=e=>{if(e in t)return t[e].exports;if(e in n){var a=n[e];delete n[e];var r={id:e,exports:{}};return t[e]=r,a.call(r.exports,r,r.exports),r.exports}var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}).register=(e,a)=>{n[e]=a},r.parcelRequireaf25=s),s.register("hngDo",((e,a)=>{e.exports=Promise.resolve(require("./installation.5e78f2a5.js")).then((()=>s("1xhaw")))})),module.exports=new class extends e.AutoLanguageClient{async activate(){super.activate(),atom.packages.isPackageLoaded("atom-ide-base")||(await(await a).install("ide-d",!0),atom.packages.enablePackage("atom-ide-base"),atom.notifications.addSuccess("ide-d: atom-ide-base was installed and enabled..."))}getGrammarScopes(){return["source.d","D"]}getLanguageName(){return"D"}getServerName(){return"serve-d"}getConnectionType(){return"stdio"}async startServerProcess(e){const{installServeD:a}=await s("hngDo"),r=await a();return super.spawn(r,["--require","workspaces"],{cwd:e})}};
//# sourceMappingURL=ide-d.js.map
diff --git a/dist/ide-d.js.map b/dist/ide-d.js.map
index 76e1c10..cd175a3 100644
--- a/dist/ide-d.js.map
+++ b/dist/ide-d.js.map
@@ -1 +1 @@
-{"mappings":"kiBAAAA,EAAAC,QAAkBC,QAAQC,QAAOC,QAAA,qEAAgGC,MAAI,IAAOC,EAAa,0CCAzJN,EAAAC,QAAkBC,QAAQC,QAAOC,QAAA,gEAA2FC,MAAI,IAAOC,EAAa,cC6CpJN,OAAAC,QAAc,kBA3CgBM,mBAE1BC,MAAMC,WACDC,KAAKC,SAASC,gBAAe,+BAGnBN,EAAA,UAA6BO,QAAO,SAAU,GAE3DH,KAAKC,SAASG,cAAa,iBAC3BJ,KAAKK,cAAcC,WAAU,sDAKjCC,0CAGAC,4BAGAC,gCAIAC,kCAG0CC,yBAEjBC,uBAEfC,SAAwBjB,EAAA,SAE1BkB,QAAmBD,WAEVf,MAAMiB,MAAMD,EAAU,4BACnCE,IAAKJ","sources":["node_modules/.pnpm/@parcel+runtime-js@2.0.0-beta.3.1/node_modules/@parcel/runtime-js/lib/runtime-791b6a74e6c0d3c9b9b7928576a92f31.js","node_modules/.pnpm/@parcel+runtime-js@2.0.0-beta.3.1/node_modules/@parcel/runtime-js/lib/runtime-bb7aa4092766e27312d0162cda9f2149.js","src/ide-d.ts"],"sourcesContent":["module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"atom-package-deps.85572a72.js\"))).then(() => parcelRequire('428aZ'));","module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"installation.f7c50dd8.js\"))).then(() => parcelRequire('5jKoN'));","import { AutoLanguageClient } from \"atom-languageclient\"\n\nclass DLanguageClient extends AutoLanguageClient {\n async activate() {\n super.activate()\n if (!atom.packages.isPackageLoaded(\"atom-ide-base\")) {\n // install if not installed\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n await (await import(\"atom-package-deps\")).install(\"ide-d\", true)\n // enable if disabled\n atom.packages.enablePackage(\"atom-ide-base\")\n atom.notifications.addSuccess(\"ide-d: atom-ide-base was installed and enabled...\")\n }\n }\n\n /* eslint-disable class-methods-use-this */\n getGrammarScopes() {\n return [\"source.d\", \"D\"]\n }\n getLanguageName() {\n return \"D\"\n }\n getServerName() {\n return \"serve-d\"\n }\n\n getConnectionType(): \"stdio\" {\n return \"stdio\"\n }\n /* eslint-enable class-methods-use-this */\n\n async startServerProcess(projectPath: string) {\n // import only when a D file is opened.\n const { installServeD } = await import(\"./installation\")\n\n const serveDPath = await installServeD()\n\n const serveD = super.spawn(serveDPath, [\"--require\", \"workspaces\"], {\n cwd: projectPath,\n })\n\n return serveD\n }\n}\n\nmodule.exports = new DLanguageClient()\n"],"names":["module","exports","Promise","resolve","require","then","parcelRequire","$2r4tT$AutoLanguageClient","super","activate","atom","packages","isPackageLoaded","install","enablePackage","notifications","addSuccess","getGrammarScopes","getLanguageName","getServerName","getConnectionType","startServerProcess","projectPath","installServeD","serveDPath","spawn","cwd"],"version":3,"file":"ide-d.js.map"}
\ No newline at end of file
+{"mappings":"8iBAAAA,EAAAC,QAAkBC,QAAQC,QAAOC,QAAqB,gDAAsDC,MAAI,IAAOC,EAAc,cC6CrIN,OAAAC,QAAiB,kBA3CaM,EAAAC,oCAE1BC,MAAMC,WACDC,KAAKC,SAASC,gBAAgB,+BAGpBC,GAA6BC,QAAQ,SAAS,GAE3DJ,KAAKC,SAASI,cAAc,iBAC5BL,KAAKM,cAAcC,WAAW,sDAKlCC,mBACE,MAAO,CAAC,WAAY,KAEtBC,kBACE,MAAO,IAETC,gBACE,MAAO,UAGTC,oBACE,MAAO,QAEiCC,yBAEjBC,GAEvB,MAAOC,cAACA,SAAwBnB,EAAA,SAE1BoB,QAAmBD,IAMzB,OAJehB,MAAMkB,MAAMD,EAAY,CAAC,YAAa,cAAe,CAClEE,IAAKJ","sources":["node_modules/.pnpm/@parcel+runtime-js@2.0.1_@parcel+core@2.0.1/node_modules/@parcel/runtime-js/lib/runtime-0557bf50dddbdc7f.js","src/ide-d.ts"],"sourcesContent":["module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"installation.5e78f2a5.js\"))).then(() => parcelRequire('1xhaw'));","import { AutoLanguageClient } from \"atom-languageclient\"\n\nclass DLanguageClient extends AutoLanguageClient {\n async activate() {\n super.activate()\n if (!atom.packages.isPackageLoaded(\"atom-ide-base\")) {\n // install if not installed\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n await (await import(\"atom-package-deps\")).install(\"ide-d\", true)\n // enable if disabled\n atom.packages.enablePackage(\"atom-ide-base\")\n atom.notifications.addSuccess(\"ide-d: atom-ide-base was installed and enabled...\")\n }\n }\n\n /* eslint-disable class-methods-use-this */\n getGrammarScopes() {\n return [\"source.d\", \"D\"]\n }\n getLanguageName() {\n return \"D\"\n }\n getServerName() {\n return \"serve-d\"\n }\n\n getConnectionType(): \"stdio\" {\n return \"stdio\"\n }\n /* eslint-enable class-methods-use-this */\n\n async startServerProcess(projectPath: string) {\n // import only when a D file is opened.\n const { installServeD } = await import(\"./installation\")\n\n const serveDPath = await installServeD()\n\n const serveD = super.spawn(serveDPath, [\"--require\", \"workspaces\"], {\n cwd: projectPath,\n })\n\n return serveD\n }\n}\n\nmodule.exports = new DLanguageClient()\n"],"names":["module","exports","Promise","resolve","require","then","parcelRequire","$cljxE$atomlanguageclient","AutoLanguageClient","super","activate","atom","packages","isPackageLoaded","$cljxE$atompackagedeps","install","enablePackage","notifications","addSuccess","getGrammarScopes","getLanguageName","getServerName","getConnectionType","startServerProcess","projectPath","installServeD","serveDPath","spawn","cwd"],"version":3,"file":"ide-d.js.map"}
\ No newline at end of file
diff --git a/dist/installation.5e78f2a5.js b/dist/installation.5e78f2a5.js
new file mode 100644
index 0000000..530f071
--- /dev/null
+++ b/dist/installation.5e78f2a5.js
@@ -0,0 +1,2 @@
+var e=require("fs-extra"),r=require("path"),i=require("child_process"),t=require("util"),o=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequireaf25;o.register("1xhaw",((n,a)=>{function s(r){return e.pathExists(r)}async function d(e){try{var r;return null===(r=(await l(e,["--version"])).stderr.match(/v(\d\S*)\s/))||void 0===r?void 0:r[1]}catch(e){return void console.error(e)}}async function c(){const i=r.join(r.dirname(__dirname),"dist"),t="serve-d"+("win32"===process.platform?".exe":""),n=r.join(i,`${process.platform}-${process.arch}`),a=await(async()=>{const i=process.env.HOME;if("string"==typeof i&&""!==i&&"linux"===process.platform)return await e.pathExists(r.join(i,".local","share"))?r.join(i,".local","share","code-d","bin"):r.join(i,".code-d","bin");if("win32"===process.platform){const e=process.env.APPDATA;if("string"==typeof e&&""!==e)return r.join(e,"code-d","bin")}else if("string"==typeof i&&""!==i)return r.join(i,".code-d","bin");return""})(),c=r.join(a,t);if(n){const e=r.join(n,t);await s(c)&&await(async(e,r)=>{const i=await o("aee7V"),[t,n]=await Promise.all([d(e),d(r)]);return"string"==typeof t&&"string"==typeof n&&""!==t&&""!==n&&-1!==i(t,n)})(c,e)||await(async(e,r)=>{const{copy:i}=await $3ff1ff004a9ddf5d$importAsync$8ed180d50d8d002d;atom.notifications.addInfo("Installing/Updating D servers..."),await i(e,r,{overwrite:!0}),atom.notifications.addSuccess("D servers was installed/updated")})(n,a)}else await s(c)||atom.notifications.addError(`serve-d binary is not available for ${process.platform}.\n Please built it from the source, place it under ${a}, and restart Atom.`);return c}Object.defineProperty(n.exports,"installServeD",{get:()=>c,set:void 0,enumerable:!0,configurable:!0});const l=t.promisify(i.execFile)})),o.register("aee7V",((e,r)=>{e.exports=Promise.resolve(require("./compare.049958b5.js")).then((()=>o("882zr")))}));
+//# sourceMappingURL=installation.5e78f2a5.js.map
diff --git a/dist/installation.5e78f2a5.js.map b/dist/installation.5e78f2a5.js.map
new file mode 100644
index 0000000..07a4e68
--- /dev/null
+++ b/dist/installation.5e78f2a5.js.map
@@ -0,0 +1 @@
+{"mappings":"mSA0BSA,EAAkBC,GACzB,OAAOC,EAAAC,WAAWF,GAGaG,eAClBC,EAAiBC,GAC9B,QAEkBC,EAChB,OAD4B,QAAZA,SADMC,EAASF,EAAM,CAAC,eAAeG,OAC9BC,MAAK,qBAAZ,IAAAH,OAAA,EAAAA,EAA6B,GAE7C,MAAOI,GAEP,YADAC,QAAQC,MAAMF,mBA+BIG,IACpB,MAAMC,EAAaC,EAAAC,KAAKD,EAAAE,QAAQC,WAAY,QAGtCC,EAAiB,WADmB,UAArBC,QAAQC,SAAuB,OAAS,IAGvDC,EAAsBP,EAAAC,KAAKF,EAAU,GAAKM,QAAQC,YAAYD,QAAQG,QAEtEC,kBApEN,MAAMC,EAAOL,QAAQM,IAAIC,KACzB,GAAoB,iBAATF,GAA8B,KAATA,GAAoC,UAArBL,QAAQC,SACrD,aAAUpB,EAAAC,WAAWa,EAAAC,KAAKS,EAAM,SAAU,UACjCV,EAAAC,KAAKS,EAAM,SAAU,QAAS,SAAU,OAExCV,EAAAC,KAAKS,EAAM,UAAW,OAE1B,GAAyB,UAArBL,QAAQC,SAAsB,CACvC,MAAMO,EAAUR,QAAQM,IAAIG,QAC5B,GAAuB,iBAAZD,GAAoC,KAAZA,EACjC,OAAOb,EAAAC,KAAKY,EAAS,SAAU,YAE5B,GAAoB,iBAATH,GAA8B,KAATA,EACrC,OAAOV,EAAAC,KAAKS,EAAM,UAAW,OAE/B,MAAO,IAqDsBK,GACvB9B,EAAae,EAAAC,KAAKQ,EAAgBL,GAExC,GAAIG,EAAqB,CACvB,MAAMS,EAAoBhB,EAAAC,KAAKM,EAAqBH,SACxCpB,EAAkBC,SAvCwCG,OAC1C6B,EAAmBC,KAEjD,MAAMC,QAAuBC,EAAA,UACtBC,EAAcC,SAAuBC,QAAQC,IAAI,CAACnC,EAAiB4B,GAAY5B,EAAiB6B,KACvG,MAC0B,iBAAjBG,GACkB,iBAAlBC,GACU,KAAjBD,GACkB,KAAlBC,IAEsD,IAA/CH,EAAcE,EAAcC,IA4BmBG,CAAiBxC,EAAY+B,gBArB7DT,EAA6BE,KACrD,MAAOiB,KAACA,SAAeC,+CACvBC,KAAKC,cAAcC,QAAQ,0CAErBJ,EAAKnB,EAAqBE,EAAgB,CAAEsB,WAAW,IAC7DH,KAAKC,cAAcG,WAAW,oCAiBpBC,CAAW1B,EAAqBE,cAG5BzB,EAAkBC,IAC5B2C,KAAKC,cAAcK,SAAQ,uCACc7B,QAAQC,sEAKpCG,wBAClB,OAAAxB,wGAxFD,MAAMO,EAAW2C,EAAAC,UAAUC,EAAAC,yCCL3BC,EAAAC,QAAkBjB,QAAQkB,QAAOC,QAAqB,2CAAiDC,MAAI,IAAOvB,EAAc","sources":["src/installation.ts","node_modules/.pnpm/@parcel+runtime-js@2.0.1_@parcel+core@2.0.1/node_modules/@parcel/runtime-js/lib/runtime-214affa8b255b064.js"],"sourcesContent":["import { pathExists } from \"fs-extra\"\nimport { join, dirname } from \"path\"\n\nimport { execFile as execFileRaw } from \"child_process\"\nimport { promisify } from \"util\"\nconst execFile = promisify(execFileRaw)\n\nasync function getCodeDBinFolder() {\n const home = process.env.HOME\n if (typeof home === \"string\" && home !== \"\" && process.platform === \"linux\") {\n if (await pathExists(join(home, \".local\", \"share\"))) {\n return join(home, \".local\", \"share\", \"code-d\", \"bin\")\n } else {\n return join(home, \".code-d\", \"bin\")\n }\n } else if (process.platform === \"win32\") {\n const appdata = process.env.APPDATA\n if (typeof appdata === \"string\" && appdata !== \"\") {\n return join(appdata, \"code-d\", \"bin\")\n }\n } else if (typeof home === \"string\" && home !== \"\") {\n return join(home, \".code-d\", \"bin\")\n }\n return \"\"\n}\n\nfunction isServeDInstalled(serveDPath: string) {\n return pathExists(serveDPath)\n}\n\n/** Get the version of serve-d */\nasync function getServeDVersion(file: string) {\n try {\n const output = (await execFile(file, [\"--version\"])).stderr\n const version = output.match(/v(\\d\\S*)\\s/)?.[1]\n return version\n } catch (e) {\n console.error(e)\n return undefined\n }\n}\n\n/** Check if the given serve-d is up to date against the target version */\nasync function isServeDUpToDate(givenFile: string, targetFile: string) {\n // @ts-ignore\n const semverCompare = (await import(\"semver/functions/compare\")) as typeof import(\"semver/functions/compare\")\n const [givenVersion, targetVersion] = await Promise.all([getServeDVersion(givenFile), getServeDVersion(targetFile)])\n if (\n typeof givenVersion === \"string\" &&\n typeof targetVersion === \"string\" &&\n givenVersion !== \"\" &&\n targetVersion !== \"\"\n ) {\n return semverCompare(givenVersion, targetVersion) !== -1\n } else {\n // assume given version is old\n return false\n }\n}\n\nasync function copyServeD(bundledServerFolder: string, codeDBinFolder: string) {\n const { copy } = await import(\"fs-extra\")\n atom.notifications.addInfo(\"Installing/Updating D servers...\")\n // copy the whole served folder\n await copy(bundledServerFolder, codeDBinFolder, { overwrite: true })\n atom.notifications.addSuccess(\"D servers was installed/updated\")\n}\n\nexport async function installServeD() {\n const distFolder = join(dirname(__dirname), \"dist\")\n\n const exeExtention = process.platform === \"win32\" ? \".exe\" : \"\"\n const serveDExeFileName = `serve-d${exeExtention}`\n\n const bundledServerFolder = join(distFolder, `${process.platform}-${process.arch}`)\n\n const codeDBinFolder = await getCodeDBinFolder()\n const serveDPath = join(codeDBinFolder, serveDExeFileName)\n\n if (bundledServerFolder) {\n const bundledServeDPath = join(bundledServerFolder, serveDExeFileName)\n if (!(await isServeDInstalled(serveDPath)) || !(await isServeDUpToDate(serveDPath, bundledServeDPath))) {\n await copyServeD(bundledServerFolder, codeDBinFolder)\n }\n } else {\n if (!(await isServeDInstalled(serveDPath))) {\n atom.notifications.addError(\n `serve-d binary is not available for ${process.platform}.\n Please built it from the source, place it under ${codeDBinFolder}, and restart Atom.`\n )\n }\n }\n return serveDPath\n}\n","module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"compare.049958b5.js\"))).then(() => parcelRequire('882zr'));"],"names":["$3ff1ff004a9ddf5d$var$isServeDInstalled","serveDPath","$bJ3MD$fsextra","pathExists","async","$3ff1ff004a9ddf5d$var$getServeDVersion","file","ref","$3ff1ff004a9ddf5d$var$execFile","stderr","match","e","console","error","$3ff1ff004a9ddf5d$export$5e5a8196367a5801","distFolder","$bJ3MD$path","join","dirname","__dirname","serveDExeFileName","process","platform","bundledServerFolder","arch","codeDBinFolder","home","env","HOME","appdata","APPDATA","$3ff1ff004a9ddf5d$var$getCodeDBinFolder","bundledServeDPath","givenFile","targetFile","semverCompare","parcelRequire","givenVersion","targetVersion","Promise","all","$3ff1ff004a9ddf5d$var$isServeDUpToDate","copy","$3ff1ff004a9ddf5d$importAsync$8ed180d50d8d002d","atom","notifications","addInfo","overwrite","addSuccess","$3ff1ff004a9ddf5d$var$copyServeD","addError","$bJ3MD$util","promisify","$bJ3MD$child_process","execFile","module","exports","resolve","require","then"],"version":3,"file":"installation.5e78f2a5.js.map"}
\ No newline at end of file
diff --git a/dist/installation.f7c50dd8.js b/dist/installation.f7c50dd8.js
deleted file mode 100644
index 40d222d..0000000
--- a/dist/installation.f7c50dd8.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var e=require("fs-extra").pathExists,r=require("path"),t=r.join,i=r.dirname,a=require("child_process").execFile,o=require("util").promisify,s=("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{}).parcelRequire4554;s.register("5jKoN",((r,n)=>{function c(r){return e(r)}async function d(e){try{var r;return null===(r=(await f(e,["--version"])).stderr.match(/v(\d\S*)\s/))||void 0===r?void 0:r[1]}catch(e){return void console.error(e)}}async function l(){const r=t(i(__dirname),"dist"),a="serve-d"+("win32"===process.platform?".exe":""),o=t(r,`${process.platform}-${process.arch}`),n=await(async()=>{const r=process.env.HOME;if("string"==typeof r&&""!==r&&"linux"===process.platform)return await e(t(r,".local","share"))?t(r,".local","share","code-d","bin"):t(r,".code-d","bin");if("win32"===process.platform){const e=process.env.APPDATA;if("string"==typeof e&&""!==e)return t(e,"code-d","bin")}else if("string"==typeof r&&""!==r)return t(r,".code-d","bin");return""})(),l=t(n,a);if(o){const e=t(o,a);await c(l)&&await(async(e,r)=>{const t=await s("3ByGv"),[i,a]=await Promise.all([d(e),d(r)]);return"string"==typeof i&&"string"==typeof a&&""!==i&&""!==a&&-1!==t(i,a)})(l,e)||await(async(e,r)=>{const{copy:t}=await $cba7abbdfc042951cbd6213878ea3ff4$importAsync$5f67160147d256a6;atom.notifications.addInfo("Installing/Updating D servers..."),await t(e,r,{overwrite:!0}),atom.notifications.addSuccess("D servers was installed/updated")})(o,n)}else await c(l)||atom.notifications.addError(`serve-d binary is not available for ${process.platform}.\n Please built it from the source, place it under ${n}, and restart Atom.`);return l}Object.defineProperty(r.exports,"installServeD",{get:()=>l,set:void 0,enumerable:!0,configurable:!0});const f=o(a)})),s.register("3ByGv",((e,r)=>{e.exports=Promise.resolve(require("./compare.2ebd832c.js")).then((()=>s("5PzzV")))}));
-//# sourceMappingURL=installation.f7c50dd8.js.map
diff --git a/dist/installation.f7c50dd8.js.map b/dist/installation.f7c50dd8.js.map
deleted file mode 100644
index df7faf1..0000000
--- a/dist/installation.f7c50dd8.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"mappings":"sVA0BSA,EAAkBC,UAClBC,EAAWD,GAGaE,eAClBC,EAAiBC,WAGZC,SAAY,QAAZA,SADMC,EAASF,EAAI,gBAAkBG,OAC9BC,MAAK,qBAAc,IAA1BH,OAA+B,EAA/BA,EAA6B,SAEtCI,eACPC,QAAQC,MAAMF,mBA+BIG,UACdC,EAAaC,EAAKC,EAAQC,WAAS,QAGnCC,EAAiB,WADc,UAAhBC,QAAQC,SAAoB,OAAS,IAGpDC,EAAsBN,EAAKD,EAAU,GAAKK,QAAQC,YAAYD,QAAQG,QAEtEC,wBApEAC,EAAOL,QAAQM,IAAIC,QACV,iBAAJF,GAAyB,KAAJA,GAA+B,UAAhBL,QAAQC,sBAC3ClB,EAAWa,EAAKS,EAAI,SAAU,UAC/BT,EAAKS,EAAI,SAAU,QAAS,SAAU,OAEtCT,EAAKS,EAAI,UAAW,UAEJ,UAAhBL,QAAQC,SAAoB,OAC/BO,EAAUR,QAAQM,IAAIG,WACV,iBAAPD,GAA+B,KAAPA,EAAO,OACjCZ,EAAKY,EAAO,SAAU,eAEX,iBAAJH,GAAyB,KAAJA,EAAI,OAClCT,EAAKS,EAAI,UAAW,iBAuDAK,GACvB5B,EAAac,EAAKQ,EAAgBL,MAEpCG,EAAmB,OACfS,EAAoBf,EAAKM,EAAqBH,SACxClB,EAAkBC,SAvCwCE,OAC1C4B,EAAmBC,WAE3CC,QAAuBC,EAAA,UACtBC,EAAcC,SAAuBC,QAAQC,IAAG,CAAElC,EAAiB2B,GAAY3B,EAAiB4B,WAElF,iBAAZG,GACa,iBAAbC,GACK,KAAZD,GACa,KAAbC,IAEsD,IAA/CH,EAAcE,EAAcC,IA4BmBG,CAAiBtC,EAAY6B,gBArB7DT,EAA6BE,gBAC7CiB,SAAeC,+DACvBC,KAAKC,cAAcC,QAAO,0CAEpBJ,EAAKnB,EAAqBE,EAAc,CAAIsB,WAAW,IAC7DH,KAAKC,cAAcG,WAAU,oCAiBnBC,CAAW1B,EAAqBE,cAG5BvB,EAAkBC,IAC5ByC,KAAKC,cAAcK,SAAQ,uCACc7B,QAAQC,sEACGG,+BAIjDtB,8GAvFHM,EAAW0C,EAAUC,kCCL3BC,EAAAC,QAAkBf,QAAQgB,QAAOC,QAAA,2DAAsFC,MAAI,IAAOrB,EAAa","sources":["src/installation.ts","node_modules/.pnpm/@parcel+runtime-js@2.0.0-beta.3.1/node_modules/@parcel/runtime-js/lib/runtime-54df1a8afcdce548c861cd5183a5d974.js"],"sourcesContent":["import { pathExists } from \"fs-extra\"\nimport { join, dirname } from \"path\"\n\nimport { execFile as execFileRaw } from \"child_process\"\nimport { promisify } from \"util\"\nconst execFile = promisify(execFileRaw)\n\nasync function getCodeDBinFolder() {\n const home = process.env.HOME\n if (typeof home === \"string\" && home !== \"\" && process.platform === \"linux\") {\n if (await pathExists(join(home, \".local\", \"share\"))) {\n return join(home, \".local\", \"share\", \"code-d\", \"bin\")\n } else {\n return join(home, \".code-d\", \"bin\")\n }\n } else if (process.platform === \"win32\") {\n const appdata = process.env.APPDATA\n if (typeof appdata === \"string\" && appdata !== \"\") {\n return join(appdata, \"code-d\", \"bin\")\n }\n } else if (typeof home === \"string\" && home !== \"\") {\n return join(home, \".code-d\", \"bin\")\n }\n return \"\"\n}\n\nfunction isServeDInstalled(serveDPath: string) {\n return pathExists(serveDPath)\n}\n\n/** Get the version of serve-d */\nasync function getServeDVersion(file: string) {\n try {\n const output = (await execFile(file, [\"--version\"])).stderr\n const version = output.match(/v(\\d\\S*)\\s/)?.[1]\n return version\n } catch (e) {\n console.error(e)\n return undefined\n }\n}\n\n/** Check if the given serve-d is up to date against the target version */\nasync function isServeDUpToDate(givenFile: string, targetFile: string) {\n // @ts-ignore\n const semverCompare = (await import(\"semver/functions/compare\")) as typeof import(\"semver/functions/compare\")\n const [givenVersion, targetVersion] = await Promise.all([getServeDVersion(givenFile), getServeDVersion(targetFile)])\n if (\n typeof givenVersion === \"string\" &&\n typeof targetVersion === \"string\" &&\n givenVersion !== \"\" &&\n targetVersion !== \"\"\n ) {\n return semverCompare(givenVersion, targetVersion) !== -1\n } else {\n // assume given version is old\n return false\n }\n}\n\nasync function copyServeD(bundledServerFolder: string, codeDBinFolder: string) {\n const { copy } = await import(\"fs-extra\")\n atom.notifications.addInfo(\"Installing/Updating D servers...\")\n // copy the whole served folder\n await copy(bundledServerFolder, codeDBinFolder, { overwrite: true })\n atom.notifications.addSuccess(\"D servers was installed/updated\")\n}\n\nexport async function installServeD() {\n const distFolder = join(dirname(__dirname), \"dist\")\n\n const exeExtention = process.platform === \"win32\" ? \".exe\" : \"\"\n const serveDExeFileName = `serve-d${exeExtention}`\n\n const bundledServerFolder = join(distFolder, `${process.platform}-${process.arch}`)\n\n const codeDBinFolder = await getCodeDBinFolder()\n const serveDPath = join(codeDBinFolder, serveDExeFileName)\n\n if (bundledServerFolder) {\n const bundledServeDPath = join(bundledServerFolder, serveDExeFileName)\n if (!(await isServeDInstalled(serveDPath)) || !(await isServeDUpToDate(serveDPath, bundledServeDPath))) {\n await copyServeD(bundledServerFolder, codeDBinFolder)\n }\n } else {\n if (!(await isServeDInstalled(serveDPath))) {\n atom.notifications.addError(\n `serve-d binary is not available for ${process.platform}.\n Please built it from the source, place it under ${codeDBinFolder}, and restart Atom.`\n )\n }\n }\n return serveDPath\n}\n","module.exports = (Promise.resolve(__parcel__require__(\"./\" + \"compare.2ebd832c.js\"))).then(() => parcelRequire('5PzzV'));"],"names":["$cba7abbdfc042951cbd6213878ea3ff4$var$isServeDInstalled","serveDPath","$3PtFj$pathExists","async","$cba7abbdfc042951cbd6213878ea3ff4$var$getServeDVersion","file","ref","$cba7abbdfc042951cbd6213878ea3ff4$var$execFile","stderr","match","e","console","error","$cba7abbdfc042951cbd6213878ea3ff4$export$5109a6445e36b1c","distFolder","$3PtFj$join","$3PtFj$dirname","__dirname","serveDExeFileName","process","platform","bundledServerFolder","arch","codeDBinFolder","home","env","HOME","appdata","APPDATA","$cba7abbdfc042951cbd6213878ea3ff4$var$getCodeDBinFolder","bundledServeDPath","givenFile","targetFile","semverCompare","parcelRequire","givenVersion","targetVersion","Promise","all","$cba7abbdfc042951cbd6213878ea3ff4$var$isServeDUpToDate","copy","$cba7abbdfc042951cbd6213878ea3ff4$importAsync$5f67160147d256a6","atom","notifications","addInfo","overwrite","addSuccess","$cba7abbdfc042951cbd6213878ea3ff4$var$copyServeD","addError","$3PtFj$promisify","$3PtFj$execFile","module","exports","resolve","require","then"],"version":3,"file":"installation.f7c50dd8.js.map"}
\ No newline at end of file
diff --git a/dist/linux-x64/serve-d b/dist/linux-x64/serve-d
index 3ad552d..3abe93a 100755
Binary files a/dist/linux-x64/serve-d and b/dist/linux-x64/serve-d differ
diff --git a/dist/win32-ia32/serve-d.exe b/dist/win32-ia32/serve-d.exe
index d0b7583..75fec92 100644
Binary files a/dist/win32-ia32/serve-d.exe and b/dist/win32-ia32/serve-d.exe differ
diff --git a/dist/win32-x64/serve-d.exe b/dist/win32-x64/serve-d.exe
index 9c4211f..e54fea5 100644
Binary files a/dist/win32-x64/serve-d.exe and b/dist/win32-x64/serve-d.exe differ
diff --git a/package.json b/package.json
index 45faa1a..1373c3f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "ide-d",
- "version": "0.5.2",
+ "version": "0.5.3",
"description": "D language and IDE support for Atom",
"repository": "https://github.com/Pure-D/atom-ide-d",
"license": "MIT",