@oystehr/sdk 4.1.2 → 4.1.3

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.
Files changed (72) hide show
  1. package/dist/cjs/index.min.cjs +1 -1
  2. package/dist/cjs/index.min.cjs.map +1 -1
  3. package/dist/cjs/resources/classes/fax.cjs.map +1 -1
  4. package/dist/cjs/resources/classes/fax.d.ts +2 -2
  5. package/dist/cjs/resources/classes/fhir-ext.cjs +15 -2
  6. package/dist/cjs/resources/classes/fhir-ext.cjs.map +1 -1
  7. package/dist/cjs/resources/classes/lab.cjs +1 -1
  8. package/dist/cjs/resources/classes/lab.cjs.map +1 -1
  9. package/dist/cjs/resources/classes/lab.d.ts +4 -4
  10. package/dist/cjs/resources/classes/m2m.cjs +9 -0
  11. package/dist/cjs/resources/classes/m2m.cjs.map +1 -1
  12. package/dist/cjs/resources/classes/m2m.d.ts +8 -1
  13. package/dist/cjs/resources/types/ErxCheckPractitionerEnrollmentResponse.d.ts +4 -0
  14. package/dist/cjs/resources/types/ErxEnrollPractitionerParams.d.ts +1 -0
  15. package/dist/cjs/resources/types/FaxOnboardResponse.d.ts +9 -0
  16. package/dist/cjs/resources/types/LabOrderSubmitResponse.d.ts +14 -0
  17. package/dist/cjs/resources/types/LabRouteCreateResponse.d.ts +9 -0
  18. package/dist/cjs/resources/types/LabRouteDeleteParams.d.ts +8 -0
  19. package/dist/cjs/resources/types/M2mMeResponse.d.ts +5 -0
  20. package/dist/cjs/resources/types/M2mUpdateParams.d.ts +4 -0
  21. package/dist/cjs/resources/types/UserUpdateParams.d.ts +5 -1
  22. package/dist/cjs/resources/types/ZambdaCreateParams.d.ts +6 -2
  23. package/dist/cjs/resources/types/ZambdaFunction.d.ts +5 -1
  24. package/dist/cjs/resources/types/ZambdaUpdateParams.d.ts +5 -1
  25. package/dist/cjs/resources/types/fhir.d.ts +3 -0
  26. package/dist/cjs/resources/types/index.d.ts +4 -0
  27. package/dist/esm/index.min.js +1 -1
  28. package/dist/esm/index.min.js.map +1 -1
  29. package/dist/esm/resources/classes/fax.d.ts +2 -2
  30. package/dist/esm/resources/classes/fax.js.map +1 -1
  31. package/dist/esm/resources/classes/fhir-ext.js +15 -2
  32. package/dist/esm/resources/classes/fhir-ext.js.map +1 -1
  33. package/dist/esm/resources/classes/lab.d.ts +4 -4
  34. package/dist/esm/resources/classes/lab.js +1 -1
  35. package/dist/esm/resources/classes/lab.js.map +1 -1
  36. package/dist/esm/resources/classes/m2m.d.ts +8 -1
  37. package/dist/esm/resources/classes/m2m.js +9 -0
  38. package/dist/esm/resources/classes/m2m.js.map +1 -1
  39. package/dist/esm/resources/types/ErxCheckPractitionerEnrollmentResponse.d.ts +4 -0
  40. package/dist/esm/resources/types/ErxEnrollPractitionerParams.d.ts +1 -0
  41. package/dist/esm/resources/types/FaxOnboardResponse.d.ts +9 -0
  42. package/dist/esm/resources/types/LabOrderSubmitResponse.d.ts +14 -0
  43. package/dist/esm/resources/types/LabRouteCreateResponse.d.ts +9 -0
  44. package/dist/esm/resources/types/LabRouteDeleteParams.d.ts +8 -0
  45. package/dist/esm/resources/types/M2mMeResponse.d.ts +5 -0
  46. package/dist/esm/resources/types/M2mUpdateParams.d.ts +4 -0
  47. package/dist/esm/resources/types/UserUpdateParams.d.ts +5 -1
  48. package/dist/esm/resources/types/ZambdaCreateParams.d.ts +6 -2
  49. package/dist/esm/resources/types/ZambdaFunction.d.ts +5 -1
  50. package/dist/esm/resources/types/ZambdaUpdateParams.d.ts +5 -1
  51. package/dist/esm/resources/types/fhir.d.ts +3 -0
  52. package/dist/esm/resources/types/index.d.ts +4 -0
  53. package/package.json +2 -2
  54. package/src/resources/classes/fax.ts +2 -2
  55. package/src/resources/classes/fhir-ext.ts +17 -2
  56. package/src/resources/classes/lab.ts +5 -3
  57. package/src/resources/classes/m2m.ts +10 -0
  58. package/src/resources/types/ErxCheckPractitionerEnrollmentResponse.ts +4 -0
  59. package/src/resources/types/ErxEnrollPractitionerParams.ts +1 -0
  60. package/src/resources/types/FaxOnboardResponse.ts +11 -0
  61. package/src/resources/types/LabOrderSubmitResponse.ts +16 -0
  62. package/src/resources/types/LabRouteCreateResponse.ts +11 -0
  63. package/src/resources/types/LabRouteDeleteParams.ts +8 -0
  64. package/src/resources/types/M2mMeResponse.ts +7 -0
  65. package/src/resources/types/M2mUpdateParams.ts +4 -0
  66. package/src/resources/types/UserUpdateParams.ts +5 -1
  67. package/src/resources/types/ZambdaCreateParams.ts +6 -2
  68. package/src/resources/types/ZambdaFunction.ts +5 -1
  69. package/src/resources/types/ZambdaUpdateParams.ts +5 -1
  70. package/src/resources/types/fhir.ts +3 -0
  71. package/src/resources/types/index.ts +4 -0
  72. package/dist/esm/node_modules/tslib/package.json +0 -1
@@ -1,2 +1,2 @@
1
- import{v4 as e}from"uuid";class t extends Error{code;constructor({message:e,code:s,cause:r}){super(e,{cause:r}),Object.setPrototypeOf(this,t.prototype),this.code=s,this.name="OystehrSdkError"}toString(){return`${this.name}: ${this.message} (code: ${this.code})`}toJSON(){return{name:this.name,message:this.message,code:this.code,cause:this.cause}}}function s(e){const t=[];for(const s of e.issue??[])s.details&&s.details.text&&t.push(s.details.text);return t.length||t.push("Unknown FHIR error"),t.join(",")}class r extends t{cause;constructor({error:e,code:t}){super({message:s(e),code:t}),Object.setPrototypeOf(this,r.prototype),this.cause=e,this.name="OystehrFHIRError"}toJSON(){return{name:this.name,message:this.message,code:this.code,cause:this.cause}}}const i=[408,429,500,502,503,504],n=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET"];class h{config;constructor(e){this.config=e}request(e,s,r){return async(i,n)=>{const h=()=>this.config;try{return await o(r,h,e,s)(i,n)}catch(e){const s=e;throw new t({message:s.message,code:s.code,cause:s.cause})}}}fhirRequest(e,s){return async(i,n)=>{try{const t=()=>this.config.services?.fhirApiUrl??"https://fhir-api.zapehr.com",r=()=>this.config;return await o(t,r,e,s)(i,n)}catch(e){const s=e;if("string"==typeof s.message)throw new t({message:s.message,code:s.code,cause:s.cause});throw new r({error:s.message,code:s.code})}}}}function a(e){return"accessToken"in e}function o(s,r,h,o){return async(c,p)=>{const l=c&&!p&&!Array.isArray(c)&&a(c)?{}:c??{},d=c&&!p&&!Array.isArray(c)&&a(c)?c:p,b=o.toLowerCase(),m=r(),g=m.fetch??fetch,U=d?.accessToken??m.accessToken,f=d?.projectId??r().projectId;let T=h,k=l;if(!Array.isArray(l)){const[e,s]=function(e,s){const r={...s},i=e.replace(/\{([^}]+)\}/g,((e,i)=>{if(delete r[i],i.match(/^.*\+$/))return s[i]+"";if(!s[i]||""===s[i])throw new t({message:`Required path parameter is an empty string: ${i}`,code:400});return s[i]?encodeURIComponent(s[i]+""):""})),n=Object.keys(r),h=n.length?n.reduce(((e,t)=>({...e,[t]:r[t]})),{}):{};return[i,h]}(h,l);T=e,k=s}T=T.replace(/^\//,"");const q=s(),y=q.endsWith("/")?q:q+"/",v=new URL(T,y);let j;if(Array.isArray(k))j=JSON.stringify(k);else if(Object.keys(k).length)if("get"===b)u(k,v.searchParams);else if("application/x-www-form-urlencoded"===d?.contentType){const e=new URLSearchParams;u(k,e),j=e.toString()}else j=JSON.stringify(k);else"application/x-www-form-urlencoded"!==d?.contentType&&"post"===b&&(j="{}");const w=Object.assign(f?{"x-zapehr-project-id":f,"x-oystehr-project-id":f}:{},{"content-type":d?.contentType??"application/json"},U?{Authorization:`Bearer ${U}`}:{},d?.ifMatch?{"If-Match":d.ifMatch}:{},{"x-oystehr-request-id":d?.requestId??e()}),x={retries:m.retry?.retries??3,jitter:m.retry?.jitter??20,delay:m.retry?.delay??100,onRetry:m.retry?.onRetry,retryOn:[...m.retry?.retryOn??[],...i]};return x.retryOn.push(...i),async function(e,t){let s;for(const r of Array.from({length:(t.retries??0)+1},((e,t)=>t)))try{return await e(r)}catch(e){let i=!1;if("response"in e){const r=e;i=t.retryOn.includes(r.code),s={message:e.message,code:e.code}}else if(s=e,"code"in e&&"string"==typeof e.code){const t=e;i=n.includes(t.code)}if(!i)break;const h=Math.floor(Math.random()*(t.jitter+1));await new Promise((e=>setTimeout(e,t.delay+h))),t.onRetry&&r!==(t.retries??0)&&t.onRetry(r+1)}throw s}((async()=>{const e=await g(new Request(v,{method:b.toUpperCase(),body:j,headers:w})),t=e.body?await e.text():null;let s;try{s=t&&(e.headers.get("content-type")?.includes("application/json")||e.headers.get("content-type")?.includes("application/fhir+json"))?JSON.parse(t):null}catch(e){s=null}if(!e.ok||e.status>=400){throw{message:s?.output?.message??s?.message??s??t??e.statusText,code:s?.output?.code??s?.code??e.status,response:e}}return s}),x)}}function u(e,t){for(const[s,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>t.append(s,e))):t.append(s,r)}class c extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/application","get",this.#e.bind(this))(e)}create(e,t){return this.request("/application","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/application/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/application/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/application/{id}","delete",this.#e.bind(this))(e,t)}rotateSecret(e,t){return this.request("/application/{id}/rotate-secret","post",this.#e.bind(this))(e,t)}revokeRefreshToken(e,t){return this.request("/application/{id}/revoke-refresh-token","post",this.#e.bind(this))(e,t)}revokeAccessToken(e,t){return this.request("/application/{id}/revoke-access-token","post",this.#e.bind(this))(e,t)}}class p extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}issue(e,t){return this.request("/payment/charge/issue","post",this.#e.bind(this))(e,t)}status(e,t){return this.request("/payment/charge/status","post",this.#e.bind(this))(e,t)}}const l="https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release",d="addressString";function b(e){if(function(e){return Object.hasOwn(e,"virtualService")}(e)){const t=e.virtualService?.find((e=>"https://fhir.zapehr.com/virtual-service-type"===e.channelType?.system));return t?.addressString}if(!e.extension)return;const t=e.extension.find((e=>e.url===l));if(!t?.extension)return;const s=t.extension?.find((e=>e.url===d))?.valueString;return s}class m extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}ENCOUNTER_VS_EXTENSION_URL=l;ENCOUNTER_VS_EXTENSION_RELATIVE_URL=d;getConversationIdFromEncounter=b;create(e,t){return this.request("/messaging/conversation","post",this.#e.bind(this))(e,t)}getToken(e){return this.request("/messaging/conversation/token","get",this.#e.bind(this))(e)}addParticipant(e,t){return this.request("/messaging/conversation/{conversationId}/participant","post",this.#e.bind(this))(e,t)}removeParticipant(e,t){return this.request("/messaging/conversation/{conversationId}/participant","delete",this.#e.bind(this))(e,t)}message(e,t){return this.request("/messaging/conversation/{conversationId}/message","post",this.#e.bind(this))(e,t)}}class g extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e,t){return this.request("/developer/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/developer/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/developer/{id}","delete",this.#e.bind(this))(e,t)}invite(e,t){return this.request("/developer/invite","post",this.#e.bind(this))(e,t)}list(e){return this.request("/developer","get",this.#e.bind(this))(e)}listV2(e,t){return this.request("/developer/v2/list","get",this.#e.bind(this))(e,t)}}class U extends h{constructor(e){super(e)}#e(){return this.config.services?.erxApiUrl??"https://erx-api.zapehr.com/v3"}searchAllergens(e,t){return this.request("/allergen","get",this.#e.bind(this))(e,t)}searchMedications(e,t){return this.request("/medication","get",this.#e.bind(this))(e,t)}getConfiguration(e){return this.request("/config","get",this.#e.bind(this))(e)}checkAllergyInteractions(e,t){return this.request("/patient/{patientId}/interactions/allergy","get",this.#e.bind(this))(e,t)}checkMedicationInteractions(e,t){return this.request("/patient/{patientId}/interactions/medication","get",this.#e.bind(this))(e,t)}checkPrecheckInteractions(e,t){return this.request("/patient/{patientId}/interactions/precheck/{drugId}","get",this.#e.bind(this))(e,t)}cancelPrescription(e,t){return this.request("/patient/{patientId}/prescriptions/{medicationRequestId}","delete",this.#e.bind(this))(e,t)}syncPatient(e,t){return this.request("/patient/{patientId}/sync","post",this.#e.bind(this))(e,t)}connectPractitioner(e,t){return this.request("/practitioner/connect","get",this.#e.bind(this))(e,t)}checkPractitionerEnrollment(e,t){return this.request("/practitioner/{practitionerId}","get",this.#e.bind(this))(e,t)}enrollPractitioner(e,t){return this.request("/practitioner/{practitionerId}","post",this.#e.bind(this))(e,t)}unenrollPractitioner(e,t){return this.request("/practitioner/{practitionerId}","delete",this.#e.bind(this))(e,t)}}class f extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}syncPatient(e,t){return this.request("/erx/sync-patient/{patientId}","post",this.#e.bind(this))(e,t)}allergySearch(e,t){return this.request("/erx/allergy/search","get",this.#e.bind(this))(e,t)}cancelOrder(e,t){return this.request("/erx/cancel-order","post",this.#e.bind(this))(e,t)}cancelPrescription(e,t){return this.request("/erx/cancel-prescription","post",this.#e.bind(this))(e,t)}medicationSearch(e,t){return this.request("/erx/medication/search","get",this.#e.bind(this))(e,t)}}class T extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}medicationSearch(e,t){return this.request("/erx/v2/medication/search","get",this.#e.bind(this))(e,t)}}class k extends h{constructor(e){super(e)}#e(){return this.config.services?.faxApiUrl??"https://fax-api.zapehr.com/v1"}offboard(e){return this.request("/offboard","post",this.#e.bind(this))(e)}onboard(e){return this.request("/onboard","post",this.#e.bind(this))(e)}send(e,t){return this.request("/send","post",this.#e.bind(this))(e,t)}}async function q(e,t){const{resourceType:s,params:r}=e;let i;r&&(i=Object.entries(r).reduce(((e,[t,s])=>(e[s.name]||(e[s.name]=[]),e[s.name].push(s.value),e)),{}));const n=await this.fhirRequest(`/${s}/_search`,"POST")(i,{...t,contentType:"application/x-www-form-urlencoded"});return{...n,entry:n.entry,unbundle:function(){return this.entry?.map((e=>e.resource)).filter((e=>void 0!==e))??[]}}}async function y(e,t){const{resourceType:s}=e;return this.fhirRequest(`/${s}`,"POST")(e,t)}async function v({resourceType:e,id:t},s){return this.fhirRequest(`/${e}/${t}`,"GET")({},s)}async function j(e,t){const{id:s,resourceType:r}=e;return this.fhirRequest(`/${r}/${s}`,"PUT")(e,{...t,ifMatch:t?.optimisticLockingVersionId?`W/"${t.optimisticLockingVersionId}"`:void 0})}async function w({resourceType:e,id:t,operations:s},r){return this.fhirRequest(`/${e}/${t}`,"PATCH")(s,{...r,contentType:"application/json-patch+json",ifMatch:r?.optimisticLockingVersionId?`W/"${r.optimisticLockingVersionId}"`:void 0})}async function x({resourceType:e,id:t},s){return this.fhirRequest(`/${e}/${t}`,"DELETE")({},s)}async function z({resourceType:e,id:t,versionId:s},r){return this.fhirRequest(`/${e}/${t}/_history${s?`/${s}`:""}`,"GET")({},r)}function A(e){const{method:t,url:s}=e,r={request:{method:t,url:s}};if(s.split("?").length>1){const[e,t]=s.split("?"),i=t.split("&").map((e=>{const[t,s]=e.split("=");return{name:t,value:s}})).reduce(((e,{name:t,value:s})=>t?(e[t]||(e[t]=[]),e[t].push(s),e):e),{}),n=new URLSearchParams;u(i,n),r.request.url=`${e}?${n.toString()}`}if(["GET","DELETE","HEAD"].includes(t))return r;if("PUT"===t){const{resource:t}=e;return{...r,resource:t}}if("PATCH"===t)return"resource"in e?{...r,resource:e.resource}:{...r,resource:{resourceType:"Binary",contentType:"application/json-patch+json",data:Buffer.from(JSON.stringify(e.operations),"utf8").toString("base64")}};if("POST"===t){const{resource:t,fullUrl:s}=e;return{...r,resource:t,fullUrl:s}}throw new Error("Unrecognized method")}function E(e){return async function(t,s){return this.fhirRequest("/","POST")({resourceType:"Bundle",type:e,entry:t.requests.map(A)},s)}}const S=E("batch"),I=E("transaction");function P(e,t){const s=[];if(e.line&&s.push(...e.line),e.city||e.state||e.postalCode){const t=[];e.city&&t.push(e.city),e.state&&t.push(e.state),e.postalCode&&t.push(e.postalCode),s.push(t.join(", "))}return e.use&&(t?.all||t?.use)&&s.push("["+e.use+"]"),s.join(t?.lineSeparator||", ").trim()}function O(e,t){const s=[];return e.prefix&&!1!==t?.prefix&&s.push(...e.prefix),e.given&&s.push(...e.given),e.family&&s.push(e.family),e.suffix&&!1!==t?.suffix&&s.push(...e.suffix),e.use&&(t?.all||t?.use)&&s.push("["+e.use+"]"),s.join(" ").trim()}class R extends h{constructor(e){super(e)}#e(){return this.config.services?.fhirApiUrl??"https://fhir-api.zapehr.com"}search=q;create=y;get=v;update=j;patch=w;delete=x;history=z;batch=S;transaction=I;formatAddress=P;formatHumanName=O}class N extends h{constructor(e){super(e)}#e(){return this.config.services?.labApiUrl??"https://labs-api.zapehr.com/v1"}routeList(e){return this.request("/route","get",this.#e.bind(this))(e)}routeCreate(e,t){return this.request("/route","post",this.#e.bind(this))(e,t)}routeDelete(e,t){return this.request("/route/{routeGuid}","delete",this.#e.bind(this))(e,t)}orderableItemList(e,t){return this.request("/orderableItem","get",this.#e.bind(this))(e,t)}orderableItemQuestionnaireGet(e,t){return this.request("/canonical-questionnaire/lab/{labGuid}/compendium/{compendiumVersion}/item/{itemCode}/questionnaire","get",this.#e.bind(this))(e,t)}orderSubmit(e,t){return this.request("/submit","post",this.#e.bind(this))(e,t)}}class $ extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/m2m","get",this.#e.bind(this))(e)}create(e,t){return this.request("/m2m","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/m2m/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/m2m/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/m2m/{id}","delete",this.#e.bind(this))(e,t)}rotateSecret(e,t){return this.request("/m2m/{id}/rotate-secret","post",this.#e.bind(this))(e,t)}listV2(e,t){return this.request("/m2m/v2/list","get",this.#e.bind(this))(e,t)}}class C extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}getMessagingConfig(e){return this.request("/messaging/config","get",this.#e.bind(this))(e)}}class M extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}setUp(e,t){return this.request("/payment/payment-method/setup","post",this.#e.bind(this))(e,t)}setDefault(e,t){return this.request("/payment/payment-method/set-default","post",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/payment/payment-method","delete",this.#e.bind(this))(e,t)}list(e,t){return this.request("/payment/payment-method/list","post",this.#e.bind(this))(e,t)}}class _ extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e){return this.request("/project","get",this.#e.bind(this))(e)}update(e,t){return this.request("/project","patch",this.#e.bind(this))(e,t)}}class L extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}eligibilityCheck(e,t){return this.request("/rcm/eligibility-check","post",this.#e.bind(this))(e,t)}validateProfessionalClaim(e,t){return this.request("/rcm/professional-claim/validate","post",this.#e.bind(this))(e,t)}submitProfessionalClaim(e,t){return this.request("/rcm/professional-claim/submit","post",this.#e.bind(this))(e,t)}}class V extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/iam/role","get",this.#e.bind(this))(e)}create(e,t){return this.request("/iam/role","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/iam/role/{roleId}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/iam/role/{roleId}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/iam/role/{roleId}","delete",this.#e.bind(this))(e,t)}}class D extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/secret","get",this.#e.bind(this))(e)}set(e,t){return this.request("/secret","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/secret/{name}","get",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/secret/{name}","delete",this.#e.bind(this))(e,t)}}class F extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}createMeeting(e,t){return this.request("/telemed/v2/meeting","post",this.#e.bind(this))(e,t)}joinMeeting(e,t){return this.request("/telemed/v2/meeting/{encounterId}/join","get",this.#e.bind(this))(e,t)}}class H extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}send(e,t){return this.request("/messaging/transactional-sms/send","post",this.#e.bind(this))(e,t)}}class B extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}me(e){return this.request("/user/me","get",this.#e.bind(this))(e)}get(e,t){return this.request("/user/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/user/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/user/{id}","delete",this.#e.bind(this))(e,t)}resetMfa(e,t){return this.request("/user/{id}/reset-mfa","post",this.#e.bind(this))(e,t)}invite(e,t){return this.request("/user/invite","post",this.#e.bind(this))(e,t)}list(e){return this.request("/user","get",this.#e.bind(this))(e)}listV2(e,t){return this.request("/user/v2/list","get",this.#e.bind(this))(e,t)}}class G extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e){return this.request("/version","get",this.#e.bind(this))(e)}}function J(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}async function W({bucketName:e,"objectPath+":t,file:s}){const r=await this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))({action:"upload",bucketName:e,"objectPath+":t});await fetch(r.signedUrl,{method:"PUT",body:s})}async function X({bucketName:e,"objectPath+":t}){const s=await this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))({action:"download",bucketName:e,"objectPath+":t}),r=await fetch(s.signedUrl,{method:"GET"});if(!r.ok)throw new Error("Failed to download file");return r.arrayBuffer()}async function Z(e){let s,r;const i=new URL(e.url);if("z3:"===i.protocol){const e=i.pathname.split("/").slice(1);s=i.hostname,r=e.join("/")}else{if(!i.href.startsWith(this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"))throw new t({message:"Invalid Z3 URL",code:400});{const e=i.pathname.split("/").slice(3);s=e[0],r=e.slice(1).join("/")}}const n={action:"upload",bucketName:s,"objectPath+":r};return this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))(n)}class K extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}uploadFile=W;downloadFile=X;getPresignedUrlForZ3Url=Z;listBuckets(e){return this.request("/z3","get",this.#e.bind(this))(e)}createBucket(e,t){return this.request("/z3/{bucketName}","put",this.#e.bind(this))(e,t)}deleteBucket(e,t){return this.request("/z3/{bucketName}","delete",this.#e.bind(this))(e,t)}listObjects(e,t){return this.request("/z3/{bucketName}/{objectPath+}","get",this.#e.bind(this))(e,t)}getPresignedUrl(e,t){return this.request("/z3/{bucketName}/{objectPath+}","post",this.#e.bind(this))(e,t)}deleteObject(e,t){return this.request("/z3/{bucketName}/{objectPath+}","delete",this.#e.bind(this))(e,t)}}function Q(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}async function Y({id:e,file:t,filename:s}){const r=await this.request("/zambda/{id}/s3-upload","post",Q.bind(this))({id:e,filename:s});await fetch(r.signedUrl,{method:"PUT",body:t})}class ee extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}uploadFile=Y;list(e){return this.request("/zambda","get",this.#e.bind(this))(e)}create(e,t){return this.request("/zambda","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/zambda/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/zambda/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/zambda/{id}","delete",this.#e.bind(this))(e,t)}execute(e,t){return this.request("/zambda/{id}/execute","post",this.#e.bind(this))(e,t)}executePublic(e,t){return this.request("/zambda/{id}/execute-public","post",this.#e.bind(this))(e,t)}s3Upload(e,t){return this.request("/zambda/{id}/s3-upload","post",this.#e.bind(this))(e,t)}}class te extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e,t){return this.request("/zambda/{id}/logStream","post",this.#e.bind(this))(e,t)}search(e,t){return this.request("/zambda/{id}/logStream/search","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/zambda/{id}/logStream/{logStreamName}","post",this.#e.bind(this))(e,t)}}let se=class{config;application;developer;m2m;messaging;conversation;transactionalSMS;paymentMethod;charge;project;rcm;erxV1;erxV2;role;secret;telemed;user;version;z3;zambda;zambdaLogStream;fax;lab;erx;fhir;constructor(e){this.config=e,this.config.services??={},this.config.services.projectApiUrl??=e.projectApiUrl,this.config.services.fhirApiUrl??=e.fhirApiUrl,this.application=new c(e),this.developer=new g(e),this.m2m=new $(e),this.messaging=new C(e),this.conversation=new m(e),this.transactionalSMS=new H(e),this.paymentMethod=new M(e),this.charge=new p(e),this.project=new _(e),this.rcm=new L(e),this.erxV1=new f(e),this.erxV2=new T(e),this.role=new V(e),this.secret=new D(e),this.telemed=new F(e),this.user=new B(e),this.version=new G(e),this.z3=new K(e),this.zambda=new ee(e),this.zambdaLogStream=new te(e),this.fax=new k(e),this.lab=new N(e),this.erx=new U(e),this.fhir=new R(e)}};class re extends se{static OystehrFHIRError=r;static OystehrSdkError=t}export{re as default};
1
+ import{v4 as e}from"uuid";class t extends Error{code;constructor({message:e,code:s,cause:r}){super(e,{cause:r}),Object.setPrototypeOf(this,t.prototype),this.code=s,this.name="OystehrSdkError"}toString(){return`${this.name}: ${this.message} (code: ${this.code})`}toJSON(){return{name:this.name,message:this.message,code:this.code,cause:this.cause}}}function s(e){const t=[];for(const s of e.issue??[])s.details&&s.details.text&&t.push(s.details.text);return t.length||t.push("Unknown FHIR error"),t.join(",")}class r extends t{cause;constructor({error:e,code:t}){super({message:s(e),code:t}),Object.setPrototypeOf(this,r.prototype),this.cause=e,this.name="OystehrFHIRError"}toJSON(){return{name:this.name,message:this.message,code:this.code,cause:this.cause}}}const i=[408,429,500,502,503,504],n=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET"];class h{config;constructor(e){this.config=e}request(e,s,r){return async(i,n)=>{const h=()=>this.config;try{return await o(r,h,e,s)(i,n)}catch(e){const s=e;throw new t({message:s.message,code:s.code,cause:s.cause})}}}fhirRequest(e,s){return async(i,n)=>{try{const t=()=>this.config.services?.fhirApiUrl??"https://fhir-api.zapehr.com",r=()=>this.config;return await o(t,r,e,s)(i,n)}catch(e){const s=e;if("string"==typeof s.message)throw new t({message:s.message,code:s.code,cause:s.cause});throw new r({error:s.message,code:s.code})}}}}function a(e){return"accessToken"in e}function o(s,r,h,o){return async(c,p)=>{const l=c&&!p&&!Array.isArray(c)&&a(c)?{}:c??{},d=c&&!p&&!Array.isArray(c)&&a(c)?c:p,b=o.toLowerCase(),m=r(),g=m.fetch??fetch,f=d?.accessToken??m.accessToken,U=d?.projectId??r().projectId;let T=h,k=l;if(!Array.isArray(l)){const[e,s]=function(e,s){const r={...s},i=e.replace(/\{([^}]+)\}/g,((e,i)=>{if(delete r[i],i.match(/^.*\+$/))return s[i]+"";if(!s[i]||""===s[i])throw new t({message:`Required path parameter is an empty string: ${i}`,code:400});return s[i]?encodeURIComponent(s[i]+""):""})),n=Object.keys(r),h=n.length?n.reduce(((e,t)=>({...e,[t]:r[t]})),{}):{};return[i,h]}(h,l);T=e,k=s}T=T.replace(/^\//,"");const q=s(),y=q.endsWith("/")?q:q+"/",v=new URL(T,y);let j;if(Array.isArray(k))j=JSON.stringify(k);else if(Object.keys(k).length)if("get"===b)u(k,v.searchParams);else if("application/x-www-form-urlencoded"===d?.contentType){const e=new URLSearchParams;u(k,e),j=e.toString()}else j=JSON.stringify(k);else"application/x-www-form-urlencoded"!==d?.contentType&&"post"===b&&(j="{}");const w=Object.assign(U?{"x-zapehr-project-id":U,"x-oystehr-project-id":U}:{},{"content-type":d?.contentType??"application/json"},f?{Authorization:`Bearer ${f}`}:{},d?.ifMatch?{"If-Match":d.ifMatch}:{},{"x-oystehr-request-id":d?.requestId??e()}),x={retries:m.retry?.retries??3,jitter:m.retry?.jitter??20,delay:m.retry?.delay??100,onRetry:m.retry?.onRetry,retryOn:[...m.retry?.retryOn??[],...i]};return x.retryOn.push(...i),async function(e,t){let s;for(const r of Array.from({length:(t.retries??0)+1},((e,t)=>t)))try{return await e(r)}catch(e){let i=!1;if("response"in e){const r=e;i=t.retryOn.includes(r.code),s={message:e.message,code:e.code}}else if(s=e,"code"in e&&"string"==typeof e.code){const t=e;i=n.includes(t.code)}if(!i)break;const h=Math.floor(Math.random()*(t.jitter+1));await new Promise((e=>setTimeout(e,t.delay+h))),t.onRetry&&r!==(t.retries??0)&&t.onRetry(r+1)}throw s}((async()=>{const e=await g(new Request(v,{method:b.toUpperCase(),body:j,headers:w})),t=e.body?await e.text():null;let s;try{s=t&&(e.headers.get("content-type")?.includes("application/json")||e.headers.get("content-type")?.includes("application/fhir+json"))?JSON.parse(t):null}catch(e){s=null}if(!e.ok||e.status>=400){throw{message:s?.output?.message??s?.message??s??t??e.statusText,code:s?.output?.code??s?.code??e.status,response:e}}return s}),x)}}function u(e,t){for(const[s,r]of Object.entries(e))Array.isArray(r)?r.forEach((e=>t.append(s,e))):t.append(s,r)}class c extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/application","get",this.#e.bind(this))(e)}create(e,t){return this.request("/application","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/application/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/application/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/application/{id}","delete",this.#e.bind(this))(e,t)}rotateSecret(e,t){return this.request("/application/{id}/rotate-secret","post",this.#e.bind(this))(e,t)}revokeRefreshToken(e,t){return this.request("/application/{id}/revoke-refresh-token","post",this.#e.bind(this))(e,t)}revokeAccessToken(e,t){return this.request("/application/{id}/revoke-access-token","post",this.#e.bind(this))(e,t)}}class p extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}issue(e,t){return this.request("/payment/charge/issue","post",this.#e.bind(this))(e,t)}status(e,t){return this.request("/payment/charge/status","post",this.#e.bind(this))(e,t)}}const l="https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release",d="addressString";function b(e){if(function(e){return Object.hasOwn(e,"virtualService")}(e)){const t=e.virtualService?.find((e=>"https://fhir.zapehr.com/virtual-service-type"===e.channelType?.system));return t?.addressString}if(!e.extension)return;const t=e.extension.find((e=>e.url===l));if(!t?.extension)return;const s=t.extension?.find((e=>e.url===d))?.valueString;return s}class m extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}ENCOUNTER_VS_EXTENSION_URL=l;ENCOUNTER_VS_EXTENSION_RELATIVE_URL=d;getConversationIdFromEncounter=b;create(e,t){return this.request("/messaging/conversation","post",this.#e.bind(this))(e,t)}getToken(e){return this.request("/messaging/conversation/token","get",this.#e.bind(this))(e)}addParticipant(e,t){return this.request("/messaging/conversation/{conversationId}/participant","post",this.#e.bind(this))(e,t)}removeParticipant(e,t){return this.request("/messaging/conversation/{conversationId}/participant","delete",this.#e.bind(this))(e,t)}message(e,t){return this.request("/messaging/conversation/{conversationId}/message","post",this.#e.bind(this))(e,t)}}class g extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e,t){return this.request("/developer/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/developer/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/developer/{id}","delete",this.#e.bind(this))(e,t)}invite(e,t){return this.request("/developer/invite","post",this.#e.bind(this))(e,t)}list(e){return this.request("/developer","get",this.#e.bind(this))(e)}listV2(e,t){return this.request("/developer/v2/list","get",this.#e.bind(this))(e,t)}}class f extends h{constructor(e){super(e)}#e(){return this.config.services?.erxApiUrl??"https://erx-api.zapehr.com/v3"}searchAllergens(e,t){return this.request("/allergen","get",this.#e.bind(this))(e,t)}searchMedications(e,t){return this.request("/medication","get",this.#e.bind(this))(e,t)}getConfiguration(e){return this.request("/config","get",this.#e.bind(this))(e)}checkAllergyInteractions(e,t){return this.request("/patient/{patientId}/interactions/allergy","get",this.#e.bind(this))(e,t)}checkMedicationInteractions(e,t){return this.request("/patient/{patientId}/interactions/medication","get",this.#e.bind(this))(e,t)}checkPrecheckInteractions(e,t){return this.request("/patient/{patientId}/interactions/precheck/{drugId}","get",this.#e.bind(this))(e,t)}cancelPrescription(e,t){return this.request("/patient/{patientId}/prescriptions/{medicationRequestId}","delete",this.#e.bind(this))(e,t)}syncPatient(e,t){return this.request("/patient/{patientId}/sync","post",this.#e.bind(this))(e,t)}connectPractitioner(e,t){return this.request("/practitioner/connect","get",this.#e.bind(this))(e,t)}checkPractitionerEnrollment(e,t){return this.request("/practitioner/{practitionerId}","get",this.#e.bind(this))(e,t)}enrollPractitioner(e,t){return this.request("/practitioner/{practitionerId}","post",this.#e.bind(this))(e,t)}unenrollPractitioner(e,t){return this.request("/practitioner/{practitionerId}","delete",this.#e.bind(this))(e,t)}}class U extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}syncPatient(e,t){return this.request("/erx/sync-patient/{patientId}","post",this.#e.bind(this))(e,t)}allergySearch(e,t){return this.request("/erx/allergy/search","get",this.#e.bind(this))(e,t)}cancelOrder(e,t){return this.request("/erx/cancel-order","post",this.#e.bind(this))(e,t)}cancelPrescription(e,t){return this.request("/erx/cancel-prescription","post",this.#e.bind(this))(e,t)}medicationSearch(e,t){return this.request("/erx/medication/search","get",this.#e.bind(this))(e,t)}}class T extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}medicationSearch(e,t){return this.request("/erx/v2/medication/search","get",this.#e.bind(this))(e,t)}}class k extends h{constructor(e){super(e)}#e(){return this.config.services?.faxApiUrl??"https://fax-api.zapehr.com/v1"}offboard(e){return this.request("/offboard","post",this.#e.bind(this))(e)}onboard(e){return this.request("/onboard","post",this.#e.bind(this))(e)}send(e,t){return this.request("/send","post",this.#e.bind(this))(e,t)}}async function q(e,t){const{resourceType:s,params:r}=e;let i;r&&(i=Object.entries(r).reduce(((e,[t,s])=>(e[s.name]||(e[s.name]=[]),e[s.name].push(s.value),e)),{}));const n=await this.fhirRequest(`/${s}/_search`,"POST")(i,{...t,contentType:"application/x-www-form-urlencoded"});return{...n,entry:n.entry,unbundle:function(){return this.entry?.map((e=>e.resource)).filter((e=>void 0!==e))??[]}}}async function y(e,t){const{resourceType:s}=e;return this.fhirRequest(`/${s}`,"POST")(e,t)}async function v({resourceType:e,id:t},s){return this.fhirRequest(`/${e}/${t}`,"GET")({},s)}async function j(e,t){const{id:s,resourceType:r}=e;return this.fhirRequest(`/${r}/${s}`,"PUT")(e,{...t,ifMatch:t?.optimisticLockingVersionId?`W/"${t.optimisticLockingVersionId}"`:void 0})}async function w({resourceType:e,id:t,operations:s},r){return this.fhirRequest(`/${e}/${t}`,"PATCH")(s,{...r,contentType:"application/json-patch+json",ifMatch:r?.optimisticLockingVersionId?`W/"${r.optimisticLockingVersionId}"`:void 0})}async function x({resourceType:e,id:t},s){return this.fhirRequest(`/${e}/${t}`,"DELETE")({},s)}async function z({resourceType:e,id:t,versionId:s},r){return this.fhirRequest(`/${e}/${t}/_history${s?`/${s}`:""}`,"GET")({},r)}function A(e){const{method:t,url:s}=e,r={request:{method:t,url:s}};if(s.split("?").length>1){const[e,t]=s.split("?"),i=t.split("&").map((e=>{const[t,s]=e.split("=");return{name:t,value:s}})).reduce(((e,{name:t,value:s})=>t?(e[t]||(e[t]=[]),e[t].push(s),e):e),{}),n=new URLSearchParams;u(i,n),r.request.url=`${e}?${n.toString()}`}if(["GET","DELETE","HEAD"].includes(t))return r;if("PUT"===t){const{resource:t}=e;return{request:{...r.request,ifMatch:e.ifMatch},resource:t}}if("PATCH"===t)return"resource"in e?{request:{...r.request,ifMatch:e.ifMatch},resource:e.resource}:{...r,resource:{resourceType:"Binary",contentType:"application/json-patch+json",data:Buffer.from(JSON.stringify(e.operations),"utf8").toString("base64")}};if("POST"===t){const{resource:t,fullUrl:s}=e;return{...r,resource:t,fullUrl:s}}throw new Error("Unrecognized method")}function E(e){return async function(t,s){return this.fhirRequest("/","POST")({resourceType:"Bundle",type:e,entry:t.requests.map(A)},s)}}const S=E("batch"),I=E("transaction");function P(e,t){const s=[];if(e.line&&s.push(...e.line),e.city||e.state||e.postalCode){const t=[];e.city&&t.push(e.city),e.state&&t.push(e.state),e.postalCode&&t.push(e.postalCode),s.push(t.join(", "))}return e.use&&(t?.all||t?.use)&&s.push("["+e.use+"]"),s.join(t?.lineSeparator||", ").trim()}function O(e,t){const s=[];return e.prefix&&!1!==t?.prefix&&s.push(...e.prefix),e.given&&s.push(...e.given),e.family&&s.push(e.family),e.suffix&&!1!==t?.suffix&&s.push(...e.suffix),e.use&&(t?.all||t?.use)&&s.push("["+e.use+"]"),s.join(" ").trim()}class R extends h{constructor(e){super(e)}#e(){return this.config.services?.fhirApiUrl??"https://fhir-api.zapehr.com"}search=q;create=y;get=v;update=j;patch=w;delete=x;history=z;batch=S;transaction=I;formatAddress=P;formatHumanName=O}class N extends h{constructor(e){super(e)}#e(){return this.config.services?.labApiUrl??"https://labs-api.zapehr.com/v1"}routeList(e){return this.request("/route","get",this.#e.bind(this))(e)}routeCreate(e,t){return this.request("/route","post",this.#e.bind(this))(e,t)}routeDelete(e,t){return this.request("/route/{routeGuid}","delete",this.#e.bind(this))(e,t)}orderableItemList(e,t){return this.request("/orderableItem","get",this.#e.bind(this))(e,t)}orderableItemQuestionnaireGet(e,t){return this.request("/canonical-questionnaire/lab/{labGuid}/compendium/{compendiumVersion}/item/{itemCode}/questionnaire","get",this.#e.bind(this))(e,t)}orderSubmit(e,t){return this.request("/submit","post",this.#e.bind(this))(e,t)}}class M extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/m2m","get",this.#e.bind(this))(e)}create(e,t){return this.request("/m2m","post",this.#e.bind(this))(e,t)}me(e){return this.request("/m2m/me","get",this.#e.bind(this))(e)}get(e,t){return this.request("/m2m/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/m2m/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/m2m/{id}","delete",this.#e.bind(this))(e,t)}rotateSecret(e,t){return this.request("/m2m/{id}/rotate-secret","post",this.#e.bind(this))(e,t)}listV2(e,t){return this.request("/m2m/v2/list","get",this.#e.bind(this))(e,t)}}class $ extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}getMessagingConfig(e){return this.request("/messaging/config","get",this.#e.bind(this))(e)}}class C extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}setUp(e,t){return this.request("/payment/payment-method/setup","post",this.#e.bind(this))(e,t)}setDefault(e,t){return this.request("/payment/payment-method/set-default","post",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/payment/payment-method","delete",this.#e.bind(this))(e,t)}list(e,t){return this.request("/payment/payment-method/list","post",this.#e.bind(this))(e,t)}}class _ extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e){return this.request("/project","get",this.#e.bind(this))(e)}update(e,t){return this.request("/project","patch",this.#e.bind(this))(e,t)}}class L extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}eligibilityCheck(e,t){return this.request("/rcm/eligibility-check","post",this.#e.bind(this))(e,t)}validateProfessionalClaim(e,t){return this.request("/rcm/professional-claim/validate","post",this.#e.bind(this))(e,t)}submitProfessionalClaim(e,t){return this.request("/rcm/professional-claim/submit","post",this.#e.bind(this))(e,t)}}class V extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/iam/role","get",this.#e.bind(this))(e)}create(e,t){return this.request("/iam/role","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/iam/role/{roleId}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/iam/role/{roleId}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/iam/role/{roleId}","delete",this.#e.bind(this))(e,t)}}class D extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e){return this.request("/secret","get",this.#e.bind(this))(e)}set(e,t){return this.request("/secret","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/secret/{name}","get",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/secret/{name}","delete",this.#e.bind(this))(e,t)}}class F extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}createMeeting(e,t){return this.request("/telemed/v2/meeting","post",this.#e.bind(this))(e,t)}joinMeeting(e,t){return this.request("/telemed/v2/meeting/{encounterId}/join","get",this.#e.bind(this))(e,t)}}class H extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}send(e,t){return this.request("/messaging/transactional-sms/send","post",this.#e.bind(this))(e,t)}}class B extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}me(e){return this.request("/user/me","get",this.#e.bind(this))(e)}get(e,t){return this.request("/user/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/user/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/user/{id}","delete",this.#e.bind(this))(e,t)}resetMfa(e,t){return this.request("/user/{id}/reset-mfa","post",this.#e.bind(this))(e,t)}invite(e,t){return this.request("/user/invite","post",this.#e.bind(this))(e,t)}list(e){return this.request("/user","get",this.#e.bind(this))(e)}listV2(e,t){return this.request("/user/v2/list","get",this.#e.bind(this))(e,t)}}class G extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}get(e){return this.request("/version","get",this.#e.bind(this))(e)}}function J(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}async function W({bucketName:e,"objectPath+":t,file:s}){const r=await this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))({action:"upload",bucketName:e,"objectPath+":t});await fetch(r.signedUrl,{method:"PUT",body:s})}async function X({bucketName:e,"objectPath+":t}){const s=await this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))({action:"download",bucketName:e,"objectPath+":t}),r=await fetch(s.signedUrl,{method:"GET"});if(!r.ok)throw new Error("Failed to download file");return r.arrayBuffer()}async function Z(e){let s,r;const i=new URL(e.url);if("z3:"===i.protocol){const e=i.pathname.split("/").slice(1);s=i.hostname,r=e.join("/")}else{if(!i.href.startsWith(this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"))throw new t({message:"Invalid Z3 URL",code:400});{const e=i.pathname.split("/").slice(3);s=e[0],r=e.slice(1).join("/")}}const n={action:"upload",bucketName:s,"objectPath+":r};return this.request("/z3/{bucketName}/{objectPath+}","post",J.bind(this))(n)}class K extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}uploadFile=W;downloadFile=X;getPresignedUrlForZ3Url=Z;listBuckets(e){return this.request("/z3","get",this.#e.bind(this))(e)}createBucket(e,t){return this.request("/z3/{bucketName}","put",this.#e.bind(this))(e,t)}deleteBucket(e,t){return this.request("/z3/{bucketName}","delete",this.#e.bind(this))(e,t)}listObjects(e,t){return this.request("/z3/{bucketName}/{objectPath+}","get",this.#e.bind(this))(e,t)}getPresignedUrl(e,t){return this.request("/z3/{bucketName}/{objectPath+}","post",this.#e.bind(this))(e,t)}deleteObject(e,t){return this.request("/z3/{bucketName}/{objectPath+}","delete",this.#e.bind(this))(e,t)}}function Q(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}async function Y({id:e,file:t,filename:s}){const r=await this.request("/zambda/{id}/s3-upload","post",Q.bind(this))({id:e,filename:s});await fetch(r.signedUrl,{method:"PUT",body:t})}class ee extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}uploadFile=Y;list(e){return this.request("/zambda","get",this.#e.bind(this))(e)}create(e,t){return this.request("/zambda","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/zambda/{id}","get",this.#e.bind(this))(e,t)}update(e,t){return this.request("/zambda/{id}","patch",this.#e.bind(this))(e,t)}delete(e,t){return this.request("/zambda/{id}","delete",this.#e.bind(this))(e,t)}execute(e,t){return this.request("/zambda/{id}/execute","post",this.#e.bind(this))(e,t)}executePublic(e,t){return this.request("/zambda/{id}/execute-public","post",this.#e.bind(this))(e,t)}s3Upload(e,t){return this.request("/zambda/{id}/s3-upload","post",this.#e.bind(this))(e,t)}}class te extends h{constructor(e){super(e)}#e(){return this.config.services?.projectApiUrl??"https://project-api.zapehr.com/v1"}list(e,t){return this.request("/zambda/{id}/logStream","post",this.#e.bind(this))(e,t)}search(e,t){return this.request("/zambda/{id}/logStream/search","post",this.#e.bind(this))(e,t)}get(e,t){return this.request("/zambda/{id}/logStream/{logStreamName}","post",this.#e.bind(this))(e,t)}}let se=class{config;application;developer;m2m;messaging;conversation;transactionalSMS;paymentMethod;charge;project;rcm;erxV1;erxV2;role;secret;telemed;user;version;z3;zambda;zambdaLogStream;fax;lab;erx;fhir;constructor(e){this.config=e,this.config.services??={},this.config.services.projectApiUrl??=e.projectApiUrl,this.config.services.fhirApiUrl??=e.fhirApiUrl,this.application=new c(e),this.developer=new g(e),this.m2m=new M(e),this.messaging=new $(e),this.conversation=new m(e),this.transactionalSMS=new H(e),this.paymentMethod=new C(e),this.charge=new p(e),this.project=new _(e),this.rcm=new L(e),this.erxV1=new U(e),this.erxV2=new T(e),this.role=new V(e),this.secret=new D(e),this.telemed=new F(e),this.user=new B(e),this.version=new G(e),this.z3=new K(e),this.zambda=new ee(e),this.zambdaLogStream=new te(e),this.fax=new k(e),this.lab=new N(e),this.erx=new f(e),this.fhir=new R(e)}};class re extends se{static OystehrFHIRError=r;static OystehrSdkError=t}export{re as default};
2
2
  //# sourceMappingURL=index.min.js.map