@everfur/sdk 0.15.0 → 0.15.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 +38 -0
- package/LICENSE.md +1 -0
- package/README.md +12 -5
- package/SDK-LICENSE.txt +130 -0
- package/THIRD_PARTY_NOTICES +9 -0
- package/dist/CameraPort.d-Cv31Pz7g.d.cts +1 -0
- package/dist/CameraPort.d-Cv31Pz7g.d.ts +1 -0
- package/dist/{Chat.d-CtfANk3A.d.cts → Chat.d-BO5iJsR2.d.cts} +12 -3
- package/dist/{Chat.d-a7Ksz7NZ.d.ts → Chat.d-BlsnQwCQ.d.ts} +12 -3
- package/dist/{DepthViews.d-DbJejGm3.d.ts → DepthViews.d--1daZblh.d.cts} +2 -1
- package/dist/{DepthViews.d-dXWL6ToG.d.cts → DepthViews.d-BuEWI6Ln.d.ts} +2 -1
- package/dist/{DepthViews.d-CuBElgEc.d.ts → DepthViews.d-CKTnEeUo.d.ts} +2 -1
- package/dist/{DepthViews.d-BqMnWSMu.d.cts → DepthViews.d-PuBGdAYk.d.cts} +2 -1
- package/dist/ErrorPolicyPort.d-68yrE3BE.d.ts +1 -0
- package/dist/ErrorPolicyPort.d-DirW9hgO.d.cts +1 -0
- package/dist/EverfurError.d-8NHtlgzA.d.cts +1 -0
- package/dist/EverfurError.d-8NHtlgzA.d.ts +1 -0
- package/dist/EverfurResult.d-BFH-3s6E.d.cts +1 -0
- package/dist/EverfurResult.d-D_-254ZY.d.ts +1 -0
- package/dist/IntakeMedia.d-4a89XrP7.d.ts +1 -0
- package/dist/IntakeMedia.d-DGxrhgIW.d.ts +1 -0
- package/dist/IntakeMedia.d-DUPR4lVM.d.cts +1 -0
- package/dist/IntakeMedia.d-JJCUvQu7.d.cts +1 -0
- package/dist/LICENSE.md +1 -0
- package/dist/LifecyclePort.d-Cr1p33a7.d.cts +1 -0
- package/dist/LifecyclePort.d-Cr1p33a7.d.ts +1 -0
- package/dist/PhotoController.d-BzCJOE7e.d.cts +1 -0
- package/dist/PhotoController.d-D0XiUUOl.d.ts +1 -0
- package/dist/{RecordsPage.d-DKrZ9rHX.d.ts → RecordsPage.d-CBB8sfoY.d.ts} +2 -1
- package/dist/{RecordsPage.d-DRPdUAo4.d.cts → RecordsPage.d-Dq5gpQG0.d.cts} +2 -1
- package/dist/SDK-LICENSE.txt +130 -0
- package/dist/THIRD_PARTY_NOTICES +9 -0
- package/dist/TelemetryPort.d-BDNr00hu.d.cts +1 -0
- package/dist/TelemetryPort.d-BDNr00hu.d.ts +1 -0
- package/dist/animations/index.cjs +2 -1
- package/dist/animations/index.d.cts +22 -21
- package/dist/animations/index.d.ts +22 -21
- package/dist/animations/index.js +2 -1
- package/dist/{attachments.d-CoQhXrP9.d.ts → attachments.d-C2nkIyDB.d.ts} +3 -2
- package/dist/{attachments.d-BGn2_knv.d.ts → attachments.d-DFP9yvz9.d.ts} +7 -6
- package/dist/{attachments.d-CpaOfi2g.d.cts → attachments.d-DRHsJkni.d.cts} +7 -6
- package/dist/{attachments.d-CqHMGoER.d.cts → attachments.d-DRUC35Ti.d.cts} +3 -2
- package/dist/{bookingCopy.d-BwCOCZUj.d.ts → bookingCopy.d-CFL-1Be2.d.ts} +3 -2
- package/dist/{bookingCopy.d-Bnq2zk0F.d.cts → bookingCopy.d-bF_QknDC.d.cts} +3 -2
- package/dist/branding.d-Bbc6p1XY.d.cts +1 -0
- package/dist/branding.d-y6c0UwhE.d.ts +1 -0
- package/dist/cacheEpoch.d-DknKn3S0.d.cts +1 -0
- package/dist/cacheEpoch.d-DknKn3S0.d.ts +1 -0
- package/dist/callCopy.d-Bw6oZT54.d.cts +1 -0
- package/dist/callCopy.d-Bw6oZT54.d.ts +1 -0
- package/dist/callRoom.d-B1DoYdJe.d.cts +1 -0
- package/dist/callRoom.d-Dqm1rUqT.d.ts +1 -0
- package/dist/{casesRepository.d-CsUJ2Oyb.d.cts → casesRepository.d-BMOnT1fg.d.cts} +2 -1
- package/dist/{casesRepository.d-DG83Ggbq.d.ts → casesRepository.d-C__BnffJ.d.ts} +2 -1
- package/dist/chat/index.cjs +13 -12
- package/dist/chat/index.d.cts +10 -9
- package/dist/chat/index.d.ts +10 -9
- package/dist/chat/index.js +13 -12
- package/dist/client/index.cjs +2 -1
- package/dist/client/index.d.cts +7 -6
- package/dist/client/index.d.ts +7 -6
- package/dist/client/index.js +2 -1
- package/dist/{clinicBatch.d-BLpbpS51.d.cts → clinicBatch.d-C5deJ4xY.d.cts} +3 -2
- package/dist/{clinicBatch.d-Byjx4y_W.d.ts → clinicBatch.d-D68RYvc3.d.ts} +3 -2
- package/dist/clinicModels.d-BXgKZqDb.d.cts +1 -0
- package/dist/clinicModels.d-CaS64-P-.d.ts +1 -0
- package/dist/clinicRequestProps.d-1dCtouGA.d.cts +1 -0
- package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +1 -0
- package/dist/{config.d-C0WgjutL.d.cts → config.d-BQgrIDdu.d.cts} +2 -1
- package/dist/{config.d-zd2eTb2L.d.ts → config.d-XSMThgVj.d.ts} +2 -1
- package/dist/consent/index.cjs +1 -0
- package/dist/consent/index.d.cts +6 -5
- package/dist/consent/index.d.ts +6 -5
- package/dist/consent/index.js +1 -0
- package/dist/{context.d-Du_UPxa1.d.cts → context.d-Ba8YyJpk.d.cts} +6 -5
- package/dist/{context.d-BBjmV0rz.d.ts → context.d-xoh5vmxS.d.ts} +6 -5
- package/dist/{copy.d-Da_PP2K3.d.cts → copy.d-Cq-s-UUv.d.cts} +3 -2
- package/dist/{copy.d-D_VVj01o.d.ts → copy.d-HV9fU5kh.d.ts} +3 -2
- package/dist/core/index.cjs +2 -1
- package/dist/core/index.d.cts +14 -13
- package/dist/core/index.d.ts +14 -13
- package/dist/core/index.js +2 -1
- package/dist/{depth.d-BEedifOR.d.ts → depth.d-D7kKiYl7.d.ts} +3 -2
- package/dist/{depth.d-RTV61QNf.d.cts → depth.d-DYnkz8Re.d.cts} +3 -2
- package/dist/{entitlementRepository.d-C-stdRyA.d.cts → entitlementRepository.d-B_kEPLhz.d.cts} +3 -2
- package/dist/{entitlementRepository.d-BwThmh3V.d.ts → entitlementRepository.d-DmnUZLl_.d.ts} +3 -2
- package/dist/features.d-DrQxTw3-.d.cts +1 -0
- package/dist/features.d-DrQxTw3-.d.ts +1 -0
- package/dist/{focus.d-Dsm39DjO.d.cts → focus.d-BHm_QtQ9.d.cts} +3 -2
- package/dist/{focus.d-CtotIyEt.d.ts → focus.d-CjL6Cj0m.d.ts} +3 -2
- package/dist/health-plan/index.cjs +2 -1
- package/dist/health-plan/index.d.cts +9 -8
- package/dist/health-plan/index.d.ts +9 -8
- package/dist/health-plan/index.js +2 -1
- package/dist/{idempotency.d-Cv-B7SfC.d.ts → idempotency.d-BSRK8od4.d.cts} +2 -1
- package/dist/{idempotency.d-Bfm7oIxS.d.cts → idempotency.d-CFc4CCc9.d.ts} +2 -1
- package/dist/{identity.d-BksOEa6m.d.ts → identity.d-Be2Es9Td.d.ts} +2 -1
- package/dist/{identity.d-CioQhZrq.d.cts → identity.d-HbwYQ4-z.d.cts} +2 -1
- package/dist/ids.d-B2GAAifq.d.cts +1 -0
- package/dist/ids.d-B2GAAifq.d.ts +1 -0
- package/dist/index.cjs +14 -13
- package/dist/index.d.cts +13 -12
- package/dist/index.d.ts +13 -12
- package/dist/index.js +14 -13
- package/dist/{introEvents.d-tOi4o3F4.d.ts → introEvents.d-DflJ6J9H.d.ts} +2 -1
- package/dist/{introEvents.d-fAZitxMA.d.cts → introEvents.d-Dr34KIaD.d.cts} +2 -1
- package/dist/introEvents.d-dS3fJCH1.d.cts +1 -0
- package/dist/introEvents.d-dS3fJCH1.d.ts +1 -0
- package/dist/models.d-BSqvbTE1.d.cts +1 -0
- package/dist/models.d-DOwnr8fi.d.ts +1 -0
- package/dist/notifications/index.cjs +1 -0
- package/dist/notifications/index.d.cts +5 -4
- package/dist/notifications/index.d.ts +5 -4
- package/dist/notifications/index.js +1 -0
- package/dist/{optInView.d-B8zTORO2.d.ts → optInView.d-3mbj1mR6.d.ts} +15 -2
- package/dist/{optInView.d-BkNSv4Gk.d.cts → optInView.d-D23o1gtT.d.cts} +15 -2
- package/dist/optionalModule.d-DbJmsq5f.d.cts +1 -0
- package/dist/optionalModule.d-DbJmsq5f.d.ts +1 -0
- package/dist/{parse.d-BgjO82mY.d.cts → parse.d-4lUXdmvY.d.cts} +2 -1
- package/dist/{parse.d-B5JHS6Pr.d.ts → parse.d-BERabxHw.d.ts} +2 -1
- package/dist/{pets.d-B_LoizOv.d.cts → pets.d-CHU0UbXt.d.cts} +2 -1
- package/dist/{pets.d-OWxskXCP.d.ts → pets.d-D_ayuqjp.d.ts} +2 -1
- package/dist/{petsRepository.d-B5DWzU7C.d.cts → petsRepository.d-Bwfe8yuR.d.cts} +2 -1
- package/dist/{petsRepository.d-Ba3xhJcj.d.ts → petsRepository.d-DUaAWoTv.d.ts} +2 -1
- package/dist/photo/index.cjs +1 -0
- package/dist/photo/index.d.cts +1 -0
- package/dist/photo/index.d.ts +1 -0
- package/dist/photo/index.js +1 -0
- package/dist/{planSignals.d-DtxZoWGM.d.ts → planSignals.d-CON9gTvJ.d.ts} +3 -2
- package/dist/{planSignals.d-Cl6n5QpS.d.cts → planSignals.d-Dha2CMDF.d.cts} +3 -2
- package/dist/ports.d-BX4f4UsB.d.cts +1 -0
- package/dist/ports.d-BX4f4UsB.d.ts +1 -0
- package/dist/{ports.d-gZNTn8Qf.d.cts → ports.d-ClbPRUtx.d.cts} +5 -4
- package/dist/{ports.d-BDtwHxmW.d.ts → ports.d-DzEJMVRs.d.ts} +5 -4
- package/dist/presentation.d-vy8kTGfR.d.cts +1 -0
- package/dist/presentation.d-vy8kTGfR.d.ts +1 -0
- package/dist/profile.d-CSs1wlXT.d.cts +1 -0
- package/dist/profile.d-CSs1wlXT.d.ts +1 -0
- package/dist/projection.d-CeIUsbSk.d.cts +1 -0
- package/dist/projection.d-CeIUsbSk.d.ts +1 -0
- package/dist/quickPrompts.d-NM_81Jc1.d.cts +1 -0
- package/dist/quickPrompts.d-NM_81Jc1.d.ts +1 -0
- package/dist/records/depth/index.cjs +1 -0
- package/dist/records/depth/index.d.cts +10 -9
- package/dist/records/depth/index.d.ts +10 -9
- package/dist/records/depth/index.js +1 -0
- package/dist/records/index.cjs +3 -2
- package/dist/records/index.d.cts +11 -10
- package/dist/records/index.d.ts +11 -10
- package/dist/records/index.js +3 -2
- package/dist/recordsAsk.d-C5CGSi3j.d.cts +1 -0
- package/dist/recordsAsk.d-C5CGSi3j.d.ts +1 -0
- package/dist/{requestFunnel.d-CR4akGCY.d.cts → requestFunnel.d-JoqddYSx.d.cts} +3 -2
- package/dist/{requestFunnel.d-DFf9C__p.d.ts → requestFunnel.d-YabU6G-Z.d.ts} +3 -2
- package/dist/resolve.d-CoQWUy1Y.d.cts +1 -0
- package/dist/resolve.d-CoQWUy1Y.d.ts +1 -0
- package/dist/{runtimeTypes.d-CHdH-y2c.d.cts → runtimeTypes.d-Cv38YuzP.d.cts} +5 -4
- package/dist/{runtimeTypes.d-BqBOrZxa.d.ts → runtimeTypes.d-DQTBJAbk.d.ts} +5 -4
- package/dist/{screenProps.d-CVqFJw-J.d.ts → screenProps.d-BuJLzFkN.d.ts} +2 -1
- package/dist/{screenProps.d-B1dIANI0.d.cts → screenProps.d-C-AuHoyF.d.cts} +2 -1
- package/dist/server/events/index.cjs +2 -1
- package/dist/server/events/index.d.cts +3 -2
- package/dist/server/events/index.d.ts +3 -2
- package/dist/server/events/index.js +2 -1
- package/dist/server/index.cjs +2 -1
- package/dist/server/index.d.cts +4 -3
- package/dist/server/index.d.ts +4 -3
- package/dist/server/index.js +2 -1
- package/dist/sheetCopy.d-CAhLOxjc.d.cts +1 -0
- package/dist/sheetCopy.d-CAhLOxjc.d.ts +1 -0
- package/dist/sheetSeam.d-B09jf4YC.d.ts +1 -0
- package/dist/sheetSeam.d-BBuEIVsa.d.cts +1 -0
- package/dist/shop/index.cjs +1 -0
- package/dist/shop/index.d.cts +4 -3
- package/dist/shop/index.d.ts +4 -3
- package/dist/shop/index.js +1 -0
- package/dist/species.d-BXAIMh7I.d.cts +1 -0
- package/dist/species.d-BXAIMh7I.d.ts +1 -0
- package/dist/tabs/index.cjs +1 -0
- package/dist/tabs/index.d.cts +7 -6
- package/dist/tabs/index.d.ts +7 -6
- package/dist/tabs/index.js +1 -0
- package/dist/tabsModel.d-BfIQg6yS.d.cts +1 -0
- package/dist/tabsModel.d-BfIQg6yS.d.ts +1 -0
- package/dist/televet/booking/index.cjs +1 -0
- package/dist/televet/booking/index.d.cts +7 -6
- package/dist/televet/booking/index.d.ts +7 -6
- package/dist/televet/booking/index.js +1 -0
- package/dist/televet/call/index.cjs +1 -0
- package/dist/televet/call/index.d.cts +1 -0
- package/dist/televet/call/index.d.ts +1 -0
- package/dist/televet/call/index.js +1 -0
- package/dist/televet/index.cjs +1 -0
- package/dist/televet/index.d.cts +1 -0
- package/dist/televet/index.d.ts +1 -0
- package/dist/televet/index.js +1 -0
- package/dist/televetGlobal.d-CC-DrqkQ.d.ts +1 -0
- package/dist/televetGlobal.d-CKwDCbmN.d.cts +1 -0
- package/dist/testing/index.cjs +1 -0
- package/dist/testing/index.d.cts +2 -1
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.js +1 -0
- package/dist/testing/rn/index.cjs +2 -2
- package/dist/testing/rn/index.d.cts +11 -9
- package/dist/testing/rn/index.d.ts +11 -9
- package/dist/testing/rn/index.js +2 -2
- package/dist/testing/web/index.cjs +1 -0
- package/dist/testing/web/index.d.cts +8 -7
- package/dist/testing/web/index.d.ts +8 -7
- package/dist/testing/web/index.js +1 -0
- package/dist/texting/index.cjs +2 -1
- package/dist/texting/index.d.cts +9 -6
- package/dist/texting/index.d.ts +9 -6
- package/dist/texting/index.js +2 -1
- package/dist/{threadOptions.d-DZ0AoQGk.d.ts → threadOptions.d-8x_1evAr.d.ts} +3 -2
- package/dist/{threadOptions.d-CnSfFVMr.d.cts → threadOptions.d-DBrmOwmb.d.cts} +3 -2
- package/dist/{timelineRows.d-CF1KvLcQ.d.cts → timelineRows.d-B6lLC8Ud.d.cts} +2 -1
- package/dist/{timelineRows.d-CtL0y7y1.d.ts → timelineRows.d-Brlkti-G.d.ts} +2 -1
- package/dist/tokens.d-BUVqme2D.d.cts +1 -0
- package/dist/tokens.d-BUVqme2D.d.ts +1 -0
- package/dist/typeStyle.d-B3Kdtjie.d.ts +1 -0
- package/dist/typeStyle.d-DmlwyJq-.d.cts +1 -0
- package/dist/uploadTransport.d-CWL7CdWP.d.cts +1 -0
- package/dist/uploadTransport.d-EGoUl7gX.d.ts +1 -0
- package/dist/useIntroSeen.d-CTWFUthO.d.cts +1 -0
- package/dist/useIntroSeen.d-CTWFUthO.d.ts +1 -0
- package/dist/{usePresentation.d-CZS0qlLI.d.cts → usePresentation.d-BcdCIuEU.d.cts} +2 -1
- package/dist/{usePresentation.d-BsR08Wxt.d.ts → usePresentation.d-Bne14SlX.d.ts} +2 -1
- package/dist/useRecords.d-BYNX01El.d.cts +1 -0
- package/dist/useRecords.d-DWk61a4c.d.ts +1 -0
- package/dist/{useRecordsDepth.d-DTAxFf5s.d.ts → useRecordsDepth.d-Cd6J03o5.d.ts} +2 -1
- package/dist/{useRecordsDepth.d-k-zYIHTe.d.cts → useRecordsDepth.d-DAa169VY.d.cts} +2 -1
- package/dist/useVetVisit.d-BtdwhmgD.d.cts +1 -0
- package/dist/useVetVisit.d-DoYQimyt.d.ts +1 -0
- package/dist/video/index.cjs +1 -0
- package/dist/video/index.d.cts +1 -0
- package/dist/video/index.d.ts +1 -0
- package/dist/video/index.js +1 -0
- package/dist/{view.d-CAWQjcY_.d.cts → view.d-3d5_O7Xk.d.cts} +4 -3
- package/dist/{view.d-BE7VOlsB.d.ts → view.d-DkGM8GNA.d.ts} +4 -3
- package/dist/visitIntent.d-D7_yVp1I.d.cts +1 -0
- package/dist/visitIntent.d-D7_yVp1I.d.ts +1 -0
- package/dist/web/consent/index.cjs +1 -0
- package/dist/web/consent/index.d.cts +6 -5
- package/dist/web/consent/index.d.ts +6 -5
- package/dist/web/consent/index.js +1 -0
- package/dist/web/health-plan/index.cjs +2 -1
- package/dist/web/health-plan/index.d.cts +11 -10
- package/dist/web/health-plan/index.d.ts +11 -10
- package/dist/web/health-plan/index.js +2 -1
- package/dist/web/index.cjs +16 -13
- package/dist/web/index.d.cts +31 -22
- package/dist/web/index.d.ts +31 -22
- package/dist/web/index.js +16 -13
- package/dist/web/intro/index.cjs +1 -0
- package/dist/web/intro/index.d.cts +7 -6
- package/dist/web/intro/index.d.ts +7 -6
- package/dist/web/intro/index.js +1 -0
- package/dist/web/notifications/index.cjs +1 -0
- package/dist/web/notifications/index.d.cts +4 -3
- package/dist/web/notifications/index.d.ts +4 -3
- package/dist/web/notifications/index.js +1 -0
- package/dist/web/records/depth/index.cjs +1 -0
- package/dist/web/records/depth/index.d.cts +10 -9
- package/dist/web/records/depth/index.d.ts +10 -9
- package/dist/web/records/depth/index.js +1 -0
- package/dist/web/records/index.cjs +1 -0
- package/dist/web/records/index.d.cts +12 -11
- package/dist/web/records/index.d.ts +12 -11
- package/dist/web/records/index.js +1 -0
- package/dist/web/records/upload/index.cjs +1 -0
- package/dist/web/records/upload/index.d.cts +1 -0
- package/dist/web/records/upload/index.d.ts +1 -0
- package/dist/web/records/upload/index.js +1 -0
- package/dist/web/records-sheet/index.cjs +3 -2
- package/dist/web/records-sheet/index.d.cts +1 -0
- package/dist/web/records-sheet/index.d.ts +1 -0
- package/dist/web/records-sheet/index.js +3 -2
- package/dist/web/shop/index.cjs +1 -0
- package/dist/web/shop/index.d.cts +4 -3
- package/dist/web/shop/index.d.ts +4 -3
- package/dist/web/shop/index.js +1 -0
- package/dist/web/televet/booking/index.cjs +1 -0
- package/dist/web/televet/booking/index.d.cts +7 -6
- package/dist/web/televet/booking/index.d.ts +7 -6
- package/dist/web/televet/booking/index.js +1 -0
- package/dist/web/televet/call/index.cjs +1 -0
- package/dist/web/televet/call/index.d.cts +1 -0
- package/dist/web/televet/call/index.d.ts +1 -0
- package/dist/web/televet/call/index.js +1 -0
- package/dist/web/televet/index.cjs +1 -0
- package/dist/web/televet/index.d.cts +1 -0
- package/dist/web/televet/index.d.ts +1 -0
- package/dist/web/televet/index.js +1 -0
- package/dist/web/texting/index.cjs +2 -1
- package/dist/web/texting/index.d.cts +9 -6
- package/dist/web/texting/index.d.ts +9 -6
- package/dist/web/texting/index.js +2 -1
- package/package.json +10 -5
- package/LICENSE +0 -21
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import{timingSafeEqual,createHmac,randomUUID}from"crypto";function ok(value,warning){/* @__PURE__ */
|
|
2
3
|
return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
|
|
3
|
-
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var EVERFUR_SIGNATURE_HEADER="Everfur-Signature",DEFAULT_WEBHOOK_TOLERANCE_SECONDS=300,SIGNATURE_SCHEME="v1",MAX_HEADER_LENGTH=4096,HEX_SHA256_LENGTH=64,DIGITS=/^[0-9]+$/,EverfurWebhookVerificationError=class _EverfurWebhookVerificationError extends Error{constructor(code){super(`Everfur webhook verification failed: ${code}`),this.name="EverfurWebhookVerificationError",this.code=code,Object.setPrototypeOf(this,_EverfurWebhookVerificationError.prototype)}};function constructEvent(payload,signatureHeader,secrets,options={}){let body=rawBodyBytes(payload),keys=requireSecrets(secrets),tolerance=options.toleranceSeconds??DEFAULT_WEBHOOK_TOLERANCE_SECONDS;if(!Number.isInteger(tolerance)||tolerance<0)throw new EverfurConfigError("invalid-argument","toleranceSeconds must be a non-negative integer");let parsed=parseSignatureHeader(signatureHeader),now=options.nowSeconds??Math.floor(Date.now()/1e3);if(Math.abs(now-parsed.timestamp)>tolerance)throw new EverfurWebhookVerificationError("timestamp_outside_tolerance");let matched=false;for(let key of keys){let expected=Buffer.from(computeSignature(key,parsed.timestamp,body),"ascii");for(let candidate of parsed.signatures){if(candidate.length!==HEX_SHA256_LENGTH)continue;let actual=Buffer.from(candidate,"utf8");actual.length===expected.length&&timingSafeEqual(expected,actual)&&(matched=true)}}if(!matched)throw new EverfurWebhookVerificationError("no_matching_signature");return parseEnvelope(body)}function generateTestSignatureHeader(params){let body=rawBodyBytes(params.payload),keys=requireSecrets(params.secrets),timestamp=params.timestamp??Math.floor(Date.now()/1e3);if(!Number.isSafeInteger(timestamp)||timestamp<0)throw new EverfurConfigError("invalid-argument","timestamp must be a non-negative integer (unix seconds)");return[`t=${timestamp}`,...keys.map(key=>`${SIGNATURE_SCHEME}=${computeSignature(key,timestamp,body)}`)].join(",")}function computeSignature(secret,timestamp,body){return createHmac("sha256",Buffer.from(secret,"utf8")).update(`${timestamp}.`,"ascii").update(body).digest("hex")}function rawBodyBytes(payload){if(typeof payload=="string")return Buffer.from(payload,"utf8");if(payload instanceof Uint8Array)return payload;throw new EverfurConfigError("invalid-argument","constructEvent needs the raw request body (a string or a Buffer), not parsed JSON: re-serialised JSON does not reproduce the signed bytes.")}function requireSecrets(secrets){let list=typeof secrets=="string"?[secrets]:Array.isArray(secrets)?secrets:[];if(list.length===0||list.some(s=>typeof s!="string"||s.length===0))throw new EverfurConfigError("invalid-argument","at least one non-empty webhook signing secret is required");return list}function parseSignatureHeader(header){if(typeof header!="string"||header.length===0||header.length>MAX_HEADER_LENGTH)throw new EverfurWebhookVerificationError("malformed_header");let timestamp=null,signatures=[];for(let item of header.split(",")){let trimmed=item.trim(),at=trimmed.indexOf("=");if(at<0)throw new EverfurWebhookVerificationError("malformed_header");let key=trimmed.slice(0,at),value=trimmed.slice(at+1);if(key==="t"){if(timestamp!==null||!DIGITS.test(value))throw new EverfurWebhookVerificationError("malformed_header");let parsed=Number(value);if(!Number.isSafeInteger(parsed))throw new EverfurWebhookVerificationError("malformed_header");timestamp=parsed}else key===SIGNATURE_SCHEME&&signatures.push(value)}if(timestamp===null||signatures.length===0)throw new EverfurWebhookVerificationError("malformed_header");return{timestamp:timestamp,signatures:signatures}}function parseEnvelope(body){let json;try{json=JSON.parse(Buffer.from(body.buffer,body.byteOffset,body.byteLength).toString("utf8"))}catch{throw new EverfurWebhookVerificationError("malformed_payload")}if(!isRecord(json))throw new EverfurWebhookVerificationError("malformed_payload");let{id:id,object:object,type:type,api_version:apiVersion,created:created,livemode:livemode,data:data}=json;if(typeof id!="string"||id.length===0||object!=="event"||typeof type!="string"||type.length===0||typeof apiVersion!="string"||typeof created!="number"||typeof livemode!="boolean"||!isRecord(data)||!isRecord(data.object))throw new EverfurWebhookVerificationError("malformed_payload");return json}function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}var SDK_VERSION="0.15.
|
|
4
|
+
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var EVERFUR_SIGNATURE_HEADER="Everfur-Signature",DEFAULT_WEBHOOK_TOLERANCE_SECONDS=300,SIGNATURE_SCHEME="v1",MAX_HEADER_LENGTH=4096,HEX_SHA256_LENGTH=64,DIGITS=/^[0-9]+$/,EverfurWebhookVerificationError=class _EverfurWebhookVerificationError extends Error{constructor(code){super(`Everfur webhook verification failed: ${code}`),this.name="EverfurWebhookVerificationError",this.code=code,Object.setPrototypeOf(this,_EverfurWebhookVerificationError.prototype)}};function constructEvent(payload,signatureHeader,secrets,options={}){let body=rawBodyBytes(payload),keys=requireSecrets(secrets),tolerance=options.toleranceSeconds??DEFAULT_WEBHOOK_TOLERANCE_SECONDS;if(!Number.isInteger(tolerance)||tolerance<0)throw new EverfurConfigError("invalid-argument","toleranceSeconds must be a non-negative integer");let parsed=parseSignatureHeader(signatureHeader),now=options.nowSeconds??Math.floor(Date.now()/1e3);if(Math.abs(now-parsed.timestamp)>tolerance)throw new EverfurWebhookVerificationError("timestamp_outside_tolerance");let matched=false;for(let key of keys){let expected=Buffer.from(computeSignature(key,parsed.timestamp,body),"ascii");for(let candidate of parsed.signatures){if(candidate.length!==HEX_SHA256_LENGTH)continue;let actual=Buffer.from(candidate,"utf8");actual.length===expected.length&&timingSafeEqual(expected,actual)&&(matched=true)}}if(!matched)throw new EverfurWebhookVerificationError("no_matching_signature");return parseEnvelope(body)}function generateTestSignatureHeader(params){let body=rawBodyBytes(params.payload),keys=requireSecrets(params.secrets),timestamp=params.timestamp??Math.floor(Date.now()/1e3);if(!Number.isSafeInteger(timestamp)||timestamp<0)throw new EverfurConfigError("invalid-argument","timestamp must be a non-negative integer (unix seconds)");return[`t=${timestamp}`,...keys.map(key=>`${SIGNATURE_SCHEME}=${computeSignature(key,timestamp,body)}`)].join(",")}function computeSignature(secret,timestamp,body){return createHmac("sha256",Buffer.from(secret,"utf8")).update(`${timestamp}.`,"ascii").update(body).digest("hex")}function rawBodyBytes(payload){if(typeof payload=="string")return Buffer.from(payload,"utf8");if(payload instanceof Uint8Array)return payload;throw new EverfurConfigError("invalid-argument","constructEvent needs the raw request body (a string or a Buffer), not parsed JSON: re-serialised JSON does not reproduce the signed bytes.")}function requireSecrets(secrets){let list=typeof secrets=="string"?[secrets]:Array.isArray(secrets)?secrets:[];if(list.length===0||list.some(s=>typeof s!="string"||s.length===0))throw new EverfurConfigError("invalid-argument","at least one non-empty webhook signing secret is required");return list}function parseSignatureHeader(header){if(typeof header!="string"||header.length===0||header.length>MAX_HEADER_LENGTH)throw new EverfurWebhookVerificationError("malformed_header");let timestamp=null,signatures=[];for(let item of header.split(",")){let trimmed=item.trim(),at=trimmed.indexOf("=");if(at<0)throw new EverfurWebhookVerificationError("malformed_header");let key=trimmed.slice(0,at),value=trimmed.slice(at+1);if(key==="t"){if(timestamp!==null||!DIGITS.test(value))throw new EverfurWebhookVerificationError("malformed_header");let parsed=Number(value);if(!Number.isSafeInteger(parsed))throw new EverfurWebhookVerificationError("malformed_header");timestamp=parsed}else key===SIGNATURE_SCHEME&&signatures.push(value)}if(timestamp===null||signatures.length===0)throw new EverfurWebhookVerificationError("malformed_header");return{timestamp:timestamp,signatures:signatures}}function parseEnvelope(body){let json;try{json=JSON.parse(Buffer.from(body.buffer,body.byteOffset,body.byteLength).toString("utf8"))}catch{throw new EverfurWebhookVerificationError("malformed_payload")}if(!isRecord(json))throw new EverfurWebhookVerificationError("malformed_payload");let{id:id,object:object,type:type,api_version:apiVersion,created:created,livemode:livemode,data:data}=json;if(typeof id!="string"||id.length===0||object!=="event"||typeof type!="string"||type.length===0||typeof apiVersion!="string"||typeof created!="number"||typeof livemode!="boolean"||!isRecord(data)||!isRecord(data.object))throw new EverfurWebhookVerificationError("malformed_payload");return json}function isRecord(value){return typeof value=="object"&&value!==null&&!Array.isArray(value)}var SDK_VERSION="0.15.1",SDK_PLATFORM="react-native",DEFAULT_CONTRACT_VERSION="2026-09-19",ENV_API_BASE_URL="EVERFUR_API_BASE_URL";function configFailure(reason,message){/* @__PURE__ */
|
|
4
5
|
return Object.freeze({ok:false,failure:/* @__PURE__ */Object.freeze({reason:reason,message:message})})}function tryResolveApiBaseUrl(apiBaseUrl){let explicit=apiBaseUrl?.trim(),candidate=explicit&&explicit.length>0?explicit:readEnv(ENV_API_BASE_URL);return candidate?normalizeBaseUrl(candidate):configFailure("missing-api-base-url",`apiBaseUrl is required: pass config.apiBaseUrl or set ${ENV_API_BASE_URL}. The SDK never ships a hardcoded host.`)}function resolveApiBaseUrl(apiBaseUrl){let outcome=tryResolveApiBaseUrl(apiBaseUrl);if(!outcome.ok)throw new EverfurConfigError("invalid-argument",outcome.failure.message);return outcome.value}function buildBaseHeaders(cfg){return{"X-Everfur-SDK-Version":cfg.sdkVersion,"X-Everfur-SDK-Platform":cfg.platform,"X-Everfur-Contract":cfg.contractVersion}}var ABSOLUTE_URL=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/;function hostOf(authority){return authority.slice(authority.lastIndexOf("@")+1).replace(/:\d+$/,"").toLowerCase()}function isPrintableHost(host){return host.length===0||host.includes("@")?false:host.startsWith("[")&&host.endsWith("]")?true:!host.includes(":")}function canEchoOrigin(rawTrimmed,host){let schemeEnd=rawTrimmed.indexOf("://");return schemeEnd<0||rawTrimmed.slice(schemeEnd+3).includes("@")?false:isPrintableHost(host)}function safeOrigin(scheme,host){return`${scheme}://${host}`}function normalizeBaseUrl(raw){let trimmed=raw.trim(),match=ABSOLUTE_URL.exec(trimmed);if(match===null||match[2]===void 0||match[2].length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let scheme=(match[1]??"").toLowerCase(),host=hostOf(match[2]);if(host.length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let shown=canEchoOrigin(trimmed,host)?`: ${safeOrigin(scheme,host)}`:"";if(scheme!=="https"){if(!(scheme==="http"&&isLoopbackHost(host)))return scheme==="http"?configFailure("insecure-api-base-url",`apiBaseUrl must use https (cleartext http is only allowed for localhost)${shown}`):configFailure("unsupported-api-base-url-scheme",`apiBaseUrl must be http(s)${shown}`)}let value=trimmed.endsWith("/")?trimmed.slice(0,-1):trimmed;/* @__PURE__ */
|
|
5
6
|
return Object.freeze({ok:true,value:value})}function isLoopbackHost(hostname){let host=hostname.toLowerCase();return host==="localhost"||host==="127.0.0.1"||host==="[::1]"||host==="::1"}function readEnv(name){let value=globalThis.process?.env?.[name];return typeof value=="string"&&value.trim().length>0?value.trim():void 0}var DAILY_QUOTA_WIRE_CODE="DAILY_QUOTA_EXCEEDED",THROTTLES=/* @__PURE__ */new Set(["THROTTLINGEXCEPTION","RATELIMITED","TOOMANYREQUESTS"]);function foldDailyQuotaWireCode(code,body){if(!THROTTLES.has(code.toUpperCase().replace(/[^A-Z0-9]/g,"")))return code;let b=body,limit=b?.daily_limit??b?.error?.daily_limit;return typeof limit=="number"&&Number.isFinite(limit)?DAILY_QUOTA_WIRE_CODE:code}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
|
|
6
7
|
/* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
|
package/dist/server/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
"use strict";function ok(value,warning){/* @__PURE__ */
|
|
2
3
|
return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
|
|
3
|
-
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var SDK_VERSION="0.15.
|
|
4
|
+
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var SDK_VERSION="0.15.1",SDK_PLATFORM="react-native",DEFAULT_CONTRACT_VERSION="2026-09-19",ENV_API_BASE_URL="EVERFUR_API_BASE_URL";function configFailure(reason,message){/* @__PURE__ */
|
|
4
5
|
return Object.freeze({ok:false,failure:/* @__PURE__ */Object.freeze({reason:reason,message:message})})}function tryResolveApiBaseUrl(apiBaseUrl){let explicit=apiBaseUrl?.trim(),candidate=explicit&&explicit.length>0?explicit:readEnv(ENV_API_BASE_URL);return candidate?normalizeBaseUrl(candidate):configFailure("missing-api-base-url",`apiBaseUrl is required: pass config.apiBaseUrl or set ${ENV_API_BASE_URL}. The SDK never ships a hardcoded host.`)}function resolveApiBaseUrl(apiBaseUrl){let outcome=tryResolveApiBaseUrl(apiBaseUrl);if(!outcome.ok)throw new EverfurConfigError("invalid-argument",outcome.failure.message);return outcome.value}function buildBaseHeaders(cfg){return{"X-Everfur-SDK-Version":cfg.sdkVersion,"X-Everfur-SDK-Platform":cfg.platform,"X-Everfur-Contract":cfg.contractVersion}}var ABSOLUTE_URL=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/;function hostOf(authority){return authority.slice(authority.lastIndexOf("@")+1).replace(/:\d+$/,"").toLowerCase()}function isPrintableHost(host){return host.length===0||host.includes("@")?false:host.startsWith("[")&&host.endsWith("]")?true:!host.includes(":")}function canEchoOrigin(rawTrimmed,host){let schemeEnd=rawTrimmed.indexOf("://");return schemeEnd<0||rawTrimmed.slice(schemeEnd+3).includes("@")?false:isPrintableHost(host)}function safeOrigin(scheme,host){return`${scheme}://${host}`}function normalizeBaseUrl(raw){let trimmed=raw.trim(),match=ABSOLUTE_URL.exec(trimmed);if(match===null||match[2]===void 0||match[2].length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let scheme=(match[1]??"").toLowerCase(),host=hostOf(match[2]);if(host.length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let shown=canEchoOrigin(trimmed,host)?`: ${safeOrigin(scheme,host)}`:"";if(scheme!=="https"){if(!(scheme==="http"&&isLoopbackHost(host)))return scheme==="http"?configFailure("insecure-api-base-url",`apiBaseUrl must use https (cleartext http is only allowed for localhost)${shown}`):configFailure("unsupported-api-base-url-scheme",`apiBaseUrl must be http(s)${shown}`)}let value=trimmed.endsWith("/")?trimmed.slice(0,-1):trimmed;/* @__PURE__ */
|
|
5
6
|
return Object.freeze({ok:true,value:value})}function isLoopbackHost(hostname){let host=hostname.toLowerCase();return host==="localhost"||host==="127.0.0.1"||host==="[::1]"||host==="::1"}function readEnv(name){let value=globalThis.process?.env?.[name];return typeof value=="string"&&value.trim().length>0?value.trim():void 0}var DAILY_QUOTA_WIRE_CODE="DAILY_QUOTA_EXCEEDED",THROTTLES=/* @__PURE__ */new Set(["THROTTLINGEXCEPTION","RATELIMITED","TOOMANYREQUESTS"]);function foldDailyQuotaWireCode(code,body){if(!THROTTLES.has(code.toUpperCase().replace(/[^A-Z0-9]/g,"")))return code;let b=body,limit=b?.daily_limit??b?.error?.daily_limit;return typeof limit=="number"&&Number.isFinite(limit)?DAILY_QUOTA_WIRE_CODE:code}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
|
|
6
7
|
/* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
|
package/dist/server/index.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { E as EverfurResult } from '../EverfurResult.d-BFH-3s6E.cjs';
|
|
2
|
-
import { j as FetchLike } from '../config.d-
|
|
3
|
-
import { a as PartnerServerClient } from '../pets.d-
|
|
4
|
-
export { b as PartnerPet, P as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets.d-
|
|
3
|
+
import { j as FetchLike } from '../config.d-BQgrIDdu.cjs';
|
|
4
|
+
import { a as PartnerServerClient } from '../pets.d-CHU0UbXt.cjs';
|
|
5
|
+
export { b as PartnerPet, P as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets.d-CHU0UbXt.cjs';
|
|
5
6
|
export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile.d-CSs1wlXT.cjs';
|
|
6
7
|
export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species.d-BXAIMh7I.cjs';
|
|
7
8
|
import '../EverfurError.d-8NHtlgzA.cjs';
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { E as EverfurResult } from '../EverfurResult.d-D_-254ZY.js';
|
|
2
|
-
import { j as FetchLike } from '../config.d-
|
|
3
|
-
import { a as PartnerServerClient } from '../pets.d-
|
|
4
|
-
export { b as PartnerPet, P as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets.d-
|
|
3
|
+
import { j as FetchLike } from '../config.d-XSMThgVj.js';
|
|
4
|
+
import { a as PartnerServerClient } from '../pets.d-D_ayuqjp.js';
|
|
5
|
+
export { b as PartnerPet, P as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets.d-D_ayuqjp.js';
|
|
5
6
|
export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile.d-CSs1wlXT.js';
|
|
6
7
|
export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species.d-BXAIMh7I.js';
|
|
7
8
|
import '../EverfurError.d-8NHtlgzA.js';
|
package/dist/server/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
function ok(value,warning){/* @__PURE__ */
|
|
2
3
|
return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
|
|
3
|
-
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var SDK_VERSION="0.15.
|
|
4
|
+
return Object.freeze({ok:false,error:error})}var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};var SDK_VERSION="0.15.1",SDK_PLATFORM="react-native",DEFAULT_CONTRACT_VERSION="2026-09-19",ENV_API_BASE_URL="EVERFUR_API_BASE_URL";function configFailure(reason,message){/* @__PURE__ */
|
|
4
5
|
return Object.freeze({ok:false,failure:/* @__PURE__ */Object.freeze({reason:reason,message:message})})}function tryResolveApiBaseUrl(apiBaseUrl){let explicit=apiBaseUrl?.trim(),candidate=explicit&&explicit.length>0?explicit:readEnv(ENV_API_BASE_URL);return candidate?normalizeBaseUrl(candidate):configFailure("missing-api-base-url",`apiBaseUrl is required: pass config.apiBaseUrl or set ${ENV_API_BASE_URL}. The SDK never ships a hardcoded host.`)}function resolveApiBaseUrl(apiBaseUrl){let outcome=tryResolveApiBaseUrl(apiBaseUrl);if(!outcome.ok)throw new EverfurConfigError("invalid-argument",outcome.failure.message);return outcome.value}function buildBaseHeaders(cfg){return{"X-Everfur-SDK-Version":cfg.sdkVersion,"X-Everfur-SDK-Platform":cfg.platform,"X-Everfur-Contract":cfg.contractVersion}}var ABSOLUTE_URL=/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^/?#]*)/;function hostOf(authority){return authority.slice(authority.lastIndexOf("@")+1).replace(/:\d+$/,"").toLowerCase()}function isPrintableHost(host){return host.length===0||host.includes("@")?false:host.startsWith("[")&&host.endsWith("]")?true:!host.includes(":")}function canEchoOrigin(rawTrimmed,host){let schemeEnd=rawTrimmed.indexOf("://");return schemeEnd<0||rawTrimmed.slice(schemeEnd+3).includes("@")?false:isPrintableHost(host)}function safeOrigin(scheme,host){return`${scheme}://${host}`}function normalizeBaseUrl(raw){let trimmed=raw.trim(),match=ABSOLUTE_URL.exec(trimmed);if(match===null||match[2]===void 0||match[2].length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let scheme=(match[1]??"").toLowerCase(),host=hostOf(match[2]);if(host.length===0)return configFailure("malformed-api-base-url","apiBaseUrl is not a valid absolute URL");let shown=canEchoOrigin(trimmed,host)?`: ${safeOrigin(scheme,host)}`:"";if(scheme!=="https"){if(!(scheme==="http"&&isLoopbackHost(host)))return scheme==="http"?configFailure("insecure-api-base-url",`apiBaseUrl must use https (cleartext http is only allowed for localhost)${shown}`):configFailure("unsupported-api-base-url-scheme",`apiBaseUrl must be http(s)${shown}`)}let value=trimmed.endsWith("/")?trimmed.slice(0,-1):trimmed;/* @__PURE__ */
|
|
5
6
|
return Object.freeze({ok:true,value:value})}function isLoopbackHost(hostname){let host=hostname.toLowerCase();return host==="localhost"||host==="127.0.0.1"||host==="[::1]"||host==="::1"}function readEnv(name){let value=globalThis.process?.env?.[name];return typeof value=="string"&&value.trim().length>0?value.trim():void 0}var DAILY_QUOTA_WIRE_CODE="DAILY_QUOTA_EXCEEDED",THROTTLES=/* @__PURE__ */new Set(["THROTTLINGEXCEPTION","RATELIMITED","TOOMANYREQUESTS"]);function foldDailyQuotaWireCode(code,body){if(!THROTTLES.has(code.toUpperCase().replace(/[^A-Z0-9]/g,"")))return code;let b=body,limit=b?.daily_limit??b?.error?.daily_limit;return typeof limit=="number"&&Number.isFinite(limit)?DAILY_QUOTA_WIRE_CODE:code}var CONTRACT_RETRYABILITY=/* @__PURE__ */Object.freeze([
|
|
6
7
|
/* @__PURE__ */Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
/** How the sheet refers to the pet: `her`/`his` (from the pet's sex, or host-supplied), or the pet's name. */
|
|
2
3
|
type RecordsSheetPronoun = 'her' | 'his';
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
/** How the sheet refers to the pet: `her`/`his` (from the pet's sex, or host-supplied), or the pet's name. */
|
|
2
3
|
type RecordsSheetPronoun = 'her' | 'his';
|
|
3
4
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { P as PetRef, R as RecordsRequestId } from './ids.d-B2GAAifq.js';
|
|
3
4
|
import { c as RecordForwardItem } from './models.d-DOwnr8fi.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { P as PetRef, R as RecordsRequestId } from './ids.d-B2GAAifq.cjs';
|
|
3
4
|
import { c as RecordForwardItem } from './models.d-BSqvbTE1.cjs';
|
package/dist/shop/index.cjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
"use strict";var react=require("react"),reactNative=require("react-native"),jsxRuntime=require("react/jsx-runtime");var EverfurConfigError=class _EverfurConfigError extends Error{constructor(kind,message){super(message),this.name="EverfurConfigError",this.kind=kind,Object.setPrototypeOf(this,_EverfurConfigError.prototype)}};function omsOk(value){/* @__PURE__ */
|
|
2
3
|
return Object.freeze({ok:true,value:value})}function omsErr(error){/* @__PURE__ */
|
|
3
4
|
return Object.freeze({ok:false,error:/* @__PURE__ */Object.freeze(error)})}function isOmsRefusal(error,reasonCode){return error.kind==="refused"&&(reasonCode===void 0||error.reasonCode===reasonCode)}function isOmsUnavailable(error){return error.kind==="unavailable"}function isOmsRetryable(error){return error.kind==="network"||error.kind==="timeout"||error.kind==="serviceUnavailable"||error.kind==="refused"&&error.reasonCode==="order_state_conflict"}var REASON=/^[a-z][a-z0-9_]{0,63}$/,MAX_MESSAGE=300;function cleanMessage(raw){if(typeof raw!="string")return null;let text=raw.replace(/[\u0000-\u001f\u007f]+/g," ").trim();return text.length===0||text.length>MAX_MESSAGE?null:text}function retryAfter(header){if(!header)return null;let seconds=Number(header);return Number.isFinite(seconds)&&seconds>=0?Math.min(Math.round(seconds),3600):null}function omsErrorFromStatus(status,body,headers){let requestId=headers.requestId,rid=requestId?{requestId:requestId}:{};if(status===404)return{kind:"unavailable",...rid};if(status===401)return{kind:"signedOut"};if(status===402||status===409||status===422){let envelope=body&&typeof body=="object"?body:{},reason=typeof envelope.reason_code=="string"&&REASON.test(envelope.reason_code)?envelope.reason_code:null;return{kind:"refused",status:status,reasonCode:reason,message:cleanMessage(envelope.message),...rid}}return status===400?{kind:"invalidRequest",...rid}:status===429?{kind:"rateLimited",retryAfterSeconds:retryAfter(headers.retryAfter??null),...rid}:status===503?{kind:"serviceUnavailable",...rid}:status===403?{kind:"unavailable",...rid}:{kind:"serverError",status:status,...rid}}function newIdempotencyKey(){let c=globalThis.crypto;if(c&&typeof c.randomUUID=="function")return c.randomUUID();if(c&&typeof c.getRandomValues=="function"){let b=c.getRandomValues(new Uint8Array(16));b[6]=b[6]&15|64,b[8]=b[8]&63|128;let h=Array.from(b,x=>x.toString(16).padStart(2,"0")).join("");return`${h.slice(0,8)}-${h.slice(8,12)}-${h.slice(12,16)}-${h.slice(16,20)}-${h.slice(20)}`}throw new EverfurConfigError("missing-peer-dependency","No secure random source: cannot make an idempotency key")}var MAX_ROUNDS=3,NAME_REQUIRED_REASONS=["client_name_missing"];function isNameRequired(error){return!!error&&error.kind==="refused"&&!!error.reasonCode&&NAME_REQUIRED_REASONS.includes(error.reasonCode)}var ShopActionKeys=class{constructor(make=newIdempotencyKey){this.make=make;this.keys=/* @__PURE__ */new Map}key(step){let k=this.keys.get(step);return k||(k=this.make(),this.keys.set(step,k)),k}next(step){let k=this.make();return this.keys.set(step,k),k}};async function confirmWithPayerActions(confirm,keys,payments,options={reconfirm:true}){let key=keys.key("confirm"),orderIds=[];for(let round=0;round<MAX_ROUNDS;round+=1){let res=await confirm(key);if(!res.ok)return{kind:"failed",error:res.error};orderIds=res.value.resale.map(r=>r.orderId);let pending=res.value.resale.filter(r=>r.outcome==="action_required"&&r.payerAction);if(pending.length===0)return{kind:"confirmed",orderIds:orderIds};if(!payments)return{kind:"needsPayerAction",orderIds:orderIds};for(let entry of pending){let stepResult=await payments.handleNextAction(entry.payerAction,{orderId:entry.orderId});if(!stepResult.ok)return stepResult.closed?{kind:"payerActionClosed",orderIds:orderIds}:{kind:"payerActionFailed",orderIds:orderIds,message:stepResult.message}}if(!options.reconfirm)return{kind:"confirmed",orderIds:orderIds};key=keys.next("confirm")}return{kind:"needsPayerAction",orderIds:orderIds}}var UNAVAILABLE_PACKAGE_SOURCE=/* @__PURE__ */Object.freeze({load:()=>Promise.resolve(omsErr({kind:"unavailable"})),removeLine:()=>Promise.resolve(omsErr({kind:"unavailable"})),skip:()=>Promise.resolve(omsErr({kind:"unavailable"})),approve:()=>Promise.resolve({kind:"failed",error:{kind:"unavailable"}})});async function offersFor(client,ids){let unique=[...new Set(ids)],read=await Promise.all(unique.map(id=>client.offer(id)));return new Map(unique.map((id,i)=>[id,read[i].ok?read[i].value:null]))}function createOmsPackageSource(client){async function build(plan,review){let offers=await offersFor(client,review.lines.map(l=>l.offerId)),lines=review.lines.map(l=>({...l,offer:offers.get(l.offerId)??null})),draft=null;if(review.state==="open"&&lines.length>0){let d=await client.draftCycle(plan.planId,review.cycle);if(d.ok)draft=d.value;else if(d.error.kind!=="refused")return omsErr(d.error)}return omsOk({plan:plan,review:review,lines:lines,draft:draft})}return{async load(){let plans=await client.plans();if(!plans.ok)return omsErr(plans.error);let plan=plans.value.plans.find(p=>p.state==="active")??plans.value.plans.find(p=>p.state!=="cancelled");if(!plan)return omsOk(null);let review=await client.cycleReview(plan.planId);return review.ok?build(plan,review.value):omsErr(review.error)},async removeLine(pkg,index,keys){let rest=pkg.lines.filter((_,i)=>i!==index).map(l=>({offerId:l.offerId,quantity:l.quantity,...l.petId?{petId:l.petId}:{}})),edited=await client.editCycle(pkg.plan.planId,pkg.review.cycle,{idempotencyKey:keys.key(`remove:${index}`),lines:rest});return edited.ok?build(pkg.plan,edited.value):omsErr(edited.error)},async skip(pkg,keys){let res=await client.skipCycle(pkg.plan.planId,pkg.review.cycle,{idempotencyKey:keys.key("skip")});return res.ok?omsOk(void 0):omsErr(res.error)},approve(pkg,keys,payments){let draft=pkg.draft;return draft?confirmWithPayerActions(idempotencyKey=>client.approveCycle(pkg.plan.planId,pkg.review.cycle,{idempotencyKey:idempotencyKey,checkoutId:draft.checkoutId,expectedTotal:draft.total}),keys,payments,{reconfirm:false}):Promise.resolve({kind:"failed",error:{kind:"invalidRequest"}})}}}function placeholder(key){return`[copy:shop.${key}]`}var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function possessive(name){return`${name}’s`}function listNames(names){return names.length<=1?names[0]??"":`${names.slice(0,-1).join(", ")} and ${names[names.length-1]}`}function asDate(iso){if(!iso)return null;let d=new Date(/^\d{4}-\d{2}-\d{2}$/.test(iso)?`${iso}T00:00:00Z`:iso);return Number.isNaN(d.getTime())?null:d}function formatDay(iso,opts={}){let d=asDate(iso);if(!d)return null;if(opts.when&&d.getUTCFullYear()!==(opts.now??/* @__PURE__ */new Date).getUTCFullYear())return d.toLocaleDateString("en-US",{timeZone:"UTC",month:"short",day:"numeric",year:"numeric"});let weekday=opts.weekday===true||opts.when===true;return d.toLocaleDateString("en-US",{timeZone:"UTC",...weekday?{weekday:"short"}:{},month:"short",day:"numeric"})}function monthOf(iso){let d=asDate(iso);return d?MONTHS[d.getUTCMonth()]:null}function formatCents(cents){let sign=cents<0?"-":"",abs=Math.abs(Math.round(cents));return`${sign}$${Math.floor(abs/100).toLocaleString("en-US")}.${String(abs%100).padStart(2,"0")}`}function cardLabel(brand,last4){return`${brand?brand.charAt(0).toUpperCase()+brand.slice(1):""} ending ${last4}`}var PHARMACY_REFUSAL="We can’t send this prescription to the pharmacy yet. Contact us.",PHARMACY_REFUSALS=["prescription_missing","prescription_reference_missing","prescription_unreadable","prescriptions_disagree","first_fill_mixed_with_refill","duplicate_prescription_line","prescription_in_flight","client_email_missing","client_phone_missing","client_phone_not_us","practice_email_missing","practice_phone_missing","practice_phone_not_us","patient_birth_date_missing","patient_weight_missing","weight_below_partner_unit","species_not_supported","sex_not_supported","refills_over_partner_limit","indications_missing","indication_not_mapped","compounding_missing","compounding_reason_not_mapped","compounding_unexplained","delivery_speed_unavailable","address_missing","address_not_deliverable"],SHOP_COPY={tabsLabel:"Care",tabPackage:"Package",tabShop:"Shop",tabOrders:"Orders",tabPlan:"Plan",legal:"Prescription items need a valid prescription from a licensed vet, and are filled by a licensed partner pharmacy.",legalTracking:"Prescription items are filled by a licensed partner pharmacy.",loadFailed:thing=>`We couldn’t load ${thing}. Check your connection and try again.`,tryAgain:"Try again",actionFailed:"That didn’t go through. Try again.",saving:"Saving…",keepIt:"Keep it",close:"Close",thingPackage:placeholder("thing.package"),thingShop:placeholder("thing.shop"),thingProduct:placeholder("thing.product"),thingPlan:placeholder("thing.plan"),thingOrders:"your orders",thingOrder:"this order",packageTitle:month=>`${month} package`,packageSub:(names,reviewBy,arrives)=>{let s=[];return names.length>0&&s.push(`For ${listNames(names)}.`),reviewBy&&arrives&&s.push(`Approve by ${reviewBy} and it arrives ${arrives}.`),s.length?s.join(" "):null},inThisPackage:"In this package",reviewBy:day=>`Review by ${day}`,forPet:name=>`For ${name}`,details:"Details",remove:"Remove",removed:"Removed.",total:"Total",items:"Items",shipping:"Shipping",tax:"Tax",free:"Free",approveAndShip:"Approve and ship",itemCount:n=>n===1?placeholder("package.item_count_one"):`${n} items`,withTotal:(label,total)=>`${label} · ${total}`,approveRegion:"Approve",packageDetailsRegion:"Package details",deliveryPaymentRegion:"Delivery and payment",questionsRegion:"Questions",approving:"Approving…",skipThisMonth:"Skip this month",chargedWhenShips:card=>`Charged to ${card} when it ships.`,rxCheckedFirst:"Prescriptions are checked with the vet who wrote them first.",delivery:"Delivery",arrives:day=>`Arrives ${day}`,change:"Change",outOfStock:"Out of stock",packageOutOfStock:"Out of stock right now, so it won’t ship this month.",packageEmpty:month=>`Nothing in ${possessive(month)} package yet. Add something from the shop, or skip this month.`,itemNoLongerSold:placeholder("package.item_no_longer_sold"),reviewClosed:placeholder("package.review_closed"),approvalInProgress:placeholder("package.approval_in_progress"),priceChanged:placeholder("package.price_changed"),cardStepFailed:placeholder("package.card_step_failed"),cardStepClosed:placeholder("package.card_step_closed"),noCardOnFile:placeholder("package.no_card_on_file"),shopTitle:"Shop",searchLabel:"Search the shop",searchPlaceholder:"Search the shop…",filtersLabel:"Filter",filterAll:"All",refillSoon:"Refill soon",prescribedFor:names=>`Prescribed for ${listNames(names)}`,inMonthsPackage:month=>`In ${possessive(month)} package →`,forPets:names=>`For ${listNames(names)}`,allProducts:placeholder("shop.all_products_title"),rx:"Rx",hasPrescription:name=>`${name} has a prescription`,needsPrescription:"Needs a prescription",noMatches:q=>`Nothing in the shop matches ‘${q}’.`,nothingHereYet:"Nothing here yet.",photoToCome:"Photo to come",backToShop:"Shop",howOften:"How often",everyMonthIn:name=>`Every month, in ${possessive(name)} package`,skipOrStop:"Skip or stop any month",justOnce:"Just once",shipsWith:month=>`Ships with ${possessive(month)} package`,justOnceShipsNow:placeholder("product.just_once_meta"),oneFewer:"One fewer",oneMore:"One more",quantity:"Quantity",addToPackage:month=>`Add to ${possessive(month)} package`,refillInPackage:month=>`Refill in ${possessive(month)} package`,buyNow:placeholder("product.buy_now"),startPlan:placeholder("product.start_plan"),adding:"Adding…",outOfStockNow:"Out of stock right now.",prescription:"Prescription",noPrescriptionFor:name=>`No prescription for ${name} on file.`,bookVideoVisit:"Book a video visit",refillsLeft:n=>`${n} ${n===1?"refill":"refills"} left`,rxBeingPrepared:"This prescription is being prepared. You can order it soon.",rxTooSoon:placeholder("rx.too_soon"),rxRenew:placeholder("rx.needs_renewal"),rxPick:placeholder("rx.pick_pet"),educational:"Educational, not a diagnosis.",planTitle:"Your plan",whatRepeats:"What repeats",repeatsLabel:title=>`${title} repeats`,cadenceMonths:months=>months===1?"Every month":`Every ${months} months`,cadenceDays:placeholder("plan.cadence_days"),repeatsEmpty:"Nothing repeats yet. Pick Every month when you add something, and it shows up here.",nextPackage:"Next package",reviewByLabel:"Review by",ships:"Ships",reviewMonthsPackage:month=>`Review ${possessive(month)} package →`,deliveryAndPayment:"Delivery and payment",shipTo:"Ship to",payWith:"Pay with",needABreak:"Need a break?",skipMonth:month=>`Skip ${month}`,skipMonthAsk:month=>`Skip ${month}?`,skipMonthBody:"Nothing ships this month.",pausePlan:"Pause the plan",pausePlanAsk:"Pause the plan?",pausePlanBody:"Nothing ships until you turn it back on.",declined:month=>month?`Declined. Update your card so ${possessive(month)} package can ship.`:"Declined.",resumePlan:placeholder("plan.resume"),stopReason:reason=>placeholder(`plan.stop_reason.${reason}`),consentTitle:placeholder("plan.consent_title"),consentBody:placeholder("plan.consent_body"),consentTermsLink:placeholder("plan.consent_terms_link"),consentAgree:placeholder("plan.consent_agree"),ordersTitle:"Orders",ordersSub:names=>`Packages and one-off orders for ${listNames(names)}.`,allOrders:"All orders",placed:day=>`Placed ${day}`,ordersEmpty:"No orders yet. Your first package shows up here once you approve it.",paymentFailed:"Payment failed",backToCare:"Care",onItsWay:title=>`${title}, on its way`,shouldArrive:day=>`It should arrive ${day}.`,whereItStands:"Where it stands",stepApproved:"Approved",stepChecking:"Checking prescriptions…",stepFilled:"Filled by the pharmacy",stepShipped:"Shipped",stepDelivered:"Delivered",now:"Now",expected:day=>`Expected ${day}.`,inTheBox:"In the box",payment:"Payment",cancelOrder:placeholder("order.cancel"),payOrder:placeholder("order.pay"),trackPackage:placeholder("order.track"),orderStatus:{pending_placement:"Confirmed, sending to the pharmacy",placement_unknown:"Confirmed",placed:"With the pharmacy, in review",accepted:"Approved by the pharmacist",release_sent:"Approved, being prepared",release_unknown:"Approved, being prepared",released:"Being prepared",shipped:"Shipped",delivered:"Delivered",needs_support:"We’re looking into this order",rejected:placeholder("order.status.rejected"),cancelled:"Cancelled",pending_handoff:placeholder("order.status.pending_handoff")},addressTitle:placeholder("address.title"),addressLabel:placeholder("address.label"),addressRecipient:placeholder("address.recipient_name"),addressLine1:placeholder("address.line1"),addressLine2:placeholder("address.line2"),addressCity:placeholder("address.city"),addressRegion:placeholder("address.region"),addressPostal:placeholder("address.postal_code"),addressSave:placeholder("address.save"),addressNeeded:placeholder("address.needed"),cardTitle:placeholder("card.title"),cardBody:placeholder("card.body"),cardStart:placeholder("card.start"),cardUnavailable:placeholder("card.unavailable"),confirmTitle:placeholder("buy.confirm_title"),confirmPay:placeholder("buy.confirm_pay"),nameMissing:placeholder("checkout.name_missing"),addName:placeholder("checkout.add_name"),firstName:placeholder("checkout.first_name"),lastName:placeholder("checkout.last_name"),saveName:placeholder("checkout.save_name"),refusal:{operation_not_supported:"This action isn’t available for this order.",order_not_sellable:"We can’t ship this order as it is. Add items or contact us.",rx_being_prepared:"This prescription is being prepared. You can order it soon.",rx_not_dispensable:PHARMACY_REFUSAL,...Object.fromEntries(PHARMACY_REFUSALS.map(code=>[code,PHARMACY_REFUSAL])),order_state_conflict:"This order changed. Refresh and try again.",payment_method_in_use:"A subscription or an order uses this card."},rateLimited:placeholder("error.rate_limited")},SHOP_COPY_PLACEHOLDERS=(()=>{let keys=/* @__PURE__ */new Set,visit=v=>{if(typeof v=="string"){let m=/^\[copy:(shop\.[a-z0-9_.]+)\]$/.exec(v);m&&keys.add(m[1])}else if(typeof v=="function")try{visit(v("x","x","x"))}catch{}else if(v&&typeof v=="object")for(let inner of Object.values(v))visit(inner)};return visit(SHOP_COPY),[...keys].sort()})();function shopCopy(overrides){return overrides?{...SHOP_COPY,...overrides}:SHOP_COPY}function refusalLine(copy,error){if(error.kind==="rateLimited")return copy.rateLimited;if(error.kind==="refused"){if(isNameRequired(error))return copy.nameMissing;let own=error.reasonCode?copy.refusal[error.reasonCode]:void 0;if(own)return own;if(error.message)return error.message}return copy.actionFailed}var SHOP_V3_COPY={cartTitle:"Cart",cartLabel:n=>n>0?`Cart, ${n} item${n>1?"s":""}`:"Cart, empty",cartEmptyTitle:"Your cart is empty",cartEmptyBody:null,addToCart:"Add to cart",viewCart:"View cart",addedToCart:name=>`${name} is in your cart.`,removedFromCart:name=>`${name} is out of your cart.`,quantityLabel:name=>`How many: ${name}`,fewer:"One fewer",more:"One more",remove:"Remove",subtotal:"Subtotal",shipping:"Shipping",tax:"Tax",free:"Free",total:"Total",checkoutCart:total=>`Checkout · ${total}`,checkoutKicker:"Checkout",itemQuantity:n=>`Qty ${n}`,shipsTo:"Ships to",payWith:"Pay with",placeOrder:total=>`Place order · ${total}`,chooseAddress:placeholder("checkout.choose_address"),chooseCard:placeholder("checkout.choose_card"),addAddress:placeholder("checkout.add_address"),addCard:placeholder("card.start"),makeDefault:placeholder("address.make_default"),editAddress:placeholder("address.edit"),noAddressYet:placeholder("address.needed"),noCardYet:placeholder("package.no_card_on_file"),placedHeader:"Order placed",placedTitle:"Order placed.",placedSteps:"What's coming",placedShips:"It ships.",placedArrives:"It arrives at home.",viewOrder:"View order",ordersTitle:"Orders",ordersEmptyTitle:"No orders yet",ordersEmptyBody:null,moreOrders:placeholder("orders.more"),subscriptionBox:"Subscription box",orderTitle:n=>n===null?"Order":`Order ${n}`,arrivesBy:day=>`Arrives by ${day}`,deliveredOn:day=>`Delivered ${day}`,expected:day=>`Expected ${day}`,orderSteps:["Ordered","Shipped","Out for delivery","Delivered"],tracking:"Tracking",trackOn:carrier=>`Track on ${carrier}`,inThisOrder:"In this order",orderItemLine:n=>`Qty ${n}`,buyAgain:"Buy again",orderHelp:"Get help with this order",paidWith:"Paid with",refund:placeholder("order.refund"),discount:placeholder("order.discount"),cancelAsk:placeholder("order.cancel_ask"),cancelBody:null,cancelRequested:placeholder("order.cancel_requested"),close:"Close",manageKicker:"Your subscription",manageTitle:name=>`Manage ${name}`,manage:"Manage",shipsEvery:"Ships every",daysChip:n=>`${n} days`,skipNext:"Skip the next box",cancelSubscription:"Cancel subscription",nextBox:day=>`Next box ${day}`,everyDays:n=>`Every ${n} days`,subscribedLine:(n,next)=>next===null?`Every ${n} days`:`Every ${n} days · next box ${next}`,skipped:"Skipped.",cancelSubscriptionAsk:placeholder("plan.cancel_ask"),cancelSubscriptionBody:placeholder("plan.cancel_body")},SHOP_V3_COPY_PLACEHOLDERS=Object.values(SHOP_V3_COPY).filter(v=>typeof v=="string"&&v.startsWith("[copy:"));function shopV3Copy(overrides){if(!overrides)return SHOP_V3_COPY;let own={};for(let[k,v]of Object.entries(overrides))k in SHOP_V3_COPY&&v!==void 0&&(own[k]=v);return{...SHOP_V3_COPY,...own}}var ShopContext=react.createContext(null);function ShopProvider(props){let{client:client,pets:pets,payments:payments,packageSource:packageSource,copy:copy,v3Copy:v3Copy,saveProfileName:saveProfileName,onProfileNameRequired:onProfileNameRequired,children:children}=props,saveName=react.useRef(saveProfileName);saveName.current=saveProfileName;let editName=react.useRef(onProfileNameRequired);editName.current=onProfileNameRequired;let canSave=!!saveProfileName,canEdit=!!onProfileNameRequired,value=react.useMemo(()=>{let list=pets??[],names=new Map(list.map(p=>[p.petId,p.name]));return{client:client,pets:list,petName:id=>id?names.get(id)??null:null,payments:payments??null,packageSource:packageSource??createOmsPackageSource(client),copy:shopCopy(copy),v3:shopV3Copy(v3Copy),saveProfileName:canSave?name=>saveName.current?saveName.current(name):Promise.resolve(false):null,onProfileNameRequired:canEdit?()=>editName.current?.():null}},[client,pets,payments,packageSource,copy,v3Copy,canSave,canEdit]);return react.createElement(ShopContext.Provider,{value:value},children)}function useShop(){let ctx=react.useContext(ShopContext);if(!ctx)throw new EverfurConfigError("not-initialized","useShop: wrap the shop in <ShopProvider>");return ctx}function useShopRead(key,read){let[state,setState]=react.useState({key:null,phase:"loading",value:null,error:null}),epoch=react.useRef(0),readRef=react.useRef(read);readRef.current=read;let load=react.useCallback(quiet=>{let mine=++epoch.current;key!==null&&(quiet||setState({key:key,phase:"loading",value:null,error:null}),readRef.current().then(res=>{mine===epoch.current&&(res.ok?setState({key:key,phase:"ready",value:res.value,error:null}):setState({key:key,phase:res.error.kind==="unavailable"?"unavailable":"failed",value:null,error:res.error}))}))},[key]);react.useEffect(()=>(load(false),()=>{epoch.current+=1}),[load]);let refresh=react.useCallback(()=>load(false),[load]);return state.key!==key?{phase:"loading",value:null,error:null,refresh:refresh}:{phase:state.phase,value:state.value,error:state.error,refresh:refresh}}function useShopConfig(){let{client:client}=useShop();return useShopRead("shop-config",()=>client.shopConfig())}function useOffers(query={}){let{client:client}=useShop(),text=query.text?.trim()??"",key=`offers:${text}:${query.requiresRx??""}`;return useShopRead(key,()=>client.offers({...text?{text:text}:{},...query.requiresRx!==void 0?{requiresRx:query.requiresRx}:{},limit:100}))}function useOffer(offerId){let{client:client}=useShop();return useShopRead(offerId?`offer:${offerId}`:null,()=>client.offer(offerId))}function usePrescriptions(){let{client:client}=useShop();return useShopRead("prescriptions",()=>client.prescriptions())}function useAddresses(){let{client:client}=useShop();return useShopRead("addresses",()=>client.addresses())}function useAddress(ref){let{client:client}=useShop();return useShopRead(ref?`address:${ref}`:null,()=>client.address(ref))}function usePaymentMethods(){let{client:client}=useShop();return useShopRead("payment-methods",()=>client.paymentMethods())}function useOrder(orderId){let{client:client}=useShop();return useShopRead(orderId?`order:${orderId}`:null,()=>client.order(orderId))}function usePlans(){let{client:client}=useShop();return useShopRead("plans",()=>client.plans({limit:100}))}function usePackage(){let{packageSource:packageSource}=useShop();return useShopRead("package",()=>packageSource.load())}function useShopAction(act){let[busy,setBusy]=react.useState(false),[error,setError]=react.useState(null),keys=react.useRef(null),running=react.useRef(false),actRef=react.useRef(act);actRef.current=act;let mounted=react.useRef(true);react.useEffect(()=>(mounted.current=true,()=>{mounted.current=false}),[]);let run=react.useCallback(async(...args)=>{if(running.current)return null;running.current=true,keys.current??=new ShopActionKeys,setBusy(true),setError(null);try{let res=await actRef.current(keys.current,...args);return res.ok?keys.current=null:isRetryWithSameKey(res.error)||(keys.current=null),mounted.current&&setError(res.ok?null:res.error),res}finally{running.current=false,mounted.current&&setBusy(false)}},[]),reset=react.useCallback(()=>{keys.current=null,setError(null)},[]);return{busy:busy,error:error,run:run,reset:reset}}function isRetryWithSameKey(error){return error.kind==="network"||error.kind==="timeout"||error.kind==="serviceUnavailable"||error.kind==="serverError"}function distinct(xs){let out=[];for(let x of xs)x!==null&&!out.includes(x)&&out.push(x);return out}var FORMS=[[/\b(inject(ion|able)?|vial|syringe|pen)s?\b/i,"syringe"],[/\b(chew(able)?|soft ?chew|treat)s?\b/i,"bowl"],[/\b(shampoo|spray|ointment|cream|gel|lotion|topical|spot[- ]on|otic|ophthalmic|wipe|foam|mousse|collar)s?\b/i,"shield"],[/\b(solution|suspension|liquid|syrup|elixir|drops?|oral ?paste|paste)s?\b/i,"flask"],[/\b(tablet|caplet|capsule|tab|cap|pill)s?\b/i,"pill"]];function drugFormIcon(title,form){for(let text of[title,form]){if(!text)continue;let hit=FORMS.find(([re])=>re.test(text));if(hit)return hit[1]}return"pill"}function tileFor(rx,title,form){return rx?{tone:"pink",icon:drugFormIcon(title,form)}:{tone:"yellow",icon:"leaf"}}function addressLine(a){return`${a.line2?`${a.line1}, ${a.line2}`:a.line1}, ${a.city}, ${a.region?`${a.region} `:""}${a.postalCode}`}function rxPill(copy){return{label:copy.rx,tone:"rx"}}function refillsLeft(rx){return rx.fillsTotal!==null&&rx.fillsUsed!==null?Math.max(0,rx.fillsTotal-Math.max(rx.fillsUsed,1)):null}function toPackageView(i){let{pkg:pkg,copy:copy,petName:petName}=i,review=pkg.review,month=monthOf(review.shipsOn),names=distinct(pkg.lines.map(l=>petName(l.petId))),open=review.state==="open",priced=new Map(review.quoteLines.map(q=>[`${q.offerId}:${q.petId??""}`,q])),items=pkg.lines.map((line,index)=>{let offer=line.offer,q=priced.get(`${line.offerId}:${line.petId??""}`),rx=offer?.requiresRx??false,pills=[];return offer||pills.push({label:copy.outOfStock,tone:"later"}),{petId:line.petId,view:{key:`${line.offerId}:${line.petId??""}:${index}`,name:offer?.title??copy.itemNoLongerSold,rx:rx,meta:null,alert:offer?null:copy.packageOutOfStock,pills:pills,price:q&&offer?formatCents(q.unitPrice*q.quantity-q.discount):null,...tileFor(rx,offer?.title),details:offer?{label:copy.details,to:{name:"product",offerId:offer.offerId,...line.petId?{petId:line.petId}:{}}}:null,remove:open?{label:copy.remove,busy:i.removing===index,disabled:i.removing!==null,onPress:()=>i.onRemove(index)}:null}}}),groups=[];for(let it of items){let name=petName(it.petId),label=name?copy.forPet(name):null,existing=groups.find(g=>g.label===label);existing?existing.items.push(it.view):groups.push({label:label,items:[it.view]})}let sum=[],d=pkg.draft;d?(sum.push({k:copy.items,v:formatCents(d.total-d.shipping-d.tax)}),sum.push({k:copy.shipping,v:d.shipping===0?copy.free:formatCents(d.shipping)}),sum.push({k:copy.tax,v:formatCents(d.tax)}),sum.push({k:copy.total,v:formatCents(d.total)})):review.quoteLines.length>0&&sum.push({k:copy.items,v:formatCents(review.quoteLines.reduce((n,q)=>n+q.unitPrice*q.quantity-q.discount,0))});let card=i.card?cardLabel(i.card.brand,i.card.last4):null,anyRx=pkg.lines.some(l=>l.offer?.requiresRx),note=card?[copy.chargedWhenShips(card),anyRx?copy.rxCheckedFirst:null].filter(Boolean).join(" "):null,error=i.error;!error&&review.state==="approving"?error=copy.approvalInProgress:!error&&review.state!=="open"&&review.state!==null?error=copy.reviewClosed:!error&&open&&!i.card&&(error=copy.noCardOnFile);let approve=open&&d&&i.card?{label:copy.approveAndShip,busyLabel:copy.approving,busy:i.approving,disabled:i.approving||i.placed===true||i.removing!==null,onPress:i.onApprove}:null;return{title:month?copy.packageTitle(month):copy.tabPackage,sub:copy.packageSub(names,formatDay(review.approveBy,{weekday:true}),null),reviewPill:review.approveBy&&open?copy.reviewBy(formatDay(review.approveBy)):null,countPill:pkg.lines.length>0?copy.itemCount(pkg.lines.length):null,fine:null,groups:pkg.lines.length>0?groups:[],empty:pkg.lines.length===0?{line:month?copy.packageEmpty(month):copy.nothingHereYet,shop:{label:copy.tabShop,to:{name:"shop"}},skip:null}:null,add:null,sum:sum,approve:approve,skip:open?{label:copy.skipThisMonth,to:{name:"plan"}}:null,note:note,error:error,delivery:i.address?[{k:copy.shipTo,v:addressLine(i.address),change:{label:copy.change,to:{name:"address",then:{name:"package"}}}}]:[],legal:copy.legal}}function readyRxFor(offerId,prescriptions){return prescriptions.filter(p=>p.status==="ready"&&p.offerId===offerId)}function toTile(offer,prescriptions,copy,petName,forPetId=null){let pills=[],meta=null,petId=forPetId,holder;return offer.requiresRx&&(pills.push(rxPill(copy)),holder=readyRxFor(offer.offerId,prescriptions).find(p=>petName(p.petId)),petId=holder?.petId??forPetId,meta=holder?copy.hasPrescription(petName(holder.petId)):copy.needsPrescription),{key:offer.offerId,to:{name:"product",offerId:offer.offerId,...petId?{petId:petId}:{}},name:offer.title,meta:meta,price:offer.price!==null?formatCents(offer.price):null,pills:pills,...tileFor(offer.requiresRx,offer.title,holder?.form),imageUrl:offer.imageUrl??null}}function isFirstFill(rx){return rx.fillsUsed===null||rx.fillsUsed===0}function toShelves(i){let{copy:copy}=i,tile=o=>toTile(o,i.prescriptions,copy,i.petName,i.petId??null),shelves=[],byId=/* @__PURE__ */new Map;for(let o of[...i.offers,...i.prescribed??[]])byId.set(o.offerId,o);let first=[],refill=[],firstPets=[];if(!i.searching){let ready=i.prescriptions.filter(p=>p.status==="ready"&&p.offerId!==null&&i.petName(p.petId));for(let offerId of distinct(ready.map(p=>p.offerId))){let o=byId.get(offerId);if(!o||!o.requiresRx)continue;let holders=ready.filter(p=>p.offerId===offerId);if(holders.every(isFirstFill)){first.push(o);for(let p of holders)firstPets.includes(i.petName(p.petId))||firstPets.push(i.petName(p.petId))}else refill.push(o)}}first.length>0&&shelves.push({key:"prescribed",title:copy.prescribedFor(firstPets),link:null,tiles:first.map(tile)}),refill.length>0&&shelves.push({key:"refill",title:copy.refillSoon,link:i.packageMonth?{label:copy.inMonthsPackage(i.packageMonth),to:{name:"package"}}:null,tiles:refill.map(tile)});let above=new Set([...first,...refill].map(o=>o.offerId));return shelves.push({key:"all",title:i.petNames.length>0?copy.forPets(i.petNames):copy.allProducts,link:null,tiles:i.offers.filter(o=>!above.has(o.offerId)).map(tile)}),shelves}function toProductView(i){let{copy:copy,offer:offer}=i,monthly=i.plansOn&&i.petName!==null,choice=monthly?i.choice:"once",submitLabel=choice==="monthly"?i.packageMonth?copy.addToPackage(i.packageMonth):copy.startPlan:copy.buyNow,sellable=offer.price!==null;return{back:{label:copy.backToShop,to:{name:"shop"}},title:offer.title,sub:null,price:sellable?formatCents(offer.price):null,priceUnit:null,...tileFor(false),source:null,stockLine:sellable?null:copy.outOfStockNow,choices:monthly?[{value:"monthly",title:copy.everyMonthIn(i.petName),meta:copy.skipOrStop},{value:"once",title:copy.justOnce,meta:copy.justOnceShipsNow}]:null,choice:monthly?choice:null,onChoice:v=>i.onChoice(v==="once"?"once":"monthly"),quantity:i.quantity,onQuantity:n=>i.onQuantity(Math.min(99,Math.max(1,n))),submit:sellable?{label:submitLabel,busyLabel:copy.adding,busy:i.busy,disabled:i.busy,onPress:i.onSubmit}:{label:copy.outOfStock,disabled:true,onPress:()=>{}},error:i.error,facts:null,cards:[],aside:null,legal:copy.legal}}function toRxProductView(i){let{copy:copy,offer:offer}=i,ready=readyRxFor(offer.offerId,i.prescriptions).filter(p=>i.petName(p.petId)),rx=(i.petId?ready.find(p=>p.petId===i.petId):void 0)??ready[0]??null,sellable=offer.price!==null,script=null,submit=null;if(rx){let left=refillsLeft(rx);script={name:copy.hasPrescription(i.petName(rx.petId)),meta:left!==null&&left>0?copy.refillsLeft(left):null,directions:null},submit=sellable?{label:i.packageMonth?copy.refillInPackage(i.packageMonth):copy.buyNow,busyLabel:copy.adding,busy:i.busy,disabled:i.busy,onPress:()=>i.onSubmit(rx)}:{label:copy.outOfStock,disabled:true,onPress:()=>{}}}else{let who=(i.petId?i.petName(i.petId):null)??i.firstPetName;script=who?{name:copy.noPrescriptionFor(who),meta:null,directions:null}:null,submit=i.bookVisitHref?{label:copy.bookVideoVisit,href:i.bookVisitHref}:null}return{back:{label:copy.backToShop,to:{name:"shop"}},stepLabel:copy.prescription,title:offer.title,sub:null,price:sellable?formatCents(offer.price):null,priceUnit:null,...tileFor(true,offer.title,rx?.form),script:script,stockLine:sellable?null:copy.outOfStockNow,submit:submit,note:null,error:i.error,cards:[],aside:null,legal:copy.legal}}function cadenceLine(days,copy){let months=Math.round(days/30.4);return months>=1&&Math.abs(days-months*30.4)<=2?copy.cadenceMonths(months):copy.cadenceDays}function toPlanView(i){let{copy:copy}=i,live=i.plans.filter(p=>p.state!=="cancelled"),rows=[];for(let plan of live)plan.lines.forEach((line,n)=>{let offer=i.offers.get(line.offerId)??null,pet=i.petName(line.petId),title=[offer?.title??copy.itemNoLongerSold,pet].filter(Boolean).join(" · "),stop=plan.stopReason,meta=stop==="payment_declined"?copy.declined(i.packageMonth):stop&&stop!=="customer"?copy.stopReason(stop):cadenceLine(plan.cadenceDays,copy);rows.push({key:`${plan.planId}:${n}`,title:title,meta:meta,alert:!!(stop&&stop!=="customer"),on:plan.state==="active",busy:i.busyPlan===plan.planId,onToggle:on=>i.onToggle(plan,on),error:i.rowError&&i.rowError.planId===plan.planId&&n===0?i.rowError.line:null})});let active=live.find(p=>p.state==="active")??null,sum=[],reviewBy=formatDay(i.reviewBy,{weekday:true});reviewBy&&sum.push({k:copy.reviewByLabel,v:reviewBy});let ships=formatDay(active?.nextRun??null,{weekday:true});ships&&sum.push({k:copy.ships,v:ships});let declined=live.some(p=>p.stopReason==="payment_declined"),delivery=[];i.address&&delivery.push({k:copy.shipTo,v:addressLine(i.address),change:{label:copy.change,to:{name:"address",then:{name:"plan"}}}}),i.card&&delivery.push({k:copy.payWith,v:cardLabel(i.card.brand,i.card.last4),alert:declined?copy.declined(i.packageMonth):null,change:{label:copy.change,to:{name:"card",then:{name:"plan"}}}});let month=i.packageMonth??monthOf(active?.nextRun??null);return{sub:null,rows:rows,emptyLine:rows.length===0?copy.repeatsEmpty:null,next:active&&sum.length>0?{sum:sum,link:i.packageMonth?{label:copy.reviewMonthsPackage(i.packageMonth),to:{name:"package"}}:null}:null,delivery:delivery,breakCard:active?{skip:month?{label:copy.skipMonth(month),ask:copy.skipMonthAsk(month),body:copy.skipMonthBody}:null,pause:{label:copy.pausePlan,ask:copy.pausePlanAsk,body:copy.pausePlanBody},busy:i.breakBusy,error:i.breakError,onConfirm:i.onBreak}:null,legal:copy.legal}}var SharedContext=react.createContext(null),ShopSharedProvider=SharedContext.Provider;function useShopShared(){let s=react.useContext(SharedContext);if(!s)throw new EverfurConfigError("not-initialized","shop screens render inside EverfurShop");return s}function packageMonth(pkg){return pkg.phase==="ready"&&pkg.value?monthOf(pkg.value.review.shipsOn):null}function loadable(read,map){return read.phase==="ready"&&read.value!==null?{phase:"ready",value:map(read.value)}:read.phase==="loading"?{phase:"loading"}:{phase:"failed",retry:read.refresh}}function pickCard(cards,id){return!cards||cards.length===0?null:(id?cards.find(c=>c.paymentMethodId===id):void 0)??cards[0]??null}function useOffersById(ids){let{client:client}=useShop(),unique=[...new Set(ids)].sort();return useShopRead(`offers-by-id:${unique.join(",")}`,async()=>{let read=await Promise.all(unique.map(id=>client.offer(id)));return omsOk(new Map(unique.map((id,i)=>[id,read[i].ok?read[i].value:null])))})}function outcomeLine(copy,outcome){return outcome.kind==="confirmed"?null:outcome.kind==="needsPayerAction"?copy.cardStepFailed:outcome.kind==="payerActionFailed"?outcome.message??copy.cardStepFailed:outcome.kind==="payerActionClosed"?copy.cardStepClosed:outcome.error.kind==="refused"&&outcome.error.reasonCode==="price_changed"?copy.priceChanged:refusalLine(copy,outcome.error)}var orderNotices=/* @__PURE__ */new WeakMap;function leaveOrderNotice(client,orderId,line){let notices=orderNotices.get(client);notices||(notices=/* @__PURE__ */new Map,orderNotices.set(client,notices)),line?notices.set(orderId,line):notices.delete(orderId)}function peekOrderNotice(client,orderId){return orderNotices.get(client)?.get(orderId)??null}function dropOrderNotice(client,orderId){orderNotices.get(client)?.delete(orderId)}var CARD_PAGE_NOTICE="\0card";function usePackageScreen(go){let{copy:copy,petName:petName,packageSource:packageSource,payments:payments,client:client}=useShop(),{tabs:tabs,pkg:pkg}=useShopShared(),plan=pkg.phase==="ready"?pkg.value?.plan??null:null,cards=usePaymentMethods(),address=useAddress(plan?.destination??null),[removing,setRemoving]=react.useState(null),[error,setError]=react.useState(null),[approving,setApproving]=react.useState(false),[placed,setPlaced]=react.useState(false),remove=useShopAction((keys,p,index)=>packageSource.removeLine(p,index,keys));if(pkg.phase==="ready"&&pkg.value===null)return{tabs:tabs,view:{phase:"failed",retry:pkg.refresh}};let view=loadable(pkg,p=>toPackageView({pkg:p,card:pickCard(cards.value,p.plan.paymentMethodId),address:address.value?.address??null,copy:copy,petName:petName,removing:removing,approving:approving,placed:placed,error:error,onRemove:index=>{setRemoving(index),setError(null),remove.run(p,index).then(res=>{setRemoving(null),res&&res.ok?pkg.refresh():res&&setError(refusalLine(copy,res.error))})},onApprove:()=>{approving||placed||(setApproving(true),setError(null),(async()=>{let outcome=await approveOnce(packageSource,p,payments);setApproving(false);let line=outcomeLine(copy,outcome),orderId=outcome.kind!=="failed"?outcome.orderIds[0]:void 0;orderId?(setPlaced(true),leaveOrderNotice(client,orderId,line),go({name:"order",orderId:orderId})):(setError(line),outcome.kind==="failed"&&outcome.error.kind==="refused"&&pkg.refresh())})())}}));return{tabs:tabs,view:view}}var approvalKeys=/* @__PURE__ */new WeakMap;async function approveOnce(source,p,payments){let keys=approvalKeys.get(p);keys||(keys=new ShopActionKeys,approvalKeys.set(p,keys));let out=await source.approve(p,keys,payments);return(out.kind!=="failed"||out.error.kind==="refused")&&approvalKeys.delete(p),out}function useDebounced(value,ms){let[v,setV]=react.useState(value);return react.useEffect(()=>{let t=setTimeout(()=>setV(value),ms);return()=>clearTimeout(t)},[value,ms]),v}function useShopScreen(initialQuery){let{client:client,copy:copy,petName:petName,pets:pets}=useShop(),{tabs:tabs,pkg:pkg}=useShopShared(),[query,setQuery]=react.useState(initialQuery??""),text=useDebounced(query,250),offers=useOffers({text:text}),rx=usePrescriptions(),prescriptions=rx.value??[],names=pets.map(p=>p.name),month=packageMonth(pkg),prescribedIds=prescriptions.filter(p=>p.status==="ready"&&p.offerId!==null&&petName(p.petId)).map(p=>p.offerId),prescribed=useOffersById(prescribedIds),first=offers.phase==="ready"?offers.value??null:null,[laterState,setLater]=react.useState(null),later=laterState&&first&&laterState.first===first?laterState:null,cursor=later?later.cursor:first?.nextCursor??null,moreBusy=react.useRef(false),onMore=react.useCallback(()=>{if(!first||!cursor||moreBusy.current)return;moreBusy.current=true,setLater(l=>({first:first,offers:l&&l.first===first?l.offers:[],cursor:cursor,loading:true,failed:false}));let words=text.trim();client.offers({...words?{text:words}:{},cursor:cursor,limit:100}).then(res=>{moreBusy.current=false,setLater(l=>!l||l.first!==first?l:res.ok?{first:first,offers:[...l.offers,...res.value.offers],cursor:res.value.nextCursor,loading:false,failed:false}:{...l,loading:false,failed:true})})},[client,first,cursor,text]),shelves,prescribedWait=rx.phase==="loading"||prescribedIds.length>0&&prescribed.phase==="loading";if(first&&!prescribedWait){let seen=/* @__PURE__ */new Set,all=[];for(let o of[...first.offers,...later?.offers??[]])seen.has(o.offerId)||(seen.add(o.offerId),all.push(o));shelves={phase:"ready",value:toShelves({offers:all,prescribed:[...prescribed.value?.values()??[]].filter(o=>o!==null),prescriptions:prescriptions,copy:copy,petName:petName,petNames:names,packageMonth:month,searching:text.trim()!=="",petId:pets.length===1?pets[0].petId:null})}}else offers.phase==="loading"||prescribedWait?shelves={phase:"loading"}:offers.phase==="unavailable"?shelves={phase:"ready",value:[]}:shelves={phase:"failed",retry:offers.refresh};let count=shelves.phase==="ready"?shelves.value.reduce((n,s)=>n+s.tiles.length,0):1,empty=shelves.phase==="ready"&&count===0?text.trim()?copy.noMatches(text.trim()):copy.nothingHereYet:null,more=first&&cursor?{onMore:onMore,loading:later?.loading??false,failed:later?.failed??false}:null;return{tabs:tabs,view:{sub:null,query:query,onQuery:setQuery,filters:[],shelves:shelves,empty:empty,legal:copy.legal,more:more}}}function lineFor(offer,quantity,petId,rx){return{offerId:offer.offerId,quantity:rx?.packCount??quantity,...rx?.petId??petId?{petId:rx?.petId??petId}:{},...rx?{rxId:rx.rxId}:{}}}function routeFor(name,line){return{name:name,offerId:line.offerId,quantity:line.quantity,...line.petId?{petId:line.petId}:{},...line.rxId?{rxId:line.rxId}:{}}}function useProductScreen(offerId,petId,go){let{copy:copy,petName:petName,pets:pets,client:client}=useShop(),{config:config,pkg:pkg,bookVisitHref:bookVisitHref}=useShopShared(),offer=useOffer(offerId),rx=usePrescriptions(),[choice,setChoice]=react.useState("monthly"),[quantity,setQuantity]=react.useState(1),[error,setError]=react.useState(null),month=packageMonth(pkg),plans=usePlans(),plan=(pkg.phase==="ready"?pkg.value?.plan??null:null)??plans.value?.plans.find(p=>p.state==="active")??null,addToPlan=useShopAction((keys,p,line)=>client.updatePlan(p.planId,{idempotencyKey:keys.key("add"),lines:[...p.lines.map(l=>({offerId:l.offerId,quantity:l.quantity,...l.petId?{petId:l.petId}:{}})),line]})),submit=(line,monthly)=>{if(setError(null),!monthly)return go(routeFor("buy",line));if(!plan)return go(routeFor("consent",line));addToPlan.run(plan,line).then(res=>{res&&res.ok?(pkg.refresh(),go({name:"package"})):res&&setError(refusalLine(copy,res.error))})};if(offer.phase==="ready"&&offer.value?.requiresRx){let o=offer.value,base={offer:o,copy:copy,petId:petId??null,petName:petName,firstPetName:pets[0]?.name??null,packageMonth:month,error:error,bookVisitHref:bookVisitHref};return rx.phase==="unavailable"?{kind:"rx",view:{phase:"ready",value:toRxProductView({...base,prescriptions:[],busy:false,onSubmit:()=>{}})}}:{kind:"rx",view:loadable(rx,list=>toRxProductView({...base,prescriptions:list,busy:addToPlan.busy,onSubmit:p=>submit(lineFor(o,1,null,p),plan!==null)}))}}let petForChoice=(petId?petName(petId):null)??pets[0]?.name??null;return{kind:"product",view:loadable(offer,o=>toProductView({offer:o,copy:copy,petName:petForChoice,packageMonth:month,plansOn:config.recurringTermsVersion!==null,choice:choice,onChoice:setChoice,quantity:quantity,onQuantity:setQuantity,busy:addToPlan.busy,error:error,onSubmit:()=>submit(lineFor(o,quantity,petId??pets[0]?.petId??null,null),choice==="monthly"&&config.recurringTermsVersion!==null&&petForChoice!==null)}))}}function usePlanScreen(){let{copy:copy,petName:petName,client:client}=useShop(),{tabs:tabs,pkg:pkg}=useShopShared(),plans=usePlans(),cards=usePaymentMethods(),live=(plans.value?.plans??[]).filter(p=>p.state!=="cancelled"),active=live.find(p=>p.state==="active")??live[0]??null,address=useAddress(active?.destination??null),offers=useOffersById(live.flatMap(p=>p.lines.map(l=>l.offerId))),[busyPlan,setBusyPlan]=react.useState(null),[rowError,setRowError]=react.useState(null),[breakError,setBreakError]=react.useState(null),toggle=useShopAction((keys,p,on)=>client.planAction(p.planId,{idempotencyKey:keys.key(on?"resume":"pause"),operation:on?"resume":"pause"})),brk=useShopAction((keys,p,which)=>client.planAction(p.planId,{idempotencyKey:keys.key(which),operation:which})),month=packageMonth(pkg);if(plans.phase==="unavailable")return{tabs:tabs,view:{phase:"failed",retry:plans.refresh}};let view=loadable(plans,()=>toPlanView({plans:live,offers:offers.value??/* @__PURE__ */new Map,copy:copy,petName:petName,card:pickCard(cards.value,active?.paymentMethodId??null),address:address.value?.address??null,reviewBy:pkg.phase==="ready"?pkg.value?.review.approveBy??null:null,packageMonth:month,busyPlan:busyPlan,rowError:rowError,onToggle:(p,on)=>{setBusyPlan(p.planId),setRowError(null),toggle.run(p,on).then(res=>{setBusyPlan(null),toggle.reset(),res&&res.ok?plans.refresh():res&&setRowError({planId:p.planId,line:refusalLine(copy,res.error)})})},breakBusy:brk.busy,breakError:breakError,onBreak:async which=>{if(!active)return false;setBreakError(null);let res=await brk.run(active,which);return res&&res.ok?(brk.reset(),plans.refresh(),pkg.refresh(),true):(res&&setBreakError(refusalLine(copy,res.error)),false)}}));return{tabs:tabs,view:view}}var addedAddresses=/* @__PURE__ */new WeakMap;function peekAddedAddress(client){return addedAddresses.get(client)??null}function dropAddedAddress(client){addedAddresses.delete(client)}function useAddressStep(then,go){let{copy:copy,client:client}=useShop(),{pkg:pkg}=useShopShared(),back=then??{name:"package"},saved=react.useRef(null),save=useShopAction(async(keys,input)=>{let sent=JSON.stringify(input),ref=saved.current?.sent===sent?saved.current.ref:null;if(ref===null){let res=await client.addAddress(input);if(!res.ok)return omsErr(res.error);ref=res.value.ref,saved.current={sent:sent,ref:ref}}if(then?.name==="package"||then?.name==="plan"){let page=await client.plans({limit:100});if(!page.ok)return omsErr(page.error);let live=page.value.plans.filter(p=>p.state!=="cancelled"),shown=then.name==="package"?live.find(p=>p.planId===(pkg.value?.plan.planId??null))??null:live.find(p=>p.state==="active")??live[0]??null,moving=shown?live.filter(p=>p.planId===shown.planId||shown.destination!==null&&p.destination===shown.destination):[];for(let p of moving){if(p.destination===ref)continue;let moved=await client.updatePlan(p.planId,{idempotencyKey:keys.key(`destination:${p.planId}`),destination:ref});if(!moved.ok)return omsErr(moved.error)}}return omsOk(ref)});return{back:{label:copy.backToCare,to:back},busy:save.busy,error:save.error?refusalLine(copy,save.error):null,onSave:input=>{save.run(input).then(res=>{!res||!res.ok||(then?.name==="package"||then?.name==="plan"?pkg.refresh():addedAddresses.set(client,res.value),go(back))})}}}function useCardStep(then,go,handoff){let{copy:copy,client:client,payments:payments}=useShop(),{config:config}=useShopShared(),back=then??{name:"plan"},[error,setError]=react.useState(()=>peekOrderNotice(client,CARD_PAGE_NOTICE));react.useEffect(()=>dropOrderNotice(client,CARD_PAGE_NOTICE),[client]);let setup=useShopAction(async()=>{if(handoff){let step2=await handoff();return step2.ok?omsOk(true):(setError(step2.closed?copy.cardStepClosed:step2.message??copy.cardStepFailed),omsOk(false))}let s=await client.setupPaymentMethod();if(!s.ok||!payments)return s.ok?omsErr({kind:"invalidRequest"}):omsErr(s.error);let step=await payments.confirmCardSetup(s.value.payerAction);return step.ok?omsOk(true):(setError(step.closed?copy.cardStepClosed:step.message??copy.cardStepFailed),omsOk(false))}),on=handoff?true:payments!==null&&config.stripePublishableKey!==null;return{back:{label:copy.backToCare,to:back},error:error??(setup.error?refusalLine(copy,setup.error):null),start:on?{label:copy.cardStart,busyLabel:copy.saving,busy:setup.busy,disabled:setup.busy,onPress:()=>{setError(null),setup.run().then(res=>{res&&res.ok&&res.value&&go(back)})}}:null}}function useNameStep(retry){let{copy:copy,saveProfileName:saveProfileName,onProfileNameRequired:onProfileNameRequired}=useShop(),[open,setOpen]=react.useState(false),[busy,setBusy]=react.useState(false),[error,setError]=react.useState(null),retryRef=react.useRef(retry);retryRef.current=retry;let running=react.useRef(false),mounted=react.useRef(true);return react.useEffect(()=>(mounted.current=true,()=>{mounted.current=false}),[]),{view:open?{line:copy.nameMissing,form:saveProfileName?{firstLabel:copy.firstName,lastLabel:copy.lastName,saveLabel:copy.saveName,busy:busy,error:error,onSave:name=>{let firstName=name.firstName.trim(),lastName=name.lastName.trim();running.current||!firstName||!lastName||(running.current=true,setBusy(true),setError(null),saveProfileName({firstName:firstName,lastName:lastName}).then(saved=>saved,()=>false).then(saved=>{if(running.current=false,!!mounted.current){if(setBusy(false),!saved){setError(copy.actionFailed);return}setOpen(false),retryRef.current()}}))}}:null,handoff:!saveProfileName&&onProfileNameRequired?{label:copy.addName,onPress:onProfileNameRequired}:null}:null,raise:e=>isNameRequired(e)?(setError(null),setOpen(true),true):false,clear:()=>setOpen(false)}}function useCheckoutBasics(){let addresses=useAddresses(),cards=usePaymentMethods(),address=addresses.value?.find(a=>a.isDefault&&a.isComplete)??addresses.value?.find(a=>a.isComplete)??null,card=pickCard(cards.value,null);return{addresses:addresses,cards:cards,address:address,card:card}}function quoteLine(copy,quote){return quote.phase==="unavailable"?copy.actionFailed:quote.phase==="failed"&"e.error?refusalLine(copy,quote.error):null}function useBuyStep(route,go){let{copy:copy,client:client,payments:payments,petName:petName}=useShop(),offer=useOffer(route.offerId),{address:address,card:card}=useCheckoutBasics(),line=react.useMemo(()=>({offerId:route.offerId,quantity:route.quantity,...route.petId?{petId:route.petId}:{},...route.rxId?{rxId:route.rxId}:{}}),[route.offerId,route.quantity,route.petId,route.rxId]),quote=useShopRead(address?`quote:${address.ref}:${JSON.stringify(line)}`:null,()=>client.quote({lines:[line],shipTo:address.ref})),[shown,setShown]=react.useState(null),[error,setError]=react.useState(null),[placed,setPlaced]=react.useState(false),buy=useShopAction(async keys=>{let draft=await client.createCheckout({idempotencyKey:keys.key("draft"),lines:[line],shipTo:address.ref});if(!draft.ok)return omsErr(draft.error);if((shown??quote.value?.total??null)!==draft.value.total)return setShown(draft.value.total),omsErr({kind:"refused",status:409,reasonCode:"price_changed",message:null});let out=await confirmWithPayerActions(idempotencyKey=>client.confirmCheckout(draft.value.checkoutId,{idempotencyKey:idempotencyKey,expectedTotal:draft.value.total,paymentMethodId:card.paymentMethodId}),keys,payments);return out.kind==="failed"?omsErr(out.error):omsOk(out)}),needs=[...address?[]:[{label:copy.addressNeeded,to:{name:"address",then:route}}],...card?[]:[{label:copy.cardTitle,to:{name:"card",then:route}}]],q=quote.value,total=shown??q?.total??null,placeRef=react.useRef(()=>{}),name=useNameStep(()=>placeRef.current()),place2=()=>{placed||(setError(null),name.clear(),buy.run().then(res=>{if(!res)return;let out=res.ok?res.value:{kind:"failed",error:res.error},orderId=out.kind!=="failed"?out.orderIds[0]:void 0;orderId?(setPlaced(true),leaveOrderNotice(client,orderId,outcomeLine(copy,out)),go({name:"order",orderId:orderId})):out.kind==="failed"&&name.raise(out.error)||setError(outcomeLine(copy,out))}))};return placeRef.current=place2,{back:{label:copy.backToShop,to:{name:"product",offerId:route.offerId}},title:copy.confirmTitle,lines:offer.value?[{key:line.offerId,name:offer.value.title,meta:petName(line.petId),price:offer.value.price!==null?formatCents(offer.value.price*line.quantity):null}]:[],sum:q&&total!==null?[{k:copy.shipping,v:q.shipping===0?copy.free:formatCents(q.shipping)},{k:copy.tax,v:formatCents(q.tax)},{k:copy.total,v:formatCents(total)}]:null,needs:needs,pay:address&&card&&q?{label:copy.confirmPay,busyLabel:copy.saving,busy:buy.busy,disabled:buy.busy||placed,onPress:place2}:null,note:card?copy.chargedWhenShips(cardLabel(card.brand,card.last4)):null,error:error??quoteLine(copy,quote),nameStep:name.view}}function useConsentStep(route,go){let{copy:copy,client:client}=useShop(),{config:config,pkg:pkg}=useShopShared(),{address:address,card:card}=useCheckoutBasics(),create=useShopAction(keys=>client.createPlan({idempotencyKey:keys.key("create"),cadenceDays:30,destination:address.ref,paymentMethodId:card.paymentMethodId,consentTermsVersion:config.recurringTermsVersion,lines:[{offerId:route.offerId,quantity:route.quantity,...route.petId?{petId:route.petId}:{},...route.rxId?{rxId:route.rxId}:{}}]})),needs=[...address?[]:[{label:copy.addressNeeded,to:{name:"address",then:route}}],...card?[]:[{label:copy.cardTitle,to:{name:"card",then:route}}]];return{back:{label:copy.backToShop,to:{name:"product",offerId:route.offerId}},terms:config.recurringTermsUrl?{label:copy.consentTermsLink,href:config.recurringTermsUrl}:null,needs:needs,error:create.error?refusalLine(copy,create.error):null,agree:address&&card&&config.recurringTermsVersion?{label:copy.consentAgree,busyLabel:copy.saving,busy:create.busy,disabled:create.busy,onPress:()=>{create.run().then(res=>{res&&res.ok&&(pkg.refresh(),go({name:"plan"}))})}}:null}}var CART_MAX_QUANTITY=5,stores=/* @__PURE__ */new WeakMap,NONE=[];function storeOf(client){let s=stores.get(client);return s||(s={items:NONE,flash:null,storage:null,listeners:/* @__PURE__ */new Set},stores.set(client,s)),s}function set(client,items){let s=storeOf(client);if(s.items=items,s.storage)try{s.storage.write(JSON.stringify(items))}catch{}for(let l of[...s.listeners])l()}function clamp(n){return Math.max(1,Math.min(CART_MAX_QUANTITY,Math.round(n)))}function cartKey(line){return`${line.offerId}|${line.petId??""}|${line.rxId??""}`}function cartItems(client){return storeOf(client).items}function addToCart(client,input){let key=cartKey(input),items=cartItems(client),was=items.find(i=>i.key===key),quantity=input.rxId?Math.max(1,Math.round(input.quantity)):clamp((was?.quantity??0)+input.quantity),item={...input,key:key,quantity:quantity};return set(client,was?items.map(i=>i.key===key?item:i):[...items,item]),item}function setCartQuantity(client,key,quantity){let items=cartItems(client);set(client,items.map(i=>i.key===key&&!i.rxId?{...i,quantity:clamp(quantity)}:i))}function removeFromCart(client,key){let items=cartItems(client),was=items.find(i=>i.key===key)??null;return was&&set(client,items.filter(i=>i.key!==key)),was}function removePlaced(client,keys){let gone=new Set(keys),items=cartItems(client);items.some(i=>gone.has(i.key))&&set(client,items.filter(i=>!gone.has(i.key)))}function flashCart(client,line){storeOf(client).flash=line}function takeCartFlash(client){let s=storeOf(client),line=s.flash;return s.flash=null,line}function cartLines(items){return items.map(i=>({offerId:i.offerId,quantity:i.quantity,...i.petId?{petId:i.petId}:{},...i.rxId?{rxId:i.rxId}:{}}))}function cartSubtotal(items){let sum=0;for(let i of items){if(i.unitPrice===null)return null;sum+=i.unitPrice*i.quantity}return sum}function cartCount(items){return items.reduce((n,i)=>n+i.quantity,0)}function useCart(client){let s=storeOf(client);return react.useSyncExternalStore(l=>(s.listeners.add(l),()=>{s.listeners.delete(l)}),()=>s.items,()=>s.items)}var NavContext=react.createContext({go:()=>{},openExternal:()=>{}});function ShopNativeNavProvider({value:value,children:children}){return react.createElement(NavContext.Provider,{value:value},children)}function useShopNativeNav(){return react.useContext(NavContext)}var US_STATES=["AL","AK","AZ","AR","CA","CO","CT","DE","DC","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY","AS","GU","MP","PR","VI","AA","AE","AP"],US_ZIP=/^\d{5}(-\d{4})?$/;function isUsState(region){return US_STATES.includes(region.trim().toUpperCase())}var PHONE_BOX={body:{paddingTop:8,paddingRight:16,paddingLeft:16},pushBody:{paddingRight:16,paddingLeft:16},subtabs:{backgroundColor:"#ffffff"},subtab:{minHeight:44,rowGap:6,columnGap:6},subtabCurrent:{minHeight:44,rowGap:6,columnGap:6},titleBlock:{paddingTop:4,rowGap:2,columnGap:2},screenTitle:{},screenMeta:{},stack:{marginTop:12,rowGap:12,columnGap:12},card:{paddingTop:16,paddingRight:16,paddingBottom:16,paddingLeft:16,borderWidth:1,borderColor:"#e4e4e4",borderRadius:20,backgroundColor:"#ffffff"},cardHead:{marginBottom:12,rowGap:8,columnGap:16},cardTitle:{marginBottom:12},cardTitleInHead:{},cardLink:{},cardLinkAfterNote:{marginTop:12,marginBottom:2.34},forLabel:{marginTop:4,marginBottom:8},forLabelNext:{marginTop:16,marginBottom:8},itemsLiFirst:{paddingBottom:16,rowGap:12,columnGap:12},itemsLiMid:{paddingTop:16,paddingBottom:16,borderTopWidth:1,borderTopColor:"#e4e4e4",rowGap:12,columnGap:12},itemsLiLast:{paddingTop:16,borderTopWidth:1,borderTopColor:"#e4e4e4",rowGap:12,columnGap:12},thumb:{borderRadius:10,backgroundColor:"#eaeef6",width:48,height:48},thumbIcon:{width:22,height:22},thumbPink:{borderRadius:10,backgroundColor:"#ffeae8"},thumbYellow:{borderRadius:10,backgroundColor:"#fcf0d6"},thumbSage:{borderRadius:10,backgroundColor:"#e6ece8"},itemsName:{rowGap:4,columnGap:8},itemsMeta:{marginTop:2},itemsActs:{marginTop:6,rowGap:16,columnGap:16},itemsActLink:{},itemsActButton:{},itemsEnd:{rowGap:4,columnGap:4},itemsPrice:{},pill:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#eaeef6",minHeight:24},pillSoon:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#ffffff",minHeight:24},btnRow:{paddingRight:14,paddingLeft:14,borderWidth:1,borderColor:"#10462e",borderRadius:999,minHeight:36,rowGap:8,columnGap:8},btnRowIcon:{width:17,height:17},btnRowLabel:{},sumTotal:{paddingRight:24,paddingLeft:24,borderWidth:1,borderColor:"#e4e4e4",borderRadius:20,backgroundColor:"#ffffff"},sumRowFirst:{paddingTop:14,paddingBottom:14,rowGap:2,columnGap:16},sumRowLast:{paddingTop:14,paddingBottom:14,rowGap:2,columnGap:16},sumDt:{},sumDd:{},sumDdTotal:{},noteAfterSum:{marginTop:12},rowsLiFirst:{paddingBottom:16,rowGap:8,columnGap:16},rowsLiNext:{paddingTop:16,borderTopWidth:1,borderTopColor:"#e4e4e4",rowGap:8,columnGap:16},rowsK:{},rowsV:{marginTop:2},rowsMeta:{marginTop:2},legal:{marginTop:32},legalText:{},traybar:{paddingTop:12,paddingRight:16,paddingBottom:8,paddingLeft:16,backgroundColor:"#ffffff",rowGap:6,columnGap:6},btnInk:{paddingRight:24,paddingLeft:24,borderWidth:1,borderColor:"#10462e",borderRadius:999,backgroundColor:"#10462e",minHeight:50,rowGap:8,columnGap:8},traybarFine:{},input:{paddingRight:16,paddingLeft:16,borderWidth:1,borderColor:"#e4e4e4",borderRadius:10,backgroundColor:"#ffffff",minHeight:52,rowGap:10,columnGap:10},inputIcon:{width:20,height:20},inputText:{paddingTop:1,paddingRight:2,paddingBottom:1,paddingLeft:2},inputPlaceholder:{},filters:{paddingBottom:2,rowGap:8,columnGap:8},filter:{paddingRight:14,paddingLeft:14,borderWidth:1,borderColor:"#e4e4e4",borderRadius:999,minHeight:36},filterCurrent:{paddingRight:14,paddingLeft:14,borderWidth:1,borderColor:"#10462e",borderRadius:999,backgroundColor:"#ffeae8",minHeight:36},sectionHead:{marginTop:8,rowGap:8,columnGap:12},prods:{rowGap:16,columnGap:12},prod:{rowGap:12,columnGap:12},prodImg:{borderRadius:10,backgroundColor:"#ffeae8",aspectRatio:1},prodIcon:{width:36,height:36},prodTags:{rowGap:6,columnGap:6,position:"absolute",top:8,left:8},prodBody:{rowGap:4,columnGap:4},prodName:{},prodMeta:{},prodPrice:{marginTop:4,rowGap:8,columnGap:8},pillClear:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#ffffff",minHeight:24},pillPlain:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#ffffff",minHeight:24},pillOverdue:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#ffffff",minHeight:24},hero:{borderRadius:20,backgroundColor:"#fcf0d6",aspectRatio:1.6},heroIcon:{width:56,height:56},source:{rowGap:8,columnGap:8},sourceIcon:{marginTop:2,width:16,height:16},sourceBold:{},sourceLink:{},choices:{rowGap:8,columnGap:8},choiceCurrent:{paddingTop:14,paddingRight:16,paddingBottom:14,paddingLeft:16,borderWidth:1,borderColor:"#10462e",borderRadius:10,backgroundColor:"#ffeae8",rowGap:12,columnGap:12},choice:{paddingTop:14,paddingRight:16,paddingBottom:14,paddingLeft:16,borderWidth:1,borderColor:"#e4e4e4",borderRadius:10,backgroundColor:"#ffffff",rowGap:12,columnGap:12},radioOn:{borderWidth:6,borderColor:"#10462e",borderRadius:10,backgroundColor:"#ffffff",width:20,height:20},radioOff:{borderWidth:1,borderColor:"#819d90",borderRadius:10,backgroundColor:"#ffffff",width:20,height:20},choiceText:{},choiceTitle:{},choiceMeta:{marginTop:2},facts:{marginTop:12,rowGap:8,columnGap:8},factsLi:{paddingTop:12,paddingRight:12,paddingBottom:12,paddingLeft:12,borderRadius:10,backgroundColor:"#e6ece8",rowGap:4,columnGap:4},factsLiHer:{paddingTop:12,paddingRight:12,paddingBottom:12,paddingLeft:12,borderRadius:10,backgroundColor:"#fcf0d6",rowGap:4,columnGap:4},factsK:{},factsN:{},factsUnit:{},noteAfterFacts:{marginTop:12},cardLead:{marginBottom:12},person:{rowGap:12,columnGap:16},avatar:{borderRadius:18,backgroundColor:"#ffffff",width:36,height:36},personName:{},personMeta:{},sourceInCard:{marginTop:12,rowGap:8,columnGap:8},sourceInCardIcon:{marginTop:2,width:16,height:16},noteAfterSource:{marginTop:8},rxLead:{marginBottom:12},btnOutlineSm:{marginTop:12,paddingRight:16,paddingLeft:16,borderWidth:1,borderColor:"#10462e",borderRadius:999,minHeight:46,rowGap:8,columnGap:8},btnOutlineSmIcon:{width:20,height:20},noteStandalone:{},noteLink:{},sumPlain:{paddingRight:24,paddingLeft:24,borderWidth:1,borderColor:"#e4e4e4",borderRadius:20,backgroundColor:"#ffffff"},sumPlainRowFirst:{paddingTop:14,paddingBottom:14,rowGap:2,columnGap:16},sumPlainRowLast:{paddingTop:14,paddingBottom:14,rowGap:2,columnGap:16},sumPlainDd:{},planRowsLiFirst:{paddingTop:12,paddingBottom:12,rowGap:8,columnGap:16},planRowsLiNext:{paddingTop:12,paddingBottom:12,borderTopWidth:1,borderTopColor:"#e4e4e4",rowGap:8,columnGap:16},switch:{width:48,height:28},switchTrack:{borderRadius:999,backgroundColor:"#10462e",width:48,height:28},switchKnob:{borderRadius:11,backgroundColor:"#ffffff",position:"absolute",top:3,left:3,transform:[{translateX:20}],width:22,height:22},switchTrackOff:{borderRadius:999,backgroundColor:"#d0d6d3",width:48,height:28},switchKnobOff:{borderRadius:11,backgroundColor:"#ffffff",position:"absolute",top:3,left:3,width:22,height:22},breaks:{marginTop:12,rowGap:12,columnGap:24},btnSm:{paddingRight:16,paddingLeft:16,borderWidth:1,borderColor:"#10462e",borderRadius:999,minHeight:46,rowGap:8,columnGap:8},linkDanger:{},sheet:{borderTopLeftRadius:28,borderTopRightRadius:28,backgroundColor:"#ffffff"},sheetBackdrop:{backgroundColor:"rgba(0, 0, 0, 0.32)",position:"absolute"},sheetGrab:{height:20},sheetGrabBar:{borderRadius:3,backgroundColor:"#c9c9c9",width:36,height:5},sheetHead:{paddingTop:4,paddingRight:16,paddingBottom:12,paddingLeft:16,rowGap:12,columnGap:12},sheetClose:{paddingTop:1,paddingRight:6,paddingBottom:1,paddingLeft:6,borderRadius:18,backgroundColor:"#e6ece8",width:36,height:36},sheetCloseIcon:{width:20,height:20},sheetBody:{paddingRight:16,paddingBottom:24,paddingLeft:16,rowGap:12,columnGap:12},sheetText:{},sheetActions:{marginTop:16,rowGap:8,columnGap:8},btnDanger:{paddingRight:16,paddingLeft:16,borderWidth:1,borderColor:"#c03410",borderRadius:999,backgroundColor:"#ffffff",minHeight:46,rowGap:8,columnGap:8},btnOutline:{paddingRight:24,paddingLeft:24,borderWidth:1,borderColor:"#10462e",borderRadius:999,minHeight:52,rowGap:8,columnGap:8},rec:{marginRight:-8,marginLeft:-8,rowGap:4,columnGap:4},recRow:{paddingTop:10,paddingRight:8,paddingBottom:10,paddingLeft:8,borderRadius:10,rowGap:12,columnGap:12},recIcon:{width:20,height:20},recText:{rowGap:2,columnGap:2},recTitle:{},recMeta:{},recEnd:{rowGap:8,columnGap:8},trackerLi:{paddingBottom:24,rowGap:16,columnGap:16},trackerLiLast:{rowGap:16,columnGap:16},trackerLineDone:{borderRadius:1,backgroundColor:"#10462e",position:"absolute",top:30,left:13,bottom:2,width:2},trackerLine:{borderRadius:1,backgroundColor:"#e4e4e4",position:"absolute",top:30,left:13,bottom:2,width:2},dotDone:{borderWidth:2,borderColor:"#10462e",borderRadius:14,backgroundColor:"#10462e",width:28,height:28},dotDoneIcon:{width:16,height:16},dotNow:{borderWidth:2,borderColor:"#10462e",borderRadius:14,backgroundColor:"#ffffff",width:28,height:28},dotNowCore:{borderRadius:5,backgroundColor:"#07c168",width:10,height:10},dotNext:{borderWidth:2,borderColor:"#e4e4e4",borderRadius:14,backgroundColor:"#ffffff",width:28,height:28},trackerTitle:{paddingTop:3,rowGap:4,columnGap:8},trackerTitleNext:{paddingTop:3,rowGap:4,columnGap:8},trackerWhen:{marginTop:2},trackerText:{marginTop:2},pillStable:{paddingRight:10,paddingLeft:10,borderRadius:999,backgroundColor:"#dcf6ea",minHeight:24},trackItemsEnd:{rowGap:4,columnGap:4},trackItemsLiFirst:{paddingBottom:16,rowGap:12,columnGap:12},trackItemsLiLast:{paddingTop:16,borderTopWidth:1,borderTopColor:"#e4e4e4",rowGap:12,columnGap:12},noteAfterTotal:{marginTop:8},rowLink:{paddingTop:16,paddingRight:24,paddingBottom:16,paddingLeft:24,borderWidth:1,borderColor:"#e4e4e4",borderRadius:20,backgroundColor:"#ffffff",rowGap:12,columnGap:12},rowLinkIcon:{width:22,height:22},rowLinkChevron:{width:20,height:20},ghost:{marginTop:16,rowGap:10,columnGap:10},ghostBar:{borderRadius:999,backgroundColor:"#e6ece8",height:12},field:{rowGap:6,columnGap:6},fieldLabel:{},fieldInput:{paddingRight:16,paddingLeft:16,borderWidth:1,borderColor:"#e4e4e4",borderRadius:10,backgroundColor:"#ffffff",minHeight:52,rowGap:10,columnGap:10},fieldInputText:{paddingTop:1,paddingRight:2,paddingBottom:1,paddingLeft:2}},PHONE_TEXT={body:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},pushBody:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},subtabs:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},subtab:{color:"#6b6b6b",fontSize:15,fontWeight:"500",lineHeight:23.25},subtabCurrent:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:23.25},titleBlock:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},screenTitle:{color:"#10462e",fontSize:22,fontWeight:"500",lineHeight:26.390625,letterSpacing:-.33},screenMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.84375},stack:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},card:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},cardHead:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},cardTitle:{color:"#10462e",fontSize:18,fontWeight:"700",lineHeight:22.5,letterSpacing:-.36},cardTitleInHead:{color:"#10462e",fontSize:18,fontWeight:"700",lineHeight:22.5,letterSpacing:-.36},cardLink:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21},cardLinkAfterNote:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21},forLabel:{color:"#6b6b6b",fontSize:12,fontWeight:"700",lineHeight:16.796875,letterSpacing:.72,textTransform:"uppercase"},forLabelNext:{color:"#6b6b6b",fontSize:12,fontWeight:"700",lineHeight:16.796875,letterSpacing:.72,textTransform:"uppercase"},itemsLiFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},itemsLiMid:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},itemsLiLast:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},thumb:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},thumbIcon:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},thumbPink:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},thumbYellow:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},thumbSage:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},itemsName:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},itemsMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.84375},itemsActs:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},itemsActLink:{color:"#10462e",fontSize:13,fontWeight:"700",lineHeight:20.140625,textDecorationLine:"underline"},itemsActButton:{color:"#10462e",fontSize:13,fontWeight:"700",lineHeight:20.140625,textDecorationLine:"underline",textAlign:"center"},itemsEnd:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375,fontVariant:["tabular-nums"]},itemsPrice:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:26.34375,fontVariant:["tabular-nums"]},pill:{color:"#10462e",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},pillSoon:{color:"#10462e",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},btnRow:{color:"#10462e",fontSize:14,fontWeight:"400",lineHeight:14,textAlign:"center",fontVariant:["tabular-nums"]},btnRowIcon:{color:"#10462e",fontSize:14,fontWeight:"400",lineHeight:14,textAlign:"center",fontVariant:["tabular-nums"]},btnRowLabel:{color:"#10462e",fontSize:14,fontWeight:"400",lineHeight:14,textAlign:"center",fontVariant:["tabular-nums"]},sumTotal:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumRowFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumRowLast:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumDt:{color:"#6b6b6b",fontSize:15,fontWeight:"400",lineHeight:23.25},sumDd:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21,textAlign:"right"},sumDdTotal:{color:"#10462e",fontSize:20,fontWeight:"700",lineHeight:28,textAlign:"right"},noteAfterSum:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},rowsLiFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},rowsLiNext:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},rowsK:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},rowsV:{color:"#000000",fontSize:15,fontWeight:"400",lineHeight:21.75},rowsMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.84375},legal:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:20.796875,textAlign:"center"},legalText:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:20.796875,textAlign:"center"},traybar:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},btnInk:{color:"#ffffff",fontSize:17,fontWeight:"700",lineHeight:17,textAlign:"center"},traybarFine:{color:"#6b6b6b",fontSize:12,fontWeight:"400",lineHeight:15.59375,textAlign:"center"},input:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},inputIcon:{color:"#6b6b6b",fontSize:17,fontWeight:"400",lineHeight:26.34375},inputText:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},inputPlaceholder:{color:"#757575",fontSize:17,fontWeight:"400"},filters:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},filter:{color:"#10462e",fontSize:15,fontWeight:"400",lineHeight:18},filterCurrent:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:18},sectionHead:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},prods:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},prod:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},prodImg:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},prodIcon:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},prodTags:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},prodBody:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},prodName:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:19.5},prodMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.84375},prodPrice:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:23.25,fontVariant:["tabular-nums"]},pillClear:{color:"#07c168",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},pillPlain:{color:"#10462e",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},pillOverdue:{color:"#c03410",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},hero:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},heroIcon:{color:"#10462e",fontSize:17,fontWeight:"400",lineHeight:26.34375},source:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},sourceIcon:{color:"#819d90",fontSize:13,fontWeight:"400",lineHeight:19.5},sourceBold:{color:"#6b6b6b",fontSize:13,fontWeight:"700",lineHeight:19.5},sourceLink:{color:"#10462e",fontSize:13,fontWeight:"700",lineHeight:19.5,textDecorationLine:"underline"},choices:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},choiceCurrent:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},choice:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},radioOn:{color:"#000000",fontSize:13.333,fontWeight:"400"},radioOff:{color:"#000000",fontSize:13.333,fontWeight:"400"},choiceText:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},choiceTitle:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},choiceMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.1875},facts:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},factsLi:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},factsLiHer:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},factsK:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.1875},factsN:{color:"#10462e",fontSize:20,fontWeight:"700",lineHeight:22,letterSpacing:-.4,fontVariant:["tabular-nums"]},factsUnit:{color:"#6b6b6b",fontSize:13,fontWeight:"500",lineHeight:14.296875,letterSpacing:-.4,fontVariant:["tabular-nums"]},noteAfterFacts:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},cardLead:{color:"#000000",fontSize:15,fontWeight:"400",lineHeight:22.5},person:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},avatar:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},personName:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},personMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.84375},sourceInCard:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},sourceInCardIcon:{color:"#819d90",fontSize:13,fontWeight:"400",lineHeight:19.5},noteAfterSource:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},rxLead:{color:"#000000",fontSize:15,fontWeight:"400",lineHeight:22.5},btnOutlineSm:{color:"#10462e",fontSize:15,fontWeight:"400",lineHeight:15,textAlign:"center"},btnOutlineSmIcon:{color:"#10462e",fontSize:15,fontWeight:"400",lineHeight:15,textAlign:"center"},noteStandalone:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},noteLink:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21},sumPlain:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumPlainRowFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumPlainRowLast:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sumPlainDd:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21,textAlign:"right"},planRowsLiFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},planRowsLiNext:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},switch:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},switchTrack:{color:"#000000",fontSize:13.333,fontWeight:"400"},switchKnob:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},switchTrackOff:{color:"#000000",fontSize:13.333,fontWeight:"400"},switchKnobOff:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},breaks:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},btnSm:{color:"#10462e",fontSize:15,fontWeight:"400",lineHeight:15,textAlign:"center"},linkDanger:{color:"#c03410",fontSize:15,fontWeight:"700",lineHeight:23.25,textDecorationLine:"underline",textAlign:"center"},sheet:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetBackdrop:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetGrab:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetGrabBar:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetHead:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetClose:{color:"#10462e",fontSize:13.333,fontWeight:"400",textAlign:"center"},sheetCloseIcon:{color:"#10462e",fontSize:13.333,fontWeight:"400",textAlign:"center"},sheetBody:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},sheetText:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:25.5},sheetActions:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},btnDanger:{color:"#c03410",fontSize:15,fontWeight:"700",lineHeight:23.25,textAlign:"center"},btnOutline:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:17,textAlign:"center"},rec:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},recRow:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},recIcon:{color:"#6b6b6b",fontSize:17,fontWeight:"400",lineHeight:26.34375},recText:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},recTitle:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},recMeta:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.1875},recEnd:{color:"#6b6b6b",fontSize:15,fontWeight:"400",lineHeight:23.25},trackerLi:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},trackerLiLast:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},trackerLineDone:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},trackerLine:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},dotDone:{color:"#ffffff",fontSize:17,fontWeight:"400",lineHeight:26.34375},dotDoneIcon:{color:"#ffffff",fontSize:17,fontWeight:"400",lineHeight:26.34375},dotNow:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},dotNowCore:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},dotNext:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},trackerTitle:{color:"#10462e",fontSize:17,fontWeight:"700",lineHeight:22.09375},trackerTitleNext:{color:"#6b6b6b",fontSize:17,fontWeight:"700",lineHeight:22.09375},trackerWhen:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:18.1875},trackerText:{color:"#000000",fontSize:15,fontWeight:"400",lineHeight:22.5},pillStable:{color:"#10462e",fontSize:12,fontWeight:"700",lineHeight:12,letterSpacing:.72,textTransform:"uppercase"},trackItemsEnd:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375,fontVariant:["tabular-nums"]},trackItemsLiFirst:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},trackItemsLiLast:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},noteAfterTotal:{color:"#6b6b6b",fontSize:13,fontWeight:"400",lineHeight:19.5},rowLink:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:20.25},rowLinkIcon:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:20.25},rowLinkChevron:{color:"#819d90",fontSize:15,fontWeight:"700",lineHeight:20.25},ghost:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},ghostBar:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},field:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},fieldLabel:{color:"#10462e",fontSize:15,fontWeight:"700",lineHeight:21},fieldInput:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375},fieldInputText:{color:"#000000",fontSize:17,fontWeight:"400",lineHeight:26.34375}},PHONE_DECOR={body:{font:"sans"},pushBody:{font:"sans"},subtabs:{font:"sans",lineBottom:{width:1,color:"#e4e4e4"}},subtab:{font:"sans"},subtabCurrent:{font:"sans",insetBottom:{width:3,color:"#07c168"}},titleBlock:{font:"sans"},screenTitle:{font:"sans",wrap:"balance"},screenMeta:{font:"mono",wrap:"pretty"},stack:{font:"sans"},card:{font:"sans"},cardHead:{font:"sans"},cardTitle:{font:"sans"},cardTitleInHead:{font:"sans"},cardLink:{font:"sans"},cardLinkAfterNote:{font:"sans"},forLabel:{font:"mono"},forLabelNext:{font:"mono"},itemsLiFirst:{font:"sans"},itemsLiMid:{font:"sans"},itemsLiLast:{font:"sans"},thumb:{font:"sans"},thumbIcon:{font:"sans"},thumbPink:{font:"sans"},thumbYellow:{font:"sans"},thumbSage:{font:"sans"},itemsName:{font:"sans"},itemsMeta:{font:"sans"},itemsActs:{font:"sans"},itemsActLink:{font:"sans",underlineOffset:3},itemsActButton:{font:"sans",underlineOffset:3},itemsEnd:{font:"sans"},itemsPrice:{font:"sans"},pill:{font:"mono"},pillSoon:{font:"mono",ring:{width:1.25,color:"#f6d892"}},btnRow:{font:"sans"},btnRowIcon:{font:"sans"},btnRowLabel:{font:"sans"},sumTotal:{font:"sans"},sumRowFirst:{font:"sans"},sumRowLast:{font:"sans"},sumDt:{font:"sans"},sumDd:{font:"sans"},sumDdTotal:{font:"sans"},noteAfterSum:{font:"sans"},rowsLiFirst:{font:"sans"},rowsLiNext:{font:"sans"},rowsK:{font:"sans"},rowsV:{font:"sans"},rowsMeta:{font:"sans"},legal:{font:"sans"},legalText:{font:"sans"},traybar:{font:"sans",lineTop:{width:1,color:"#e4e4e4"}},btnInk:{font:"sans"},traybarFine:{font:"sans"},input:{font:"sans"},inputIcon:{font:"sans"},inputText:{font:"sans"},inputPlaceholder:{font:"sans"},filters:{font:"sans"},filter:{font:"sans"},filterCurrent:{font:"sans"},sectionHead:{font:"sans"},prods:{font:"sans"},prod:{font:"sans"},prodImg:{font:"sans"},prodIcon:{font:"sans"},prodTags:{font:"sans"},prodBody:{font:"sans"},prodName:{font:"sans"},prodMeta:{font:"sans"},prodPrice:{font:"sans"},pillClear:{font:"mono",ring:{width:1.5,color:"#07c168"}},pillPlain:{font:"mono",ring:{width:1.5,color:"rgba(16, 70, 46, 0.2)"}},pillOverdue:{font:"mono",ring:{width:1.25,color:"#c03410"}},hero:{font:"sans"},heroIcon:{font:"sans"},source:{font:"sans"},sourceIcon:{font:"sans"},sourceBold:{font:"sans"},sourceLink:{font:"sans",underlineOffset:3},choices:{font:"sans"},choiceCurrent:{font:"sans"},choice:{font:"sans"},radioOn:{font:"sans"},radioOff:{font:"sans"},choiceText:{font:"sans"},choiceTitle:{font:"sans"},choiceMeta:{font:"sans"},facts:{font:"sans"},factsLi:{font:"sans"},factsLiHer:{font:"sans"},factsK:{font:"sans"},factsN:{font:"sans"},factsUnit:{font:"sans"},noteAfterFacts:{font:"sans"},cardLead:{font:"sans"},person:{font:"sans"},avatar:{font:"sans",ring:{width:1,color:"#e4e4e4"}},personName:{font:"sans"},personMeta:{font:"sans"},sourceInCard:{font:"sans"},sourceInCardIcon:{font:"sans"},noteAfterSource:{font:"sans"},rxLead:{font:"sans"},btnOutlineSm:{font:"sans"},btnOutlineSmIcon:{font:"sans"},noteStandalone:{font:"sans"},noteLink:{font:"sans"},sumPlain:{font:"sans"},sumPlainRowFirst:{font:"sans"},sumPlainRowLast:{font:"sans"},sumPlainDd:{font:"sans"},planRowsLiFirst:{font:"sans"},planRowsLiNext:{font:"sans"},switch:{font:"sans"},switchTrack:{font:"sans"},switchKnob:{font:"sans",drop:{x:0,y:1,blur:2,spread:0,color:"rgba(16, 70, 46, 0.06)"}},switchTrackOff:{font:"sans"},switchKnobOff:{font:"sans",drop:{x:0,y:1,blur:2,spread:0,color:"rgba(16, 70, 46, 0.06)"}},breaks:{font:"sans"},btnSm:{font:"sans"},linkDanger:{font:"sans",underlineOffset:3},sheet:{font:"sans"},sheetBackdrop:{font:"sans"},sheetGrab:{font:"sans"},sheetGrabBar:{font:"sans"},sheetHead:{font:"sans"},sheetClose:{font:"sans"},sheetCloseIcon:{font:"sans"},sheetBody:{font:"sans"},sheetText:{font:"sans"},sheetActions:{font:"sans"},btnDanger:{font:"sans"},btnOutline:{font:"sans"},rec:{font:"sans"},recRow:{font:"sans"},recIcon:{font:"sans"},recText:{font:"sans"},recTitle:{font:"sans"},recMeta:{font:"sans"},recEnd:{font:"sans"},trackerLi:{font:"sans"},trackerLiLast:{font:"sans"},trackerLineDone:{font:"sans"},trackerLine:{font:"sans"},dotDone:{font:"sans"},dotDoneIcon:{font:"sans"},dotNow:{font:"sans"},dotNowCore:{font:"sans"},dotNext:{font:"sans"},trackerTitle:{font:"sans"},trackerTitleNext:{font:"sans"},trackerWhen:{font:"sans"},trackerText:{font:"sans"},pillStable:{font:"mono"},trackItemsEnd:{font:"sans"},trackItemsLiFirst:{font:"sans"},trackItemsLiLast:{font:"sans"},noteAfterTotal:{font:"sans"},rowLink:{font:"sans"},rowLinkIcon:{font:"sans"},rowLinkChevron:{font:"sans"},ghost:{font:"sans"},ghostBar:{font:"sans"},field:{font:"sans"},fieldLabel:{font:"sans"},fieldInput:{font:"sans"},fieldInputText:{font:"sans"}},PHONE_ICONS={shield:{size:56,uri:"data:image/png;base64,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"},pill:{size:56,uri:"data:image/png;base64,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"},leaf:{size:56,uri:"data:image/png;base64,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"},paw:{size:56,uri:"data:image/png;base64,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"},box:{size:22,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAQAAABJXchjAAAFiklEQVR4Ae3Bf4zVBQEA8M/3vXciGIIEKhP1SQ1ddwwaUzI2PRJnDQnPoZZlIjCBwfx5au7UnMDOOjEKSI0feZszy9CTsHAFcjXihy1KRCB37pCy5dEPjjiww6O1u+P74727e+/Q7f7w8/GxDoGTM8T52OefTkKgt4a51U0u1O5Nz1ipSa8EeqPEnaqcLq7ZQku0KlqgeNeqMVJ+DSrVKVKgOKWWu1z36s2zSxEChRuq2gwpPWuzUpUDChQoVI1bnS5phfWyZiiV1OwRixUkUIhbPKVEUr059vi/wDcsco6kBpXq9CjQk1LLXS6pUaU1ovq7x71Ok1Rvnl26FejOUNVmSIlr84RKR+UaptotUuLarFTlgC6ldaVEpZ+5VCApcImhtjgiqcVazyuTFRUYZ45jXtMmr0B+FR4zUneaVVkmvy+pUSqpQaU6eQRylVqmXNJxgaTdbvcr+c1UbZikTebbJSEtLuU+z/mUuA88ocJRl8iIGuYm42zzL7l2+AEulhGVNcv7tjouIi1upXukxW02Wa1DNqo1XJlA1IXmGmSr/0pqtdGPnGW0QCjtSsOtE5EWNU21uP1mqdSkXbM11htthKi0z5vpoB1yHfKidUqdJ2qcP/izE9Ki1hskdMwCN3hd3F+ttNfFBos6zRTX2Gm/XH+z2usmGSB0qe85IS10gYdEpVxgv11yveFJR4x3iqizzVBqu4OSbvCY4aIGe9pBHdJCk1wvbrBpJtrh75KO+a1VhhgrEFVqjv62atVpjJ+622BJv7FHh7TQF10lV9YcWb/TIumwtdYolRWVcZlbNNmJsyzzpPPls8U2HdJCVymX31izfeA1bZKaPG2HcT4paqAKU5RZZbyubLNJh7RQuXKd3jVQVD9XutE+e+Xaa5lml+onarjx+ol710Cd6m3SIS1Urlyns3GJjKghvmKi1zTJtdUP9fM5XTvq265XpVO9TTqkhcqV6/SAjZ5xjlJxWbOdbYsjko54xbNG+bR8njfVi1o9rFO9TTpkdG2f602w3BhRaXN91SOWOiYu42rj5fqTeTbrRkb3NvusGRY5S9Rgj5vtbi8LTfa4UZJa3Ga147qV0ZPjVnnOQ+5wiqgLrbPBfHtwkWWukNRmu0kO61FGIQ67z1MWu0bcFXb7vrR5ctW529sKklGot1X4gqU+I+42ud4036sKllGMjUa71QJDda3Jg1ZoU4SM4rR50o99y3wlcrVa6mGHFCmjeAfd5QnfNVncOnd5Sy9k9M5brnaFtQZo1+LLNuillN7bYLtO223Qayl9QEofkNIHpPQBKX1ASh+Q0gek9AEpoYNC5/gonCv0byekhN4RqvBRmCW0zwkZoS1CS/VX48M0wjJThTY7ISP0rldN1Ok7ZrnXSz4Mp7rfPfoLveI9J2RELTBRaJQ6m9zpj07O11Q7V9wCEWlRjfabKiprjlG2OSSf6bLaNaqVT5k17jBI3M3WiciIW+0fnjVA1I0qLPaow4ozxAKzpcW1uM4vxKQl7bVWqayoEpeZ6bDfi5suq12jWnHzveAyKXGvmmqLhLRc73naThc7Q9QnTDbN2xqEpstq16hWaIJfull/cQ1mut8BOTLye8HLbveAgaLKrFdvrt26NsLjrpPUbKElWuWV1pUPbLbKGcYKRGXNMcJWLZguq12jWpyqyk+MEddmhal+rU0X0rpz2M+9ZLTzRKWMM1fadl+X1a5RrWnWukaJuHpTrNaiG4FCXKvGSEl/8R8XabddqwmSGlSq06NAob7pQQMUrtkjFitIoHBnWmSGlJ61WanKAQUKFGeM5SboXr15dilCoHjXqjFSfg0q1SlSoDf6uUOVgeKaLbREq6IFeutM95mnn3bvW+5RTXolcDKGKnMe3vGGAz520v4HN6Zvz27hkx4AAAAASUVORK5CYII="},bag:{size:22,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAQAAABJXchjAAAC/UlEQVR4Ae3BXWiVZQAA4Od792m0UJhSQy+GdZHrSBDLrF0kDbuwELstUgmDfjToIgw0MRW7kSAQEiJJbwJBjcDALgx/yDCK/F8QFKbEmmKazZuQFqLf+c62c7b3bGeH78LncdcdidFN86ipJuZfpw0YRWI0r9qhMVbaqaYWtfXYK9EYSx11Xg1BLbPslWiUxF6z1BBUF+wxQyPNsEdQVYvqNlqu0TokDqsiVc0iG+QO22T8Nlkos8FR3xghMVK7c2bKXDFPv/Frd85MmSvm6TdMi+GCr82VGbTEWRNxww9WSNzWqtsug4ZoMdxmy+Q+8JmJOm+KhTIdgkOGCIbq8Z7cMe9rhA2Oya3XY4hEpXY/a5O57hVXNUabXabLXPWIfmWJSpfcrzkue0BZi9yHntUs92l10B1BrkszzVcW5P7STFeVBbmzmumsslR1PSbHIVWkqjusiYICCAogKIAgXqdOsTp1ipaK0+GAEnotdtHoOhxQQq/FLooQxFmr5JaSdcayVsktJetECeI8KFMylpLMHFGCONdk5hvLEzLXRAni9Mu0mmM0D7lXpk+UIM4puceMpkvupChBnK/k1kvVMsVauQOiBHEuOSfzuI/Usk2XzCmXRQlibZN7y1ZTDXePrd6Q2yZSEOtTvXJrnPakSvP1WiN30k6RUrEGvei4Vpm5jut1xLemesrTSird8LJBkVLxzlhun0olJW+qZple0YJ6fGG1QWP5zypfqkOqPtv9Yp/partuqSPqkqrXQQ/bbKXUSDftsFG/OqXq1+91W71kiQUStw363n67/WYcUuPzqy22SM3Wjj/1uWncUhNx0wUXTFhQAEEBBAUQFEBQAEEBBAUQFEBQAEEBBAUQFECQ65NrMxna5PqUBbkTcs+ZDM/L/aQslTsj97kFDhrQONMs8rbcGWWJSp94TXNst1pZUOkdf2iG372rQlBpwHLNsMINFVoMdd5u3WabPD96xglDJKpZ5QXdpmmsf3xnv4+NkKity3SN87cT7hrD/w1CmKiWHePxAAAAAElFTkSuQmCC"},plus:{size:17,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAQAAACQqPihAAAAz0lEQVR4Ae3BIVLDUBiF0S+XDrZLqE3dYwcgqzAVkSyARXQtVSBRlbADcLwtICur2slE8ZKKfzK96p1DVVVhd0Qltpz4I6Qh5pFPek98ESBiXhh0hIiYM4N7QoSFsBAWwkJYCAthISyEhbAQFgvGWjYsmZYYPLBj2pEDmUJDqeWXudZk/hGljvk6CqL0xlxn9hQaxlo2LJn2TKL3wwfTjhzIFBaMZTLXrEj0vtkRICyEhbAQFsJCWAgLYSEshIWwEBYi5p3BnhtLvJKoqurmLoEZGakNbs0TAAAAAElFTkSuQmCC"},search:{size:20,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAAD2UlEQVR4Ae3Ba2hVdQAA8N85N4uVbbdNp1ExI3siZBaVICwqTPOxJkX0dFAQRkEfioqooIIeBNH7TU8xorqFKT0QsQ/21KQoKkt3Mc3RXG5mq0zrw/HfvXeeM+92WV/y97PPPiMlUr16c03W4giHO8xGG/yo0ypL9RmySDXGu9gsZ8qyzNsW6TIEkb0Z42YL1Nmbfo+4T7cqRQbT6AbXOki1fvWg+21VhUi2k71jjKHabKY19iqSZY5XHKjSuwrW6NFjiyaNmpxijukq/eoC79iLSLoOzyn3i1s9b7s0o3W4U165y7xsUDlpWr0uFuzylDYf2CHdnz7xtEYniQRtltlgEDl7OtpydYI+Mzyq3+D6LbbSPPtLxNq9aqtMOQPVW2mcoNM0n6vOOgVtGiTqzPSiP2TIGehhZwnWOs1G1ev2knkaJZo0WCpDrNIxrhD0mW6Loek2S5/gKkfKEKt0t1hip7k6Dd13zrNTIuc+GWLlppgneMgKw7Pc44LznSJVrNy1gu3uMny32y64WqpYudmCe/UYvh4PCGZLFSuZbIzE3x5Xm4cEY02WIlYyU/CZbrX52WrBDCliJZMFS9VuieBEKWIlzYJVardK0CxFrKRZsEntNgrGShEraRZsUrtNgrFSxErGCH5Su02CvBSxki5Bs9qNF2yVIlbSJRinduMFm6WIlXQJxqndeMFmKWIlXYIpajdFsFmKWMlqwWy1my1YLUWs5E3BNA1q0+R0wWtSxErW+1YiskBtFogkvvKTFLFyiwU3aTB8Da4XLJYqVu4xOyUa3Gj4btEgsdOTUsXKrfes4HpTDc9U1wme0ClVrNJtfpcYZYkJhm6CJUZJ/O4OGXIqbTfaNIk6syzUbyiafKFJcI+3ZcgZ6ENzjZNocqF3davWcT7RLFijw18y5Ay0wxLz1UnkdfjUOtU413saBbu0KcqUs6deH7lcLLG/yxzvS1sM5lhPuMsBSiLTFfTKkJOmaIM2QWSSaxzlNz9IM8MdnnSCSKW8dgW9UkWynO01DSpts9THvrbOWkc7yvGmmmm0SrvEgqJWRSki2SZ63wRD9b0rvaBFUNSqaA852Xo8Y5dT7ada/e5xqe8VtMtL5LUr6DVAzmB2WO5lh5qkGovM9ZYd6FXQLi+R166gV4VINSa61CUmyrLWQi9ar1yLFVoERa2KykSqd5oOJ6lXr97BtunTZ4vPLfSxNC1WaBEUtSr6V2QktVihRVDUqmi3nJHUq6BdXiLvEG/aLTayis5QFFzkALvFRlqnVkWJRf6wW87I6/WGc4z1jfm2+Y+NcqL97PO/8g+Ihe5zzyrCeQAAAABJRU5ErkJggg=="},check:{size:16,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAABVUlEQVR4Ae3Bu20UQQAA0Lde13AF0AQSLZglQISklphxAUAdyDOSJXIyMlIaOG0CLTAShBTgI1jGd+fznu+XgPY9k8nkP9A4pdfeWXjrizut0wk+mpl55oOFv86cSpAMGivOnUZ0rXrv1p0zpxBcq6JPVjSOFyRVlK1pHCtIqii7p3GcIKmibEPjGEFSRdkDGocLkirKHtQ4VJBUUTaicZggqaJsVGvVhc+C377ZLkqqKNuitXTuqydmXip644KkirKtzqxaGNy4NCZIqih7RGvpVvHKoPPT3KYoqa5kj2qt+q7oDJ4reuuCpIqyHbTW9YrOoFP0loKkirKdtO7rFZ1Bp+gNgqSKsh21NvWKzqBT9AiSKsp21npIr+gMOsVTSRVle2iMeSPbFGV7aY2Z++XCuivZnlrj5orOUpTtrbVNr+gMouwAre16P7zApRuTyWTyz/oDUB1ZN9kNGUEAAAAASUVORK5CYII="},file:{size:16,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAQAAAD9CzEMAAABtElEQVR4Ad3Bv2rUcAAA4K+/ZndUXARBIp3cxEkQHYq4aOmiHQTvQH0GIw30DYTK3WhdgqBu/sHdQe2mzQNY6wM4V0oI5rze7+5yZNDv889bMm7DTZecNN03W56LWjLqlOeumMcD2yKWjXrjsvlct++LiZY13fPQ/G746ZMJEk23VF54ZM9kh0Zt46ljBU2XVB7bM4u+2raeYwVNJ1S+ms1QX22g5xjBYob6agM9Y4JFDfXVBnr+EixuqK820DMiaONAZUVl6IHawG0NQRu7KpvOqWy7r7alIdHGwKoja9aMO6MhaOOVD2aUiFmXS1VKmULtjmeumkEQk0vVUrk/Dlyz4aV9UyTa27Fj1KExQUymVCtlWkjEFAoLCjoWdCzoWCJmXS4VV8oUJgpicqlpUrmIoGNBTKY0TSkTkYgpFBYUdCzoWNCxRMy6XCqulClMFMTkUtOkchFBx4KYTGmaUiYiEVMoLCjoWNCxoGNB04HKijZWVH5oCJp2VTadM6/zNlU+a0g0Da06smZNe080BE0vfbCo195qWDbqnQvOau+9u35pWDLujpsuOm0+3330yo7/zm9pA1VwIYzMRQAAAABJRU5ErkJggg=="},message:{size:20,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAAD+UlEQVR4Ae3Bf4iW9QEA8M/7vVfIS67uamWlcZW1cE7SrD8qNK2z2hzbXJ60QtoUrP5IiiiSKJIiCIoo65/KiDIz1jbJ+WtalDXH8kedyVwL71REa8w8Uy/jrDievu/zvK/v/X76z8/HCSf8WAr65wzXmORnGtSpU2efXfbZY7s1tuuHgr76rWtdbbTutVltueX6pKAvrrHQxfpmk7k26VVBby72pBv0x3dedZ+9elTQkwYLzFXUfwc1W60HBd1rtN4IlfZYYa1W++33pQb16l3kJtNUesgC3SrozgjrNcra4Qlrfaq6er93j0ZZy9zssKoKqhvufRdI7fegZ/XuNgv8RGqrKxxSRY1qhnvPKKnHzPC+vthooVNdLjrTWEtUUaOa1S4RtbvSq47qq04r7PJLQeIiRe84To3jNbtb9JUmG/XXR9aZbqjERC22q1Cj0lCrDJM4pMm/DMRuG8wSJH7lLV8oU6PSI64XzbHCQO10wA0SQ1zmeWWCcue5T/S2VwzG014WTXClMkG5eaKj5hisuTaL5isTZA1xq+hRrQbrqDmiXxgjI8j6tVMkDntcHrb4h+h+GUHWH0VLHJWPp0UzBCVB6izXiRbJy5s+lxhitJIgNUWQ+NQGeem0XDReSZC6UPSiPG0TjVMSpC4UrZenbaLxSoLUKNE+edommqAkSI0W7ZanA6JawQ+C6DTDJNp1ylOtqMO3fhBEQTREvk4WtSsJov/pkKh1ujydLDqoJEjtEDXKU62oXUmQahM1ytNwUbuSINUqapSnJtG/lQSpNtFUeZoqWqMkSK0RNblAXkb4qcQx7ygJUlttEt0lL9eLPnBYSZD1gugP6uTjDtEaGUHWazokak2Th5uNE62WEWQd9KGoQR4eE31oo4wgq95E0QcG714jRfOUCbKmi3bbYrAmelj0FxuUCbJmil4xWJda6SSJY+5SIUjVmyJaanDGWqdWtNBOFYpSzWokPtNi4Aru9Ihhon+a7zhFqZmixQbu5xaZINWiyRHHKYrOMFm0RLlz/MYXVvlKz05xr/myPjHZIVUURc2iT/xHdLqZZrpKAUf8yYveU03BZLNNd5KsVlPsV1VRNEP0ui4NbnSTq6VqzTJLq8Xa7LRXGxqd7Vznu8W5Ki1yjy91oyhxpomiVWZrNlV153lA7/5rtvV6UJCY5yn5WeAhvShKNOvJAR+71DC9+7/FnvGZXhV1GekK1R3wV0v93TFD/c5skxRU12mll7ylU58UdLndcyod8aal/qZcnXHGG2OMyyU22GqbTTbr0A9FXc6W1WGZ1y1TzUHveldiLFoMUFGXP3tAl6+t8IZlvtYXLQahIHGa63xjpcNO+JF8D+9X6jVU+QFxAAAAAElFTkSuQmCC"},chevron:{size:20,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAABfklEQVR4Ae3BPWoWQQAA0LeZz9gMeA1rywFzBsVSELzDbpEUgj9osVuJN8gF7Af1ChIsxRsIgm1iJMWw7cxsCsF9z2632+3+eUG9p14bfHMrglrPnLvviYMvbkFQ59hH99w4EWWbHal1rRjNNgvqXPnlkSK547NNglpfRUlxIso2COplUVIkUdYtaJFFSZFEWaegTRYlRRJlXYJWWZQUSZR1CNplUVIkUdYs6JFFSZFEWaOgTxYlRRJlTYJeWZQUSZQ1CPplUVIkUVYt2CKLkiKJskrBNtldDxXJDxeqBFt9EiXFAx/8UeHIdr9dKq5VOtjqrVOrFy5VOdhmNlotzlUabDEbrRaTaoN+s9FqMWkw6DUbrRaTJoM+s9FqMWk06DEbrRaTZoN2s9FqMekwaDUbrRaTLoM2s9FqMek0aDEbrRaTboN6s9FqMdngoNZzo9U7ZzY5UufYS6vFmY2O1LpWLCabBXWu/PTYjTdO3YKg1oXvDl55b7fb7Xb/ib+2W04he97hEgAAAABJRU5ErkJggg=="},close:{size:24,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAQAAAD/5HvMAAAC6UlEQVR4Ae3BQYoVRwAA0DdV4saF4jplEOYAVsClV8ghijYgQiArB/fJDcRFz7QHcJPYvfcIuYvgwo0VBhm6Ysb+3T3u8t9zdHR0dHR0dOTUqe/h1KmDTiw78cozvPZctd+JV57hteeqBdGyP/zm0mPJaK/g3C8uPRa9tyBYcs+ZK8W5E3sEveLKmTsWBEtuOzErzp3YKugVs1uiBdGSjx56ZJb94J1tLhStC28tiJa9k2SznzwwWis4V7QGTy2KllWTJJtlyWiNoFe0Bp1qUXRINUmyWZaMDgl6RWvQqQ6IDqsmSTbLktGSoFe0Bp3qoGiNapJksywZfUvQK1qDTrVCtE41SbJZloyuE/SK1qBTrRKtVU2SbJYlo68FvaI16FQrRetVkySbZcmoFfSK1qBTrRZtUU2SbJYloytBr2gNOtUG0TbVJMlmWTK6FPSK1qBTbRJtVU2SbJYlo6BXtAadaqNou2qSZLPsgZ8VrUGn2izao5ok2SzLWoNOtUO0TzVJsusNOtUu0V7VJMn+a9Cpdor2qyYPZP/2RqfaLfjeqhuJ9gt6xdeyZLRbtFfQK66TJaOdon2CXvEtWTLaJdoj6BWtN/6WzbJktEO0XdArWoPOKMlmWTLaLNoq6BWtQaeqJkk2y5LRRtE2Qa9oDTrVpWqSZLMsGW0SbRH0itagU12pJkk2y5LRBtF6Qa9oDTpVq5ok2SxLRqtFawW9ojXoVF+rJkk2y5LRStE6Qa9oDTrVdapJks2yZLRKtEbQK1qDTvUt1STJZlkyWiE6LOgVrUGnWlJNkmyWJaODokOCXtEadKpDqkmSzbJkdEC0LOgVrUGnWqOaJNksS0aLomW/+1Vr0KnWqiZJNsui9xYES+450xp0qi0+e2rQOnPHgmDJbSdmg0611WdPDWa3RAuiJR899MgXFzr7VO/8KPviwlsLomV/+uCJT1546Sb+8sETn7zw0o3dd9f3cN9dR0dHR0dHR/97/wCCc9FG6sbg8AAAAABJRU5ErkJggg=="},flask:{size:56,uri:"data:image/png;base64,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"},syringe:{size:56,uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAACoCAQAAADeQm0/AAAMeklEQVR4Ae3BbYykd0EA8N/Msx2206estARvwBgDpw0Kigvthnm5kkWmgxUSUEctigdWSKyJ4UNjNMEPxi9FP4tpVGKI4hyc8lQ2dMtkTLiqoepRTVCKk6FP4KE7aZnQ8CJjTzSENPe2O/9nZvZl5m5/P8eOHTt27NixY8fyKLj+NJz2GrdJPS5xxr4quL7c6APuU3DRQ95jaN9Eri+fcI+CS93mlyVG9knkevLr3udqsbbEyL4oup7cb3cnnHPSvii6ftzqh+3lhHNO2gdF14+6SU4456S5FV0/IpOdcM5Jcyq6fjwu5IRzTppL0fVj4JtCTjjnpDlEricFm0JibYmRGUWuJ4+qe7mQWFtiZCaR60uiqSIk1pYYmUHk+jLW0VQREmtLjEytYHnVvctr3Cb1uMQZea3pWRf2rNfpm1LBcrrRA35TwUUPudfT8lnTsy5s7JTHTCWynD7hHgWXus2vSIzkMdbRVBGy4t3OetoUIsvoXu9ztVhbYiSPsY6mipCi084YyS2yjD7iVruJtSVG8hjraKoIucEv+LiRnCLL51YP2EusLTGSx1hHU0VIrC0xkktk+bzJL9lbrC0xksdYx5udEBJrS4zkULR8IpOd8M9O2l8nnHNSDpHlM/ZbJlv1Xo/IhKzp+Un5xNoSIwGR5fM19yuZbMW7nfW0Sdb0rMsv1pYYmSiynN4opOi0M0b2sqZn3XRibYmRCSLL6FF1Lxdyg7bEyG7W9KybXqwtMbKnyHJKNFWExNoSI1da07NuNrG2xMgeIstprOPNTgiJtSVGLrWmZ93sYm2JkV0VXetOOOeki9b0rJvPCeectKvIcop9ymvlE2tLjHzXmp5184u1JUauEllGsa4N+cXaEiNretaFXVAUErvbgy64QmT5xLo2TCfW1nPWurAdb3C7ipBbxLZdIbJsYl0bphf7NS8TtqPhP3Q0VYS81h+54DKR5RLr2jCborAdDX2MdTRVTBZ5ROoykWUS69pwcHY09H3PWEdTxWT/5VGXKVoesa4NB2dHQ99Fz9p03mQ3uELRsoh1bTg4Oxr6LvesTedNct4VipZDrGtD2AWz2dHQd7VnbTpvb591haJlEOvaEDb0OudNb0dD3+6etem83Z2RuUJk8cW6NoQNVX1eR1PFNHY09O1trKOp4kp9Lc+5QmTRxbo2hGXqBhjraKrIa0dD32RjH/ZCdyi46CFv8zVXiSy2WNeGsEzNk75nrKOpIo9n1PSFXfBJf48LbvU5PX/g/b5pFwWLLNa1ISxTk7rUmp51YU+r6ttHkcUV69oQlqlJXW6so6ki5CZtiZF9E1lUsa4NYZma1NXGOpoqQmJtiZF9EllMZQ+rCsvUpHY31vFONwuJtSVG9kVkEZVtqwvL1KT2Nvbn7vMCIbG2xMg+iCyesm11YZma1GTf9iG/6iYhsbbEyNwii6ZsW11YpiYV9g0PertbhcTaEiNziiyWsoc1hH3FKU/KZ+zDmipCYu901shcIoukbFtDWKbmSfmNdTRVhKx6r64vm0NkcZRtqwvL1KSmM9bRVBGy4l3OetrMIouibFtdWKYmNb2xjqaKkKLTzhiZUWQxlG2rC8vUpGYz1tFUEXKDtsTITCKLoGxbXVimJjW7sY6mipBYW2JkBpGjV7atLixTk5rPWMebnRASa0uMTK3oqJVtqwvL1KQOzwnnnDS1yNEq21YXlqlJzS/2Ka+VT6wtMTKVyFEq21YXlqlJzS/WtSG/2N0edMEUIkenbFtdWKYmNb9Y14bp3CK2bQpFR6VsW11YpiY1v1jXhund50ZTKDoaq/5OXViqJjW/WNeGWdzgdlMoOgqrtmwKS9Wk5hfr2jCrmimsOHyr/sG6sFRNZn6xrg2zu8EUVhy2F/l3PyAsVZOZX6xrwzzOm8KKw7Wq7xZhqZrM/GJdG8IuWLGXz5pC0WFa9Vm3CEvVZOYX69oQNvQ65+3ujMwUIodn1ZbbhaVqMvOLdW0IG6r6vI6miiv1tTxnCpHDsmrLprBUTWZ+sa4NYUNVA4x92M3uUHDRQ97ma6ZScDhWbdkU9hV3yMwv1rUhbKhq4KJTTnuVV3vC5yTOmNqKw7Bqy6Y8VtxofrGuDWFDVQOX+rRPm0vk4K3asimfm7QlRuYR69oQlqkb2GeRg7Zqy6b8Ym2JkVnFujaEZWqetO8iB2vVlk3TibUlRmZR9rCqsExN6gBEDtKqLZumF2tLjEyrbFtdWKYmdSAiB2fVlk2zibUlRqZRtq0uLFOTOiCRg7Jqy6bZxdoSI3mVbasLy9SkDkzkYJR83JvMJ9aWGMmjbFtdWKYmdYAiB6Ek0TK/WFtiJKRsW11YpiZ1oCL7ryTREvY/IiGxtsTIJGXb6sIyNakDFtlvJYmWsFTD61WExNoSI3sp21YXlqlJHbjI/ipJtISlagY6mipCYm2Jkd2UbasLy9SkDkFkP5UkWsIGGjKMdTRVhMTaEiNXKttWF5apSR2KyP4pSbSEDVQ95XvGOpoqQmJtiZFLlW2rC8vUpA5JZL+UJFrCBqqGLhrraKoIibUlRp5Xtq0uLFOTOjSR/VGSaAkbqBq63FhHU0VIrC0x8l1l2+rCMjWpQxTZDyWJlrCBqqGrjXU0VYTE2hIjZdvqwjI1qUMVmV9JoiVsoGpod2MdTRUhsbZH/LW6sExN6pAVzKsk0RI2UDU0yZqedWHPuUFYpiZ16CLzKUm0hA1UDU021tFUERIJy9SkjkBkHiWJlrCBqqGwsY6minllalJHIjK7kkRL2EDVUD5jHU0V88jUpI5IZFYliZawgaqh/MY6mipmlWpIHZnIbFZ8zN3CBqqGpjPW0VQxi1TNlxyhyCxWnPVWYQNVQ9Mb62iqmFaqJnOkIrP4oHuEfUHD0GzGOpoqpvGkhswRi0zvg94rbKBuaHZjHU0VeaXqMkcuMq33u1/YQNXQfMY67lKRR6omswCKpnPa7wsbqBqa39jX5ZGqySyEFdN4pQ8Je8IbDM1v1UNOCfuiUzILYsU0/lDYwJ2G5rdqy6awTENmYRTld6e7hQxUDc1v1ZZNYd+yIbNAVuT3x0KecKeh+a3asinsgp+QWSgr8mr4UZM9oe4Z81u1ZVPYt71e34JZkddbTPaEumfMb9WWTWHPeI3MwlmR18+Y5Ck/5Rn74W9sChs4JbOAVuTzQ15pb9/xs75sfiWJlrDUKZmFVJTPHSb5Pf9kfiWJlrBUTWZBFeVTsbdve8D8ShItYamazMIqyuel9vaYC+ZVkmgJS9VkFlhRPhV7e9S8ShItYamazEJbkc9L7O0z5vW3WsKeVJdZcCvy+Za9VcyjJNESNnBKZuEV5bNjb3eYXUmiJWygKrMEivJ5yt5uN6uSREvYQNXQUijKZ8fefsyNZlGSaAkbqBpaEpF8it5jLwUFPdMqSbSEDVQNLY2ifP7F0/b2O1qmU5JoCRuoGloiRXk9bG8FH/Ey+ZUkWsIGqoaWSiSvF/g5e1v1Dn/hW/IoSbSEDVQNLZmivD7p/0zy/QZeKawk0RI2UDW0dCJ5jZ304yYpeY8/83WTrPiYu4UNVA0toUh+j/kNKyaJnPan/tteVpz1VmEDVUNLKZLf1606ZbKyu3zSs3bzEmf9tLAvaBhaUpFpPOZeN5nshHf7N31XeotPeZWwgbqhpRWZxnP+0z1CVr3DzXq+43llf+IDysIGqoaWWME01vSsy+spz3jWi73Yi+XzBXfasdQK8lvTs+7gDFQNLbkVea3pWXdw+hqGlt6KfNb0rDs4A3VD14CCPNb0rDs4A1VD14SCsDU96w7OQNXQNWJFyJqedQfnCW8wdM0omGxNz7qD84/e6quuIQWTrOlZd3D+0mkXXFMK9ramZ13YN8Sm9x2/6wHXnIK9rOlZF7aj4Qc96BWm8Rn3+VfXoILdrelZF7ajoY+S93m/m+SR+m0d16iC3azpWRe2o6HveS/0dr/ojVbs5as+7qO6/tc1q+Bqa3rWhe1o6LvSi7zdz3uFlyp73jMyj/srj7jmFVxpTc+6sB0NfZN8n5d5oR1fdB0puNyannVhOxr6jl2l6HId68J2NPQd20XRpe51l7AdDX3HdlV0qfuF7WjoO7aHootu9SNCdjT0HdtT0UU1ITsa+o5NUHRRZLIdDX3HJiq66HGT7GjoOxZQdNEXfdNedjT0HQuKXO6NdrOjoe9YDpFLParu5a60o6HvWC6Ry33Uze5QcNFD7vYlx3IquNopp73Kqz3hcxJnHDt27NixY8eOHTu23/4f7j9d6/lZin4AAAAASUVORK5CYII="},bowl:{size:56,uri:"data:image/png;base64,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"}};function face(f,weight){return f?typeof f=="string"?{fontFamily:f,fontWeight:weight}:{fontFamily:weight==="700"?f.bold??f.regular:weight==="500"?f.medium??f.regular:f.regular}:{fontWeight:weight}}function makeKit(options){let views=/* @__PURE__ */new Map,texts=/* @__PURE__ */new Map,types=/* @__PURE__ */new Map,type=key=>{let s=types.get(key);if(!s){let{fontWeight:fontWeight,...rest}=PHONE_TEXT[key];s={...rest,...face(PHONE_DECOR[key].font==="mono"?options.fonts?.mono:options.fonts?.sans,fontWeight)},types.set(key,s)}return s};return{options:options,v(key){let s=views.get(key);return s||(s={...PHONE_BOX[key]},views.set(key,s)),s},t(key){let s=texts.get(key);return s||(s={...PHONE_BOX[key],...type(key)},texts.set(key,s)),s},tx:type}}var DEFAULT_KIT=makeKit({}),KitContext=react.createContext(DEFAULT_KIT);function ShopKitProvider({fonts:fonts,renderIcon:renderIcon,children:children}){let kit=react.useMemo(()=>makeKit({...fonts?{fonts:fonts}:{},...renderIcon?{renderIcon:renderIcon}:{}}),[fonts,renderIcon]);return react.createElement(KitContext.Provider,{value:kit},children)}function useKit(){return react.useContext(KitContext)}function inkOf(key){return PHONE_TEXT[key].color??"#000000"}function Decor({k:k}){let d=PHONE_DECOR[k],radius=PHONE_BOX[k].borderRadius??0,out=[];if(d.ring){let ring=reactNative.Platform.OS==="web"?{boxShadow:`inset 0 0 0 ${d.ring.width}px ${d.ring.color}`}:{borderWidth:d.ring.width,borderColor:d.ring.color};out.push(react.createElement(reactNative.View,{key:"ring",pointerEvents:"none",style:[{position:"absolute",top:0,right:0,bottom:0,left:0,borderRadius:radius},ring]}))}return d.insetBottom&&out.push(react.createElement(reactNative.View,{key:"bar",pointerEvents:"none",style:{position:"absolute",right:0,bottom:0,left:0,height:d.insetBottom.width,backgroundColor:d.insetBottom.color}})),d.lineTop&&out.push(react.createElement(reactNative.View,{key:"top",pointerEvents:"none",style:{position:"absolute",right:0,top:-d.lineTop.width,left:0,height:d.lineTop.width,backgroundColor:d.lineTop.color}})),d.lineBottom&&out.push(react.createElement(reactNative.View,{key:"bottom",pointerEvents:"none",style:{position:"absolute",right:0,bottom:-d.lineBottom.width,left:0,height:d.lineBottom.width,backgroundColor:d.lineBottom.color}})),out.length?out:null}function dropShadow(k){let d=PHONE_DECOR[k].drop;return d?reactNative.Platform.OS==="web"?{boxShadow:`${d.x}px ${d.y}px ${d.blur}px ${d.spread}px ${d.color}`}:{shadowColor:d.color,shadowOpacity:1,shadowRadius:d.blur/2,shadowOffset:{width:d.x,height:d.y}}:null}function Icon({name:name,size:size,color:color,style:style}){let own=useKit().options.renderIcon?.({name:name,size:size,color:color});if(own!=null)return react.createElement(reactNative.View,{style:[{width:size,height:size},style],pointerEvents:"none"},own);let img=[{width:size,height:size,tintColor:color},style];return react.createElement(reactNative.Image,{source:{uri:PHONE_ICONS[name].uri},style:img,accessible:false,importantForAccessibility:"no",resizeMode:"contain"})}function PartIcon({name:name,k:k,inkKey:inkKey,style:style}){let box=PHONE_BOX[k];return react.createElement(Icon,{name:name,size:box.width??24,color:inkOf(inkKey??k),style:[box.marginTop?{marginTop:box.marginTop}:null,style]})}function T({k:k,style:style,children:children,lines:lines,role:role,bare:bare}){let kit=useKit();return react.createElement(reactNative.Text,{style:[bare?kit.tx(k):kit.t(k),wrapStyle(k),style],...wrapOf(k),...lines?{numberOfLines:lines}:{},...role?{accessibilityRole:role}:{}},children)}function wrapOf(k){return PHONE_DECOR[k].wrap?reactNative.Platform.OS==="web"?{}:reactNative.Platform.OS==="ios"?{lineBreakStrategyIOS:"standard"}:{textBreakStrategy:"balanced"}:{}}function wrapStyle(k){let w=PHONE_DECOR[k].wrap;return w&&reactNative.Platform.OS==="web"?{textWrap:w}:null}function underline(k){let off=PHONE_DECOR[k].underlineOffset;return off?{textUnderlineOffset:off}:{}}function Press({onPress:onPress,disabled:disabled,label:label,style:style,children:children,role:role="button",selected:selected}){return react.createElement(reactNative.Pressable,{onPress:disabled?void 0:onPress,disabled:disabled===true,accessibilityRole:role,...label?{accessibilityLabel:label}:{},accessibilityState:{disabled:disabled===true,...selected!==void 0?{selected:selected,checked:selected}:{}},style:style},children)}function phoneLabel(label){return label.replace(/\s*→$/,"")}var TAB_ROUTE={package:{name:"package"},shop:{name:"shop"},orders:{name:"orders"},plan:{name:"plan"}};function tabLabel(copy,tab){return tab==="package"?copy.tabPackage:tab==="shop"?copy.tabShop:tab==="orders"?copy.tabOrders:copy.tabPlan}function CareTabs({copy:copy,current:current,tabs:tabs}){let kit=useKit(),nav=useShopNativeNav();/* @__PURE__ */
|
package/dist/shop/index.d.cts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { ImageSourcePropType } from 'react-native';
|
|
3
|
-
import { O as OmsClient, S as ShopPet, b as ShopPackageSource, c as ShopCopy, d as ShopV3Copy, e as ShopRoute, f as ShopCardHandoff, a as ShopPaymentsPort, h as ShopProfileName } from '../idempotency.d-
|
|
4
|
-
export { I as OmsCardActionLink, J as OmsCardSetupLink, i as OmsCartLine, j as OmsClientConfig, k as OmsConsumerAuth, l as OmsError, m as OmsGetToken, n as OmsPlanOperation, o as OmsResult, p as SHOP_COPY, q as SHOP_COPY_PLACEHOLDERS, r as SHOP_V3_COPY, s as SHOP_V3_COPY_PLACEHOLDERS, t as ShopPackage, u as ShopPackageLine, K as ShopPayerActionContext, v as ShopPaymentStepResult, w as ShopTabName, U as UNAVAILABLE_PACKAGE_SOURCE, z as createOmsClient, A as createOmsPackageSource, C as isOmsRefusal, D as isOmsRetryable, E as isOmsUnavailable, F as newIdempotencyKey, G as shopCopy, H as shopV3Copy } from '../idempotency.d-
|
|
5
|
-
import '../config.d-
|
|
4
|
+
import { O as OmsClient, S as ShopPet, b as ShopPackageSource, c as ShopCopy, d as ShopV3Copy, e as ShopRoute, f as ShopCardHandoff, a as ShopPaymentsPort, h as ShopProfileName } from '../idempotency.d-BSRK8od4.cjs';
|
|
5
|
+
export { I as OmsCardActionLink, J as OmsCardSetupLink, i as OmsCartLine, j as OmsClientConfig, k as OmsConsumerAuth, l as OmsError, m as OmsGetToken, n as OmsPlanOperation, o as OmsResult, p as SHOP_COPY, q as SHOP_COPY_PLACEHOLDERS, r as SHOP_V3_COPY, s as SHOP_V3_COPY_PLACEHOLDERS, t as ShopPackage, u as ShopPackageLine, K as ShopPayerActionContext, v as ShopPaymentStepResult, w as ShopTabName, U as UNAVAILABLE_PACKAGE_SOURCE, z as createOmsClient, A as createOmsPackageSource, C as isOmsRefusal, D as isOmsRetryable, E as isOmsUnavailable, F as newIdempotencyKey, G as shopCopy, H as shopV3Copy } from '../idempotency.d-BSRK8od4.cjs';
|
|
6
|
+
import '../config.d-BQgrIDdu.cjs';
|
|
6
7
|
import '../EverfurError.d-8NHtlgzA.cjs';
|
|
7
8
|
import '../EverfurResult.d-BFH-3s6E.cjs';
|
|
8
9
|
|
package/dist/shop/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
/*! @everfur/sdk. Copyright (c) 2026 Strand Health Inc. dba Everfur. All rights reserved. Use is subject to the Everfur SDK License: https://docs.everfur.com/license */
|
|
1
2
|
import { ReactNode } from 'react';
|
|
2
3
|
import { ImageSourcePropType } from 'react-native';
|
|
3
|
-
import { O as OmsClient, S as ShopPet, b as ShopPackageSource, c as ShopCopy, d as ShopV3Copy, e as ShopRoute, f as ShopCardHandoff, a as ShopPaymentsPort, h as ShopProfileName } from '../idempotency.d-
|
|
4
|
-
export { I as OmsCardActionLink, J as OmsCardSetupLink, i as OmsCartLine, j as OmsClientConfig, k as OmsConsumerAuth, l as OmsError, m as OmsGetToken, n as OmsPlanOperation, o as OmsResult, p as SHOP_COPY, q as SHOP_COPY_PLACEHOLDERS, r as SHOP_V3_COPY, s as SHOP_V3_COPY_PLACEHOLDERS, t as ShopPackage, u as ShopPackageLine, K as ShopPayerActionContext, v as ShopPaymentStepResult, w as ShopTabName, U as UNAVAILABLE_PACKAGE_SOURCE, z as createOmsClient, A as createOmsPackageSource, C as isOmsRefusal, D as isOmsRetryable, E as isOmsUnavailable, F as newIdempotencyKey, G as shopCopy, H as shopV3Copy } from '../idempotency.d-
|
|
5
|
-
import '../config.d-
|
|
4
|
+
import { O as OmsClient, S as ShopPet, b as ShopPackageSource, c as ShopCopy, d as ShopV3Copy, e as ShopRoute, f as ShopCardHandoff, a as ShopPaymentsPort, h as ShopProfileName } from '../idempotency.d-CFc4CCc9.js';
|
|
5
|
+
export { I as OmsCardActionLink, J as OmsCardSetupLink, i as OmsCartLine, j as OmsClientConfig, k as OmsConsumerAuth, l as OmsError, m as OmsGetToken, n as OmsPlanOperation, o as OmsResult, p as SHOP_COPY, q as SHOP_COPY_PLACEHOLDERS, r as SHOP_V3_COPY, s as SHOP_V3_COPY_PLACEHOLDERS, t as ShopPackage, u as ShopPackageLine, K as ShopPayerActionContext, v as ShopPaymentStepResult, w as ShopTabName, U as UNAVAILABLE_PACKAGE_SOURCE, z as createOmsClient, A as createOmsPackageSource, C as isOmsRefusal, D as isOmsRetryable, E as isOmsUnavailable, F as newIdempotencyKey, G as shopCopy, H as shopV3Copy } from '../idempotency.d-CFc4CCc9.js';
|
|
6
|
+
import '../config.d-XSMThgVj.js';
|
|
6
7
|
import '../EverfurError.d-8NHtlgzA.js';
|
|
7
8
|
import '../EverfurResult.d-D_-254ZY.js';
|
|
8
9
|
|