@oystehr/sdk 3.0.0 → 3.0.2

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 (68) hide show
  1. package/dist/cjs/client/client.d.ts +2 -2
  2. package/dist/cjs/index.cjs +50 -4
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.min.cjs +1 -1
  5. package/dist/cjs/index.min.cjs.map +1 -1
  6. package/dist/cjs/resources/classes/fhir-ext.d.ts +22 -33
  7. package/dist/cjs/resources/classes/fhir.d.ts +2 -0
  8. package/dist/cjs/resources/classes/index.d.ts +1 -0
  9. package/dist/cjs/resources/types/AccessPolicy.d.ts +1 -1
  10. package/dist/cjs/resources/types/ClaimCMS1500.d.ts +5 -5
  11. package/dist/cjs/resources/types/ConversationAddParticipantParams.d.ts +1 -1
  12. package/dist/cjs/resources/types/ErxMedicationSearchResponse.d.ts +3 -3
  13. package/dist/cjs/resources/types/Project.d.ts +1 -1
  14. package/dist/cjs/resources/types/VersionGetResponse.d.ts +2 -2
  15. package/dist/cjs/resources/types/Z3GetPresignedUrlParams.d.ts +1 -1
  16. package/dist/cjs/resources/types/ZambdaCreateParams.d.ts +1 -1
  17. package/dist/cjs/resources/types/ZambdaFunction.d.ts +2 -2
  18. package/dist/cjs/resources/types/ZambdaUpdateParams.d.ts +2 -2
  19. package/dist/cjs/resources/types/fhir.d.ts +38 -2
  20. package/dist/esm/client/client.d.ts +2 -2
  21. package/dist/esm/client/client.js.map +1 -1
  22. package/dist/esm/index.min.js +1 -1
  23. package/dist/esm/index.min.js.map +1 -1
  24. package/dist/esm/resources/classes/fhir-ext.d.ts +22 -33
  25. package/dist/esm/resources/classes/fhir-ext.js +48 -5
  26. package/dist/esm/resources/classes/fhir-ext.js.map +1 -1
  27. package/dist/esm/resources/classes/fhir.d.ts +2 -0
  28. package/dist/esm/resources/classes/fhir.js +3 -1
  29. package/dist/esm/resources/classes/fhir.js.map +1 -1
  30. package/dist/esm/resources/classes/index.d.ts +1 -0
  31. package/dist/esm/resources/classes/index.js +1 -0
  32. package/dist/esm/resources/classes/index.js.map +1 -1
  33. package/dist/esm/resources/types/AccessPolicy.d.ts +1 -1
  34. package/dist/esm/resources/types/ClaimCMS1500.d.ts +5 -5
  35. package/dist/esm/resources/types/ConversationAddParticipantParams.d.ts +1 -1
  36. package/dist/esm/resources/types/ErxMedicationSearchResponse.d.ts +3 -3
  37. package/dist/esm/resources/types/Project.d.ts +1 -1
  38. package/dist/esm/resources/types/VersionGetResponse.d.ts +2 -2
  39. package/dist/esm/resources/types/Z3GetPresignedUrlParams.d.ts +1 -1
  40. package/dist/esm/resources/types/ZambdaCreateParams.d.ts +1 -1
  41. package/dist/esm/resources/types/ZambdaFunction.d.ts +2 -2
  42. package/dist/esm/resources/types/ZambdaUpdateParams.d.ts +2 -2
  43. package/dist/esm/resources/types/fhir.d.ts +38 -2
  44. package/package.json +1 -1
  45. package/src/client/client.ts +2 -2
  46. package/src/resources/classes/fhir-ext.ts +97 -13
  47. package/src/resources/classes/fhir.ts +2 -0
  48. package/src/resources/classes/index.ts +2 -0
  49. package/src/resources/types/AccessPolicy.ts +1 -1
  50. package/src/resources/types/ClaimCMS1500.ts +12 -5
  51. package/src/resources/types/ConversationAddParticipantParams.ts +1 -1
  52. package/src/resources/types/ErxMedicationSearchResponse.ts +3 -3
  53. package/src/resources/types/Project.ts +1 -1
  54. package/src/resources/types/VersionGetResponse.ts +2 -2
  55. package/src/resources/types/Z3GetPresignedUrlParams.ts +1 -1
  56. package/src/resources/types/ZambdaCreateParams.ts +1 -1
  57. package/src/resources/types/ZambdaFunction.ts +2 -2
  58. package/src/resources/types/ZambdaUpdateParams.ts +2 -2
  59. package/src/resources/types/fhir.ts +56 -1
  60. package/dist/cjs/fhir/fhir-types.d.ts +0 -9
  61. package/dist/cjs/fhir/index.d.ts +0 -2
  62. package/dist/cjs/fhir/utils.d.ts +0 -14
  63. package/dist/esm/fhir/fhir-types.d.ts +0 -9
  64. package/dist/esm/fhir/index.d.ts +0 -2
  65. package/dist/esm/fhir/utils.d.ts +0 -14
  66. package/src/fhir/fhir-types.ts +0 -15
  67. package/src/fhir/index.ts +0 -2
  68. package/src/fhir/utils.ts +0 -68
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("uuid");class t extends Error{constructor({message:e,code:s}){super(e),Object.setPrototypeOf(this,t.prototype),this.code=s,this.name="OystehrSdkError"}toString(){return`${this.name}: ${this.message} (code: ${this.code})`}}function s(e){var t;const s=[];for(const i of null!==(t=e.issue)&&void 0!==t?t:[])i.details&&i.details.text&&s.push(i.details.text);return s.length||s.push("Unknown FHIR error"),s.join(",")}class i extends t{constructor({error:e,code:t}){super({message:s(e),code:t}),Object.setPrototypeOf(this,i.prototype),this.cause=e,this.name="OystehrFHIRError"}}function r(e,t,s,i){return new(s||(s=Promise))((function(r,n){function o(e){try{u(i.next(e))}catch(e){n(e)}}function c(e){try{u(i.throw(e))}catch(e){n(e)}}function u(e){var t;e.done?r(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,c)}u((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const n=[408,429,500,502,503,504],o=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET"];class c{constructor(e){this.config=e}request(e,s){return(i,n)=>r(this,void 0,void 0,(function*(){const r=()=>{var e;return null!==(e=this.config.projectApiUrl)&&void 0!==e?e:"https://project-api.zapehr.com/v1"},o=()=>this.config;try{return yield a(r,o,e,s)(i,n)}catch(e){const s=e;throw new t({message:s.message,code:s.code})}}))}fhirRequest(e,s){return(n,o)=>r(this,void 0,void 0,(function*(){try{const t=()=>{var e;return null!==(e=this.config.fhirApiUrl)&&void 0!==e?e:"https://fhir-api.zapehr.com"},i=()=>this.config;return yield a(t,i,e,s)(n,o)}catch(e){const s=e;if("string"==typeof s.message)throw new t({message:s.message,code:s.code});throw new i({error:s.message,code:s.code})}}))}}function u(e){return"accessToken"in e}function a(s,i,c,a){return(d,l)=>r(this,void 0,void 0,(function*(){var p,m,g,v,f,y,q,b,O,j,w;const E=d&&!l&&!Array.isArray(d)&&u(d)?{}:null!==(p=d)&&void 0!==p?p:{},T=d&&!l&&!Array.isArray(d)&&u(d)?d:l,x=a.toLowerCase(),S=i(),k=null!==(m=S.fetch)&&void 0!==m?m:fetch,R=null!==(g=null==T?void 0:T.accessToken)&&void 0!==g?g:S.accessToken,N=null!==(v=null==T?void 0:T.projectId)&&void 0!==v?v:i().projectId;let P=c,U=E;if(!Array.isArray(E)){const[e,s]=function(e,s){const i=Object.assign({},s),r=e.replace(/\{([^}]+)\}/g,((e,r)=>{if(delete i[r],r.match(/^.*\+$/))return s[r]+"";if(!s[r]||""===s[r])throw new t({message:`Required path parameter is an empty string: ${r}`,code:400});return s[r]?encodeURIComponent(s[r]+""):""})),n=Object.keys(i),o=n.length?n.reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:i[t]})),{}):{};return[r,o]}(c,E);P=e,U=s}P=P.replace(/^\//,"");const z=s(),I=z.endsWith("/")?z:z+"/",$=new URL(P,I);let A;if(Array.isArray(U))A=JSON.stringify(U);else if(Object.keys(U).length)if("get"===x)h(U,$.searchParams);else if("application/x-www-form-urlencoded"===(null==T?void 0:T.contentType)){const e=new URLSearchParams;h(U,e),A=e.toString()}else A=JSON.stringify(U);else"application/x-www-form-urlencoded"!==(null==T?void 0:T.contentType)&&"post"===x&&(A="{}");const _=Object.assign(N?{"x-zapehr-project-id":N,"x-oystehr-project-id":N}:{},{"content-type":null!==(f=null==T?void 0:T.contentType)&&void 0!==f?f:"application/json"},R?{Authorization:`Bearer ${R}`}:{},(null==T?void 0:T.ifMatch)?{"If-Match":T.ifMatch}:{},{"x-oystehr-request-id":null!==(y=null==T?void 0:T.requestId)&&void 0!==y?y:e.v4()}),C={retries:null!==(b=null===(q=S.retry)||void 0===q?void 0:q.retries)&&void 0!==b?b:3,onRetry:null===(O=S.retry)||void 0===O?void 0:O.onRetry,retryOn:[...null!==(w=null===(j=S.retry)||void 0===j?void 0:j.retryOn)&&void 0!==w?w:[],...n]};return C.retryOn.push(...n),function(e,t){var s,i;return r(this,void 0,void 0,(function*(){let r;for(const n of Array.from({length:(null!==(s=t.retries)&&void 0!==s?s:0)+1},((e,t)=>t)))try{return yield e(n)}catch(e){let s=!1;if("response"in e){const i=e;s=t.retryOn.includes(i.code),r={message:e.message,code:e.code}}else if(r=e,"code"in e&&"string"==typeof e.code){const t=e;s=o.includes(t.code)}if(!s)break;t.onRetry&&n!==(null!==(i=t.retries)&&void 0!==i?i:0)&&t.onRetry(n+1)}throw r}))}((e=>r(this,void 0,void 0,(function*(){var t,s,i,r,n,o;const c=yield k(new Request($,{method:x.toUpperCase(),body:A,headers:_})),u=c.body?yield c.text():null;let a;try{a=u&&((null===(t=c.headers.get("content-type"))||void 0===t?void 0:t.includes("application/json"))||(null===(s=c.headers.get("content-type"))||void 0===s?void 0:s.includes("application/fhir+json")))?JSON.parse(u):null}catch(e){a=null}if(!c.ok||c.status>=400){_["x-oystehr-fetch-attempts"]=`${e}`;throw{message:null!==(n=null!==(r=null!==(i=null==a?void 0:a.message)&&void 0!==i?i:a)&&void 0!==r?r:u)&&void 0!==n?n:c.statusText,code:null!==(o=null==a?void 0:a.code)&&void 0!==o?o:c.status,response:c}}return a}))),C)}))}function h(e,t){for(const[s,i]of Object.entries(e))Array.isArray(i)?i.forEach((e=>t.append(s,e))):t.append(s,i)}class d extends c{constructor(e){super(e),this.list=e=>this.request("/application","get")(e),this.create=(e,t)=>this.request("/application","post")(e,t),this.get=(e,t)=>this.request("/application/{id}","get")(e,t),this.update=(e,t)=>this.request("/application/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/application/{id}","delete")(e,t),this.rotateSecret=(e,t)=>this.request("/application/{id}/rotate-secret","post")(e,t),this.revokeRefreshToken=(e,t)=>this.request("/application/{id}/revoke-refresh-token","post")(e,t),this.revokeAccessToken=(e,t)=>this.request("/application/{id}/revoke-access-token","post")(e,t)}}class l extends c{constructor(e){super(e),this.issue=(e,t)=>this.request("/payment/charge/issue","post")(e,t),this.status=(e,t)=>this.request("/payment/charge/status","post")(e,t)}}const p="https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release",m="addressString";function g(e){var t,s,i;if(function(e){return Object.hasOwn(e,"virtualService")}(e)){const s=null===(t=e.virtualService)||void 0===t?void 0:t.find((e=>{var t;return"https://fhir.zapehr.com/virtual-service-type"===(null===(t=e.channelType)||void 0===t?void 0:t.system)}));return null==s?void 0:s.addressString}if(!e.extension)return;const r=e.extension.find((e=>e.url===p));if(!(null==r?void 0:r.extension))return;return null===(i=null===(s=r.extension)||void 0===s?void 0:s.find((e=>e.url===m)))||void 0===i?void 0:i.valueString}class v extends c{constructor(e){super(e),this.ENCOUNTER_VS_EXTENSION_URL=p,this.ENCOUNTER_VS_EXTENSION_RELATIVE_URL=m,this.getConversationIdFromEncounter=g,this.create=(e,t)=>this.request("/messaging/conversation","post")(e,t),this.getToken=e=>this.request("/messaging/conversation/token","get")(e),this.addParticipant=(e,t)=>this.request("/messaging/conversation/{conversationId}/participant","post")(e,t),this.removeParticipant=(e,t)=>this.request("/messaging/conversation/{conversationId}/participant","delete")(e,t),this.message=(e,t)=>this.request("/messaging/conversation/{conversationId}/message","post")(e,t)}}class f extends c{constructor(e){super(e),this.get=(e,t)=>this.request("/developer/{id}","get")(e,t),this.update=(e,t)=>this.request("/developer/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/developer/{id}","delete")(e,t),this.invite=(e,t)=>this.request("/developer/invite","post")(e,t),this.list=e=>this.request("/developer","get")(e),this.listV2=(e,t)=>this.request("/developer/v2/list","get")(e,t)}}class y extends c{constructor(e){super(e),this.syncPatient=(e,t)=>this.request("/erx/sync-patient/{patientId}","post")(e,t),this.allergySearch=(e,t)=>this.request("/erx/allergy/search","get")(e,t),this.medicationSearch=(e,t)=>this.request("/erx/medication/search","get")(e,t)}}function q({resourceType:e,params:t},s){return r(this,void 0,void 0,(function*(){let i;t&&(i=Object.entries(t).reduce(((e,[t,s])=>(e[s.name]||(e[s.name]=[]),e[s.name].push(s.value),e)),{}));const r=yield this.fhirRequest(`/${e}/_search`,"POST")(i,Object.assign(Object.assign({},s),{contentType:"application/x-www-form-urlencoded"}));return Object.assign(Object.assign({},r),{unbundle:function(){var e,t;return null!==(t=null===(e=this.entry)||void 0===e?void 0:e.map((e=>e.resource)).filter((e=>void 0!==e)))&&void 0!==t?t:[]}})}))}function b(e,t){return r(this,void 0,void 0,(function*(){const{resourceType:s}=e;return this.fhirRequest(`/${s}`,"POST")(e,t)}))}function O({resourceType:e,id:t},s){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"GET")({},s)}))}function j(e,t){return r(this,void 0,void 0,(function*(){const{id:s,resourceType:i}=e;return this.fhirRequest(`/${i}/${s}`,"PUT")(e,Object.assign(Object.assign({},t),{ifMatch:(null==t?void 0:t.optimisticLockingVersionId)?`W/"${t.optimisticLockingVersionId}"`:void 0}))}))}function w({resourceType:e,id:t,operations:s},i){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"PATCH")(s,Object.assign(Object.assign({},i),{contentType:"application/json-patch+json",ifMatch:(null==i?void 0:i.optimisticLockingVersionId)?`W/"${i.optimisticLockingVersionId}"`:void 0}))}))}function E({resourceType:e,id:t},s){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"DELETE")({},s)}))}function T({resourceType:e,id:t,versionId:s},i){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}/_history${s?`/${s}`:""}`,"GET")({},i)}))}function x(e){const{method:t,url:s}=e,i={request:{method:t,url:s}};if(s.split("?").length>1){const[e,t]=s.split("?"),r=t.split("&").map((e=>{const[t,s]=e.split("=");return{name:t,value:s}})).reduce(((e,{name:t,value:s})=>(e[t]=s,e)),{}),n=new URLSearchParams;h(r,n),i.request.url=`${e}?${n.toString()}`}if(["GET","DELETE","HEAD"].includes(t))return i;if("PUT"===t){const{resource:t}=e;return Object.assign(Object.assign({},i),{resource:t})}if("PATCH"===t)return"resource"in e?Object.assign(Object.assign({},i),{resource:e.resource}):Object.assign(Object.assign({},i),{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 Object.assign(Object.assign({},i),{resource:t,fullUrl:s})}throw new Error("Unrecognized method")}function S(e){return function(t,s){return r(this,void 0,void 0,(function*(){return this.fhirRequest("/","POST")({resourceType:"Bundle",type:e,entry:t.requests.map(x)},s)}))}}const k=S("batch"),R=S("transaction");class N extends c{constructor(e){super(e),this.search=q,this.create=b,this.get=O,this.update=j,this.patch=w,this.delete=E,this.history=T,this.batch=k,this.transaction=R}}class P extends c{constructor(e){super(e),this.list=e=>this.request("/m2m","get")(e),this.create=(e,t)=>this.request("/m2m","post")(e,t),this.get=(e,t)=>this.request("/m2m/{id}","get")(e,t),this.update=(e,t)=>this.request("/m2m/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/m2m/{id}","delete")(e,t),this.rotateSecret=(e,t)=>this.request("/m2m/{id}/rotate-secret","post")(e,t),this.listV2=(e,t)=>this.request("/m2m/v2/list","get")(e,t)}}class U extends c{constructor(e){super(e),this.getMessagingConfig=e=>this.request("/messaging/config","get")(e)}}class z extends c{constructor(e){super(e),this.setUp=(e,t)=>this.request("/payment/payment-method/setup","post")(e,t),this.setDefault=(e,t)=>this.request("/payment/payment-method/set-default","post")(e,t),this.delete=(e,t)=>this.request("/payment/payment-method","delete")(e,t),this.list=(e,t)=>this.request("/payment/payment-method/list","post")(e,t)}}class I extends c{constructor(e){super(e),this.get=e=>this.request("/project","get")(e),this.update=(e,t)=>this.request("/project","patch")(e,t)}}class $ extends c{constructor(e){super(e),this.eligibilityCheck=(e,t)=>this.request("/rcm/eligibility-check","post")(e,t),this.validateProfessionalClaim=(e,t)=>this.request("/rcm/professional-claim/validate","post")(e,t),this.submitProfessionalClaim=(e,t)=>this.request("/rcm/professional-claim/submit","post")(e,t)}}class A extends c{constructor(e){super(e),this.list=e=>this.request("/iam/role","get")(e),this.create=(e,t)=>this.request("/iam/role","post")(e,t),this.get=(e,t)=>this.request("/iam/role/{roleId}","get")(e,t),this.update=(e,t)=>this.request("/iam/role/{roleId}","patch")(e,t),this.delete=(e,t)=>this.request("/iam/role/{roleId}","delete")(e,t)}}class _ extends c{constructor(e){super(e),this.list=e=>this.request("/secret","get")(e),this.set=(e,t)=>this.request("/secret","post")(e,t),this.get=(e,t)=>this.request("/secret/{name}","get")(e,t),this.delete=(e,t)=>this.request("/secret/{name}","delete")(e,t)}}class C extends c{constructor(e){super(e),this.createMeeting=(e,t)=>this.request("/telemed/v2/meeting","post")(e,t),this.joinMeeting=(e,t)=>this.request("/telemed/v2/meeting/{encounterId}/join","get")(e,t)}}class L extends c{constructor(e){super(e),this.send=(e,t)=>this.request("/messaging/transactional-sms/send","post")(e,t)}}class M extends c{constructor(e){super(e),this.me=e=>this.request("/user/me","get")(e),this.get=(e,t)=>this.request("/user/{id}","get")(e,t),this.update=(e,t)=>this.request("/user/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/user/{id}","delete")(e,t),this.invite=(e,t)=>this.request("/user/invite","post")(e,t),this.list=e=>this.request("/user","get")(e),this.listV2=(e,t)=>this.request("/user/v2/list","get")(e,t)}}class D extends c{constructor(e){super(e),this.get=e=>this.request("/version","get")(e)}}function V({bucketName:e,"objectPath+":t,file:s}){return r(this,void 0,void 0,(function*(){const i=yield this.request("/z3/{bucketName}/{objectPath+}","post")({action:"upload",bucketName:e,"objectPath+":t});yield fetch(i.signedUrl,{method:"PUT",body:s})}))}function F({bucketName:e,"objectPath+":t}){return r(this,void 0,void 0,(function*(){const s=yield this.request("/z3/{bucketName}/{objectPath+}","post")({action:"download",bucketName:e,"objectPath+":t}),i=yield fetch(s.signedUrl,{method:"GET"});if(!i.ok)throw new Error("Failed to download file");return i.arrayBuffer()}))}class B extends c{constructor(e){super(e),this.uploadFile=V,this.downloadFile=F,this.listBuckets=e=>this.request("/z3","get")(e),this.createBucket=(e,t)=>this.request("/z3/{bucketName}","put")(e,t),this.deleteBucket=(e,t)=>this.request("/z3/{bucketName}","delete")(e,t),this.listObjects=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","get")(e,t),this.getPresignedUrl=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","post")(e,t),this.deleteObject=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","delete")(e,t)}}function H({id:e,file:t,filename:s}){return r(this,void 0,void 0,(function*(){const i=yield this.request("/zambda/{id}/s3-upload","post")({id:e,filename:s});yield fetch(i.signedUrl,{method:"PUT",body:t})}))}class G extends c{constructor(e){super(e),this.uploadFile=H,this.list=e=>this.request("/zambda","get")(e),this.create=(e,t)=>this.request("/zambda","post")(e,t),this.get=(e,t)=>this.request("/zambda/{id}","get")(e,t),this.update=(e,t)=>this.request("/zambda/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/zambda/{id}","delete")(e,t),this.execute=(e,t)=>this.request("/zambda/{id}/execute","post")(e,t),this.executePublic=(e,t)=>this.request("/zambda/{id}/execute-public","post")(e,t),this.s3Upload=(e,t)=>this.request("/zambda/{id}/s3-upload","post")(e,t)}}class J extends c{constructor(e){super(e),this.list=(e,t)=>this.request("/zambda/{id}/logStream","post")(e,t),this.search=(e,t)=>this.request("/zambda/{id}/logStream/search","post")(e,t),this.get=(e,t)=>this.request("/zambda/{id}/logStream/{logStreamName}","post")(e,t)}}let W=class{constructor(e){this.application=new d(e),this.developer=new f(e),this.m2m=new P(e),this.messaging=new U(e),this.conversation=new v(e),this.transactionalSMS=new L(e),this.paymentMethod=new z(e),this.charge=new l(e),this.project=new I(e),this.rcm=new $(e),this.erx=new y(e),this.role=new A(e),this.secret=new _(e),this.telemed=new C(e),this.user=new M(e),this.version=new D(e),this.z3=new B(e),this.zambda=new G(e),this.zambdaLogStream=new J(e),this.fhir=new N(e)}};class X extends W{}X.OystehrFHIRError=i,X.OystehrSdkError=t,module.exports=X;
1
+ "use strict";var e=require("uuid");class t extends Error{constructor({message:e,code:s}){super(e),Object.setPrototypeOf(this,t.prototype),this.code=s,this.name="OystehrSdkError"}toString(){return`${this.name}: ${this.message} (code: ${this.code})`}}function s(e){var t;const s=[];for(const i of null!==(t=e.issue)&&void 0!==t?t:[])i.details&&i.details.text&&s.push(i.details.text);return s.length||s.push("Unknown FHIR error"),s.join(",")}class i extends t{constructor({error:e,code:t}){super({message:s(e),code:t}),Object.setPrototypeOf(this,i.prototype),this.cause=e,this.name="OystehrFHIRError"}}function r(e,t,s,i){return new(s||(s=Promise))((function(r,n){function o(e){try{u(i.next(e))}catch(e){n(e)}}function c(e){try{u(i.throw(e))}catch(e){n(e)}}function u(e){var t;e.done?r(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,c)}u((i=i.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const n=[408,429,500,502,503,504],o=["ECONNRESET","ECONNREFUSED","EPIPE","ETIMEDOUT","UND_ERR_CONNECT_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_HEADERS_TIMEOUT","UND_ERR_SOCKET"];class c{constructor(e){this.config=e}request(e,s){return(i,n)=>r(this,void 0,void 0,(function*(){const r=()=>{var e;return null!==(e=this.config.projectApiUrl)&&void 0!==e?e:"https://project-api.zapehr.com/v1"},o=()=>this.config;try{return yield a(r,o,e,s)(i,n)}catch(e){const s=e;throw new t({message:s.message,code:s.code})}}))}fhirRequest(e,s){return(n,o)=>r(this,void 0,void 0,(function*(){try{const t=()=>{var e;return null!==(e=this.config.fhirApiUrl)&&void 0!==e?e:"https://fhir-api.zapehr.com"},i=()=>this.config;return yield a(t,i,e,s)(n,o)}catch(e){const s=e;if("string"==typeof s.message)throw new t({message:s.message,code:s.code});throw new i({error:s.message,code:s.code})}}))}}function u(e){return"accessToken"in e}function a(s,i,c,a){return(d,l)=>r(this,void 0,void 0,(function*(){var p,m,f,v,g,y,q,b,j,O,w;const x=d&&!l&&!Array.isArray(d)&&u(d)?{}:null!==(p=d)&&void 0!==p?p:{},E=d&&!l&&!Array.isArray(d)&&u(d)?d:l,T=a.toLowerCase(),S=i(),k=null!==(m=S.fetch)&&void 0!==m?m:fetch,R=null!==(f=null==E?void 0:E.accessToken)&&void 0!==f?f:S.accessToken,N=null!==(v=null==E?void 0:E.projectId)&&void 0!==v?v:i().projectId;let P=c,U=x;if(!Array.isArray(x)){const[e,s]=function(e,s){const i=Object.assign({},s),r=e.replace(/\{([^}]+)\}/g,((e,r)=>{if(delete i[r],r.match(/^.*\+$/))return s[r]+"";if(!s[r]||""===s[r])throw new t({message:`Required path parameter is an empty string: ${r}`,code:400});return s[r]?encodeURIComponent(s[r]+""):""})),n=Object.keys(i),o=n.length?n.reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:i[t]})),{}):{};return[r,o]}(c,x);P=e,U=s}P=P.replace(/^\//,"");const z=s(),I=z.endsWith("/")?z:z+"/",$=new URL(P,I);let A;if(Array.isArray(U))A=JSON.stringify(U);else if(Object.keys(U).length)if("get"===T)h(U,$.searchParams);else if("application/x-www-form-urlencoded"===(null==E?void 0:E.contentType)){const e=new URLSearchParams;h(U,e),A=e.toString()}else A=JSON.stringify(U);else"application/x-www-form-urlencoded"!==(null==E?void 0:E.contentType)&&"post"===T&&(A="{}");const C=Object.assign(N?{"x-zapehr-project-id":N,"x-oystehr-project-id":N}:{},{"content-type":null!==(g=null==E?void 0:E.contentType)&&void 0!==g?g:"application/json"},R?{Authorization:`Bearer ${R}`}:{},(null==E?void 0:E.ifMatch)?{"If-Match":E.ifMatch}:{},{"x-oystehr-request-id":null!==(y=null==E?void 0:E.requestId)&&void 0!==y?y:e.v4()}),_={retries:null!==(b=null===(q=S.retry)||void 0===q?void 0:q.retries)&&void 0!==b?b:3,onRetry:null===(j=S.retry)||void 0===j?void 0:j.onRetry,retryOn:[...null!==(w=null===(O=S.retry)||void 0===O?void 0:O.retryOn)&&void 0!==w?w:[],...n]};return _.retryOn.push(...n),function(e,t){var s,i;return r(this,void 0,void 0,(function*(){let r;for(const n of Array.from({length:(null!==(s=t.retries)&&void 0!==s?s:0)+1},((e,t)=>t)))try{return yield e(n)}catch(e){let s=!1;if("response"in e){const i=e;s=t.retryOn.includes(i.code),r={message:e.message,code:e.code}}else if(r=e,"code"in e&&"string"==typeof e.code){const t=e;s=o.includes(t.code)}if(!s)break;t.onRetry&&n!==(null!==(i=t.retries)&&void 0!==i?i:0)&&t.onRetry(n+1)}throw r}))}((e=>r(this,void 0,void 0,(function*(){var t,s,i,r,n,o;const c=yield k(new Request($,{method:T.toUpperCase(),body:A,headers:C})),u=c.body?yield c.text():null;let a;try{a=u&&((null===(t=c.headers.get("content-type"))||void 0===t?void 0:t.includes("application/json"))||(null===(s=c.headers.get("content-type"))||void 0===s?void 0:s.includes("application/fhir+json")))?JSON.parse(u):null}catch(e){a=null}if(!c.ok||c.status>=400){C["x-oystehr-fetch-attempts"]=`${e}`;throw{message:null!==(n=null!==(r=null!==(i=null==a?void 0:a.message)&&void 0!==i?i:a)&&void 0!==r?r:u)&&void 0!==n?n:c.statusText,code:null!==(o=null==a?void 0:a.code)&&void 0!==o?o:c.status,response:c}}return a}))),_)}))}function h(e,t){for(const[s,i]of Object.entries(e))Array.isArray(i)?i.forEach((e=>t.append(s,e))):t.append(s,i)}class d extends c{constructor(e){super(e),this.list=e=>this.request("/application","get")(e),this.create=(e,t)=>this.request("/application","post")(e,t),this.get=(e,t)=>this.request("/application/{id}","get")(e,t),this.update=(e,t)=>this.request("/application/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/application/{id}","delete")(e,t),this.rotateSecret=(e,t)=>this.request("/application/{id}/rotate-secret","post")(e,t),this.revokeRefreshToken=(e,t)=>this.request("/application/{id}/revoke-refresh-token","post")(e,t),this.revokeAccessToken=(e,t)=>this.request("/application/{id}/revoke-access-token","post")(e,t)}}class l extends c{constructor(e){super(e),this.issue=(e,t)=>this.request("/payment/charge/issue","post")(e,t),this.status=(e,t)=>this.request("/payment/charge/status","post")(e,t)}}const p="https://extensions.fhir.zapehr.com/encounter-virtual-service-pre-release",m="addressString";function f(e){var t,s,i;if(function(e){return Object.hasOwn(e,"virtualService")}(e)){const s=null===(t=e.virtualService)||void 0===t?void 0:t.find((e=>{var t;return"https://fhir.zapehr.com/virtual-service-type"===(null===(t=e.channelType)||void 0===t?void 0:t.system)}));return null==s?void 0:s.addressString}if(!e.extension)return;const r=e.extension.find((e=>e.url===p));if(!(null==r?void 0:r.extension))return;return null===(i=null===(s=r.extension)||void 0===s?void 0:s.find((e=>e.url===m)))||void 0===i?void 0:i.valueString}class v extends c{constructor(e){super(e),this.ENCOUNTER_VS_EXTENSION_URL=p,this.ENCOUNTER_VS_EXTENSION_RELATIVE_URL=m,this.getConversationIdFromEncounter=f,this.create=(e,t)=>this.request("/messaging/conversation","post")(e,t),this.getToken=e=>this.request("/messaging/conversation/token","get")(e),this.addParticipant=(e,t)=>this.request("/messaging/conversation/{conversationId}/participant","post")(e,t),this.removeParticipant=(e,t)=>this.request("/messaging/conversation/{conversationId}/participant","delete")(e,t),this.message=(e,t)=>this.request("/messaging/conversation/{conversationId}/message","post")(e,t)}}class g extends c{constructor(e){super(e),this.get=(e,t)=>this.request("/developer/{id}","get")(e,t),this.update=(e,t)=>this.request("/developer/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/developer/{id}","delete")(e,t),this.invite=(e,t)=>this.request("/developer/invite","post")(e,t),this.list=e=>this.request("/developer","get")(e),this.listV2=(e,t)=>this.request("/developer/v2/list","get")(e,t)}}class y extends c{constructor(e){super(e),this.syncPatient=(e,t)=>this.request("/erx/sync-patient/{patientId}","post")(e,t),this.allergySearch=(e,t)=>this.request("/erx/allergy/search","get")(e,t),this.medicationSearch=(e,t)=>this.request("/erx/medication/search","get")(e,t)}}function q(e,t){return r(this,void 0,void 0,(function*(){const{resourceType:s,params:i}=e;let r;i&&(r=Object.entries(i).reduce(((e,[t,s])=>(e[s.name]||(e[s.name]=[]),e[s.name].push(s.value),e)),{}));const n=yield this.fhirRequest(`/${s}/_search`,"POST")(r,Object.assign(Object.assign({},t),{contentType:"application/x-www-form-urlencoded"}));return Object.assign(Object.assign({},n),{entry:n.entry,unbundle:function(){var e,t;return null!==(t=null===(e=this.entry)||void 0===e?void 0:e.map((e=>e.resource)).filter((e=>void 0!==e)))&&void 0!==t?t:[]}})}))}function b(e,t){return r(this,void 0,void 0,(function*(){const{resourceType:s}=e;return this.fhirRequest(`/${s}`,"POST")(e,t)}))}function j({resourceType:e,id:t},s){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"GET")({},s)}))}function O(e,t){return r(this,void 0,void 0,(function*(){const{id:s,resourceType:i}=e;return this.fhirRequest(`/${i}/${s}`,"PUT")(e,Object.assign(Object.assign({},t),{ifMatch:(null==t?void 0:t.optimisticLockingVersionId)?`W/"${t.optimisticLockingVersionId}"`:void 0}))}))}function w({resourceType:e,id:t,operations:s},i){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"PATCH")(s,Object.assign(Object.assign({},i),{contentType:"application/json-patch+json",ifMatch:(null==i?void 0:i.optimisticLockingVersionId)?`W/"${i.optimisticLockingVersionId}"`:void 0}))}))}function x({resourceType:e,id:t},s){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}`,"DELETE")({},s)}))}function E({resourceType:e,id:t,versionId:s},i){return r(this,void 0,void 0,(function*(){return this.fhirRequest(`/${e}/${t}/_history${s?`/${s}`:""}`,"GET")({},i)}))}function T(e){const{method:t,url:s}=e,i={request:{method:t,url:s}};if(s.split("?").length>1){const[e,t]=s.split("?"),r=t.split("&").map((e=>{const[t,s]=e.split("=");return{name:t,value:s}})).reduce(((e,{name:t,value:s})=>(e[t]=s,e)),{}),n=new URLSearchParams;h(r,n),i.request.url=`${e}?${n.toString()}`}if(["GET","DELETE","HEAD"].includes(t))return i;if("PUT"===t){const{resource:t}=e;return Object.assign(Object.assign({},i),{resource:t})}if("PATCH"===t)return"resource"in e?Object.assign(Object.assign({},i),{resource:e.resource}):Object.assign(Object.assign({},i),{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 Object.assign(Object.assign({},i),{resource:t,fullUrl:s})}throw new Error("Unrecognized method")}function S(e){return function(t,s){return r(this,void 0,void 0,(function*(){return this.fhirRequest("/","POST")({resourceType:"Bundle",type:e,entry:t.requests.map(T)},s)}))}}const k=S("batch"),R=S("transaction");function N(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&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&s.push("["+e.use+"]"),s.join((null==t?void 0:t.lineSeparator)||", ").trim()}function P(e,t){const s=[];return e.prefix&&!1!==(null==t?void 0:t.prefix)&&s.push(...e.prefix),e.given&&s.push(...e.given),e.family&&s.push(e.family),e.suffix&&!1!==(null==t?void 0:t.suffix)&&s.push(...e.suffix),e.use&&((null==t?void 0:t.all)||(null==t?void 0:t.use))&&s.push("["+e.use+"]"),s.join(" ").trim()}class U extends c{constructor(e){super(e),this.search=q,this.create=b,this.get=j,this.update=O,this.patch=w,this.delete=x,this.history=E,this.batch=k,this.transaction=R,this.formatAddress=N,this.formatHumanName=P}}class z extends c{constructor(e){super(e),this.list=e=>this.request("/m2m","get")(e),this.create=(e,t)=>this.request("/m2m","post")(e,t),this.get=(e,t)=>this.request("/m2m/{id}","get")(e,t),this.update=(e,t)=>this.request("/m2m/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/m2m/{id}","delete")(e,t),this.rotateSecret=(e,t)=>this.request("/m2m/{id}/rotate-secret","post")(e,t),this.listV2=(e,t)=>this.request("/m2m/v2/list","get")(e,t)}}class I extends c{constructor(e){super(e),this.getMessagingConfig=e=>this.request("/messaging/config","get")(e)}}class $ extends c{constructor(e){super(e),this.setUp=(e,t)=>this.request("/payment/payment-method/setup","post")(e,t),this.setDefault=(e,t)=>this.request("/payment/payment-method/set-default","post")(e,t),this.delete=(e,t)=>this.request("/payment/payment-method","delete")(e,t),this.list=(e,t)=>this.request("/payment/payment-method/list","post")(e,t)}}class A extends c{constructor(e){super(e),this.get=e=>this.request("/project","get")(e),this.update=(e,t)=>this.request("/project","patch")(e,t)}}class C extends c{constructor(e){super(e),this.eligibilityCheck=(e,t)=>this.request("/rcm/eligibility-check","post")(e,t),this.validateProfessionalClaim=(e,t)=>this.request("/rcm/professional-claim/validate","post")(e,t),this.submitProfessionalClaim=(e,t)=>this.request("/rcm/professional-claim/submit","post")(e,t)}}class _ extends c{constructor(e){super(e),this.list=e=>this.request("/iam/role","get")(e),this.create=(e,t)=>this.request("/iam/role","post")(e,t),this.get=(e,t)=>this.request("/iam/role/{roleId}","get")(e,t),this.update=(e,t)=>this.request("/iam/role/{roleId}","patch")(e,t),this.delete=(e,t)=>this.request("/iam/role/{roleId}","delete")(e,t)}}class L extends c{constructor(e){super(e),this.list=e=>this.request("/secret","get")(e),this.set=(e,t)=>this.request("/secret","post")(e,t),this.get=(e,t)=>this.request("/secret/{name}","get")(e,t),this.delete=(e,t)=>this.request("/secret/{name}","delete")(e,t)}}class M extends c{constructor(e){super(e),this.createMeeting=(e,t)=>this.request("/telemed/v2/meeting","post")(e,t),this.joinMeeting=(e,t)=>this.request("/telemed/v2/meeting/{encounterId}/join","get")(e,t)}}class D extends c{constructor(e){super(e),this.send=(e,t)=>this.request("/messaging/transactional-sms/send","post")(e,t)}}class V extends c{constructor(e){super(e),this.me=e=>this.request("/user/me","get")(e),this.get=(e,t)=>this.request("/user/{id}","get")(e,t),this.update=(e,t)=>this.request("/user/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/user/{id}","delete")(e,t),this.invite=(e,t)=>this.request("/user/invite","post")(e,t),this.list=e=>this.request("/user","get")(e),this.listV2=(e,t)=>this.request("/user/v2/list","get")(e,t)}}class F extends c{constructor(e){super(e),this.get=e=>this.request("/version","get")(e)}}function H({bucketName:e,"objectPath+":t,file:s}){return r(this,void 0,void 0,(function*(){const i=yield this.request("/z3/{bucketName}/{objectPath+}","post")({action:"upload",bucketName:e,"objectPath+":t});yield fetch(i.signedUrl,{method:"PUT",body:s})}))}function B({bucketName:e,"objectPath+":t}){return r(this,void 0,void 0,(function*(){const s=yield this.request("/z3/{bucketName}/{objectPath+}","post")({action:"download",bucketName:e,"objectPath+":t}),i=yield fetch(s.signedUrl,{method:"GET"});if(!i.ok)throw new Error("Failed to download file");return i.arrayBuffer()}))}class G extends c{constructor(e){super(e),this.uploadFile=H,this.downloadFile=B,this.listBuckets=e=>this.request("/z3","get")(e),this.createBucket=(e,t)=>this.request("/z3/{bucketName}","put")(e,t),this.deleteBucket=(e,t)=>this.request("/z3/{bucketName}","delete")(e,t),this.listObjects=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","get")(e,t),this.getPresignedUrl=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","post")(e,t),this.deleteObject=(e,t)=>this.request("/z3/{bucketName}/{objectPath+}","delete")(e,t)}}function J({id:e,file:t,filename:s}){return r(this,void 0,void 0,(function*(){const i=yield this.request("/zambda/{id}/s3-upload","post")({id:e,filename:s});yield fetch(i.signedUrl,{method:"PUT",body:t})}))}class W extends c{constructor(e){super(e),this.uploadFile=J,this.list=e=>this.request("/zambda","get")(e),this.create=(e,t)=>this.request("/zambda","post")(e,t),this.get=(e,t)=>this.request("/zambda/{id}","get")(e,t),this.update=(e,t)=>this.request("/zambda/{id}","patch")(e,t),this.delete=(e,t)=>this.request("/zambda/{id}","delete")(e,t),this.execute=(e,t)=>this.request("/zambda/{id}/execute","post")(e,t),this.executePublic=(e,t)=>this.request("/zambda/{id}/execute-public","post")(e,t),this.s3Upload=(e,t)=>this.request("/zambda/{id}/s3-upload","post")(e,t)}}class X extends c{constructor(e){super(e),this.list=(e,t)=>this.request("/zambda/{id}/logStream","post")(e,t),this.search=(e,t)=>this.request("/zambda/{id}/logStream/search","post")(e,t),this.get=(e,t)=>this.request("/zambda/{id}/logStream/{logStreamName}","post")(e,t)}}let K=class{constructor(e){this.config=e,this.application=new d(e),this.developer=new g(e),this.m2m=new z(e),this.messaging=new I(e),this.conversation=new v(e),this.transactionalSMS=new D(e),this.paymentMethod=new $(e),this.charge=new l(e),this.project=new A(e),this.rcm=new C(e),this.erx=new y(e),this.role=new _(e),this.secret=new L(e),this.telemed=new M(e),this.user=new V(e),this.version=new F(e),this.z3=new G(e),this.zambda=new W(e),this.zambdaLogStream=new X(e),this.fhir=new U(e)}};class Q extends K{}Q.OystehrFHIRError=i,Q.OystehrSdkError=t,module.exports=Q;
2
2
  //# sourceMappingURL=index.min.cjs.map