@medplum/cli 3.3.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +2 -2
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/index.mjs.map +2 -2
- package/package.json +6 -6
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var xi=Object.create;var ve=Object.defineProperty;var $i=Object.getOwnPropertyDescriptor;var Ni=Object.getOwnPropertyNames;var Li=Object.getPrototypeOf,Di=Object.prototype.hasOwnProperty;var ki=(t,e,r)=>e in t?ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Mi=(t,e)=>{for(var r in e)ve(t,r,{get:e[r],enumerable:!0})},Mr=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ni(e))!Di.call(t,n)&&n!==r&&ve(t,n,{get:()=>e[n],enumerable:!(o=$i(e,n))||o.enumerable});return t};var N=(t,e,r)=>(r=t!=null?xi(Li(t)):{},Mr(e||!t||!t.__esModule?ve(r,"default",{value:t,enumerable:!0}):r,t)),_i=t=>Mr(ve({},"__esModule",{value:!0}),t);var b=(t,e,r)=>ki(t,typeof e!="symbol"?e+"":e,r);var Ne=w((Bd,$o)=>{"use strict";var Sa="2.0.0",Ra=Number.MAX_SAFE_INTEGER||9007199254740991,Aa=16,Ia=250,ba=["major","premajor","minor","preminor","patch","prepatch","prerelease"];$o.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Aa,MAX_SAFE_BUILD_LENGTH:Ia,MAX_SAFE_INTEGER:Ra,RELEASE_TYPES:ba,SEMVER_SPEC_VERSION:Sa,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Le=w((Kd,No)=>{"use strict";var va=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};No.exports=va});var he=w((B,Lo)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:or,MAX_SAFE_BUILD_LENGTH:Pa,MAX_LENGTH:Ca}=Ne(),Ta=Le();B=Lo.exports={};var Oa=B.re=[],xa=B.safeRe=[],d=B.src=[],$a=B.safeSrc=[],m=B.t={},Na=0,nr="[a-zA-Z0-9-]",La=[["\\s",1],["\\d",Ca],[nr,Pa]],Da=t=>{for(let[e,r]of La)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},E=(t,e,r)=>{let o=Da(e),n=Na++;Ta(t,n,e),m[t]=n,d[n]=e,$a[n]=o,Oa[n]=new RegExp(e,r?"g":void 0),xa[n]=new RegExp(o,r?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*");E("NUMERICIDENTIFIERLOOSE","\\d+");E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${nr}*`);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",`${nr}+`);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,${or}})(?:\\.(\\d{1,${or}}))?(?:\\.(\\d{1,${or}}))?`);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);B.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);B.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);B.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 rt=w((Wd,Do)=>{"use strict";var ka=Object.freeze({loose:!0}),Ma=Object.freeze({}),_a=t=>t?typeof t!="object"?ka:t:Ma;Do.exports=_a});var sr=w((qd,_o)=>{"use strict";var ko=/^[0-9]+$/,Mo=(t,e)=>{let r=ko.test(t),o=ko.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},Ua=(t,e)=>Mo(e,t);_o.exports={compareIdentifiers:Mo,rcompareIdentifiers:Ua}});var P=w((Hd,Bo)=>{"use strict";var ot=Le(),{MAX_LENGTH:Uo,MAX_SAFE_INTEGER:nt}=Ne(),{safeRe:jo,safeSrc:Fo,t:st}=he(),ja=rt(),{compareIdentifiers:ge}=sr(),ir=class t{constructor(e,r){if(r=ja(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>Uo)throw new TypeError(`version is longer than ${Uo} characters`);ot("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?jo[st.LOOSE]:jo[st.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>nt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>nt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>nt||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<nt)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(ot("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)),ge(this.major,e.major)||ge(this.minor,e.minor)||ge(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(ot("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 ge(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(ot("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 ge(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[st.PRERELEASELOOSE]:Fo[st.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]),ge(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}};Bo.exports=ir});var ce=w((Gd,Wo)=>{"use strict";var Ko=P(),Fa=(t,e,r=!1)=>{if(t instanceof Ko)return t;try{return new Ko(t,e)}catch(o){if(!r)return null;throw o}};Wo.exports=Fa});var Ho=w((Vd,qo)=>{"use strict";var Ba=ce(),Ka=(t,e)=>{let r=Ba(t,e);return r?r.version:null};qo.exports=Ka});var Vo=w((Jd,Go)=>{"use strict";var Wa=ce(),qa=(t,e)=>{let r=Wa(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};Go.exports=qa});var zo=w((Xd,Xo)=>{"use strict";var Jo=P(),Ha=(t,e,r,o,n)=>{typeof r=="string"&&(n=o,o=r,r=void 0);try{return new Jo(t instanceof Jo?t.version:t,r).inc(e,o,n).version}catch{return null}};Xo.exports=Ha});var Qo=w((zd,Zo)=>{"use strict";var Yo=ce(),Ga=(t,e)=>{let r=Yo(t,null,!0),o=Yo(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"};Zo.exports=Ga});var tn=w((Yd,en)=>{"use strict";var Va=P(),Ja=(t,e)=>new Va(t,e).major;en.exports=Ja});var on=w((Zd,rn)=>{"use strict";var Xa=P(),za=(t,e)=>new Xa(t,e).minor;rn.exports=za});var sn=w((Qd,nn)=>{"use strict";var Ya=P(),Za=(t,e)=>new Ya(t,e).patch;nn.exports=Za});var cn=w((em,an)=>{"use strict";var Qa=ce(),ec=(t,e)=>{let r=Qa(t,e);return r&&r.prerelease.length?r.prerelease:null};an.exports=ec});var L=w((tm,un)=>{"use strict";var ln=P(),tc=(t,e,r)=>new ln(t,r).compare(new ln(e,r));un.exports=tc});var dn=w((rm,pn)=>{"use strict";var rc=L(),oc=(t,e,r)=>rc(e,t,r);pn.exports=oc});var fn=w((om,mn)=>{"use strict";var nc=L(),sc=(t,e)=>nc(t,e,!0);mn.exports=sc});var it=w((nm,gn)=>{"use strict";var hn=P(),ic=(t,e,r)=>{let o=new hn(t,r),n=new hn(e,r);return o.compare(n)||o.compareBuild(n)};gn.exports=ic});var wn=w((sm,yn)=>{"use strict";var ac=it(),cc=(t,e)=>t.sort((r,o)=>ac(r,o,e));yn.exports=cc});var Sn=w((im,En)=>{"use strict";var lc=it(),uc=(t,e)=>t.sort((r,o)=>lc(o,r,e));En.exports=uc});var De=w((am,Rn)=>{"use strict";var pc=L(),dc=(t,e,r)=>pc(t,e,r)>0;Rn.exports=dc});var at=w((cm,An)=>{"use strict";var mc=L(),fc=(t,e,r)=>mc(t,e,r)<0;An.exports=fc});var ar=w((lm,In)=>{"use strict";var hc=L(),gc=(t,e,r)=>hc(t,e,r)===0;In.exports=gc});var cr=w((um,bn)=>{"use strict";var yc=L(),wc=(t,e,r)=>yc(t,e,r)!==0;bn.exports=wc});var ct=w((pm,vn)=>{"use strict";var Ec=L(),Sc=(t,e,r)=>Ec(t,e,r)>=0;vn.exports=Sc});var lt=w((dm,Pn)=>{"use strict";var Rc=L(),Ac=(t,e,r)=>Rc(t,e,r)<=0;Pn.exports=Ac});var lr=w((mm,Cn)=>{"use strict";var Ic=ar(),bc=cr(),vc=De(),Pc=ct(),Cc=at(),Tc=lt(),Oc=(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 Ic(t,r,o);case"!=":return bc(t,r,o);case">":return vc(t,r,o);case">=":return Pc(t,r,o);case"<":return Cc(t,r,o);case"<=":return Tc(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Cn.exports=Oc});var On=w((fm,Tn)=>{"use strict";var xc=P(),$c=ce(),{safeRe:ut,t:pt}=he(),Nc=(t,e)=>{if(t instanceof xc)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?ut[pt.COERCEFULL]:ut[pt.COERCE]);else{let l=e.includePrerelease?ut[pt.COERCERTLFULL]:ut[pt.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 $c(`${o}.${n}.${s}${i}${c}`,e)};Tn.exports=Nc});var $n=w((hm,xn)=>{"use strict";var ur=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}};xn.exports=ur});var D=w((gm,kn)=>{"use strict";var Lc=/\s+/g,pr=class t{constructor(e,r){if(r=kc(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof dr)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(Lc," "),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=>!Ln(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&&Kc(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&&Fc)|(this.options.loose&&Bc))+":"+e,n=Nn.get(o);if(n)return n;let s=this.options.loose,i=s?O[C.HYPHENRANGELOOSE]:O[C.HYPHENRANGE];e=e.replace(i,Zc(this.options.includePrerelease)),A("hyphen replace",e),e=e.replace(O[C.COMPARATORTRIM],_c),A("comparator trim",e),e=e.replace(O[C.TILDETRIM],Uc),A("tilde trim",e),e=e.replace(O[C.CARETTRIM],jc),A("caret trim",e);let c=e.split(" ").map(f=>Wc(f,this.options)).join(" ").split(/\s+/).map(f=>Yc(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 dr(f,this.options));for(let f of u){if(Ln(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let h=[...l.values()];return Nn.set(o,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>Dn(o,r)&&e.set.some(n=>Dn(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 Mc(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Qc(this.set[r],e,this.options))return!0;return!1}};kn.exports=pr;var Dc=$n(),Nn=new Dc,kc=rt(),dr=ke(),A=Le(),Mc=P(),{safeRe:O,t:C,comparatorTrimReplace:_c,tildeTrimReplace:Uc,caretTrimReplace:jc}=he(),{FLAG_INCLUDE_PRERELEASE:Fc,FLAG_LOOSE:Bc}=Ne(),Ln=t=>t.value==="<0.0.0-0",Kc=t=>t.value==="",Dn=(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},Wc=(t,e)=>(A("comp",t,e),t=Gc(t,e),A("caret",t),t=qc(t,e),A("tildes",t),t=Jc(t,e),A("xrange",t),t=zc(t,e),A("stars",t),t),T=t=>!t||t.toLowerCase()==="x"||t==="*",qc=(t,e)=>t.trim().split(/\s+/).map(r=>Hc(r,e)).join(" "),Hc=(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})},Gc=(t,e)=>t.trim().split(/\s+/).map(r=>Vc(r,e)).join(" "),Vc=(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})},Jc=(t,e)=>(A("replaceXRanges",t,e),t.split(/\s+/).map(r=>Xc(r,e)).join(" ")),Xc=(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})},zc=(t,e)=>(A("replaceStars",t,e),t.trim().replace(O[C.STAR],"")),Yc=(t,e)=>(A("replaceGTE0",t,e),t.trim().replace(O[e.includePrerelease?C.GTE0PRE:C.GTE0],"")),Zc=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()),Qc=(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!==dr.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 ke=w((ym,Bn)=>{"use strict";var Me=Symbol("SemVer ANY"),hr=class t{static get ANY(){return Me}constructor(e,r){if(r=Mn(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),fr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Me?this.value="":this.value=this.operator+this.semver.version,fr("comp",this)}parse(e){let r=this.options.loose?_n[Un.COMPARATORLOOSE]:_n[Un.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 jn(o[2],this.options.loose):this.semver=Me}toString(){return this.value}test(e){if(fr("Comparator.test",e,this.options.loose),this.semver===Me||e===Me)return!0;if(typeof e=="string")try{e=new jn(e,this.options)}catch{return!1}return mr(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=Mn(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("=")||mr(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||mr(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Bn.exports=hr;var Mn=rt(),{safeRe:_n,t:Un}=he(),mr=lr(),fr=Le(),jn=P(),Fn=D()});var _e=w((wm,Kn)=>{"use strict";var el=D(),tl=(t,e,r)=>{try{e=new el(e,r)}catch{return!1}return e.test(t)};Kn.exports=tl});var qn=w((Em,Wn)=>{"use strict";var rl=D(),ol=(t,e)=>new rl(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));Wn.exports=ol});var Gn=w((Sm,Hn)=>{"use strict";var nl=P(),sl=D(),il=(t,e,r)=>{let o=null,n=null,s=null;try{s=new sl(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===-1)&&(o=i,n=new nl(o,r))}),o};Hn.exports=il});var Jn=w((Rm,Vn)=>{"use strict";var al=P(),cl=D(),ll=(t,e,r)=>{let o=null,n=null,s=null;try{s=new cl(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===1)&&(o=i,n=new al(o,r))}),o};Vn.exports=ll});var Yn=w((Am,zn)=>{"use strict";var gr=P(),ul=D(),Xn=De(),pl=(t,e)=>{t=new ul(t,e);let r=new gr("0.0.0");if(t.test(r)||(r=new gr("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 gr(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!s||Xn(c,s))&&(s=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),s&&(!r||Xn(r,s))&&(r=s)}return r&&t.test(r)?r:null};zn.exports=pl});var Qn=w((Im,Zn)=>{"use strict";var dl=D(),ml=(t,e)=>{try{return new dl(t,e).range||"*"}catch{return null}};Zn.exports=ml});var dt=w((bm,os)=>{"use strict";var fl=P(),rs=ke(),{ANY:hl}=rs,gl=D(),yl=_e(),es=De(),ts=at(),wl=lt(),El=ct(),Sl=(t,e,r,o)=>{t=new fl(t,o),e=new gl(e,o);let n,s,i,c,l;switch(r){case">":n=es,s=wl,i=ts,c=">",l=">=";break;case"<":n=ts,s=El,i=es,c="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(yl(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===hl&&(p=new rs(">=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};os.exports=Sl});var ss=w((vm,ns)=>{"use strict";var Rl=dt(),Al=(t,e,r)=>Rl(t,e,">",r);ns.exports=Al});var as=w((Pm,is)=>{"use strict";var Il=dt(),bl=(t,e,r)=>Il(t,e,"<",r);is.exports=bl});var us=w((Cm,ls)=>{"use strict";var cs=D(),vl=(t,e,r)=>(t=new cs(t,r),e=new cs(e,r),t.intersects(e,r));ls.exports=vl});var ds=w((Tm,ps)=>{"use strict";var Pl=_e(),Cl=L();ps.exports=(t,e,r)=>{let o=[],n=null,s=null,i=t.sort((h,f)=>Cl(h,f,r));for(let h of i)Pl(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 ws=w((Om,ys)=>{"use strict";var ms=D(),wr=ke(),{ANY:yr}=wr,Ue=_e(),Er=L(),Tl=(t,e,r={})=>{if(t===e)return!0;t=new ms(t,r),e=new ms(e,r);let o=!1;e:for(let n of t.set){for(let s of e.set){let i=xl(n,s,r);if(o=o||i!==null,i)continue e}if(o)return!1}return!0},Ol=[new wr(">=0.0.0-0")],fs=[new wr(">=0.0.0")],xl=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===yr){if(e.length===1&&e[0].semver===yr)return!0;r.includePrerelease?t=Ol:t=fs}if(e.length===1&&e[0].semver===yr){if(r.includePrerelease)return!0;e=fs}let o=new Set,n,s;for(let p of t)p.operator===">"||p.operator===">="?n=hs(n,p,r):p.operator==="<"||p.operator==="<="?s=gs(s,p,r):o.add(p.semver);if(o.size>1)return null;let i;if(n&&s){if(i=Er(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&&!Ue(p,String(n),r)||s&&!Ue(p,String(s),r))return null;for(let K of e)if(!Ue(p,String(K),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=hs(n,p,r),c===p&&c!==n)return!1}else if(n.operator===">="&&!Ue(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=gs(s,p,r),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Ue(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)},hs=(t,e,r)=>{if(!t)return e;let o=Er(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},gs=(t,e,r)=>{if(!t)return e;let o=Er(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};ys.exports=Tl});var Rr=w((xm,Rs)=>{"use strict";var Sr=he(),Es=Ne(),$l=P(),Ss=sr(),Nl=ce(),Ll=Ho(),Dl=Vo(),kl=zo(),Ml=Qo(),_l=tn(),Ul=on(),jl=sn(),Fl=cn(),Bl=L(),Kl=dn(),Wl=fn(),ql=it(),Hl=wn(),Gl=Sn(),Vl=De(),Jl=at(),Xl=ar(),zl=cr(),Yl=ct(),Zl=lt(),Ql=lr(),eu=On(),tu=ke(),ru=D(),ou=_e(),nu=qn(),su=Gn(),iu=Jn(),au=Yn(),cu=Qn(),lu=dt(),uu=ss(),pu=as(),du=us(),mu=ds(),fu=ws();Rs.exports={parse:Nl,valid:Ll,clean:Dl,inc:kl,diff:Ml,major:_l,minor:Ul,patch:jl,prerelease:Fl,compare:Bl,rcompare:Kl,compareLoose:Wl,compareBuild:ql,sort:Hl,rsort:Gl,gt:Vl,lt:Jl,eq:Xl,neq:zl,gte:Yl,lte:Zl,cmp:Ql,coerce:eu,Comparator:tu,Range:ru,satisfies:ou,toComparators:nu,maxSatisfying:su,minSatisfying:iu,minVersion:au,validRange:cu,outside:lu,gtr:uu,ltr:pu,intersects:du,simplifyRange:mu,subset:fu,SemVer:$l,re:Sr.re,src:Sr.src,tokens:Sr.t,SEMVER_SPEC_VERSION:Es.SEMVER_SPEC_VERSION,RELEASE_TYPES:Es.RELEASE_TYPES,compareIdentifiers:Ss.compareIdentifiers,rcompareIdentifiers:Ss.rcompareIdentifiers}});var Qu={};Mi(Qu,{handleError:()=>Ci,main:()=>Pi,run:()=>Ti});module.exports=_i(Qu);var be=require("@medplum/core"),qe=require("commander"),vi=N(require("dotenv"));var se=require("@medplum/core"),tt=require("commander");var jr=require("@medplum/core");var _r=require("@medplum/core"),W=require("node:fs"),Ur=require("node:os"),Mt=require("node:path"),j=class extends _r.ClientStorage{constructor(e){super(),this.dirName=(0,Mt.resolve)((0,Ur.homedir)(),".medplum"),this.fileName=(0,Mt.resolve)(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((0,W.existsSync)(this.fileName))return JSON.parse((0,W.readFileSync)(this.fileName,"utf8"))}writeFile(e){(0,W.existsSync)(this.dirName)||(0,W.mkdirSync)(this.dirName),(0,W.writeFileSync)(this.fileName,JSON.stringify(e,null,2),"utf8")}};async function R(t,e=!0){let r=t.profile??"default",o=new j(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}=Ui(t,o),S=t.fetch??fetch,p=new jr.MedplumClient({fetch:S,baseUrl:s,tokenUrl:l,fhirUrlPath:i,authorizeUrl:u,storage:o,onUnauthenticated:ji,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 Ui(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 ji(){console.log("Unauthenticated: run `npx medplum login` to sign in")}var ne=require("@medplum/core"),lo=require("commander");var Br=require("node:buffer");var te=new TextEncoder,_t=new TextDecoder,sp=2**32;function Fr(...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 He=t=>Br.Buffer.from(t).toString("base64url");var re=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(re,"code","ERR_JOSE_GENERIC");var $=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JOSE_NOT_SUPPORTED")}};b($,"code","ERR_JOSE_NOT_SUPPORTED");var q=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JWS_INVALID")}};b(q,"code","ERR_JWS_INVALID");var Pe=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JWT_INVALID")}};b(Pe,"code","ERR_JWT_INVALID");var Kr,Wr,Ut=class extends(Wr=re,Kr=Symbol.asyncIterator,Wr){constructor(r="multiple matching keys found in the JSON Web Key Set",o){super(r,o);b(this,Kr);b(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}};b(Ut,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS");var qr=N(require("node:util"),1),Ge=t=>qr.types.isKeyObject(t);var Hr=N(require("node:crypto"),1),Gr=N(require("node:util"),1),Bi=Hr.webcrypto,Vr=Bi,pe=t=>Gr.types.isCryptoKey(t);function H(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function Ve(t,e){return t.name===e}function jt(t){return parseInt(t.name.slice(4),10)}function Ki(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Wi(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 Jr(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!Ve(t.algorithm,"HMAC"))throw H("HMAC");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Ve(t.algorithm,"RSASSA-PKCS1-v1_5"))throw H("RSASSA-PKCS1-v1_5");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Ve(t.algorithm,"RSA-PSS"))throw H("RSA-PSS");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw H("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!Ve(t.algorithm,"ECDSA"))throw H("ECDSA");let o=Ki(e);if(t.algorithm.namedCurve!==o)throw H(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Wi(t,r)}function Xr(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 Ce=(t,...e)=>Xr("Key must be ",t,...e);function Ft(t,e,...r){return Xr(`Key for the ${t} algorithm must be `,e,...r)}var Bt=t=>Ge(t)||pe(t),G=["KeyObject"];(globalThis.CryptoKey||Vr?.CryptoKey)&&G.push("CryptoKey");var qi=(...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},zr=qi;function Hi(t){return typeof t=="object"&&t!==null}function Te(t){if(!Hi(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}var to=require("node:crypto");function z(t){return Te(t)&&typeof t.kty=="string"}function Yr(t){return t.kty!=="oct"&&typeof t.d=="string"}function Zr(t){return t.kty!=="oct"&&typeof t.d>"u"}function Qr(t){return z(t)&&t.kty==="oct"&&typeof t.k=="string"}var Gi=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")}},Vi=(t,e)=>{let r;if(pe(t))r=to.KeyObject.from(t);else if(Ge(t))r=t;else{if(z(t))return t.crv;throw new TypeError(Ce(t,...G))}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:Gi(o)}default:throw new TypeError("Invalid asymmetric key type for this operation")}},ro=Vi;var oo=require("node:crypto"),Kt=(t,e)=>{let r;try{t instanceof oo.KeyObject?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 de=t=>t?.[Symbol.toStringTag],Wt=(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},Ji=(t,e,r,o)=>{if(!(e instanceof Uint8Array)){if(o&&z(e)){if(Qr(e)&&Wt(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(!Bt(e))throw new TypeError(Ft(t,e,...G,"Uint8Array",o?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${de(e)} instances for symmetric algorithms must be of type "secret"`)}},Xi=(t,e,r,o)=>{if(o&&z(e))switch(r){case"sign":if(Yr(e)&&Wt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(Zr(e)&&Wt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!Bt(e))throw new TypeError(Ft(t,e,...G,o?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${de(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${de(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${de(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${de(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${de(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function no(t,e,r,o){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?Ji(e,r,o,t):Xi(e,r,o,t)}var Op=no.bind(void 0,!1),so=no.bind(void 0,!0);function zi(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 io=zi;function qt(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`)}}var Oe=require("node:crypto");var Yi=new Map([["ES256","P-256"],["ES256K","secp256k1"],["ES384","P-384"],["ES512","P-521"]]);function Ht(t,e){let r,o,n;if(e instanceof Oe.KeyObject)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");Kt(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");Kt(e,t),s={padding:Oe.constants.RSA_PKCS1_PSS_PADDING,saltLength:Oe.constants.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=ro(e),c=Yi.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}var Je=N(require("node:crypto"),1),ao=require("node:util");function Gt(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`)}}var me=require("node:crypto");function Vt(t,e,r){if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(Ce(e,...G));return(0,me.createSecretKey)(e)}if(e instanceof me.KeyObject)return e;if(pe(e))return Jr(e,t,r),me.KeyObject.from(e);if(z(e))return t.startsWith("HS")?(0,me.createSecretKey)(Buffer.from(e.k,"base64url")):e;throw new TypeError(Ce(e,...G,"Uint8Array","JSON Web Key"))}var Zi=(0,ao.promisify)(Je.sign),Qi=async(t,e,r)=>{let o=Vt(t,e,"sign");if(t.startsWith("HS")){let n=Je.createHmac(Gt(t),o);return n.update(r),n.digest()}return Zi(qt(t),r,Ht(t,o))},co=Qi;var Y=t=>Math.floor(t.getTime()/1e3);var ea=/^(\+|\-)? ?(\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=ea.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 ze=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 q("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!zr(this._protectedHeader,this._unprotectedHeader))throw new q("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...this._protectedHeader,...this._unprotectedHeader},n=io(q,new Map([["b64",!0]]),r?.crit,this._protectedHeader,o),s=!0;if(n.has("b64")&&(s=this._protectedHeader.b64,typeof s!="boolean"))throw new q('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:i}=o;if(typeof i!="string"||!i)throw new q('JWS "alg" (Algorithm) Header Parameter missing or invalid');so(i,e,"sign");let c=this._payload;s&&(c=te.encode(He(c)));let l;this._protectedHeader?l=te.encode(He(JSON.stringify(this._protectedHeader))):l=te.encode("");let u=Fr(l,te.encode("."),c),h=await co(i,e,u),f={signature:He(h),payload:""};return s&&(f.payload=_t.decode(c)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=_t.decode(l)),f}};var Ye=class{constructor(e){b(this,"_flattened");this._flattened=new ze(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 oe(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}var Ze=class{constructor(e={}){b(this,"_payload");if(!Te(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:oe("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:oe("setNotBefore",Y(e))}:this._payload={...this._payload,nbf:Y(new Date)+Xe(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:oe("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:oe("setExpirationTime",Y(e))}:this._payload={...this._payload,exp:Y(new Date)+Xe(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:Y(new Date)}:e instanceof Date?this._payload={...this._payload,iat:oe("setIssuedAt",Y(e))}:typeof e=="string"?this._payload={...this._payload,iat:oe("setIssuedAt",Y(new Date)+Xe(e))}:this._payload={...this._payload,iat:oe("setIssuedAt",e)},this}};var xe=class extends Ze{constructor(){super(...arguments);b(this,"_protectedHeader")}setProtectedHeader(r){return this._protectedHeader=r,this}async sign(r,o){let n=new Ye(te.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 Pe("JWTs MUST NOT use unencoded payload");return n.sign(r,o)}};var fe=require("node:crypto"),Z=require("node:fs"),V=require("node:path"),uo=require("node:util/types"),po=require("tar");function J(t){console.log(JSON.stringify(t,null,2))}async function Jt(t,e,r){let o=e.source,n=Qe(o);if(!n)return;console.log("Saving source code...");let s=await t.createAttachment(n,(0,V.basename)(o),oa(o));console.log("Updating bot...");let i=await t.updateResource({...r,sourceCode:s});console.log("Success! New bot version: "+i.meta?.versionId)}async function Xt(t,e,r){let o=e.dist??e.source,n=Qe(o);if(!n)return;console.log("Deploying bot...");let s=await t.post(t.fhirUrl("Bot",r.id,"$deploy"),{code:n,filename:(0,V.basename)(o)});console.log("Deploy result: "+s.issue?.[0]?.details?.text)}async function zt(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 Jt(t,h,u),await Xt(t,h,u),console.log(`Success! Bot created: ${u.id}`),i&&ta(h)}function mo(t){let e=new RegExp("^"+ra(t).replace(/\\\*/g,".*")+"$"),r=F()?.bots?.filter(o=>e.test(o.name));return r||[]}function M(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){(0,Z.writeFileSync)((0,V.resolve)(t),JSON.stringify(e,void 0,2),"utf-8")}function F(t,e){let r=M(t,e),o=Qe(r);if(o)return JSON.parse(o)}function fo(t){let e=Qe(M(t,{server:!0}));if(e)return JSON.parse(e)}function Qe(t){let e=(0,V.resolve)(t);return(0,Z.existsSync)(e)?(0,Z.readFileSync)(e,"utf8"):""}function ta(t){let e=F()??{};e.bots||(e.bots=[]),e.bots.push(t),(0,Z.writeFileSync)("medplum.config.json",JSON.stringify(e,null,2),"utf8"),console.log(`Bot added to config: ${t.id}`)}function ra(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function ho(t){let o=0,n=0;return(0,po.extract)({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 Yt(){return{url:"http://hl7.org/fhir/StructureDefinition/data-absent-reason",valueCode:"unsupported"}}function oa(t){let e=(0,V.extname)(t).toLowerCase();return[".cjs",".mjs",".js"].includes(e)?ne.ContentType.JAVASCRIPT:[".cts",".mts",".ts"].includes(e)?ne.ContentType.TYPESCRIPT:ne.ContentType.TEXT}function et(t,e){let r=new j(t),o={name:t,...e};return r.setObject("options",o),o}function go(t){return new j(t).getObject("options")}async function yo(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=(0,ne.encodeBase64)(JSON.stringify(r)),i=(0,ne.encodeBase64)(JSON.stringify(n)),c=`${s}.${i}`,l=(0,fe.createHmac)("sha256",e.clientSecret).update(c).digest("base64url"),u=`${c}.${l}`;await t.startJwtBearerLogin(e.clientId,u,e.scope??"")}async function wo(t,e){let r=(0,fe.createPrivateKey)((0,Z.readFileSync)((0,V.resolve)(e.privateKeyPath))),o=await new xe({}).setProtectedHeader({alg:"RS384",typ:"JWT"}).setIssuer(e.clientId).setSubject(e.clientId).setAudience(`${e.baseUrl}${e.audience}`).setJti((0,fe.randomBytes)(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 lo.Command{action(e){let r=na(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 na(t,e){return async r=>{let o=t.registeredArguments.length,n=r.slice(0,o);n[o]=t.optsWithGlobals();try{let s=e(...n);(0,uo.isPromise)(s)&&await s}finally{t.resetOptionDefaults()}}}var Eo=new g("status").aliases(["info","list","ls"]),So=new g("ping"),Ro=new g("push"),Ao=new g("reload-config"),Io=new g("upgrade"),ie=new g("agent");y(ie,Eo);y(ie,So);y(ie,Ro);y(ie,Ao);y(ie,Io);Eo.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$bulk-status",agentIds:t,options:e,parseSuccessfulResponse:r=>{let o=aa(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"}}})});So.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 bo(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}`,se.ContentType.PING,!0,{maxRetries:0});console.info(i)}catch(i){throw new Error("Unexpected response from agent while pinging",{cause:i})}});Ro.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",se.ContentType.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 bo(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)});Ao.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$reload-config",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name})})});Io.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$upgrade",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name,version:e.version??"latest"})})});async function Zt({operation:t,agentIds:e,options:r,parseSuccessfulResponse:o}){let n=la(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=sa(l);for(let K of p)K.result.resourceType==="Parameters"||(0,se.isOk)(K.result)?u.push(K):h.push(K);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 K=o(p);f.push(K)}let S=[];for(let p of h){let kt=p.result.issue?.[0],Oi={id:p.agent.id,name:p.agent.name,severity:kt.severity,code:kt.code,details:kt.details?.text??"No details to show"};S.push(Oi)}console.info(`
|
|
2
|
+
"use strict";var xi=Object.create;var ve=Object.defineProperty;var $i=Object.getOwnPropertyDescriptor;var Ni=Object.getOwnPropertyNames;var Li=Object.getPrototypeOf,Di=Object.prototype.hasOwnProperty;var ki=(t,e,r)=>e in t?ve(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var w=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Mi=(t,e)=>{for(var r in e)ve(t,r,{get:e[r],enumerable:!0})},Mr=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ni(e))!Di.call(t,n)&&n!==r&&ve(t,n,{get:()=>e[n],enumerable:!(o=$i(e,n))||o.enumerable});return t};var N=(t,e,r)=>(r=t!=null?xi(Li(t)):{},Mr(e||!t||!t.__esModule?ve(r,"default",{value:t,enumerable:!0}):r,t)),_i=t=>Mr(ve({},"__esModule",{value:!0}),t);var b=(t,e,r)=>ki(t,typeof e!="symbol"?e+"":e,r);var Ne=w((Bd,$o)=>{"use strict";var Sa="2.0.0",Ra=Number.MAX_SAFE_INTEGER||9007199254740991,Aa=16,Ia=250,ba=["major","premajor","minor","preminor","patch","prepatch","prerelease"];$o.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Aa,MAX_SAFE_BUILD_LENGTH:Ia,MAX_SAFE_INTEGER:Ra,RELEASE_TYPES:ba,SEMVER_SPEC_VERSION:Sa,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Le=w((Kd,No)=>{"use strict";var va=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};No.exports=va});var he=w((B,Lo)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:or,MAX_SAFE_BUILD_LENGTH:Pa,MAX_LENGTH:Ca}=Ne(),Ta=Le();B=Lo.exports={};var Oa=B.re=[],xa=B.safeRe=[],d=B.src=[],$a=B.safeSrc=[],m=B.t={},Na=0,nr="[a-zA-Z0-9-]",La=[["\\s",1],["\\d",Ca],[nr,Pa]],Da=t=>{for(let[e,r]of La)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},E=(t,e,r)=>{let o=Da(e),n=Na++;Ta(t,n,e),m[t]=n,d[n]=e,$a[n]=o,Oa[n]=new RegExp(e,r?"g":void 0),xa[n]=new RegExp(o,r?"g":void 0)};E("NUMERICIDENTIFIER","0|[1-9]\\d*");E("NUMERICIDENTIFIERLOOSE","\\d+");E("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${nr}*`);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",`${nr}+`);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,${or}})(?:\\.(\\d{1,${or}}))?(?:\\.(\\d{1,${or}}))?`);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);B.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);B.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);B.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 rt=w((Wd,Do)=>{"use strict";var ka=Object.freeze({loose:!0}),Ma=Object.freeze({}),_a=t=>t?typeof t!="object"?ka:t:Ma;Do.exports=_a});var sr=w((qd,_o)=>{"use strict";var ko=/^[0-9]+$/,Mo=(t,e)=>{let r=ko.test(t),o=ko.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:t<e?-1:1},Ua=(t,e)=>Mo(e,t);_o.exports={compareIdentifiers:Mo,rcompareIdentifiers:Ua}});var P=w((Hd,Bo)=>{"use strict";var ot=Le(),{MAX_LENGTH:Uo,MAX_SAFE_INTEGER:nt}=Ne(),{safeRe:jo,safeSrc:Fo,t:st}=he(),ja=rt(),{compareIdentifiers:ge}=sr(),ir=class t{constructor(e,r){if(r=ja(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>Uo)throw new TypeError(`version is longer than ${Uo} characters`);ot("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?jo[st.LOOSE]:jo[st.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>nt||this.major<0)throw new TypeError("Invalid major version");if(this.minor>nt||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>nt||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<nt)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(ot("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)),ge(this.major,e.major)||ge(this.minor,e.minor)||ge(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(ot("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 ge(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(ot("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 ge(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[st.PRERELEASELOOSE]:Fo[st.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]),ge(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}};Bo.exports=ir});var ce=w((Gd,Wo)=>{"use strict";var Ko=P(),Fa=(t,e,r=!1)=>{if(t instanceof Ko)return t;try{return new Ko(t,e)}catch(o){if(!r)return null;throw o}};Wo.exports=Fa});var Ho=w((Vd,qo)=>{"use strict";var Ba=ce(),Ka=(t,e)=>{let r=Ba(t,e);return r?r.version:null};qo.exports=Ka});var Vo=w((Jd,Go)=>{"use strict";var Wa=ce(),qa=(t,e)=>{let r=Wa(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};Go.exports=qa});var zo=w((Xd,Xo)=>{"use strict";var Jo=P(),Ha=(t,e,r,o,n)=>{typeof r=="string"&&(n=o,o=r,r=void 0);try{return new Jo(t instanceof Jo?t.version:t,r).inc(e,o,n).version}catch{return null}};Xo.exports=Ha});var Qo=w((zd,Zo)=>{"use strict";var Yo=ce(),Ga=(t,e)=>{let r=Yo(t,null,!0),o=Yo(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"};Zo.exports=Ga});var tn=w((Yd,en)=>{"use strict";var Va=P(),Ja=(t,e)=>new Va(t,e).major;en.exports=Ja});var on=w((Zd,rn)=>{"use strict";var Xa=P(),za=(t,e)=>new Xa(t,e).minor;rn.exports=za});var sn=w((Qd,nn)=>{"use strict";var Ya=P(),Za=(t,e)=>new Ya(t,e).patch;nn.exports=Za});var cn=w((em,an)=>{"use strict";var Qa=ce(),ec=(t,e)=>{let r=Qa(t,e);return r&&r.prerelease.length?r.prerelease:null};an.exports=ec});var L=w((tm,un)=>{"use strict";var ln=P(),tc=(t,e,r)=>new ln(t,r).compare(new ln(e,r));un.exports=tc});var dn=w((rm,pn)=>{"use strict";var rc=L(),oc=(t,e,r)=>rc(e,t,r);pn.exports=oc});var fn=w((om,mn)=>{"use strict";var nc=L(),sc=(t,e)=>nc(t,e,!0);mn.exports=sc});var it=w((nm,gn)=>{"use strict";var hn=P(),ic=(t,e,r)=>{let o=new hn(t,r),n=new hn(e,r);return o.compare(n)||o.compareBuild(n)};gn.exports=ic});var wn=w((sm,yn)=>{"use strict";var ac=it(),cc=(t,e)=>t.sort((r,o)=>ac(r,o,e));yn.exports=cc});var Sn=w((im,En)=>{"use strict";var lc=it(),uc=(t,e)=>t.sort((r,o)=>lc(o,r,e));En.exports=uc});var De=w((am,Rn)=>{"use strict";var pc=L(),dc=(t,e,r)=>pc(t,e,r)>0;Rn.exports=dc});var at=w((cm,An)=>{"use strict";var mc=L(),fc=(t,e,r)=>mc(t,e,r)<0;An.exports=fc});var ar=w((lm,In)=>{"use strict";var hc=L(),gc=(t,e,r)=>hc(t,e,r)===0;In.exports=gc});var cr=w((um,bn)=>{"use strict";var yc=L(),wc=(t,e,r)=>yc(t,e,r)!==0;bn.exports=wc});var ct=w((pm,vn)=>{"use strict";var Ec=L(),Sc=(t,e,r)=>Ec(t,e,r)>=0;vn.exports=Sc});var lt=w((dm,Pn)=>{"use strict";var Rc=L(),Ac=(t,e,r)=>Rc(t,e,r)<=0;Pn.exports=Ac});var lr=w((mm,Cn)=>{"use strict";var Ic=ar(),bc=cr(),vc=De(),Pc=ct(),Cc=at(),Tc=lt(),Oc=(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 Ic(t,r,o);case"!=":return bc(t,r,o);case">":return vc(t,r,o);case">=":return Pc(t,r,o);case"<":return Cc(t,r,o);case"<=":return Tc(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Cn.exports=Oc});var On=w((fm,Tn)=>{"use strict";var xc=P(),$c=ce(),{safeRe:ut,t:pt}=he(),Nc=(t,e)=>{if(t instanceof xc)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?ut[pt.COERCEFULL]:ut[pt.COERCE]);else{let l=e.includePrerelease?ut[pt.COERCERTLFULL]:ut[pt.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 $c(`${o}.${n}.${s}${i}${c}`,e)};Tn.exports=Nc});var $n=w((hm,xn)=>{"use strict";var ur=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}};xn.exports=ur});var D=w((gm,kn)=>{"use strict";var Lc=/\s+/g,pr=class t{constructor(e,r){if(r=kc(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof dr)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(Lc," "),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=>!Ln(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&&Kc(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&&Fc)|(this.options.loose&&Bc))+":"+e,n=Nn.get(o);if(n)return n;let s=this.options.loose,i=s?O[C.HYPHENRANGELOOSE]:O[C.HYPHENRANGE];e=e.replace(i,Zc(this.options.includePrerelease)),A("hyphen replace",e),e=e.replace(O[C.COMPARATORTRIM],_c),A("comparator trim",e),e=e.replace(O[C.TILDETRIM],Uc),A("tilde trim",e),e=e.replace(O[C.CARETTRIM],jc),A("caret trim",e);let c=e.split(" ").map(f=>Wc(f,this.options)).join(" ").split(/\s+/).map(f=>Yc(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 dr(f,this.options));for(let f of u){if(Ln(f))return[f];l.set(f.value,f)}l.size>1&&l.has("")&&l.delete("");let h=[...l.values()];return Nn.set(o,h),h}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>Dn(o,r)&&e.set.some(n=>Dn(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 Mc(e,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if(Qc(this.set[r],e,this.options))return!0;return!1}};kn.exports=pr;var Dc=$n(),Nn=new Dc,kc=rt(),dr=ke(),A=Le(),Mc=P(),{safeRe:O,t:C,comparatorTrimReplace:_c,tildeTrimReplace:Uc,caretTrimReplace:jc}=he(),{FLAG_INCLUDE_PRERELEASE:Fc,FLAG_LOOSE:Bc}=Ne(),Ln=t=>t.value==="<0.0.0-0",Kc=t=>t.value==="",Dn=(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},Wc=(t,e)=>(A("comp",t,e),t=Gc(t,e),A("caret",t),t=qc(t,e),A("tildes",t),t=Jc(t,e),A("xrange",t),t=zc(t,e),A("stars",t),t),T=t=>!t||t.toLowerCase()==="x"||t==="*",qc=(t,e)=>t.trim().split(/\s+/).map(r=>Hc(r,e)).join(" "),Hc=(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})},Gc=(t,e)=>t.trim().split(/\s+/).map(r=>Vc(r,e)).join(" "),Vc=(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})},Jc=(t,e)=>(A("replaceXRanges",t,e),t.split(/\s+/).map(r=>Xc(r,e)).join(" ")),Xc=(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})},zc=(t,e)=>(A("replaceStars",t,e),t.trim().replace(O[C.STAR],"")),Yc=(t,e)=>(A("replaceGTE0",t,e),t.trim().replace(O[e.includePrerelease?C.GTE0PRE:C.GTE0],"")),Zc=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()),Qc=(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!==dr.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 ke=w((ym,Bn)=>{"use strict";var Me=Symbol("SemVer ANY"),hr=class t{static get ANY(){return Me}constructor(e,r){if(r=Mn(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),fr("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Me?this.value="":this.value=this.operator+this.semver.version,fr("comp",this)}parse(e){let r=this.options.loose?_n[Un.COMPARATORLOOSE]:_n[Un.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 jn(o[2],this.options.loose):this.semver=Me}toString(){return this.value}test(e){if(fr("Comparator.test",e,this.options.loose),this.semver===Me||e===Me)return!0;if(typeof e=="string")try{e=new jn(e,this.options)}catch{return!1}return mr(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=Mn(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("=")||mr(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||mr(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};Bn.exports=hr;var Mn=rt(),{safeRe:_n,t:Un}=he(),mr=lr(),fr=Le(),jn=P(),Fn=D()});var _e=w((wm,Kn)=>{"use strict";var el=D(),tl=(t,e,r)=>{try{e=new el(e,r)}catch{return!1}return e.test(t)};Kn.exports=tl});var qn=w((Em,Wn)=>{"use strict";var rl=D(),ol=(t,e)=>new rl(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));Wn.exports=ol});var Gn=w((Sm,Hn)=>{"use strict";var nl=P(),sl=D(),il=(t,e,r)=>{let o=null,n=null,s=null;try{s=new sl(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===-1)&&(o=i,n=new nl(o,r))}),o};Hn.exports=il});var Jn=w((Rm,Vn)=>{"use strict";var al=P(),cl=D(),ll=(t,e,r)=>{let o=null,n=null,s=null;try{s=new cl(e,r)}catch{return null}return t.forEach(i=>{s.test(i)&&(!o||n.compare(i)===1)&&(o=i,n=new al(o,r))}),o};Vn.exports=ll});var Yn=w((Am,zn)=>{"use strict";var gr=P(),ul=D(),Xn=De(),pl=(t,e)=>{t=new ul(t,e);let r=new gr("0.0.0");if(t.test(r)||(r=new gr("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 gr(i.semver.version);switch(i.operator){case">":c.prerelease.length===0?c.patch++:c.prerelease.push(0),c.raw=c.format();case"":case">=":(!s||Xn(c,s))&&(s=c);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),s&&(!r||Xn(r,s))&&(r=s)}return r&&t.test(r)?r:null};zn.exports=pl});var Qn=w((Im,Zn)=>{"use strict";var dl=D(),ml=(t,e)=>{try{return new dl(t,e).range||"*"}catch{return null}};Zn.exports=ml});var dt=w((bm,os)=>{"use strict";var fl=P(),rs=ke(),{ANY:hl}=rs,gl=D(),yl=_e(),es=De(),ts=at(),wl=lt(),El=ct(),Sl=(t,e,r,o)=>{t=new fl(t,o),e=new gl(e,o);let n,s,i,c,l;switch(r){case">":n=es,s=wl,i=ts,c=">",l=">=";break;case"<":n=ts,s=El,i=es,c="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(yl(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===hl&&(p=new rs(">=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};os.exports=Sl});var ss=w((vm,ns)=>{"use strict";var Rl=dt(),Al=(t,e,r)=>Rl(t,e,">",r);ns.exports=Al});var as=w((Pm,is)=>{"use strict";var Il=dt(),bl=(t,e,r)=>Il(t,e,"<",r);is.exports=bl});var us=w((Cm,ls)=>{"use strict";var cs=D(),vl=(t,e,r)=>(t=new cs(t,r),e=new cs(e,r),t.intersects(e,r));ls.exports=vl});var ds=w((Tm,ps)=>{"use strict";var Pl=_e(),Cl=L();ps.exports=(t,e,r)=>{let o=[],n=null,s=null,i=t.sort((h,f)=>Cl(h,f,r));for(let h of i)Pl(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 ws=w((Om,ys)=>{"use strict";var ms=D(),wr=ke(),{ANY:yr}=wr,Ue=_e(),Er=L(),Tl=(t,e,r={})=>{if(t===e)return!0;t=new ms(t,r),e=new ms(e,r);let o=!1;e:for(let n of t.set){for(let s of e.set){let i=xl(n,s,r);if(o=o||i!==null,i)continue e}if(o)return!1}return!0},Ol=[new wr(">=0.0.0-0")],fs=[new wr(">=0.0.0")],xl=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===yr){if(e.length===1&&e[0].semver===yr)return!0;r.includePrerelease?t=Ol:t=fs}if(e.length===1&&e[0].semver===yr){if(r.includePrerelease)return!0;e=fs}let o=new Set,n,s;for(let p of t)p.operator===">"||p.operator===">="?n=hs(n,p,r):p.operator==="<"||p.operator==="<="?s=gs(s,p,r):o.add(p.semver);if(o.size>1)return null;let i;if(n&&s){if(i=Er(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&&!Ue(p,String(n),r)||s&&!Ue(p,String(s),r))return null;for(let K of e)if(!Ue(p,String(K),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=hs(n,p,r),c===p&&c!==n)return!1}else if(n.operator===">="&&!Ue(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=gs(s,p,r),l===p&&l!==s)return!1}else if(s.operator==="<="&&!Ue(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)},hs=(t,e,r)=>{if(!t)return e;let o=Er(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},gs=(t,e,r)=>{if(!t)return e;let o=Er(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};ys.exports=Tl});var Rr=w((xm,Rs)=>{"use strict";var Sr=he(),Es=Ne(),$l=P(),Ss=sr(),Nl=ce(),Ll=Ho(),Dl=Vo(),kl=zo(),Ml=Qo(),_l=tn(),Ul=on(),jl=sn(),Fl=cn(),Bl=L(),Kl=dn(),Wl=fn(),ql=it(),Hl=wn(),Gl=Sn(),Vl=De(),Jl=at(),Xl=ar(),zl=cr(),Yl=ct(),Zl=lt(),Ql=lr(),eu=On(),tu=ke(),ru=D(),ou=_e(),nu=qn(),su=Gn(),iu=Jn(),au=Yn(),cu=Qn(),lu=dt(),uu=ss(),pu=as(),du=us(),mu=ds(),fu=ws();Rs.exports={parse:Nl,valid:Ll,clean:Dl,inc:kl,diff:Ml,major:_l,minor:Ul,patch:jl,prerelease:Fl,compare:Bl,rcompare:Kl,compareLoose:Wl,compareBuild:ql,sort:Hl,rsort:Gl,gt:Vl,lt:Jl,eq:Xl,neq:zl,gte:Yl,lte:Zl,cmp:Ql,coerce:eu,Comparator:tu,Range:ru,satisfies:ou,toComparators:nu,maxSatisfying:su,minSatisfying:iu,minVersion:au,validRange:cu,outside:lu,gtr:uu,ltr:pu,intersects:du,simplifyRange:mu,subset:fu,SemVer:$l,re:Sr.re,src:Sr.src,tokens:Sr.t,SEMVER_SPEC_VERSION:Es.SEMVER_SPEC_VERSION,RELEASE_TYPES:Es.RELEASE_TYPES,compareIdentifiers:Ss.compareIdentifiers,rcompareIdentifiers:Ss.rcompareIdentifiers}});var Qu={};Mi(Qu,{handleError:()=>Ci,main:()=>Pi,run:()=>Ti});module.exports=_i(Qu);var be=require("@medplum/core"),qe=require("commander"),vi=N(require("dotenv"));var se=require("@medplum/core"),tt=require("commander");var jr=require("@medplum/core");var _r=require("@medplum/core"),W=require("node:fs"),Ur=require("node:os"),Mt=require("node:path"),j=class extends _r.ClientStorage{constructor(e){super(),this.dirName=(0,Mt.resolve)((0,Ur.homedir)(),".medplum"),this.fileName=(0,Mt.resolve)(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((0,W.existsSync)(this.fileName))return JSON.parse((0,W.readFileSync)(this.fileName,"utf8"))}writeFile(e){(0,W.existsSync)(this.dirName)||(0,W.mkdirSync)(this.dirName),(0,W.writeFileSync)(this.fileName,JSON.stringify(e,null,2),"utf8")}};async function R(t,e=!0){let r=t.profile??"default",o=new j(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}=Ui(t,o),S=t.fetch??fetch,p=new jr.MedplumClient({fetch:S,baseUrl:s,tokenUrl:l,fhirUrlPath:i,authorizeUrl:u,storage:o,onUnauthenticated:ji,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 Ui(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 ji(){console.log("Unauthenticated: run `npx medplum login` to sign in")}var ne=require("@medplum/core"),lo=require("commander");var Br=require("node:buffer");var te=new TextEncoder,_t=new TextDecoder,sp=2**32;function Fr(...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 He=t=>Br.Buffer.from(t).toString("base64url");var re=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(re,"code","ERR_JOSE_GENERIC");var $=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JOSE_NOT_SUPPORTED")}};b($,"code","ERR_JOSE_NOT_SUPPORTED");var q=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JWS_INVALID")}};b(q,"code","ERR_JWS_INVALID");var Pe=class extends re{constructor(){super(...arguments);b(this,"code","ERR_JWT_INVALID")}};b(Pe,"code","ERR_JWT_INVALID");var Kr,Wr,Ut=class extends(Wr=re,Kr=Symbol.asyncIterator,Wr){constructor(r="multiple matching keys found in the JSON Web Key Set",o){super(r,o);b(this,Kr);b(this,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS")}};b(Ut,"code","ERR_JWKS_MULTIPLE_MATCHING_KEYS");var qr=N(require("node:util"),1),Ge=t=>qr.types.isKeyObject(t);var Hr=N(require("node:crypto"),1),Gr=N(require("node:util"),1),Bi=Hr.webcrypto,Vr=Bi,pe=t=>Gr.types.isCryptoKey(t);function H(t,e="algorithm.name"){return new TypeError(`CryptoKey does not support this operation, its ${e} must be ${t}`)}function Ve(t,e){return t.name===e}function jt(t){return parseInt(t.name.slice(4),10)}function Ki(t){switch(t){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw new Error("unreachable")}}function Wi(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 Jr(t,e,...r){switch(e){case"HS256":case"HS384":case"HS512":{if(!Ve(t.algorithm,"HMAC"))throw H("HMAC");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"RS256":case"RS384":case"RS512":{if(!Ve(t.algorithm,"RSASSA-PKCS1-v1_5"))throw H("RSASSA-PKCS1-v1_5");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"PS256":case"PS384":case"PS512":{if(!Ve(t.algorithm,"RSA-PSS"))throw H("RSA-PSS");let o=parseInt(e.slice(2),10);if(jt(t.algorithm.hash)!==o)throw H(`SHA-${o}`,"algorithm.hash");break}case"EdDSA":{if(t.algorithm.name!=="Ed25519"&&t.algorithm.name!=="Ed448")throw H("Ed25519 or Ed448");break}case"ES256":case"ES384":case"ES512":{if(!Ve(t.algorithm,"ECDSA"))throw H("ECDSA");let o=Ki(e);if(t.algorithm.namedCurve!==o)throw H(o,"algorithm.namedCurve");break}default:throw new TypeError("CryptoKey does not support this operation")}Wi(t,r)}function Xr(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 Ce=(t,...e)=>Xr("Key must be ",t,...e);function Ft(t,e,...r){return Xr(`Key for the ${t} algorithm must be `,e,...r)}var Bt=t=>Ge(t)||pe(t),G=["KeyObject"];(globalThis.CryptoKey||Vr?.CryptoKey)&&G.push("CryptoKey");var qi=(...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},zr=qi;function Hi(t){return typeof t=="object"&&t!==null}function Te(t){if(!Hi(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}var to=require("node:crypto");function z(t){return Te(t)&&typeof t.kty=="string"}function Yr(t){return t.kty!=="oct"&&typeof t.d=="string"}function Zr(t){return t.kty!=="oct"&&typeof t.d>"u"}function Qr(t){return z(t)&&t.kty==="oct"&&typeof t.k=="string"}var Gi=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")}},Vi=(t,e)=>{let r;if(pe(t))r=to.KeyObject.from(t);else if(Ge(t))r=t;else{if(z(t))return t.crv;throw new TypeError(Ce(t,...G))}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:Gi(o)}default:throw new TypeError("Invalid asymmetric key type for this operation")}},ro=Vi;var oo=require("node:crypto"),Kt=(t,e)=>{let r;try{t instanceof oo.KeyObject?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 de=t=>t?.[Symbol.toStringTag],Wt=(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},Ji=(t,e,r,o)=>{if(!(e instanceof Uint8Array)){if(o&&z(e)){if(Qr(e)&&Wt(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(!Bt(e))throw new TypeError(Ft(t,e,...G,"Uint8Array",o?"JSON Web Key":null));if(e.type!=="secret")throw new TypeError(`${de(e)} instances for symmetric algorithms must be of type "secret"`)}},Xi=(t,e,r,o)=>{if(o&&z(e))switch(r){case"sign":if(Yr(e)&&Wt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a private JWK");case"verify":if(Zr(e)&&Wt(t,e,r))return;throw new TypeError("JSON Web Key for this operation be a public JWK")}if(!Bt(e))throw new TypeError(Ft(t,e,...G,o?"JSON Web Key":null));if(e.type==="secret")throw new TypeError(`${de(e)} instances for asymmetric algorithms must not be of type "secret"`);if(r==="sign"&&e.type==="public")throw new TypeError(`${de(e)} instances for asymmetric algorithm signing must be of type "private"`);if(r==="decrypt"&&e.type==="public")throw new TypeError(`${de(e)} instances for asymmetric algorithm decryption must be of type "private"`);if(e.algorithm&&r==="verify"&&e.type==="private")throw new TypeError(`${de(e)} instances for asymmetric algorithm verifying must be of type "public"`);if(e.algorithm&&r==="encrypt"&&e.type==="private")throw new TypeError(`${de(e)} instances for asymmetric algorithm encryption must be of type "public"`)};function no(t,e,r,o){e.startsWith("HS")||e==="dir"||e.startsWith("PBES2")||/^A\d{3}(?:GCM)?KW$/.test(e)?Ji(e,r,o,t):Xi(e,r,o,t)}var Op=no.bind(void 0,!1),so=no.bind(void 0,!0);function zi(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 io=zi;function qt(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`)}}var Oe=require("node:crypto");var Yi=new Map([["ES256","P-256"],["ES256K","secp256k1"],["ES384","P-384"],["ES512","P-521"]]);function Ht(t,e){let r,o,n;if(e instanceof Oe.KeyObject)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");Kt(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");Kt(e,t),s={padding:Oe.constants.RSA_PKCS1_PSS_PADDING,saltLength:Oe.constants.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=ro(e),c=Yi.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}var Je=N(require("node:crypto"),1),ao=require("node:util");function Gt(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`)}}var me=require("node:crypto");function Vt(t,e,r){if(e instanceof Uint8Array){if(!t.startsWith("HS"))throw new TypeError(Ce(e,...G));return(0,me.createSecretKey)(e)}if(e instanceof me.KeyObject)return e;if(pe(e))return Jr(e,t,r),me.KeyObject.from(e);if(z(e))return t.startsWith("HS")?(0,me.createSecretKey)(Buffer.from(e.k,"base64url")):e;throw new TypeError(Ce(e,...G,"Uint8Array","JSON Web Key"))}var Zi=(0,ao.promisify)(Je.sign),Qi=async(t,e,r)=>{let o=Vt(t,e,"sign");if(t.startsWith("HS")){let n=Je.createHmac(Gt(t),o);return n.update(r),n.digest()}return Zi(qt(t),r,Ht(t,o))},co=Qi;var Y=t=>Math.floor(t.getTime()/1e3);var ea=/^(\+|\-)? ?(\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=ea.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 ze=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 q("either setProtectedHeader or setUnprotectedHeader must be called before #sign()");if(!zr(this._protectedHeader,this._unprotectedHeader))throw new q("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let o={...this._protectedHeader,...this._unprotectedHeader},n=io(q,new Map([["b64",!0]]),r?.crit,this._protectedHeader,o),s=!0;if(n.has("b64")&&(s=this._protectedHeader.b64,typeof s!="boolean"))throw new q('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:i}=o;if(typeof i!="string"||!i)throw new q('JWS "alg" (Algorithm) Header Parameter missing or invalid');so(i,e,"sign");let c=this._payload;s&&(c=te.encode(He(c)));let l;this._protectedHeader?l=te.encode(He(JSON.stringify(this._protectedHeader))):l=te.encode("");let u=Fr(l,te.encode("."),c),h=await co(i,e,u),f={signature:He(h),payload:""};return s&&(f.payload=_t.decode(c)),this._unprotectedHeader&&(f.header=this._unprotectedHeader),this._protectedHeader&&(f.protected=_t.decode(l)),f}};var Ye=class{constructor(e){b(this,"_flattened");this._flattened=new ze(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 oe(t,e){if(!Number.isFinite(e))throw new TypeError(`Invalid ${t} input`);return e}var Ze=class{constructor(e={}){b(this,"_payload");if(!Te(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:oe("setNotBefore",e)}:e instanceof Date?this._payload={...this._payload,nbf:oe("setNotBefore",Y(e))}:this._payload={...this._payload,nbf:Y(new Date)+Xe(e)},this}setExpirationTime(e){return typeof e=="number"?this._payload={...this._payload,exp:oe("setExpirationTime",e)}:e instanceof Date?this._payload={...this._payload,exp:oe("setExpirationTime",Y(e))}:this._payload={...this._payload,exp:Y(new Date)+Xe(e)},this}setIssuedAt(e){return typeof e>"u"?this._payload={...this._payload,iat:Y(new Date)}:e instanceof Date?this._payload={...this._payload,iat:oe("setIssuedAt",Y(e))}:typeof e=="string"?this._payload={...this._payload,iat:oe("setIssuedAt",Y(new Date)+Xe(e))}:this._payload={...this._payload,iat:oe("setIssuedAt",e)},this}};var xe=class extends Ze{constructor(){super(...arguments);b(this,"_protectedHeader")}setProtectedHeader(r){return this._protectedHeader=r,this}async sign(r,o){let n=new Ye(te.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 Pe("JWTs MUST NOT use unencoded payload");return n.sign(r,o)}};var fe=require("node:crypto"),Z=require("node:fs"),V=require("node:path"),uo=require("node:util/types"),po=require("tar");function J(t){console.log(JSON.stringify(t,null,2))}async function Jt(t,e,r){let o=e.source,n=Qe(o);if(!n)return;console.log("Saving source code...");let s=await t.createAttachment({data:n,filename:(0,V.basename)(o),contentType:oa(o)});console.log("Updating bot...");let i=await t.updateResource({...r,sourceCode:s});console.log("Success! New bot version: "+i.meta?.versionId)}async function Xt(t,e,r){let o=e.dist??e.source,n=Qe(o);if(!n)return;console.log("Deploying bot...");let s=await t.post(t.fhirUrl("Bot",r.id,"$deploy"),{code:n,filename:(0,V.basename)(o)});console.log("Deploy result: "+s.issue?.[0]?.details?.text)}async function zt(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 Jt(t,h,u),await Xt(t,h,u),console.log(`Success! Bot created: ${u.id}`),i&&ta(h)}function mo(t){let e=new RegExp("^"+ra(t).replace(/\\\*/g,".*")+"$"),r=F()?.bots?.filter(o=>e.test(o.name));return r||[]}function M(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){(0,Z.writeFileSync)((0,V.resolve)(t),JSON.stringify(e,void 0,2),"utf-8")}function F(t,e){let r=M(t,e),o=Qe(r);if(o)return JSON.parse(o)}function fo(t){let e=Qe(M(t,{server:!0}));if(e)return JSON.parse(e)}function Qe(t){let e=(0,V.resolve)(t);return(0,Z.existsSync)(e)?(0,Z.readFileSync)(e,"utf8"):""}function ta(t){let e=F()??{};e.bots||(e.bots=[]),e.bots.push(t),(0,Z.writeFileSync)("medplum.config.json",JSON.stringify(e,null,2),"utf8"),console.log(`Bot added to config: ${t.id}`)}function ra(t){return t.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&")}function ho(t){let o=0,n=0;return(0,po.extract)({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 Yt(){return{url:"http://hl7.org/fhir/StructureDefinition/data-absent-reason",valueCode:"unsupported"}}function oa(t){let e=(0,V.extname)(t).toLowerCase();return[".cjs",".mjs",".js"].includes(e)?ne.ContentType.JAVASCRIPT:[".cts",".mts",".ts"].includes(e)?ne.ContentType.TYPESCRIPT:ne.ContentType.TEXT}function et(t,e){let r=new j(t),o={name:t,...e};return r.setObject("options",o),o}function go(t){return new j(t).getObject("options")}async function yo(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=(0,ne.encodeBase64)(JSON.stringify(r)),i=(0,ne.encodeBase64)(JSON.stringify(n)),c=`${s}.${i}`,l=(0,fe.createHmac)("sha256",e.clientSecret).update(c).digest("base64url"),u=`${c}.${l}`;await t.startJwtBearerLogin(e.clientId,u,e.scope??"")}async function wo(t,e){let r=(0,fe.createPrivateKey)((0,Z.readFileSync)((0,V.resolve)(e.privateKeyPath))),o=await new xe({}).setProtectedHeader({alg:"RS384",typ:"JWT"}).setIssuer(e.clientId).setSubject(e.clientId).setAudience(`${e.baseUrl}${e.audience}`).setJti((0,fe.randomBytes)(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 lo.Command{action(e){let r=na(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 na(t,e){return async r=>{let o=t.registeredArguments.length,n=r.slice(0,o);n[o]=t.optsWithGlobals();try{let s=e(...n);(0,uo.isPromise)(s)&&await s}finally{t.resetOptionDefaults()}}}var Eo=new g("status").aliases(["info","list","ls"]),So=new g("ping"),Ro=new g("push"),Ao=new g("reload-config"),Io=new g("upgrade"),ie=new g("agent");y(ie,Eo);y(ie,So);y(ie,Ro);y(ie,Ao);y(ie,Io);Eo.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$bulk-status",agentIds:t,options:e,parseSuccessfulResponse:r=>{let o=aa(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"}}})});So.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 bo(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}`,se.ContentType.PING,!0,{maxRetries:0});console.info(i)}catch(i){throw new Error("Unexpected response from agent while pinging",{cause:i})}});Ro.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",se.ContentType.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 bo(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)});Ao.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$reload-config",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name})})});Io.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.Option("--output <format>","An optional output format, defaults to table").choices(["table","json"]).default("table")).action(async(t,e)=>{await Zt({operation:"$upgrade",agentIds:t,options:e,parseSuccessfulResponse:r=>({id:r.agent.id,name:r.agent.name,version:e.version??"latest"})})});async function Zt({operation:t,agentIds:e,options:r,parseSuccessfulResponse:o}){let n=la(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=sa(l);for(let K of p)K.result.resourceType==="Parameters"||(0,se.isOk)(K.result)?u.push(K):h.push(K);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 K=o(p);f.push(K)}let S=[];for(let p of h){let kt=p.result.issue?.[0],Oi={id:p.agent.id,name:p.agent.name,severity:kt.severity,code:kt.code,details:kt.details?.text??"No details to show"};S.push(Oi)}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 bo(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{vo(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 sa(t){let e=[];for(let r of t.entry??[]){if(!r.resource)throw new Error("No Parameter resource found in entry");e.push(ia(r.resource))}return e}function ia(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 aa(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=ca(s,i);r[s]=c}return r}function ca(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 la(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(!(0,se.isUUID)(r))throw new Error(`Input '${r}' is not a valid agentId`);return{type:"ids",ids:t}}if(e.criteria)return vo(e.criteria),{type:"criteria",criteria:e.criteria};throw new Error("Either an [agentId...] arg or a --criteria <criteria> flag is required")}function vo(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 `=`")})}var _=require("@medplum/core"),Po=require("node:child_process"),Co=require("node:http"),To=require("node:os");var Oo=_.MEDPLUM_CLI_CLIENT_ID,xo="http://localhost:9615",Qt=new g("login"),er=new g("whoami"),tr=new g("token");Qt.action(async t=>{let e=t.profile??"default",r=et(e,t),o=await R(t,!1);await ua(o,r)});er.action(async t=>{let e=await R(t);ma(e)});tr.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 ua(t,e){switch(e?.authType??"authorization-code"){case"authorization-code":await fa(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 yo(t,e);break;case"jwt-assertion":await wo(t,e);break}}async function pa(t){let e=(0,Co.createServer)(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":_.ContentType.TEXT}),o.end("OK");return}if(n.pathname==="/"&&s)try{let i=await t.processCode(s,{clientId:Oo,redirectUri:xo});o.writeHead(200,{"Content-Type":_.ContentType.TEXT}),o.end(`Signed in as ${(0,_.getDisplayString)(i)}. You may close this window.`)}catch(i){o.writeHead(400,{"Content-Type":_.ContentType.TEXT}),o.end(`Error: ${(0,_.normalizeErrorString)(i)}`)}finally{e.close()}else o.writeHead(404,{"Content-Type":_.ContentType.TEXT}),o.end("Not found")}).listen(9615)}async function da(t){let e=(0,To.platform)(),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)=>{(0,Po.exec)(r,(s,i,c)=>{if(s){n(s);return}if(c){n(new Error("Could not open browser: "+c));return}o()})})}function ma(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 fa(t){await pa(t);let e=new URL(t.getAuthorizeUrl());e.searchParams.set("client_id",Oo),e.searchParams.set("redirect_uri",xo),e.searchParams.set("scope","openid"),e.searchParams.set("response_type","code"),e.searchParams.set("prompt","login"),await da(e.toString())}var $e="\x1B[0m",ha="\x1B[1m",ga="\x1B[31m",ya="\x1B[32m",wa="\x1B[33m",Ea="\x1B[34m",ae={red:t=>`${ga}${t}${$e}`,green:t=>`${ya}${t}${$e}`,yellow:t=>`${wa}${t}${$e}`,blue:t=>`${Ea}${t}${$e}`,bold:t=>`${ha}${t}${$e}`},rr=t=>t.replace(/\*\*(.*?)\*\*/g,(e,r)=>ae.bold(r));var X=require("@aws-sdk/client-cloudformation"),wt=require("@aws-sdk/client-cloudfront"),bs=require("@aws-sdk/client-ecs"),vs=require("@aws-sdk/client-s3"),we=require("@aws-sdk/client-ssm"),Et=require("@aws-sdk/client-sts"),Ps=require("@medplum/core"),Cs=N(require("node-fetch")),Ts=require("node:fs"),Os=N(Rr());var As=N(require("node:readline")),mt;function ft(){mt=As.default.createInterface({input:process.stdin,output:process.stdout})}function ht(){mt.close()}function a(t){mt.write(t+`
|
|
5
5
|
`)}function I(t){a(`
|