@everfur/sdk 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/{Chat-DZpYH8Uh.d.ts → Chat-CFi5cNUF.d.ts} +3 -3
- package/dist/{Chat-bATY4atj.d.cts → Chat-DQOsAumH.d.cts} +3 -3
- package/dist/{DepthViews-C4DC4Kom.d.cts → DepthViews-C409ubw-.d.cts} +1 -1
- package/dist/{DepthViews-BpHUbjSY.d.cts → DepthViews-D81c95Ra.d.cts} +1 -1
- package/dist/{DepthViews-dLTizxjr.d.ts → DepthViews-es8mIK0w.d.ts} +1 -1
- package/dist/{DepthViews-qBIoA48w.d.ts → DepthViews-uilL1NJZ.d.ts} +1 -1
- package/dist/{BookedScreen-DFJcgf1e.d.ts → IntakeMedia-BcjjUizr.d.ts} +40 -1
- package/dist/{BookedScreen-R5X_Zrlh.d.cts → IntakeMedia-CL_S2tZE.d.cts} +40 -1
- package/dist/animations/index.d.cts +3 -3
- package/dist/animations/index.d.ts +3 -3
- package/dist/{attachments-Ce06TWqe.d.cts → attachments-B2GjBgvF.d.cts} +2 -2
- package/dist/{attachments-CUOGILir.d.cts → attachments-DI710no4.d.cts} +5 -5
- package/dist/{attachments-CPRFfoHT.d.ts → attachments-DNaSbmA3.d.ts} +2 -2
- package/dist/{attachments-CXAnZcEg.d.ts → attachments-SF88N654.d.ts} +5 -5
- package/dist/{bookingCopy-DFTv9w6J.d.ts → bookingCopy-D2N3RhsV.d.ts} +2 -2
- package/dist/{bookingCopy-BwVopcoV.d.cts → bookingCopy-xlXxORCA.d.cts} +2 -2
- package/dist/{casesRepository-CJchNp3x.d.cts → casesRepository-B-md8h1S.d.cts} +1 -1
- package/dist/{casesRepository-DAVcY3jC.d.ts → casesRepository-CC6951TK.d.ts} +1 -1
- package/dist/chat/index.d.cts +9 -9
- package/dist/chat/index.d.ts +9 -9
- package/dist/client/index.cjs +1 -1
- package/dist/client/index.d.cts +6 -6
- package/dist/client/index.d.ts +6 -6
- package/dist/client/index.js +1 -1
- package/dist/{config-ZxwCylac.d.ts → config-BM0sv5jx.d.ts} +1 -1
- package/dist/{config-h5h6TsHL.d.cts → config-Daa1plhQ.d.cts} +1 -1
- package/dist/consent/index.d.cts +5 -5
- package/dist/consent/index.d.ts +5 -5
- package/dist/{context-DtPIshVA.d.ts → context-CDV2pwGI.d.ts} +5 -5
- package/dist/{context-CtsAgJnc.d.cts → context-DQHtwcHN.d.cts} +5 -5
- package/dist/{copy-CaWaplQc.d.cts → copy-BEx5F71o.d.cts} +2 -2
- package/dist/{copy-Cg89Qoal.d.ts → copy-Cl1l-qmY.d.ts} +2 -2
- package/dist/core/index.cjs +1 -1
- package/dist/core/index.d.cts +12 -12
- package/dist/core/index.d.ts +12 -12
- package/dist/core/index.js +1 -1
- package/dist/{depth-EXZYEO70.d.cts → depth-CAAwiStc.d.cts} +3 -3
- package/dist/{depth-Bo4bAwcn.d.ts → depth-DfNRVtrV.d.ts} +3 -3
- package/dist/{entitlementRepository-DcbIx8yV.d.ts → entitlementRepository-CVWvND1P.d.ts} +2 -2
- package/dist/{entitlementRepository-BYtVb1oU.d.cts → entitlementRepository-DPvWjV-N.d.cts} +2 -2
- package/dist/{identity-EC5-apbY.d.ts → identity-BhT7oJDS.d.ts} +1 -1
- package/dist/{identity-b5Vp32Vp.d.cts → identity-DUlshgow.d.cts} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +12 -12
- package/dist/index.d.ts +12 -12
- package/dist/index.js +1 -1
- package/dist/notifications/index.d.cts +2 -2
- package/dist/notifications/index.d.ts +2 -2
- package/dist/{pets-DM8QvKLo.d.cts → pets-Bneph9m1.d.cts} +1 -1
- package/dist/{pets-B_27_agU.d.ts → pets-DjcLmRrW.d.ts} +1 -1
- package/dist/{petsRepository-BJsJ4cju.d.cts → petsRepository-BnVre3q7.d.cts} +1 -1
- package/dist/{petsRepository-CuYZZaI5.d.ts → petsRepository-BwxmfX_s.d.ts} +1 -1
- package/dist/{ports-ZmJYgd5I.d.cts → ports-BPKxFOSe.d.cts} +4 -4
- package/dist/{ports-nXHf50_X.d.ts → ports-Di9rdLO9.d.ts} +4 -4
- package/dist/records/depth/index.d.cts +7 -7
- package/dist/records/depth/index.d.ts +7 -7
- package/dist/records/index.d.cts +9 -9
- package/dist/records/index.d.ts +9 -9
- package/dist/{requestFunnel-Ve9BshTB.d.ts → requestFunnel-CiSX2pun.d.ts} +2 -2
- package/dist/{requestFunnel-C_cZXhIA.d.cts → requestFunnel-DMR_1T3O.d.cts} +2 -2
- package/dist/{runtimeTypes-D155OlBW.d.cts → runtimeTypes-2gJ5hYoE.d.cts} +4 -4
- package/dist/{runtimeTypes-ByKsp8hm.d.ts → runtimeTypes-CkMFCbHW.d.ts} +4 -4
- package/dist/server/events/index.cjs +1 -1
- package/dist/server/events/index.d.cts +2 -2
- package/dist/server/events/index.d.ts +2 -2
- package/dist/server/events/index.js +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.cts +3 -3
- package/dist/server/index.d.ts +3 -3
- package/dist/server/index.js +1 -1
- package/dist/televet/booking/index.d.cts +6 -6
- package/dist/televet/booking/index.d.ts +6 -6
- package/dist/testing/index.d.cts +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/rn/index.d.cts +7 -7
- package/dist/testing/rn/index.d.ts +7 -7
- package/dist/testing/web/index.d.cts +7 -7
- package/dist/testing/web/index.d.ts +7 -7
- package/dist/{timelineRows-DXpjECfA.d.ts → timelineRows-D3171ksh.d.ts} +1 -1
- package/dist/{timelineRows-BNF43SXK.d.cts → timelineRows-DDnz4gx2.d.cts} +1 -1
- package/dist/{useRecordsDepth-CARTuHKh.d.cts → useRecordsDepth-COJ0wSYK.d.cts} +1 -1
- package/dist/{useRecordsDepth-fPSv-GXU.d.ts → useRecordsDepth-Z9FF5X4E.d.ts} +1 -1
- package/dist/{view-Dc-JlFkf.d.ts → view-DoQEHXJR.d.ts} +2 -2
- package/dist/{view-DGPaVno8.d.cts → view-nRy6SitU.d.cts} +2 -2
- package/dist/web/consent/index.d.cts +5 -5
- package/dist/web/consent/index.d.ts +5 -5
- package/dist/web/index.cjs +2 -2
- package/dist/web/index.d.cts +14 -14
- package/dist/web/index.d.ts +14 -14
- package/dist/web/index.js +2 -2
- package/dist/web/notifications/index.d.cts +3 -3
- package/dist/web/notifications/index.d.ts +3 -3
- package/dist/web/records/depth/index.d.cts +7 -7
- package/dist/web/records/depth/index.d.ts +7 -7
- package/dist/web/records/index.d.cts +9 -9
- package/dist/web/records/index.d.ts +9 -9
- package/dist/web/televet/booking/index.cjs +1 -1
- package/dist/web/televet/booking/index.d.cts +15 -49
- package/dist/web/televet/booking/index.d.ts +15 -49
- package/dist/web/televet/booking/index.js +1 -1
- package/dist/web/televet/index.cjs +1 -1
- package/dist/web/televet/index.d.cts +11 -3
- package/dist/web/televet/index.d.ts +11 -3
- package/dist/web/televet/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var Mr=Object.defineProperty;var n=(e,r)=>Mr(e,"name",{value:r,configurable:true});var we=Symbol.for("@everfur/sdk/televet");function x(){let e=globalThis,r=e[we];if(r!==void 0)return r;let t={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[we]=t,t}n(x,"televetGlobal");function U(e){let r=x();r.snapshot=Object.freeze({...r.snapshot,...e});for(let t of [...r.listeners])try{t();}catch{}}n(U,"publish");function Fe(e){x().presenter=e;}n(Fe,"setTelevetPresenter");function Se(){return x().presenter!==null}n(Se,"hasTelevetPresenter");function B(e){let r=x().presenter;if(r===null)return "absent";try{return r(e)===!1?"declined":"presented"}catch(t){return console.warn("[everfur] Your registerEverfurTelevetFlow presenter threw; the in-app visit opened instead.",t),"threw"}}n(B,"callTelevetPresenter");function ke(e){let r=x();return r.listeners.add(e),()=>{r.listeners.delete(e);}}n(ke,"subscribeTelevetExperience");function ne(){return x().snapshot}n(ne,"televetExperienceSnapshot");function Lr(){return x().hosts.length>0}n(Lr,"hasTelevetHost");function Oe(e){if(!Lr())return false;let r=Object.freeze({...e});return U({request:r,serial:x().snapshot.serial+1}),true}n(Oe,"presentTelevetExperience");function oe(){x().snapshot.request!==null&&U({request:null});}n(oe,"dismissTelevetExperience");function Ve(){let e=x(),r=e.nextHost;return e.nextHost+=1,e.hosts=[...e.hosts,r],U({activeHost:e.hosts[0]??null}),r}n(Ve,"claimTelevetHost");function Ie(e){let r=x();r.hosts=r.hosts.filter(o=>o!==e);let t=r.hosts[0]??null;U(t===null?{activeHost:t,request:null}:{activeHost:t});}n(Ie,"releaseTelevetHost");function Ur(e){Fe(e);}n(Ur,"registerEverfurTelevetFlow");function Br(){return Se()}n(Br,"hasEverfurTelevetFlow");function qr(e){return B(e)==="presented"}n(qr,"presentEverfurTelevetFlow");function ze(e){let r=null;return ()=>{if(r!==null)return r;let t=e();return r=t,t.then(void 0,()=>{r===t&&(r=null);}),t}}n(ze,"memoizeTelevetLoader");function je(e){let[r,t]=react.useState(null);react.useEffect(()=>{let d=Ve();return t(d),()=>{Ie(d);}},[]);let o=react.useSyncExternalStore(ke,ne,ne),a=r!==null&&o.activeHost===r?o.request:null,[u,s]=react.useState(null),l=a!==null&&u===null;return react.useEffect(()=>{if(!l)return;let d=true;return e().then(b=>{d&&s(()=>b);},b=>{d&&(console.warn("[everfur] The in-app vet visit could not load its screens.",b),oe());}),()=>{d=false;}},[l,e]),a===null||u===null?null:{module:u,request:a,serial:o.serial,dismiss:oe}}n(je,"useTelevetExperienceHost");var Wr=ze(()=>import('@everfur/sdk/web/televet/booking'));function q({onAddToCalendar:e}){let
|
|
1
|
+
'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var Mr=Object.defineProperty;var n=(e,r)=>Mr(e,"name",{value:r,configurable:true});var we=Symbol.for("@everfur/sdk/televet");function x(){let e=globalThis,r=e[we];if(r!==void 0)return r;let t={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[we]=t,t}n(x,"televetGlobal");function U(e){let r=x();r.snapshot=Object.freeze({...r.snapshot,...e});for(let t of [...r.listeners])try{t();}catch{}}n(U,"publish");function Fe(e){x().presenter=e;}n(Fe,"setTelevetPresenter");function Se(){return x().presenter!==null}n(Se,"hasTelevetPresenter");function B(e){let r=x().presenter;if(r===null)return "absent";try{return r(e)===!1?"declined":"presented"}catch(t){return console.warn("[everfur] Your registerEverfurTelevetFlow presenter threw; the in-app visit opened instead.",t),"threw"}}n(B,"callTelevetPresenter");function ke(e){let r=x();return r.listeners.add(e),()=>{r.listeners.delete(e);}}n(ke,"subscribeTelevetExperience");function ne(){return x().snapshot}n(ne,"televetExperienceSnapshot");function Lr(){return x().hosts.length>0}n(Lr,"hasTelevetHost");function Oe(e){if(!Lr())return false;let r=Object.freeze({...e});return U({request:r,serial:x().snapshot.serial+1}),true}n(Oe,"presentTelevetExperience");function oe(){x().snapshot.request!==null&&U({request:null});}n(oe,"dismissTelevetExperience");function Ve(){let e=x(),r=e.nextHost;return e.nextHost+=1,e.hosts=[...e.hosts,r],U({activeHost:e.hosts[0]??null}),r}n(Ve,"claimTelevetHost");function Ie(e){let r=x();r.hosts=r.hosts.filter(o=>o!==e);let t=r.hosts[0]??null;U(t===null?{activeHost:t,request:null}:{activeHost:t});}n(Ie,"releaseTelevetHost");function Ur(e){Fe(e);}n(Ur,"registerEverfurTelevetFlow");function Br(){return Se()}n(Br,"hasEverfurTelevetFlow");function qr(e){return B(e)==="presented"}n(qr,"presentEverfurTelevetFlow");function ze(e){let r=null;return ()=>{if(r!==null)return r;let t=e();return r=t,t.then(void 0,()=>{r===t&&(r=null);}),t}}n(ze,"memoizeTelevetLoader");function je(e){let[r,t]=react.useState(null);react.useEffect(()=>{let d=Ve();return t(d),()=>{Ie(d);}},[]);let o=react.useSyncExternalStore(ke,ne,ne),a=r!==null&&o.activeHost===r?o.request:null,[u,s]=react.useState(null),l=a!==null&&u===null;return react.useEffect(()=>{if(!l)return;let d=true;return e().then(b=>{d&&s(()=>b);},b=>{d&&(console.warn("[everfur] The in-app vet visit could not load its screens.",b),oe());}),()=>{d=false;}},[l,e]),a===null||u===null?null:{module:u,request:a,serial:o.serial,dismiss:oe}}n(je,"useTelevetExperienceHost");var Wr=ze(()=>import('@everfur/sdk/web/televet/booking'));function q({onAddToCalendar:e,onPickMedia:r}){let t=je(Wr);if(t===null)return null;let{EverfurTelevetDialog:o}=t.module;return jsxRuntime.jsx(o,{request:t.request,onClose:t.dismiss,...e?{onAddToCalendar:e}:{},...r?{onPickMedia:r}:{}},t.serial)}n(q,"EverfurTelevetHost");var De=n(e=>e.toISOString().replace(/\.\d+|[-:]/g,""),"utcStamp"),Ne=n(e=>e.replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\r?\n/g,"\\n"),"text");function Gr(e){let r=new TextEncoder,t=[],o="",i=0,a=75;for(let u of e){let s=r.encode(u).length;i+s>a&&(t.push(o),o="",i=0,a=74),o+=u,i+=s;}return t.push(o),t.join(`\r
|
|
2
2
|
`)}n(Gr,"fold");var Me=n(e=>e instanceof Date&&!Number.isNaN(e.getTime()),"usable");function Le(e){let r=e.key.trim(),t=e.title.trim();if(!r||!t||!Me(e.startDate)||!Me(e.endDate)||e.endDate.getTime()<=e.startDate.getTime())return null;let o=De(e.startDate),i=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//Everfur//Everfur SDK//EN","CALSCALE:GREGORIAN","METHOD:PUBLISH","BEGIN:VEVENT",`UID:${Ne(r)}@everfur.com`,`DTSTAMP:${o}`,`DTSTART:${o}`,`DTEND:${De(e.endDate)}`,`SUMMARY:${Ne(t)}`,"END:VEVENT","END:VCALENDAR"].map(Gr).join(`\r
|
|
3
3
|
`),a=r.replace(/^televet-consult-/,"").replace(/[^A-Za-z0-9_-]/g,"").slice(0,40);return {href:`data:text/calendar;charset=utf-8,${encodeURIComponent(`${i}\r
|
|
4
4
|
`)}`,filename:a?`everfur-visit-${a}.ics`:"everfur-visit.ics"}}n(Le,"televetCalendarFile");var Kr=n(async e=>{let r=Le(e);if(r===null||typeof document>"u")return false;let t=document.createElement("a");return t.href=r.href,t.download=r.filename,t.style.display="none",document.body.appendChild(t),t.click(),t.remove(),"handed-off"},"downloadTelevetCalendarFile");var ie=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(ie.map(e=>e.wireCode));var $r=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),Be=Object.freeze(ie.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:$r[e.wireCode]}))),Qr=new Map(Be.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Xr=Object.freeze(["http_envelope",...[...new Set(Be.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function H(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...Xr]){let i=Qr.get(o+t);if(i)return i}}n(H,"contractErrorFor");function Jr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(Jr,"contractDocUrl");function qe(e){return null}n(qe,"publishedDocUrl");var Zr=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function He(e){return Zr[e]}n(He,"categoryFor");function We(e){let r=H(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":case "TELEVETRATELIMITED":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}n(We,"fromWire");var et=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function ae(e){return et.has(e)}n(ae,"isAutoRetryable");var rt=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function Ye(e){return ae(e)||rt.has(e)}n(Ye,"isRetryableCode");var tt=500,se=8e3,Ge=4;function Ke(e,r=Math.random){let t=Math.max(0,e),o=Math.min(tt*2**t,se);return Math.floor(r()*o)}n(Ke,"backoffDelayMs");var nt=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function le(e){return nt[e]}n(le,"userFacingError");function $e(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n($e,"defineHidden");var ot=/^[a-z][a-z0-9_]{0,63}$/;function k(e,r){let t=H(r?.wireCode,r?.wireEnvelope),o={code:e,category:He(e),retryable:r?.retryable??Ye(e),displayMessage:le(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&ot.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&$e(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&$e(o,"raw",r.raw),Object.freeze(o)}n(k,"makeEverfurError");function ue(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(ue,"ok");function T(e){return Object.freeze({ok:false,error:e})}n(T,"err");var W=class W extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,W.prototype);}};n(W,"EverfurConfigError");var N=W;function Qe(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}n(Qe,"errorFrame");function st(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(st,"authHeaders");function M(e,r){return {...e,headers:{...lt(e.headers),...st(r)}}}n(M,"withAuthHeaders");function lt(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let i=t.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(r[t]=o);}return r}n(lt,"stripAuthHeaders");async function Xe(e,r){if(r.mode==="anonymous")return r.transport.request(M(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return T(de())}let o=await r.transport.request(M(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let i;try{i=await r.identity.currentToken({forceRefresh:!0});}catch{return T(de())}let a=await r.transport.request(M(e,{mode:"personalized",token:i,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !a.ok&&a.error.httpStatus===401?T(de(a.error.httpStatus)):a}n(Xe,"authedSend");function de(e){return k("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(de,"authRejectedError");function Je(e){return k("internalError",{retryable:true,wireMessage:ut(e)})}n(Je,"networkError");function ut(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(ut,"describeCause");var dt=3e4,ct=se*2,ft="idempotency-key",pt=new Set(["POST","PUT","PATCH","DELETE"]),yt=Object.freeze({onEvent(){}}),mt=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function vt(e){let r=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return r.length===0?null:`efs_${r}`.slice(0,128)}n(vt,"seededIdempotencyKey");function er(e){let r=e.observer??yt,t=e.timers??mt,o=e.rng??Math.random,i=e.sleep??((f,p)=>Ot(f,t,p)),a=e.maxAttempts??Ge,u=e.unaryTimeoutMs??dt,s=e.newIdempotencyKey??Et(),l=n(f=>{try{r.onEvent(f);}catch{}},"emit");async function d(f,p,y){let h=y?.maxAttempts,c=Math.max(1,h??a),O=y?.idempotent??pt.has(p.method),w=y?.idempotencyKey===void 0?null:vt(y.idempotencyKey),_=O?w??s():null,F=bt(p,_),I=0;for(;;){let E=n(R=>Object.freeze({call:f,method:p.method,path:p.path,attempt:I,..._?{idempotencyKey:_}:{},...R}),"stamp");l(E({phase:"attempt"}));let A=St(u,t),P=kt(A.signal,p.signal),z;try{z=await Xe({...F,signal:P.signal},e.auth);}catch(R){z=T(Je(R));}finally{P.dispose(),A.cancel();}if(z.ok)return l(E({phase:"settled",ok:true,reason:"ok"})),z;let S=z.error,m=ht(S,I,{maxAttempts:c,rng:o,now:t.now(),aborted:p.signal?.aborted===true,...h!==void 0?{perCallMaxAttempts:h}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),g={ok:false,code:S.code,reason:m.reason,...S.httpStatus!==void 0?{httpStatus:S.httpStatus}:{},...S.requestId!==void 0?{requestId:S.requestId}:{}};if(!m.retry)return l(E({phase:"settled",...g})),T(S);if(l(E({phase:"retry",...g,delayMs:m.delayMs})),await i(m.delayMs,p.signal),p.signal?.aborted===true)return l(E({phase:"settled",...g,reason:"aborted"})),T(S);I+=1;}}n(d,"send");async function b(f){return M(f,await Ft(e.auth))}n(b,"authorize");async function*v(f,p,y){l(Object.freeze({call:f,phase:"stream.open",method:p.method,path:p.path,attempt:0}));try{yield*e.auth.transport.stream(p,y);}catch{yield Qe({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(v,"stream"),Object.freeze({send:d,authorize:b,stream:v})}n(er,"createRequestFunnel");function bt(e,r){let t={};for(let[o,i]of Object.entries(e.headers??{}))o.toLowerCase()!==ft&&(t[o]=i);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(bt,"assembleHeaders");function Et(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Et,"defaultIdempotencyKeyFactory");var gt=10;function ht(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=_t(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!ae(e.code))return {retry:false,reason:"terminal-code"};let i=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let u=n(()=>{if(t.policy===void 0)return null;let d;try{d=t.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(gt,Math.floor(d)))},"policyCeiling"),s=t.perCallMaxAttempts??u()??t.maxAttempts;if(r+1>=s)return {retry:false,reason:"attempts-exhausted"};let l=Rt(e,t.now);return l!==null?l>ct?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:l}:{retry:true,reason:i,delayMs:Ke(r,t.rng)}}n(ht,"decideRetry");function _t(e){let r=e.code==="unknown"?We(wt(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(_t,"throttleKind");function Rt(e,r){let t=Ct(e.raw);if(t!==null){let i=t-r;return i>0?i:0}let o=Tt(e.raw);return o===null?null:Math.round(o*1e3)}n(Rt,"retryOverrideMs");function Tt(e){for(let r of ce(e)){let t=r.retry_after_seconds;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t}return null}n(Tt,"findRetryAfterSeconds");function Ct(e){for(let r of ce(e)){let t=r.resets_at,o=xt(t);if(o!==null)return o}return null}n(Ct,"findResetsAt");function ce(e){if(!Ze(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];Ze(o)&&r.push(o);}return r}n(ce,"candidateScopes");function xt(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(xt,"parseInstantMs");function wt(e){for(let r of ce(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(wt,"rawWireCode");function Ze(e){return typeof e=="object"&&e!==null}n(Ze,"isRecord");async function Ft(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Ft,"resolveDeviceAuth");function St(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(St,"boundedSignal");function kt(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let i=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),r.addEventListener("abort",i,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",i),r.removeEventListener("abort",i);},"dispose")}}n(kt,"mergeSignals");function Ot(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let i=r.setTimeout(()=>{t?.removeEventListener("abort",a),o();},e),a=n(()=>{r.clearTimeout(i),o();},"onAbort");t?.addEventListener("abort",a,{once:true});})}n(Ot,"delayAbortable");var Y=Object.freeze(["visit","join","summary","messages"]);function G(e){return typeof e=="string"&&Y.includes(e)}n(G,"isVetVisitIntent");var Vt="/widget/v1/televet/handoffs",It="/widget/v1/televet/availability",At="/widget/v1/televet/chat-entry",Pt=/^[a-z0-9][a-z0-9_-]{0,39}$/,sr=/^[A-Za-z0-9_-]{22}$/,rr="everfur_flow",tr=32,nr=128,or=64;function K(e){let r=e.httpStatus;switch(e.code){case "sessionRequired":return "sessionRequired";case "authExpired":case "authRejected":return "authRejected";case "sdkUpdateRequired":return "sdkUpdateRequired";case "validationFailed":return "invalidRequest";case "rateLimited":case "quotaExceeded":return "rateLimited";}return r===void 0?e.code==="internalError"?"network":"unknown":r===429?"rateLimited":r===404?"unavailable":r===403?"accessDenied":r===401?"authRejected":r===400||r===422?"invalidRequest":r>=500?"serverError":"unknown"}n(K,"vetVisitErrorReasonOf");function ir(e){return T(k("validationFailed",{retryable:false,wireMessage:e}))}n(ir,"invalid");function fe(e){return T(k("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}n(fe,"unusable");function zt(e,r){let t={};e!==void 0&&(t.pet_ref=e);let o=r?.returnTo;if(o!=null){if(typeof o!="string"||!Pt.test(o))return {ok:false,message:"returnTo must be a registered return destination key"};t.return_to=o;}let i=r?.entry;if(i!=null){if(i!=="chat"||e===void 0)return {ok:false,message:"entry 'chat' needs the pet the chat is about"};t.entry=i;}let a=r?.visitRef,u=r?.intent,s=a!=null;if(s){let l=typeof a=="string"?a.trim():"";if(l.length<1||[...l].length>or)return {ok:false,message:`visitRef must be 1..${or} characters`};t.visit_ref=l;}if(u!=null){if(!s)return {ok:false,message:"intent needs the visitRef it opens"};if(!G(u))return {ok:false,message:`intent must be one of ${Y.join(", ")}`};t.intent=u;}return {ok:true,body:t}}n(zt,"handoffBody");function jt(e){if(typeof e!="object"||e===null)return null;let{visit_ref:r,intent:t}=e;return typeof r!="string"||r.length===0||!G(t)?null:Object.freeze({visitRef:r,intent:t})}n(jt,"parseVisitEcho");function lr(e){let r=e.funnel??er({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=e.telemetry,o=n(i=>(ar(t,"televet.visit.handoff_failed",{reason:K(i)}),T(i)),"failed");return {async createHandoff(i,a){let u;if(i!=null){let c=typeof i=="string"?[...i].length:0;if(c<1||c>nr)return o(k("validationFailed",{retryable:false,wireMessage:`pet_ref must be 1..${nr} characters`}));u=i;}let s=zt(u,a);if(!s.ok){let c=ir(s.message);return c.ok?c:o(c.error)}let l=s.body,d=await r.send("televet.visit.handoff",{method:"POST",path:Vt,body:l},{idempotent:false,maxAttempts:1});if(!d.ok)return o(d.error);let b=Nt(d.value),v=l.return_to!==void 0,f=v?d.value?.flow_id:void 0;if(v&&(typeof f!="string"||!sr.test(f))){let c=fe("the handoff response carried no usable return flow id");return c.ok?c:o(c.error)}let p=l.visit_ref!==void 0,y=p?jt(d.value?.visit):null;if(p&&y===null){let c=fe("the handoff response did not confirm the visit it opens");return c.ok?c:o(c.error)}let h=b===null?null:Object.freeze({...b,...v?{flowId:f}:{},...y!==null?{visit:y}:{}});return h===null?o(k("internalError",{retryable:false,httpStatus:502,wireMessage:"the handoff response carried no usable visit url"})):(ar(t,"televet.visit.handoff_created",{pet_scoped:l.pet_ref!==void 0}),ue(h))},async checkAvailability(i){if(typeof i!="string"||i.length>tr)return ir(`state must be at most ${tr} characters`);let a=await r.send("televet.visit.availability",{method:"POST",path:It,body:{state:i}},{idempotent:false,maxAttempts:1});if(!a.ok)return T(a.error);let u=a.value?.available;return typeof u!="boolean"?fe("the availability response carried no usable answer"):ue(Object.freeze({available:u}))},async chatEntryOpen(){try{let i=await r.send("televet.visit.chat_entry",{method:"GET",path:At},{maxAttempts:1});return i.ok&&i.value?.open===!0}catch{return false}}}}n(lr,"createVetVisitController");function Dt(e){if(typeof e!="string")return null;let r=e.indexOf("#"),t=r<0?e:e.slice(0,r),o=t.indexOf("?");if(o<0)return null;let i=t.slice(o+1).split("&").filter(a=>a.startsWith(`${rr}=`)).map(a=>a.slice(rr.length+1));return i.length!==1||!sr.test(i[0]??"")?null:Object.freeze({flowId:i[0]})}n(Dt,"parseVetVisitReturn");function Nt(e){if(typeof e!="object"||e===null)return null;let{url:r,expires_at:t}=e;return typeof r!="string"||typeof t!="string"||t.length===0||!Bt(r)?null:Object.freeze({url:r,expiresAt:t})}n(Nt,"parseHandoff");var Mt=new Set(["localhost","127.0.0.1","[::1]"]),Lt=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/,Ut=/[\s\u0000-\u001f\u007f]/;function Bt(e){if(Ut.test(e))return false;let r=Lt.exec(e);if(r===null)return false;let t=(r[1]??"").toLowerCase(),o=r[2]??"";if(o.length===0||o.includes("@"))return false;let i=o.replace(/:\d+$/,"").toLowerCase(),a=t==="https",u=t==="http"&&Mt.has(i);if(!a&&!u)return false;let s=e.indexOf("#");if(s<0)return false;let l=e.slice(s);return l.startsWith("#h=")&&l.length>3}n(Bt,"isOpenableVisitUrl");function ar(e,r,t){if(e)try{e.track(r,t);}catch{}}n(ar,"safeTrack");var ur=Symbol.for("@everfur/sdk#EverfurContext@v1"),dr=globalThis,cr=dr[ur]??(dr[ur]=react.createContext(null));cr.displayName??="EverfurContext";function $(){let e=react.useContext(cr);if(e===null)throw new N("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n($,"useEverfurContext");var Wt=Object.freeze({chat:Object.freeze(["chat.message.create"]),records:Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:Object.freeze(["records.clinic.create"]),video:Object.freeze(["video.gait.execute"]),photo:Object.freeze(["photo.checkup.execute"]),animations:Object.freeze(["animations.state.read"]),televet:Object.freeze(["televet.visit.create"])});function Yt(e){return Wt[e]}n(Yt,"requires");function fr(e,r,t){let o=Yt(e),i=new Map;for(let s of r)i.set(s.resource,s);if(t?.isPending===true&&o.some(s=>!i.has(s)))return pe({name:e,enabled:false,isPending:true,limits:{}});let a=Gt(o,i);return o.filter(s=>i.get(s)?.granted!==true).length===0?pe({name:e,enabled:true,isPending:false,limits:a}):pe({name:e,enabled:false,isPending:false,limits:a,disabled:Kt(o,i)})}n(fr,"decideCapability");function Gt(e,r){let t={};for(let o of e){let i=r.get(o)?.limits;if(i)for(let[a,u]of Object.entries(i)){let s=t[a];t[a]=s===void 0?u:Math.min(s,u);}}return t}n(Gt,"mergeLimits");function Kt(e,r){for(let t of e){let o=r.get(t)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:le("accessDenied"),level:"user_entitlement",recoverable:false})}n(Kt,"disabledFor");function pe(e){let r={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(r.disabled=e.disabled),Object.freeze(r)}n(pe,"freezeDecision");function pr(e){let{runtime:r}=$(),t=r.entitlements,o=react.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);return react.useMemo(()=>fr(e,o.decisions,{isPending:o.isPending}),[e,o])}n(pr,"useCapability");function yr(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(yr,"reportHostFailure");function Xt(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(Xt,"isThenable");function j(e,...r){if(typeof e=="function")try{let t=e(...r);return Xt(t)&&Promise.resolve(t).then(void 0,yr),t}catch(t){yr(t);return}}n(j,"callHost");var mr=false;function Q(e,r){return r!==void 0?(j(r,e),"onStartInApp"):B(e)==="presented"?"presenter":Oe(e)?"experience":(mr||(mr=true,console.warn("[everfur] A vet visit had nowhere to open: mount <EverfurTelevetHost /> in your EverfurProvider, or pass prefer: 'redirect'.")),null)}n(Q,"openVetVisitInApp");var ye=Object.freeze({status:"idle",error:null,errorReason:null});function Zt(e,r,t){let{usState:o,chat:i,scope:a}=t,u=r&&(o!==null||i),s=`${o??""}|${i?"chat":""}`,[l,d]=react.useState(null);if(react.useEffect(()=>{if(!u)return;let v=true,f=e.current;return d(null),n(async()=>{try{if(i&&!(f.chatEntryOpen&&await f.chatEntryOpen()))return !1;if(o===null)return !0;if(!f.checkAvailability)return !1;let y=await f.checkAvailability(o);return y.ok&&y.value.available}catch{return false}},"ask")().then(y=>{v&&d({key:s,open:y});}),()=>{v=false;}},[u,s,o,i,a,e]),!u)return null;let b=l!==null&&l.key===s;return {open:b&&l.open,pending:!b}}n(Zt,"usePreflight");var en=Object.freeze({status:"opening",error:null,errorReason:null});function Er(e,r={}){let{runtime:t,userRef:o,scopeEpoch:i}=$(),a=pr("televet"),u=a.enabled&&o!==null,s=r.usState??null,l=r.entry==="chat",d=r.petRef??null,b=r.prefer==="redirect",v=react.useMemo(()=>{if(r.controller)return r.controller;let{services:m}=t.registry;return lr({auth:m.authFor(o),telemetry:m.telemetry,...m.errorPolicy?{errorPolicy:m.errorPolicy}:{}})},[t,o,i,r.controller]),f=react.useRef(v);f.current=v;let p=react.useMemo(()=>({runtime:t,userRef:o,scopeEpoch:i}),[t,o,i]),y=Zt(f,u,{usState:s,chat:l,scope:p}),h=u&&(y===null||y.open)&&(!l||d!==null),c=r.returnTo??null,[O,w]=react.useState(ye),_=react.useRef(null),F=react.useRef({runtime:t,userRef:o,scopeEpoch:i});F.current={runtime:t,userRef:o,scopeEpoch:i};let I=react.useRef(v);I.current=v;let E=react.useRef(h);E.current=h;let A=react.useCallback((m,g)=>{if(_.current)return _.current;let R=n((C,D)=>(w({status:C==="cancelled"?"idle":"error",error:D,errorReason:C==="cancelled"?null:C}),Object.freeze({opened:false,reason:C,error:D})),"fail");if(!E.current)return Promise.resolve(R("unavailable",null));let V=e.prepare();if(!V.ok)return Promise.resolve(R(V.reason,null));let ee=F.current,Re=I.current;w(en);let re=(async()=>{let C,D={...c!==null?{returnTo:c}:{},...l?{entry:"chat"}:{},...g!==null?{visitRef:g.visitRef}:{},...g!==null&&g.intent!==null&&g.intent!==void 0?{intent:g.intent}:{}},Te=Object.keys(D).length===0?void 0:D,Ce=m===void 0?d:m;try{C=await(Te===void 0?Re.createHandoff(Ce):Re.createHandoff(Ce,Te));}catch{return e.abandon(V.value),R("unknown",null)}let te=F.current;if(te.runtime!==ee.runtime||te.userRef!==ee.userRef||te.scopeEpoch!==ee.scopeEpoch)return e.abandon(V.value),R("cancelled",null);if(!C.ok)return e.abandon(V.value),R(K(C.error),C.error);let xe=await e.finish(V.value,C.value);return xe!==null?R(xe,null):(w(ye),Object.freeze(C.value.flowId===void 0?{opened:true}:{opened:true,flowId:C.value.flowId}))})().finally(()=>{_.current===re&&(_.current=null);});return _.current=re,re},[e,d,c,l]),P=react.useCallback((m,g)=>{if(!E.current)return w({status:"error",error:null,errorReason:"unavailable"}),Promise.resolve(Object.freeze({opened:false,reason:"unavailable",error:null}));let R=m===void 0?d:m,V={...R!==null?{petRef:R}:{},...s!==null?{usState:s}:{},...g!==null?{visitRef:g.visitRef,intent:g.intent}:{}};return Q(V)===null?(w({status:"error",error:null,errorReason:"unavailable"}),Promise.resolve(Object.freeze({opened:false,reason:"unavailable",error:null}))):(w(ye),Promise.resolve(Object.freeze({opened:true})))},[d,s]),z=react.useCallback(m=>b?A(m,null):P(m,null),[b,A,P]),S=react.useCallback((m,g)=>b?A(void 0,{visitRef:m,intent:g??null}):P(void 0,{visitRef:m,intent:g??null}),[b,A,P]);return {available:h,isPending:a.isPending||(y?.pending??false),status:O.status,error:O.error,errorReason:O.errorReason,open:z,openVisit:S}}n(Er,"useVetVisitWith");function gr(e){try{e.closed||e.close();}catch{}}n(gr,"closeQuietly");var rn=Object.freeze({prepare(){let e=null;try{e=typeof window>"u"?null:window.open("about:blank","_blank");}catch{e=null;}if(e===null)return {ok:false,reason:"popupBlocked"};try{e.opener=null;}catch{}return {ok:true,value:{tab:e}}},async finish({tab:e},r){if(e.closed)return "cancelled";try{return e.location.replace(r.url),null}catch{return gr(e),"popupBlocked"}},abandon({tab:e}){gr(e);}});function me(e){return Er(rn,e)}n(me,"useVetVisit");function tn(e,r){if(e===void 0)return {};let t={};return e.backgroundColor!==void 0&&(t.backgroundColor=e.backgroundColor),e.borderColor!==void 0&&(t.borderColor=e.borderColor,t.borderWidth=r??1),e.borderRadius!==void 0&&(t.borderRadius=e.borderRadius),t}n(tn,"slotBox");function hr(e){return e?.textColor===void 0?{}:{color:e.textColor}}n(hr,"slotText");function _r(e,r){let t=tn(e,r),o={};return t.backgroundColor!==void 0&&(o.backgroundColor=t.backgroundColor),t.borderColor!==void 0&&(o.border=`${t.borderWidth??1}px solid ${t.borderColor}`),t.borderRadius!==void 0&&(o.borderRadius=t.borderRadius),o}n(_r,"slotBoxCss");var Rr=Object.freeze({visitButton:"Vet"});function Ee(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))Ee(e[r]);}return e}n(Ee,"deepFreeze");var nn=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Cr={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},xr={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Tr={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},on={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},an={regular:"400",medium:"500",bold:"700"},sn={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},ln=0,J="System",Z="monospace",un=["content","heading","control","compact","badge"];function dn(e){let r={};for(let t of un)r[t]=e;return r}n(dn,"authoredTierSizes");function wr(){return {family:J,mono:Z,fontUrl:null,families:{regular:J,medium:J,bold:J,mono:Z,monoMedium:Z,monoBold:Z},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Tr,tierSizes:dn(Tr),lineHeight:on,weight:an,letterSpacing:sn,scale:1,maxScale:ln,scaleCaps:nn}}n(wr,"baseType");var Fr={},ve=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function be(e){return `cubic-bezier(${e.join(", ")})`}n(be,"cssCubicBezier");var Sr={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:be(ve.standard),emphasized:be(ve.emphasized),exit:be(ve.exit)},reducedMotion:false},cn={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},kr=Ee({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:cn,space:Cr,radius:xr,type:wr(),motion:Sr,slots:Fr}),fn={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};Ee({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:fn,space:Cr,radius:xr,type:wr(),motion:Sr,slots:Fr});var Or=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Vr=globalThis,ge=Vr[Or]??(Vr[Or]=react.createContext(kr));ge.displayName??="EverfurThemeContext";function he(){return react.useContext(ge)}n(he,"useEverfurTheme");var Ir=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var Ar='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',mn="System";function vn(e){let r=e.trim();return r.length===0||r===mn?Ar:`${Pr(r)}, ${Ar}`}n(vn,"cssFontFamily");function bn(e){let r=e.trim();return r.length===0||r==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${Pr(r)}, ui-monospace, Menlo, Consolas, monospace`}n(bn,"cssMonoFamily");function Pr(e){return `"${e.replace(/[\\"]/g,"\\$&")}"`}n(Pr,"quote");function zr(e,r){let t=e.type,o=t.families[r];return {fontFamily:r==="mono"||r==="monoMedium"||r==="monoBold"?bn(o):vn(o),fontWeight:t.namedFaces[r]?t.weight.regular:t.weight[Ir[r]]}}n(zr,"faceCss");var jr=44,hn=.6;function _n(e){let{petRef:r,children:t,onOpened:o,onError:i,style:a,className:u,controller:s,returnTo:l,usState:d,entry:b,visitRef:v,intent:f,onStartInApp:p,prefer:y}=e,h=y==="redirect",c=me({...l!==void 0?{returnTo:l}:{},...d!==void 0?{usState:d}:{},...b!==void 0?{entry:b}:{},...r!==void 0?{petRef:r}:{},...s!==void 0?{controller:s}:{},prefer:h?"redirect":"in-app"}),O=he(),w=react.useMemo(()=>Rn(O),[O]),_=react.useRef(false);if(!c.available)return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[null,jsxRuntime.jsx(q,{})]});let F=c.status==="opening";return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("button",{type:"button",onClick:n(()=>{if(!(F||_.current)){if(!h){let E={...r!==void 0?{petRef:r}:{},...d!==void 0?{usState:d}:{},...v!=null?{visitRef:v,intent:f??null}:{}};Q(E,p)===null&&j(i,"unavailable",null);return}_.current=true,(v==null?c.open():c.openVisit(v,f??null)).then(E=>{E.opened?j(o,E.flowId??null):E.reason!=="cancelled"&&j(i,E.reason,E.error);}).finally(()=>{_.current=false;});}},"onClick"),"aria-busy":F,"aria-disabled":F,className:u,style:{...w,...F?{opacity:hn,cursor:"progress"}:null,...a},children:t??Rr.visitButton}),jsxRuntime.jsx(q,{})]})}n(_n,"VetVisitButton");function Rn(e){let{color:r,space:t,radius:o,type:i,slots:a}=e;return {boxSizing:"border-box",minHeight:jr,minWidth:jr,display:"inline-flex",alignItems:"center",justifyContent:"center",margin:0,border:0,cursor:"pointer",padding:`${t.sm}px ${t.xl}px`,borderRadius:o.pill,backgroundColor:r.primary,color:r.onPrimary,...zr(e,"medium"),fontSize:i.size.body,..._r(a.vetVisitButton),...hr(a.vetVisitButton)}}n(Rn,"buttonStyle");exports.EverfurTelevetHost=q;exports.VET_VISIT_INTENTS=Y;exports.VetVisitButton=_n;exports.downloadTelevetCalendarFile=Kr;exports.hasEverfurTelevetFlow=Br;exports.isVetVisitIntent=G;exports.parseVetVisitReturn=Dt;exports.presentEverfurTelevetFlow=qr;exports.registerEverfurTelevetFlow=Ur;exports.televetCalendarFile=Le;exports.useVetVisit=me;exports.vetVisitErrorReasonOf=K;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { E as EverfurTelevetFlowRequest, a as EverfurTelevetFlowPresenter } from '../../televetGlobal-CEk0_cW9.cjs';
|
|
2
2
|
import { ReactNode, CSSProperties } from 'react';
|
|
3
|
-
import { T as TelevetCalendarWriter, a as TelevetCalendarEvent } from '../../
|
|
3
|
+
import { T as TelevetCalendarWriter, a as TelevetMediaPicker, b as TelevetCalendarEvent } from '../../IntakeMedia-CL_S2tZE.cjs';
|
|
4
|
+
export { c as TelevetIntakeMediaItem } from '../../IntakeMedia-CL_S2tZE.cjs';
|
|
4
5
|
import { U as UseVetVisitOptions, a as UseVetVisitState, V as VetVisitEntry, b as VetVisitErrorReason, c as VetVisitController } from '../../useVetVisit-Ds8f1peV.cjs';
|
|
5
6
|
export { d as VetVisitAvailability, e as VetVisitHandoff, f as VetVisitHandoffOptions, g as VetVisitHandoffVisit, h as VetVisitOpenResult, i as VetVisitReturn, j as VetVisitStatus, p as parseVetVisitReturn, v as vetVisitErrorReasonOf } from '../../useVetVisit-Ds8f1peV.cjs';
|
|
6
7
|
import { E as EverfurError } from '../../EverfurError-DmELDpXp.cjs';
|
|
@@ -41,9 +42,16 @@ interface EverfurTelevetHostProps {
|
|
|
41
42
|
* member a `.ics` file, as the consumer web app does.
|
|
42
43
|
*/
|
|
43
44
|
readonly onAddToCalendar?: TelevetCalendarWriter | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Picks photos or videos for the booking's intake step. Given, the intake step offers the attachment row and
|
|
47
|
+
* calls it with the remaining headroom; absent, the step has no attachment row. Reaches the intake step only
|
|
48
|
+
* from the host that renders, which is the first one mounted. The SDK opens no file dialog of its own: a
|
|
49
|
+
* typical picker is an `<input type="file">` whose files become object URLs.
|
|
50
|
+
*/
|
|
51
|
+
readonly onPickMedia?: TelevetMediaPicker | undefined;
|
|
44
52
|
}
|
|
45
53
|
/** Renders the in-page vet visit Everfur provides, while one is open. Renders nothing otherwise. */
|
|
46
|
-
declare function EverfurTelevetHost({ onAddToCalendar }: EverfurTelevetHostProps): ReactNode;
|
|
54
|
+
declare function EverfurTelevetHost({ onAddToCalendar, onPickMedia }: EverfurTelevetHostProps): ReactNode;
|
|
47
55
|
|
|
48
56
|
/** A built calendar file: the `href` a download anchor takes, and the name it saves under. */
|
|
49
57
|
interface TelevetCalendarFile {
|
|
@@ -128,4 +136,4 @@ interface VetVisitButtonProps {
|
|
|
128
136
|
/** Opens the Everfur vet visit, in the partner's own page by default. Renders nothing unless it is granted. */
|
|
129
137
|
declare function VetVisitButton(props: VetVisitButtonProps): ReactNode;
|
|
130
138
|
|
|
131
|
-
export { EverfurError, EverfurTelevetFlowPresenter, EverfurTelevetFlowRequest, EverfurTelevetHost, type EverfurTelevetHostProps, PetRef, TelevetCalendarEvent, type TelevetCalendarFile, TelevetCalendarWriter, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, downloadTelevetCalendarFile, hasEverfurTelevetFlow, presentEverfurTelevetFlow, registerEverfurTelevetFlow, televetCalendarFile, useVetVisit };
|
|
139
|
+
export { EverfurError, EverfurTelevetFlowPresenter, EverfurTelevetFlowRequest, EverfurTelevetHost, type EverfurTelevetHostProps, PetRef, TelevetCalendarEvent, type TelevetCalendarFile, TelevetCalendarWriter, TelevetMediaPicker, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, downloadTelevetCalendarFile, hasEverfurTelevetFlow, presentEverfurTelevetFlow, registerEverfurTelevetFlow, televetCalendarFile, useVetVisit };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { E as EverfurTelevetFlowRequest, a as EverfurTelevetFlowPresenter } from '../../televetGlobal-Cs9Wbqsy.js';
|
|
2
2
|
import { ReactNode, CSSProperties } from 'react';
|
|
3
|
-
import { T as TelevetCalendarWriter, a as TelevetCalendarEvent } from '../../
|
|
3
|
+
import { T as TelevetCalendarWriter, a as TelevetMediaPicker, b as TelevetCalendarEvent } from '../../IntakeMedia-BcjjUizr.js';
|
|
4
|
+
export { c as TelevetIntakeMediaItem } from '../../IntakeMedia-BcjjUizr.js';
|
|
4
5
|
import { U as UseVetVisitOptions, a as UseVetVisitState, V as VetVisitEntry, b as VetVisitErrorReason, c as VetVisitController } from '../../useVetVisit-BsjoDO-n.js';
|
|
5
6
|
export { d as VetVisitAvailability, e as VetVisitHandoff, f as VetVisitHandoffOptions, g as VetVisitHandoffVisit, h as VetVisitOpenResult, i as VetVisitReturn, j as VetVisitStatus, p as parseVetVisitReturn, v as vetVisitErrorReasonOf } from '../../useVetVisit-BsjoDO-n.js';
|
|
6
7
|
import { E as EverfurError } from '../../EverfurError-DmELDpXp.js';
|
|
@@ -41,9 +42,16 @@ interface EverfurTelevetHostProps {
|
|
|
41
42
|
* member a `.ics` file, as the consumer web app does.
|
|
42
43
|
*/
|
|
43
44
|
readonly onAddToCalendar?: TelevetCalendarWriter | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Picks photos or videos for the booking's intake step. Given, the intake step offers the attachment row and
|
|
47
|
+
* calls it with the remaining headroom; absent, the step has no attachment row. Reaches the intake step only
|
|
48
|
+
* from the host that renders, which is the first one mounted. The SDK opens no file dialog of its own: a
|
|
49
|
+
* typical picker is an `<input type="file">` whose files become object URLs.
|
|
50
|
+
*/
|
|
51
|
+
readonly onPickMedia?: TelevetMediaPicker | undefined;
|
|
44
52
|
}
|
|
45
53
|
/** Renders the in-page vet visit Everfur provides, while one is open. Renders nothing otherwise. */
|
|
46
|
-
declare function EverfurTelevetHost({ onAddToCalendar }: EverfurTelevetHostProps): ReactNode;
|
|
54
|
+
declare function EverfurTelevetHost({ onAddToCalendar, onPickMedia }: EverfurTelevetHostProps): ReactNode;
|
|
47
55
|
|
|
48
56
|
/** A built calendar file: the `href` a download anchor takes, and the name it saves under. */
|
|
49
57
|
interface TelevetCalendarFile {
|
|
@@ -128,4 +136,4 @@ interface VetVisitButtonProps {
|
|
|
128
136
|
/** Opens the Everfur vet visit, in the partner's own page by default. Renders nothing unless it is granted. */
|
|
129
137
|
declare function VetVisitButton(props: VetVisitButtonProps): ReactNode;
|
|
130
138
|
|
|
131
|
-
export { EverfurError, EverfurTelevetFlowPresenter, EverfurTelevetFlowRequest, EverfurTelevetHost, type EverfurTelevetHostProps, PetRef, TelevetCalendarEvent, type TelevetCalendarFile, TelevetCalendarWriter, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, downloadTelevetCalendarFile, hasEverfurTelevetFlow, presentEverfurTelevetFlow, registerEverfurTelevetFlow, televetCalendarFile, useVetVisit };
|
|
139
|
+
export { EverfurError, EverfurTelevetFlowPresenter, EverfurTelevetFlowRequest, EverfurTelevetHost, type EverfurTelevetHostProps, PetRef, TelevetCalendarEvent, type TelevetCalendarFile, TelevetCalendarWriter, TelevetMediaPicker, UseVetVisitOptions, UseVetVisitState, VetVisitButton, type VetVisitButtonProps, VetVisitController, VetVisitEntry, VetVisitErrorReason, VetVisitIntent, downloadTelevetCalendarFile, hasEverfurTelevetFlow, presentEverfurTelevetFlow, registerEverfurTelevetFlow, televetCalendarFile, useVetVisit };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {createContext,useMemo,useRef,useState,useEffect,useSyncExternalStore,useContext,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var Mr=Object.defineProperty;var n=(e,r)=>Mr(e,"name",{value:r,configurable:true});var we=Symbol.for("@everfur/sdk/televet");function x(){let e=globalThis,r=e[we];if(r!==void 0)return r;let t={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[we]=t,t}n(x,"televetGlobal");function U(e){let r=x();r.snapshot=Object.freeze({...r.snapshot,...e});for(let t of [...r.listeners])try{t();}catch{}}n(U,"publish");function Fe(e){x().presenter=e;}n(Fe,"setTelevetPresenter");function Se(){return x().presenter!==null}n(Se,"hasTelevetPresenter");function B(e){let r=x().presenter;if(r===null)return "absent";try{return r(e)===!1?"declined":"presented"}catch(t){return console.warn("[everfur] Your registerEverfurTelevetFlow presenter threw; the in-app visit opened instead.",t),"threw"}}n(B,"callTelevetPresenter");function ke(e){let r=x();return r.listeners.add(e),()=>{r.listeners.delete(e);}}n(ke,"subscribeTelevetExperience");function ne(){return x().snapshot}n(ne,"televetExperienceSnapshot");function Lr(){return x().hosts.length>0}n(Lr,"hasTelevetHost");function Oe(e){if(!Lr())return false;let r=Object.freeze({...e});return U({request:r,serial:x().snapshot.serial+1}),true}n(Oe,"presentTelevetExperience");function oe(){x().snapshot.request!==null&&U({request:null});}n(oe,"dismissTelevetExperience");function Ve(){let e=x(),r=e.nextHost;return e.nextHost+=1,e.hosts=[...e.hosts,r],U({activeHost:e.hosts[0]??null}),r}n(Ve,"claimTelevetHost");function Ie(e){let r=x();r.hosts=r.hosts.filter(o=>o!==e);let t=r.hosts[0]??null;U(t===null?{activeHost:t,request:null}:{activeHost:t});}n(Ie,"releaseTelevetHost");function Ur(e){Fe(e);}n(Ur,"registerEverfurTelevetFlow");function Br(){return Se()}n(Br,"hasEverfurTelevetFlow");function qr(e){return B(e)==="presented"}n(qr,"presentEverfurTelevetFlow");function ze(e){let r=null;return ()=>{if(r!==null)return r;let t=e();return r=t,t.then(void 0,()=>{r===t&&(r=null);}),t}}n(ze,"memoizeTelevetLoader");function je(e){let[r,t]=useState(null);useEffect(()=>{let d=Ve();return t(d),()=>{Ie(d);}},[]);let o=useSyncExternalStore(ke,ne,ne),a=r!==null&&o.activeHost===r?o.request:null,[u,s]=useState(null),l=a!==null&&u===null;return useEffect(()=>{if(!l)return;let d=true;return e().then(b=>{d&&s(()=>b);},b=>{d&&(console.warn("[everfur] The in-app vet visit could not load its screens.",b),oe());}),()=>{d=false;}},[l,e]),a===null||u===null?null:{module:u,request:a,serial:o.serial,dismiss:oe}}n(je,"useTelevetExperienceHost");var Wr=ze(()=>import('@everfur/sdk/web/televet/booking'));function q({onAddToCalendar:e}){let
|
|
1
|
+
import {createContext,useMemo,useRef,useState,useEffect,useSyncExternalStore,useContext,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var Mr=Object.defineProperty;var n=(e,r)=>Mr(e,"name",{value:r,configurable:true});var we=Symbol.for("@everfur/sdk/televet");function x(){let e=globalThis,r=e[we];if(r!==void 0)return r;let t={presenter:null,snapshot:Object.freeze({request:null,serial:0,activeHost:null}),hosts:[],nextHost:1,listeners:new Set,dailyRegistered:false};return e[we]=t,t}n(x,"televetGlobal");function U(e){let r=x();r.snapshot=Object.freeze({...r.snapshot,...e});for(let t of [...r.listeners])try{t();}catch{}}n(U,"publish");function Fe(e){x().presenter=e;}n(Fe,"setTelevetPresenter");function Se(){return x().presenter!==null}n(Se,"hasTelevetPresenter");function B(e){let r=x().presenter;if(r===null)return "absent";try{return r(e)===!1?"declined":"presented"}catch(t){return console.warn("[everfur] Your registerEverfurTelevetFlow presenter threw; the in-app visit opened instead.",t),"threw"}}n(B,"callTelevetPresenter");function ke(e){let r=x();return r.listeners.add(e),()=>{r.listeners.delete(e);}}n(ke,"subscribeTelevetExperience");function ne(){return x().snapshot}n(ne,"televetExperienceSnapshot");function Lr(){return x().hosts.length>0}n(Lr,"hasTelevetHost");function Oe(e){if(!Lr())return false;let r=Object.freeze({...e});return U({request:r,serial:x().snapshot.serial+1}),true}n(Oe,"presentTelevetExperience");function oe(){x().snapshot.request!==null&&U({request:null});}n(oe,"dismissTelevetExperience");function Ve(){let e=x(),r=e.nextHost;return e.nextHost+=1,e.hosts=[...e.hosts,r],U({activeHost:e.hosts[0]??null}),r}n(Ve,"claimTelevetHost");function Ie(e){let r=x();r.hosts=r.hosts.filter(o=>o!==e);let t=r.hosts[0]??null;U(t===null?{activeHost:t,request:null}:{activeHost:t});}n(Ie,"releaseTelevetHost");function Ur(e){Fe(e);}n(Ur,"registerEverfurTelevetFlow");function Br(){return Se()}n(Br,"hasEverfurTelevetFlow");function qr(e){return B(e)==="presented"}n(qr,"presentEverfurTelevetFlow");function ze(e){let r=null;return ()=>{if(r!==null)return r;let t=e();return r=t,t.then(void 0,()=>{r===t&&(r=null);}),t}}n(ze,"memoizeTelevetLoader");function je(e){let[r,t]=useState(null);useEffect(()=>{let d=Ve();return t(d),()=>{Ie(d);}},[]);let o=useSyncExternalStore(ke,ne,ne),a=r!==null&&o.activeHost===r?o.request:null,[u,s]=useState(null),l=a!==null&&u===null;return useEffect(()=>{if(!l)return;let d=true;return e().then(b=>{d&&s(()=>b);},b=>{d&&(console.warn("[everfur] The in-app vet visit could not load its screens.",b),oe());}),()=>{d=false;}},[l,e]),a===null||u===null?null:{module:u,request:a,serial:o.serial,dismiss:oe}}n(je,"useTelevetExperienceHost");var Wr=ze(()=>import('@everfur/sdk/web/televet/booking'));function q({onAddToCalendar:e,onPickMedia:r}){let t=je(Wr);if(t===null)return null;let{EverfurTelevetDialog:o}=t.module;return jsx(o,{request:t.request,onClose:t.dismiss,...e?{onAddToCalendar:e}:{},...r?{onPickMedia:r}:{}},t.serial)}n(q,"EverfurTelevetHost");var De=n(e=>e.toISOString().replace(/\.\d+|[-:]/g,""),"utcStamp"),Ne=n(e=>e.replace(/\\/g,"\\\\").replace(/;/g,"\\;").replace(/,/g,"\\,").replace(/\r?\n/g,"\\n"),"text");function Gr(e){let r=new TextEncoder,t=[],o="",i=0,a=75;for(let u of e){let s=r.encode(u).length;i+s>a&&(t.push(o),o="",i=0,a=74),o+=u,i+=s;}return t.push(o),t.join(`\r
|
|
2
2
|
`)}n(Gr,"fold");var Me=n(e=>e instanceof Date&&!Number.isNaN(e.getTime()),"usable");function Le(e){let r=e.key.trim(),t=e.title.trim();if(!r||!t||!Me(e.startDate)||!Me(e.endDate)||e.endDate.getTime()<=e.startDate.getTime())return null;let o=De(e.startDate),i=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//Everfur//Everfur SDK//EN","CALSCALE:GREGORIAN","METHOD:PUBLISH","BEGIN:VEVENT",`UID:${Ne(r)}@everfur.com`,`DTSTAMP:${o}`,`DTSTART:${o}`,`DTEND:${De(e.endDate)}`,`SUMMARY:${Ne(t)}`,"END:VEVENT","END:VCALENDAR"].map(Gr).join(`\r
|
|
3
3
|
`),a=r.replace(/^televet-consult-/,"").replace(/[^A-Za-z0-9_-]/g,"").slice(0,40);return {href:`data:text/calendar;charset=utf-8,${encodeURIComponent(`${i}\r
|
|
4
4
|
`)}`,filename:a?`everfur-visit-${a}.ics`:"everfur-visit.ics"}}n(Le,"televetCalendarFile");var Kr=n(async e=>{let r=Le(e);if(r===null||typeof document>"u")return false;let t=document.createElement("a");return t.href=r.href,t.download=r.filename,t.style.display="none",document.body.appendChild(t),t.click(),t.remove(),"handed-off"},"downloadTelevetCalendarFile");var ie=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(ie.map(e=>e.wireCode));var $r=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),Be=Object.freeze(ie.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:$r[e.wireCode]}))),Qr=new Map(Be.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),Xr=Object.freeze(["http_envelope",...[...new Set(Be.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function H(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...Xr]){let i=Qr.get(o+t);if(i)return i}}n(H,"contractErrorFor");function Jr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(Jr,"contractDocUrl");function qe(e){return null}n(qe,"publishedDocUrl");var Zr=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function He(e){return Zr[e]}n(He,"categoryFor");function We(e){let r=H(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":case "TELEVETRATELIMITED":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}n(We,"fromWire");var et=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function ae(e){return et.has(e)}n(ae,"isAutoRetryable");var rt=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function Ye(e){return ae(e)||rt.has(e)}n(Ye,"isRetryableCode");var tt=500,se=8e3,Ge=4;function Ke(e,r=Math.random){let t=Math.max(0,e),o=Math.min(tt*2**t,se);return Math.floor(r()*o)}n(Ke,"backoffDelayMs");var nt=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function le(e){return nt[e]}n(le,"userFacingError");function $e(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n($e,"defineHidden");var ot=/^[a-z][a-z0-9_]{0,63}$/;function k(e,r){let t=H(r?.wireCode,r?.wireEnvelope),o={code:e,category:He(e),retryable:r?.retryable??Ye(e),displayMessage:le(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&ot.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&$e(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&$e(o,"raw",r.raw),Object.freeze(o)}n(k,"makeEverfurError");function ue(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(ue,"ok");function T(e){return Object.freeze({ok:false,error:e})}n(T,"err");var W=class W extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,W.prototype);}};n(W,"EverfurConfigError");var N=W;function Qe(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}n(Qe,"errorFrame");function st(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(st,"authHeaders");function M(e,r){return {...e,headers:{...lt(e.headers),...st(r)}}}n(M,"withAuthHeaders");function lt(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let i=t.toLowerCase();i==="authorization"||i==="x-everfur-partner-key"||(r[t]=o);}return r}n(lt,"stripAuthHeaders");async function Xe(e,r){if(r.mode==="anonymous")return r.transport.request(M(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return T(de())}let o=await r.transport.request(M(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let i;try{i=await r.identity.currentToken({forceRefresh:!0});}catch{return T(de())}let a=await r.transport.request(M(e,{mode:"personalized",token:i,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !a.ok&&a.error.httpStatus===401?T(de(a.error.httpStatus)):a}n(Xe,"authedSend");function de(e){return k("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(de,"authRejectedError");function Je(e){return k("internalError",{retryable:true,wireMessage:ut(e)})}n(Je,"networkError");function ut(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(ut,"describeCause");var dt=3e4,ct=se*2,ft="idempotency-key",pt=new Set(["POST","PUT","PATCH","DELETE"]),yt=Object.freeze({onEvent(){}}),mt=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function vt(e){let r=e.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return r.length===0?null:`efs_${r}`.slice(0,128)}n(vt,"seededIdempotencyKey");function er(e){let r=e.observer??yt,t=e.timers??mt,o=e.rng??Math.random,i=e.sleep??((f,p)=>Ot(f,t,p)),a=e.maxAttempts??Ge,u=e.unaryTimeoutMs??dt,s=e.newIdempotencyKey??Et(),l=n(f=>{try{r.onEvent(f);}catch{}},"emit");async function d(f,p,y){let h=y?.maxAttempts,c=Math.max(1,h??a),O=y?.idempotent??pt.has(p.method),w=y?.idempotencyKey===void 0?null:vt(y.idempotencyKey),_=O?w??s():null,F=bt(p,_),I=0;for(;;){let E=n(R=>Object.freeze({call:f,method:p.method,path:p.path,attempt:I,..._?{idempotencyKey:_}:{},...R}),"stamp");l(E({phase:"attempt"}));let A=St(u,t),P=kt(A.signal,p.signal),z;try{z=await Xe({...F,signal:P.signal},e.auth);}catch(R){z=T(Je(R));}finally{P.dispose(),A.cancel();}if(z.ok)return l(E({phase:"settled",ok:true,reason:"ok"})),z;let S=z.error,m=ht(S,I,{maxAttempts:c,rng:o,now:t.now(),aborted:p.signal?.aborted===true,...h!==void 0?{perCallMaxAttempts:h}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),g={ok:false,code:S.code,reason:m.reason,...S.httpStatus!==void 0?{httpStatus:S.httpStatus}:{},...S.requestId!==void 0?{requestId:S.requestId}:{}};if(!m.retry)return l(E({phase:"settled",...g})),T(S);if(l(E({phase:"retry",...g,delayMs:m.delayMs})),await i(m.delayMs,p.signal),p.signal?.aborted===true)return l(E({phase:"settled",...g,reason:"aborted"})),T(S);I+=1;}}n(d,"send");async function b(f){return M(f,await Ft(e.auth))}n(b,"authorize");async function*v(f,p,y){l(Object.freeze({call:f,phase:"stream.open",method:p.method,path:p.path,attempt:0}));try{yield*e.auth.transport.stream(p,y);}catch{yield Qe({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(v,"stream"),Object.freeze({send:d,authorize:b,stream:v})}n(er,"createRequestFunnel");function bt(e,r){let t={};for(let[o,i]of Object.entries(e.headers??{}))o.toLowerCase()!==ft&&(t[o]=i);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(bt,"assembleHeaders");function Et(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Et,"defaultIdempotencyKeyFactory");var gt=10;function ht(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=_t(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!ae(e.code))return {retry:false,reason:"terminal-code"};let i=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let u=n(()=>{if(t.policy===void 0)return null;let d;try{d=t.policy.maxAttempts(e.code);}catch{return null}return typeof d!="number"||!Number.isFinite(d)?null:Math.max(1,Math.min(gt,Math.floor(d)))},"policyCeiling"),s=t.perCallMaxAttempts??u()??t.maxAttempts;if(r+1>=s)return {retry:false,reason:"attempts-exhausted"};let l=Rt(e,t.now);return l!==null?l>ct?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:i,delayMs:l}:{retry:true,reason:i,delayMs:Ke(r,t.rng)}}n(ht,"decideRetry");function _t(e){let r=e.code==="unknown"?We(wt(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(_t,"throttleKind");function Rt(e,r){let t=Ct(e.raw);if(t!==null){let i=t-r;return i>0?i:0}let o=Tt(e.raw);return o===null?null:Math.round(o*1e3)}n(Rt,"retryOverrideMs");function Tt(e){for(let r of ce(e)){let t=r.retry_after_seconds;if(typeof t=="number"&&Number.isFinite(t)&&t>=0)return t}return null}n(Tt,"findRetryAfterSeconds");function Ct(e){for(let r of ce(e)){let t=r.resets_at,o=xt(t);if(o!==null)return o}return null}n(Ct,"findResetsAt");function ce(e){if(!Ze(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];Ze(o)&&r.push(o);}return r}n(ce,"candidateScopes");function xt(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(xt,"parseInstantMs");function wt(e){for(let r of ce(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(wt,"rawWireCode");function Ze(e){return typeof e=="object"&&e!==null}n(Ze,"isRecord");async function Ft(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Ft,"resolveDeviceAuth");function St(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(St,"boundedSignal");function kt(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let i=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",i,{once:true}),r.addEventListener("abort",i,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",i),r.removeEventListener("abort",i);},"dispose")}}n(kt,"mergeSignals");function Ot(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let i=r.setTimeout(()=>{t?.removeEventListener("abort",a),o();},e),a=n(()=>{r.clearTimeout(i),o();},"onAbort");t?.addEventListener("abort",a,{once:true});})}n(Ot,"delayAbortable");var Y=Object.freeze(["visit","join","summary","messages"]);function G(e){return typeof e=="string"&&Y.includes(e)}n(G,"isVetVisitIntent");var Vt="/widget/v1/televet/handoffs",It="/widget/v1/televet/availability",At="/widget/v1/televet/chat-entry",Pt=/^[a-z0-9][a-z0-9_-]{0,39}$/,sr=/^[A-Za-z0-9_-]{22}$/,rr="everfur_flow",tr=32,nr=128,or=64;function K(e){let r=e.httpStatus;switch(e.code){case "sessionRequired":return "sessionRequired";case "authExpired":case "authRejected":return "authRejected";case "sdkUpdateRequired":return "sdkUpdateRequired";case "validationFailed":return "invalidRequest";case "rateLimited":case "quotaExceeded":return "rateLimited";}return r===void 0?e.code==="internalError"?"network":"unknown":r===429?"rateLimited":r===404?"unavailable":r===403?"accessDenied":r===401?"authRejected":r===400||r===422?"invalidRequest":r>=500?"serverError":"unknown"}n(K,"vetVisitErrorReasonOf");function ir(e){return T(k("validationFailed",{retryable:false,wireMessage:e}))}n(ir,"invalid");function fe(e){return T(k("internalError",{retryable:false,httpStatus:502,wireMessage:e}))}n(fe,"unusable");function zt(e,r){let t={};e!==void 0&&(t.pet_ref=e);let o=r?.returnTo;if(o!=null){if(typeof o!="string"||!Pt.test(o))return {ok:false,message:"returnTo must be a registered return destination key"};t.return_to=o;}let i=r?.entry;if(i!=null){if(i!=="chat"||e===void 0)return {ok:false,message:"entry 'chat' needs the pet the chat is about"};t.entry=i;}let a=r?.visitRef,u=r?.intent,s=a!=null;if(s){let l=typeof a=="string"?a.trim():"";if(l.length<1||[...l].length>or)return {ok:false,message:`visitRef must be 1..${or} characters`};t.visit_ref=l;}if(u!=null){if(!s)return {ok:false,message:"intent needs the visitRef it opens"};if(!G(u))return {ok:false,message:`intent must be one of ${Y.join(", ")}`};t.intent=u;}return {ok:true,body:t}}n(zt,"handoffBody");function jt(e){if(typeof e!="object"||e===null)return null;let{visit_ref:r,intent:t}=e;return typeof r!="string"||r.length===0||!G(t)?null:Object.freeze({visitRef:r,intent:t})}n(jt,"parseVisitEcho");function lr(e){let r=e.funnel??er({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=e.telemetry,o=n(i=>(ar(t,"televet.visit.handoff_failed",{reason:K(i)}),T(i)),"failed");return {async createHandoff(i,a){let u;if(i!=null){let c=typeof i=="string"?[...i].length:0;if(c<1||c>nr)return o(k("validationFailed",{retryable:false,wireMessage:`pet_ref must be 1..${nr} characters`}));u=i;}let s=zt(u,a);if(!s.ok){let c=ir(s.message);return c.ok?c:o(c.error)}let l=s.body,d=await r.send("televet.visit.handoff",{method:"POST",path:Vt,body:l},{idempotent:false,maxAttempts:1});if(!d.ok)return o(d.error);let b=Nt(d.value),v=l.return_to!==void 0,f=v?d.value?.flow_id:void 0;if(v&&(typeof f!="string"||!sr.test(f))){let c=fe("the handoff response carried no usable return flow id");return c.ok?c:o(c.error)}let p=l.visit_ref!==void 0,y=p?jt(d.value?.visit):null;if(p&&y===null){let c=fe("the handoff response did not confirm the visit it opens");return c.ok?c:o(c.error)}let h=b===null?null:Object.freeze({...b,...v?{flowId:f}:{},...y!==null?{visit:y}:{}});return h===null?o(k("internalError",{retryable:false,httpStatus:502,wireMessage:"the handoff response carried no usable visit url"})):(ar(t,"televet.visit.handoff_created",{pet_scoped:l.pet_ref!==void 0}),ue(h))},async checkAvailability(i){if(typeof i!="string"||i.length>tr)return ir(`state must be at most ${tr} characters`);let a=await r.send("televet.visit.availability",{method:"POST",path:It,body:{state:i}},{idempotent:false,maxAttempts:1});if(!a.ok)return T(a.error);let u=a.value?.available;return typeof u!="boolean"?fe("the availability response carried no usable answer"):ue(Object.freeze({available:u}))},async chatEntryOpen(){try{let i=await r.send("televet.visit.chat_entry",{method:"GET",path:At},{maxAttempts:1});return i.ok&&i.value?.open===!0}catch{return false}}}}n(lr,"createVetVisitController");function Dt(e){if(typeof e!="string")return null;let r=e.indexOf("#"),t=r<0?e:e.slice(0,r),o=t.indexOf("?");if(o<0)return null;let i=t.slice(o+1).split("&").filter(a=>a.startsWith(`${rr}=`)).map(a=>a.slice(rr.length+1));return i.length!==1||!sr.test(i[0]??"")?null:Object.freeze({flowId:i[0]})}n(Dt,"parseVetVisitReturn");function Nt(e){if(typeof e!="object"||e===null)return null;let{url:r,expires_at:t}=e;return typeof r!="string"||typeof t!="string"||t.length===0||!Bt(r)?null:Object.freeze({url:r,expiresAt:t})}n(Nt,"parseHandoff");var Mt=new Set(["localhost","127.0.0.1","[::1]"]),Lt=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/,Ut=/[\s\u0000-\u001f\u007f]/;function Bt(e){if(Ut.test(e))return false;let r=Lt.exec(e);if(r===null)return false;let t=(r[1]??"").toLowerCase(),o=r[2]??"";if(o.length===0||o.includes("@"))return false;let i=o.replace(/:\d+$/,"").toLowerCase(),a=t==="https",u=t==="http"&&Mt.has(i);if(!a&&!u)return false;let s=e.indexOf("#");if(s<0)return false;let l=e.slice(s);return l.startsWith("#h=")&&l.length>3}n(Bt,"isOpenableVisitUrl");function ar(e,r,t){if(e)try{e.track(r,t);}catch{}}n(ar,"safeTrack");var ur=Symbol.for("@everfur/sdk#EverfurContext@v1"),dr=globalThis,cr=dr[ur]??(dr[ur]=createContext(null));cr.displayName??="EverfurContext";function $(){let e=useContext(cr);if(e===null)throw new N("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n($,"useEverfurContext");var Wt=Object.freeze({chat:Object.freeze(["chat.message.create"]),records:Object.freeze(["records.upload.create","records.record.read"]),recordsClinic:Object.freeze(["records.clinic.create"]),video:Object.freeze(["video.gait.execute"]),photo:Object.freeze(["photo.checkup.execute"]),animations:Object.freeze(["animations.state.read"]),televet:Object.freeze(["televet.visit.create"])});function Yt(e){return Wt[e]}n(Yt,"requires");function fr(e,r,t){let o=Yt(e),i=new Map;for(let s of r)i.set(s.resource,s);if(t?.isPending===true&&o.some(s=>!i.has(s)))return pe({name:e,enabled:false,isPending:true,limits:{}});let a=Gt(o,i);return o.filter(s=>i.get(s)?.granted!==true).length===0?pe({name:e,enabled:true,isPending:false,limits:a}):pe({name:e,enabled:false,isPending:false,limits:a,disabled:Kt(o,i)})}n(fr,"decideCapability");function Gt(e,r){let t={};for(let o of e){let i=r.get(o)?.limits;if(i)for(let[a,u]of Object.entries(i)){let s=t[a];t[a]=s===void 0?u:Math.min(s,u);}}return t}n(Gt,"mergeLimits");function Kt(e,r){for(let t of e){let o=r.get(t)?.disabled;if(o)return Object.freeze({reason:o.reason,level:o.level,recoverable:o.recoverable})}return Object.freeze({reason:le("accessDenied"),level:"user_entitlement",recoverable:false})}n(Kt,"disabledFor");function pe(e){let r={name:e.name,enabled:e.enabled,isPending:e.isPending,limits:Object.freeze({...e.limits})};return e.disabled!==void 0&&(r.disabled=e.disabled),Object.freeze(r)}n(pe,"freezeDecision");function pr(e){let{runtime:r}=$(),t=r.entitlements,o=useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);return useMemo(()=>fr(e,o.decisions,{isPending:o.isPending}),[e,o])}n(pr,"useCapability");function yr(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(yr,"reportHostFailure");function Xt(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(Xt,"isThenable");function j(e,...r){if(typeof e=="function")try{let t=e(...r);return Xt(t)&&Promise.resolve(t).then(void 0,yr),t}catch(t){yr(t);return}}n(j,"callHost");var mr=false;function Q(e,r){return r!==void 0?(j(r,e),"onStartInApp"):B(e)==="presented"?"presenter":Oe(e)?"experience":(mr||(mr=true,console.warn("[everfur] A vet visit had nowhere to open: mount <EverfurTelevetHost /> in your EverfurProvider, or pass prefer: 'redirect'.")),null)}n(Q,"openVetVisitInApp");var ye=Object.freeze({status:"idle",error:null,errorReason:null});function Zt(e,r,t){let{usState:o,chat:i,scope:a}=t,u=r&&(o!==null||i),s=`${o??""}|${i?"chat":""}`,[l,d]=useState(null);if(useEffect(()=>{if(!u)return;let v=true,f=e.current;return d(null),n(async()=>{try{if(i&&!(f.chatEntryOpen&&await f.chatEntryOpen()))return !1;if(o===null)return !0;if(!f.checkAvailability)return !1;let y=await f.checkAvailability(o);return y.ok&&y.value.available}catch{return false}},"ask")().then(y=>{v&&d({key:s,open:y});}),()=>{v=false;}},[u,s,o,i,a,e]),!u)return null;let b=l!==null&&l.key===s;return {open:b&&l.open,pending:!b}}n(Zt,"usePreflight");var en=Object.freeze({status:"opening",error:null,errorReason:null});function Er(e,r={}){let{runtime:t,userRef:o,scopeEpoch:i}=$(),a=pr("televet"),u=a.enabled&&o!==null,s=r.usState??null,l=r.entry==="chat",d=r.petRef??null,b=r.prefer==="redirect",v=useMemo(()=>{if(r.controller)return r.controller;let{services:m}=t.registry;return lr({auth:m.authFor(o),telemetry:m.telemetry,...m.errorPolicy?{errorPolicy:m.errorPolicy}:{}})},[t,o,i,r.controller]),f=useRef(v);f.current=v;let p=useMemo(()=>({runtime:t,userRef:o,scopeEpoch:i}),[t,o,i]),y=Zt(f,u,{usState:s,chat:l,scope:p}),h=u&&(y===null||y.open)&&(!l||d!==null),c=r.returnTo??null,[O,w]=useState(ye),_=useRef(null),F=useRef({runtime:t,userRef:o,scopeEpoch:i});F.current={runtime:t,userRef:o,scopeEpoch:i};let I=useRef(v);I.current=v;let E=useRef(h);E.current=h;let A=useCallback((m,g)=>{if(_.current)return _.current;let R=n((C,D)=>(w({status:C==="cancelled"?"idle":"error",error:D,errorReason:C==="cancelled"?null:C}),Object.freeze({opened:false,reason:C,error:D})),"fail");if(!E.current)return Promise.resolve(R("unavailable",null));let V=e.prepare();if(!V.ok)return Promise.resolve(R(V.reason,null));let ee=F.current,Re=I.current;w(en);let re=(async()=>{let C,D={...c!==null?{returnTo:c}:{},...l?{entry:"chat"}:{},...g!==null?{visitRef:g.visitRef}:{},...g!==null&&g.intent!==null&&g.intent!==void 0?{intent:g.intent}:{}},Te=Object.keys(D).length===0?void 0:D,Ce=m===void 0?d:m;try{C=await(Te===void 0?Re.createHandoff(Ce):Re.createHandoff(Ce,Te));}catch{return e.abandon(V.value),R("unknown",null)}let te=F.current;if(te.runtime!==ee.runtime||te.userRef!==ee.userRef||te.scopeEpoch!==ee.scopeEpoch)return e.abandon(V.value),R("cancelled",null);if(!C.ok)return e.abandon(V.value),R(K(C.error),C.error);let xe=await e.finish(V.value,C.value);return xe!==null?R(xe,null):(w(ye),Object.freeze(C.value.flowId===void 0?{opened:true}:{opened:true,flowId:C.value.flowId}))})().finally(()=>{_.current===re&&(_.current=null);});return _.current=re,re},[e,d,c,l]),P=useCallback((m,g)=>{if(!E.current)return w({status:"error",error:null,errorReason:"unavailable"}),Promise.resolve(Object.freeze({opened:false,reason:"unavailable",error:null}));let R=m===void 0?d:m,V={...R!==null?{petRef:R}:{},...s!==null?{usState:s}:{},...g!==null?{visitRef:g.visitRef,intent:g.intent}:{}};return Q(V)===null?(w({status:"error",error:null,errorReason:"unavailable"}),Promise.resolve(Object.freeze({opened:false,reason:"unavailable",error:null}))):(w(ye),Promise.resolve(Object.freeze({opened:true})))},[d,s]),z=useCallback(m=>b?A(m,null):P(m,null),[b,A,P]),S=useCallback((m,g)=>b?A(void 0,{visitRef:m,intent:g??null}):P(void 0,{visitRef:m,intent:g??null}),[b,A,P]);return {available:h,isPending:a.isPending||(y?.pending??false),status:O.status,error:O.error,errorReason:O.errorReason,open:z,openVisit:S}}n(Er,"useVetVisitWith");function gr(e){try{e.closed||e.close();}catch{}}n(gr,"closeQuietly");var rn=Object.freeze({prepare(){let e=null;try{e=typeof window>"u"?null:window.open("about:blank","_blank");}catch{e=null;}if(e===null)return {ok:false,reason:"popupBlocked"};try{e.opener=null;}catch{}return {ok:true,value:{tab:e}}},async finish({tab:e},r){if(e.closed)return "cancelled";try{return e.location.replace(r.url),null}catch{return gr(e),"popupBlocked"}},abandon({tab:e}){gr(e);}});function me(e){return Er(rn,e)}n(me,"useVetVisit");function tn(e,r){if(e===void 0)return {};let t={};return e.backgroundColor!==void 0&&(t.backgroundColor=e.backgroundColor),e.borderColor!==void 0&&(t.borderColor=e.borderColor,t.borderWidth=r??1),e.borderRadius!==void 0&&(t.borderRadius=e.borderRadius),t}n(tn,"slotBox");function hr(e){return e?.textColor===void 0?{}:{color:e.textColor}}n(hr,"slotText");function _r(e,r){let t=tn(e,r),o={};return t.backgroundColor!==void 0&&(o.backgroundColor=t.backgroundColor),t.borderColor!==void 0&&(o.border=`${t.borderWidth??1}px solid ${t.borderColor}`),t.borderRadius!==void 0&&(o.borderRadius=t.borderRadius),o}n(_r,"slotBoxCss");var Rr=Object.freeze({visitButton:"Vet"});function Ee(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))Ee(e[r]);}return e}n(Ee,"deepFreeze");var nn=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),Cr={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},xr={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Tr={nano:8,small:9,micro:10,tiny:11,caption:13,bodyTight:15,body:17,subtitle:20,heading:22,verdict:24},on={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},an={regular:"400",medium:"500",bold:"700"},sn={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},ln=0,J="System",Z="monospace",un=["content","heading","control","compact","badge"];function dn(e){let r={};for(let t of un)r[t]=e;return r}n(dn,"authoredTierSizes");function wr(){return {family:J,mono:Z,fontUrl:null,families:{regular:J,medium:J,bold:J,mono:Z,monoMedium:Z,monoBold:Z},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Tr,tierSizes:dn(Tr),lineHeight:on,weight:an,letterSpacing:sn,scale:1,maxScale:ln,scaleCaps:nn}}n(wr,"baseType");var Fr={},ve=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function be(e){return `cubic-bezier(${e.join(", ")})`}n(be,"cssCubicBezier");var Sr={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:be(ve.standard),emphasized:be(ve.emphasized),exit:be(ve.exit)},reducedMotion:false},cn={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FFFFFF",surfaceSubtle:"#F1F5F2",background:"#FFFFFF",borderRingCream:"#E4E4E4",chatGround:"#FFFFFF",composerFill:"#FFFFFF",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#000000",secondary:"#0E462E",muted:"#6B6B6B",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#C03410",onDanger:"#FFFFFF",errorRed:"#C03410",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(192,52,16,0.06)",badgeBgNeutral:"rgba(107,107,107,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#E9F1E9",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},kr=Ee({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:cn,space:Cr,radius:xr,type:wr(),motion:Sr,slots:Fr}),fn={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A9A9A",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",onDanger:"#0E1F17",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",bubbleVet:"#FFC3BC",onBubbleVet:"#000000",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};Ee({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:fn,space:Cr,radius:xr,type:wr(),motion:Sr,slots:Fr});var Or=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),Vr=globalThis,ge=Vr[Or]??(Vr[Or]=createContext(kr));ge.displayName??="EverfurThemeContext";function he(){return useContext(ge)}n(he,"useEverfurTheme");var Ir=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var Ar='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',mn="System";function vn(e){let r=e.trim();return r.length===0||r===mn?Ar:`${Pr(r)}, ${Ar}`}n(vn,"cssFontFamily");function bn(e){let r=e.trim();return r.length===0||r==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${Pr(r)}, ui-monospace, Menlo, Consolas, monospace`}n(bn,"cssMonoFamily");function Pr(e){return `"${e.replace(/[\\"]/g,"\\$&")}"`}n(Pr,"quote");function zr(e,r){let t=e.type,o=t.families[r];return {fontFamily:r==="mono"||r==="monoMedium"||r==="monoBold"?bn(o):vn(o),fontWeight:t.namedFaces[r]?t.weight.regular:t.weight[Ir[r]]}}n(zr,"faceCss");var jr=44,hn=.6;function _n(e){let{petRef:r,children:t,onOpened:o,onError:i,style:a,className:u,controller:s,returnTo:l,usState:d,entry:b,visitRef:v,intent:f,onStartInApp:p,prefer:y}=e,h=y==="redirect",c=me({...l!==void 0?{returnTo:l}:{},...d!==void 0?{usState:d}:{},...b!==void 0?{entry:b}:{},...r!==void 0?{petRef:r}:{},...s!==void 0?{controller:s}:{},prefer:h?"redirect":"in-app"}),O=he(),w=useMemo(()=>Rn(O),[O]),_=useRef(false);if(!c.available)return jsxs(Fragment,{children:[null,jsx(q,{})]});let F=c.status==="opening";return jsxs(Fragment,{children:[jsx("button",{type:"button",onClick:n(()=>{if(!(F||_.current)){if(!h){let E={...r!==void 0?{petRef:r}:{},...d!==void 0?{usState:d}:{},...v!=null?{visitRef:v,intent:f??null}:{}};Q(E,p)===null&&j(i,"unavailable",null);return}_.current=true,(v==null?c.open():c.openVisit(v,f??null)).then(E=>{E.opened?j(o,E.flowId??null):E.reason!=="cancelled"&&j(i,E.reason,E.error);}).finally(()=>{_.current=false;});}},"onClick"),"aria-busy":F,"aria-disabled":F,className:u,style:{...w,...F?{opacity:hn,cursor:"progress"}:null,...a},children:t??Rr.visitButton}),jsx(q,{})]})}n(_n,"VetVisitButton");function Rn(e){let{color:r,space:t,radius:o,type:i,slots:a}=e;return {boxSizing:"border-box",minHeight:jr,minWidth:jr,display:"inline-flex",alignItems:"center",justifyContent:"center",margin:0,border:0,cursor:"pointer",padding:`${t.sm}px ${t.xl}px`,borderRadius:o.pill,backgroundColor:r.primary,color:r.onPrimary,...zr(e,"medium"),fontSize:i.size.body,..._r(a.vetVisitButton),...hr(a.vetVisitButton)}}n(Rn,"buttonStyle");export{q as EverfurTelevetHost,Y as VET_VISIT_INTENTS,_n as VetVisitButton,Kr as downloadTelevetCalendarFile,Br as hasEverfurTelevetFlow,G as isVetVisitIntent,Dt as parseVetVisitReturn,qr as presentEverfurTelevetFlow,Ur as registerEverfurTelevetFlow,Le as televetCalendarFile,me as useVetVisit,K as vetVisitErrorReasonOf};
|