@medplum/cli 3.3.0 → 4.0.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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- var _s=Object.create;var ut=Object.defineProperty;var Us=Object.getOwnPropertyDescriptor;var js=Object.getOwnPropertyNames;var Fs=Object.getPrototypeOf,Bs=Object.prototype.hasOwnProperty;var Ks=(t,e,r)=>e in t?ut(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var dr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ws=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of js(e))!Bs.call(t,n)&&n!==r&&ut(t,n,{get:()=>e[n],enumerable:!(o=Us(e,n))||o.enumerable});return t};var mr=(t,e,r)=>(r=t!=null?_s(Fs(t)):{},Ws(e||!t||!t.__esModule?ut(r,"default",{value:t,enumerable:!0}):r,t));var b=(t,e,r)=>Ks(t,typeof e!="symbol"?e+"":e,r);var he=w((zm,no)=>{"use strict";var Qi="2.0.0",ea=Number.MAX_SAFE_INTEGER||9007199254740991,ta=16,ra=250,oa=["major","premajor","minor","preminor","patch","prepatch","prerelease"];no.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:ta,MAX_SAFE_BUILD_LENGTH:ra,MAX_SAFE_INTEGER:ea,RELEASE_TYPES:oa,SEMVER_SPEC_VERSION:Qi,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ge=w((Ym,so)=>{"use strict";var na=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};so.exports=na});var re=w((_,io)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Dt,MAX_SAFE_BUILD_LENGTH:sa,MAX_LENGTH:ia}=he(),aa=ge();_=io.exports={};var ca=_.re=[],la=_.safeRe=[],d=_.src=[],ua=_.safeSrc=[],m=_.t={},pa=0,kt="[a-zA-Z0-9-]",da=[["\\s",1],["\\d",ia],[kt,sa]],ma=t=>{for(let[e,r]of da)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},E=(t,e,r)=>{let o=ma(e),n=pa++;aa(t,n,e),m[t]=n,d[n]=e,ua[n]=o,ca[n]=new RegExp(e,r?"g":void 0),la[n]=new RegExp(o,r?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*");E("NUMERICIDENTIFIERLOOSE","\\d+");E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${kt}*`);E("MAINVERSION",`(${d[m.NUMERICIDENTIFIER]})\\.(${d[m.NUMERICIDENTIFIER]})\\.(${d[m.NUMERICIDENTIFIER]})`);E("MAINVERSIONLOOSE",`(${d[m.NUMERICIDENTIFIERLOOSE]})\\.(${d[m.NUMERICIDENTIFIERLOOSE]})\\.(${d[m.NUMERICIDENTIFIERLOOSE]})`);E("PRERELEASEIDENTIFIER",`(?:${d[m.NUMERICIDENTIFIER]}|${d[m.NONNUMERICIDENTIFIER]})`);E("PRERELEASEIDENTIFIERLOOSE",`(?:${d[m.NUMERICIDENTIFIERLOOSE]}|${d[m.NONNUMERICIDENTIFIER]})`);E("PRERELEASE",`(?:-(${d[m.PRERELEASEIDENTIFIER]}(?:\\.${d[m.PRERELEASEIDENTIFIER]})*))`);E("PRERELEASELOOSE",`(?:-?(${d[m.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[m.PRERELEASEIDENTIFIERLOOSE]})*))`);E("BUILDIDENTIFIER",`${kt}+`);E("BUILD",`(?:\\+(${d[m.BUILDIDENTIFIER]}(?:\\.${d[m.BUILDIDENTIFIER]})*))`);E("FULLPLAIN",`v?${d[m.MAINVERSION]}${d[m.PRERELEASE]}?${d[m.BUILD]}?`);E("FULL",`^${d[m.FULLPLAIN]}$`);E("LOOSEPLAIN",`[v=\\s]*${d[m.MAINVERSIONLOOSE]}${d[m.PRERELEASELOOSE]}?${d[m.BUILD]}?`);E("LOOSE",`^${d[m.LOOSEPLAIN]}$`);E("GTLT","((?:<|>)?=?)");E("XRANGEIDENTIFIERLOOSE",`${d[m.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);E("XRANGEIDENTIFIER",`${d[m.NUMERICIDENTIFIER]}|x|X|\\*`);E("XRANGEPLAIN",`[v=\\s]*(${d[m.XRANGEIDENTIFIER]})(?:\\.(${d[m.XRANGEIDENTIFIER]})(?:\\.(${d[m.XRANGEIDENTIFIER]})(?:${d[m.PRERELEASE]})?${d[m.BUILD]}?)?)?`);E("XRANGEPLAINLOOSE",`[v=\\s]*(${d[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[m.XRANGEIDENTIFIERLOOSE]})(?:${d[m.PRERELEASELOOSE]})?${d[m.BUILD]}?)?)?`);E("XRANGE",`^${d[m.GTLT]}\\s*${d[m.XRANGEPLAIN]}$`);E("XRANGELOOSE",`^${d[m.GTLT]}\\s*${d[m.XRANGEPLAINLOOSE]}$`);E("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Dt}})(?:\\.(\\d{1,${Dt}}))?(?:\\.(\\d{1,${Dt}}))?`);E("COERCE",`${d[m.COERCEPLAIN]}(?:$|[^\\d])`);E("COERCEFULL",d[m.COERCEPLAIN]+`(?:${d[m.PRERELEASE]})?(?:${d[m.BUILD]})?(?:$|[^\\d])`);E("COERCERTL",d[m.COERCE],!0);E("COERCERTLFULL",d[m.COERCEFULL],!0);E("LONETILDE","(?:~>?)");E("TILDETRIM",`(\\s*)${d[m.LONETILDE]}\\s+`,!0);_.tildeTrimReplace="$1~";E("TILDE",`^${d[m.LONETILDE]}${d[m.XRANGEPLAIN]}$`);E("TILDELOOSE",`^${d[m.LONETILDE]}${d[m.XRANGEPLAINLOOSE]}$`);E("LONECARET","(?:\\^)");E("CARETTRIM",`(\\s*)${d[m.LONECARET]}\\s+`,!0);_.caretTrimReplace="$1^";E("CARET",`^${d[m.LONECARET]}${d[m.XRANGEPLAIN]}$`);E("CARETLOOSE",`^${d[m.LONECARET]}${d[m.XRANGEPLAINLOOSE]}$`);E("COMPARATORLOOSE",`^${d[m.GTLT]}\\s*(${d[m.LOOSEPLAIN]})$|^$`);E("COMPARATOR",`^${d[m.GTLT]}\\s*(${d[m.FULLPLAIN]})$|^$`);E("COMPARATORTRIM",`(\\s*)${d[m.GTLT]}\\s*(${d[m.LOOSEPLAIN]}|${d[m.XRANGEPLAIN]})`,!0);_.comparatorTrimReplace="$1$2$3";E("HYPHENRANGE",`^\\s*(${d[m.XRANGEPLAIN]})\\s+-\\s+(${d[m.XRANGEPLAIN]})\\s*$`);E("HYPHENRANGELOOSE",`^\\s*(${d[m.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[m.XRANGEPLAINLOOSE]})\\s*$`);E("STAR","(<|>)?=?\\s*\\*");E("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");E("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var _e=w((Zm,ao)=>{"use strict";var fa=Object.freeze({loose:!0}),ha=Object.freeze({}),ga=t=>t?typeof t!="object"?fa:t:ha;ao.exports=ga});var Mt=w((Qm,uo)=>{"use strict";var co=/^[0-9]+$/,lo=(t,e)=>{let r=co.test(t),o=co.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},ya=(t,e)=>lo(e,t);uo.exports={compareIdentifiers:lo,rcompareIdentifiers:ya}});var P=w((ef,ho)=>{"use strict";var Ue=ge(),{MAX_LENGTH:po,MAX_SAFE_INTEGER:je}=he(),{safeRe:mo,safeSrc:fo,t:Fe}=re(),wa=_e(),{compareIdentifiers:oe}=Mt(),_t=class t{constructor(e,r){if(r=wa(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>po)throw new TypeError(`version is longer than ${po} characters`);Ue("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?mo[Fe.LOOSE]:mo[Fe.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>je||this.major<0)throw new TypeError("Invalid major version");if(this.minor>je||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>je||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<je)return s}return n}):this.prerelease=[],this.build=o[5]?o[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(Ue("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),oe(this.major,e.major)||oe(this.minor,e.minor)||oe(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(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{let o=this.prerelease[r],n=e.prerelease[r];if(Ue("prerelease compare",r,o,n),o===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(o===void 0)return-1;if(o===n)continue;return oe(o,n)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let o=this.build[r],n=e.build[r];if(Ue("build compare",r,o,n),o===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(o===void 0)return-1;if(o===n)continue;return oe(o,n)}while(++r)}inc(e,r,o){if(e.startsWith("pre")){if(!r&&o===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let n=new RegExp(`^${this.options.loose?fo[Fe.PRERELEASELOOSE]:fo[Fe.PRERELEASE]}$`),s=`-${r}`.match(n);if(!s||s[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,o);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,o);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,o),this.inc("pre",r,o);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,o),this.inc("pre",r,o);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 n=Number(o)?1:0;if(this.prerelease.length===0)this.prerelease=[n];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n)}}if(r){let s=[r,n];o===!1&&(s=[r]),oe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ho.exports=_t});var Q=w((tf,yo)=>{"use strict";var go=P(),Ea=(t,e,r=!1)=>{if(t instanceof go)return t;try{return new go(t,e)}catch(o){if(!r)return null;throw o}};yo.exports=Ea});var Eo=w((rf,wo)=>{"use strict";var Sa=Q(),Ra=(t,e)=>{let r=Sa(t,e);return r?r.version:null};wo.exports=Ra});var Ro=w((of,So)=>{"use strict";var Aa=Q(),Ia=(t,e)=>{let r=Aa(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};So.exports=Ia});var bo=w((nf,Io)=>{"use strict";var Ao=P(),ba=(t,e,r,o,n)=>{typeof r=="string"&&(n=o,o=r,r=void 0);try{return new Ao(t instanceof Ao?t.version:t,r).inc(e,o,n).version}catch{return null}};Io.exports=ba});var Co=w((sf,Po)=>{"use strict";var vo=Q(),va=(t,e)=>{let r=vo(t,null,!0),o=vo(e,null,!0),n=r.compare(o);if(n===0)return null;let s=n>0,i=s?r:o,c=s?o:r,l=!!i.prerelease.length;if(!!c.prerelease.length&&!l){if(!c.patch&&!c.minor)return"major";if(c.compareMain(i)===0)return c.minor&&!c.patch?"minor":"patch"}let h=l?"pre":"";return r.major!==o.major?h+"major":r.minor!==o.minor?h+"minor":r.patch!==o.patch?h+"patch":"prerelease"};Po.exports=va});var Oo=w((af,To)=>{"use strict";var Pa=P(),Ca=(t,e)=>new Pa(t,e).major;To.exports=Ca});var $o=w((cf,xo)=>{"use strict";var Ta=P(),Oa=(t,e)=>new Ta(t,e).minor;xo.exports=Oa});var Lo=w((lf,No)=>{"use strict";var xa=P(),$a=(t,e)=>new xa(t,e).patch;No.exports=$a});var ko=w((uf,Do)=>{"use strict";var Na=Q(),La=(t,e)=>{let r=Na(t,e);return r&&r.prerelease.length?r.prerelease:null};Do.exports=La});var N=w((pf,_o)=>{"use strict";var Mo=P(),Da=(t,e,r)=>new Mo(t,r).compare(new Mo(e,r));_o.exports=Da});var jo=w((df,Uo)=>{"use strict";var ka=N(),Ma=(t,e,r)=>ka(e,t,r);Uo.exports=Ma});var Bo=w((mf,Fo)=>{"use strict";var _a=N(),Ua=(t,e)=>_a(t,e,!0);Fo.exports=Ua});var Be=w((ff,Wo)=>{"use strict";var Ko=P(),ja=(t,e,r)=>{let o=new Ko(t,r),n=new Ko(e,r);return o.compare(n)||o.compareBuild(n)};Wo.exports=ja});var Ho=w((hf,qo)=>{"use strict";var Fa=Be(),Ba=(t,e)=>t.sort((r,o)=>Fa(r,o,e));qo.exports=Ba});var Vo=w((gf,Go)=>{"use strict";var Ka=Be(),Wa=(t,e)=>t.sort((r,o)=>Ka(o,r,e));Go.exports=Wa});var ye=w((yf,Jo)=>{"use strict";var qa=N(),Ha=(t,e,r)=>qa(t,e,r)>0;Jo.exports=Ha});var Ke=w((wf,Xo)=>{"use strict";var Ga=N(),Va=(t,e,r)=>Ga(t,e,r)<0;Xo.exports=Va});var Ut=w((Ef,zo)=>{"use strict";var Ja=N(),Xa=(t,e,r)=>Ja(t,e,r)===0;zo.exports=Xa});var jt=w((Sf,Yo)=>{"use strict";var za=N(),Ya=(t,e,r)=>za(t,e,r)!==0;Yo.exports=Ya});var We=w((Rf,Zo)=>{"use strict";var Za=N(),Qa=(t,e,r)=>Za(t,e,r)>=0;Zo.exports=Qa});var qe=w((Af,Qo)=>{"use strict";var ec=N(),tc=(t,e,r)=>ec(t,e,r)<=0;Qo.exports=tc});var Ft=w((If,en)=>{"use strict";var rc=Ut(),oc=jt(),nc=ye(),sc=We(),ic=Ke(),ac=qe(),cc=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return rc(t,r,o);case"!=":return oc(t,r,o);case">":return nc(t,r,o);case">=":return sc(t,r,o);case"<":return ic(t,r,o);case"<=":return ac(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};en.exports=cc});var rn=w((bf,tn)=>{"use strict";var lc=P(),uc=Q(),{safeRe:He,t:Ge}=re(),pc=(t,e)=>{if(t instanceof lc)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?He[Ge.COERCEFULL]:He[Ge.COERCE]);else{let l=e.includePrerelease?He[Ge.COERCERTLFULL]:He[Ge.COERCERTL],u;for(;(u=l.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),l.lastIndex=u.index+u[1].length+u[2].length;l.lastIndex=-1}if(r===null)return null;let o=r[2],n=r[3]||"0",s=r[4]||"0",i=e.includePrerelease&&r[5]?`-${r[5]}`:"",c=e.includePrerelease&&r[6]?`+${r[6]}`:"";return uc(`${o}.${n}.${s}${i}${c}`,e)};tn.exports=pc});var nn=w((vf,on)=>{"use strict";var Bt=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let n=this.map.keys().next().value;this.delete(n)}this.map.set(e,r)}return this}};on.exports=Bt});var L=w((Pf,ln)=>{"use strict";var dc=/\s+/g,Kt=class t{constructor(e,r){if(r=fc(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof Wt)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(dc," "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(n=>!an(n[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Rc(n[0])){this.set=[n];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let o=0;o<r.length;o++)o>0&&(this.formatted+=" "),this.formatted+=r[o].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&Ec)|(this.options.loose&&Sc))+":"+e,n=sn.get(o);if(n)return n;let s=this.options.loose,i=s?O[C.HYPHENRANGELOOSE]:O[C.HYPHENRANGE];e=e.replace(i,$c(this.options.includePrerelease)),A("hyphen replace",e),e=e.replace(O[C.COMPARATORTRIM],gc),A("comparator trim",e),e=e.replace(O[C.TILDETRIM],yc),A("tilde trim",e),e=e.replace(O[C.CARETTRIM],wc),A("caret trim",e);let c=e.split(" ").map(f=>Ac(f,this.options)).join(" ").split(/\s+/).map(f=>xc(f,this.options));s&&(c=c.filter(f=>(A("loose invalid filter",f,this.options),!!f.match(O[C.COMPARATORLOOSE])))),A("range list",c);let l=new Map,u=c.map(f=>new Wt(f,this.options));for(let f of u){if(an(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let h=[...l.values()];return sn.set(o,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>cn(o,r)&&e.set.some(n=>cn(n,r)&&o.every(s=>n.every(i=>s.intersects(i,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new hc(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Nc(this.set[r],e,this.options))return!0;return!1}};ln.exports=Kt;var mc=nn(),sn=new mc,fc=_e(),Wt=we(),A=ge(),hc=P(),{safeRe:O,t:C,comparatorTrimReplace:gc,tildeTrimReplace:yc,caretTrimReplace:wc}=re(),{FLAG_INCLUDE_PRERELEASE:Ec,FLAG_LOOSE:Sc}=he(),an=t=>t.value==="<0.0.0-0",Rc=t=>t.value==="",cn=(t,e)=>{let r=!0,o=t.slice(),n=o.pop();for(;r&&o.length;)r=o.every(s=>n.intersects(s,e)),n=o.pop();return r},Ac=(t,e)=>(A("comp",t,e),t=vc(t,e),A("caret",t),t=Ic(t,e),A("tildes",t),t=Cc(t,e),A("xrange",t),t=Oc(t,e),A("stars",t),t),T=t=>!t||t.toLowerCase()==="x"||t==="*",Ic=(t,e)=>t.trim().split(/\s+/).map(r=>bc(r,e)).join(" "),bc=(t,e)=>{let r=e.loose?O[C.TILDELOOSE]:O[C.TILDE];return t.replace(r,(o,n,s,i,c)=>{A("tilde",t,o,n,s,i,c);let l;return T(n)?l="":T(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:T(i)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:c?(A("replaceTilde pr",c),l=`>=${n}.${s}.${i}-${c} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${i} <${n}.${+s+1}.0-0`,A("tilde return",l),l})},vc=(t,e)=>t.trim().split(/\s+/).map(r=>Pc(r,e)).join(" "),Pc=(t,e)=>{A("caret",t,e);let r=e.loose?O[C.CARETLOOSE]:O[C.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(n,s,i,c,l)=>{A("caret",t,n,s,i,c,l);let u;return T(s)?u="":T(i)?u=`>=${s}.0.0${o} <${+s+1}.0.0-0`:T(c)?s==="0"?u=`>=${s}.${i}.0${o} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.0${o} <${+s+1}.0.0-0`:l?(A("replaceCaret pr",l),s==="0"?i==="0"?u=`>=${s}.${i}.${c}-${l} <${s}.${i}.${+c+1}-0`:u=`>=${s}.${i}.${c}-${l} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.${c}-${l} <${+s+1}.0.0-0`):(A("no pr"),s==="0"?i==="0"?u=`>=${s}.${i}.${c}${o} <${s}.${i}.${+c+1}-0`:u=`>=${s}.${i}.${c}${o} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.${c} <${+s+1}.0.0-0`),A("caret return",u),u})},Cc=(t,e)=>(A("replaceXRanges",t,e),t.split(/\s+/).map(r=>Tc(r,e)).join(" ")),Tc=(t,e)=>{t=t.trim();let r=e.loose?O[C.XRANGELOOSE]:O[C.XRANGE];return t.replace(r,(o,n,s,i,c,l)=>{A("xRange",t,o,n,s,i,c,l);let u=T(s),h=u||T(i),f=h||T(c),S=f;return n==="="&&S&&(n=""),l=e.includePrerelease?"-0":"",u?n===">"||n==="<"?o="<0.0.0-0":o="*":n&&S?(h&&(i=0),c=0,n===">"?(n=">=",h?(s=+s+1,i=0,c=0):(i=+i+1,c=0)):n==="<="&&(n="<",h?s=+s+1:i=+i+1),n==="<"&&(l="-0"),o=`${n+s}.${i}.${c}${l}`):h?o=`>=${s}.0.0${l} <${+s+1}.0.0-0`:f&&(o=`>=${s}.${i}.0${l} <${s}.${+i+1}.0-0`),A("xRange return",o),o})},Oc=(t,e)=>(A("replaceStars",t,e),t.trim().replace(O[C.STAR],"")),xc=(t,e)=>(A("replaceGTE0",t,e),t.trim().replace(O[e.includePrerelease?C.GTE0PRE:C.GTE0],"")),$c=t=>(e,r,o,n,s,i,c,l,u,h,f,S)=>(T(o)?r="":T(n)?r=`>=${o}.0.0${t?"-0":""}`:T(s)?r=`>=${o}.${n}.0${t?"-0":""}`:i?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,T(u)?l="":T(h)?l=`<${+u+1}.0.0-0`:T(f)?l=`<${u}.${+h+1}.0-0`:S?l=`<=${u}.${h}.${f}-${S}`:t?l=`<${u}.${h}.${+f+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),Nc=(t,e,r)=>{for(let o=0;o<t.length;o++)if(!t[o].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let o=0;o<t.length;o++)if(A(t[o].semver),t[o].semver!==Wt.ANY&&t[o].semver.prerelease.length>0){let n=t[o].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var we=w((Cf,hn)=>{"use strict";var Ee=Symbol("SemVer ANY"),Gt=class t{static get ANY(){return Ee}constructor(e,r){if(r=un(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Ht("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Ee?this.value="":this.value=this.operator+this.semver.version,Ht("comp",this)}parse(e){let r=this.options.loose?pn[dn.COMPARATORLOOSE]:pn[dn.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new mn(o[2],this.options.loose):this.semver=Ee}toString(){return this.value}test(e){if(Ht("Comparator.test",e,this.options.loose),this.semver===Ee||e===Ee)return!0;if(typeof e=="string")try{e=new mn(e,this.options)}catch{return!1}return qt(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new fn(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new fn(this.value,r).test(e.semver):(r=un(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||qt(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||qt(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};hn.exports=Gt;var un=_e(),{safeRe:pn,t:dn}=re(),qt=Ft(),Ht=ge(),mn=P(),fn=L()});var Se=w((Tf,gn)=>{"use strict";var Lc=L(),Dc=(t,e,r)=>{try{e=new Lc(e,r)}catch{return!1}return e.test(t)};gn.exports=Dc});var wn=w((Of,yn)=>{"use strict";var kc=L(),Mc=(t,e)=>new kc(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));yn.exports=Mc});var Sn=w((xf,En)=>{"use strict";var _c=P(),Uc=L(),jc=(t,e,r)=>{let o=null,n=null,s=null;try{s=new Uc(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===-1)&&(o=i,n=new _c(o,r))}),o};En.exports=jc});var An=w(($f,Rn)=>{"use strict";var Fc=P(),Bc=L(),Kc=(t,e,r)=>{let o=null,n=null,s=null;try{s=new Bc(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===1)&&(o=i,n=new Fc(o,r))}),o};Rn.exports=Kc});var vn=w((Nf,bn)=>{"use strict";var Vt=P(),Wc=L(),In=ye(),qc=(t,e)=>{t=new Wc(t,e);let r=new Vt("0.0.0");if(t.test(r)||(r=new Vt("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o<t.set.length;++o){let n=t.set[o],s=null;n.forEach(i=>{let c=new Vt(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!s||In(c,s))&&(s=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),s&&(!r||In(r,s))&&(r=s)}return r&&t.test(r)?r:null};bn.exports=qc});var Cn=w((Lf,Pn)=>{"use strict";var Hc=L(),Gc=(t,e)=>{try{return new Hc(t,e).range||"*"}catch{return null}};Pn.exports=Gc});var Ve=w((Df,$n)=>{"use strict";var Vc=P(),xn=we(),{ANY:Jc}=xn,Xc=L(),zc=Se(),Tn=ye(),On=Ke(),Yc=qe(),Zc=We(),Qc=(t,e,r,o)=>{t=new Vc(t,o),e=new Xc(e,o);let n,s,i,c,l;switch(r){case">":n=Tn,s=Yc,i=On,c=">",l=">=";break;case"<":n=On,s=Zc,i=Tn,c="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(zc(t,e,o))return!1;for(let u=0;u<e.set.length;++u){let h=e.set[u],f=null,S=null;if(h.forEach(p=>{p.semver===Jc&&(p=new xn(">=0.0.0")),f=f||p,S=S||p,n(p.semver,f.semver,o)?f=p:i(p.semver,S.semver,o)&&(S=p)}),f.operator===c||f.operator===l||(!S.operator||S.operator===c)&&s(t,S.semver))return!1;if(S.operator===l&&i(t,S.semver))return!1}return!0};$n.exports=Qc});var Ln=w((kf,Nn)=>{"use strict";var el=Ve(),tl=(t,e,r)=>el(t,e,">",r);Nn.exports=tl});var kn=w((Mf,Dn)=>{"use strict";var rl=Ve(),ol=(t,e,r)=>rl(t,e,"<",r);Dn.exports=ol});var Un=w((_f,_n)=>{"use strict";var Mn=L(),nl=(t,e,r)=>(t=new Mn(t,r),e=new Mn(e,r),t.intersects(e,r));_n.exports=nl});var Fn=w((Uf,jn)=>{"use strict";var sl=Se(),il=N();jn.exports=(t,e,r)=>{let o=[],n=null,s=null,i=t.sort((h,f)=>il(h,f,r));for(let h of i)sl(h,e,r)?(s=h,n||(n=h)):(s&&o.push([n,s]),s=null,n=null);n&&o.push([n,null]);let c=[];for(let[h,f]of o)h===f?c.push(h):!f&&h===i[0]?c.push("*"):f?h===i[0]?c.push(`<=${f}`):c.push(`${h} - ${f}`):c.push(`>=${h}`);let l=c.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return l.length<u.length?l:e}});var Gn=w((jf,Hn)=>{"use strict";var Bn=L(),Xt=we(),{ANY:Jt}=Xt,Re=Se(),zt=N(),al=(t,e,r={})=>{if(t===e)return!0;t=new Bn(t,r),e=new Bn(e,r);let o=!1;e:for(let n of t.set){for(let s of e.set){let i=ll(n,s,r);if(o=o||i!==null,i)continue e}if(o)return!1}return!0},cl=[new Xt(">=0.0.0-0")],Kn=[new Xt(">=0.0.0")],ll=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Jt){if(e.length===1&&e[0].semver===Jt)return!0;r.includePrerelease?t=cl:t=Kn}if(e.length===1&&e[0].semver===Jt){if(r.includePrerelease)return!0;e=Kn}let o=new Set,n,s;for(let p of t)p.operator===">"||p.operator===">="?n=Wn(n,p,r):p.operator==="<"||p.operator==="<="?s=qn(s,p,r):o.add(p.semver);if(o.size>1)return null;let i;if(n&&s){if(i=zt(n.semver,s.semver,r),i>0)return null;if(i===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of o){if(n&&!Re(p,String(n),r)||s&&!Re(p,String(s),r))return null;for(let j of e)if(!Re(p,String(j),r))return!1;return!0}let c,l,u,h,f=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,S=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;f&&f.prerelease.length===1&&s.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let p of e){if(h=h||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",n){if(S&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===S.major&&p.semver.minor===S.minor&&p.semver.patch===S.patch&&(S=!1),p.operator===">"||p.operator===">="){if(c=Wn(n,p,r),c===p&&c!==n)return!1}else if(n.operator===">="&&!Re(n.semver,String(p),r))return!1}if(s){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(l=qn(s,p,r),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Re(s.semver,String(p),r))return!1}if(!p.operator&&(s||n)&&i!==0)return!1}return!(n&&u&&!s&&i!==0||s&&h&&!n&&i!==0||S||f)},Wn=(t,e,r)=>{if(!t)return e;let o=zt(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},qn=(t,e,r)=>{if(!t)return e;let o=zt(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};Hn.exports=al});var Zt=w((Ff,Xn)=>{"use strict";var Yt=re(),Vn=he(),ul=P(),Jn=Mt(),pl=Q(),dl=Eo(),ml=Ro(),fl=bo(),hl=Co(),gl=Oo(),yl=$o(),wl=Lo(),El=ko(),Sl=N(),Rl=jo(),Al=Bo(),Il=Be(),bl=Ho(),vl=Vo(),Pl=ye(),Cl=Ke(),Tl=Ut(),Ol=jt(),xl=We(),$l=qe(),Nl=Ft(),Ll=rn(),Dl=we(),kl=L(),Ml=Se(),_l=wn(),Ul=Sn(),jl=An(),Fl=vn(),Bl=Cn(),Kl=Ve(),Wl=Ln(),ql=kn(),Hl=Un(),Gl=Fn(),Vl=Gn();Xn.exports={parse:pl,valid:dl,clean:ml,inc:fl,diff:hl,major:gl,minor:yl,patch:wl,prerelease:El,compare:Sl,rcompare:Rl,compareLoose:Al,compareBuild:Il,sort:bl,rsort:vl,gt:Pl,lt:Cl,eq:Tl,neq:Ol,gte:xl,lte:$l,cmp:Nl,coerce:Ll,Comparator:Dl,Range:kl,satisfies:Ml,toComparators:_l,maxSatisfying:Ul,minSatisfying:jl,minVersion:Fl,validRange:Bl,outside:Kl,gtr:Wl,ltr:ql,intersects:Hl,simplifyRange:Gl,subset:Vl,SemVer:ul,re:Yt.re,src:Yt.src,tokens:Yt.t,SEMVER_SPEC_VERSION:Vn.SEMVER_SPEC_VERSION,RELEASE_TYPES:Vn.RELEASE_TYPES,compareIdentifiers:Jn.compareIdentifiers,rcompareIdentifiers:Jn.rcompareIdentifiers}});import{MEDPLUM_VERSION as Lp,normalizeErrorString as pr}from"@medplum/core";import{CommanderError as ks,Option as Dp}from"commander";import kp from"dotenv";import{ContentType as Jr,isOk as xi,isUUID as $i}from"@medplum/core";import{Option as Tt}from"commander";import{MedplumClient as Xs}from"@medplum/core";import{ClientStorage as qs}from"@medplum/core";import{existsSync as fr,mkdirSync as Hs,readFileSync as Gs,writeFileSync as Vs}from"node:fs";import{homedir as Js}from"node:os";import{resolve as hr}from"node:path";var k=class extends qs{constructor(e){super(),this.dirName=hr(Js(),".medplum"),this.fileName=hr(this.dirName,e+".json")}clear(){this.writeFile({})}getString(e){return this.readFile()?.[e]}setString(e,r){let o=this.readFile()??{};r?o[e]=r:delete o[e],this.writeFile(o)}getObject(e){let r=this.getString(e);return r?JSON.parse(r):void 0}setObject(e,r){this.setString(e,r?JSON.stringify(r):void 0)}readFile(){if(fr(this.fileName))return JSON.parse(Gs(this.fileName,"utf8"))}writeFile(e){fr(this.dirName)||Hs(this.dirName),Vs(this.fileName,JSON.stringify(e,null,2),"utf8")}};async function R(t,e=!0){let r=t.profile??"default",o=new k(r),n=o.getObject("options");if(r!=="default"&&!n)throw new Error(`Profile "${r}" does not exist`);let{baseUrl:s,fhirUrlPath:i,accessToken:c,tokenUrl:l,authorizeUrl:u,clientId:h,clientSecret:f}=zs(t,o),S=t.fetch??fetch,p=new Xs({fetch:S,baseUrl:s,tokenUrl:l,fhirUrlPath:i,authorizeUrl:u,storage:o,onUnauthenticated:Ys,verbose:t.verbose});return e&&(c?p.setAccessToken(c):h&&f&&(p.setBasicAuth(h,f),n?.authType!=="basic"&&await p.startClientLogin(h,f))),p}function zs(t,e){let r=e.getObject("options"),o=t.baseUrl??r?.baseUrl??process.env.MEDPLUM_BASE_URL??"https://api.medplum.com/",n=t.fhirUrlPath??r?.fhirUrlPath??process.env.MEDPLUM_FHIR_URL_PATH,s=t.accessToken??r?.accessToken??process.env.MEDPLUM_CLIENT_ACCESS_TOKEN,i=t.tokenUrl??r?.tokenUrl??process.env.MEDPLUM_TOKEN_URL,c=t.authorizeUrl??r?.authorizeUrl??process.env.MEDPLUM_AUTHORIZE_URL,l=t.clientId??r?.clientId??process.env.MEDPLUM_CLIENT_ID,u=t.clientSecret??r?.clientSecret??process.env.MEDPLUM_CLIENT_SECRET;return{baseUrl:o,fhirUrlPath:n,accessToken:s,tokenUrl:i,authorizeUrl:c,clientId:l,clientSecret:u}}function Ys(){console.log("Unauthenticated: run `npx medplum login` to sign in")}import{ContentType as At,encodeBase64 as Ur}from"@medplum/core";import{Command as wi}from"commander";import{Buffer as Zs}from"node:buffer";var J=new TextEncoder,pt=new TextDecoder,Xp=2**32;function gr(...t){let e=t.reduce((n,{length:s})=>n+s,0),r=new Uint8Array(e),o=0;for(let n of t)r.set(n,o),o+=n.length;return r}var Pe=t=>Zs.from(t).toString("base64url");var X=class extends Error{constructor(r,o){super(r,o);b(this,"code","ERR_JOSE_GENERIC");this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}};b(X,"code","ERR_JOSE_GENERIC");var $=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JOSE_NOT_SUPPORTED")}};b($,"code","ERR_JOSE_NOT_SUPPORTED");var F=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JWS_INVALID")}};b(F,"code","ERR_JWS_INVALID");var ue=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JWT_INVALID")}};b(ue,"code","ERR_JWT_INVALID");var yr,wr,dt=class extends(wr=X,yr=Symbol.asyncIterator,wr){constructor(r="multiple matching keys found in the JSON Web Key Set",o){super(r,o);b(this,yr);b(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}};b(dt,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS");import*as Er from"node:util";var Ce=t=>Er.types.isKeyObject(t);import*as Sr from"node:crypto";import*as Rr from"node:util";var ei=Sr.webcrypto,Ar=ei,ee=t=>Rr.types.isCryptoKey(t);function B(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function Te(t,e){return t.name===e}function mt(t){return parseInt(t.name.slice(4),10)}function ti(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function ri(t,e){if(e.length&&!e.some(r=>t.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(e.length>2){let o=e.pop();r+=`one of ${e.join(", ")}, or ${o}.`}else e.length===2?r+=`one of ${e[0]} or ${e[1]}.`:r+=`${e[0]}.`;throw new TypeError(r)}}function Ir(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!Te(t.algorithm,"HMAC"))throw B("HMAC");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Te(t.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Te(t.algorithm,"RSA-PSS"))throw B("RSA-PSS");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw B("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!Te(t.algorithm,"ECDSA"))throw B("ECDSA");let o=ti(e);if(t.algorithm.namedCurve!==o)throw B(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}ri(t,r)}function br(t,e,...r){if(r=r.filter(Boolean),r.length>2){let o=r.pop();t+=`one of type ${r.join(", ")}, or ${o}.`}else r.length===2?t+=`one of type ${r[0]} or ${r[1]}.`:t+=`of type ${r[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&e.constructor?.name&&(t+=` Received an instance of ${e.constructor.name}`),t}var pe=(t,...e)=>br("Key must be ",t,...e);function ft(t,e,...r){return br(`Key for the ${t} algorithm must be `,e,...r)}var ht=t=>Ce(t)||ee(t),K=["KeyObject"];(globalThis.CryptoKey||Ar?.CryptoKey)&&K.push("CryptoKey");var oi=(...t)=>{let e=t.filter(Boolean);if(e.length===0||e.length===1)return!0;let r;for(let o of e){let n=Object.keys(o);if(!r||r.size===0){r=new Set(n);continue}for(let s of n){if(r.has(s))return!1;r.add(s)}}return!0},vr=oi;function ni(t){return typeof t=="object"&&t!==null}function de(t){if(!ni(t)||Object.prototype.toString.call(t)!=="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}import{KeyObject as si}from"node:crypto";function q(t){return de(t)&&typeof t.kty=="string"}function Pr(t){return t.kty!=="oct"&&typeof t.d=="string"}function Cr(t){return t.kty!=="oct"&&typeof t.d>"u"}function Tr(t){return q(t)&&t.kty==="oct"&&typeof t.k=="string"}var ii=t=>{switch(t){case"prime256v1":return"P-256";case"secp384r1":return"P-384";case"secp521r1":return"P-521";case"secp256k1":return"secp256k1";default:throw new $("Unsupported key curve for this operation")}},ai=(t,e)=>{let r;if(ee(t))r=si.from(t);else if(Ce(t))r=t;else{if(q(t))return t.crv;throw new TypeError(pe(t,...K))}if(r.type==="secret")throw new TypeError('only "private" or "public" type keys can be used for this operation');switch(r.asymmetricKeyType){case"ed25519":case"ed448":return`Ed${r.asymmetricKeyType.slice(2)}`;case"x25519":case"x448":return`X${r.asymmetricKeyType.slice(1)}`;case"ec":{let o=r.asymmetricKeyDetails.namedCurve;return e?o:ii(o)}default:throw new TypeError("Invalid asymmetric key type for this operation")}},xr=ai;import{KeyObject as ci}from"node:crypto";var gt=(t,e)=>{let r;try{t instanceof ci?r=t.asymmetricKeyDetails?.modulusLength:r=Buffer.from(t.n,"base64url").byteLength<<3}catch{}if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)};var te=t=>t?.[Symbol.toStringTag],yt=(t,e,r)=>{if(e.use!==void 0&&e.use!=="sig")throw new TypeError("Invalid key for this operation, when present its use must be sig");if(e.key_ops!==void 0&&e.key_ops.includes?.(r)!==!0)throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${r}`);if(e.alg!==void 0&&e.alg!==t)throw new TypeError(`Invalid key for this operation, when present its alg must be ${t}`);return!0},li=(t,e,r,o)=>{if(!(e instanceof Uint8Array)){if(o&&q(e)){if(Tr(e)&&yt(t,e,r))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!ht(e))throw new TypeError(ft(t,e,...K,"Uint8Array",o?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${te(e)} instances for symmetric algorithms must be of type "secret"`)}},ui=(t,e,r,o)=>{if(o&&q(e))switch(r){case"sign":if(Pr(e)&&yt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(Cr(e)&&yt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!ht(e))throw new TypeError(ft(t,e,...K,o?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${te(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${te(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${te(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${te(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${te(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function $r(t,e,r,o){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?li(e,r,o,t):ui(e,r,o,t)}var Ad=$r.bind(void 0,!1),Nr=$r.bind(void 0,!0);function pi(t,e,r,o,n){if(n.crit!==void 0&&o?.crit===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!o||o.crit===void 0)return new Set;if(!Array.isArray(o.crit)||o.crit.length===0||o.crit.some(i=>typeof i!="string"||i.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let s;r!==void 0?s=new Map([...Object.entries(r),...e.entries()]):s=e;for(let i of o.crit){if(!s.has(i))throw new $(`Extension Header Parameter "${i}" is not recognized`);if(n[i]===void 0)throw new t(`Extension Header Parameter "${i}" is missing`);if(s.get(i)&&o[i]===void 0)throw new t(`Extension Header Parameter "${i}" MUST be integrity protected`)}return new Set(o.crit)}var Lr=pi;function wt(t){switch(t){case"PS256":case"RS256":case"ES256":case"ES256K":return"sha256";case"PS384":case"RS384":case"ES384":return"sha384";case"PS512":case"RS512":case"ES512":return"sha512";case"EdDSA":return;default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}import{constants as Dr,KeyObject as di}from"node:crypto";var mi=new Map([["ES256","P-256"],["ES256K","secp256k1"],["ES384","P-384"],["ES512","P-521"]]);function Et(t,e){let r,o,n;if(e instanceof di)r=e.asymmetricKeyType,o=e.asymmetricKeyDetails;else switch(n=!0,e.kty){case"RSA":r="rsa";break;case"EC":r="ec";break;case"OKP":{if(e.crv==="Ed25519"){r="ed25519";break}if(e.crv==="Ed448"){r="ed448";break}throw new TypeError("Invalid key for this operation, its crv must be Ed25519 or Ed448")}default:throw new TypeError("Invalid key for this operation, its kty must be RSA, OKP, or EC")}let s;switch(t){case"EdDSA":if(!["ed25519","ed448"].includes(r))throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448");break;case"RS256":case"RS384":case"RS512":if(r!=="rsa")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa");gt(e,t);break;case"PS256":case"PS384":case"PS512":if(r==="rsa-pss"){let{hashAlgorithm:i,mgf1HashAlgorithm:c,saltLength:l}=o,u=parseInt(t.slice(-3),10);if(i!==void 0&&(i!==`sha${u}`||c!==i))throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${t}`);if(l!==void 0&&l>u>>3)throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${t}`)}else if(r!=="rsa")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss");gt(e,t),s={padding:Dr.RSA_PKCS1_PSS_PADDING,saltLength:Dr.RSA_PSS_SALTLEN_DIGEST};break;case"ES256":case"ES256K":case"ES384":case"ES512":{if(r!=="ec")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ec");let i=xr(e),c=mi.get(t);if(i!==c)throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${c}, got ${i}`);s={dsaEncoding:"ieee-p1363"};break}default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}return n?{format:"jwk",key:e,...s}:s?{...s,key:e}:e}import*as Oe from"node:crypto";import{promisify as fi}from"node:util";function St(t){switch(t){case"HS256":return"sha256";case"HS384":return"sha384";case"HS512":return"sha512";default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}import{KeyObject as kr,createSecretKey as Mr}from"node:crypto";function Rt(t,e,r){if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(pe(e,...K));return Mr(e)}if(e instanceof kr)return e;if(ee(e))return Ir(e,t,r),kr.from(e);if(q(e))return t.startsWith("HS")?Mr(Buffer.from(e.k,"base64url")):e;throw new TypeError(pe(e,...K,"Uint8Array","JSON Web Key"))}var hi=fi(Oe.sign),gi=async(t,e,r)=>{let o=Rt(t,e,"sign");if(t.startsWith("HS")){let n=Oe.createHmac(St(t),o);return n.update(r),n.digest()}return hi(wt(t),r,Et(t,o))},_r=gi;var H=t=>Math.floor(t.getTime()/1e3);var yi=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,xe=t=>{let e=yi.exec(t);if(!e||e[4]&&e[1])throw new TypeError("Invalid time period format");let r=parseFloat(e[2]),o=e[3].toLowerCase(),n;switch(o){case"sec":case"secs":case"second":case"seconds":case"s":n=Math.round(r);break;case"minute":case"minutes":case"min":case"mins":case"m":n=Math.round(r*60);break;case"hour":case"hours":case"hr":case"hrs":case"h":n=Math.round(r*3600);break;case"day":case"days":case"d":n=Math.round(r*86400);break;case"week":case"weeks":case"w":n=Math.round(r*604800);break;default:n=Math.round(r*31557600);break}return e[1]==="-"||e[4]==="ago"?-n:n};var $e=class{constructor(e){b(this,"_payload");b(this,"_protectedHeader");b(this,"_unprotectedHeader");if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new F("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!vr(this._protectedHeader,this._unprotectedHeader))throw new F("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...this._protectedHeader,...this._unprotectedHeader},n=Lr(F,new Map([["b64",!0]]),r?.crit,this._protectedHeader,o),s=!0;if(n.has("b64")&&(s=this._protectedHeader.b64,typeof s!="boolean"))throw new F('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:i}=o;if(typeof i!="string"||!i)throw new F('JWS "alg" (Algorithm) Header Parameter missing or invalid');Nr(i,e,"sign");let c=this._payload;s&&(c=J.encode(Pe(c)));let l;this._protectedHeader?l=J.encode(Pe(JSON.stringify(this._protectedHeader))):l=J.encode("");let u=gr(l,J.encode("."),c),h=await _r(i,e,u),f={signature:Pe(h),payload:""};return s&&(f.payload=pt.decode(c)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=pt.decode(l)),f}};var Ne=class{constructor(e){b(this,"_flattened");this._flattened=new $e(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,r){let o=await this._flattened.sign(e,r);if(o.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${o.protected}.${o.payload}.${o.signature}`}};function z(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}var Le=class{constructor(e={}){b(this,"_payload");if(!de(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return typeof e=="number"?this._payload={...this._payload,nbf:z("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:z("setNotBefore",H(e))}:this._payload={...this._payload,nbf:H(new Date)+xe(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:z("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:z("setExpirationTime",H(e))}:this._payload={...this._payload,exp:H(new Date)+xe(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:H(new Date)}:e instanceof Date?this._payload={...this._payload,iat:z("setIssuedAt",H(e))}:typeof e=="string"?this._payload={...this._payload,iat:z("setIssuedAt",H(new Date)+xe(e))}:this._payload={...this._payload,iat:z("setIssuedAt",e)},this}};var me=class extends Le{constructor(){super(...arguments);b(this,"_protectedHeader")}setProtectedHeader(r){return this._protectedHeader=r,this}async sign(r,o){let n=new Ne(J.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new ue("JWTs MUST NOT use unencoded payload");return n.sign(r,o)}};import{createHmac as Ei,createPrivateKey as Si,randomBytes as Ri}from"node:crypto";import{existsSync as Ai,readFileSync as jr,writeFileSync as Fr}from"node:fs";import{basename as Br,extname as Ii,resolve as It}from"node:path";import{isPromise as bi}from"node:util/types";import{extract as vi}from"tar";function W(t){console.log(JSON.stringify(t,null,2))}async function bt(t,e,r){let o=e.source,n=De(o);if(!n)return;console.log("Saving source code...");let s=await t.createAttachment(n,Br(o),Ti(o));console.log("Updating bot...");let i=await t.updateResource({...r,sourceCode:s});console.log("Success! New bot version: "+i.meta?.versionId)}async function vt(t,e,r){let o=e.dist??e.source,n=De(o);if(!n)return;console.log("Deploying bot...");let s=await t.post(t.fhirUrl("Bot",r.id,"$deploy"),{code:n,filename:Br(o)});console.log("Deploy result: "+s.issue?.[0]?.details?.text)}async function Pt(t,e,r,o,n,s,i){let c={name:e,description:"",runtimeVersion:s},l=await t.post("admin/projects/"+r+"/bot",c),u=await t.readResource("Bot",l.id),h={name:e,id:l.id,source:o,dist:n};await bt(t,h,u),await vt(t,h,u),console.log(`Success! Bot created: ${u.id}`),i&&Pi(h)}function Kr(t){let e=new RegExp("^"+Ci(t).replace(/\\\*/g,".*")+"$"),r=M()?.bots?.filter(o=>e.test(o.name));return r||[]}function D(t,e){if(e?.file)return e.file;let r=["medplum"];return t&&r.push(t),r.push("config"),e?.server&&r.push("server"),r.push("json"),r.join(".")}function v(t,e){Fr(It(t),JSON.stringify(e,void 0,2),"utf-8")}function M(t,e){let r=D(t,e),o=De(r);if(o)return JSON.parse(o)}function Wr(t){let e=De(D(t,{server:!0}));if(e)return JSON.parse(e)}function De(t){let e=It(t);return Ai(e)?jr(e,"utf8"):""}function Pi(t){let e=M()??{};e.bots||(e.bots=[]),e.bots.push(t),Fr("medplum.config.json",JSON.stringify(e,null,2),"utf8"),console.log(`Bot added to config: ${t.id}`)}function Ci(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function qr(t){let o=0,n=0;return vi({cwd:t,filter:(s,i)=>{if(o++,o>100)throw new Error("Tar extractor reached max number of files");if(n+=i.size,n>10485760)throw new Error("Tar extractor reached max size");return!0}})}function Ct(){return{url:"http://hl7.org/fhir/StructureDefinition/data-absent-reason",valueCode:"unsupported"}}function Ti(t){let e=Ii(t).toLowerCase();return[".cjs",".mjs",".js"].includes(e)?At.JAVASCRIPT:[".cts",".mts",".ts"].includes(e)?At.TYPESCRIPT:At.TEXT}function ke(t,e){let r=new k(t),o={name:t,...e};return r.setObject("options",o),o}function Hr(t){return new k(t).getObject("options")}async function Gr(t,e){let r={typ:"JWT",alg:"HS256"},o=Math.floor(Date.now()/1e3),n={aud:`${e.baseUrl}${e.audience}`,iss:e.issuer,sub:e.subject,nbf:o,iat:o,exp:o+604800},s=Ur(JSON.stringify(r)),i=Ur(JSON.stringify(n)),c=`${s}.${i}`,l=Ei("sha256",e.clientSecret).update(c).digest("base64url"),u=`${c}.${l}`;await t.startJwtBearerLogin(e.clientId,u,e.scope??"")}async function Vr(t,e){let r=Si(jr(It(e.privateKeyPath))),o=await new me({}).setProtectedHeader({alg:"RS384",typ:"JWT"}).setIssuer(e.clientId).setSubject(e.clientId).setAudience(`${e.baseUrl}${e.audience}`).setJti(Ri(16).toString("hex")).setIssuedAt().setExpirationTime("5m").sign(r);await t.startJwtAssertionLogin(o)}function y(t,e){e.configureHelp({showGlobalOptions:!0}),t.addCommand(e)}var g=class extends wi{action(e){let r=Oi(this,e);return super._actionHandler=r,this}resetOptionDefaults(){this._optionValues={};for(let e of this.options)e.defaultValue!==void 0&&(this._optionValues[e.attributeName()]=e.defaultValue)}};function Oi(t,e){return async r=>{let o=t.registeredArguments.length,n=r.slice(0,o);n[o]=t.optsWithGlobals();try{let s=e(...n);bi(s)&&await s}finally{t.resetOptionDefaults()}}}var Xr=new g("status").aliases(["info","list","ls"]),zr=new g("ping"),Yr=new g("push"),Zr=new g("reload-config"),Qr=new g("upgrade"),Y=new g("agent");y(Y,Xr);y(Y,zr);y(Y,Yr);y(Y,Zr);y(Y,Qr);Xr.description("Get the status of a specified agent").argument("[agentIds...]","The ID(s) of the agent(s) to get the status of").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to get the status of. Mutually exclusive with [agentIds...] arg").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$bulk-status",agentIds:t,options:e,parseSuccessfulResponse:r=>{let o=Di(r.result,{required:["status","version"],optional:["lastUpdated"]});return{id:r.agent.id,name:r.agent.name,enabledStatus:r.agent.status,version:o.version,connectionStatus:o.status,statusLastUpdated:o.lastUpdated??"N/A"}}})});zr.description("Ping a host from a specified agent").argument("<ipOrDomain>","The IPv4 address or domain name to ping").argument("[agentId]","Conditionally optional ID of the agent to ping from. Mutually exclusive with --criteria <criteria> option").option("--count <count>","An optional amount of pings to issue before returning results","1").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to ping from. Mutually exclusive with [agentId] arg").action(async(t,e,r)=>{let o=await R(r),n=await eo(o,e,r),s=Number.parseInt(r.count,10);if(Number.isNaN(s))throw new Error("--count <count> must be an integer if specified");try{let i=await o.pushToAgent(n,t,`PING ${s}`,Jr.PING,!0,{maxRetries:0});console.info(i)}catch(i){throw new Error("Unexpected response from agent while pinging",{cause:i})}});Yr.description("Push a message to a target device via a specified agent").argument("<deviceId>","The ID of the device to push the message to").argument("<message>","The message to send to the destination device").argument("[agentId]","Conditionally optional ID of the agent to send the message from. Mutually exclusive with --criteria <criteria> option").option("--content-type <contentType>","The content type of the message",Jr.HL7_V2).option("--no-wait","Tells the server not to wait for a response from the destination device").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to ping from. Mutually exclusive with [agentId] arg").action(async(t,e,r,o)=>{let n=await R(o),s=await eo(n,r,o),i;try{i=await n.pushToAgent(s,{reference:`Device/${t}`},e,o.contentType,o.wait!==!1,{maxRetries:0})}catch(c){throw new Error("Unexpected response from agent while pushing message to agent",{cause:c})}console.info(i)});Zr.description("Reload the config for the specified agent(s)").argument("[agentIds...]","The ID(s) of the agent(s) for which the config should be reloaded. Mutually exclusive with --criteria <criteria> flag").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent(s) for which to notify to reload their config. Mutually exclusive with [agentIds...] arg").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$reload-config",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name})})});Qr.description("Upgrade the version for the specified agent(s)").argument("[agentIds...]","The ID(s) of the agent(s) that should be upgraded. Mutually exclusive with --criteria <criteria> flag").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent(s) to upgrade. Mutually exclusive with [agentIds...] arg").option("--version <version>","An optional version to upgrade to. Defaults to the latest version if flag not included").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$upgrade",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name,version:e.version??"latest"})})});async function Ot({operation:t,agentIds:e,options:r,parseSuccessfulResponse:o}){let n=Mi(e,r),s=await R(r),i=n.type==="criteria"?n.criteria:`Agent?_id=${n.ids.join(",")}`,c=new URLSearchParams(i.split("?")[1]),l;try{let p=s.fhirUrl("Agent",t);p.search=c.toString(),l=await s.get(p,{cache:"reload"})}catch(p){throw new Error(`Operation '${t}' failed`,{cause:p})}if(r.output==="json"){console.info(JSON.stringify(l,null,2));return}let u=[],h=[];switch(l.resourceType){case"Bundle":{let p=Ni(l);for(let j of p)j.result.resourceType==="Parameters"||xi(j.result)?u.push(j):h.push(j);break}case"Parameters":case"OperationOutcome":{let p=await s.searchOne("Agent",c,{cache:"reload"});if(!p)throw new Error("Agent not found");l.resourceType==="Parameters"?u.push({agent:p,result:l}):h.push({agent:p,result:l});break}default:throw new Error(`Invalid result received for '${t}' operation: ${JSON.stringify(l)}`)}let f=[];for(let p of u){let j=o(p);f.push(j)}let S=[];for(let p of h){let lt=p.result.issue?.[0],Ms={id:p.agent.id,name:p.agent.name,severity:lt.severity,code:lt.code,details:lt.details?.text??"No details to show"};S.push(Ms)}console.info(`
2
+ var _s=Object.create;var ut=Object.defineProperty;var Us=Object.getOwnPropertyDescriptor;var js=Object.getOwnPropertyNames;var Fs=Object.getPrototypeOf,Bs=Object.prototype.hasOwnProperty;var Ks=(t,e,r)=>e in t?ut(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var dr=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ws=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of js(e))!Bs.call(t,n)&&n!==r&&ut(t,n,{get:()=>e[n],enumerable:!(o=Us(e,n))||o.enumerable});return t};var mr=(t,e,r)=>(r=t!=null?_s(Fs(t)):{},Ws(e||!t||!t.__esModule?ut(r,"default",{value:t,enumerable:!0}):r,t));var b=(t,e,r)=>Ks(t,typeof e!="symbol"?e+"":e,r);var he=w((zm,no)=>{"use strict";var Qi="2.0.0",ea=Number.MAX_SAFE_INTEGER||9007199254740991,ta=16,ra=250,oa=["major","premajor","minor","preminor","patch","prepatch","prerelease"];no.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:ta,MAX_SAFE_BUILD_LENGTH:ra,MAX_SAFE_INTEGER:ea,RELEASE_TYPES:oa,SEMVER_SPEC_VERSION:Qi,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var ge=w((Ym,so)=>{"use strict";var na=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};so.exports=na});var re=w((_,io)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Dt,MAX_SAFE_BUILD_LENGTH:sa,MAX_LENGTH:ia}=he(),aa=ge();_=io.exports={};var ca=_.re=[],la=_.safeRe=[],d=_.src=[],ua=_.safeSrc=[],m=_.t={},pa=0,kt="[a-zA-Z0-9-]",da=[["\\s",1],["\\d",ia],[kt,sa]],ma=t=>{for(let[e,r]of da)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},E=(t,e,r)=>{let o=ma(e),n=pa++;aa(t,n,e),m[t]=n,d[n]=e,ua[n]=o,ca[n]=new RegExp(e,r?"g":void 0),la[n]=new RegExp(o,r?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*");E("NUMERICIDENTIFIERLOOSE","\\d+");E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${kt}*`);E("MAINVERSION",`(${d[m.NUMERICIDENTIFIER]})\\.(${d[m.NUMERICIDENTIFIER]})\\.(${d[m.NUMERICIDENTIFIER]})`);E("MAINVERSIONLOOSE",`(${d[m.NUMERICIDENTIFIERLOOSE]})\\.(${d[m.NUMERICIDENTIFIERLOOSE]})\\.(${d[m.NUMERICIDENTIFIERLOOSE]})`);E("PRERELEASEIDENTIFIER",`(?:${d[m.NUMERICIDENTIFIER]}|${d[m.NONNUMERICIDENTIFIER]})`);E("PRERELEASEIDENTIFIERLOOSE",`(?:${d[m.NUMERICIDENTIFIERLOOSE]}|${d[m.NONNUMERICIDENTIFIER]})`);E("PRERELEASE",`(?:-(${d[m.PRERELEASEIDENTIFIER]}(?:\\.${d[m.PRERELEASEIDENTIFIER]})*))`);E("PRERELEASELOOSE",`(?:-?(${d[m.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${d[m.PRERELEASEIDENTIFIERLOOSE]})*))`);E("BUILDIDENTIFIER",`${kt}+`);E("BUILD",`(?:\\+(${d[m.BUILDIDENTIFIER]}(?:\\.${d[m.BUILDIDENTIFIER]})*))`);E("FULLPLAIN",`v?${d[m.MAINVERSION]}${d[m.PRERELEASE]}?${d[m.BUILD]}?`);E("FULL",`^${d[m.FULLPLAIN]}$`);E("LOOSEPLAIN",`[v=\\s]*${d[m.MAINVERSIONLOOSE]}${d[m.PRERELEASELOOSE]}?${d[m.BUILD]}?`);E("LOOSE",`^${d[m.LOOSEPLAIN]}$`);E("GTLT","((?:<|>)?=?)");E("XRANGEIDENTIFIERLOOSE",`${d[m.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);E("XRANGEIDENTIFIER",`${d[m.NUMERICIDENTIFIER]}|x|X|\\*`);E("XRANGEPLAIN",`[v=\\s]*(${d[m.XRANGEIDENTIFIER]})(?:\\.(${d[m.XRANGEIDENTIFIER]})(?:\\.(${d[m.XRANGEIDENTIFIER]})(?:${d[m.PRERELEASE]})?${d[m.BUILD]}?)?)?`);E("XRANGEPLAINLOOSE",`[v=\\s]*(${d[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[m.XRANGEIDENTIFIERLOOSE]})(?:\\.(${d[m.XRANGEIDENTIFIERLOOSE]})(?:${d[m.PRERELEASELOOSE]})?${d[m.BUILD]}?)?)?`);E("XRANGE",`^${d[m.GTLT]}\\s*${d[m.XRANGEPLAIN]}$`);E("XRANGELOOSE",`^${d[m.GTLT]}\\s*${d[m.XRANGEPLAINLOOSE]}$`);E("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Dt}})(?:\\.(\\d{1,${Dt}}))?(?:\\.(\\d{1,${Dt}}))?`);E("COERCE",`${d[m.COERCEPLAIN]}(?:$|[^\\d])`);E("COERCEFULL",d[m.COERCEPLAIN]+`(?:${d[m.PRERELEASE]})?(?:${d[m.BUILD]})?(?:$|[^\\d])`);E("COERCERTL",d[m.COERCE],!0);E("COERCERTLFULL",d[m.COERCEFULL],!0);E("LONETILDE","(?:~>?)");E("TILDETRIM",`(\\s*)${d[m.LONETILDE]}\\s+`,!0);_.tildeTrimReplace="$1~";E("TILDE",`^${d[m.LONETILDE]}${d[m.XRANGEPLAIN]}$`);E("TILDELOOSE",`^${d[m.LONETILDE]}${d[m.XRANGEPLAINLOOSE]}$`);E("LONECARET","(?:\\^)");E("CARETTRIM",`(\\s*)${d[m.LONECARET]}\\s+`,!0);_.caretTrimReplace="$1^";E("CARET",`^${d[m.LONECARET]}${d[m.XRANGEPLAIN]}$`);E("CARETLOOSE",`^${d[m.LONECARET]}${d[m.XRANGEPLAINLOOSE]}$`);E("COMPARATORLOOSE",`^${d[m.GTLT]}\\s*(${d[m.LOOSEPLAIN]})$|^$`);E("COMPARATOR",`^${d[m.GTLT]}\\s*(${d[m.FULLPLAIN]})$|^$`);E("COMPARATORTRIM",`(\\s*)${d[m.GTLT]}\\s*(${d[m.LOOSEPLAIN]}|${d[m.XRANGEPLAIN]})`,!0);_.comparatorTrimReplace="$1$2$3";E("HYPHENRANGE",`^\\s*(${d[m.XRANGEPLAIN]})\\s+-\\s+(${d[m.XRANGEPLAIN]})\\s*$`);E("HYPHENRANGELOOSE",`^\\s*(${d[m.XRANGEPLAINLOOSE]})\\s+-\\s+(${d[m.XRANGEPLAINLOOSE]})\\s*$`);E("STAR","(<|>)?=?\\s*\\*");E("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");E("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var _e=w((Zm,ao)=>{"use strict";var fa=Object.freeze({loose:!0}),ha=Object.freeze({}),ga=t=>t?typeof t!="object"?fa:t:ha;ao.exports=ga});var Mt=w((Qm,uo)=>{"use strict";var co=/^[0-9]+$/,lo=(t,e)=>{let r=co.test(t),o=co.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},ya=(t,e)=>lo(e,t);uo.exports={compareIdentifiers:lo,rcompareIdentifiers:ya}});var P=w((ef,ho)=>{"use strict";var Ue=ge(),{MAX_LENGTH:po,MAX_SAFE_INTEGER:je}=he(),{safeRe:mo,safeSrc:fo,t:Fe}=re(),wa=_e(),{compareIdentifiers:oe}=Mt(),_t=class t{constructor(e,r){if(r=wa(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>po)throw new TypeError(`version is longer than ${po} characters`);Ue("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?mo[Fe.LOOSE]:mo[Fe.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>je||this.major<0)throw new TypeError("Invalid major version");if(this.minor>je||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>je||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<je)return s}return n}):this.prerelease=[],this.build=o[5]?o[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(Ue("SemVer.compare",this.version,this.options,e),!(e instanceof t)){if(typeof e=="string"&&e===this.version)return 0;e=new t(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof t||(e=new t(e,this.options)),oe(this.major,e.major)||oe(this.minor,e.minor)||oe(this.patch,e.patch)}comparePre(e){if(e instanceof t||(e=new t(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{let o=this.prerelease[r],n=e.prerelease[r];if(Ue("prerelease compare",r,o,n),o===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(o===void 0)return-1;if(o===n)continue;return oe(o,n)}while(++r)}compareBuild(e){e instanceof t||(e=new t(e,this.options));let r=0;do{let o=this.build[r],n=e.build[r];if(Ue("build compare",r,o,n),o===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(o===void 0)return-1;if(o===n)continue;return oe(o,n)}while(++r)}inc(e,r,o){if(e.startsWith("pre")){if(!r&&o===!1)throw new Error("invalid increment argument: identifier is empty");if(r){let n=new RegExp(`^${this.options.loose?fo[Fe.PRERELEASELOOSE]:fo[Fe.PRERELEASE]}$`),s=`-${r}`.match(n);if(!s||s[1]!==r)throw new Error(`invalid identifier: ${r}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,o);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,o);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,o),this.inc("pre",r,o);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,o),this.inc("pre",r,o);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 n=Number(o)?1:0;if(this.prerelease.length===0)this.prerelease=[n];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n)}}if(r){let s=[r,n];o===!1&&(s=[r]),oe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};ho.exports=_t});var Q=w((tf,yo)=>{"use strict";var go=P(),Ea=(t,e,r=!1)=>{if(t instanceof go)return t;try{return new go(t,e)}catch(o){if(!r)return null;throw o}};yo.exports=Ea});var Eo=w((rf,wo)=>{"use strict";var Sa=Q(),Ra=(t,e)=>{let r=Sa(t,e);return r?r.version:null};wo.exports=Ra});var Ro=w((of,So)=>{"use strict";var Aa=Q(),Ia=(t,e)=>{let r=Aa(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};So.exports=Ia});var bo=w((nf,Io)=>{"use strict";var Ao=P(),ba=(t,e,r,o,n)=>{typeof r=="string"&&(n=o,o=r,r=void 0);try{return new Ao(t instanceof Ao?t.version:t,r).inc(e,o,n).version}catch{return null}};Io.exports=ba});var Co=w((sf,Po)=>{"use strict";var vo=Q(),va=(t,e)=>{let r=vo(t,null,!0),o=vo(e,null,!0),n=r.compare(o);if(n===0)return null;let s=n>0,i=s?r:o,c=s?o:r,l=!!i.prerelease.length;if(!!c.prerelease.length&&!l){if(!c.patch&&!c.minor)return"major";if(c.compareMain(i)===0)return c.minor&&!c.patch?"minor":"patch"}let h=l?"pre":"";return r.major!==o.major?h+"major":r.minor!==o.minor?h+"minor":r.patch!==o.patch?h+"patch":"prerelease"};Po.exports=va});var Oo=w((af,To)=>{"use strict";var Pa=P(),Ca=(t,e)=>new Pa(t,e).major;To.exports=Ca});var $o=w((cf,xo)=>{"use strict";var Ta=P(),Oa=(t,e)=>new Ta(t,e).minor;xo.exports=Oa});var Lo=w((lf,No)=>{"use strict";var xa=P(),$a=(t,e)=>new xa(t,e).patch;No.exports=$a});var ko=w((uf,Do)=>{"use strict";var Na=Q(),La=(t,e)=>{let r=Na(t,e);return r&&r.prerelease.length?r.prerelease:null};Do.exports=La});var N=w((pf,_o)=>{"use strict";var Mo=P(),Da=(t,e,r)=>new Mo(t,r).compare(new Mo(e,r));_o.exports=Da});var jo=w((df,Uo)=>{"use strict";var ka=N(),Ma=(t,e,r)=>ka(e,t,r);Uo.exports=Ma});var Bo=w((mf,Fo)=>{"use strict";var _a=N(),Ua=(t,e)=>_a(t,e,!0);Fo.exports=Ua});var Be=w((ff,Wo)=>{"use strict";var Ko=P(),ja=(t,e,r)=>{let o=new Ko(t,r),n=new Ko(e,r);return o.compare(n)||o.compareBuild(n)};Wo.exports=ja});var Ho=w((hf,qo)=>{"use strict";var Fa=Be(),Ba=(t,e)=>t.sort((r,o)=>Fa(r,o,e));qo.exports=Ba});var Vo=w((gf,Go)=>{"use strict";var Ka=Be(),Wa=(t,e)=>t.sort((r,o)=>Ka(o,r,e));Go.exports=Wa});var ye=w((yf,Jo)=>{"use strict";var qa=N(),Ha=(t,e,r)=>qa(t,e,r)>0;Jo.exports=Ha});var Ke=w((wf,Xo)=>{"use strict";var Ga=N(),Va=(t,e,r)=>Ga(t,e,r)<0;Xo.exports=Va});var Ut=w((Ef,zo)=>{"use strict";var Ja=N(),Xa=(t,e,r)=>Ja(t,e,r)===0;zo.exports=Xa});var jt=w((Sf,Yo)=>{"use strict";var za=N(),Ya=(t,e,r)=>za(t,e,r)!==0;Yo.exports=Ya});var We=w((Rf,Zo)=>{"use strict";var Za=N(),Qa=(t,e,r)=>Za(t,e,r)>=0;Zo.exports=Qa});var qe=w((Af,Qo)=>{"use strict";var ec=N(),tc=(t,e,r)=>ec(t,e,r)<=0;Qo.exports=tc});var Ft=w((If,en)=>{"use strict";var rc=Ut(),oc=jt(),nc=ye(),sc=We(),ic=Ke(),ac=qe(),cc=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return rc(t,r,o);case"!=":return oc(t,r,o);case">":return nc(t,r,o);case">=":return sc(t,r,o);case"<":return ic(t,r,o);case"<=":return ac(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};en.exports=cc});var rn=w((bf,tn)=>{"use strict";var lc=P(),uc=Q(),{safeRe:He,t:Ge}=re(),pc=(t,e)=>{if(t instanceof lc)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?He[Ge.COERCEFULL]:He[Ge.COERCE]);else{let l=e.includePrerelease?He[Ge.COERCERTLFULL]:He[Ge.COERCERTL],u;for(;(u=l.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||u.index+u[0].length!==r.index+r[0].length)&&(r=u),l.lastIndex=u.index+u[1].length+u[2].length;l.lastIndex=-1}if(r===null)return null;let o=r[2],n=r[3]||"0",s=r[4]||"0",i=e.includePrerelease&&r[5]?`-${r[5]}`:"",c=e.includePrerelease&&r[6]?`+${r[6]}`:"";return uc(`${o}.${n}.${s}${i}${c}`,e)};tn.exports=pc});var nn=w((vf,on)=>{"use strict";var Bt=class{constructor(){this.max=1e3,this.map=new Map}get(e){let r=this.map.get(e);if(r!==void 0)return this.map.delete(e),this.map.set(e,r),r}delete(e){return this.map.delete(e)}set(e,r){if(!this.delete(e)&&r!==void 0){if(this.map.size>=this.max){let n=this.map.keys().next().value;this.delete(n)}this.map.set(e,r)}return this}};on.exports=Bt});var L=w((Pf,ln)=>{"use strict";var dc=/\s+/g,Kt=class t{constructor(e,r){if(r=fc(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof Wt)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().replace(dc," "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(n=>!an(n[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Rc(n[0])){this.set=[n];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let r=this.set[e];for(let o=0;o<r.length;o++)o>0&&(this.formatted+=" "),this.formatted+=r[o].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&Ec)|(this.options.loose&&Sc))+":"+e,n=sn.get(o);if(n)return n;let s=this.options.loose,i=s?O[C.HYPHENRANGELOOSE]:O[C.HYPHENRANGE];e=e.replace(i,$c(this.options.includePrerelease)),A("hyphen replace",e),e=e.replace(O[C.COMPARATORTRIM],gc),A("comparator trim",e),e=e.replace(O[C.TILDETRIM],yc),A("tilde trim",e),e=e.replace(O[C.CARETTRIM],wc),A("caret trim",e);let c=e.split(" ").map(f=>Ac(f,this.options)).join(" ").split(/\s+/).map(f=>xc(f,this.options));s&&(c=c.filter(f=>(A("loose invalid filter",f,this.options),!!f.match(O[C.COMPARATORLOOSE])))),A("range list",c);let l=new Map,u=c.map(f=>new Wt(f,this.options));for(let f of u){if(an(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let h=[...l.values()];return sn.set(o,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>cn(o,r)&&e.set.some(n=>cn(n,r)&&o.every(s=>n.every(i=>s.intersects(i,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new hc(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Nc(this.set[r],e,this.options))return!0;return!1}};ln.exports=Kt;var mc=nn(),sn=new mc,fc=_e(),Wt=we(),A=ge(),hc=P(),{safeRe:O,t:C,comparatorTrimReplace:gc,tildeTrimReplace:yc,caretTrimReplace:wc}=re(),{FLAG_INCLUDE_PRERELEASE:Ec,FLAG_LOOSE:Sc}=he(),an=t=>t.value==="<0.0.0-0",Rc=t=>t.value==="",cn=(t,e)=>{let r=!0,o=t.slice(),n=o.pop();for(;r&&o.length;)r=o.every(s=>n.intersects(s,e)),n=o.pop();return r},Ac=(t,e)=>(A("comp",t,e),t=vc(t,e),A("caret",t),t=Ic(t,e),A("tildes",t),t=Cc(t,e),A("xrange",t),t=Oc(t,e),A("stars",t),t),T=t=>!t||t.toLowerCase()==="x"||t==="*",Ic=(t,e)=>t.trim().split(/\s+/).map(r=>bc(r,e)).join(" "),bc=(t,e)=>{let r=e.loose?O[C.TILDELOOSE]:O[C.TILDE];return t.replace(r,(o,n,s,i,c)=>{A("tilde",t,o,n,s,i,c);let l;return T(n)?l="":T(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:T(i)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:c?(A("replaceTilde pr",c),l=`>=${n}.${s}.${i}-${c} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${i} <${n}.${+s+1}.0-0`,A("tilde return",l),l})},vc=(t,e)=>t.trim().split(/\s+/).map(r=>Pc(r,e)).join(" "),Pc=(t,e)=>{A("caret",t,e);let r=e.loose?O[C.CARETLOOSE]:O[C.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(n,s,i,c,l)=>{A("caret",t,n,s,i,c,l);let u;return T(s)?u="":T(i)?u=`>=${s}.0.0${o} <${+s+1}.0.0-0`:T(c)?s==="0"?u=`>=${s}.${i}.0${o} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.0${o} <${+s+1}.0.0-0`:l?(A("replaceCaret pr",l),s==="0"?i==="0"?u=`>=${s}.${i}.${c}-${l} <${s}.${i}.${+c+1}-0`:u=`>=${s}.${i}.${c}-${l} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.${c}-${l} <${+s+1}.0.0-0`):(A("no pr"),s==="0"?i==="0"?u=`>=${s}.${i}.${c}${o} <${s}.${i}.${+c+1}-0`:u=`>=${s}.${i}.${c}${o} <${s}.${+i+1}.0-0`:u=`>=${s}.${i}.${c} <${+s+1}.0.0-0`),A("caret return",u),u})},Cc=(t,e)=>(A("replaceXRanges",t,e),t.split(/\s+/).map(r=>Tc(r,e)).join(" ")),Tc=(t,e)=>{t=t.trim();let r=e.loose?O[C.XRANGELOOSE]:O[C.XRANGE];return t.replace(r,(o,n,s,i,c,l)=>{A("xRange",t,o,n,s,i,c,l);let u=T(s),h=u||T(i),f=h||T(c),S=f;return n==="="&&S&&(n=""),l=e.includePrerelease?"-0":"",u?n===">"||n==="<"?o="<0.0.0-0":o="*":n&&S?(h&&(i=0),c=0,n===">"?(n=">=",h?(s=+s+1,i=0,c=0):(i=+i+1,c=0)):n==="<="&&(n="<",h?s=+s+1:i=+i+1),n==="<"&&(l="-0"),o=`${n+s}.${i}.${c}${l}`):h?o=`>=${s}.0.0${l} <${+s+1}.0.0-0`:f&&(o=`>=${s}.${i}.0${l} <${s}.${+i+1}.0-0`),A("xRange return",o),o})},Oc=(t,e)=>(A("replaceStars",t,e),t.trim().replace(O[C.STAR],"")),xc=(t,e)=>(A("replaceGTE0",t,e),t.trim().replace(O[e.includePrerelease?C.GTE0PRE:C.GTE0],"")),$c=t=>(e,r,o,n,s,i,c,l,u,h,f,S)=>(T(o)?r="":T(n)?r=`>=${o}.0.0${t?"-0":""}`:T(s)?r=`>=${o}.${n}.0${t?"-0":""}`:i?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,T(u)?l="":T(h)?l=`<${+u+1}.0.0-0`:T(f)?l=`<${u}.${+h+1}.0-0`:S?l=`<=${u}.${h}.${f}-${S}`:t?l=`<${u}.${h}.${+f+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),Nc=(t,e,r)=>{for(let o=0;o<t.length;o++)if(!t[o].test(e))return!1;if(e.prerelease.length&&!r.includePrerelease){for(let o=0;o<t.length;o++)if(A(t[o].semver),t[o].semver!==Wt.ANY&&t[o].semver.prerelease.length>0){let n=t[o].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var we=w((Cf,hn)=>{"use strict";var Ee=Symbol("SemVer ANY"),Gt=class t{static get ANY(){return Ee}constructor(e,r){if(r=un(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),Ht("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Ee?this.value="":this.value=this.operator+this.semver.version,Ht("comp",this)}parse(e){let r=this.options.loose?pn[dn.COMPARATORLOOSE]:pn[dn.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new mn(o[2],this.options.loose):this.semver=Ee}toString(){return this.value}test(e){if(Ht("Comparator.test",e,this.options.loose),this.semver===Ee||e===Ee)return!0;if(typeof e=="string")try{e=new mn(e,this.options)}catch{return!1}return qt(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new fn(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new fn(this.value,r).test(e.semver):(r=un(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||qt(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||qt(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};hn.exports=Gt;var un=_e(),{safeRe:pn,t:dn}=re(),qt=Ft(),Ht=ge(),mn=P(),fn=L()});var Se=w((Tf,gn)=>{"use strict";var Lc=L(),Dc=(t,e,r)=>{try{e=new Lc(e,r)}catch{return!1}return e.test(t)};gn.exports=Dc});var wn=w((Of,yn)=>{"use strict";var kc=L(),Mc=(t,e)=>new kc(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));yn.exports=Mc});var Sn=w((xf,En)=>{"use strict";var _c=P(),Uc=L(),jc=(t,e,r)=>{let o=null,n=null,s=null;try{s=new Uc(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===-1)&&(o=i,n=new _c(o,r))}),o};En.exports=jc});var An=w(($f,Rn)=>{"use strict";var Fc=P(),Bc=L(),Kc=(t,e,r)=>{let o=null,n=null,s=null;try{s=new Bc(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===1)&&(o=i,n=new Fc(o,r))}),o};Rn.exports=Kc});var vn=w((Nf,bn)=>{"use strict";var Vt=P(),Wc=L(),In=ye(),qc=(t,e)=>{t=new Wc(t,e);let r=new Vt("0.0.0");if(t.test(r)||(r=new Vt("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o<t.set.length;++o){let n=t.set[o],s=null;n.forEach(i=>{let c=new Vt(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!s||In(c,s))&&(s=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),s&&(!r||In(r,s))&&(r=s)}return r&&t.test(r)?r:null};bn.exports=qc});var Cn=w((Lf,Pn)=>{"use strict";var Hc=L(),Gc=(t,e)=>{try{return new Hc(t,e).range||"*"}catch{return null}};Pn.exports=Gc});var Ve=w((Df,$n)=>{"use strict";var Vc=P(),xn=we(),{ANY:Jc}=xn,Xc=L(),zc=Se(),Tn=ye(),On=Ke(),Yc=qe(),Zc=We(),Qc=(t,e,r,o)=>{t=new Vc(t,o),e=new Xc(e,o);let n,s,i,c,l;switch(r){case">":n=Tn,s=Yc,i=On,c=">",l=">=";break;case"<":n=On,s=Zc,i=Tn,c="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(zc(t,e,o))return!1;for(let u=0;u<e.set.length;++u){let h=e.set[u],f=null,S=null;if(h.forEach(p=>{p.semver===Jc&&(p=new xn(">=0.0.0")),f=f||p,S=S||p,n(p.semver,f.semver,o)?f=p:i(p.semver,S.semver,o)&&(S=p)}),f.operator===c||f.operator===l||(!S.operator||S.operator===c)&&s(t,S.semver))return!1;if(S.operator===l&&i(t,S.semver))return!1}return!0};$n.exports=Qc});var Ln=w((kf,Nn)=>{"use strict";var el=Ve(),tl=(t,e,r)=>el(t,e,">",r);Nn.exports=tl});var kn=w((Mf,Dn)=>{"use strict";var rl=Ve(),ol=(t,e,r)=>rl(t,e,"<",r);Dn.exports=ol});var Un=w((_f,_n)=>{"use strict";var Mn=L(),nl=(t,e,r)=>(t=new Mn(t,r),e=new Mn(e,r),t.intersects(e,r));_n.exports=nl});var Fn=w((Uf,jn)=>{"use strict";var sl=Se(),il=N();jn.exports=(t,e,r)=>{let o=[],n=null,s=null,i=t.sort((h,f)=>il(h,f,r));for(let h of i)sl(h,e,r)?(s=h,n||(n=h)):(s&&o.push([n,s]),s=null,n=null);n&&o.push([n,null]);let c=[];for(let[h,f]of o)h===f?c.push(h):!f&&h===i[0]?c.push("*"):f?h===i[0]?c.push(`<=${f}`):c.push(`${h} - ${f}`):c.push(`>=${h}`);let l=c.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return l.length<u.length?l:e}});var Gn=w((jf,Hn)=>{"use strict";var Bn=L(),Xt=we(),{ANY:Jt}=Xt,Re=Se(),zt=N(),al=(t,e,r={})=>{if(t===e)return!0;t=new Bn(t,r),e=new Bn(e,r);let o=!1;e:for(let n of t.set){for(let s of e.set){let i=ll(n,s,r);if(o=o||i!==null,i)continue e}if(o)return!1}return!0},cl=[new Xt(">=0.0.0-0")],Kn=[new Xt(">=0.0.0")],ll=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Jt){if(e.length===1&&e[0].semver===Jt)return!0;r.includePrerelease?t=cl:t=Kn}if(e.length===1&&e[0].semver===Jt){if(r.includePrerelease)return!0;e=Kn}let o=new Set,n,s;for(let p of t)p.operator===">"||p.operator===">="?n=Wn(n,p,r):p.operator==="<"||p.operator==="<="?s=qn(s,p,r):o.add(p.semver);if(o.size>1)return null;let i;if(n&&s){if(i=zt(n.semver,s.semver,r),i>0)return null;if(i===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let p of o){if(n&&!Re(p,String(n),r)||s&&!Re(p,String(s),r))return null;for(let j of e)if(!Re(p,String(j),r))return!1;return!0}let c,l,u,h,f=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,S=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;f&&f.prerelease.length===1&&s.operator==="<"&&f.prerelease[0]===0&&(f=!1);for(let p of e){if(h=h||p.operator===">"||p.operator===">=",u=u||p.operator==="<"||p.operator==="<=",n){if(S&&p.semver.prerelease&&p.semver.prerelease.length&&p.semver.major===S.major&&p.semver.minor===S.minor&&p.semver.patch===S.patch&&(S=!1),p.operator===">"||p.operator===">="){if(c=Wn(n,p,r),c===p&&c!==n)return!1}else if(n.operator===">="&&!Re(n.semver,String(p),r))return!1}if(s){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(l=qn(s,p,r),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Re(s.semver,String(p),r))return!1}if(!p.operator&&(s||n)&&i!==0)return!1}return!(n&&u&&!s&&i!==0||s&&h&&!n&&i!==0||S||f)},Wn=(t,e,r)=>{if(!t)return e;let o=zt(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},qn=(t,e,r)=>{if(!t)return e;let o=zt(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};Hn.exports=al});var Zt=w((Ff,Xn)=>{"use strict";var Yt=re(),Vn=he(),ul=P(),Jn=Mt(),pl=Q(),dl=Eo(),ml=Ro(),fl=bo(),hl=Co(),gl=Oo(),yl=$o(),wl=Lo(),El=ko(),Sl=N(),Rl=jo(),Al=Bo(),Il=Be(),bl=Ho(),vl=Vo(),Pl=ye(),Cl=Ke(),Tl=Ut(),Ol=jt(),xl=We(),$l=qe(),Nl=Ft(),Ll=rn(),Dl=we(),kl=L(),Ml=Se(),_l=wn(),Ul=Sn(),jl=An(),Fl=vn(),Bl=Cn(),Kl=Ve(),Wl=Ln(),ql=kn(),Hl=Un(),Gl=Fn(),Vl=Gn();Xn.exports={parse:pl,valid:dl,clean:ml,inc:fl,diff:hl,major:gl,minor:yl,patch:wl,prerelease:El,compare:Sl,rcompare:Rl,compareLoose:Al,compareBuild:Il,sort:bl,rsort:vl,gt:Pl,lt:Cl,eq:Tl,neq:Ol,gte:xl,lte:$l,cmp:Nl,coerce:Ll,Comparator:Dl,Range:kl,satisfies:Ml,toComparators:_l,maxSatisfying:Ul,minSatisfying:jl,minVersion:Fl,validRange:Bl,outside:Kl,gtr:Wl,ltr:ql,intersects:Hl,simplifyRange:Gl,subset:Vl,SemVer:ul,re:Yt.re,src:Yt.src,tokens:Yt.t,SEMVER_SPEC_VERSION:Vn.SEMVER_SPEC_VERSION,RELEASE_TYPES:Vn.RELEASE_TYPES,compareIdentifiers:Jn.compareIdentifiers,rcompareIdentifiers:Jn.rcompareIdentifiers}});import{MEDPLUM_VERSION as Lp,normalizeErrorString as pr}from"@medplum/core";import{CommanderError as ks,Option as Dp}from"commander";import kp from"dotenv";import{ContentType as Jr,isOk as xi,isUUID as $i}from"@medplum/core";import{Option as Tt}from"commander";import{MedplumClient as Xs}from"@medplum/core";import{ClientStorage as qs}from"@medplum/core";import{existsSync as fr,mkdirSync as Hs,readFileSync as Gs,writeFileSync as Vs}from"node:fs";import{homedir as Js}from"node:os";import{resolve as hr}from"node:path";var k=class extends qs{constructor(e){super(),this.dirName=hr(Js(),".medplum"),this.fileName=hr(this.dirName,e+".json")}clear(){this.writeFile({})}getString(e){return this.readFile()?.[e]}setString(e,r){let o=this.readFile()??{};r?o[e]=r:delete o[e],this.writeFile(o)}getObject(e){let r=this.getString(e);return r?JSON.parse(r):void 0}setObject(e,r){this.setString(e,r?JSON.stringify(r):void 0)}readFile(){if(fr(this.fileName))return JSON.parse(Gs(this.fileName,"utf8"))}writeFile(e){fr(this.dirName)||Hs(this.dirName),Vs(this.fileName,JSON.stringify(e,null,2),"utf8")}};async function R(t,e=!0){let r=t.profile??"default",o=new k(r),n=o.getObject("options");if(r!=="default"&&!n)throw new Error(`Profile "${r}" does not exist`);let{baseUrl:s,fhirUrlPath:i,accessToken:c,tokenUrl:l,authorizeUrl:u,clientId:h,clientSecret:f}=zs(t,o),S=t.fetch??fetch,p=new Xs({fetch:S,baseUrl:s,tokenUrl:l,fhirUrlPath:i,authorizeUrl:u,storage:o,onUnauthenticated:Ys,verbose:t.verbose});return e&&(c?p.setAccessToken(c):h&&f&&(p.setBasicAuth(h,f),n?.authType!=="basic"&&await p.startClientLogin(h,f))),p}function zs(t,e){let r=e.getObject("options"),o=t.baseUrl??r?.baseUrl??process.env.MEDPLUM_BASE_URL??"https://api.medplum.com/",n=t.fhirUrlPath??r?.fhirUrlPath??process.env.MEDPLUM_FHIR_URL_PATH,s=t.accessToken??r?.accessToken??process.env.MEDPLUM_CLIENT_ACCESS_TOKEN,i=t.tokenUrl??r?.tokenUrl??process.env.MEDPLUM_TOKEN_URL,c=t.authorizeUrl??r?.authorizeUrl??process.env.MEDPLUM_AUTHORIZE_URL,l=t.clientId??r?.clientId??process.env.MEDPLUM_CLIENT_ID,u=t.clientSecret??r?.clientSecret??process.env.MEDPLUM_CLIENT_SECRET;return{baseUrl:o,fhirUrlPath:n,accessToken:s,tokenUrl:i,authorizeUrl:c,clientId:l,clientSecret:u}}function Ys(){console.log("Unauthenticated: run `npx medplum login` to sign in")}import{ContentType as At,encodeBase64 as Ur}from"@medplum/core";import{Command as wi}from"commander";import{Buffer as Zs}from"node:buffer";var J=new TextEncoder,pt=new TextDecoder,Xp=2**32;function gr(...t){let e=t.reduce((n,{length:s})=>n+s,0),r=new Uint8Array(e),o=0;for(let n of t)r.set(n,o),o+=n.length;return r}var Pe=t=>Zs.from(t).toString("base64url");var X=class extends Error{constructor(r,o){super(r,o);b(this,"code","ERR_JOSE_GENERIC");this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}};b(X,"code","ERR_JOSE_GENERIC");var $=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JOSE_NOT_SUPPORTED")}};b($,"code","ERR_JOSE_NOT_SUPPORTED");var F=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JWS_INVALID")}};b(F,"code","ERR_JWS_INVALID");var ue=class extends X{constructor(){super(...arguments);b(this,"code","ERR_JWT_INVALID")}};b(ue,"code","ERR_JWT_INVALID");var yr,wr,dt=class extends(wr=X,yr=Symbol.asyncIterator,wr){constructor(r="multiple matching keys found in the JSON Web Key Set",o){super(r,o);b(this,yr);b(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}};b(dt,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS");import*as Er from"node:util";var Ce=t=>Er.types.isKeyObject(t);import*as Sr from"node:crypto";import*as Rr from"node:util";var ei=Sr.webcrypto,Ar=ei,ee=t=>Rr.types.isCryptoKey(t);function B(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function Te(t,e){return t.name===e}function mt(t){return parseInt(t.name.slice(4),10)}function ti(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function ri(t,e){if(e.length&&!e.some(r=>t.usages.includes(r))){let r="CryptoKey does not support this operation, its usages must include ";if(e.length>2){let o=e.pop();r+=`one of ${e.join(", ")}, or ${o}.`}else e.length===2?r+=`one of ${e[0]} or ${e[1]}.`:r+=`${e[0]}.`;throw new TypeError(r)}}function Ir(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!Te(t.algorithm,"HMAC"))throw B("HMAC");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Te(t.algorithm,"RSASSA-PKCS1-v1_5"))throw B("RSASSA-PKCS1-v1_5");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Te(t.algorithm,"RSA-PSS"))throw B("RSA-PSS");let o=parseInt(e.slice(2),10);if(mt(t.algorithm.hash)!==o)throw B(`SHA-${o}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw B("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!Te(t.algorithm,"ECDSA"))throw B("ECDSA");let o=ti(e);if(t.algorithm.namedCurve!==o)throw B(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}ri(t,r)}function br(t,e,...r){if(r=r.filter(Boolean),r.length>2){let o=r.pop();t+=`one of type ${r.join(", ")}, or ${o}.`}else r.length===2?t+=`one of type ${r[0]} or ${r[1]}.`:t+=`of type ${r[0]}.`;return e==null?t+=` Received ${e}`:typeof e=="function"&&e.name?t+=` Received function ${e.name}`:typeof e=="object"&&e!=null&&e.constructor?.name&&(t+=` Received an instance of ${e.constructor.name}`),t}var pe=(t,...e)=>br("Key must be ",t,...e);function ft(t,e,...r){return br(`Key for the ${t} algorithm must be `,e,...r)}var ht=t=>Ce(t)||ee(t),K=["KeyObject"];(globalThis.CryptoKey||Ar?.CryptoKey)&&K.push("CryptoKey");var oi=(...t)=>{let e=t.filter(Boolean);if(e.length===0||e.length===1)return!0;let r;for(let o of e){let n=Object.keys(o);if(!r||r.size===0){r=new Set(n);continue}for(let s of n){if(r.has(s))return!1;r.add(s)}}return!0},vr=oi;function ni(t){return typeof t=="object"&&t!==null}function de(t){if(!ni(t)||Object.prototype.toString.call(t)!=="[object Object]")return!1;if(Object.getPrototypeOf(t)===null)return!0;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}import{KeyObject as si}from"node:crypto";function q(t){return de(t)&&typeof t.kty=="string"}function Pr(t){return t.kty!=="oct"&&typeof t.d=="string"}function Cr(t){return t.kty!=="oct"&&typeof t.d>"u"}function Tr(t){return q(t)&&t.kty==="oct"&&typeof t.k=="string"}var ii=t=>{switch(t){case"prime256v1":return"P-256";case"secp384r1":return"P-384";case"secp521r1":return"P-521";case"secp256k1":return"secp256k1";default:throw new $("Unsupported key curve for this operation")}},ai=(t,e)=>{let r;if(ee(t))r=si.from(t);else if(Ce(t))r=t;else{if(q(t))return t.crv;throw new TypeError(pe(t,...K))}if(r.type==="secret")throw new TypeError('only "private" or "public" type keys can be used for this operation');switch(r.asymmetricKeyType){case"ed25519":case"ed448":return`Ed${r.asymmetricKeyType.slice(2)}`;case"x25519":case"x448":return`X${r.asymmetricKeyType.slice(1)}`;case"ec":{let o=r.asymmetricKeyDetails.namedCurve;return e?o:ii(o)}default:throw new TypeError("Invalid asymmetric key type for this operation")}},xr=ai;import{KeyObject as ci}from"node:crypto";var gt=(t,e)=>{let r;try{t instanceof ci?r=t.asymmetricKeyDetails?.modulusLength:r=Buffer.from(t.n,"base64url").byteLength<<3}catch{}if(typeof r!="number"||r<2048)throw new TypeError(`${e} requires key modulusLength to be 2048 bits or larger`)};var te=t=>t?.[Symbol.toStringTag],yt=(t,e,r)=>{if(e.use!==void 0&&e.use!=="sig")throw new TypeError("Invalid key for this operation, when present its use must be sig");if(e.key_ops!==void 0&&e.key_ops.includes?.(r)!==!0)throw new TypeError(`Invalid key for this operation, when present its key_ops must include ${r}`);if(e.alg!==void 0&&e.alg!==t)throw new TypeError(`Invalid key for this operation, when present its alg must be ${t}`);return!0},li=(t,e,r,o)=>{if(!(e instanceof Uint8Array)){if(o&&q(e)){if(Tr(e)&&yt(t,e,r))return;throw new TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!ht(e))throw new TypeError(ft(t,e,...K,"Uint8Array",o?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${te(e)} instances for symmetric algorithms must be of type "secret"`)}},ui=(t,e,r,o)=>{if(o&&q(e))switch(r){case"sign":if(Pr(e)&&yt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(Cr(e)&&yt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!ht(e))throw new TypeError(ft(t,e,...K,o?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${te(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${te(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${te(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${te(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${te(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function $r(t,e,r,o){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?li(e,r,o,t):ui(e,r,o,t)}var Ad=$r.bind(void 0,!1),Nr=$r.bind(void 0,!0);function pi(t,e,r,o,n){if(n.crit!==void 0&&o?.crit===void 0)throw new t('"crit" (Critical) Header Parameter MUST be integrity protected');if(!o||o.crit===void 0)return new Set;if(!Array.isArray(o.crit)||o.crit.length===0||o.crit.some(i=>typeof i!="string"||i.length===0))throw new t('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let s;r!==void 0?s=new Map([...Object.entries(r),...e.entries()]):s=e;for(let i of o.crit){if(!s.has(i))throw new $(`Extension Header Parameter "${i}" is not recognized`);if(n[i]===void 0)throw new t(`Extension Header Parameter "${i}" is missing`);if(s.get(i)&&o[i]===void 0)throw new t(`Extension Header Parameter "${i}" MUST be integrity protected`)}return new Set(o.crit)}var Lr=pi;function wt(t){switch(t){case"PS256":case"RS256":case"ES256":case"ES256K":return"sha256";case"PS384":case"RS384":case"ES384":return"sha384";case"PS512":case"RS512":case"ES512":return"sha512";case"EdDSA":return;default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}import{constants as Dr,KeyObject as di}from"node:crypto";var mi=new Map([["ES256","P-256"],["ES256K","secp256k1"],["ES384","P-384"],["ES512","P-521"]]);function Et(t,e){let r,o,n;if(e instanceof di)r=e.asymmetricKeyType,o=e.asymmetricKeyDetails;else switch(n=!0,e.kty){case"RSA":r="rsa";break;case"EC":r="ec";break;case"OKP":{if(e.crv==="Ed25519"){r="ed25519";break}if(e.crv==="Ed448"){r="ed448";break}throw new TypeError("Invalid key for this operation, its crv must be Ed25519 or Ed448")}default:throw new TypeError("Invalid key for this operation, its kty must be RSA, OKP, or EC")}let s;switch(t){case"EdDSA":if(!["ed25519","ed448"].includes(r))throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ed25519 or ed448");break;case"RS256":case"RS384":case"RS512":if(r!=="rsa")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa");gt(e,t);break;case"PS256":case"PS384":case"PS512":if(r==="rsa-pss"){let{hashAlgorithm:i,mgf1HashAlgorithm:c,saltLength:l}=o,u=parseInt(t.slice(-3),10);if(i!==void 0&&(i!==`sha${u}`||c!==i))throw new TypeError(`Invalid key for this operation, its RSA-PSS parameters do not meet the requirements of "alg" ${t}`);if(l!==void 0&&l>u>>3)throw new TypeError(`Invalid key for this operation, its RSA-PSS parameter saltLength does not meet the requirements of "alg" ${t}`)}else if(r!=="rsa")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be rsa or rsa-pss");gt(e,t),s={padding:Dr.RSA_PKCS1_PSS_PADDING,saltLength:Dr.RSA_PSS_SALTLEN_DIGEST};break;case"ES256":case"ES256K":case"ES384":case"ES512":{if(r!=="ec")throw new TypeError("Invalid key for this operation, its asymmetricKeyType must be ec");let i=xr(e),c=mi.get(t);if(i!==c)throw new TypeError(`Invalid key curve for the algorithm, its curve must be ${c}, got ${i}`);s={dsaEncoding:"ieee-p1363"};break}default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}return n?{format:"jwk",key:e,...s}:s?{...s,key:e}:e}import*as Oe from"node:crypto";import{promisify as fi}from"node:util";function St(t){switch(t){case"HS256":return"sha256";case"HS384":return"sha384";case"HS512":return"sha512";default:throw new $(`alg ${t} is not supported either by JOSE or your javascript runtime`)}}import{KeyObject as kr,createSecretKey as Mr}from"node:crypto";function Rt(t,e,r){if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(pe(e,...K));return Mr(e)}if(e instanceof kr)return e;if(ee(e))return Ir(e,t,r),kr.from(e);if(q(e))return t.startsWith("HS")?Mr(Buffer.from(e.k,"base64url")):e;throw new TypeError(pe(e,...K,"Uint8Array","JSON Web Key"))}var hi=fi(Oe.sign),gi=async(t,e,r)=>{let o=Rt(t,e,"sign");if(t.startsWith("HS")){let n=Oe.createHmac(St(t),o);return n.update(r),n.digest()}return hi(wt(t),r,Et(t,o))},_r=gi;var H=t=>Math.floor(t.getTime()/1e3);var yi=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,xe=t=>{let e=yi.exec(t);if(!e||e[4]&&e[1])throw new TypeError("Invalid time period format");let r=parseFloat(e[2]),o=e[3].toLowerCase(),n;switch(o){case"sec":case"secs":case"second":case"seconds":case"s":n=Math.round(r);break;case"minute":case"minutes":case"min":case"mins":case"m":n=Math.round(r*60);break;case"hour":case"hours":case"hr":case"hrs":case"h":n=Math.round(r*3600);break;case"day":case"days":case"d":n=Math.round(r*86400);break;case"week":case"weeks":case"w":n=Math.round(r*604800);break;default:n=Math.round(r*31557600);break}return e[1]==="-"||e[4]==="ago"?-n:n};var $e=class{constructor(e){b(this,"_payload");b(this,"_protectedHeader");b(this,"_unprotectedHeader");if(!(e instanceof Uint8Array))throw new TypeError("payload must be an instance of Uint8Array");this._payload=e}setProtectedHeader(e){if(this._protectedHeader)throw new TypeError("setProtectedHeader can only be called once");return this._protectedHeader=e,this}setUnprotectedHeader(e){if(this._unprotectedHeader)throw new TypeError("setUnprotectedHeader can only be called once");return this._unprotectedHeader=e,this}async sign(e,r){if(!this._protectedHeader&&!this._unprotectedHeader)throw new F("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!vr(this._protectedHeader,this._unprotectedHeader))throw new F("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...this._protectedHeader,...this._unprotectedHeader},n=Lr(F,new Map([["b64",!0]]),r?.crit,this._protectedHeader,o),s=!0;if(n.has("b64")&&(s=this._protectedHeader.b64,typeof s!="boolean"))throw new F('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:i}=o;if(typeof i!="string"||!i)throw new F('JWS "alg" (Algorithm) Header Parameter missing or invalid');Nr(i,e,"sign");let c=this._payload;s&&(c=J.encode(Pe(c)));let l;this._protectedHeader?l=J.encode(Pe(JSON.stringify(this._protectedHeader))):l=J.encode("");let u=gr(l,J.encode("."),c),h=await _r(i,e,u),f={signature:Pe(h),payload:""};return s&&(f.payload=pt.decode(c)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=pt.decode(l)),f}};var Ne=class{constructor(e){b(this,"_flattened");this._flattened=new $e(e)}setProtectedHeader(e){return this._flattened.setProtectedHeader(e),this}async sign(e,r){let o=await this._flattened.sign(e,r);if(o.payload===void 0)throw new TypeError("use the flattened module for creating JWS with b64: false");return`${o.protected}.${o.payload}.${o.signature}`}};function z(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}var Le=class{constructor(e={}){b(this,"_payload");if(!de(e))throw new TypeError("JWT Claims Set MUST be an object");this._payload=e}setIssuer(e){return this._payload={...this._payload,iss:e},this}setSubject(e){return this._payload={...this._payload,sub:e},this}setAudience(e){return this._payload={...this._payload,aud:e},this}setJti(e){return this._payload={...this._payload,jti:e},this}setNotBefore(e){return typeof e=="number"?this._payload={...this._payload,nbf:z("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:z("setNotBefore",H(e))}:this._payload={...this._payload,nbf:H(new Date)+xe(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:z("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:z("setExpirationTime",H(e))}:this._payload={...this._payload,exp:H(new Date)+xe(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:H(new Date)}:e instanceof Date?this._payload={...this._payload,iat:z("setIssuedAt",H(e))}:typeof e=="string"?this._payload={...this._payload,iat:z("setIssuedAt",H(new Date)+xe(e))}:this._payload={...this._payload,iat:z("setIssuedAt",e)},this}};var me=class extends Le{constructor(){super(...arguments);b(this,"_protectedHeader")}setProtectedHeader(r){return this._protectedHeader=r,this}async sign(r,o){let n=new Ne(J.encode(JSON.stringify(this._payload)));if(n.setProtectedHeader(this._protectedHeader),Array.isArray(this._protectedHeader?.crit)&&this._protectedHeader.crit.includes("b64")&&this._protectedHeader.b64===!1)throw new ue("JWTs MUST NOT use unencoded payload");return n.sign(r,o)}};import{createHmac as Ei,createPrivateKey as Si,randomBytes as Ri}from"node:crypto";import{existsSync as Ai,readFileSync as jr,writeFileSync as Fr}from"node:fs";import{basename as Br,extname as Ii,resolve as It}from"node:path";import{isPromise as bi}from"node:util/types";import{extract as vi}from"tar";function W(t){console.log(JSON.stringify(t,null,2))}async function bt(t,e,r){let o=e.source,n=De(o);if(!n)return;console.log("Saving source code...");let s=await t.createAttachment({data:n,filename:Br(o),contentType:Ti(o)});console.log("Updating bot...");let i=await t.updateResource({...r,sourceCode:s});console.log("Success! New bot version: "+i.meta?.versionId)}async function vt(t,e,r){let o=e.dist??e.source,n=De(o);if(!n)return;console.log("Deploying bot...");let s=await t.post(t.fhirUrl("Bot",r.id,"$deploy"),{code:n,filename:Br(o)});console.log("Deploy result: "+s.issue?.[0]?.details?.text)}async function Pt(t,e,r,o,n,s,i){let c={name:e,description:"",runtimeVersion:s},l=await t.post("admin/projects/"+r+"/bot",c),u=await t.readResource("Bot",l.id),h={name:e,id:l.id,source:o,dist:n};await bt(t,h,u),await vt(t,h,u),console.log(`Success! Bot created: ${u.id}`),i&&Pi(h)}function Kr(t){let e=new RegExp("^"+Ci(t).replace(/\\\*/g,".*")+"$"),r=M()?.bots?.filter(o=>e.test(o.name));return r||[]}function D(t,e){if(e?.file)return e.file;let r=["medplum"];return t&&r.push(t),r.push("config"),e?.server&&r.push("server"),r.push("json"),r.join(".")}function v(t,e){Fr(It(t),JSON.stringify(e,void 0,2),"utf-8")}function M(t,e){let r=D(t,e),o=De(r);if(o)return JSON.parse(o)}function Wr(t){let e=De(D(t,{server:!0}));if(e)return JSON.parse(e)}function De(t){let e=It(t);return Ai(e)?jr(e,"utf8"):""}function Pi(t){let e=M()??{};e.bots||(e.bots=[]),e.bots.push(t),Fr("medplum.config.json",JSON.stringify(e,null,2),"utf8"),console.log(`Bot added to config: ${t.id}`)}function Ci(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function qr(t){let o=0,n=0;return vi({cwd:t,filter:(s,i)=>{if(o++,o>100)throw new Error("Tar extractor reached max number of files");if(n+=i.size,n>10485760)throw new Error("Tar extractor reached max size");return!0}})}function Ct(){return{url:"http://hl7.org/fhir/StructureDefinition/data-absent-reason",valueCode:"unsupported"}}function Ti(t){let e=Ii(t).toLowerCase();return[".cjs",".mjs",".js"].includes(e)?At.JAVASCRIPT:[".cts",".mts",".ts"].includes(e)?At.TYPESCRIPT:At.TEXT}function ke(t,e){let r=new k(t),o={name:t,...e};return r.setObject("options",o),o}function Hr(t){return new k(t).getObject("options")}async function Gr(t,e){let r={typ:"JWT",alg:"HS256"},o=Math.floor(Date.now()/1e3),n={aud:`${e.baseUrl}${e.audience}`,iss:e.issuer,sub:e.subject,nbf:o,iat:o,exp:o+604800},s=Ur(JSON.stringify(r)),i=Ur(JSON.stringify(n)),c=`${s}.${i}`,l=Ei("sha256",e.clientSecret).update(c).digest("base64url"),u=`${c}.${l}`;await t.startJwtBearerLogin(e.clientId,u,e.scope??"")}async function Vr(t,e){let r=Si(jr(It(e.privateKeyPath))),o=await new me({}).setProtectedHeader({alg:"RS384",typ:"JWT"}).setIssuer(e.clientId).setSubject(e.clientId).setAudience(`${e.baseUrl}${e.audience}`).setJti(Ri(16).toString("hex")).setIssuedAt().setExpirationTime("5m").sign(r);await t.startJwtAssertionLogin(o)}function y(t,e){e.configureHelp({showGlobalOptions:!0}),t.addCommand(e)}var g=class extends wi{action(e){let r=Oi(this,e);return super._actionHandler=r,this}resetOptionDefaults(){this._optionValues={};for(let e of this.options)e.defaultValue!==void 0&&(this._optionValues[e.attributeName()]=e.defaultValue)}};function Oi(t,e){return async r=>{let o=t.registeredArguments.length,n=r.slice(0,o);n[o]=t.optsWithGlobals();try{let s=e(...n);bi(s)&&await s}finally{t.resetOptionDefaults()}}}var Xr=new g("status").aliases(["info","list","ls"]),zr=new g("ping"),Yr=new g("push"),Zr=new g("reload-config"),Qr=new g("upgrade"),Y=new g("agent");y(Y,Xr);y(Y,zr);y(Y,Yr);y(Y,Zr);y(Y,Qr);Xr.description("Get the status of a specified agent").argument("[agentIds...]","The ID(s) of the agent(s) to get the status of").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to get the status of. Mutually exclusive with [agentIds...] arg").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$bulk-status",agentIds:t,options:e,parseSuccessfulResponse:r=>{let o=Di(r.result,{required:["status","version"],optional:["lastUpdated"]});return{id:r.agent.id,name:r.agent.name,enabledStatus:r.agent.status,version:o.version,connectionStatus:o.status,statusLastUpdated:o.lastUpdated??"N/A"}}})});zr.description("Ping a host from a specified agent").argument("<ipOrDomain>","The IPv4 address or domain name to ping").argument("[agentId]","Conditionally optional ID of the agent to ping from. Mutually exclusive with --criteria <criteria> option").option("--count <count>","An optional amount of pings to issue before returning results","1").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to ping from. Mutually exclusive with [agentId] arg").action(async(t,e,r)=>{let o=await R(r),n=await eo(o,e,r),s=Number.parseInt(r.count,10);if(Number.isNaN(s))throw new Error("--count <count> must be an integer if specified");try{let i=await o.pushToAgent(n,t,`PING ${s}`,Jr.PING,!0,{maxRetries:0});console.info(i)}catch(i){throw new Error("Unexpected response from agent while pinging",{cause:i})}});Yr.description("Push a message to a target device via a specified agent").argument("<deviceId>","The ID of the device to push the message to").argument("<message>","The message to send to the destination device").argument("[agentId]","Conditionally optional ID of the agent to send the message from. Mutually exclusive with --criteria <criteria> option").option("--content-type <contentType>","The content type of the message",Jr.HL7_V2).option("--no-wait","Tells the server not to wait for a response from the destination device").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent to ping from. Mutually exclusive with [agentId] arg").action(async(t,e,r,o)=>{let n=await R(o),s=await eo(n,r,o),i;try{i=await n.pushToAgent(s,{reference:`Device/${t}`},e,o.contentType,o.wait!==!1,{maxRetries:0})}catch(c){throw new Error("Unexpected response from agent while pushing message to agent",{cause:c})}console.info(i)});Zr.description("Reload the config for the specified agent(s)").argument("[agentIds...]","The ID(s) of the agent(s) for which the config should be reloaded. Mutually exclusive with --criteria <criteria> flag").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent(s) for which to notify to reload their config. Mutually exclusive with [agentIds...] arg").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$reload-config",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name})})});Qr.description("Upgrade the version for the specified agent(s)").argument("[agentIds...]","The ID(s) of the agent(s) that should be upgraded. Mutually exclusive with --criteria <criteria> flag").option("--criteria <criteria>","An optional FHIR search criteria to resolve the agent(s) to upgrade. Mutually exclusive with [agentIds...] arg").option("--version <version>","An optional version to upgrade to. Defaults to the latest version if flag not included").addOption(new Tt("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Ot({operation:"$upgrade",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name,version:e.version??"latest"})})});async function Ot({operation:t,agentIds:e,options:r,parseSuccessfulResponse:o}){let n=Mi(e,r),s=await R(r),i=n.type==="criteria"?n.criteria:`Agent?_id=${n.ids.join(",")}`,c=new URLSearchParams(i.split("?")[1]),l;try{let p=s.fhirUrl("Agent",t);p.search=c.toString(),l=await s.get(p,{cache:"reload"})}catch(p){throw new Error(`Operation '${t}' failed`,{cause:p})}if(r.output==="json"){console.info(JSON.stringify(l,null,2));return}let u=[],h=[];switch(l.resourceType){case"Bundle":{let p=Ni(l);for(let j of p)j.result.resourceType==="Parameters"||xi(j.result)?u.push(j):h.push(j);break}case"Parameters":case"OperationOutcome":{let p=await s.searchOne("Agent",c,{cache:"reload"});if(!p)throw new Error("Agent not found");l.resourceType==="Parameters"?u.push({agent:p,result:l}):h.push({agent:p,result:l});break}default:throw new Error(`Invalid result received for '${t}' operation: ${JSON.stringify(l)}`)}let f=[];for(let p of u){let j=o(p);f.push(j)}let S=[];for(let p of h){let lt=p.result.issue?.[0],Ms={id:p.agent.id,name:p.agent.name,severity:lt.severity,code:lt.code,details:lt.details?.text??"No details to show"};S.push(Ms)}console.info(`
3
3
  ${f.length} successful response(s):
4
4
  `),console.table(f.length?f:"No successful responses received"),console.info(),S.length&&(console.info(`${S.length} failed response(s):`),console.info(),console.table(S))}async function eo(t,e,r){if(!(e||r.criteria))throw new Error("This command requires either an [agentId] or a --criteria <criteria> flag");if(e&&r.criteria)throw new Error("Ambiguous arguments and options combination; [agentId] arg and --criteria <criteria> flag are mutually exclusive");let o;if(e)o=e;else{to(r.criteria);let n=await t.search("Agent",`${r.criteria.split("?")[1]}&_count=2`);if(!n?.entry?.length)throw new Error("Could not find an agent matching the provided criteria");if(n.entry.length!==1)throw new Error("Found more than one agent matching this criteria. This operation requires the criteria to resolve to exactly one agent");o=n.entry[0].resource?.id}return{reference:`Agent/${o}`}}function Ni(t){let e=[];for(let r of t.entry??[]){if(!r.resource)throw new Error("No Parameter resource found in entry");e.push(Li(r.resource))}return e}function Li(t){let e=t.parameter?.find(o=>o.name==="agent")?.resource;if(!e)throw new Error("Agent bulk operation response missing 'agent'");if(e.resourceType!=="Agent")throw new Error(`Agent bulk operation returned 'agent' with type '${e.resourceType}'`);let r=t.parameter?.find(o=>o.name==="result")?.resource;if(!r)throw new Error("Agent bulk operation response missing result'");if(!(r.resourceType==="Parameters"||r.resourceType==="OperationOutcome"))throw new Error(`Agent bulk operation returned 'result' with type '${r.resourceType}'`);return{agent:e,result:r}}function Di(t,e){let r={},o=e.required,n=e.optional;for(let s of o){let i=t.parameter?.find(l=>l.name===s);if(!i)throw new Error(`Failed to find parameter '${s}'`);let c;for(let l in i)if(l.startsWith("value")){if(c)throw new Error(`Found multiple values for parameter '${s}'`);c=l}if(!c)throw new Error(`Failed to find a value for parameter '${s}'`);r[s]=i[c]}if(n?.length)for(let s of n){let i=t.parameter?.find(l=>l.name===s);if(!i)continue;let c=ki(s,i);r[s]=c}return r}function ki(t,e){let r;for(let o in e)if(o.startsWith("value")){if(r)throw new Error(`Found multiple values for parameter '${t}'`);r=o}if(!r)throw new Error(`Failed to find a value for parameter '${t}'`);return e[r]}function Mi(t,e){if(!Array.isArray(t))throw new Error("Invalid agent IDs array");if(t.length){if(e.criteria)throw new Error("Ambiguous arguments and options combination; [agentIds...] arg and --criteria <criteria> flag are mutually exclusive");for(let r of t)if(!$i(r))throw new Error(`Input '${r}' is not a valid agentId`);return{type:"ids",ids:t}}if(e.criteria)return to(e.criteria),{type:"criteria",criteria:e.criteria};throw new Error("Either an [agentId...] arg or a --criteria <criteria> flag is required")}function to(t){let e="Criteria must be formatted as a string containing the resource type (Agent) followed by a '?' and valid URL search query params, eg. `Agent?name=Test Agent`";if(typeof t!="string")throw new Error(e);let[r,o]=t.split("?");if(r!=="Agent"||!o)throw new Error(e);try{new URLSearchParams(o)}catch(n){throw new Error(e,{cause:n})}if(!o.includes("="))throw new Error(e,{cause:new Error("Query string lacks at least one `=`")})}import{ContentType as Me,getDisplayString as _i,MEDPLUM_CLI_CLIENT_ID as Ui,normalizeErrorString as ji}from"@medplum/core";import{exec as Fi}from"node:child_process";import{createServer as Bi}from"node:http";import{platform as Ki}from"node:os";var ro=Ui,oo="http://localhost:9615",xt=new g("login"),$t=new g("whoami"),Nt=new g("token");xt.action(async t=>{let e=t.profile??"default",r=ke(e,t),o=await R(t,!1);await Wi(o,r)});$t.action(async t=>{let e=await R(t);Gi(e)});Nt.action(async t=>{let e=await R(t);await e.getProfileAsync();let r=e.getAccessToken();if(!r)throw new Error("Not logged in");console.log(r)});async function Wi(t,e){switch(e?.authType??"authorization-code"){case"authorization-code":await Vi(t);break;case"basic":t.setBasicAuth(e.clientId,e.clientSecret);break;case"client-credentials":t.setBasicAuth(e.clientId,e.clientSecret),await t.startClientLogin(e.clientId,e.clientSecret);break;case"jwt-bearer":await Gr(t,e);break;case"jwt-assertion":await Vr(t,e);break}}async function qi(t){let e=Bi(async(r,o)=>{let n=new URL(r.url,"http://localhost:9615"),s=n.searchParams.get("code");if(r.method==="OPTIONS"){o.writeHead(200,{Allow:"GET, POST","Content-Type":Me.TEXT}),o.end("OK");return}if(n.pathname==="/"&&s)try{let i=await t.processCode(s,{clientId:ro,redirectUri:oo});o.writeHead(200,{"Content-Type":Me.TEXT}),o.end(`Signed in as ${_i(i)}. You may close this window.`)}catch(i){o.writeHead(400,{"Content-Type":Me.TEXT}),o.end(`Error: ${ji(i)}`)}finally{e.close()}else o.writeHead(404,{"Content-Type":Me.TEXT}),o.end("Not found")}).listen(9615)}async function Hi(t){let e=Ki(),r;switch(e){case"openbsd":case"linux":r=`xdg-open '${t}'`;break;case"darwin":r=`open '${t}'`;break;case"win32":r=`cmd /c start "" "${t}"`;break;default:throw new Error("Unsupported platform: "+e)}return new Promise((o,n)=>{Fi(r,(s,i,c)=>{if(s){n(s);return}if(c){n(new Error("Could not open browser: "+c));return}o()})})}function Gi(t){let e=t.getActiveLogin();e?(console.log(`Server: ${t.getBaseUrl()}`),console.log(`Profile: ${e.profile.display} (${e.profile.reference})`),console.log(`Project: ${e.project.display} (${e.project.reference})`)):console.log("Not logged in")}async function Vi(t){await qi(t);let e=new URL(t.getAuthorizeUrl());e.searchParams.set("client_id",ro),e.searchParams.set("redirect_uri",oo),e.searchParams.set("scope","openid"),e.searchParams.set("response_type","code"),e.searchParams.set("prompt","login"),await Hi(e.toString())}var fe="\x1B[0m",Ji="\x1B[1m",Xi="\x1B[31m",zi="\x1B[32m",Yi="\x1B[33m",Zi="\x1B[34m",Z={red:t=>`${Xi}${t}${fe}`,green:t=>`${zi}${t}${fe}`,yellow:t=>`${Yi}${t}${fe}`,blue:t=>`${Zi}${t}${fe}`,bold:t=>`${Ji}${t}${fe}`},Lt=t=>t.replace(/\*\*(.*?)\*\*/g,(e,r)=>Z.bold(r));var Zn=mr(Zt());import{CloudFormationClient as Yn,DescribeStackResourcesCommand as Xl,DescribeStacksCommand as zl,paginateListStacks as Yl}from"@aws-sdk/client-cloudformation";import{CloudFrontClient as Zl,CreateInvalidationCommand as Ql}from"@aws-sdk/client-cloudfront";import{ECSClient as eu}from"@aws-sdk/client-ecs";import{S3Client as tu}from"@aws-sdk/client-s3";import{GetParameterCommand as ru,PutParameterCommand as ou,SSMClient as nu}from"@aws-sdk/client-ssm";import{GetCallerIdentityCommand as su,STSClient as iu}from"@aws-sdk/client-sts";import{normalizeErrorString as au}from"@medplum/core";import cu from"node-fetch";import{readdirSync as lu}from"node:fs";import Jl from"node:readline";var Je;function Xe(){Je=Jl.createInterface({input:process.stdin,output:process.stdout})}function ze(){Je.close()}function a(t){Je.write(t+`
5
5
  `)}function I(t){a(`