@everfur/sdk 0.12.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/CHANGELOG.md +292 -0
  2. package/README.md +12 -10
  3. package/dist/{Chat-CgYQdfqi.d.ts → Chat.d-aycmX1CA.d.cts} +178 -8
  4. package/dist/{Chat-CbyZ1vAX.d.cts → Chat.d-puminpyi.d.ts} +178 -8
  5. package/dist/{DepthViews-CCz4ig0u.d.ts → DepthViews.d-BdvFZgPs.d.cts} +1 -1
  6. package/dist/{DepthViews-CaQUyCHK.d.ts → DepthViews.d-DIvxzLDf.d.ts} +1 -1
  7. package/dist/{DepthViews-iGZi4_WK.d.cts → DepthViews.d-Dy0Zl-s-.d.ts} +1 -1
  8. package/dist/{DepthViews-D3OiIK_x.d.cts → DepthViews.d-wLNkzk9f.d.cts} +1 -1
  9. package/dist/{ErrorPolicyPort-10s3HJCt.d.cts → ErrorPolicyPort.d-68yrE3BE.d.ts} +1 -1
  10. package/dist/{ErrorPolicyPort-C3nNSS_j.d.ts → ErrorPolicyPort.d-DirW9hgO.d.cts} +1 -1
  11. package/dist/{EverfurError-DeBqRpQV.d.cts → EverfurError.d-8NHtlgzA.d.cts} +11 -1
  12. package/dist/{EverfurError-DeBqRpQV.d.ts → EverfurError.d-8NHtlgzA.d.ts} +11 -1
  13. package/dist/{EverfurResult-ClPTS0P2.d.ts → EverfurResult.d-BFH-3s6E.d.cts} +1 -1
  14. package/dist/{EverfurResult-COlXj1wq.d.cts → EverfurResult.d-D_-254ZY.d.ts} +1 -1
  15. package/dist/{IntakeMedia-BH0fYDT2.d.cts → IntakeMedia.d-4a89XrP7.d.ts} +1 -1
  16. package/dist/{IntakeMedia-B-_vA9ZB.d.cts → IntakeMedia.d-DGxrhgIW.d.ts} +1 -1
  17. package/dist/{IntakeMedia-CIoTXAWs.d.ts → IntakeMedia.d-DUPR4lVM.d.cts} +1 -1
  18. package/dist/{IntakeMedia-Bavl7E4Z.d.ts → IntakeMedia.d-JJCUvQu7.d.cts} +1 -1
  19. package/dist/LifecyclePort.d-Cr1p33a7.d.cts +23 -0
  20. package/dist/LifecyclePort.d-Cr1p33a7.d.ts +23 -0
  21. package/dist/{PhotoController-vzY5bfY_.d.ts → PhotoController.d-BzCJOE7e.d.cts} +2 -2
  22. package/dist/{PhotoController-3l7MT9jA.d.cts → PhotoController.d-D0XiUUOl.d.ts} +2 -2
  23. package/dist/RecordsPage.d-9Ank15PT.d.ts +93 -0
  24. package/dist/RecordsPage.d-DMKU0IKc.d.cts +93 -0
  25. package/dist/animations/index.cjs +4 -1
  26. package/dist/animations/index.d.cts +24 -24
  27. package/dist/animations/index.d.ts +24 -24
  28. package/dist/animations/index.js +4 -1
  29. package/dist/{attachments-CTJK0jQ4.d.ts → attachments.d--sIsfk6e.d.ts} +4 -4
  30. package/dist/{attachments-DkMrKCIU.d.ts → attachments.d-DNUCiyy5.d.cts} +10 -32
  31. package/dist/{attachments-DXBETOrV.d.cts → attachments.d-ZEpTUeWN.d.cts} +4 -4
  32. package/dist/{attachments-BOk3hEAM.d.cts → attachments.d-rp3xs-Q3.d.ts} +10 -32
  33. package/dist/{bookingCopy-C_a45T4-.d.ts → bookingCopy.d-D0uIIFAJ.d.ts} +24 -9
  34. package/dist/{bookingCopy-CHYGYHe0.d.cts → bookingCopy.d-DUrmVcLs.d.cts} +24 -9
  35. package/dist/{branding-DJf4h12Q.d.ts → branding.d-CTXTUg_8.d.cts} +9 -2
  36. package/dist/{branding-BCfwLj0h.d.cts → branding.d-DxJSoFce.d.ts} +9 -2
  37. package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
  38. package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
  39. package/dist/{casesRepository-C8KJmlxE.d.cts → casesRepository.d-DCnix2pT.d.cts} +3 -3
  40. package/dist/{casesRepository-iAi5qWnx.d.ts → casesRepository.d-DbirgbyH.d.ts} +3 -3
  41. package/dist/chat/index.cjs +139 -63
  42. package/dist/chat/index.d.cts +34 -19
  43. package/dist/chat/index.d.ts +34 -19
  44. package/dist/chat/index.js +139 -63
  45. package/dist/client/index.cjs +14 -10
  46. package/dist/client/index.d.cts +19 -18
  47. package/dist/client/index.d.ts +19 -18
  48. package/dist/client/index.js +14 -10
  49. package/dist/clinicBatch.d-Ccmrngcu.d.cts +71 -0
  50. package/dist/clinicBatch.d-D9Ci7IpP.d.ts +71 -0
  51. package/dist/clinicModels.d-BXgKZqDb.d.cts +68 -0
  52. package/dist/clinicModels.d-CaS64-P-.d.ts +68 -0
  53. package/dist/clinicRequestProps.d-1dCtouGA.d.cts +65 -0
  54. package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +65 -0
  55. package/dist/{config-C9zhanL-.d.cts → config.d-DJ4mvf_w.d.cts} +3 -3
  56. package/dist/{config-C5iPNKDj.d.ts → config.d-MX7IKP2f.d.ts} +3 -3
  57. package/dist/consent/index.cjs +4 -1
  58. package/dist/consent/index.d.cts +10 -10
  59. package/dist/consent/index.d.ts +10 -10
  60. package/dist/consent/index.js +4 -1
  61. package/dist/{context-D_bcpHDA.d.cts → context.d-BdnBe8Oe.d.ts} +15 -15
  62. package/dist/{context-BUIrC20Z.d.ts → context.d-C6MJsMpN.d.cts} +15 -15
  63. package/dist/{copy-KbCU9fen.d.ts → copy.d-BIfQOoDB.d.ts} +6 -6
  64. package/dist/{copy-BE31T2jR.d.cts → copy.d-C_u7shha.d.cts} +6 -6
  65. package/dist/core/index.cjs +16 -13
  66. package/dist/core/index.d.cts +35 -29
  67. package/dist/core/index.d.ts +35 -29
  68. package/dist/core/index.js +16 -13
  69. package/dist/{depth-DDKGfFaB.d.ts → depth.d-COFxYWLU.d.ts} +9 -242
  70. package/dist/{depth-DNxDieoO.d.cts → depth.d-D2e5WZuE.d.cts} +9 -242
  71. package/dist/{entitlementRepository-C1_wXIE3.d.cts → entitlementRepository.d-BP15dFbe.d.cts} +10 -5
  72. package/dist/{entitlementRepository-CYtdIGfH.d.ts → entitlementRepository.d-DLuxnGi5.d.ts} +10 -5
  73. package/dist/features.d-DrQxTw3-.d.cts +108 -0
  74. package/dist/features.d-DrQxTw3-.d.ts +108 -0
  75. package/dist/focus.d-C0Tr0oVJ.d.ts +939 -0
  76. package/dist/focus.d-jQWp0hdK.d.cts +939 -0
  77. package/dist/health-plan/index.cjs +384 -0
  78. package/dist/health-plan/index.d.cts +293 -0
  79. package/dist/health-plan/index.d.ts +293 -0
  80. package/dist/health-plan/index.js +384 -0
  81. package/dist/idempotency.d-DXb1BN2A.d.ts +1055 -0
  82. package/dist/idempotency.d-HF6fyRt2.d.cts +1055 -0
  83. package/dist/{identity-gjurBi7m.d.cts → identity.d-BePPZ7Uv.d.ts} +3 -3
  84. package/dist/{identity-BqeaN8An.d.ts → identity.d-CJfnWOdH.d.cts} +3 -3
  85. package/dist/index.cjs +148 -72
  86. package/dist/index.d.cts +32 -29
  87. package/dist/index.d.ts +32 -29
  88. package/dist/index.js +148 -72
  89. package/dist/introEvents.d-BkGDT_kG.d.cts +175 -0
  90. package/dist/introEvents.d-DHlMvmC7.d.ts +175 -0
  91. package/dist/introEvents.d-dS3fJCH1.d.cts +5 -0
  92. package/dist/introEvents.d-dS3fJCH1.d.ts +5 -0
  93. package/dist/{models-CnXY5LuO.d.ts → models.d-BSqvbTE1.d.cts} +15 -3
  94. package/dist/{models-A4A5S7AG.d.cts → models.d-DOwnr8fi.d.ts} +15 -3
  95. package/dist/notifications/index.cjs +4 -1
  96. package/dist/notifications/index.d.cts +9 -9
  97. package/dist/notifications/index.d.ts +9 -9
  98. package/dist/notifications/index.js +4 -1
  99. package/dist/optInView.d-0iI5JoAf.d.cts +441 -0
  100. package/dist/optInView.d-s-w4aGN3.d.ts +441 -0
  101. package/dist/parse.d-COt1qVA6.d.ts +210 -0
  102. package/dist/parse.d-EmsgOUMQ.d.cts +210 -0
  103. package/dist/{pets-CfutxNs9.d.cts → pets.d-BFT_b53y.d.ts} +3 -3
  104. package/dist/{pets-LIGadUtr.d.ts → pets.d-nNAVnw7f.d.cts} +3 -3
  105. package/dist/{petsRepository-CoRa3C_U.d.ts → petsRepository.d-B2TpRE7r.d.cts} +4 -4
  106. package/dist/{petsRepository-Cqpd3hLU.d.cts → petsRepository.d-RGwSZcYl.d.ts} +4 -4
  107. package/dist/photo/index.cjs +5 -2
  108. package/dist/photo/index.d.cts +9 -9
  109. package/dist/photo/index.d.ts +9 -9
  110. package/dist/photo/index.js +5 -2
  111. package/dist/planSignals.d-BDbp2e-k.d.cts +126 -0
  112. package/dist/planSignals.d-DSnxKoWe.d.ts +126 -0
  113. package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.cts} +14 -1
  114. package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.ts} +14 -1
  115. package/dist/{ports-CVi3n0re.d.ts → ports.d-D2n4HRUy.d.ts} +16 -10
  116. package/dist/{ports-gJ3faaWz.d.cts → ports.d-DBA_gsq5.d.cts} +16 -10
  117. package/dist/presentation.d-vy8kTGfR.d.cts +96 -0
  118. package/dist/presentation.d-vy8kTGfR.d.ts +96 -0
  119. package/dist/quickPrompts.d-NM_81Jc1.d.cts +19 -0
  120. package/dist/quickPrompts.d-NM_81Jc1.d.ts +19 -0
  121. package/dist/records/depth/index.cjs +10 -7
  122. package/dist/records/depth/index.d.cts +18 -12
  123. package/dist/records/depth/index.d.ts +18 -12
  124. package/dist/records/depth/index.js +10 -7
  125. package/dist/records/index.cjs +350 -74
  126. package/dist/records/index.d.cts +225 -21
  127. package/dist/records/index.d.ts +225 -21
  128. package/dist/records/index.js +351 -75
  129. package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
  130. package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
  131. package/dist/{requestFunnel-BYzlyaC0.d.ts → requestFunnel.d-D9edIEjZ.d.ts} +5 -5
  132. package/dist/{requestFunnel-DLZpiFD3.d.cts → requestFunnel.d-RZex94XX.d.cts} +5 -5
  133. package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-CoQWUy1Y.d.cts} +2 -2
  134. package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-CoQWUy1Y.d.ts} +2 -2
  135. package/dist/{runtimeTypes-BxxCKMn8.d.cts → runtimeTypes.d-BYq38b17.d.ts} +20 -13
  136. package/dist/{runtimeTypes-Doa_xxSa.d.ts → runtimeTypes.d-LkwZaF7z.d.cts} +20 -13
  137. package/dist/screenProps.d-BVzRzowC.d.ts +159 -0
  138. package/dist/screenProps.d-CQ0qZJkr.d.cts +159 -0
  139. package/dist/server/events/index.cjs +6 -3
  140. package/dist/server/events/index.d.cts +51 -9
  141. package/dist/server/events/index.d.ts +51 -9
  142. package/dist/server/events/index.js +6 -3
  143. package/dist/server/index.cjs +11 -6
  144. package/dist/server/index.d.cts +152 -8
  145. package/dist/server/index.d.ts +152 -8
  146. package/dist/server/index.js +11 -6
  147. package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
  148. package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
  149. package/dist/sheetSeam.d-B09jf4YC.d.ts +49 -0
  150. package/dist/sheetSeam.d-BBuEIVsa.d.cts +49 -0
  151. package/dist/shop/index.cjs +428 -0
  152. package/dist/shop/index.d.cts +211 -0
  153. package/dist/shop/index.d.ts +211 -0
  154. package/dist/shop/index.js +428 -0
  155. package/dist/tabs/index.cjs +195 -0
  156. package/dist/tabs/index.d.cts +174 -0
  157. package/dist/tabs/index.d.ts +174 -0
  158. package/dist/tabs/index.js +195 -0
  159. package/dist/tabsModel.d-BfIQg6yS.d.cts +31 -0
  160. package/dist/tabsModel.d-BfIQg6yS.d.ts +31 -0
  161. package/dist/televet/booking/index.cjs +15 -12
  162. package/dist/televet/booking/index.d.cts +36 -22
  163. package/dist/televet/booking/index.d.ts +36 -22
  164. package/dist/televet/booking/index.js +15 -12
  165. package/dist/televet/call/index.d.cts +5 -5
  166. package/dist/televet/call/index.d.ts +5 -5
  167. package/dist/televet/index.cjs +6 -3
  168. package/dist/televet/index.d.cts +12 -12
  169. package/dist/televet/index.d.ts +12 -12
  170. package/dist/televet/index.js +6 -3
  171. package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
  172. package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
  173. package/dist/testing/index.cjs +6 -3
  174. package/dist/testing/index.d.cts +3 -3
  175. package/dist/testing/index.d.ts +3 -3
  176. package/dist/testing/index.js +6 -3
  177. package/dist/testing/rn/index.cjs +5 -2
  178. package/dist/testing/rn/index.d.cts +23 -22
  179. package/dist/testing/rn/index.d.ts +23 -22
  180. package/dist/testing/rn/index.js +5 -2
  181. package/dist/testing/web/index.cjs +4 -1
  182. package/dist/testing/web/index.d.cts +23 -22
  183. package/dist/testing/web/index.d.ts +23 -22
  184. package/dist/testing/web/index.js +4 -1
  185. package/dist/texting/index.cjs +193 -0
  186. package/dist/texting/index.d.cts +69 -0
  187. package/dist/texting/index.d.ts +69 -0
  188. package/dist/texting/index.js +193 -0
  189. package/dist/threadOptions.d-9r4Csa7k.d.cts +458 -0
  190. package/dist/threadOptions.d-B6GA09aM.d.ts +458 -0
  191. package/dist/{timelineRows-Beun96e2.d.cts → timelineRows.d-Bes8ip2v.d.ts} +1 -1
  192. package/dist/{timelineRows-CGOlC_Q9.d.ts → timelineRows.d-BvM2A7_G.d.cts} +1 -1
  193. package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
  194. package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
  195. package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-Co5KF0up.d.ts} +2 -2
  196. package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-xIZj02Ru.d.cts} +2 -2
  197. package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
  198. package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
  199. package/dist/useIntroSeen.d-CTWFUthO.d.cts +35 -0
  200. package/dist/useIntroSeen.d-CTWFUthO.d.ts +35 -0
  201. package/dist/usePresentation.d-BGz32Vlm.d.ts +285 -0
  202. package/dist/usePresentation.d-DYTF_ZGf.d.cts +285 -0
  203. package/dist/useRecords.d-BYNX01El.d.cts +121 -0
  204. package/dist/useRecords.d-DWk61a4c.d.ts +121 -0
  205. package/dist/useRecordsDepth.d--LLA_4ga.d.cts +32 -0
  206. package/dist/useRecordsDepth.d-BQRL0Hez.d.ts +32 -0
  207. package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
  208. package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
  209. package/dist/video/index.cjs +5 -2
  210. package/dist/video/index.d.cts +7 -7
  211. package/dist/video/index.d.ts +7 -7
  212. package/dist/video/index.js +5 -2
  213. package/dist/{view-VvLEdXP4.d.cts → view.d-0yBjLTV3.d.cts} +12 -122
  214. package/dist/{view-C_B5U04g.d.ts → view.d-DqbCADFa.d.ts} +12 -122
  215. package/dist/web/consent/index.cjs +4 -1
  216. package/dist/web/consent/index.d.cts +10 -10
  217. package/dist/web/consent/index.d.ts +10 -10
  218. package/dist/web/consent/index.js +4 -1
  219. package/dist/web/health-plan/index.cjs +421 -0
  220. package/dist/web/health-plan/index.d.cts +189 -0
  221. package/dist/web/health-plan/index.d.ts +189 -0
  222. package/dist/web/health-plan/index.js +421 -0
  223. package/dist/web/index.cjs +170 -87
  224. package/dist/web/index.d.cts +292 -38
  225. package/dist/web/index.d.ts +292 -38
  226. package/dist/web/index.js +170 -87
  227. package/dist/web/intro/index.cjs +167 -0
  228. package/dist/web/intro/index.d.cts +79 -0
  229. package/dist/web/intro/index.d.ts +79 -0
  230. package/dist/web/intro/index.js +167 -0
  231. package/dist/web/notifications/index.cjs +15 -3
  232. package/dist/web/notifications/index.d.cts +39 -209
  233. package/dist/web/notifications/index.d.ts +39 -209
  234. package/dist/web/notifications/index.js +15 -3
  235. package/dist/web/records/depth/index.cjs +10 -7
  236. package/dist/web/records/depth/index.d.cts +18 -12
  237. package/dist/web/records/depth/index.d.ts +18 -12
  238. package/dist/web/records/depth/index.js +10 -7
  239. package/dist/web/records/index.cjs +94 -68
  240. package/dist/web/records/index.d.cts +39 -55
  241. package/dist/web/records/index.d.ts +39 -55
  242. package/dist/web/records/index.js +94 -68
  243. package/dist/web/records/upload/index.d.cts +2 -2
  244. package/dist/web/records/upload/index.d.ts +2 -2
  245. package/dist/web/records-sheet/index.cjs +332 -0
  246. package/dist/web/records-sheet/index.d.cts +104 -0
  247. package/dist/web/records-sheet/index.d.ts +104 -0
  248. package/dist/web/records-sheet/index.js +332 -0
  249. package/dist/web/shop/index.cjs +416 -0
  250. package/dist/web/shop/index.d.cts +59 -0
  251. package/dist/web/shop/index.d.ts +59 -0
  252. package/dist/web/shop/index.js +416 -0
  253. package/dist/web/televet/booking/index.cjs +15 -12
  254. package/dist/web/televet/booking/index.d.cts +37 -23
  255. package/dist/web/televet/booking/index.d.ts +37 -23
  256. package/dist/web/televet/booking/index.js +15 -12
  257. package/dist/web/televet/call/index.d.cts +4 -4
  258. package/dist/web/televet/call/index.d.ts +4 -4
  259. package/dist/web/televet/index.cjs +6 -3
  260. package/dist/web/televet/index.d.cts +12 -12
  261. package/dist/web/televet/index.d.ts +12 -12
  262. package/dist/web/televet/index.js +6 -3
  263. package/dist/web/texting/index.cjs +188 -0
  264. package/dist/web/texting/index.d.cts +69 -0
  265. package/dist/web/texting/index.d.ts +69 -0
  266. package/dist/web/texting/index.js +188 -0
  267. package/health-plan/package.json +8 -0
  268. package/package.json +138 -5
  269. package/shop/package.json +8 -0
  270. package/tabs/package.json +8 -0
  271. package/texting/package.json +8 -0
  272. package/web/health-plan/native-blocked.cjs +12 -0
  273. package/web/health-plan/package.json +8 -0
  274. package/web/intro/native-blocked.cjs +12 -0
  275. package/web/intro/package.json +8 -0
  276. package/web/records-sheet/native-blocked.cjs +12 -0
  277. package/web/records-sheet/package.json +8 -0
  278. package/web/shop/native-blocked.cjs +12 -0
  279. package/web/shop/package.json +8 -0
  280. package/web/texting/native-blocked.cjs +12 -0
  281. package/web/texting/package.json +8 -0
  282. package/dist/useRecordsDepth-DRrJntjt.d.cts +0 -257
  283. package/dist/useRecordsDepth-hR94debv.d.ts +0 -257
  284. /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
  285. /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
  286. /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
  287. /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
  288. /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
  289. /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
  290. /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
  291. /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
  292. /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
  293. /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
  294. /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
  295. /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
  296. /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
  297. /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
  298. /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
  299. /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
  300. /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
  301. /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
  302. /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
  303. /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
@@ -0,0 +1,71 @@
1
+ import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
2
+ import { P as PetRef } from './ids.d-B2GAAifq.cjs';
3
+ import { a as RecordsClinicTarget, b as RecordsAuthorizationSignature } from './clinicModels.d-BXgKZqDb.cjs';
4
+ import { R as RequestFunnel } from './requestFunnel.d-RZex94XX.cjs';
5
+ import { A as AuthContext } from './identity.d-CJfnWOdH.cjs';
6
+ import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
7
+ import { d as RecordsRequestView } from './models.d-BSqvbTE1.cjs';
8
+
9
+ interface HttpRecordsClinicRepositoryDeps {
10
+ readonly auth: AuthContext;
11
+ readonly funnel?: RequestFunnel;
12
+ readonly errorPolicy?: ErrorPolicyPort;
13
+ }
14
+
15
+ /** The most clinics one batch may name (the server's `_MAX_BATCH_CLINICS`). */
16
+ declare const RECORDS_CLINIC_BATCH_MAX = 10;
17
+ /** One clinic of a batch: exactly one clinic target, exactly one signature, and its own idempotency key. */
18
+ type RecordsClinicBatchItem = RecordsClinicTarget & RecordsAuthorizationSignature & {
19
+ /** Owner-supplied contact only; server anti-relay checks prevent redirecting an addressable clinic. */
20
+ readonly clinicEmail?: string;
21
+ /** Stable for retries of this clinic's authorization, distinct for a new one. */
22
+ readonly idempotencyKey: string;
23
+ };
24
+ interface CreateClinicRequestBatchInput {
25
+ /** The registered pet the records are requested for. */
26
+ readonly petRef: PetRef;
27
+ /** The signer's name, confirmed by the owner before signing. */
28
+ readonly ownerName: string;
29
+ /** The version of the backend-authored authorization copy the owner signed. */
30
+ readonly authorizationVersion: string;
31
+ /** 1..RECORDS_CLINIC_BATCH_MAX clinics. */
32
+ readonly clinics: readonly RecordsClinicBatchItem[];
33
+ }
34
+ /** One clinic's outcome: `request` when created, `failureCode` and `failureReason` when not. */
35
+ interface RecordsClinicBatchResult {
36
+ /** The idempotency key this clinic was sent with. */
37
+ readonly idempotencyKey: string;
38
+ /** The directory clinic, when the clinic was chosen from the directory. */
39
+ readonly clinicId: string | null;
40
+ /** The owner-entered clinic, when it was not. */
41
+ readonly clinicFreeText: string | null;
42
+ /** True when this clinic has a request in the response; false with failureCode otherwise. */
43
+ readonly created: boolean;
44
+ /** The created request, mapped like every other records request. */
45
+ readonly request: RecordsRequestView | null;
46
+ /** Machine-readable reason this clinic was not created. */
47
+ readonly failureCode: string | null;
48
+ /** Server-authored; safe to log, but render your own copy from `failureCode`. */
49
+ readonly failureReason: string | null;
50
+ }
51
+ interface RecordsClinicBatch {
52
+ /** The group every request of this batch belongs to. */
53
+ readonly requestGroupId: string;
54
+ /** The pet the batch was for; always the input's petRef. */
55
+ readonly petRef: string;
56
+ /** One result per clinic, in the order sent. */
57
+ readonly results: readonly RecordsClinicBatchResult[];
58
+ /** How many clinics have a request. */
59
+ readonly createdCount: number;
60
+ /** How many clinics failed. */
61
+ readonly failedCount: number;
62
+ }
63
+ /** The multi-clinic records request client. */
64
+ interface RecordsClinicBatchClient {
65
+ /** Run it only from the owner's own signed action: it gives consent and contacts clinics in the owner's name. */
66
+ createClinicRequestBatch(input: CreateClinicRequestBatchInput): Promise<EverfurResult<RecordsClinicBatch>>;
67
+ }
68
+ /** The batch client, over the same auth, funnel and error policy as the clinic repository. */
69
+ declare function createRecordsClinicBatchClient(deps: HttpRecordsClinicRepositoryDeps): RecordsClinicBatchClient;
70
+
71
+ export { type CreateClinicRequestBatchInput as C, type HttpRecordsClinicRepositoryDeps as H, type RecordsClinicBatch as R, type RecordsClinicBatchClient as a, RECORDS_CLINIC_BATCH_MAX as b, type RecordsClinicBatchItem as c, type RecordsClinicBatchResult as d, createRecordsClinicBatchClient as e };
@@ -0,0 +1,71 @@
1
+ import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
2
+ import { P as PetRef } from './ids.d-B2GAAifq.js';
3
+ import { a as RecordsClinicTarget, b as RecordsAuthorizationSignature } from './clinicModels.d-CaS64-P-.js';
4
+ import { R as RequestFunnel } from './requestFunnel.d-D9edIEjZ.js';
5
+ import { A as AuthContext } from './identity.d-BePPZ7Uv.js';
6
+ import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
7
+ import { d as RecordsRequestView } from './models.d-DOwnr8fi.js';
8
+
9
+ interface HttpRecordsClinicRepositoryDeps {
10
+ readonly auth: AuthContext;
11
+ readonly funnel?: RequestFunnel;
12
+ readonly errorPolicy?: ErrorPolicyPort;
13
+ }
14
+
15
+ /** The most clinics one batch may name (the server's `_MAX_BATCH_CLINICS`). */
16
+ declare const RECORDS_CLINIC_BATCH_MAX = 10;
17
+ /** One clinic of a batch: exactly one clinic target, exactly one signature, and its own idempotency key. */
18
+ type RecordsClinicBatchItem = RecordsClinicTarget & RecordsAuthorizationSignature & {
19
+ /** Owner-supplied contact only; server anti-relay checks prevent redirecting an addressable clinic. */
20
+ readonly clinicEmail?: string;
21
+ /** Stable for retries of this clinic's authorization, distinct for a new one. */
22
+ readonly idempotencyKey: string;
23
+ };
24
+ interface CreateClinicRequestBatchInput {
25
+ /** The registered pet the records are requested for. */
26
+ readonly petRef: PetRef;
27
+ /** The signer's name, confirmed by the owner before signing. */
28
+ readonly ownerName: string;
29
+ /** The version of the backend-authored authorization copy the owner signed. */
30
+ readonly authorizationVersion: string;
31
+ /** 1..RECORDS_CLINIC_BATCH_MAX clinics. */
32
+ readonly clinics: readonly RecordsClinicBatchItem[];
33
+ }
34
+ /** One clinic's outcome: `request` when created, `failureCode` and `failureReason` when not. */
35
+ interface RecordsClinicBatchResult {
36
+ /** The idempotency key this clinic was sent with. */
37
+ readonly idempotencyKey: string;
38
+ /** The directory clinic, when the clinic was chosen from the directory. */
39
+ readonly clinicId: string | null;
40
+ /** The owner-entered clinic, when it was not. */
41
+ readonly clinicFreeText: string | null;
42
+ /** True when this clinic has a request in the response; false with failureCode otherwise. */
43
+ readonly created: boolean;
44
+ /** The created request, mapped like every other records request. */
45
+ readonly request: RecordsRequestView | null;
46
+ /** Machine-readable reason this clinic was not created. */
47
+ readonly failureCode: string | null;
48
+ /** Server-authored; safe to log, but render your own copy from `failureCode`. */
49
+ readonly failureReason: string | null;
50
+ }
51
+ interface RecordsClinicBatch {
52
+ /** The group every request of this batch belongs to. */
53
+ readonly requestGroupId: string;
54
+ /** The pet the batch was for; always the input's petRef. */
55
+ readonly petRef: string;
56
+ /** One result per clinic, in the order sent. */
57
+ readonly results: readonly RecordsClinicBatchResult[];
58
+ /** How many clinics have a request. */
59
+ readonly createdCount: number;
60
+ /** How many clinics failed. */
61
+ readonly failedCount: number;
62
+ }
63
+ /** The multi-clinic records request client. */
64
+ interface RecordsClinicBatchClient {
65
+ /** Run it only from the owner's own signed action: it gives consent and contacts clinics in the owner's name. */
66
+ createClinicRequestBatch(input: CreateClinicRequestBatchInput): Promise<EverfurResult<RecordsClinicBatch>>;
67
+ }
68
+ /** The batch client, over the same auth, funnel and error policy as the clinic repository. */
69
+ declare function createRecordsClinicBatchClient(deps: HttpRecordsClinicRepositoryDeps): RecordsClinicBatchClient;
70
+
71
+ export { type CreateClinicRequestBatchInput as C, type HttpRecordsClinicRepositoryDeps as H, type RecordsClinicBatch as R, type RecordsClinicBatchClient as a, RECORDS_CLINIC_BATCH_MAX as b, type RecordsClinicBatchItem as c, type RecordsClinicBatchResult as d, createRecordsClinicBatchClient as e };
@@ -0,0 +1,68 @@
1
+ import { P as PetRef } from './ids.d-B2GAAifq.cjs';
2
+
3
+ /** Directory contact details only. The server intentionally does not expose clinic email addresses. */
4
+ interface RecordsClinic {
5
+ readonly id: string;
6
+ readonly name: string;
7
+ readonly address: string | null;
8
+ readonly phone: string | null;
9
+ readonly emailStatus: string;
10
+ readonly distanceKm: number | null;
11
+ }
12
+ interface RecordsClinicSearchInput {
13
+ readonly query?: string;
14
+ readonly location?: {
15
+ readonly latitude: number;
16
+ readonly longitude: number;
17
+ };
18
+ readonly limit?: number;
19
+ /** Use with the same query/location that produced it. Opaque; never decode it. */
20
+ readonly cursor?: string;
21
+ }
22
+ interface RecordsClinicSearchPage {
23
+ readonly clinics: readonly RecordsClinic[];
24
+ readonly nextCursor: string | null;
25
+ }
26
+ /** `GET /widget/v1/records/clinics/recent`: the directory clinics THIS member sent a request to before. */
27
+ interface RecordsRecentClinicsInput {
28
+ /** 1 to 25 (the route's bound); the server default when omitted. */
29
+ readonly limit?: number;
30
+ }
31
+ /** Backend-authored templates. Present them before signing; never substitute SDK-authored legal copy. */
32
+ interface RecordsAuthorizationCopy {
33
+ readonly authorizationVersion: string;
34
+ readonly scopeTemplate: string;
35
+ readonly authorizationTemplate: string;
36
+ }
37
+ type RecordsClinicTarget = {
38
+ readonly clinicId: string;
39
+ readonly clinicFreeText?: never;
40
+ } | {
41
+ readonly clinicId?: never;
42
+ readonly clinicFreeText: string;
43
+ };
44
+ /** Exactly one explicit authorization signature; never inferred from the partner's virtual user. */
45
+ type RecordsAuthorizationSignature = {
46
+ readonly signatureId: string;
47
+ readonly signaturePngBase64?: never;
48
+ } | {
49
+ readonly signatureId?: never;
50
+ readonly signaturePngBase64: string;
51
+ };
52
+ type CreateClinicRequestInput = RecordsClinicTarget & RecordsAuthorizationSignature & {
53
+ readonly petRef: PetRef;
54
+ readonly ownerName: string;
55
+ readonly authorizationVersion: string;
56
+ /** Owner-supplied contact only; server anti-relay checks prevent redirecting an addressable clinic. */
57
+ readonly clinicEmail?: string;
58
+ /** Stable for retries of this authorization, distinct for a new authorization. */
59
+ readonly idempotencyKey: string;
60
+ };
61
+ /** Multipart signature upload policy. Do not log or persist this short-lived credential. */
62
+ interface RecordsSignatureUploadPolicy {
63
+ readonly uploadId: string;
64
+ readonly uploadUrl: string;
65
+ readonly uploadFields: Readonly<Record<string, string>>;
66
+ }
67
+
68
+ export type { CreateClinicRequestInput as C, RecordsClinic as R, RecordsClinicTarget as a, RecordsAuthorizationSignature as b, RecordsClinicSearchInput as c, RecordsClinicSearchPage as d, RecordsRecentClinicsInput as e, RecordsAuthorizationCopy as f, RecordsSignatureUploadPolicy as g };
@@ -0,0 +1,68 @@
1
+ import { P as PetRef } from './ids.d-B2GAAifq.js';
2
+
3
+ /** Directory contact details only. The server intentionally does not expose clinic email addresses. */
4
+ interface RecordsClinic {
5
+ readonly id: string;
6
+ readonly name: string;
7
+ readonly address: string | null;
8
+ readonly phone: string | null;
9
+ readonly emailStatus: string;
10
+ readonly distanceKm: number | null;
11
+ }
12
+ interface RecordsClinicSearchInput {
13
+ readonly query?: string;
14
+ readonly location?: {
15
+ readonly latitude: number;
16
+ readonly longitude: number;
17
+ };
18
+ readonly limit?: number;
19
+ /** Use with the same query/location that produced it. Opaque; never decode it. */
20
+ readonly cursor?: string;
21
+ }
22
+ interface RecordsClinicSearchPage {
23
+ readonly clinics: readonly RecordsClinic[];
24
+ readonly nextCursor: string | null;
25
+ }
26
+ /** `GET /widget/v1/records/clinics/recent`: the directory clinics THIS member sent a request to before. */
27
+ interface RecordsRecentClinicsInput {
28
+ /** 1 to 25 (the route's bound); the server default when omitted. */
29
+ readonly limit?: number;
30
+ }
31
+ /** Backend-authored templates. Present them before signing; never substitute SDK-authored legal copy. */
32
+ interface RecordsAuthorizationCopy {
33
+ readonly authorizationVersion: string;
34
+ readonly scopeTemplate: string;
35
+ readonly authorizationTemplate: string;
36
+ }
37
+ type RecordsClinicTarget = {
38
+ readonly clinicId: string;
39
+ readonly clinicFreeText?: never;
40
+ } | {
41
+ readonly clinicId?: never;
42
+ readonly clinicFreeText: string;
43
+ };
44
+ /** Exactly one explicit authorization signature; never inferred from the partner's virtual user. */
45
+ type RecordsAuthorizationSignature = {
46
+ readonly signatureId: string;
47
+ readonly signaturePngBase64?: never;
48
+ } | {
49
+ readonly signatureId?: never;
50
+ readonly signaturePngBase64: string;
51
+ };
52
+ type CreateClinicRequestInput = RecordsClinicTarget & RecordsAuthorizationSignature & {
53
+ readonly petRef: PetRef;
54
+ readonly ownerName: string;
55
+ readonly authorizationVersion: string;
56
+ /** Owner-supplied contact only; server anti-relay checks prevent redirecting an addressable clinic. */
57
+ readonly clinicEmail?: string;
58
+ /** Stable for retries of this authorization, distinct for a new authorization. */
59
+ readonly idempotencyKey: string;
60
+ };
61
+ /** Multipart signature upload policy. Do not log or persist this short-lived credential. */
62
+ interface RecordsSignatureUploadPolicy {
63
+ readonly uploadId: string;
64
+ readonly uploadUrl: string;
65
+ readonly uploadFields: Readonly<Record<string, string>>;
66
+ }
67
+
68
+ export type { CreateClinicRequestInput as C, RecordsClinic as R, RecordsClinicTarget as a, RecordsAuthorizationSignature as b, RecordsClinicSearchInput as c, RecordsClinicSearchPage as d, RecordsRecentClinicsInput as e, RecordsAuthorizationCopy as f, RecordsSignatureUploadPolicy as g };
@@ -0,0 +1,65 @@
1
+ import { R as RecordsRequestId, P as PetRef } from './ids.d-B2GAAifq.cjs';
2
+ import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
3
+ import { c as RecordsClinicSearchInput, d as RecordsClinicSearchPage, e as RecordsRecentClinicsInput, f as RecordsAuthorizationCopy, C as CreateClinicRequestInput, g as RecordsSignatureUploadPolicy } from './clinicModels.d-BXgKZqDb.cjs';
4
+ import { e as RecordsRequestGroupView, d as RecordsRequestView } from './models.d-BSqvbTE1.cjs';
5
+
6
+ interface RecordsClinicController {
7
+ searchClinics(input?: RecordsClinicSearchInput): Promise<EverfurResult<RecordsClinicSearchPage>>;
8
+ /** The clinics this member requested from before, most recent first: the picker's "recent" section. */
9
+ recentClinics(input?: RecordsRecentClinicsInput): Promise<EverfurResult<RecordsClinicSearchPage>>;
10
+ /** A multi-clinic batch's rollup and members. Not found until Everfur switches the multi-clinic flag on. */
11
+ getRequestGroup(requestGroupId: string): Promise<EverfurResult<RecordsRequestGroupView>>;
12
+ getAuthorizationCopy(): Promise<EverfurResult<RecordsAuthorizationCopy>>;
13
+ createClinicRequest(input: CreateClinicRequestInput): Promise<EverfurResult<RecordsRequestView>>;
14
+ retryRequest(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
15
+ revokeRequest(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
16
+ updateClinicEmail(id: RecordsRequestId, clinicEmail: string): Promise<EverfurResult<RecordsRequestView>>;
17
+ convertToUpload(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
18
+ /** Bytes are uploaded by the host directly to the returned multipart policy; never through the API. */
19
+ initiateSignatureUpload(fileSize: number): Promise<EverfurResult<RecordsSignatureUploadPolicy>>;
20
+ completeSignatureUpload(uploadId: string): Promise<EverfurResult<string>>;
21
+ }
22
+
23
+ /** The exact owner-visible scope at the moment the owner chooses to sign. */
24
+ interface RecordsSignatureContext {
25
+ readonly petRef: PetRef;
26
+ readonly petName: string;
27
+ readonly ownerName: string;
28
+ readonly clinicName: string;
29
+ readonly authorizationVersion: string;
30
+ readonly scopeText: string;
31
+ /** Cancel native capture/upload when the signed-in user or active pet changes. */
32
+ readonly signal: AbortSignal;
33
+ }
34
+ /**
35
+ * A captured signature: a registered signature id (the PNG uploaded through the initiate/complete APIs, the
36
+ * consumer's own path, which keeps the bytes off the JSON body), or an inline PNG: the built-in React Native
37
+ * pad's one-bit image (a few hundred bytes), or any built-in pad's PNG when the direct S3 POST was refused
38
+ * (`signatureUploadFallback.ts`). The widget create path accepts it inline up to 2 MiB of base64.
39
+ */
40
+ type CapturedRecordsSignature = {
41
+ readonly signatureId: string;
42
+ readonly signaturePngBase64?: never;
43
+ } | {
44
+ readonly signatureId?: never;
45
+ readonly signaturePngBase64: string;
46
+ };
47
+ /**
48
+ * Capture explicitly at the moment the owner presses Send, after seeing the scope, and return the signature.
49
+ * null means the owner cancelled. Prefer the registered id for anything but a tiny PNG.
50
+ */
51
+ type CaptureRecordsSignature = (context: RecordsSignatureContext) => Promise<CapturedRecordsSignature | null>;
52
+ interface ClinicRequestBaseProps {
53
+ readonly petRef: PetRef;
54
+ /** Display name for this exact registered petRef; the server owns the final PDF identity. */
55
+ readonly petName: string;
56
+ /** Initial value only; the owner can visibly confirm or correct it before signing. */
57
+ readonly ownerName: string;
58
+ readonly onCaptureSignature?: CaptureRecordsSignature;
59
+ readonly onCreated?: (request: RecordsRequestView) => void;
60
+ readonly onClose?: () => void;
61
+ /** Host/test seam over the same signed-user controller contract. */
62
+ readonly controller?: RecordsClinicController;
63
+ }
64
+
65
+ export type { CaptureRecordsSignature as C, RecordsClinicController as R, ClinicRequestBaseProps as a, CapturedRecordsSignature as b, RecordsSignatureContext as c };
@@ -0,0 +1,65 @@
1
+ import { R as RecordsRequestId, P as PetRef } from './ids.d-B2GAAifq.js';
2
+ import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
3
+ import { c as RecordsClinicSearchInput, d as RecordsClinicSearchPage, e as RecordsRecentClinicsInput, f as RecordsAuthorizationCopy, C as CreateClinicRequestInput, g as RecordsSignatureUploadPolicy } from './clinicModels.d-CaS64-P-.js';
4
+ import { e as RecordsRequestGroupView, d as RecordsRequestView } from './models.d-DOwnr8fi.js';
5
+
6
+ interface RecordsClinicController {
7
+ searchClinics(input?: RecordsClinicSearchInput): Promise<EverfurResult<RecordsClinicSearchPage>>;
8
+ /** The clinics this member requested from before, most recent first: the picker's "recent" section. */
9
+ recentClinics(input?: RecordsRecentClinicsInput): Promise<EverfurResult<RecordsClinicSearchPage>>;
10
+ /** A multi-clinic batch's rollup and members. Not found until Everfur switches the multi-clinic flag on. */
11
+ getRequestGroup(requestGroupId: string): Promise<EverfurResult<RecordsRequestGroupView>>;
12
+ getAuthorizationCopy(): Promise<EverfurResult<RecordsAuthorizationCopy>>;
13
+ createClinicRequest(input: CreateClinicRequestInput): Promise<EverfurResult<RecordsRequestView>>;
14
+ retryRequest(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
15
+ revokeRequest(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
16
+ updateClinicEmail(id: RecordsRequestId, clinicEmail: string): Promise<EverfurResult<RecordsRequestView>>;
17
+ convertToUpload(id: RecordsRequestId): Promise<EverfurResult<RecordsRequestView>>;
18
+ /** Bytes are uploaded by the host directly to the returned multipart policy; never through the API. */
19
+ initiateSignatureUpload(fileSize: number): Promise<EverfurResult<RecordsSignatureUploadPolicy>>;
20
+ completeSignatureUpload(uploadId: string): Promise<EverfurResult<string>>;
21
+ }
22
+
23
+ /** The exact owner-visible scope at the moment the owner chooses to sign. */
24
+ interface RecordsSignatureContext {
25
+ readonly petRef: PetRef;
26
+ readonly petName: string;
27
+ readonly ownerName: string;
28
+ readonly clinicName: string;
29
+ readonly authorizationVersion: string;
30
+ readonly scopeText: string;
31
+ /** Cancel native capture/upload when the signed-in user or active pet changes. */
32
+ readonly signal: AbortSignal;
33
+ }
34
+ /**
35
+ * A captured signature: a registered signature id (the PNG uploaded through the initiate/complete APIs, the
36
+ * consumer's own path, which keeps the bytes off the JSON body), or an inline PNG: the built-in React Native
37
+ * pad's one-bit image (a few hundred bytes), or any built-in pad's PNG when the direct S3 POST was refused
38
+ * (`signatureUploadFallback.ts`). The widget create path accepts it inline up to 2 MiB of base64.
39
+ */
40
+ type CapturedRecordsSignature = {
41
+ readonly signatureId: string;
42
+ readonly signaturePngBase64?: never;
43
+ } | {
44
+ readonly signatureId?: never;
45
+ readonly signaturePngBase64: string;
46
+ };
47
+ /**
48
+ * Capture explicitly at the moment the owner presses Send, after seeing the scope, and return the signature.
49
+ * null means the owner cancelled. Prefer the registered id for anything but a tiny PNG.
50
+ */
51
+ type CaptureRecordsSignature = (context: RecordsSignatureContext) => Promise<CapturedRecordsSignature | null>;
52
+ interface ClinicRequestBaseProps {
53
+ readonly petRef: PetRef;
54
+ /** Display name for this exact registered petRef; the server owns the final PDF identity. */
55
+ readonly petName: string;
56
+ /** Initial value only; the owner can visibly confirm or correct it before signing. */
57
+ readonly ownerName: string;
58
+ readonly onCaptureSignature?: CaptureRecordsSignature;
59
+ readonly onCreated?: (request: RecordsRequestView) => void;
60
+ readonly onClose?: () => void;
61
+ /** Host/test seam over the same signed-user controller contract. */
62
+ readonly controller?: RecordsClinicController;
63
+ }
64
+
65
+ export type { CaptureRecordsSignature as C, RecordsClinicController as R, ClinicRequestBaseProps as a, CapturedRecordsSignature as b, RecordsSignatureContext as c };
@@ -1,5 +1,5 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.cjs';
2
- import { E as EverfurResult } from './EverfurResult-COlXj1wq.cjs';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
+ import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
3
3
 
4
4
  /** The closed set of frame discriminators. `unknown` is the forward-compat catch-all. */
5
5
  type FrameKind = 'accepted' | 'heartbeat' | 'delta' | 'done' | 'error' | 'analysisStarted' | 'analysisComplete' | 'unknown';
@@ -409,7 +409,7 @@ declare function getGlobalFetch(): FetchLike;
409
409
  * Package semver, sent as X-Everfur-SDK-Version. MUST track package.json version (release checklist Item 12
410
410
  * keeps the npm semver tag and this constant in lockstep). Set inside the SDK, never by partner code.
411
411
  */
412
- declare const SDK_VERSION = "0.12.1";
412
+ declare const SDK_VERSION = "0.14.0";
413
413
  /**
414
414
  * The platforms this package ships an entry point for, as the wire names them (X-Everfur-SDK-Platform).
415
415
  *
@@ -1,5 +1,5 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.js';
2
- import { E as EverfurResult } from './EverfurResult-ClPTS0P2.js';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
+ import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
3
3
 
4
4
  /** The closed set of frame discriminators. `unknown` is the forward-compat catch-all. */
5
5
  type FrameKind = 'accepted' | 'heartbeat' | 'delta' | 'done' | 'error' | 'analysisStarted' | 'analysisComplete' | 'unknown';
@@ -409,7 +409,7 @@ declare function getGlobalFetch(): FetchLike;
409
409
  * Package semver, sent as X-Everfur-SDK-Version. MUST track package.json version (release checklist Item 12
410
410
  * keeps the npm semver tag and this constant in lockstep). Set inside the SDK, never by partner code.
411
411
  */
412
- declare const SDK_VERSION = "0.12.1";
412
+ declare const SDK_VERSION = "0.14.0";
413
413
  /**
414
414
  * The platforms this package ships an entry point for, as the wire names them (X-Everfur-SDK-Platform).
415
415
  *
@@ -21,6 +21,8 @@
21
21
  /* @__PURE__ */Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),
22
22
  /* @__PURE__ */Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),
23
23
  /* @__PURE__ */Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),
24
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_empty_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
25
+ /* @__PURE__ */Object.freeze({wireCode:"catalog_shrink_refused",envelope:"http_envelope",httpStatus:409,retryable:false}),
24
26
  /* @__PURE__ */Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
25
27
  /* @__PURE__ */Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),
26
28
  /* @__PURE__ */Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),
@@ -45,6 +47,7 @@
45
47
  /* @__PURE__ */Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),
46
48
  /* @__PURE__ */Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),
47
49
  /* @__PURE__ */Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),
50
+ /* @__PURE__ */Object.freeze({wireCode:"linked_account_read_only",envelope:"http_envelope",httpStatus:409,retryable:false}),
48
51
  /* @__PURE__ */Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),
49
52
  /* @__PURE__ */Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),
50
53
  /* @__PURE__ */Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),
@@ -88,7 +91,7 @@
88
91
  /* @__PURE__ */Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),
89
92
  /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),
90
93
  /* @__PURE__ */Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),
91
- /* @__PURE__ */Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(row=>row.wireCode));var NORMALIZED_FOLD=/* @__PURE__ */Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",session_revoked:"authExpired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",unrestrictedKeyRequired:"accessDenied",user_ref_invalid:"validationFailed",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),CONTRACT_ERROR_ROWS=/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(generated=>/* @__PURE__ */Object.freeze({wireCode:generated.wireCode,envelope:generated.envelope,retryable:generated.retryable,normalized:NORMALIZED_FOLD[generated.wireCode]}))),BY_KEY=new Map(CONTRACT_ERROR_ROWS.map(r=>[r.envelope+r.wireCode.toUpperCase(),r])),ENVELOPE_LOOKUP_ORDER=/* @__PURE__ */Object.freeze(["http_envelope",...[...new Set(CONTRACT_ERROR_ROWS.map(r=>r.envelope))].filter(e=>e!=="http_envelope").sort()]);function contractErrorFor(wireCode,envelope){if(typeof wireCode!="string")return;let key=wireCode.trim().toUpperCase();if(key.length!==0)for(let candidate of[envelope??"http_envelope",...ENVELOPE_LOOKUP_ORDER]){let row=BY_KEY.get(candidate+key);if(row)return row}}var CATEGORY_OF=/* @__PURE__ */Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",identitySignatureRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",runtimeDisposed:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function categoryFor(code){return CATEGORY_OF[code]}function fromWire(wire){let contractRow=contractErrorFor(wire);if(contractRow)return contractRow.normalized;let upper=(wire??"").trim().toUpperCase(),canonical=upper.replace(/[^A-Z0-9]/g,"");if(canonical==="AUTHREJECTED")return"authRejected";if(upper.startsWith("AUTH"))return"authExpired";switch(canonical){case"DAILYQUOTAEXCEEDED":case"QUOTAEXCEEDED":return"quotaExceeded";case"RATELIMITED":case"TOOMANYREQUESTS":case"TELEVETRATELIMITED":return"rateLimited";case"IDEMPOTENCYKEYCONFLICT":case"IDEMPOTENCYCONFLICT":return"idempotencyConflict";case"ACCESSDENIED":case"FORBIDDEN":return"accessDenied";case"IDENTITYSIGNATUREREQUIRED":return"identitySignatureRequired";case"RUNTIMEDISPOSED":return"runtimeDisposed";case"NOTFOUND":case"CONVERSATIONNOTFOUND":return"conversationNotFound";case"PETNOTFOUND":return"petNotFound";case"TIMEOUT":case"STREAMTIMEOUT":return"streamTimeout";case"MEDIAUPLOADFAILED":case"UNRECOGNIZEDVIDEOFORMAT":case"FILETOOSMALL":return"mediaUploadFailed";case"MODERATIONBLOCKED":return"moderationBlocked";case"UPSTREAMLLMTIMEOUT":return"upstreamLlmTimeout";case"INTERNALERROR":case"INTERNALSERVERERROR":return"internalError";case"STREAMINCOMPLETE":case"CHATSTREAMINCOMPLETE":return"streamIncomplete";case"INVALIDANALYSISTYPE":case"INVALIDUPLOADPURPOSE":return"unknown";default:return"unknown"}}var AUTO_RETRYABLE_CODES=/* @__PURE__ */new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function isAutoRetryable(code){return AUTO_RETRYABLE_CODES.has(code)}var RETRYABLE_CONTRACT_CODES=/* @__PURE__ */new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function isRetryableCode(code){return isAutoRetryable(code)||RETRYABLE_CONTRACT_CODES.has(code)}var BACKOFF_BASE_MS=500,BACKOFF_CAP_MS=8e3,MAX_RETRY_ATTEMPTS=4;function backoffDelayMs(attempt,rng=Math.random){let bounded=Math.max(0,attempt),ceiling=Math.min(BACKOFF_BASE_MS*2**bounded,BACKOFF_CAP_MS);return Math.floor(rng()*ceiling)}var ACCESS_DENIED_COPY="This feature isn't available on your account right now.",VALIDATION_FAILED_COPY="Something in that request was not right. Check the details and try again.",USER_FACING_COPY=/* @__PURE__ */Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:ACCESS_DENIED_COPY,paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:VALIDATION_FAILED_COPY,sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",identitySignatureRequired:ACCESS_DENIED_COPY,runtimeDisposed:VALIDATION_FAILED_COPY,unknown:"Something went wrong. Please try again."}),SESSION_REVOKED_COPY="This session has ended. Please sign in again.";function displayFor(code,wireCode){return(code==="authRejected"||code==="authExpired")&&typeof wireCode=="string"&&wireCode.trim().toLowerCase()==="session_revoked"?SESSION_REVOKED_COPY:userFacingError(code)}function userFacingError(code){return USER_FACING_COPY[code]}function defineHidden(target,key,value){Object.defineProperty(target,key,{value:value,enumerable:false,writable:false,configurable:false})}var REASON_CODE_SHAPE=/^[a-z][a-z0-9_]{0,63}$/;function makeEverfurError(code,opts){let row=contractErrorFor(opts?.wireCode,opts?.wireEnvelope),error={code:code,category:categoryFor(code),retryable:opts?.retryable??isRetryableCode(code),displayMessage:displayFor(code,opts?.wireCode)};opts?.httpStatus!==void 0&&(error.httpStatus=opts.httpStatus),opts?.requestId&&(error.requestId=opts.requestId),typeof opts?.reasonCode=="string"&&REASON_CODE_SHAPE.test(opts.reasonCode)&&(error.reasonCode=opts.reasonCode);let wait=opts?.retryAfterSeconds;if(typeof wait=="number"&&Number.isFinite(wait)&&wait>=0&&(error.retryAfterSeconds=Math.round(wait)),row);return opts?.wireMessage&&defineHidden(error,"wireMessage",opts.wireMessage),opts?.raw!==void 0&&opts.raw!==null&&defineHidden(error,"raw",opts.raw),/* @__PURE__ */Object.freeze(error)}function ok(value,warning){/* @__PURE__ */
94
+ /* @__PURE__ */Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(row=>row.wireCode));var NORMALIZED_FOLD=/* @__PURE__ */Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",session_revoked:"authExpired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",unrestrictedKeyRequired:"accessDenied",user_ref_invalid:"validationFailed",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict",linked_account_read_only:"conflict",catalog_empty_refused:"conflict",catalog_shrink_refused:"conflict"}),CONTRACT_ERROR_ROWS=/* @__PURE__ */Object.freeze(CONTRACT_RETRYABILITY.map(generated=>/* @__PURE__ */Object.freeze({wireCode:generated.wireCode,envelope:generated.envelope,retryable:generated.retryable,normalized:NORMALIZED_FOLD[generated.wireCode]}))),BY_KEY=new Map(CONTRACT_ERROR_ROWS.map(r=>[r.envelope+r.wireCode.toUpperCase(),r])),ENVELOPE_LOOKUP_ORDER=/* @__PURE__ */Object.freeze(["http_envelope",...[...new Set(CONTRACT_ERROR_ROWS.map(r=>r.envelope))].filter(e=>e!=="http_envelope").sort()]);function contractErrorFor(wireCode,envelope){if(typeof wireCode!="string")return;let key=wireCode.trim().toUpperCase();if(key.length!==0)for(let candidate of[envelope??"http_envelope",...ENVELOPE_LOOKUP_ORDER]){let row=BY_KEY.get(candidate+key);if(row)return row}}var CATEGORY_OF=/* @__PURE__ */Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",identitySignatureRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",runtimeDisposed:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function categoryFor(code){return CATEGORY_OF[code]}function fromWire(wire){let contractRow=contractErrorFor(wire);if(contractRow)return contractRow.normalized;let upper=(wire??"").trim().toUpperCase(),canonical=upper.replace(/[^A-Z0-9]/g,"");if(canonical==="AUTHREJECTED")return"authRejected";if(upper.startsWith("AUTH"))return"authExpired";switch(canonical){case"DAILYQUOTAEXCEEDED":case"QUOTAEXCEEDED":return"quotaExceeded";case"RATELIMITED":case"TOOMANYREQUESTS":case"TELEVETRATELIMITED":return"rateLimited";case"IDEMPOTENCYKEYCONFLICT":case"IDEMPOTENCYCONFLICT":return"idempotencyConflict";case"ACCESSDENIED":case"FORBIDDEN":return"accessDenied";case"IDENTITYSIGNATUREREQUIRED":return"identitySignatureRequired";case"RUNTIMEDISPOSED":return"runtimeDisposed";case"NOTFOUND":case"CONVERSATIONNOTFOUND":return"conversationNotFound";case"PETNOTFOUND":return"petNotFound";case"TIMEOUT":case"STREAMTIMEOUT":return"streamTimeout";case"MEDIAUPLOADFAILED":case"UNRECOGNIZEDVIDEOFORMAT":case"FILETOOSMALL":return"mediaUploadFailed";case"MODERATIONBLOCKED":return"moderationBlocked";case"UPSTREAMLLMTIMEOUT":return"upstreamLlmTimeout";case"INTERNALERROR":case"INTERNALSERVERERROR":return"internalError";case"STREAMINCOMPLETE":case"CHATSTREAMINCOMPLETE":return"streamIncomplete";case"INVALIDANALYSISTYPE":case"INVALIDUPLOADPURPOSE":return"unknown";default:return"unknown"}}var AUTO_RETRYABLE_CODES=/* @__PURE__ */new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function isAutoRetryable(code){return AUTO_RETRYABLE_CODES.has(code)}var RETRYABLE_CONTRACT_CODES=/* @__PURE__ */new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function isRetryableCode(code){return isAutoRetryable(code)||RETRYABLE_CONTRACT_CODES.has(code)}var BACKOFF_BASE_MS=500,BACKOFF_CAP_MS=8e3,MAX_RETRY_ATTEMPTS=4;function backoffDelayMs(attempt,rng=Math.random){let bounded=Math.max(0,attempt),ceiling=Math.min(BACKOFF_BASE_MS*2**bounded,BACKOFF_CAP_MS);return Math.floor(rng()*ceiling)}var ACCESS_DENIED_COPY="This feature isn't available on your account right now.",VALIDATION_FAILED_COPY="Something in that request was not right. Check the details and try again.",USER_FACING_COPY=/* @__PURE__ */Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:ACCESS_DENIED_COPY,paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:VALIDATION_FAILED_COPY,sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",identitySignatureRequired:ACCESS_DENIED_COPY,runtimeDisposed:VALIDATION_FAILED_COPY,unknown:"Something went wrong. Please try again."}),SESSION_REVOKED_COPY="This session has ended. Please sign in again.",LINKED_ACCOUNT_READ_ONLY="linked_account_read_only";function displayFor(code,wireCode,reasonCode){return code==="conflict"&&reasonCode===LINKED_ACCOUNT_READ_ONLY?ACCESS_DENIED_COPY:(code==="authRejected"||code==="authExpired")&&typeof wireCode=="string"&&wireCode.trim().toLowerCase()==="session_revoked"?SESSION_REVOKED_COPY:userFacingError(code)}function userFacingError(code){return USER_FACING_COPY[code]}function defineHidden(target,key,value){Object.defineProperty(target,key,{value:value,enumerable:false,writable:false,configurable:false})}var REASON_CODE_SHAPE=/^[a-z][a-z0-9_]{0,63}$/;function makeEverfurError(code,opts){let row=contractErrorFor(opts?.wireCode,opts?.wireEnvelope),linkedReadOnly=code==="conflict"&&opts?.reasonCode===LINKED_ACCOUNT_READ_ONLY,error={code:code,category:categoryFor(code),retryable:opts?.retryable??(linkedReadOnly?false:isRetryableCode(code)),displayMessage:displayFor(code,opts?.wireCode,linkedReadOnly?LINKED_ACCOUNT_READ_ONLY:null)};opts?.httpStatus!==void 0&&(error.httpStatus=opts.httpStatus),opts?.requestId&&(error.requestId=opts.requestId),typeof opts?.reasonCode=="string"&&REASON_CODE_SHAPE.test(opts.reasonCode)&&(error.reasonCode=opts.reasonCode);let wait=opts?.retryAfterSeconds;if(typeof wait=="number"&&Number.isFinite(wait)&&wait>=0&&(error.retryAfterSeconds=Math.round(wait)),row);return opts?.wireMessage&&defineHidden(error,"wireMessage",opts.wireMessage),opts?.raw!==void 0&&opts.raw!==null&&defineHidden(error,"raw",opts.raw),/* @__PURE__ */Object.freeze(error)}function ok(value,warning){/* @__PURE__ */
92
95
  return Object.freeze({ok:true,value:value})}function err(error){/* @__PURE__ */
93
96
  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)}};function errorFrame(fields){/* @__PURE__ */
94
97
  return Object.freeze({kind:"error",terminal:true,code:fields.code,retryable:fields.retryable,wireMessage:fields.wireMessage,synthesized:fields.synthesized,lastEventId:fields.lastEventId,serverRequestId:null})}function mintFailedError(cause,refusal){let message=cause instanceof Error?cause.message:typeof cause=="string"?cause:null;return makeEverfurError("authRejected",{retryable:false,...refusal?.wireCode?{wireCode:refusal.wireCode}:{},...refusal?.requestId?{requestId:refusal.requestId}:{},...message?{wireMessage:message}:{},...cause!=null?{raw:cause}:{}})}function authHeaders(auth){let headers={};return auth.mode==="personalized"?headers.authorization=`Bearer ${auth.token}`:headers["x-everfur-partner-key"]=auth.publishableKey,auth.userRef&&(headers["x-everfur-user-ref"]=auth.userRef),auth.sessionId&&(headers["x-everfur-session-id"]=auth.sessionId),headers}function withAuthHeaders(req,auth){return{...req,headers:{...stripAuthHeaders(req.headers),...authHeaders(auth)}}}function stripAuthHeaders(headers){if(!headers)return{};let out={};for(let[key,value]of Object.entries(headers)){let lower=key.toLowerCase();lower==="authorization"||lower==="x-everfur-partner-key"||(out[key]=value)}return out}async function authedSend(req,ctx){if(ctx.mode==="anonymous")return ctx.transport.request(withAuthHeaders(req,{mode:"anonymous",publishableKey:ctx.publishableKey,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));let token;try{token=await ctx.identity.currentToken()}catch(cause){return ctx.identity.reportRejected?.(),err(mintFailedError(cause))}let first=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:token,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));if(first.ok||first.error.httpStatus!==401)return first;let refreshed;try{refreshed=await ctx.identity.currentToken({forceRefresh:!0})}catch(cause){return ctx.identity.reportRejected?.(),err(mintFailedError(cause,{wireCode:wireCodeOf(first.error.raw),requestId:first.error.requestId}))}let retry=await ctx.transport.request(withAuthHeaders(req,{mode:"personalized",token:refreshed,userRef:ctx.userRef,...ctx.sessionId?{sessionId:ctx.sessionId}:{}}));return!retry.ok&&retry.error.httpStatus===401?(ctx.identity.reportRejected?.(),err(refusedAfterRemintError(retry.error))):retry}function refusedAfterRemintError(refusal){let raw=refusal.raw,wireCode=wireCodeOf(raw);return makeEverfurError("authRejected",{retryable:false,...refusal.httpStatus!==void 0?{httpStatus:refusal.httpStatus}:{},...refusal.requestId?{requestId:refusal.requestId}:{},...wireCode?{wireCode:wireCode}:{},...refusal.reasonCode?{reasonCode:refusal.reasonCode}:{},...refusal.wireMessage?{wireMessage:refusal.wireMessage}:{},...raw!=null?{raw:raw}:{}})}function wireCodeOf(body){if(typeof body!="object"||body===null)return null;let b=body,code=(typeof b.error=="object"&&b.error!==null?b.error.code:void 0)??b.code;return typeof code=="string"&&code.length>0?code:null}function networkError(cause){return makeEverfurError("internalError",{retryable:true,wireMessage:describeCause(cause)})}function describeCause(cause){return cause instanceof Error?cause.message:typeof cause=="string"?cause:"network request failed"}var FUNNEL_UNARY_TIMEOUT_MS=3e4,RETRY_OVERRIDE_MAX_MS=BACKOFF_CAP_MS*2,IDEMPOTENCY_HEADER="idempotency-key",MUTATING_METHODS=/* @__PURE__ */new Set(["POST","PUT","PATCH","DELETE"]),NOOP_OBSERVER=/* @__PURE__ */Object.freeze({onEvent(){}}),defaultFunnelTimers=/* @__PURE__ */Object.freeze({setTimeout:(handler,ms)=>setTimeout(handler,ms),clearTimeout:handle=>clearTimeout(handle),now:()=>Date.now()});function seededIdempotencyKey(seed){let safe=seed.trim().replace(/[^A-Za-z0-9_.:-]/g,"-");return safe.length===0?null:`efs_${safe}`.slice(0,128)}function createRequestFunnel(deps){let observer=deps.observer??NOOP_OBSERVER,timers=deps.timers??defaultFunnelTimers,rng=deps.rng??Math.random,sleep=deps.sleep??((ms,signal)=>delayAbortable(ms,timers,signal)),ceiling=deps.maxAttempts??MAX_RETRY_ATTEMPTS,timeoutMs=deps.unaryTimeoutMs??FUNNEL_UNARY_TIMEOUT_MS,mintKey=deps.newIdempotencyKey??defaultIdempotencyKeyFactory(),emit=event=>{try{observer.onEvent(event)}catch{}};async function send(call,req,opts){let perCallMaxAttempts=opts?.maxAttempts,maxAttempts=Math.max(1,perCallMaxAttempts??ceiling),idempotent=opts?.idempotent??MUTATING_METHODS.has(req.method),seeded=opts?.idempotencyKey===void 0?null:seededIdempotencyKey(opts.idempotencyKey),idempotencyKey=idempotent?seeded??mintKey():null,base=assembleHeaders(req,idempotencyKey),attempt=0;for(;;){let stamp=extra=>/* @__PURE__ */Object.freeze({call:call,method:req.method,path:req.path,attempt:attempt,...idempotencyKey?{idempotencyKey:idempotencyKey}:{},...extra});emit(stamp({phase:"attempt"}));let deadline=boundedSignal(timeoutMs,timers),merged=mergeSignals(deadline.signal,req.signal),settled2;try{settled2=await authedSend({...base,signal:merged.signal},deps.auth)}catch(cause){settled2=err(networkError(cause))}finally{merged.dispose(),deadline.cancel()}if(settled2.ok)return emit(stamp({phase:"settled",ok:true,reason:"ok"})),settled2;let error=settled2.error,decision=decideRetry(error,attempt,{maxAttempts:maxAttempts,rng:rng,now:timers.now(),aborted:req.signal?.aborted===true,...perCallMaxAttempts!==void 0?{perCallMaxAttempts:perCallMaxAttempts}:{},...deps.errorPolicy!==void 0?{policy:deps.errorPolicy}:{}}),settledEvent={ok:false,code:error.code,reason:decision.reason,...error.httpStatus!==void 0?{httpStatus:error.httpStatus}:{},...error.requestId!==void 0?{requestId:error.requestId}:{}};if(!decision.retry)return emit(stamp({phase:"settled",...settledEvent})),err(error);if(emit(stamp({phase:"retry",...settledEvent,delayMs:decision.delayMs})),await sleep(decision.delayMs,req.signal),req.signal?.aborted===true)return emit(stamp({phase:"settled",...settledEvent,reason:"aborted"})),err(error);attempt+=1}}async function authorize(req){return withAuthHeaders(req,await resolveDeviceAuth(deps.auth))}async function*stream(call,req,signal){emit(
@@ -1,15 +1,15 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { E as EverfurConsentScope } from '../copy-BE31T2jR.cjs';
4
- export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../copy-BE31T2jR.cjs';
5
- import { E as EverfurError } from '../EverfurError-DeBqRpQV.cjs';
6
- export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError-DeBqRpQV.cjs';
7
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity-gjurBi7m.cjs';
8
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config-C9zhanL-.cjs';
9
- export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../ids-B2GAAifq.cjs';
10
- export { E as EverfurResult } from '../EverfurResult-COlXj1wq.cjs';
11
- export { E as ErrorPolicyPort } from '../ErrorPolicyPort-10s3HJCt.cjs';
12
- import '../requestFunnel-DLZpiFD3.cjs';
3
+ import { E as EverfurConsentScope } from '../copy.d-C_u7shha.cjs';
4
+ export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../copy.d-C_u7shha.cjs';
5
+ import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.cjs';
6
+ export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.cjs';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity.d-CJfnWOdH.cjs';
8
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config.d-DJ4mvf_w.cjs';
9
+ export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../ids.d-B2GAAifq.cjs';
10
+ export { E as EverfurResult } from '../EverfurResult.d-BFH-3s6E.cjs';
11
+ export { E as ErrorPolicyPort } from '../ErrorPolicyPort.d-DirW9hgO.cjs';
12
+ import '../requestFunnel.d-RZex94XX.cjs';
13
13
 
14
14
  interface EverfurConsentToggleProps {
15
15
  /** Which act this row is. One row is one act; two acts are two rows, never one switch. */
@@ -1,15 +1,15 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { E as EverfurConsentScope } from '../copy-KbCU9fen.js';
4
- export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../copy-KbCU9fen.js';
5
- import { E as EverfurError } from '../EverfurError-DeBqRpQV.js';
6
- export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError-DeBqRpQV.js';
7
- export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity-BqeaN8An.js';
8
- export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config-C5iPNKDj.js';
9
- export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../ids-B2GAAifq.js';
10
- export { E as EverfurResult } from '../EverfurResult-ClPTS0P2.js';
11
- export { E as ErrorPolicyPort } from '../ErrorPolicyPort-C3nNSS_j.js';
12
- import '../requestFunnel-BYzlyaC0.js';
3
+ import { E as EverfurConsentScope } from '../copy.d-BIfQOoDB.js';
4
+ export { C as CONSENT_COPY, a as CONSENT_SCOPE_COPY, b as CONSENT_VERSION_MAX, c as ConsentRepository, d as ConsentRepositoryDeps, e as ConsentRowView, f as ConsentRuntime, g as ConsentScopeCopy, h as EVERFUR_CONSENT_SCOPES, i as EverfurConsentDecision, j as EverfurConsentOptions, k as EverfurConsentScopeState, l as EverfurConsentState, m as EverfurConsentStatus, n as EverfurConsentVerdict, o as consentRowView, p as createConsentRepository, q as createConsentRepositoryOver, r as isEverfurConsentScope, u as useEverfurConsent, s as useEverfurConsentRepository } from '../copy.d-BIfQOoDB.js';
5
+ import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.js';
6
+ export { a as EverfurErrorCategory, b as EverfurErrorCode } from '../EverfurError.d-8NHtlgzA.js';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity.d-BePPZ7Uv.js';
8
+ export { A as AcceptedFrame, a as AnalysisCompleteFrame, b as AnalysisStartedFrame, D as DeltaFrame, c as DoneFrame, E as ErrorFrame, d as EverfurRequest, e as EverfurRequestBase, F as Frame, f as FrameBase, g as FrameKind, H as HeartbeatFrame, h as HttpMethod, M as MultipartBody, T as TransportPort, U as UnknownFrame, i as UrgencyLevel } from '../config.d-MX7IKP2f.js';
9
+ export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../ids.d-B2GAAifq.js';
10
+ export { E as EverfurResult } from '../EverfurResult.d-D_-254ZY.js';
11
+ export { E as ErrorPolicyPort } from '../ErrorPolicyPort.d-68yrE3BE.js';
12
+ import '../requestFunnel.d-D9edIEjZ.js';
13
13
 
14
14
  interface EverfurConsentToggleProps {
15
15
  /** Which act this row is. One row is one act; two acts are two rows, never one switch. */