@everfur/sdk 0.12.1 → 0.14.0
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 +292 -0
- package/README.md +12 -10
- package/dist/{Chat-CgYQdfqi.d.ts → Chat.d-aycmX1CA.d.cts} +178 -8
- package/dist/{Chat-CbyZ1vAX.d.cts → Chat.d-puminpyi.d.ts} +178 -8
- package/dist/{DepthViews-CCz4ig0u.d.ts → DepthViews.d-BdvFZgPs.d.cts} +1 -1
- package/dist/{DepthViews-CaQUyCHK.d.ts → DepthViews.d-DIvxzLDf.d.ts} +1 -1
- package/dist/{DepthViews-iGZi4_WK.d.cts → DepthViews.d-Dy0Zl-s-.d.ts} +1 -1
- package/dist/{DepthViews-D3OiIK_x.d.cts → DepthViews.d-wLNkzk9f.d.cts} +1 -1
- package/dist/{ErrorPolicyPort-10s3HJCt.d.cts → ErrorPolicyPort.d-68yrE3BE.d.ts} +1 -1
- package/dist/{ErrorPolicyPort-C3nNSS_j.d.ts → ErrorPolicyPort.d-DirW9hgO.d.cts} +1 -1
- package/dist/{EverfurError-DeBqRpQV.d.cts → EverfurError.d-8NHtlgzA.d.cts} +11 -1
- package/dist/{EverfurError-DeBqRpQV.d.ts → EverfurError.d-8NHtlgzA.d.ts} +11 -1
- package/dist/{EverfurResult-ClPTS0P2.d.ts → EverfurResult.d-BFH-3s6E.d.cts} +1 -1
- package/dist/{EverfurResult-COlXj1wq.d.cts → EverfurResult.d-D_-254ZY.d.ts} +1 -1
- package/dist/{IntakeMedia-BH0fYDT2.d.cts → IntakeMedia.d-4a89XrP7.d.ts} +1 -1
- package/dist/{IntakeMedia-B-_vA9ZB.d.cts → IntakeMedia.d-DGxrhgIW.d.ts} +1 -1
- package/dist/{IntakeMedia-CIoTXAWs.d.ts → IntakeMedia.d-DUPR4lVM.d.cts} +1 -1
- package/dist/{IntakeMedia-Bavl7E4Z.d.ts → IntakeMedia.d-JJCUvQu7.d.cts} +1 -1
- package/dist/LifecyclePort.d-Cr1p33a7.d.cts +23 -0
- package/dist/LifecyclePort.d-Cr1p33a7.d.ts +23 -0
- package/dist/{PhotoController-vzY5bfY_.d.ts → PhotoController.d-BzCJOE7e.d.cts} +2 -2
- package/dist/{PhotoController-3l7MT9jA.d.cts → PhotoController.d-D0XiUUOl.d.ts} +2 -2
- package/dist/RecordsPage.d-9Ank15PT.d.ts +93 -0
- package/dist/RecordsPage.d-DMKU0IKc.d.cts +93 -0
- package/dist/animations/index.cjs +4 -1
- package/dist/animations/index.d.cts +24 -24
- package/dist/animations/index.d.ts +24 -24
- package/dist/animations/index.js +4 -1
- package/dist/{attachments-CTJK0jQ4.d.ts → attachments.d--sIsfk6e.d.ts} +4 -4
- package/dist/{attachments-DkMrKCIU.d.ts → attachments.d-DNUCiyy5.d.cts} +10 -32
- package/dist/{attachments-DXBETOrV.d.cts → attachments.d-ZEpTUeWN.d.cts} +4 -4
- package/dist/{attachments-BOk3hEAM.d.cts → attachments.d-rp3xs-Q3.d.ts} +10 -32
- package/dist/{bookingCopy-C_a45T4-.d.ts → bookingCopy.d-D0uIIFAJ.d.ts} +24 -9
- package/dist/{bookingCopy-CHYGYHe0.d.cts → bookingCopy.d-DUrmVcLs.d.cts} +24 -9
- package/dist/{branding-DJf4h12Q.d.ts → branding.d-CTXTUg_8.d.cts} +9 -2
- package/dist/{branding-BCfwLj0h.d.cts → branding.d-DxJSoFce.d.ts} +9 -2
- package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
- package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
- package/dist/{casesRepository-C8KJmlxE.d.cts → casesRepository.d-DCnix2pT.d.cts} +3 -3
- package/dist/{casesRepository-iAi5qWnx.d.ts → casesRepository.d-DbirgbyH.d.ts} +3 -3
- package/dist/chat/index.cjs +139 -63
- package/dist/chat/index.d.cts +34 -19
- package/dist/chat/index.d.ts +34 -19
- package/dist/chat/index.js +139 -63
- package/dist/client/index.cjs +14 -10
- package/dist/client/index.d.cts +19 -18
- package/dist/client/index.d.ts +19 -18
- package/dist/client/index.js +14 -10
- package/dist/clinicBatch.d-Ccmrngcu.d.cts +71 -0
- package/dist/clinicBatch.d-D9Ci7IpP.d.ts +71 -0
- package/dist/clinicModels.d-BXgKZqDb.d.cts +68 -0
- package/dist/clinicModels.d-CaS64-P-.d.ts +68 -0
- package/dist/clinicRequestProps.d-1dCtouGA.d.cts +65 -0
- package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +65 -0
- package/dist/{config-C9zhanL-.d.cts → config.d-DJ4mvf_w.d.cts} +3 -3
- package/dist/{config-C5iPNKDj.d.ts → config.d-MX7IKP2f.d.ts} +3 -3
- package/dist/consent/index.cjs +4 -1
- package/dist/consent/index.d.cts +10 -10
- package/dist/consent/index.d.ts +10 -10
- package/dist/consent/index.js +4 -1
- package/dist/{context-D_bcpHDA.d.cts → context.d-BdnBe8Oe.d.ts} +15 -15
- package/dist/{context-BUIrC20Z.d.ts → context.d-C6MJsMpN.d.cts} +15 -15
- package/dist/{copy-KbCU9fen.d.ts → copy.d-BIfQOoDB.d.ts} +6 -6
- package/dist/{copy-BE31T2jR.d.cts → copy.d-C_u7shha.d.cts} +6 -6
- package/dist/core/index.cjs +16 -13
- package/dist/core/index.d.cts +35 -29
- package/dist/core/index.d.ts +35 -29
- package/dist/core/index.js +16 -13
- package/dist/{depth-DDKGfFaB.d.ts → depth.d-COFxYWLU.d.ts} +9 -242
- package/dist/{depth-DNxDieoO.d.cts → depth.d-D2e5WZuE.d.cts} +9 -242
- package/dist/{entitlementRepository-C1_wXIE3.d.cts → entitlementRepository.d-BP15dFbe.d.cts} +10 -5
- package/dist/{entitlementRepository-CYtdIGfH.d.ts → entitlementRepository.d-DLuxnGi5.d.ts} +10 -5
- package/dist/features.d-DrQxTw3-.d.cts +108 -0
- package/dist/features.d-DrQxTw3-.d.ts +108 -0
- package/dist/focus.d-C0Tr0oVJ.d.ts +939 -0
- package/dist/focus.d-jQWp0hdK.d.cts +939 -0
- package/dist/health-plan/index.cjs +384 -0
- package/dist/health-plan/index.d.cts +293 -0
- package/dist/health-plan/index.d.ts +293 -0
- package/dist/health-plan/index.js +384 -0
- package/dist/idempotency.d-DXb1BN2A.d.ts +1055 -0
- package/dist/idempotency.d-HF6fyRt2.d.cts +1055 -0
- package/dist/{identity-gjurBi7m.d.cts → identity.d-BePPZ7Uv.d.ts} +3 -3
- package/dist/{identity-BqeaN8An.d.ts → identity.d-CJfnWOdH.d.cts} +3 -3
- package/dist/index.cjs +148 -72
- package/dist/index.d.cts +32 -29
- package/dist/index.d.ts +32 -29
- package/dist/index.js +148 -72
- package/dist/introEvents.d-BkGDT_kG.d.cts +175 -0
- package/dist/introEvents.d-DHlMvmC7.d.ts +175 -0
- package/dist/introEvents.d-dS3fJCH1.d.cts +5 -0
- package/dist/introEvents.d-dS3fJCH1.d.ts +5 -0
- package/dist/{models-CnXY5LuO.d.ts → models.d-BSqvbTE1.d.cts} +15 -3
- package/dist/{models-A4A5S7AG.d.cts → models.d-DOwnr8fi.d.ts} +15 -3
- package/dist/notifications/index.cjs +4 -1
- package/dist/notifications/index.d.cts +9 -9
- package/dist/notifications/index.d.ts +9 -9
- package/dist/notifications/index.js +4 -1
- package/dist/optInView.d-0iI5JoAf.d.cts +441 -0
- package/dist/optInView.d-s-w4aGN3.d.ts +441 -0
- package/dist/parse.d-COt1qVA6.d.ts +210 -0
- package/dist/parse.d-EmsgOUMQ.d.cts +210 -0
- package/dist/{pets-CfutxNs9.d.cts → pets.d-BFT_b53y.d.ts} +3 -3
- package/dist/{pets-LIGadUtr.d.ts → pets.d-nNAVnw7f.d.cts} +3 -3
- package/dist/{petsRepository-CoRa3C_U.d.ts → petsRepository.d-B2TpRE7r.d.cts} +4 -4
- package/dist/{petsRepository-Cqpd3hLU.d.cts → petsRepository.d-RGwSZcYl.d.ts} +4 -4
- package/dist/photo/index.cjs +5 -2
- package/dist/photo/index.d.cts +9 -9
- package/dist/photo/index.d.ts +9 -9
- package/dist/photo/index.js +5 -2
- package/dist/planSignals.d-BDbp2e-k.d.cts +126 -0
- package/dist/planSignals.d-DSnxKoWe.d.ts +126 -0
- package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.cts} +14 -1
- package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.ts} +14 -1
- package/dist/{ports-CVi3n0re.d.ts → ports.d-D2n4HRUy.d.ts} +16 -10
- package/dist/{ports-gJ3faaWz.d.cts → ports.d-DBA_gsq5.d.cts} +16 -10
- package/dist/presentation.d-vy8kTGfR.d.cts +96 -0
- package/dist/presentation.d-vy8kTGfR.d.ts +96 -0
- package/dist/quickPrompts.d-NM_81Jc1.d.cts +19 -0
- package/dist/quickPrompts.d-NM_81Jc1.d.ts +19 -0
- package/dist/records/depth/index.cjs +10 -7
- package/dist/records/depth/index.d.cts +18 -12
- package/dist/records/depth/index.d.ts +18 -12
- package/dist/records/depth/index.js +10 -7
- package/dist/records/index.cjs +350 -74
- package/dist/records/index.d.cts +225 -21
- package/dist/records/index.d.ts +225 -21
- package/dist/records/index.js +351 -75
- package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
- package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
- package/dist/{requestFunnel-BYzlyaC0.d.ts → requestFunnel.d-D9edIEjZ.d.ts} +5 -5
- package/dist/{requestFunnel-DLZpiFD3.d.cts → requestFunnel.d-RZex94XX.d.cts} +5 -5
- package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-CoQWUy1Y.d.cts} +2 -2
- package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-CoQWUy1Y.d.ts} +2 -2
- package/dist/{runtimeTypes-BxxCKMn8.d.cts → runtimeTypes.d-BYq38b17.d.ts} +20 -13
- package/dist/{runtimeTypes-Doa_xxSa.d.ts → runtimeTypes.d-LkwZaF7z.d.cts} +20 -13
- package/dist/screenProps.d-BVzRzowC.d.ts +159 -0
- package/dist/screenProps.d-CQ0qZJkr.d.cts +159 -0
- package/dist/server/events/index.cjs +6 -3
- package/dist/server/events/index.d.cts +51 -9
- package/dist/server/events/index.d.ts +51 -9
- package/dist/server/events/index.js +6 -3
- package/dist/server/index.cjs +11 -6
- package/dist/server/index.d.cts +152 -8
- package/dist/server/index.d.ts +152 -8
- package/dist/server/index.js +11 -6
- package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
- package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
- package/dist/sheetSeam.d-B09jf4YC.d.ts +49 -0
- package/dist/sheetSeam.d-BBuEIVsa.d.cts +49 -0
- package/dist/shop/index.cjs +428 -0
- package/dist/shop/index.d.cts +211 -0
- package/dist/shop/index.d.ts +211 -0
- package/dist/shop/index.js +428 -0
- package/dist/tabs/index.cjs +195 -0
- package/dist/tabs/index.d.cts +174 -0
- package/dist/tabs/index.d.ts +174 -0
- package/dist/tabs/index.js +195 -0
- package/dist/tabsModel.d-BfIQg6yS.d.cts +31 -0
- package/dist/tabsModel.d-BfIQg6yS.d.ts +31 -0
- package/dist/televet/booking/index.cjs +15 -12
- package/dist/televet/booking/index.d.cts +36 -22
- package/dist/televet/booking/index.d.ts +36 -22
- package/dist/televet/booking/index.js +15 -12
- package/dist/televet/call/index.d.cts +5 -5
- package/dist/televet/call/index.d.ts +5 -5
- package/dist/televet/index.cjs +6 -3
- package/dist/televet/index.d.cts +12 -12
- package/dist/televet/index.d.ts +12 -12
- package/dist/televet/index.js +6 -3
- package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
- package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
- package/dist/testing/index.cjs +6 -3
- package/dist/testing/index.d.cts +3 -3
- package/dist/testing/index.d.ts +3 -3
- package/dist/testing/index.js +6 -3
- package/dist/testing/rn/index.cjs +5 -2
- package/dist/testing/rn/index.d.cts +23 -22
- package/dist/testing/rn/index.d.ts +23 -22
- package/dist/testing/rn/index.js +5 -2
- package/dist/testing/web/index.cjs +4 -1
- package/dist/testing/web/index.d.cts +23 -22
- package/dist/testing/web/index.d.ts +23 -22
- package/dist/testing/web/index.js +4 -1
- package/dist/texting/index.cjs +193 -0
- package/dist/texting/index.d.cts +69 -0
- package/dist/texting/index.d.ts +69 -0
- package/dist/texting/index.js +193 -0
- package/dist/threadOptions.d-9r4Csa7k.d.cts +458 -0
- package/dist/threadOptions.d-B6GA09aM.d.ts +458 -0
- package/dist/{timelineRows-Beun96e2.d.cts → timelineRows.d-Bes8ip2v.d.ts} +1 -1
- package/dist/{timelineRows-CGOlC_Q9.d.ts → timelineRows.d-BvM2A7_G.d.cts} +1 -1
- package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
- package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
- package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-Co5KF0up.d.ts} +2 -2
- package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-xIZj02Ru.d.cts} +2 -2
- package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
- package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
- package/dist/useIntroSeen.d-CTWFUthO.d.cts +35 -0
- package/dist/useIntroSeen.d-CTWFUthO.d.ts +35 -0
- package/dist/usePresentation.d-BGz32Vlm.d.ts +285 -0
- package/dist/usePresentation.d-DYTF_ZGf.d.cts +285 -0
- package/dist/useRecords.d-BYNX01El.d.cts +121 -0
- package/dist/useRecords.d-DWk61a4c.d.ts +121 -0
- package/dist/useRecordsDepth.d--LLA_4ga.d.cts +32 -0
- package/dist/useRecordsDepth.d-BQRL0Hez.d.ts +32 -0
- package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
- package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
- package/dist/video/index.cjs +5 -2
- package/dist/video/index.d.cts +7 -7
- package/dist/video/index.d.ts +7 -7
- package/dist/video/index.js +5 -2
- package/dist/{view-VvLEdXP4.d.cts → view.d-0yBjLTV3.d.cts} +12 -122
- package/dist/{view-C_B5U04g.d.ts → view.d-DqbCADFa.d.ts} +12 -122
- package/dist/web/consent/index.cjs +4 -1
- package/dist/web/consent/index.d.cts +10 -10
- package/dist/web/consent/index.d.ts +10 -10
- package/dist/web/consent/index.js +4 -1
- package/dist/web/health-plan/index.cjs +421 -0
- package/dist/web/health-plan/index.d.cts +189 -0
- package/dist/web/health-plan/index.d.ts +189 -0
- package/dist/web/health-plan/index.js +421 -0
- package/dist/web/index.cjs +170 -87
- package/dist/web/index.d.cts +292 -38
- package/dist/web/index.d.ts +292 -38
- package/dist/web/index.js +170 -87
- package/dist/web/intro/index.cjs +167 -0
- package/dist/web/intro/index.d.cts +79 -0
- package/dist/web/intro/index.d.ts +79 -0
- package/dist/web/intro/index.js +167 -0
- package/dist/web/notifications/index.cjs +15 -3
- package/dist/web/notifications/index.d.cts +39 -209
- package/dist/web/notifications/index.d.ts +39 -209
- package/dist/web/notifications/index.js +15 -3
- package/dist/web/records/depth/index.cjs +10 -7
- package/dist/web/records/depth/index.d.cts +18 -12
- package/dist/web/records/depth/index.d.ts +18 -12
- package/dist/web/records/depth/index.js +10 -7
- package/dist/web/records/index.cjs +94 -68
- package/dist/web/records/index.d.cts +39 -55
- package/dist/web/records/index.d.ts +39 -55
- package/dist/web/records/index.js +94 -68
- package/dist/web/records/upload/index.d.cts +2 -2
- package/dist/web/records/upload/index.d.ts +2 -2
- package/dist/web/records-sheet/index.cjs +332 -0
- package/dist/web/records-sheet/index.d.cts +104 -0
- package/dist/web/records-sheet/index.d.ts +104 -0
- package/dist/web/records-sheet/index.js +332 -0
- package/dist/web/shop/index.cjs +416 -0
- package/dist/web/shop/index.d.cts +59 -0
- package/dist/web/shop/index.d.ts +59 -0
- package/dist/web/shop/index.js +416 -0
- package/dist/web/televet/booking/index.cjs +15 -12
- package/dist/web/televet/booking/index.d.cts +37 -23
- package/dist/web/televet/booking/index.d.ts +37 -23
- package/dist/web/televet/booking/index.js +15 -12
- package/dist/web/televet/call/index.d.cts +4 -4
- package/dist/web/televet/call/index.d.ts +4 -4
- package/dist/web/televet/index.cjs +6 -3
- package/dist/web/televet/index.d.cts +12 -12
- package/dist/web/televet/index.d.ts +12 -12
- package/dist/web/televet/index.js +6 -3
- package/dist/web/texting/index.cjs +188 -0
- package/dist/web/texting/index.d.cts +69 -0
- package/dist/web/texting/index.d.ts +69 -0
- package/dist/web/texting/index.js +188 -0
- package/health-plan/package.json +8 -0
- package/package.json +138 -5
- package/shop/package.json +8 -0
- package/tabs/package.json +8 -0
- package/texting/package.json +8 -0
- package/web/health-plan/native-blocked.cjs +12 -0
- package/web/health-plan/package.json +8 -0
- package/web/intro/native-blocked.cjs +12 -0
- package/web/intro/package.json +8 -0
- package/web/records-sheet/native-blocked.cjs +12 -0
- package/web/records-sheet/package.json +8 -0
- package/web/shop/native-blocked.cjs +12 -0
- package/web/shop/package.json +8 -0
- package/web/texting/native-blocked.cjs +12 -0
- package/web/texting/package.json +8 -0
- package/dist/useRecordsDepth-DRrJntjt.d.cts +0 -257
- package/dist/useRecordsDepth-hR94debv.d.ts +0 -257
- /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
- /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
- /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
- /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
- /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
- /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
- /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
- /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
- /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
- /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
- /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
- /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
- /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
- /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
- /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
- /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
- /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
- /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
- /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
- /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The entity a pill refers to: a BE-recognized `type` and `id`, plus compact display facts the host may pass on. */
|
|
2
|
+
interface RecordsAskEntityRef {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly payload?: Readonly<Record<string, string | number | boolean>>;
|
|
6
|
+
}
|
|
7
|
+
interface RecordsAsk {
|
|
8
|
+
readonly prompt: string;
|
|
9
|
+
readonly entityRef: RecordsAskEntityRef;
|
|
10
|
+
}
|
|
11
|
+
/** The host seam every Ask pill calls; pills render only when a host supplies it. */
|
|
12
|
+
type RecordsAskHandler = (prompt: string, entityRef: RecordsAskEntityRef) => void;
|
|
13
|
+
|
|
14
|
+
export type { RecordsAskEntityRef as R, RecordsAskHandler as a, RecordsAsk as b };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** The entity a pill refers to: a BE-recognized `type` and `id`, plus compact display facts the host may pass on. */
|
|
2
|
+
interface RecordsAskEntityRef {
|
|
3
|
+
readonly type: string;
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly payload?: Readonly<Record<string, string | number | boolean>>;
|
|
6
|
+
}
|
|
7
|
+
interface RecordsAsk {
|
|
8
|
+
readonly prompt: string;
|
|
9
|
+
readonly entityRef: RecordsAskEntityRef;
|
|
10
|
+
}
|
|
11
|
+
/** The host seam every Ask pill calls; pills render only when a host supplies it. */
|
|
12
|
+
type RecordsAskHandler = (prompt: string, entityRef: RecordsAskEntityRef) => void;
|
|
13
|
+
|
|
14
|
+
export type { RecordsAskEntityRef as R, RecordsAskHandler as a, RecordsAsk as b };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { b as EverfurErrorCode } from './EverfurError-
|
|
2
|
-
import { E as ErrorPolicyPort } from './ErrorPolicyPort-
|
|
3
|
-
import { E as EverfurResult } from './EverfurResult-
|
|
4
|
-
import { d as EverfurRequest, F as Frame } from './config-
|
|
5
|
-
import { A as AuthContext } from './identity-
|
|
1
|
+
import { b as EverfurErrorCode } from './EverfurError.d-8NHtlgzA.js';
|
|
2
|
+
import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
|
|
3
|
+
import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
|
|
4
|
+
import { d as EverfurRequest, F as Frame } from './config.d-MX7IKP2f.js';
|
|
5
|
+
import { A as AuthContext } from './identity.d-BePPZ7Uv.js';
|
|
6
6
|
|
|
7
7
|
/** Why the funnel stopped, or kept going. Every settle and every retry names one. */
|
|
8
8
|
type FunnelRetryReason = 'ok' | 'aborted' | 'terminal-code' | 'attempts-exhausted' | 'daily-quota-exhausted' | 'burst-throttle' | 'retryable-code' | 'server-reset-beyond-budget';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { b as EverfurErrorCode } from './EverfurError-
|
|
2
|
-
import { E as ErrorPolicyPort } from './ErrorPolicyPort-
|
|
3
|
-
import { E as EverfurResult } from './EverfurResult-
|
|
4
|
-
import { d as EverfurRequest, F as Frame } from './config-
|
|
5
|
-
import { A as AuthContext } from './identity-
|
|
1
|
+
import { b as EverfurErrorCode } from './EverfurError.d-8NHtlgzA.cjs';
|
|
2
|
+
import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
|
|
3
|
+
import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
|
|
4
|
+
import { d as EverfurRequest, F as Frame } from './config.d-DJ4mvf_w.cjs';
|
|
5
|
+
import { A as AuthContext } from './identity.d-CJfnWOdH.cjs';
|
|
6
6
|
|
|
7
7
|
/** Why the funnel stopped, or kept going. Every settle and every retry names one. */
|
|
8
8
|
type FunnelRetryReason = 'ok' | 'aborted' | 'terminal-code' | 'attempts-exhausted' | 'daily-quota-exhausted' | 'burst-throttle' | 'retryable-code' | 'server-reset-beyond-budget';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Every entitlement key the PUBLIC contract declares. Internal packs are absent by construction (the
|
|
3
3
|
* projection redacts them), so this union is exactly what a partner surface may require.
|
|
4
4
|
*/
|
|
5
|
-
type EverfurCapabilityKey = "animations.state.read" | "chat.conversation.read" | "chat.message.create" | "partner_events.event.read" | "partner_events.inbound.create" | "pets.health.update" | "pets.profile.delete" | "pets.profile.update" | "photo.checkup.execute" | "records.clinic.create" | "records.record.create" | "records.record.export" | "records.record.read" | "records.record.share" | "records.upload.create" | "televet.visit.create" | "video.gait.execute";
|
|
5
|
+
type EverfurCapabilityKey = "animations.state.read" | "chat.conversation.read" | "chat.message.create" | "partner_events.event.read" | "partner_events.inbound.create" | "pets.health.update" | "pets.profile.delete" | "pets.profile.update" | "photo.checkup.execute" | "records.clinic.create" | "records.record.create" | "records.record.export" | "records.record.read" | "records.record.share" | "records.upload.create" | "shop.catalog.update" | "shop.plan.read" | "shop.plan.update" | "sms.identity.read" | "sms.identity.update" | "sms.message.create" | "televet.visit.create" | "video.gait.execute";
|
|
6
6
|
|
|
7
7
|
interface LevelGrant {
|
|
8
8
|
/** capability keys this level permits */
|
|
@@ -24,7 +24,7 @@ interface ResolvedEntitlements {
|
|
|
24
24
|
*/
|
|
25
25
|
declare function resolveEntitlements(levels: readonly LevelGrant[]): ResolvedEntitlements;
|
|
26
26
|
/** Coarse UI capability ids. NOT valid entitlement keys; bridged to resource keys by `requires`. */
|
|
27
|
-
type CapabilityName = 'chat' | 'records' | 'recordsClinic' | 'video' | 'photo' | 'animations' | 'televet';
|
|
27
|
+
type CapabilityName = 'chat' | 'records' | 'recordsClinic' | 'video' | 'photo' | 'animations' | 'televet' | 'texting' | 'healthPlan';
|
|
28
28
|
type DisabledLevel = 'contract' | 'partner_config' | 'user_entitlement' | 'version_floor' | 'kill_switch'
|
|
29
29
|
/**
|
|
30
30
|
* The SDK itself is not configured (no publishableKey, or no resolvable apiBaseUrl), so NOTHING can be
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Every entitlement key the PUBLIC contract declares. Internal packs are absent by construction (the
|
|
3
3
|
* projection redacts them), so this union is exactly what a partner surface may require.
|
|
4
4
|
*/
|
|
5
|
-
type EverfurCapabilityKey = "animations.state.read" | "chat.conversation.read" | "chat.message.create" | "partner_events.event.read" | "partner_events.inbound.create" | "pets.health.update" | "pets.profile.delete" | "pets.profile.update" | "photo.checkup.execute" | "records.clinic.create" | "records.record.create" | "records.record.export" | "records.record.read" | "records.record.share" | "records.upload.create" | "televet.visit.create" | "video.gait.execute";
|
|
5
|
+
type EverfurCapabilityKey = "animations.state.read" | "chat.conversation.read" | "chat.message.create" | "partner_events.event.read" | "partner_events.inbound.create" | "pets.health.update" | "pets.profile.delete" | "pets.profile.update" | "photo.checkup.execute" | "records.clinic.create" | "records.record.create" | "records.record.export" | "records.record.read" | "records.record.share" | "records.upload.create" | "shop.catalog.update" | "shop.plan.read" | "shop.plan.update" | "sms.identity.read" | "sms.identity.update" | "sms.message.create" | "televet.visit.create" | "video.gait.execute";
|
|
6
6
|
|
|
7
7
|
interface LevelGrant {
|
|
8
8
|
/** capability keys this level permits */
|
|
@@ -24,7 +24,7 @@ interface ResolvedEntitlements {
|
|
|
24
24
|
*/
|
|
25
25
|
declare function resolveEntitlements(levels: readonly LevelGrant[]): ResolvedEntitlements;
|
|
26
26
|
/** Coarse UI capability ids. NOT valid entitlement keys; bridged to resource keys by `requires`. */
|
|
27
|
-
type CapabilityName = 'chat' | 'records' | 'recordsClinic' | 'video' | 'photo' | 'animations' | 'televet';
|
|
27
|
+
type CapabilityName = 'chat' | 'records' | 'recordsClinic' | 'video' | 'photo' | 'animations' | 'televet' | 'texting' | 'healthPlan';
|
|
28
28
|
type DisabledLevel = 'contract' | 'partner_config' | 'user_entitlement' | 'version_floor' | 'kill_switch'
|
|
29
29
|
/**
|
|
30
30
|
* The SDK itself is not configured (no publishableKey, or no resolvable apiBaseUrl), so NOTHING can be
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { E as EntitlementDecision, C as CapabilityName } from './resolve-
|
|
2
|
-
import { P as PetProfileInput, R as RegisteredPet, a as PetProfilePatch } from './petsRepository-
|
|
3
|
-
import { E as EverfurResult } from './EverfurResult-
|
|
4
|
-
import { E as EverfurThemeInput, C as ClientBranding } from './branding-
|
|
5
|
-
import { A as AuthContext, T as TokenProvider } from './identity-
|
|
6
|
-
import { U as UserRef, P as PetRef, C as ConversationId } from './ids-B2GAAifq.
|
|
7
|
-
import { T as TransportPort } from './config-
|
|
8
|
-
import { I as ImageCachePort, K as KvPort } from './cacheEpoch-DknKn3S0.
|
|
9
|
-
import { E as ErrorPolicyPort } from './ErrorPolicyPort-
|
|
10
|
-
import { U as UploadPort, n as ChatController } from './ports-
|
|
11
|
-
import { C as CameraPort } from './CameraPort-Cv31Pz7g.
|
|
12
|
-
import { T as TelemetryPort } from './TelemetryPort-BDNr00hu.
|
|
13
|
-
import { U as UploadTransport } from './ports-
|
|
1
|
+
import { E as EntitlementDecision, C as CapabilityName } from './resolve.d-CoQWUy1Y.js';
|
|
2
|
+
import { P as PetProfileInput, R as RegisteredPet, a as PetProfilePatch } from './petsRepository.d-RGwSZcYl.js';
|
|
3
|
+
import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
|
|
4
|
+
import { E as EverfurThemeInput, C as ClientBranding } from './branding.d-DxJSoFce.js';
|
|
5
|
+
import { A as AuthContext, T as TokenProvider } from './identity.d-BePPZ7Uv.js';
|
|
6
|
+
import { U as UserRef, P as PetRef, C as ConversationId } from './ids.d-B2GAAifq.js';
|
|
7
|
+
import { T as TransportPort } from './config.d-MX7IKP2f.js';
|
|
8
|
+
import { I as ImageCachePort, K as KvPort } from './cacheEpoch.d-DknKn3S0.js';
|
|
9
|
+
import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
|
|
10
|
+
import { U as UploadPort, n as ChatController } from './ports.d-D2n4HRUy.js';
|
|
11
|
+
import { C as CameraPort } from './CameraPort.d-Cv31Pz7g.js';
|
|
12
|
+
import { T as TelemetryPort } from './TelemetryPort.d-BDNr00hu.js';
|
|
13
|
+
import { U as UploadTransport } from './ports.d-BX4f4UsB.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Opt-in encrypted secret storage. Backed by a Keychain / Keystore native peer through an rn-layer adapter.
|
|
@@ -219,6 +219,13 @@ interface EntitlementSnapshot {
|
|
|
219
219
|
* a snapshot that claimed `false` for a live tenant could reach nothing but their 404.
|
|
220
220
|
*/
|
|
221
221
|
readonly livemode?: boolean;
|
|
222
|
+
/**
|
|
223
|
+
* The tenant's public texting profile (`sms_profile_public`) from the SAME entitlements body, UNPARSED: only the
|
|
224
|
+
* texting subpath reads it (`parseTextingProfile`), so no other capability's bundle carries the parser. Absent
|
|
225
|
+
* when the body has none; the store writes the key only when the body carried one, so every other tenant's
|
|
226
|
+
* snapshot is shaped exactly as it was before this field existed.
|
|
227
|
+
*/
|
|
228
|
+
readonly smsProfilePublic?: unknown;
|
|
222
229
|
}
|
|
223
230
|
/**
|
|
224
231
|
* Framework-free entitlement store bound by `useCapability` through useSyncExternalStore. `getSnapshot`
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { E as EntitlementDecision, C as CapabilityName } from './resolve-
|
|
2
|
-
import { P as PetProfileInput, R as RegisteredPet, a as PetProfilePatch } from './petsRepository-
|
|
3
|
-
import { E as EverfurResult } from './EverfurResult-
|
|
4
|
-
import { E as EverfurThemeInput, C as ClientBranding } from './branding-
|
|
5
|
-
import { A as AuthContext, T as TokenProvider } from './identity-
|
|
6
|
-
import { U as UserRef, P as PetRef, C as ConversationId } from './ids-B2GAAifq.
|
|
7
|
-
import { T as TransportPort } from './config-
|
|
8
|
-
import { I as ImageCachePort, K as KvPort } from './cacheEpoch-DknKn3S0.
|
|
9
|
-
import { E as ErrorPolicyPort } from './ErrorPolicyPort-
|
|
10
|
-
import { U as UploadPort, n as ChatController } from './ports-
|
|
11
|
-
import { C as CameraPort } from './CameraPort-Cv31Pz7g.
|
|
12
|
-
import { T as TelemetryPort } from './TelemetryPort-BDNr00hu.
|
|
13
|
-
import { U as UploadTransport } from './ports-
|
|
1
|
+
import { E as EntitlementDecision, C as CapabilityName } from './resolve.d-CoQWUy1Y.cjs';
|
|
2
|
+
import { P as PetProfileInput, R as RegisteredPet, a as PetProfilePatch } from './petsRepository.d-B2TpRE7r.cjs';
|
|
3
|
+
import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
|
|
4
|
+
import { E as EverfurThemeInput, C as ClientBranding } from './branding.d-CTXTUg_8.cjs';
|
|
5
|
+
import { A as AuthContext, T as TokenProvider } from './identity.d-CJfnWOdH.cjs';
|
|
6
|
+
import { U as UserRef, P as PetRef, C as ConversationId } from './ids.d-B2GAAifq.cjs';
|
|
7
|
+
import { T as TransportPort } from './config.d-DJ4mvf_w.cjs';
|
|
8
|
+
import { I as ImageCachePort, K as KvPort } from './cacheEpoch.d-DknKn3S0.cjs';
|
|
9
|
+
import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
|
|
10
|
+
import { U as UploadPort, n as ChatController } from './ports.d-DBA_gsq5.cjs';
|
|
11
|
+
import { C as CameraPort } from './CameraPort.d-Cv31Pz7g.cjs';
|
|
12
|
+
import { T as TelemetryPort } from './TelemetryPort.d-BDNr00hu.cjs';
|
|
13
|
+
import { U as UploadTransport } from './ports.d-BX4f4UsB.cjs';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Opt-in encrypted secret storage. Backed by a Keychain / Keystore native peer through an rn-layer adapter.
|
|
@@ -219,6 +219,13 @@ interface EntitlementSnapshot {
|
|
|
219
219
|
* a snapshot that claimed `false` for a live tenant could reach nothing but their 404.
|
|
220
220
|
*/
|
|
221
221
|
readonly livemode?: boolean;
|
|
222
|
+
/**
|
|
223
|
+
* The tenant's public texting profile (`sms_profile_public`) from the SAME entitlements body, UNPARSED: only the
|
|
224
|
+
* texting subpath reads it (`parseTextingProfile`), so no other capability's bundle carries the parser. Absent
|
|
225
|
+
* when the body has none; the store writes the key only when the body carried one, so every other tenant's
|
|
226
|
+
* snapshot is shaped exactly as it was before this field existed.
|
|
227
|
+
*/
|
|
228
|
+
readonly smsProfilePublic?: unknown;
|
|
222
229
|
}
|
|
223
230
|
/**
|
|
224
231
|
* Framework-free entitlement store bound by `useCapability` through useSyncExternalStore. `getSnapshot`
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { P as PetRef, R as RecordsRequestId } from './ids.d-B2GAAifq.js';
|
|
2
|
+
import { R as RecordsClinicBatch, a as RecordsClinicBatchClient } from './clinicBatch.d-D9Ci7IpP.js';
|
|
3
|
+
import { C as CaptureRecordsSignature, R as RecordsClinicController } from './clinicRequestProps.d-CjsMg_OD.js';
|
|
4
|
+
import { R as RecordsClinic, c as RecordsClinicSearchInput } from './clinicModels.d-CaS64-P-.js';
|
|
5
|
+
import { a as RecordsAskHandler } from './recordsAsk.d-C5CGSi3j.js';
|
|
6
|
+
|
|
7
|
+
/** One composed clinic of the batch (the consumer `ClinicRequestDraft`). */
|
|
8
|
+
interface ClinicDraft {
|
|
9
|
+
/** Stable local key for list rows and removal. */
|
|
10
|
+
readonly key: string;
|
|
11
|
+
/** The directory clinic, or null for an owner-typed clinic name. */
|
|
12
|
+
readonly clinic: RecordsClinic | null;
|
|
13
|
+
/** The owner-typed clinic name when `clinic` is null. */
|
|
14
|
+
readonly freeText: string | null;
|
|
15
|
+
/** The owner-supplied address, when the clinic needs one. */
|
|
16
|
+
readonly email: string;
|
|
17
|
+
/** Minted when the draft is added; a whole-batch retry replays it. */
|
|
18
|
+
readonly idempotencyKey: string;
|
|
19
|
+
}
|
|
20
|
+
interface ClinicBatchBaseProps {
|
|
21
|
+
readonly petRef: PetRef;
|
|
22
|
+
/** Display name for this exact registered petRef (empty: `your pet`); the server owns the final PDF identity. */
|
|
23
|
+
readonly petName: string;
|
|
24
|
+
/** Initial value only; the owner can visibly confirm or correct it before signing. */
|
|
25
|
+
readonly ownerName: string;
|
|
26
|
+
readonly onCaptureSignature?: CaptureRecordsSignature;
|
|
27
|
+
/** Called once with the batch outcome (created and failed clinics alike). */
|
|
28
|
+
readonly onCreated?: (batch: RecordsClinicBatch) => void;
|
|
29
|
+
readonly onClose?: () => void;
|
|
30
|
+
/** Host/test seams over the same signed-user contracts. */
|
|
31
|
+
readonly controller?: RecordsClinicController;
|
|
32
|
+
readonly batchClient?: RecordsClinicBatchClient;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Turn the pad's inline PNG into a registered signature id, so the batch carries one small id per clinic rather
|
|
36
|
+
* than one PNG per clinic (the platform caps the inline bytes of a batch at one signature's worth, and the WAF
|
|
37
|
+
* caps the JSON body). The host supplies the byte transport; the RN and web hosts each have one.
|
|
38
|
+
*/
|
|
39
|
+
type RegisterSignaturePng = (signaturePngBase64: string, signal: AbortSignal) => Promise<{
|
|
40
|
+
readonly signatureId: string;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
type RecordsScreen = {
|
|
44
|
+
readonly name: 'dashboard';
|
|
45
|
+
} | {
|
|
46
|
+
readonly name: 'request';
|
|
47
|
+
readonly requestId: RecordsRequestId;
|
|
48
|
+
} | {
|
|
49
|
+
readonly name: 'timeline';
|
|
50
|
+
} | {
|
|
51
|
+
readonly name: 'record';
|
|
52
|
+
} | {
|
|
53
|
+
readonly name: 'document';
|
|
54
|
+
} | {
|
|
55
|
+
readonly name: 'contributions';
|
|
56
|
+
readonly docId: string;
|
|
57
|
+
} | {
|
|
58
|
+
readonly name: 'clinicPicker';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The multi-clinic composer (`EverfurClinicRequestBatch`). The consumer opens it as a SHEET from the full
|
|
62
|
+
* record screen's header (RequestFromClinicsAction.tsx); the SDK flow has no sheet layer of its own, so it is
|
|
63
|
+
* a screen of the same stack, pushed from the same control and popped by the same back.
|
|
64
|
+
*/
|
|
65
|
+
| {
|
|
66
|
+
readonly name: 'clinicBatch';
|
|
67
|
+
} | {
|
|
68
|
+
readonly name: 'consent';
|
|
69
|
+
readonly clinic: ClinicDraft;
|
|
70
|
+
} | {
|
|
71
|
+
readonly name: 'upload';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Every upload and clinic request for the pet, each with its own status: the consumer's
|
|
75
|
+
* `RecordsRequestListScreen` (everfur-mobile src/features/records/ui/RecordsRequestListScreen.tsx, the
|
|
76
|
+
* `/records/requests` route the dashboard's `RecordsRequestsStatusCard` opens). On the web it is the
|
|
77
|
+
* records page's own request list.
|
|
78
|
+
*/
|
|
79
|
+
| {
|
|
80
|
+
readonly name: 'requests';
|
|
81
|
+
};
|
|
82
|
+
interface RecordsNavState {
|
|
83
|
+
readonly stack: readonly RecordsScreen[];
|
|
84
|
+
}
|
|
85
|
+
type RecordsNavAction = {
|
|
86
|
+
readonly type: 'push';
|
|
87
|
+
readonly screen: RecordsScreen;
|
|
88
|
+
} | {
|
|
89
|
+
readonly type: 'pop';
|
|
90
|
+
} | {
|
|
91
|
+
readonly type: 'replace';
|
|
92
|
+
readonly screen: RecordsScreen;
|
|
93
|
+
} | {
|
|
94
|
+
readonly type: 'reset';
|
|
95
|
+
readonly screen: RecordsScreen;
|
|
96
|
+
}
|
|
97
|
+
/** The screen-declared edge: applies the consumer's push / replace / reset rule for the (from, to) pair. */
|
|
98
|
+
| {
|
|
99
|
+
readonly type: 'navigate';
|
|
100
|
+
readonly screen: RecordsScreen;
|
|
101
|
+
};
|
|
102
|
+
/** A one-screen stack at `initial` (the dashboard when omitted). */
|
|
103
|
+
declare function initialRecordsNav(initial?: RecordsScreen): RecordsNavState;
|
|
104
|
+
/** The screen on top of the stack (a stack is never empty). */
|
|
105
|
+
declare function currentRecordsScreen(state: RecordsNavState): RecordsScreen;
|
|
106
|
+
declare function pushRecordsNav(state: RecordsNavState, screen: RecordsScreen): RecordsNavState;
|
|
107
|
+
declare function replaceRecordsNav(state: RecordsNavState, screen: RecordsScreen): RecordsNavState;
|
|
108
|
+
declare function resetRecordsNav(screen: RecordsScreen): RecordsNavState;
|
|
109
|
+
/**
|
|
110
|
+
* Pop the top screen. On a one-screen stack the state is returned UNCHANGED with `handled:false`, so the RN
|
|
111
|
+
* flow's back handler can return `false` and let the host navigator handle the press.
|
|
112
|
+
*/
|
|
113
|
+
declare function popRecordsNav(state: RecordsNavState): {
|
|
114
|
+
readonly state: RecordsNavState;
|
|
115
|
+
readonly handled: boolean;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The consumer's own transition rule for a screen-declared edge:
|
|
119
|
+
* - `dashboard` is the root: reaching it resets the stack (consent success `router.replace`s the dashboard,
|
|
120
|
+
* a published request pushes it; both end on one dashboard with nothing to pop back into);
|
|
121
|
+
* - `upload -> request` replaces (the upload screen's "Done" is a `router.replace`);
|
|
122
|
+
* - everything else pushes.
|
|
123
|
+
*/
|
|
124
|
+
declare function transitionRecordsNav(state: RecordsNavState, to: RecordsScreen): RecordsNavState;
|
|
125
|
+
declare function recordsNavReducer(state: RecordsNavState, action: RecordsNavAction): RecordsNavState;
|
|
126
|
+
|
|
127
|
+
type ClinicLocation = NonNullable<RecordsClinicSearchInput['location']>;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* What a URL handed to `onOpenUrl` is: a revocable share link, the full record PDF (a short-lived presigned
|
|
131
|
+
* GET), or one file the member uploaded onto a request (`request_document`, web only; also short-lived).
|
|
132
|
+
*/
|
|
133
|
+
type RecordsUrlKind = 'share_link' | 'record_pdf' | 'request_document';
|
|
134
|
+
interface RecordsHostSeams {
|
|
135
|
+
/**
|
|
136
|
+
* Share a link, or save or preview a file, your app's way. Default, which never leaves your app: React
|
|
137
|
+
* Native shares the link through the OS share sheet (`Share.share`) and offers the PDF's short-lived link
|
|
138
|
+
* the same way (pass this seam to share the FILE, e.g. expo-file-system + expo-sharing); the web shares
|
|
139
|
+
* the link with `navigator.share`, else copies it, and saves a file in place with no new tab.
|
|
140
|
+
*/
|
|
141
|
+
readonly onOpenUrl?: (url: string, kind: RecordsUrlKind) => void | Promise<void>;
|
|
142
|
+
/** Copy a share link. Web default: `navigator.clipboard.writeText`; React Native has no default (see above). */
|
|
143
|
+
readonly onCopy?: (text: string) => Promise<void>;
|
|
144
|
+
/** The Ask pills' seed prompt and entity, for a host chat. Absent: no Ask pill renders. */
|
|
145
|
+
readonly onAsk?: RecordsAskHandler;
|
|
146
|
+
/** Biases the clinic search (the same input the clinic controller takes). */
|
|
147
|
+
readonly location?: ClinicLocation;
|
|
148
|
+
}
|
|
149
|
+
interface RecordsScreenBaseProps extends RecordsHostSeams {
|
|
150
|
+
readonly petRef: PetRef;
|
|
151
|
+
/** The pet's display name for headers and lead copy; absent, the consumer's own `your pet` forms. */
|
|
152
|
+
readonly petName?: string;
|
|
153
|
+
/** Called with the exact screen an edge leads to (see `navigation.ts`). Absent, a control that only navigates is hidden, never inert. */
|
|
154
|
+
readonly onNavigate?: (to: RecordsScreen) => void;
|
|
155
|
+
/** The header's back control; absent, no back control renders. */
|
|
156
|
+
readonly onBack?: () => void;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export { type ClinicDraft as C, type RecordsHostSeams as R, type ClinicLocation as a, type RecordsScreen as b, type RecordsScreenBaseProps as c, type RecordsUrlKind as d, type ClinicBatchBaseProps as e, type RecordsNavAction as f, type RecordsNavState as g, type RegisterSignaturePng as h, currentRecordsScreen as i, initialRecordsNav as j, pushRecordsNav as k, replaceRecordsNav as l, resetRecordsNav as m, popRecordsNav as p, recordsNavReducer as r, transitionRecordsNav as t };
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { P as PetRef, R as RecordsRequestId } from './ids.d-B2GAAifq.cjs';
|
|
2
|
+
import { R as RecordsClinicBatch, a as RecordsClinicBatchClient } from './clinicBatch.d-Ccmrngcu.cjs';
|
|
3
|
+
import { C as CaptureRecordsSignature, R as RecordsClinicController } from './clinicRequestProps.d-1dCtouGA.cjs';
|
|
4
|
+
import { R as RecordsClinic, c as RecordsClinicSearchInput } from './clinicModels.d-BXgKZqDb.cjs';
|
|
5
|
+
import { a as RecordsAskHandler } from './recordsAsk.d-C5CGSi3j.cjs';
|
|
6
|
+
|
|
7
|
+
/** One composed clinic of the batch (the consumer `ClinicRequestDraft`). */
|
|
8
|
+
interface ClinicDraft {
|
|
9
|
+
/** Stable local key for list rows and removal. */
|
|
10
|
+
readonly key: string;
|
|
11
|
+
/** The directory clinic, or null for an owner-typed clinic name. */
|
|
12
|
+
readonly clinic: RecordsClinic | null;
|
|
13
|
+
/** The owner-typed clinic name when `clinic` is null. */
|
|
14
|
+
readonly freeText: string | null;
|
|
15
|
+
/** The owner-supplied address, when the clinic needs one. */
|
|
16
|
+
readonly email: string;
|
|
17
|
+
/** Minted when the draft is added; a whole-batch retry replays it. */
|
|
18
|
+
readonly idempotencyKey: string;
|
|
19
|
+
}
|
|
20
|
+
interface ClinicBatchBaseProps {
|
|
21
|
+
readonly petRef: PetRef;
|
|
22
|
+
/** Display name for this exact registered petRef (empty: `your pet`); the server owns the final PDF identity. */
|
|
23
|
+
readonly petName: string;
|
|
24
|
+
/** Initial value only; the owner can visibly confirm or correct it before signing. */
|
|
25
|
+
readonly ownerName: string;
|
|
26
|
+
readonly onCaptureSignature?: CaptureRecordsSignature;
|
|
27
|
+
/** Called once with the batch outcome (created and failed clinics alike). */
|
|
28
|
+
readonly onCreated?: (batch: RecordsClinicBatch) => void;
|
|
29
|
+
readonly onClose?: () => void;
|
|
30
|
+
/** Host/test seams over the same signed-user contracts. */
|
|
31
|
+
readonly controller?: RecordsClinicController;
|
|
32
|
+
readonly batchClient?: RecordsClinicBatchClient;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Turn the pad's inline PNG into a registered signature id, so the batch carries one small id per clinic rather
|
|
36
|
+
* than one PNG per clinic (the platform caps the inline bytes of a batch at one signature's worth, and the WAF
|
|
37
|
+
* caps the JSON body). The host supplies the byte transport; the RN and web hosts each have one.
|
|
38
|
+
*/
|
|
39
|
+
type RegisterSignaturePng = (signaturePngBase64: string, signal: AbortSignal) => Promise<{
|
|
40
|
+
readonly signatureId: string;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
type RecordsScreen = {
|
|
44
|
+
readonly name: 'dashboard';
|
|
45
|
+
} | {
|
|
46
|
+
readonly name: 'request';
|
|
47
|
+
readonly requestId: RecordsRequestId;
|
|
48
|
+
} | {
|
|
49
|
+
readonly name: 'timeline';
|
|
50
|
+
} | {
|
|
51
|
+
readonly name: 'record';
|
|
52
|
+
} | {
|
|
53
|
+
readonly name: 'document';
|
|
54
|
+
} | {
|
|
55
|
+
readonly name: 'contributions';
|
|
56
|
+
readonly docId: string;
|
|
57
|
+
} | {
|
|
58
|
+
readonly name: 'clinicPicker';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The multi-clinic composer (`EverfurClinicRequestBatch`). The consumer opens it as a SHEET from the full
|
|
62
|
+
* record screen's header (RequestFromClinicsAction.tsx); the SDK flow has no sheet layer of its own, so it is
|
|
63
|
+
* a screen of the same stack, pushed from the same control and popped by the same back.
|
|
64
|
+
*/
|
|
65
|
+
| {
|
|
66
|
+
readonly name: 'clinicBatch';
|
|
67
|
+
} | {
|
|
68
|
+
readonly name: 'consent';
|
|
69
|
+
readonly clinic: ClinicDraft;
|
|
70
|
+
} | {
|
|
71
|
+
readonly name: 'upload';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Every upload and clinic request for the pet, each with its own status: the consumer's
|
|
75
|
+
* `RecordsRequestListScreen` (everfur-mobile src/features/records/ui/RecordsRequestListScreen.tsx, the
|
|
76
|
+
* `/records/requests` route the dashboard's `RecordsRequestsStatusCard` opens). On the web it is the
|
|
77
|
+
* records page's own request list.
|
|
78
|
+
*/
|
|
79
|
+
| {
|
|
80
|
+
readonly name: 'requests';
|
|
81
|
+
};
|
|
82
|
+
interface RecordsNavState {
|
|
83
|
+
readonly stack: readonly RecordsScreen[];
|
|
84
|
+
}
|
|
85
|
+
type RecordsNavAction = {
|
|
86
|
+
readonly type: 'push';
|
|
87
|
+
readonly screen: RecordsScreen;
|
|
88
|
+
} | {
|
|
89
|
+
readonly type: 'pop';
|
|
90
|
+
} | {
|
|
91
|
+
readonly type: 'replace';
|
|
92
|
+
readonly screen: RecordsScreen;
|
|
93
|
+
} | {
|
|
94
|
+
readonly type: 'reset';
|
|
95
|
+
readonly screen: RecordsScreen;
|
|
96
|
+
}
|
|
97
|
+
/** The screen-declared edge: applies the consumer's push / replace / reset rule for the (from, to) pair. */
|
|
98
|
+
| {
|
|
99
|
+
readonly type: 'navigate';
|
|
100
|
+
readonly screen: RecordsScreen;
|
|
101
|
+
};
|
|
102
|
+
/** A one-screen stack at `initial` (the dashboard when omitted). */
|
|
103
|
+
declare function initialRecordsNav(initial?: RecordsScreen): RecordsNavState;
|
|
104
|
+
/** The screen on top of the stack (a stack is never empty). */
|
|
105
|
+
declare function currentRecordsScreen(state: RecordsNavState): RecordsScreen;
|
|
106
|
+
declare function pushRecordsNav(state: RecordsNavState, screen: RecordsScreen): RecordsNavState;
|
|
107
|
+
declare function replaceRecordsNav(state: RecordsNavState, screen: RecordsScreen): RecordsNavState;
|
|
108
|
+
declare function resetRecordsNav(screen: RecordsScreen): RecordsNavState;
|
|
109
|
+
/**
|
|
110
|
+
* Pop the top screen. On a one-screen stack the state is returned UNCHANGED with `handled:false`, so the RN
|
|
111
|
+
* flow's back handler can return `false` and let the host navigator handle the press.
|
|
112
|
+
*/
|
|
113
|
+
declare function popRecordsNav(state: RecordsNavState): {
|
|
114
|
+
readonly state: RecordsNavState;
|
|
115
|
+
readonly handled: boolean;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* The consumer's own transition rule for a screen-declared edge:
|
|
119
|
+
* - `dashboard` is the root: reaching it resets the stack (consent success `router.replace`s the dashboard,
|
|
120
|
+
* a published request pushes it; both end on one dashboard with nothing to pop back into);
|
|
121
|
+
* - `upload -> request` replaces (the upload screen's "Done" is a `router.replace`);
|
|
122
|
+
* - everything else pushes.
|
|
123
|
+
*/
|
|
124
|
+
declare function transitionRecordsNav(state: RecordsNavState, to: RecordsScreen): RecordsNavState;
|
|
125
|
+
declare function recordsNavReducer(state: RecordsNavState, action: RecordsNavAction): RecordsNavState;
|
|
126
|
+
|
|
127
|
+
type ClinicLocation = NonNullable<RecordsClinicSearchInput['location']>;
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* What a URL handed to `onOpenUrl` is: a revocable share link, the full record PDF (a short-lived presigned
|
|
131
|
+
* GET), or one file the member uploaded onto a request (`request_document`, web only; also short-lived).
|
|
132
|
+
*/
|
|
133
|
+
type RecordsUrlKind = 'share_link' | 'record_pdf' | 'request_document';
|
|
134
|
+
interface RecordsHostSeams {
|
|
135
|
+
/**
|
|
136
|
+
* Share a link, or save or preview a file, your app's way. Default, which never leaves your app: React
|
|
137
|
+
* Native shares the link through the OS share sheet (`Share.share`) and offers the PDF's short-lived link
|
|
138
|
+
* the same way (pass this seam to share the FILE, e.g. expo-file-system + expo-sharing); the web shares
|
|
139
|
+
* the link with `navigator.share`, else copies it, and saves a file in place with no new tab.
|
|
140
|
+
*/
|
|
141
|
+
readonly onOpenUrl?: (url: string, kind: RecordsUrlKind) => void | Promise<void>;
|
|
142
|
+
/** Copy a share link. Web default: `navigator.clipboard.writeText`; React Native has no default (see above). */
|
|
143
|
+
readonly onCopy?: (text: string) => Promise<void>;
|
|
144
|
+
/** The Ask pills' seed prompt and entity, for a host chat. Absent: no Ask pill renders. */
|
|
145
|
+
readonly onAsk?: RecordsAskHandler;
|
|
146
|
+
/** Biases the clinic search (the same input the clinic controller takes). */
|
|
147
|
+
readonly location?: ClinicLocation;
|
|
148
|
+
}
|
|
149
|
+
interface RecordsScreenBaseProps extends RecordsHostSeams {
|
|
150
|
+
readonly petRef: PetRef;
|
|
151
|
+
/** The pet's display name for headers and lead copy; absent, the consumer's own `your pet` forms. */
|
|
152
|
+
readonly petName?: string;
|
|
153
|
+
/** Called with the exact screen an edge leads to (see `navigation.ts`). Absent, a control that only navigates is hidden, never inert. */
|
|
154
|
+
readonly onNavigate?: (to: RecordsScreen) => void;
|
|
155
|
+
/** The header's back control; absent, no back control renders. */
|
|
156
|
+
readonly onBack?: () => void;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export { type ClinicDraft as C, type RecordsHostSeams as R, type ClinicLocation as a, type RecordsScreen as b, type RecordsScreenBaseProps as c, type RecordsUrlKind as d, type ClinicBatchBaseProps as e, type RecordsNavAction as f, type RecordsNavState as g, type RegisterSignaturePng as h, currentRecordsScreen as i, initialRecordsNav as j, pushRecordsNav as k, replaceRecordsNav as l, resetRecordsNav as m, popRecordsNav as p, recordsNavReducer as r, transitionRecordsNav as t };
|