@medplum/core 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.core={}))}(this,(function(e){"use strict";function t(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function i(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function n(e,t,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,i):r?r.value=i:t.set(e,i),i}var r,o,s,a;class c{constructor(e=10){r.add(this),o.set(this,void 0),s.set(this,void 0),n(this,o,e,"f"),n(this,s,new Map,"f")}clear(){i(this,s,"f").clear()}get(e){const t=i(this,s,"f").get(e);return t&&(i(this,s,"f").delete(e),i(this,s,"f").set(e,t)),t}set(e,t){i(this,s,"f").has(e)?i(this,s,"f").delete(e):i(this,s,"f").size>=i(this,o,"f")&&i(this,s,"f").delete(i(this,r,"m",a).call(this)),i(this,s,"f").set(e,t)}delete(e){i(this,s,"f").delete(e)}}function l(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function u(e){return e.resourceType+"/"+e.id}function h(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function d(e){var t,i;if(h(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return l(t[0]);return}(e);if(t)return t}if("Device"===e.resourceType){const t=function(e){const t=e.deviceName;if(t&&t.length>0)return t[0].name;return}(e);if(t)return t}return"Observation"===e.resourceType&&"code"in e&&(null===(t=e.code)||void 0===t?void 0:t.text)?null===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:u(e)}function f(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function p(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const r=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),a=n.getUTCFullYear(),c=n.getUTCMonth(),l=n.getUTCDate();let u=a-r;(c<o||c===o&&l<s)&&u--;let h=12*a+c-(12*r+o);l<s&&h--;return{years:u,months:h,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function m(e,t){if(e)for(const i of e)i.linkId&&i.answer&&i.answer.length>0&&(t[i.linkId]=i.answer[0]),m(i.item,t)}function g(e,t){return JSON.stringify(e,v,t?2:void 0)}function v(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&y(t)?void 0:t}function y(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function T(e,t,i){return e===t||(!(!y(e)||!y(t))||!y(e)&&!y(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!T(e[i],t[i]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(w(e)&&w(t)?function(e,t,i){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===i&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const i of n){if(!T(e[i],t[i],i))return!1}return!0}(e,t,i):(w(e)||w(t),!1))))}function w(e){return null!==e&&"object"==typeof e}function S(e){return e.every((e=>"string"==typeof e))}o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){return i(this,s,"f").keys().next().value};const E=[];for(let e=0;e<256;e++)E.push(e.toString(16).padStart(2,"0"));function R(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=E[t[e]];return i.join("")}function A(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function O(e){return e.charAt(0).toUpperCase()+e.substring(1)}function P(){const e=new Uint32Array(28);return crypto.getRandomValues(e),R(e.buffer)}var U;function C(e){const t=function(e){if("undefined"!=typeof window)return window.atob(e);if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("binary");throw new Error("Unable to decode base64")}(e.replace(/-/g,"+").replace(/_/g,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(i);return JSON.parse(n)}U=new WeakMap;const b="ok",k="created",_="gone",I="not-modified",M="not-found",N="access-denied",x={resourceType:"OperationOutcome",id:b,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},L={resourceType:"OperationOutcome",id:k,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},j={resourceType:"OperationOutcome",id:I,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},D={resourceType:"OperationOutcome",id:M,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},W={resourceType:"OperationOutcome",id:_,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},B={resourceType:"OperationOutcome",id:N,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function H(e){return e.id===b||e.id===k||e.id===I}class F extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var $,Q,X,q,G;class Y{constructor(e){this[G]="ReadablePromise",$.set(this,void 0),Q.set(this,"pending"),X.set(this,void 0),q.set(this,void 0),n(this,$,e.then((e=>(n(this,Q,"success","f"),n(this,X,e,"f"),e)),(e=>{throw n(this,Q,"error","f"),n(this,q,e,"f"),e})),"f")}isPending(){return"pending"===i(this,Q,"f")}read(){switch(i(this,Q,"f")){case"pending":throw i(this,$,"f");case"error":throw i(this,q,"f");default:return i(this,X,"f")}}then(e,t){return i(this,$,"f").then(e,t)}catch(e){return i(this,$,"f").catch(e)}finally(e){return i(this,$,"f").finally(e)}}$=new WeakMap,Q=new WeakMap,X=new WeakMap,q=new WeakMap,G=Symbol.toStringTag;var z;e.Operator=void 0,(z=e.Operator||(e.Operator={})).EQUALS="eq",z.NOT_EQUALS="ne",z.GREATER_THAN="gt",z.LESS_THAN="lt",z.GREATER_THAN_OR_EQUALS="ge",z.LESS_THAN_OR_EQUALS="le",z.STARTS_AFTER="sa",z.ENDS_BEFORE="eb",z.APPROXIMATELY="ap",z.CONTAINS="contains",z.EXACT="exact",z.TEXT="text",z.ABOVE="above",z.BELOW="below",z.IN="in",z.NOT_IN="not-in",z.OF_TYPE="of-type";const V=[e.Operator.CONTAINS,e.Operator.EXACT,e.Operator.TEXT,e.Operator.ABOVE,e.Operator.BELOW,e.Operator.IN,e.Operator.NOT_IN,e.Operator.OF_TYPE],K=[e.Operator.NOT_EQUALS,e.Operator.GREATER_THAN,e.Operator.LESS_THAN,e.Operator.GREATER_THAN_OR_EQUALS,e.Operator.LESS_THAN_OR_EQUALS,e.Operator.STARTS_AFTER,e.Operator.ENDS_BEFORE,e.Operator.APPROXIMATELY];function J(t){const i=new URL(t,"https://example.com/"),n=i.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let r,o,s,a,c,l;return new URLSearchParams(i.search).forEach(((t,i)=>{"_fields"===i?s=t.split(","):"_offset"===i?a=parseInt(t):"_count"===i?c=parseInt(t):"_total"===i?l=t:"_sort"===i?(o=o||[],o.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(r=r||[],r.push(function(t,i){let n=t,r=e.Operator.EQUALS;for(const e of V){const t=n.indexOf(":"+e);-1!==t&&(r=e,n=n.substring(0,t))}for(const e of K)i.match(new RegExp("^"+e+"\\d"))&&(r=e,i=i.substring(e.length));return{code:n,operator:r,value:i}}(i,t)))})),{resourceType:n,filters:r,fields:s,offset:a,count:c,total:l,sortRules:o}}function Z(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=V.includes(e.operator)?":"+e.operator:"",i=K.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${encodeURIComponent(e.value)}`}(e)))),e.sortRules&&e.sortRules.length>0&&t.push(function(e){if(!e||0===e.length)return"";return"_sort="+e.map((e=>e.descending?"-"+e.code:e.code)).join(",")}(e.sortRules)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var ee,te,ie,ne,re,oe,se,ae,ce,le,ue,he,de,fe,pe,me,ge,ve,ye,Te,we,Se,Ee,Re,Ae,Oe,Pe,Ue,Ce,be,ke,_e,Ie;class Me{constructor(){ee.set(this,void 0),n(this,ee,"undefined"!=typeof localStorage?localStorage:new Ne,"f")}clear(){i(this,ee,"f").clear()}getString(e){return i(this,ee,"f").getItem(e)||void 0}setString(e,t){t?i(this,ee,"f").setItem(e,t):i(this,ee,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?g(t):void 0)}}ee=new WeakMap;class Ne{constructor(){te.set(this,void 0),n(this,te,new Map,"f")}get length(){return i(this,te,"f").size}clear(){i(this,te,"f").clear()}getItem(e){var t;return null!==(t=i(this,te,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?i(this,te,"f").set(e,t):i(this,te,"f").delete(e)}removeItem(e){i(this,te,"f").delete(e)}key(e){return Array.from(i(this,te,"f").keys())[e]}}function xe(){return{types:{}}}function Le(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function je(e,t){var i;const n=t.name;if(!n)return;e.types[n]=Le(n,t.description);const r=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(r){const t=r.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var i,n;const r=t.path,o=null===(n=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===n?void 0:n.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=r.split("."),a=We(s);a in e.types||(e.types[a]=Le(a,t.definition),e.types[a].parentType=We(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const n=We(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function De(e,t){if(t.base)for(const i of t.base){const n=e.types[i];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function We(e){return e.map(O).join("")}te=new WeakMap,e.PropertyType=void 0,(ie=e.PropertyType||(e.PropertyType={})).Address="Address",ie.Age="Age",ie.Annotation="Annotation",ie.Attachment="Attachment",ie.BackboneElement="BackboneElement",ie.CodeableConcept="CodeableConcept",ie.Coding="Coding",ie.ContactDetail="ContactDetail",ie.ContactPoint="ContactPoint",ie.Contributor="Contributor",ie.Count="Count",ie.DataRequirement="DataRequirement",ie.Distance="Distance",ie.Dosage="Dosage",ie.Duration="Duration",ie.Expression="Expression",ie.Extension="Extension",ie.HumanName="HumanName",ie.Identifier="Identifier",ie.MarketingStatus="MarketingStatus",ie.Meta="Meta",ie.Money="Money",ie.Narrative="Narrative",ie.ParameterDefinition="ParameterDefinition",ie.Period="Period",ie.Population="Population",ie.ProdCharacteristic="ProdCharacteristic",ie.ProductShelfLife="ProductShelfLife",ie.Quantity="Quantity",ie.Range="Range",ie.Ratio="Ratio",ie.Reference="Reference",ie.RelatedArtifact="RelatedArtifact",ie.Resource="Resource",ie.SampledData="SampledData",ie.Signature="Signature",ie.SubstanceAmount="SubstanceAmount",ie.SystemString="http://hl7.org/fhirpath/System.String",ie.Timing="Timing",ie.TriggerDefinition="TriggerDefinition",ie.UsageContext="UsageContext",ie.base64Binary="base64Binary",ie.boolean="boolean",ie.canonical="canonical",ie.code="code",ie.date="date",ie.dateTime="dateTime",ie.decimal="decimal",ie.id="id",ie.instant="instant",ie.integer="integer",ie.markdown="markdown",ie.oid="oid",ie.positiveInt="positiveInt",ie.string="string",ie.time="time",ie.unsignedInt="unsignedInt",ie.uri="uri",ie.url="url",ie.uuid="uuid";const Be="launch/patient openid fhirUser offline_access user/*.*";function He(){return window.location.protocol+"//"+window.location.host+"/"}re=new WeakMap,oe=new WeakMap,se=new WeakMap,ae=new WeakMap,ce=new WeakMap,le=new WeakMap,ue=new WeakMap,he=new WeakMap,de=new WeakMap,fe=new WeakMap,pe=new WeakMap,me=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakMap,Te=new WeakMap,ne=new WeakSet,we=function(e){const t=this.getLogins().filter((t=>{var i,n;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));t.push(e),i(this,oe,"f").setObject("logins",t)},Se=function(){return t(this,void 0,void 0,(function*(){return n(this,ve,new Promise(((e,t)=>{this.get("auth/me").then((t=>{n(this,ve,void 0,"f"),n(this,ye,t.profile,"f"),n(this,Te,t.config,"f"),this.dispatchEvent({type:"change"}),e(i(this,ye,"f"))})).catch(t)})),"f"),i(this,ve,"f")}))},Ee=function(e,n,r={}){return t(this,void 0,void 0,(function*(){i(this,ge,"f")&&(yield i(this,ge,"f")),n.startsWith("http")||(n=i(this,ce,"f")+n),r.method=e,i(this,ne,"m",Re).call(this,r);const t=yield i(this,re,"f").call(this,n,r);if(401===t.status)return i(this,ne,"m",Pe).call(this,e,n,r);if(204===t.status||304===t.status)return;const o=yield t.json();return"OperationOutcome"!==(null==o?void 0:o.resourceType)||H(o)?o:Promise.reject(o)}))},Re=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),i(this,pe,"f")&&(t.Authorization="Bearer "+i(this,pe,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Ae=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},Oe=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=g(t))},Pe=function(e,n,r){return t(this,void 0,void 0,(function*(){return i(this,ne,"m",be).call(this).then((()=>i(this,ne,"m",Ee).call(this,e,n,r))).catch((e=>(this.clear(),i(this,fe,"f")&&i(this,fe,"f").call(this),Promise.reject(e))))}))},Ue=function(){return t(this,void 0,void 0,(function*(){const e=P();i(this,oe,"f").setString("pkceState",e);const n=P();i(this,oe,"f").setString("codeVerifier",n);const r=A(yield function(e){return t(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");i(this,oe,"f").setString("codeChallenge",r)}))},Ce=function(){return t(this,void 0,void 0,(function*(){if(!i(this,ue,"f"))return Promise.reject("Missing authorize URL");i(this,ne,"m",Ue).call(this),window.location.assign(i(this,ue,"f")+"?response_type=code&state="+encodeURIComponent(i(this,oe,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(i(this,le,"f"))+"&redirect_uri="+encodeURIComponent(He())+"&scope="+encodeURIComponent(Be)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(i(this,oe,"f").getString("codeChallenge")))}))},be=function(){return t(this,void 0,void 0,(function*(){return i(this,ge,"f")?i(this,ge,"f"):i(this,me,"f")?(n(this,ge,i(this,ne,"m",ke).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(i(this,le,"f"))+"&refresh_token="+encodeURIComponent(i(this,me,"f"))),"f"),void(yield i(this,ge,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},ke=function(e){return t(this,void 0,void 0,(function*(){return i(this,he,"f")?i(this,re,"f").call(this,i(this,he,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>i(this,ne,"m",_e).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},_e=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,n=function(e){const[t,i,n]=e.split(".");return C(i)}(t);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):i(this,le,"f")&&n.client_id!==i(this,le,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile}))}))},Ie=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class Fe{constructor(e){this.segments=e}get(e){return"number"==typeof e?this.segments[e]:this.segments.find((t=>t.name===e))}getAll(e){return this.segments.filter((t=>t.name===e))}toString(){return this.segments.map((e=>e.toString())).join("\r")}buildAck(){var e,t,i,n,r,o;const s=new Date,a=this.get("MSH"),c=(null===(e=null==a?void 0:a.get(2))||void 0===e?void 0:e.toString())||"",l=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",u=(null===(i=null==a?void 0:a.get(4))||void 0===i?void 0:i.toString())||"",h=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",d=(null===(r=null==a?void 0:a.get(9))||void 0===r?void 0:r.toString())||"",f=(null===(o=null==a?void 0:a.get(12))||void 0===o?void 0:o.toString())||"2.5.1";return new Fe([new $e(["MSH","^~\\&",u,h,c,l,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new $e(["MSA","AA",d,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new Fe(e.split(/[\r\n]+/).map((e=>$e.parse(e))))}}class $e{constructor(e){S(e)?this.fields=e.map((e=>Qe.parse(e))):this.fields=e,this.name=this.fields[0].components[0]}get(e){return this.fields[e]}toString(){return this.fields.map((e=>e.toString())).join("|")}static parse(e){return new $e(e.split("|").map((e=>Qe.parse(e))))}}class Qe{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new Qe(e.split("^"))}}var Xe;function qe(e,t){const i=t.split(" | ");for(const t of i){const i=Ge(t);if(i.startsWith(e+"."))return i}}function Ge(e){let t=e.trim();return t.startsWith("(")&&t.endsWith(")")&&(t=t.substring(1,t.length-1)),t.includes(" as ")&&(t=t.substring(0,t.indexOf(" as "))),t.includes(".where(")&&(t=t.substring(0,t.indexOf(".where("))),t}e.SearchParameterType=void 0,(Xe=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",Xe.NUMBER="NUMBER",Xe.QUANTITY="QUANTITY",Xe.TEXT="TEXT",Xe.REFERENCE="REFERENCE",Xe.DATE="DATE",Xe.DATETIME="DATETIME",Xe.PERIOD="PERIOD",e.COMPONENT_SEPARATOR="^",e.DEFAULT_SEARCH_COUNT=20,e.FIELD_SEPARATOR="|",e.Hl7Field=Qe,e.Hl7Message=Fe,e.Hl7Segment=$e,e.LRUCache=c,e.MedplumClient=class extends class{constructor(){U.set(this,void 0),n(this,U,{},"f")}addEventListener(e,t){i(this,U,"f")[e]||(i(this,U,"f")[e]=[]),i(this,U,"f")[e].push(t)}removeEventListeneer(e,t){const n=i(this,U,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===t)return void n.splice(e,1)}dispatchEvent(e){const t=i(this,U,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t;if(super(),ne.add(this),re.set(this,void 0),oe.set(this,void 0),se.set(this,void 0),ae.set(this,void 0),ce.set(this,void 0),le.set(this,void 0),ue.set(this,void 0),he.set(this,void 0),de.set(this,void 0),fe.set(this,void 0),pe.set(this,void 0),me.set(this,void 0),ge.set(this,void 0),ve.set(this,void 0),ye.set(this,void 0),Te.set(this,void 0),null==e?void 0:e.baseUrl){if(!e.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");if(!e.baseUrl.endsWith("/"))throw new Error("Base URL must end with a trailing slash")}n(this,re,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),n(this,oe,new Me,"f"),n(this,se,{types:{}},"f"),n(this,ae,new c(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),n(this,ce,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),n(this,le,(null==e?void 0:e.clientId)||"","f"),n(this,ue,(null==e?void 0:e.authorizeUrl)||i(this,ce,"f")+"oauth2/authorize","f"),n(this,he,(null==e?void 0:e.tokenUrl)||i(this,ce,"f")+"oauth2/token","f"),n(this,de,(null==e?void 0:e.logoutUrl)||i(this,ce,"f")+"oauth2/logout","f"),n(this,fe,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(n(this,pe,r.accessToken,"f"),n(this,me,r.refreshToken,"f"),i(this,ne,"m",Se).call(this).catch(console.log)),i(this,ne,"m",Ie).call(this)}clear(){i(this,oe,"f").clear(),i(this,ae,"f").clear(),n(this,pe,void 0,"f"),n(this,me,void 0,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,t={}){if(!(null==t?void 0:t.cache)){const t=i(this,ae,"f").get(e);if(t)return t}const n=new Y(i(this,ne,"m",Ee).call(this,"GET",e,t));return i(this,ae,"f").set(e,n),n}post(e,t,n,r={}){return t&&i(this,ne,"m",Oe).call(this,r,t),n&&i(this,ne,"m",Ae).call(this,r,n),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"POST",e,r)}put(e,t,n,r={}){return t&&i(this,ne,"m",Oe).call(this,r,t),n&&i(this,ne,"m",Ae).call(this,r,n),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"PUT",e,r)}patch(e,t,n={}){return i(this,ne,"m",Oe).call(this,n,t),i(this,ne,"m",Ae).call(this,n,"application/json-patch+json"),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"PATCH",e,n)}delete(e,t={}){return i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"DELETE",e,t)}register(e){return t(this,void 0,void 0,(function*(){const t=yield this.post("auth/register",e);yield this.setActiveLogin(t)}))}startLogin(e,n,r){return t(this,void 0,void 0,(function*(){return yield i(this,ne,"m",Ue).call(this),this.post("auth/login",{clientId:i(this,le,"f"),scope:Be,codeChallengeMethod:"S256",codeChallenge:i(this,oe,"f").getString("codeChallenge"),email:e,password:n,remember:!!r})}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield i(this,ne,"m",Ue).call(this),this.post("auth/google",e)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void i(this,ne,"m",Ce).call(this)}signOutWithRedirect(){window.location.assign(i(this,de,"f"))}fhirUrl(...e){const t=[i(this,ce,"f"),"fhir/R4"];return e.forEach((e=>t.push("/",encodeURIComponent(e)))),t.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+Z(e),t)}searchOne(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t="string"==typeof e?J(e):e;t.count=1;const o=yield this.search(t,i);return null===(r=null===(n=o.entry)||void 0===n?void 0:n[0])||void 0===r?void 0:r.resource}))}searchResources(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t=yield this.search(e,i);return null!==(r=null===(n=t.entry)||void 0===n?void 0:n.map((e=>e.resource)))&&void 0!==r?r:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,t){const n=i(this,ae,"f").get(this.fhirUrl(e,t));return n&&!n.isPending()?n.read():void 0}getCachedReference(e){const t=e.reference,[i,n]=t.split("/");return this.getCached(i,n)}readResource(e,t){return this.get(this.fhirUrl(e,t))}readCached(e,t){return this.get(this.fhirUrl(e,t))}readReference(e){const t=null==e?void 0:e.reference;if(!t)return new Y(Promise.reject("Missing reference"));const[i,n]=t.split("/");return this.readResource(i,n)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return new Y(Promise.reject("Missing reference"));const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return i(this,se,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in i(this,se,"f").types)return Promise.resolve(i(this,se,"f"));const t=`{\n StructureDefinitionList(name: "${encodeURIComponent(e)}") {\n name,\n description,\n snapshot {\n element {\n id,\n path,\n min,\n max,\n type {\n code,\n targetProfile\n },\n binding {\n valueSet\n },\n definition\n }\n }\n }\n SearchParameterList(base: "${encodeURIComponent(e)}") {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(t);for(const e of n.data.StructureDefinitionList)je(i(this,se,"f"),e);for(const e of n.data.SearchParameterList)De(i(this,se,"f"),e);return i(this,se,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createBinary(e,t,i){let n=this.fhirUrl("Binary");return t&&(n+="?_filename="+encodeURIComponent(t)),this.post(n,e,i)}createPdf(e,t){let i=this.fhirUrl("Binary")+"/$pdf";return t&&(i+="?_filename="+encodeURIComponent(t)),this.post(i,e,"application/json")}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return i(this,oe,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){n(this,pe,e.accessToken,"f"),n(this,me,e.refreshToken,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f"),i(this,oe,"f").setObject("activeLogin",e),i(this,ne,"m",we).call(this,e),i(this,ae,"f").clear(),n(this,ge,void 0,"f"),yield i(this,ne,"m",Se).call(this)}))}setAccessToken(e){n(this,pe,e,"f"),n(this,me,void 0,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f")}getLogins(){var e;return null!==(e=i(this,oe,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!i(this,ve,"f")}getProfile(){return i(this,ye,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return i(this,ve,"f")&&(yield i(this,ve,"f")),this.getProfile()}))}getUserConfiguration(){return i(this,Te,"f")}download(e,n={}){return t(this,void 0,void 0,(function*(){i(this,ge,"f")&&(yield i(this,ge,"f")),i(this,ne,"m",Re).call(this,n);return(yield i(this,re,"f").call(this,e,n)).blob()}))}processCode(e){if(!i(this,oe,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const t=i(this,oe,"f").getString("codeVerifier");return t?i(this,ne,"m",ke).call(this,"grant_type=authorization_code"+(i(this,le,"f")?"&client_id="+encodeURIComponent(i(this,le,"f")):"")+"&code_verifier="+encodeURIComponent(t)+"&redirect_uri="+encodeURIComponent(He())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(e,n){return t(this,void 0,void 0,(function*(){return i(this,ne,"m",ke).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(e)+"&client_secret="+encodeURIComponent(n))}))}},e.OperationOutcomeError=F,e.ReadablePromise=Y,e.SEGMENT_SEPARATOR="\r",e.accessDenied=B,e.allOk=x,e.arrayBufferToBase64=A,e.arrayBufferToHex=R,e.assertOk=function(e,t){if(!H(e)||void 0===t)throw new F(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=We,e.calculateAge=p,e.calculateAgeString=function(e,t){const{years:i,months:n,days:r}=p(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":r.toString().padStart(3,"0")+"D"},e.capitalize=O,e.createReference=function(e){const t=u(e),i=d(e);return i===t?{reference:t}:{reference:t,display:i}},e.createSchema=xe,e.createTypeSchema=Le,e.created=L,e.deepEquals=T,e.formatAddress=function(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(", ").trim()},e.formatFamilyName=function(e){return e.family||""},e.formatGivenName=function(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()},e.formatHumanName=l,e.formatSearchQuery=Z,e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=d,e.getExpressionForResourceType=qe,e.getExtensionValue=function(e,...t){var i;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(i=null==n?void 0:n.extension)||void 0===i?void 0:i.find((i=>i.url===t[e]));return null==n?void 0:n.valueString},e.getImageSrc=function(e){if(h(e)){const t=e.photo;if(t)for(const e of t){const t=f(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=f(e.photo);if(t)return t}},e.getPropertyDisplayName=function(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(O).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getQuestionnaireAnswers=function(e){const t={};return m(e.item,t),t},e.getReferenceString=u,e.getSearchParameterDetails=function(t,i,n){var r,o,s,a;if("_lastUpdated"===n.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const c=n.code.split("-").reduce(((e,t,i)=>e+(i?O(t):t)),""),l=null===(r=qe(i,n.expression))||void 0===r?void 0:r.split(".");if(!l)return{columnName:c,type:e.SearchParameterType.TEXT};let u,h,d=i,f=!1;for(let i=1;i<l.length;i++){const n=l[i];if(u=null===(s=null===(o=t.types[d])||void 0===o?void 0:o.properties)||void 0===s?void 0:s[n],!u)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};if("*"===u.max&&(f=!0),h=null===(a=u.type)||void 0===a?void 0:a[0].code,!h)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};i<l.length-1&&("Element"===h||"BackboneElement"===h?d+=O(n):d=h)}const p=function(t,i){let n=e.SearchParameterType.TEXT;switch(t.type){case"date":n=e.SearchParameterType.DATE;break;case"number":n=e.SearchParameterType.NUMBER;break;case"quantity":n=e.SearchParameterType.QUANTITY;break;case"reference":n=e.SearchParameterType.REFERENCE;break;case"token":"boolean"===i&&(n=e.SearchParameterType.BOOLEAN)}return n}(n,h);return{columnName:c,type:p,elementDefinition:u,array:f}},e.getStatus=function(e){return e.id===b?200:e.id===k?201:e.id===I?304:e.id===N?403:e.id===M?404:e.id===_?410:400},e.gone=W,e.indexSearchParameter=De,e.indexStructureDefinition=je,e.isGone=function(e){return e.id===_},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===M},e.isObject=w,e.isOk=H,e.isProfileResource=h,e.isStringArray=S,e.isUUID=function(e){return!!e.match(/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i)},e.notFound=D,e.notModified=j,e.parseSearchDefinition=J,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.stringify=g,Object.defineProperty(e,"__esModule",{value:!0})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).medplum=e.medplum||{},e.medplum.core={}))}(this,(function(e){"use strict";function t(e,t,i,n){return new(i||(i=Promise))((function(r,o){function s(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))}function i(e,t,i,n){if("a"===i&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?n:"a"===i?n.call(e):n?n.value:t.get(e)}function n(e,t,i,n,r){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!r)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?r.call(e,i):r?r.value=i:t.set(e,i),i}var r,o,s,a;class c{constructor(e=10){r.add(this),o.set(this,void 0),s.set(this,void 0),n(this,o,e,"f"),n(this,s,new Map,"f")}clear(){i(this,s,"f").clear()}get(e){const t=i(this,s,"f").get(e);return t&&(i(this,s,"f").delete(e),i(this,s,"f").set(e,t)),t}set(e,t){i(this,s,"f").has(e)?i(this,s,"f").delete(e):i(this,s,"f").size>=i(this,o,"f")&&i(this,s,"f").delete(i(this,r,"m",a).call(this)),i(this,s,"f").set(e,t)}delete(e){i(this,s,"f").delete(e)}}function l(e,t){const i=[];return e.prefix&&((null==t?void 0:t.all)||(null==t?void 0:t.prefix))&&i.push(...e.prefix),e.given&&i.push(...e.given),e.family&&i.push(e.family),e.suffix&&((null==t?void 0:t.all)||(null==t?void 0:t.suffix))&&i.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(" ").trim()}function u(e){return e.resourceType+"/"+e.id}function h(e){return"Patient"===e.resourceType||"Practitioner"===e.resourceType||"RelatedPerson"===e.resourceType}function d(e){var t,i;if(h(e)){const t=function(e){const t=e.name;if(t&&t.length>0)return l(t[0]);return}(e);if(t)return t}if("Device"===e.resourceType){const t=function(e){const t=e.deviceName;if(t&&t.length>0)return t[0].name;return}(e);if(t)return t}return"Observation"===e.resourceType&&"code"in e&&(null===(t=e.code)||void 0===t?void 0:t.text)?null===(i=e.code)||void 0===i?void 0:i.text:"User"===e.resourceType&&e.email?e.email:"name"in e&&e.name&&"string"==typeof e.name?e.name:u(e)}function f(e){if(e.url&&e.contentType&&e.contentType.startsWith("image/"))return e.url}function p(e,t){const i=new Date(e);i.setUTCHours(0,0,0,0);const n=t?new Date(t):new Date;n.setUTCHours(0,0,0,0);const r=i.getUTCFullYear(),o=i.getUTCMonth(),s=i.getUTCDate(),a=n.getUTCFullYear(),c=n.getUTCMonth(),l=n.getUTCDate();let u=a-r;(c<o||c===o&&l<s)&&u--;let h=12*a+c-(12*r+o);l<s&&h--;return{years:u,months:h,days:Math.floor((n.getTime()-i.getTime())/864e5)}}function m(e,t){if(e)for(const i of e)i.linkId&&i.answer&&i.answer.length>0&&(t[i.linkId]=i.answer[0]),m(i.item,t)}function g(e,t){return JSON.stringify(e,v,t?2:void 0)}function v(e,t){return!function(e){return!!e.match(/\d+$/)}(e)&&y(t)?void 0:t}function y(e){if(null==e)return!0;const t=typeof e;return"string"===t&&""===e||"object"===t&&0===Object.keys(e).length}function T(e,t,i){return e===t||(!(!y(e)||!y(t))||!y(e)&&!y(t)&&(Array.isArray(e)&&Array.isArray(t)?function(e,t){if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!T(e[i],t[i]))return!1;return!0}(e,t):!Array.isArray(e)&&!Array.isArray(t)&&(w(e)&&w(t)?function(e,t,i){const n=new Set;Object.keys(e).forEach((e=>n.add(e))),Object.keys(t).forEach((e=>n.add(e))),"meta"===i&&(n.delete("versionId"),n.delete("lastUpdated"),n.delete("author"));for(const i of n){if(!T(e[i],t[i],i))return!1}return!0}(e,t,i):(w(e)||w(t),!1))))}function w(e){return null!==e&&"object"==typeof e}function S(e){return e.every((e=>"string"==typeof e))}o=new WeakMap,s=new WeakMap,r=new WeakSet,a=function(){return i(this,s,"f").keys().next().value};const E=[];for(let e=0;e<256;e++)E.push(e.toString(16).padStart(2,"0"));function R(e){const t=new Uint8Array(e),i=new Array(t.length);for(let e=0;e<t.length;e++)i[e]=E[t[e]];return i.join("")}function A(e){const t=new Uint8Array(e),i=[];for(let e=0;e<t.length;e++)i[e]=String.fromCharCode(t[e]);return window.btoa(i.join(""))}function O(e){return e.charAt(0).toUpperCase()+e.substring(1)}function P(){const e=new Uint32Array(28);return crypto.getRandomValues(e),R(e.buffer)}var U;function C(e){const t=function(e){if("undefined"!=typeof window)return window.atob(e);if("undefined"!=typeof Buffer)return Buffer.from(e,"base64").toString("binary");throw new Error("Unable to decode base64")}(e.replace(/-/g,"+").replace(/_/g,"/")),i=Array.from(t).reduce(((e,t)=>`${e}%${("00"+t.charCodeAt(0).toString(16)).slice(-2)}`),""),n=decodeURIComponent(i);return JSON.parse(n)}U=new WeakMap;const b="ok",k="created",_="gone",I="not-modified",M="not-found",N="access-denied",x={resourceType:"OperationOutcome",id:b,issue:[{severity:"information",code:"information",details:{text:"All OK"}}]},L={resourceType:"OperationOutcome",id:k,issue:[{severity:"information",code:"information",details:{text:"Created"}}]},j={resourceType:"OperationOutcome",id:I,issue:[{severity:"information",code:"information",details:{text:"Not Modified"}}]},D={resourceType:"OperationOutcome",id:M,issue:[{severity:"error",code:"not-found",details:{text:"Not found"}}]},W={resourceType:"OperationOutcome",id:_,issue:[{severity:"error",code:"gone",details:{text:"Gone"}}]},B={resourceType:"OperationOutcome",id:N,issue:[{severity:"error",code:"access-denied",details:{text:"Access Denied"}}]};function H(e){return e.id===b||e.id===k||e.id===I}class F extends Error{constructor(e){var t,i;super(null===(i=null===(t=null==e?void 0:e.issue)||void 0===t?void 0:t[0].details)||void 0===i?void 0:i.text),this.outcome=e}}var $,Q,X,q,G;class Y{constructor(e){this[G]="ReadablePromise",$.set(this,void 0),Q.set(this,"pending"),X.set(this,void 0),q.set(this,void 0),n(this,$,e.then((e=>(n(this,Q,"success","f"),n(this,X,e,"f"),e)),(e=>{throw n(this,Q,"error","f"),n(this,q,e,"f"),e})),"f")}isPending(){return"pending"===i(this,Q,"f")}read(){switch(i(this,Q,"f")){case"pending":throw i(this,$,"f");case"error":throw i(this,q,"f");default:return i(this,X,"f")}}then(e,t){return i(this,$,"f").then(e,t)}catch(e){return i(this,$,"f").catch(e)}finally(e){return i(this,$,"f").finally(e)}}$=new WeakMap,Q=new WeakMap,X=new WeakMap,q=new WeakMap,G=Symbol.toStringTag;var z;e.Operator=void 0,(z=e.Operator||(e.Operator={})).EQUALS="eq",z.NOT_EQUALS="ne",z.GREATER_THAN="gt",z.LESS_THAN="lt",z.GREATER_THAN_OR_EQUALS="ge",z.LESS_THAN_OR_EQUALS="le",z.STARTS_AFTER="sa",z.ENDS_BEFORE="eb",z.APPROXIMATELY="ap",z.CONTAINS="contains",z.EXACT="exact",z.TEXT="text",z.ABOVE="above",z.BELOW="below",z.IN="in",z.NOT_IN="not-in",z.OF_TYPE="of-type";const V=[e.Operator.CONTAINS,e.Operator.EXACT,e.Operator.TEXT,e.Operator.ABOVE,e.Operator.BELOW,e.Operator.IN,e.Operator.NOT_IN,e.Operator.OF_TYPE],K=[e.Operator.NOT_EQUALS,e.Operator.GREATER_THAN,e.Operator.LESS_THAN,e.Operator.GREATER_THAN_OR_EQUALS,e.Operator.LESS_THAN_OR_EQUALS,e.Operator.STARTS_AFTER,e.Operator.ENDS_BEFORE,e.Operator.APPROXIMATELY];function J(t){const i=new URL(t,"https://example.com/"),n=i.pathname.replace(/(^\/)|(\/$)/g,"").split("/").pop();let r,o,s,a,c,l;return new URLSearchParams(i.search).forEach(((t,i)=>{"_fields"===i?s=t.split(","):"_offset"===i?a=parseInt(t):"_count"===i?c=parseInt(t):"_total"===i?l=t:"_sort"===i?(o=o||[],o.push(function(e){return e.startsWith("-")?{code:e.substring(1),descending:!0}:{code:e}}(t))):(r=r||[],r.push(function(t,i){let n=t,r=e.Operator.EQUALS;for(const e of V){const t=n.indexOf(":"+e);-1!==t&&(r=e,n=n.substring(0,t))}for(const e of K)i.match(new RegExp("^"+e+"\\d"))&&(r=e,i=i.substring(e.length));return{code:n,operator:r,value:i}}(i,t)))})),{resourceType:n,filters:r,fields:s,offset:a,count:c,total:l,sortRules:o}}function Z(e){const t=[];return e.fields&&t.push("_fields="+e.fields.join(",")),e.filters&&e.filters.forEach((e=>t.push(function(e){const t=V.includes(e.operator)?":"+e.operator:"",i=K.includes(e.operator)?e.operator:"";return`${e.code}${t}=${i}${encodeURIComponent(e.value)}`}(e)))),e.sortRules&&e.sortRules.length>0&&t.push(function(e){if(!e||0===e.length)return"";return"_sort="+e.map((e=>e.descending?"-"+e.code:e.code)).join(",")}(e.sortRules)),void 0!==e.offset&&t.push("_offset="+e.offset),void 0!==e.count&&t.push("_count="+e.count),void 0!==e.total&&t.push("_total="+encodeURIComponent(e.total)),0===t.length?"":(t.sort(),"?"+t.join("&"))}var ee,te,ie,ne,re,oe,se,ae,ce,le,ue,he,de,fe,pe,me,ge,ve,ye,Te,we,Se,Ee,Re,Ae,Oe,Pe,Ue,Ce,be,ke,_e,Ie;class Me{constructor(){ee.set(this,void 0),n(this,ee,"undefined"!=typeof localStorage?localStorage:new Ne,"f")}clear(){i(this,ee,"f").clear()}getString(e){return i(this,ee,"f").getItem(e)||void 0}setString(e,t){t?i(this,ee,"f").setItem(e,t):i(this,ee,"f").removeItem(e)}getObject(e){const t=this.getString(e);return t?JSON.parse(t):void 0}setObject(e,t){this.setString(e,t?g(t):void 0)}}ee=new WeakMap;class Ne{constructor(){te.set(this,void 0),n(this,te,new Map,"f")}get length(){return i(this,te,"f").size}clear(){i(this,te,"f").clear()}getItem(e){var t;return null!==(t=i(this,te,"f").get(e))&&void 0!==t?t:null}setItem(e,t){t?i(this,te,"f").set(e,t):i(this,te,"f").delete(e)}removeItem(e){i(this,te,"f").delete(e)}key(e){return Array.from(i(this,te,"f").keys())[e]}}function xe(){return{types:{}}}function Le(e,t){return{display:e,description:t,properties:{},searchParams:{_lastUpdated:{base:[e],code:"_lastUpdated",type:"date",expression:e+".meta.lastUpdated"}}}}function je(e,t){var i;const n=t.name;if(!n)return;e.types[n]=Le(n,t.description);const r=null===(i=t.snapshot)||void 0===i?void 0:i.element;if(r){const t=r.filter((e=>e.path!==n&&e.path));t.forEach((t=>function(e,t){var i,n;const r=t.path,o=null===(n=null===(i=t.type)||void 0===i?void 0:i[0])||void 0===n?void 0:n.code;if("Element"!==o&&"BackboneElement"!==o)return;const s=r.split("."),a=We(s);a in e.types||(e.types[a]=Le(a,t.definition),e.types[a].parentType=We(s.slice(0,s.length-1)))}(e,t))),t.forEach((t=>function(e,t){const i=t.path.split(".");if(1===i.length)return;const n=We(i.slice(0,i.length-1)),r=e.types[n],o=i[i.length-1];r.properties[o]=t}(e,t)))}}function De(e,t){if(t.base)for(const i of t.base){const n=e.types[i];n&&(n.searchParams||(n.searchParams={}),n.searchParams[t.code]=t)}}function We(e){return e.map(O).join("")}te=new WeakMap,e.PropertyType=void 0,(ie=e.PropertyType||(e.PropertyType={})).Address="Address",ie.Age="Age",ie.Annotation="Annotation",ie.Attachment="Attachment",ie.BackboneElement="BackboneElement",ie.CodeableConcept="CodeableConcept",ie.Coding="Coding",ie.ContactDetail="ContactDetail",ie.ContactPoint="ContactPoint",ie.Contributor="Contributor",ie.Count="Count",ie.DataRequirement="DataRequirement",ie.Distance="Distance",ie.Dosage="Dosage",ie.Duration="Duration",ie.Expression="Expression",ie.Extension="Extension",ie.HumanName="HumanName",ie.Identifier="Identifier",ie.MarketingStatus="MarketingStatus",ie.Meta="Meta",ie.Money="Money",ie.Narrative="Narrative",ie.ParameterDefinition="ParameterDefinition",ie.Period="Period",ie.Population="Population",ie.ProdCharacteristic="ProdCharacteristic",ie.ProductShelfLife="ProductShelfLife",ie.Quantity="Quantity",ie.Range="Range",ie.Ratio="Ratio",ie.Reference="Reference",ie.RelatedArtifact="RelatedArtifact",ie.Resource="Resource",ie.SampledData="SampledData",ie.Signature="Signature",ie.SubstanceAmount="SubstanceAmount",ie.SystemString="http://hl7.org/fhirpath/System.String",ie.Timing="Timing",ie.TriggerDefinition="TriggerDefinition",ie.UsageContext="UsageContext",ie.base64Binary="base64Binary",ie.boolean="boolean",ie.canonical="canonical",ie.code="code",ie.date="date",ie.dateTime="dateTime",ie.decimal="decimal",ie.id="id",ie.instant="instant",ie.integer="integer",ie.markdown="markdown",ie.oid="oid",ie.positiveInt="positiveInt",ie.string="string",ie.time="time",ie.unsignedInt="unsignedInt",ie.uri="uri",ie.url="url",ie.uuid="uuid";const Be="launch/patient openid fhirUser offline_access user/*.*";function He(){return window.location.protocol+"//"+window.location.host+"/"}re=new WeakMap,oe=new WeakMap,se=new WeakMap,ae=new WeakMap,ce=new WeakMap,le=new WeakMap,ue=new WeakMap,he=new WeakMap,de=new WeakMap,fe=new WeakMap,pe=new WeakMap,me=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakMap,Te=new WeakMap,ne=new WeakSet,we=function(e){const t=this.getLogins().filter((t=>{var i,n;return(null===(i=t.profile)||void 0===i?void 0:i.reference)!==(null===(n=e.profile)||void 0===n?void 0:n.reference)}));t.push(e),i(this,oe,"f").setObject("logins",t)},Se=function(){return t(this,void 0,void 0,(function*(){return n(this,ve,new Promise(((e,t)=>{this.get("auth/me").then((t=>{n(this,ve,void 0,"f"),n(this,ye,t.profile,"f"),n(this,Te,t.config,"f"),this.dispatchEvent({type:"change"}),e(i(this,ye,"f"))})).catch(t)})),"f"),i(this,ve,"f")}))},Ee=function(e,n,r={}){return t(this,void 0,void 0,(function*(){i(this,ge,"f")&&(yield i(this,ge,"f")),n.startsWith("http")||(n=i(this,ce,"f")+n),r.method=e,i(this,ne,"m",Re).call(this,r);const t=yield i(this,re,"f").call(this,n,r);if(401===t.status)return i(this,ne,"m",Pe).call(this,e,n,r);if(204===t.status||304===t.status)return;const o=yield t.json();return"OperationOutcome"!==(null==o?void 0:o.resourceType)||H(o)?o:Promise.reject(o)}))},Re=function(e){e.headers||(e.headers={});const t=e.headers;t["Content-Type"]||(t["Content-Type"]="application/fhir+json"),i(this,pe,"f")&&(t.Authorization="Bearer "+i(this,pe,"f")),e.cache||(e.cache="no-cache"),e.credentials||(e.credentials="include")},Ae=function(e,t){e.headers||(e.headers={});e.headers["Content-Type"]=t},Oe=function(e,t){"string"==typeof t||"undefined"!=typeof File&&t instanceof File?e.body=t:t&&(e.body=g(t))},Pe=function(e,n,r){return t(this,void 0,void 0,(function*(){return i(this,ne,"m",be).call(this).then((()=>i(this,ne,"m",Ee).call(this,e,n,r))).catch((e=>(this.clear(),i(this,fe,"f")&&i(this,fe,"f").call(this),Promise.reject(e))))}))},Ue=function(){return t(this,void 0,void 0,(function*(){const e=P();i(this,oe,"f").setString("pkceState",e);const n=P();i(this,oe,"f").setString("codeVerifier",n);const r=A(yield function(e){return t(this,void 0,void 0,(function*(){return crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e))}))}(n)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"");i(this,oe,"f").setString("codeChallenge",r)}))},Ce=function(){return t(this,void 0,void 0,(function*(){if(!i(this,ue,"f"))return Promise.reject("Missing authorize URL");i(this,ne,"m",Ue).call(this),window.location.assign(i(this,ue,"f")+"?response_type=code&state="+encodeURIComponent(i(this,oe,"f").getString("pkceState"))+"&client_id="+encodeURIComponent(i(this,le,"f"))+"&redirect_uri="+encodeURIComponent(He())+"&scope="+encodeURIComponent(Be)+"&code_challenge_method=S256&code_challenge="+encodeURIComponent(i(this,oe,"f").getString("codeChallenge")))}))},be=function(){return t(this,void 0,void 0,(function*(){return i(this,ge,"f")?i(this,ge,"f"):i(this,me,"f")?(n(this,ge,i(this,ne,"m",ke).call(this,"grant_type=refresh_token&client_id="+encodeURIComponent(i(this,le,"f"))+"&refresh_token="+encodeURIComponent(i(this,me,"f"))),"f"),void(yield i(this,ge,"f"))):(this.clear(),Promise.reject("Invalid refresh token"))}))},ke=function(e){return t(this,void 0,void 0,(function*(){return i(this,he,"f")?i(this,re,"f").call(this,i(this,he,"f"),{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}).then((e=>e.ok?e.json():Promise.reject("Failed to fetch tokens"))).then((e=>i(this,ne,"m",_e).call(this,e))).then((()=>this.getProfile())):Promise.reject("Missing token URL")}))},_e=function(e){return t(this,void 0,void 0,(function*(){const t=e.access_token,n=function(e){const[t,i,n]=e.split(".");return C(i)}(t);return Date.now()>=1e3*n.exp?(this.clear(),Promise.reject("Token expired")):i(this,le,"f")&&n.client_id!==i(this,le,"f")?(this.clear(),Promise.reject("Token was not issued for this audience")):void(yield this.setActiveLogin({accessToken:t,refreshToken:e.refresh_token,project:e.project,profile:e.profile}))}))},Ie=function(){try{window.addEventListener("storage",(e=>{null!==e.key&&"activeLogin"!==e.key||window.location.reload()}))}catch(e){}};class Fe{constructor(e){this.segments=e}get(e){return"number"==typeof e?this.segments[e]:this.segments.find((t=>t.name===e))}getAll(e){return this.segments.filter((t=>t.name===e))}toString(){return this.segments.map((e=>e.toString())).join("\r")}buildAck(){var e,t,i,n,r,o;const s=new Date,a=this.get("MSH"),c=(null===(e=null==a?void 0:a.get(2))||void 0===e?void 0:e.toString())||"",l=(null===(t=null==a?void 0:a.get(3))||void 0===t?void 0:t.toString())||"",u=(null===(i=null==a?void 0:a.get(4))||void 0===i?void 0:i.toString())||"",h=(null===(n=null==a?void 0:a.get(5))||void 0===n?void 0:n.toString())||"",d=(null===(r=null==a?void 0:a.get(9))||void 0===r?void 0:r.toString())||"",f=(null===(o=null==a?void 0:a.get(12))||void 0===o?void 0:o.toString())||"2.5.1";return new Fe([new $e(["MSH","^~\\&",u,h,c,l,s.toISOString(),"","ACK",s.getTime().toString(),"P",f]),new $e(["MSA","AA",d,"OK"])])}static parse(e){if(!e.startsWith("MSH|^~\\&")){const e=new Error("Invalid HL7 message");throw e.type="entity.parse.failed",e}return new Fe(e.split(/[\r\n]+/).map((e=>$e.parse(e))))}}class $e{constructor(e){S(e)?this.fields=e.map((e=>Qe.parse(e))):this.fields=e,this.name=this.fields[0].components[0]}get(e){return this.fields[e]}toString(){return this.fields.map((e=>e.toString())).join("|")}static parse(e){return new $e(e.split("|").map((e=>Qe.parse(e))))}}class Qe{constructor(e){this.components=e}get(e){return this.components[e]}toString(){return this.components.join("^")}static parse(e){return new Qe(e.split("^"))}}var Xe;function qe(e,t){const i=t.split(" | ");for(const t of i){const i=Ge(t);if(i.startsWith(e+"."))return i}}function Ge(e){let t=e.trim();return t.startsWith("(")&&t.endsWith(")")&&(t=t.substring(1,t.length-1)),t.includes(" as ")&&(t=t.substring(0,t.indexOf(" as "))),t.includes(".where(")&&(t=t.substring(0,t.indexOf(".where("))),t}e.SearchParameterType=void 0,(Xe=e.SearchParameterType||(e.SearchParameterType={})).BOOLEAN="BOOLEAN",Xe.NUMBER="NUMBER",Xe.QUANTITY="QUANTITY",Xe.TEXT="TEXT",Xe.REFERENCE="REFERENCE",Xe.DATE="DATE",Xe.DATETIME="DATETIME",Xe.PERIOD="PERIOD",e.COMPONENT_SEPARATOR="^",e.DEFAULT_SEARCH_COUNT=20,e.FIELD_SEPARATOR="|",e.Hl7Field=Qe,e.Hl7Message=Fe,e.Hl7Segment=$e,e.LRUCache=c,e.MedplumClient=class extends class{constructor(){U.set(this,void 0),n(this,U,{},"f")}addEventListener(e,t){i(this,U,"f")[e]||(i(this,U,"f")[e]=[]),i(this,U,"f")[e].push(t)}removeEventListeneer(e,t){const n=i(this,U,"f")[e];if(n)for(let e=0;e<n.length;e++)if(n[e]===t)return void n.splice(e,1)}dispatchEvent(e){const t=i(this,U,"f")[e.type];return t&&t.forEach((t=>t.call(this,e))),!e.defaultPrevented}}{constructor(e){var t;if(super(),ne.add(this),re.set(this,void 0),oe.set(this,void 0),se.set(this,void 0),ae.set(this,void 0),ce.set(this,void 0),le.set(this,void 0),ue.set(this,void 0),he.set(this,void 0),de.set(this,void 0),fe.set(this,void 0),pe.set(this,void 0),me.set(this,void 0),ge.set(this,void 0),ve.set(this,void 0),ye.set(this,void 0),Te.set(this,void 0),null==e?void 0:e.baseUrl){if(!e.baseUrl.startsWith("http"))throw new Error("Base URL must start with http or https");if(!e.baseUrl.endsWith("/"))throw new Error("Base URL must end with a trailing slash")}n(this,re,(null==e?void 0:e.fetch)||window.fetch.bind(window),"f"),n(this,oe,new Me,"f"),n(this,se,{types:{}},"f"),n(this,ae,new c(null!==(t=null==e?void 0:e.resourceCacheSize)&&void 0!==t?t:1e3),"f"),n(this,ce,(null==e?void 0:e.baseUrl)||"https://api.medplum.com/","f"),n(this,le,(null==e?void 0:e.clientId)||"","f"),n(this,ue,(null==e?void 0:e.authorizeUrl)||i(this,ce,"f")+"oauth2/authorize","f"),n(this,he,(null==e?void 0:e.tokenUrl)||i(this,ce,"f")+"oauth2/token","f"),n(this,de,(null==e?void 0:e.logoutUrl)||i(this,ce,"f")+"oauth2/logout","f"),n(this,fe,null==e?void 0:e.onUnauthenticated,"f");const r=this.getActiveLogin();r&&(n(this,pe,r.accessToken,"f"),n(this,me,r.refreshToken,"f"),i(this,ne,"m",Se).call(this).catch(console.log)),i(this,ne,"m",Ie).call(this)}clear(){i(this,oe,"f").clear(),i(this,ae,"f").clear(),n(this,pe,void 0,"f"),n(this,me,void 0,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f"),this.dispatchEvent({type:"change"})}get(e,t={}){if(!(null==t?void 0:t.cache)){const t=i(this,ae,"f").get(e);if(t)return t}const n=new Y(i(this,ne,"m",Ee).call(this,"GET",e,t));return i(this,ae,"f").set(e,n),n}post(e,t,n,r={}){return t&&i(this,ne,"m",Oe).call(this,r,t),n&&i(this,ne,"m",Ae).call(this,r,n),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"POST",e,r)}put(e,t,n,r={}){return t&&i(this,ne,"m",Oe).call(this,r,t),n&&i(this,ne,"m",Ae).call(this,r,n),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"PUT",e,r)}patch(e,t,n={}){return i(this,ne,"m",Oe).call(this,n,t),i(this,ne,"m",Ae).call(this,n,"application/json-patch+json"),i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"PATCH",e,n)}delete(e,t={}){return i(this,ae,"f").delete(e),i(this,ne,"m",Ee).call(this,"DELETE",e,t)}register(e){return t(this,void 0,void 0,(function*(){const t=yield this.post("auth/register",e);yield this.setActiveLogin(t)}))}startLogin(e,n,r){return t(this,void 0,void 0,(function*(){return yield i(this,ne,"m",Ue).call(this),this.post("auth/login",{clientId:i(this,le,"f"),scope:Be,codeChallengeMethod:"S256",codeChallenge:i(this,oe,"f").getString("codeChallenge"),email:e,password:n,remember:!!r})}))}startGoogleLogin(e){return t(this,void 0,void 0,(function*(){return yield i(this,ne,"m",Ue).call(this),this.post("auth/google",e)}))}signOut(){return this.clear(),Promise.resolve()}signInWithRedirect(){const e=new URLSearchParams(window.location.search).get("code");return e?this.processCode(e):void i(this,ne,"m",Ce).call(this)}signOutWithRedirect(){window.location.assign(i(this,de,"f"))}fhirUrl(...e){const t=[i(this,ce,"f"),"fhir/R4"];return e.forEach((e=>t.push("/",encodeURIComponent(e)))),t.join("")}search(e,t={}){return this.get("string"==typeof e?"fhir/R4/"+e:this.fhirUrl(e.resourceType)+Z(e),t)}searchOne(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t="string"==typeof e?J(e):e;t.count=1;const o=yield this.search(t,i);return null===(r=null===(n=o.entry)||void 0===n?void 0:n[0])||void 0===r?void 0:r.resource}))}searchResources(e,i={}){var n,r;return t(this,void 0,void 0,(function*(){const t=yield this.search(e,i);return null!==(r=null===(n=t.entry)||void 0===n?void 0:n.map((e=>e.resource)))&&void 0!==r?r:[]}))}searchValueSet(e,t,i={}){return this.get(this.fhirUrl("ValueSet","$expand")+`?url=${encodeURIComponent(e)}`+`&filter=${encodeURIComponent(t)}`,i)}getCached(e,t){const n=i(this,ae,"f").get(this.fhirUrl(e,t));return n&&!n.isPending()?n.read():void 0}getCachedReference(e){const t=e.reference,[i,n]=t.split("/");return this.getCached(i,n)}readResource(e,t){return this.get(this.fhirUrl(e,t))}readCached(e,t){return this.get(this.fhirUrl(e,t))}readReference(e){const t=null==e?void 0:e.reference;if(!t)return new Y(Promise.reject("Missing reference"));const[i,n]=t.split("/");return this.readResource(i,n)}readCachedReference(e){const t=null==e?void 0:e.reference;if(!t)return new Y(Promise.reject("Missing reference"));const[i,n]=t.split("/");return this.readCached(i,n)}getSchema(){return i(this,se,"f")}requestSchema(e){return t(this,void 0,void 0,(function*(){if(e in i(this,se,"f").types)return Promise.resolve(i(this,se,"f"));const t=`{\n StructureDefinitionList(name: "${encodeURIComponent(e)}") {\n name,\n description,\n snapshot {\n element {\n id,\n path,\n min,\n max,\n type {\n code,\n targetProfile\n },\n binding {\n valueSet\n },\n definition\n }\n }\n }\n SearchParameterList(base: "${encodeURIComponent(e)}", _count: 100) {\n base,\n code,\n type,\n expression,\n target\n }\n }`.replace(/\s+/g," "),n=yield this.graphql(t);for(const e of n.data.StructureDefinitionList)je(i(this,se,"f"),e);for(const e of n.data.SearchParameterList)De(i(this,se,"f"),e);return i(this,se,"f")}))}readHistory(e,t){return this.get(this.fhirUrl(e,t,"_history"))}readVersion(e,t,i){return this.get(this.fhirUrl(e,t,"_history",i))}readPatientEverything(e){return this.get(this.fhirUrl("Patient",e,"$everything"))}createResource(e){return e.resourceType?this.post(this.fhirUrl(e.resourceType),e):Promise.reject("Missing resourceType")}createResourceIfNoneExist(e,i){var n;return t(this,void 0,void 0,(function*(){return null!==(n=yield this.searchOne(`${e.resourceType}?${i}`))&&void 0!==n?n:this.createResource(e)}))}createBinary(e,t,i){let n=this.fhirUrl("Binary");return t&&(n+="?_filename="+encodeURIComponent(t)),this.post(n,e,i)}createPdf(e,t){let i=this.fhirUrl("Binary")+"/$pdf";return t&&(i+="?_filename="+encodeURIComponent(t)),this.post(i,e,"application/json")}updateResource(e){return e.resourceType?e.id?this.put(this.fhirUrl(e.resourceType,e.id),e):Promise.reject("Missing id"):Promise.reject("Missing resourceType")}patchResource(e,t,i){return this.patch(this.fhirUrl(e,t),i)}deleteResource(e,t){return this.delete(this.fhirUrl(e,t))}graphql(e,t){return this.post(this.fhirUrl("$graphql"),{query:e},"application/json",t)}getActiveLogin(){return i(this,oe,"f").getObject("activeLogin")}setActiveLogin(e){return t(this,void 0,void 0,(function*(){n(this,pe,e.accessToken,"f"),n(this,me,e.refreshToken,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f"),i(this,oe,"f").setObject("activeLogin",e),i(this,ne,"m",we).call(this,e),i(this,ae,"f").clear(),n(this,ge,void 0,"f"),yield i(this,ne,"m",Se).call(this)}))}setAccessToken(e){n(this,pe,e,"f"),n(this,me,void 0,"f"),n(this,ye,void 0,"f"),n(this,Te,void 0,"f")}getLogins(){var e;return null!==(e=i(this,oe,"f").getObject("logins"))&&void 0!==e?e:[]}isLoading(){return!!i(this,ve,"f")}getProfile(){return i(this,ye,"f")}getProfileAsync(){return t(this,void 0,void 0,(function*(){return i(this,ve,"f")&&(yield i(this,ve,"f")),this.getProfile()}))}getUserConfiguration(){return i(this,Te,"f")}download(e,n={}){return t(this,void 0,void 0,(function*(){i(this,ge,"f")&&(yield i(this,ge,"f")),i(this,ne,"m",Re).call(this,n);return(yield i(this,re,"f").call(this,e,n)).blob()}))}processCode(e){if(!i(this,oe,"f").getString("pkceState"))return this.clear(),Promise.reject("Invalid PCKE state");const t=i(this,oe,"f").getString("codeVerifier");return t?i(this,ne,"m",ke).call(this,"grant_type=authorization_code"+(i(this,le,"f")?"&client_id="+encodeURIComponent(i(this,le,"f")):"")+"&code_verifier="+encodeURIComponent(t)+"&redirect_uri="+encodeURIComponent(He())+"&code="+encodeURIComponent(e)):(this.clear(),Promise.reject("Invalid PCKE code verifier"))}clientCredentials(e,n){return t(this,void 0,void 0,(function*(){return i(this,ne,"m",ke).call(this,"grant_type=client_credentials&client_id="+encodeURIComponent(e)+"&client_secret="+encodeURIComponent(n))}))}},e.OperationOutcomeError=F,e.ReadablePromise=Y,e.SEGMENT_SEPARATOR="\r",e.accessDenied=B,e.allOk=x,e.arrayBufferToBase64=A,e.arrayBufferToHex=R,e.assertOk=function(e,t){if(!H(e)||void 0===t)throw new F(e)},e.badRequest=function(e,t){return{resourceType:"OperationOutcome",issue:[{severity:"error",code:"invalid",details:{text:e},expression:t?[t]:void 0}]}},e.buildTypeName=We,e.calculateAge=p,e.calculateAgeString=function(e,t){const{years:i,months:n,days:r}=p(e,t);return i>=2?i.toString().padStart(3,"0")+"Y":n>=1?n.toString().padStart(3,"0")+"M":r.toString().padStart(3,"0")+"D"},e.capitalize=O,e.createReference=function(e){const t=u(e),i=d(e);return i===t?{reference:t}:{reference:t,display:i}},e.createSchema=xe,e.createTypeSchema=Le,e.created=L,e.deepEquals=T,e.formatAddress=function(e,t){const i=[];return e.line&&i.push(...e.line),e.city&&i.push(e.city),e.state&&i.push(e.state),e.postalCode&&i.push(e.postalCode),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&i.push("["+e.use+"]"),i.join(", ").trim()},e.formatFamilyName=function(e){return e.family||""},e.formatGivenName=function(e){const t=[];return e.given&&t.push(...e.given),t.join(" ").trim()},e.formatHumanName=l,e.formatSearchQuery=Z,e.getDateProperty=function(e){return e?new Date(e):void 0},e.getDisplayString=d,e.getExpressionForResourceType=qe,e.getExtensionValue=function(e,...t){var i;let n=e;for(let e=0;e<t.length&&n;e++)n=null===(i=null==n?void 0:n.extension)||void 0===i?void 0:i.find((i=>i.url===t[e]));return null==n?void 0:n.valueString},e.getImageSrc=function(e){if(h(e)){const t=e.photo;if(t)for(const e of t){const t=f(e);if(t)return t}}if("Bot"===e.resourceType&&e.photo){const t=f(e.photo);if(t)return t}},e.getPropertyDisplayName=function(e){const t=e.path.replaceAll("[x]","").split(".").pop();return"id"===t?"ID":t.split(/(?=[A-Z])/).map(O).join(" ").replace("_"," ").replace(/\s+/g," ")},e.getQuestionnaireAnswers=function(e){const t={};return m(e.item,t),t},e.getReferenceString=u,e.getSearchParameterDetails=function(t,i,n){var r,o,s,a;if("_lastUpdated"===n.code)return{columnName:"lastUpdated",type:e.SearchParameterType.DATETIME};const c=n.code.split("-").reduce(((e,t,i)=>e+(i?O(t):t)),""),l=null===(r=qe(i,n.expression))||void 0===r?void 0:r.split(".");if(!l)return{columnName:c,type:e.SearchParameterType.TEXT};let u,h,d=i,f=!1;for(let i=1;i<l.length;i++){const n=l[i];if(u=null===(s=null===(o=t.types[d])||void 0===o?void 0:o.properties)||void 0===s?void 0:s[n],!u)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};if("*"===u.max&&(f=!0),h=null===(a=u.type)||void 0===a?void 0:a[0].code,!h)return{columnName:c,type:e.SearchParameterType.TEXT,array:f};i<l.length-1&&("Element"===h||"BackboneElement"===h?d+=O(n):d=h)}const p=function(t,i){let n=e.SearchParameterType.TEXT;switch(t.type){case"date":n=e.SearchParameterType.DATE;break;case"number":n=e.SearchParameterType.NUMBER;break;case"quantity":n=e.SearchParameterType.QUANTITY;break;case"reference":n=e.SearchParameterType.REFERENCE;break;case"token":"boolean"===i&&(n=e.SearchParameterType.BOOLEAN)}return n}(n,h);return{columnName:c,type:p,elementDefinition:u,array:f}},e.getStatus=function(e){return e.id===b?200:e.id===k?201:e.id===I?304:e.id===N?403:e.id===M?404:e.id===_?410:400},e.gone=W,e.indexSearchParameter=De,e.indexStructureDefinition=je,e.isGone=function(e){return e.id===_},e.isLowerCase=function(e){return e===e.toLowerCase()},e.isNotFound=function(e){return e.id===M},e.isObject=w,e.isOk=H,e.isProfileResource=h,e.isStringArray=S,e.isUUID=function(e){return!!e.match(/^\w{8}-\w{4}-\w{4}-\w{4}-\w{12}$/i)},e.notFound=D,e.notModified=j,e.parseSearchDefinition=J,e.resolveId=function(e){var t;return null===(t=null==e?void 0:e.reference)||void 0===t?void 0:t.split("/")[1]},e.stringify=g,Object.defineProperty(e,"__esModule",{value:!0})}));
2
2
  //# sourceMappingURL=index.min.js.map