@everfur/sdk 0.13.0 → 0.15.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 (206) hide show
  1. package/CHANGELOG.md +206 -0
  2. package/README.md +11 -10
  3. package/dist/{Chat.d-Dts8u_1a.d.cts → Chat.d-CtfANk3A.d.cts} +12 -4
  4. package/dist/{Chat.d-DUNTfzqC.d.ts → Chat.d-a7Ksz7NZ.d.ts} +12 -4
  5. package/dist/{DepthViews.d-CubkMPbU.d.ts → DepthViews.d-BqMnWSMu.d.cts} +1 -1
  6. package/dist/{DepthViews.d-BMU2jFPw.d.cts → DepthViews.d-CuBElgEc.d.ts} +1 -1
  7. package/dist/{DepthViews.d-Ce2Zhnrb.d.ts → DepthViews.d-DbJejGm3.d.ts} +1 -1
  8. package/dist/{DepthViews.d-BIp599lz.d.cts → DepthViews.d-dXWL6ToG.d.cts} +1 -1
  9. package/dist/RecordsPage.d-DKrZ9rHX.d.ts +93 -0
  10. package/dist/RecordsPage.d-DRPdUAo4.d.cts +93 -0
  11. package/dist/animations/index.cjs +1 -1
  12. package/dist/animations/index.d.cts +7 -5
  13. package/dist/animations/index.d.ts +7 -5
  14. package/dist/animations/index.js +1 -1
  15. package/dist/{attachments.d-Djy9z_0Z.d.ts → attachments.d-BGn2_knv.d.ts} +6 -24
  16. package/dist/{attachments.d-D1yhJjcZ.d.ts → attachments.d-CoQhXrP9.d.ts} +2 -2
  17. package/dist/{attachments.d-Bp2qbHxn.d.cts → attachments.d-CpaOfi2g.d.cts} +6 -24
  18. package/dist/{attachments.d-DisnvB9R.d.cts → attachments.d-CqHMGoER.d.cts} +2 -2
  19. package/dist/{bookingCopy.d-BlBmhAJc.d.cts → bookingCopy.d-Bnq2zk0F.d.cts} +2 -2
  20. package/dist/{bookingCopy.d-BJF6gd1A.d.ts → bookingCopy.d-BwCOCZUj.d.ts} +2 -2
  21. package/dist/{branding.d-DI8S400y.d.cts → branding.d-Bbc6p1XY.d.cts} +2 -2
  22. package/dist/{branding.d-OIGLbQeM.d.ts → branding.d-y6c0UwhE.d.ts} +2 -2
  23. package/dist/{casesRepository.d-CT2LTicS.d.cts → casesRepository.d-CsUJ2Oyb.d.cts} +1 -1
  24. package/dist/{casesRepository.d-UsWOz9bv.d.ts → casesRepository.d-DG83Ggbq.d.ts} +1 -1
  25. package/dist/chat/index.cjs +45 -43
  26. package/dist/chat/index.d.cts +26 -13
  27. package/dist/chat/index.d.ts +26 -13
  28. package/dist/chat/index.js +45 -43
  29. package/dist/client/index.cjs +3 -3
  30. package/dist/client/index.d.cts +12 -12
  31. package/dist/client/index.d.ts +12 -12
  32. package/dist/client/index.js +3 -3
  33. package/dist/clinicBatch.d-BLpbpS51.d.cts +71 -0
  34. package/dist/clinicBatch.d-Byjx4y_W.d.ts +71 -0
  35. package/dist/clinicModels.d-BXgKZqDb.d.cts +68 -0
  36. package/dist/clinicModels.d-CaS64-P-.d.ts +68 -0
  37. package/dist/clinicRequestProps.d-1dCtouGA.d.cts +65 -0
  38. package/dist/clinicRequestProps.d-CjsMg_OD.d.ts +65 -0
  39. package/dist/{config.d-BR3DT9ho.d.cts → config.d-C0WgjutL.d.cts} +1 -1
  40. package/dist/{config.d-Dy6igYlH.d.ts → config.d-zd2eTb2L.d.ts} +1 -1
  41. package/dist/consent/index.d.cts +5 -5
  42. package/dist/consent/index.d.ts +5 -5
  43. package/dist/{context.d-QcCgguzA.d.ts → context.d-BBjmV0rz.d.ts} +8 -8
  44. package/dist/{context.d-Cwks0p3C.d.cts → context.d-Du_UPxa1.d.cts} +8 -8
  45. package/dist/{copy.d-CiMn2IIt.d.ts → copy.d-D_VVj01o.d.ts} +2 -2
  46. package/dist/{copy.d-DLJTyRfT.d.cts → copy.d-Da_PP2K3.d.cts} +2 -2
  47. package/dist/core/index.cjs +3 -3
  48. package/dist/core/index.d.cts +21 -19
  49. package/dist/core/index.d.ts +21 -19
  50. package/dist/core/index.js +3 -3
  51. package/dist/{depth.d-OSALbYM7.d.ts → depth.d-BEedifOR.d.ts} +6 -133
  52. package/dist/{depth.d-CjPGVPDL.d.cts → depth.d-RTV61QNf.d.cts} +6 -133
  53. package/dist/{entitlementRepository.d-Cf3LbTwD.d.ts → entitlementRepository.d-BwThmh3V.d.ts} +4 -4
  54. package/dist/{entitlementRepository.d-CVQa1DA1.d.cts → entitlementRepository.d-C-stdRyA.d.cts} +4 -4
  55. package/dist/{features.d-fNsGcg0R.d.ts → features.d-DrQxTw3-.d.cts} +1 -1
  56. package/dist/{features.d-fNsGcg0R.d.cts → features.d-DrQxTw3-.d.ts} +1 -1
  57. package/dist/{focus.d-DMg2ngHI.d.ts → focus.d-CtotIyEt.d.ts} +127 -350
  58. package/dist/{focus.d-az9cqUz3.d.cts → focus.d-Dsm39DjO.d.cts} +127 -350
  59. package/dist/health-plan/index.cjs +182 -163
  60. package/dist/health-plan/index.d.cts +53 -11
  61. package/dist/health-plan/index.d.ts +53 -11
  62. package/dist/health-plan/index.js +185 -166
  63. package/dist/{idempotency.d-WpXx9zQo.d.ts → idempotency.d-Bfm7oIxS.d.cts} +158 -6
  64. package/dist/{idempotency.d-D461_DPD.d.cts → idempotency.d-Cv-B7SfC.d.ts} +158 -6
  65. package/dist/{identity.d-DzTijonw.d.ts → identity.d-BksOEa6m.d.ts} +1 -1
  66. package/dist/{identity.d-60LeJt_s.d.cts → identity.d-CioQhZrq.d.cts} +1 -1
  67. package/dist/index.cjs +48 -46
  68. package/dist/index.d.cts +20 -19
  69. package/dist/index.d.ts +20 -19
  70. package/dist/index.js +48 -46
  71. package/dist/introEvents.d-dS3fJCH1.d.cts +5 -0
  72. package/dist/introEvents.d-dS3fJCH1.d.ts +5 -0
  73. package/dist/introEvents.d-fAZitxMA.d.cts +175 -0
  74. package/dist/introEvents.d-tOi4o3F4.d.ts +175 -0
  75. package/dist/{models.d-BnLm3VAA.d.cts → models.d-BSqvbTE1.d.cts} +8 -1
  76. package/dist/{models.d-BagXhafD.d.ts → models.d-DOwnr8fi.d.ts} +8 -1
  77. package/dist/notifications/index.d.cts +4 -4
  78. package/dist/notifications/index.d.ts +4 -4
  79. package/dist/{optInView.d-acKpV8V2.d.ts → optInView.d-B8zTORO2.d.ts} +119 -3
  80. package/dist/{optInView.d-CEyHR6PK.d.cts → optInView.d-BkNSv4Gk.d.cts} +119 -3
  81. package/dist/{parse.d-C8CXyS58.d.ts → parse.d-B5JHS6Pr.d.ts} +1 -1
  82. package/dist/{parse.d-tEzufgJX.d.cts → parse.d-BgjO82mY.d.cts} +1 -1
  83. package/dist/{pets.d-NbJvP_kh.d.cts → pets.d-B_LoizOv.d.cts} +1 -1
  84. package/dist/{pets.d-C_53_fzo.d.ts → pets.d-OWxskXCP.d.ts} +1 -1
  85. package/dist/{petsRepository.d-lp1BHRqM.d.cts → petsRepository.d-B5DWzU7C.d.cts} +1 -1
  86. package/dist/{petsRepository.d-BuGHymNx.d.ts → petsRepository.d-Ba3xhJcj.d.ts} +1 -1
  87. package/dist/planSignals.d-Cl6n5QpS.d.cts +126 -0
  88. package/dist/planSignals.d-DtxZoWGM.d.ts +126 -0
  89. package/dist/{ports.d-COIyN624.d.ts → ports.d-BDtwHxmW.d.ts} +4 -4
  90. package/dist/{ports.d-CEROoqnA.d.cts → ports.d-gZNTn8Qf.d.cts} +4 -4
  91. package/dist/{presentation.d-DMbdad7G.d.cts → presentation.d-vy8kTGfR.d.cts} +6 -0
  92. package/dist/{presentation.d-DMbdad7G.d.ts → presentation.d-vy8kTGfR.d.ts} +6 -0
  93. package/dist/quickPrompts.d-NM_81Jc1.d.cts +19 -0
  94. package/dist/quickPrompts.d-NM_81Jc1.d.ts +19 -0
  95. package/dist/records/depth/index.d.cts +13 -9
  96. package/dist/records/depth/index.d.ts +13 -9
  97. package/dist/records/index.cjs +264 -140
  98. package/dist/records/index.d.cts +95 -24
  99. package/dist/records/index.d.ts +95 -24
  100. package/dist/records/index.js +265 -141
  101. package/dist/{requestFunnel.d-DWQQpjFR.d.cts → requestFunnel.d-CR4akGCY.d.cts} +2 -2
  102. package/dist/{requestFunnel.d-CXUMPw1K.d.ts → requestFunnel.d-DFf9C__p.d.ts} +2 -2
  103. package/dist/{resolve.d-jI8FmBj3.d.cts → resolve.d-CoQWUy1Y.d.cts} +1 -1
  104. package/dist/{resolve.d-jI8FmBj3.d.ts → resolve.d-CoQWUy1Y.d.ts} +1 -1
  105. package/dist/{runtimeTypes.d-4yFNNuYR.d.ts → runtimeTypes.d-BqBOrZxa.d.ts} +6 -6
  106. package/dist/{runtimeTypes.d-D6N_fhxx.d.cts → runtimeTypes.d-CHdH-y2c.d.cts} +6 -6
  107. package/dist/{useRecordsDepth.d-sAq2Qkhr.d.cts → screenProps.d-B1dIANI0.d.cts} +5 -91
  108. package/dist/{useRecordsDepth.d-DFcCfiXm.d.ts → screenProps.d-CVqFJw-J.d.ts} +5 -91
  109. package/dist/server/events/index.cjs +1 -1
  110. package/dist/server/events/index.d.cts +2 -2
  111. package/dist/server/events/index.d.ts +2 -2
  112. package/dist/server/events/index.js +1 -1
  113. package/dist/server/index.cjs +1 -1
  114. package/dist/server/index.d.cts +3 -3
  115. package/dist/server/index.d.ts +3 -3
  116. package/dist/server/index.js +1 -1
  117. package/dist/{sheetSeam.d-Cviqk89n.d.ts → sheetSeam.d-B09jf4YC.d.ts} +8 -4
  118. package/dist/{sheetSeam.d-DCS3LW8g.d.cts → sheetSeam.d-BBuEIVsa.d.cts} +8 -4
  119. package/dist/shop/index.cjs +227 -60
  120. package/dist/shop/index.d.cts +35 -5
  121. package/dist/shop/index.d.ts +35 -5
  122. package/dist/shop/index.js +228 -61
  123. package/dist/tabs/index.cjs +195 -0
  124. package/dist/tabs/index.d.cts +175 -0
  125. package/dist/tabs/index.d.ts +175 -0
  126. package/dist/tabs/index.js +195 -0
  127. package/dist/tabsModel.d-BfIQg6yS.d.cts +31 -0
  128. package/dist/tabsModel.d-BfIQg6yS.d.ts +31 -0
  129. package/dist/televet/booking/index.d.cts +6 -6
  130. package/dist/televet/booking/index.d.ts +6 -6
  131. package/dist/testing/index.cjs +1 -1
  132. package/dist/testing/index.d.cts +1 -1
  133. package/dist/testing/index.d.ts +1 -1
  134. package/dist/testing/index.js +1 -1
  135. package/dist/testing/rn/index.cjs +1 -1
  136. package/dist/testing/rn/index.d.cts +12 -12
  137. package/dist/testing/rn/index.d.ts +12 -12
  138. package/dist/testing/rn/index.js +1 -1
  139. package/dist/testing/web/index.d.cts +13 -13
  140. package/dist/testing/web/index.d.ts +13 -13
  141. package/dist/texting/index.cjs +40 -5
  142. package/dist/texting/index.d.cts +40 -7
  143. package/dist/texting/index.d.ts +40 -7
  144. package/dist/texting/index.js +40 -5
  145. package/dist/threadOptions.d-CnSfFVMr.d.cts +458 -0
  146. package/dist/threadOptions.d-DZ0AoQGk.d.ts +458 -0
  147. package/dist/{timelineRows.d-BNxgzYRW.d.cts → timelineRows.d-CF1KvLcQ.d.cts} +1 -1
  148. package/dist/{timelineRows.d-CU5GvvLk.d.ts → timelineRows.d-CtL0y7y1.d.ts} +1 -1
  149. package/dist/{tokens.d-DarDaV39.d.cts → tokens.d-BUVqme2D.d.cts} +1 -1
  150. package/dist/{tokens.d-DarDaV39.d.ts → tokens.d-BUVqme2D.d.ts} +1 -1
  151. package/dist/{typeStyle.d-C1HBRAI3.d.ts → typeStyle.d-B3Kdtjie.d.ts} +2 -2
  152. package/dist/{typeStyle.d-Bl8pzbBy.d.cts → typeStyle.d-DmlwyJq-.d.cts} +2 -2
  153. package/dist/useIntroSeen.d-CTWFUthO.d.cts +35 -0
  154. package/dist/useIntroSeen.d-CTWFUthO.d.ts +35 -0
  155. package/dist/usePresentation.d-BsR08Wxt.d.ts +285 -0
  156. package/dist/usePresentation.d-CZS0qlLI.d.cts +285 -0
  157. package/dist/{useRecords.d-Cb-36SF5.d.cts → useRecords.d-BYNX01El.d.cts} +2 -2
  158. package/dist/{useRecords.d-aQTzQZoV.d.ts → useRecords.d-DWk61a4c.d.ts} +2 -2
  159. package/dist/useRecordsDepth.d-DTAxFf5s.d.ts +32 -0
  160. package/dist/useRecordsDepth.d-k-zYIHTe.d.cts +32 -0
  161. package/dist/{view.d-C-SNpDJX.d.ts → view.d-BE7VOlsB.d.ts} +6 -4
  162. package/dist/{view.d-Dps5C8-s.d.cts → view.d-CAWQjcY_.d.cts} +6 -4
  163. package/dist/web/consent/index.d.cts +5 -5
  164. package/dist/web/consent/index.d.ts +5 -5
  165. package/dist/web/health-plan/index.cjs +65 -53
  166. package/dist/web/health-plan/index.d.cts +46 -192
  167. package/dist/web/health-plan/index.d.ts +46 -192
  168. package/dist/web/health-plan/index.js +79 -67
  169. package/dist/web/index.cjs +62 -46
  170. package/dist/web/index.d.cts +168 -27
  171. package/dist/web/index.d.ts +168 -27
  172. package/dist/web/index.js +63 -47
  173. package/dist/web/intro/index.cjs +167 -0
  174. package/dist/web/intro/index.d.cts +79 -0
  175. package/dist/web/intro/index.d.ts +79 -0
  176. package/dist/web/intro/index.js +167 -0
  177. package/dist/web/notifications/index.d.cts +3 -3
  178. package/dist/web/notifications/index.d.ts +3 -3
  179. package/dist/web/records/depth/index.d.cts +13 -9
  180. package/dist/web/records/depth/index.d.ts +13 -9
  181. package/dist/web/records/index.cjs +7 -7
  182. package/dist/web/records/index.d.cts +21 -82
  183. package/dist/web/records/index.d.ts +21 -82
  184. package/dist/web/records/index.js +7 -7
  185. package/dist/web/records-sheet/index.cjs +207 -128
  186. package/dist/web/records-sheet/index.d.cts +25 -16
  187. package/dist/web/records-sheet/index.d.ts +25 -16
  188. package/dist/web/records-sheet/index.js +207 -128
  189. package/dist/web/shop/index.cjs +194 -78
  190. package/dist/web/shop/index.d.cts +21 -4
  191. package/dist/web/shop/index.d.ts +21 -4
  192. package/dist/web/shop/index.js +194 -78
  193. package/dist/web/televet/booking/index.d.cts +7 -7
  194. package/dist/web/televet/booking/index.d.ts +7 -7
  195. package/dist/web/texting/index.cjs +36 -5
  196. package/dist/web/texting/index.d.cts +40 -7
  197. package/dist/web/texting/index.d.ts +40 -7
  198. package/dist/web/texting/index.js +36 -5
  199. package/package.json +36 -4
  200. package/tabs/package.json +8 -0
  201. package/web/intro/native-blocked.cjs +12 -0
  202. package/web/intro/package.json +8 -0
  203. package/dist/threadOptions.d-B1pTMmDF.d.cts +0 -260
  204. package/dist/threadOptions.d-B1pTMmDF.d.ts +0 -260
  205. package/dist/usePresentation.d-D6qsFzBz.d.cts +0 -9
  206. package/dist/usePresentation.d-DuGQe_Do.d.ts +0 -9
@@ -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 };
@@ -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.13.0";
412
+ declare const SDK_VERSION = "0.15.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
  *
@@ -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.13.0";
412
+ declare const SDK_VERSION = "0.15.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,15 +1,15 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { E as EverfurConsentScope } from '../copy.d-DLJTyRfT.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-DLJTyRfT.cjs';
3
+ import { E as EverfurConsentScope } from '../copy.d-Da_PP2K3.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-Da_PP2K3.cjs';
5
5
  import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.cjs';
6
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-60LeJt_s.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-BR3DT9ho.cjs';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity.d-CioQhZrq.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-C0WgjutL.cjs';
9
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
10
  export { E as EverfurResult } from '../EverfurResult.d-BFH-3s6E.cjs';
11
11
  export { E as ErrorPolicyPort } from '../ErrorPolicyPort.d-DirW9hgO.cjs';
12
- import '../requestFunnel.d-DWQQpjFR.cjs';
12
+ import '../requestFunnel.d-CR4akGCY.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.d-CiMn2IIt.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-CiMn2IIt.js';
3
+ import { E as EverfurConsentScope } from '../copy.d-D_VVj01o.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-D_VVj01o.js';
5
5
  import { E as EverfurError } from '../EverfurError.d-8NHtlgzA.js';
6
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-DzTijonw.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-Dy6igYlH.js';
7
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../identity.d-BksOEa6m.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-zd2eTb2L.js';
9
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
10
  export { E as EverfurResult } from '../EverfurResult.d-D_-254ZY.js';
11
11
  export { E as ErrorPolicyPort } from '../ErrorPolicyPort.d-68yrE3BE.js';
12
- import '../requestFunnel.d-CXUMPw1K.js';
12
+ import '../requestFunnel.d-DFf9C__p.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. */
@@ -1,19 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { U as UserRef, P as PetRef } from './ids.d-B2GAAifq.js';
3
- import { a as CapabilityName, C as CapabilityDecision } from './resolve.d-jI8FmBj3.js';
4
- import { S as SecureStorePort, c as LogSink, a as EverfurEventHandler, g as EverfurRuntime } from './runtimeTypes.d-4yFNNuYR.js';
5
- import { T as TokenProvider } from './identity.d-DzTijonw.js';
6
- import { T as TransportPort } from './config.d-Dy6igYlH.js';
3
+ import { C as CapabilityName, a as CapabilityDecision } from './resolve.d-CoQWUy1Y.js';
4
+ import { S as SecureStorePort, c as LogSink, a as EverfurEventHandler, g as EverfurRuntime } from './runtimeTypes.d-BqBOrZxa.js';
5
+ import { T as TokenProvider } from './identity.d-BksOEa6m.js';
6
+ import { T as TransportPort } from './config.d-zd2eTb2L.js';
7
7
  import { K as KvPort, I as ImageCachePort } from './cacheEpoch.d-DknKn3S0.js';
8
8
  import { T as TelemetryPort } from './TelemetryPort.d-BDNr00hu.js';
9
9
  import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
10
10
  import { C as CameraPort } from './CameraPort.d-Cv31Pz7g.js';
11
11
  import { U as UploadTransport } from './ports.d-BX4f4UsB.js';
12
- import { U as UploadPort } from './ports.d-COIyN624.js';
13
- import { E as EverfurThemeInput } from './branding.d-OIGLbQeM.js';
12
+ import { U as UploadPort } from './ports.d-BDtwHxmW.js';
13
+ import { E as EverfurThemeInput } from './branding.d-y6c0UwhE.js';
14
14
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
15
- import { b as WidgetPetProfile } from './petsRepository.d-BuGHymNx.js';
16
- import { m as EverfurTheme } from './tokens.d-DarDaV39.js';
15
+ import { b as WidgetPetProfile } from './petsRepository.d-Ba3xhJcj.js';
16
+ import { m as EverfurTheme } from './tokens.d-BUVqme2D.js';
17
17
 
18
18
  interface EverfurConfig {
19
19
  /** pk_live_... ; tenant-resolved server-side (the keyless-fallback / anonymous-mode credential). */
@@ -1,19 +1,19 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { U as UserRef, P as PetRef } from './ids.d-B2GAAifq.cjs';
3
- import { a as CapabilityName, C as CapabilityDecision } from './resolve.d-jI8FmBj3.cjs';
4
- import { S as SecureStorePort, c as LogSink, a as EverfurEventHandler, g as EverfurRuntime } from './runtimeTypes.d-D6N_fhxx.cjs';
5
- import { T as TokenProvider } from './identity.d-60LeJt_s.cjs';
6
- import { T as TransportPort } from './config.d-BR3DT9ho.cjs';
3
+ import { C as CapabilityName, a as CapabilityDecision } from './resolve.d-CoQWUy1Y.cjs';
4
+ import { S as SecureStorePort, c as LogSink, a as EverfurEventHandler, g as EverfurRuntime } from './runtimeTypes.d-CHdH-y2c.cjs';
5
+ import { T as TokenProvider } from './identity.d-CioQhZrq.cjs';
6
+ import { T as TransportPort } from './config.d-C0WgjutL.cjs';
7
7
  import { K as KvPort, I as ImageCachePort } from './cacheEpoch.d-DknKn3S0.cjs';
8
8
  import { T as TelemetryPort } from './TelemetryPort.d-BDNr00hu.cjs';
9
9
  import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
10
10
  import { C as CameraPort } from './CameraPort.d-Cv31Pz7g.cjs';
11
11
  import { U as UploadTransport } from './ports.d-BX4f4UsB.cjs';
12
- import { U as UploadPort } from './ports.d-CEROoqnA.cjs';
13
- import { E as EverfurThemeInput } from './branding.d-DI8S400y.cjs';
12
+ import { U as UploadPort } from './ports.d-gZNTn8Qf.cjs';
13
+ import { E as EverfurThemeInput } from './branding.d-Bbc6p1XY.cjs';
14
14
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
15
- import { b as WidgetPetProfile } from './petsRepository.d-lp1BHRqM.cjs';
16
- import { m as EverfurTheme } from './tokens.d-DarDaV39.cjs';
15
+ import { b as WidgetPetProfile } from './petsRepository.d-B5DWzU7C.cjs';
16
+ import { m as EverfurTheme } from './tokens.d-BUVqme2D.cjs';
17
17
 
18
18
  interface EverfurConfig {
19
19
  /** pk_live_... ; tenant-resolved server-side (the keyless-fallback / anonymous-mode credential). */
@@ -1,7 +1,7 @@
1
1
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
2
  import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
3
- import { R as RequestFunnel } from './requestFunnel.d-CXUMPw1K.js';
4
- import { A as AuthContext } from './identity.d-DzTijonw.js';
3
+ import { R as RequestFunnel } from './requestFunnel.d-DFf9C__p.js';
4
+ import { A as AuthContext } from './identity.d-BksOEa6m.js';
5
5
  import { U as UserRef } from './ids.d-B2GAAifq.js';
6
6
  import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
2
  import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
3
- import { R as RequestFunnel } from './requestFunnel.d-DWQQpjFR.cjs';
4
- import { A as AuthContext } from './identity.d-60LeJt_s.cjs';
3
+ import { R as RequestFunnel } from './requestFunnel.d-CR4akGCY.cjs';
4
+ import { A as AuthContext } from './identity.d-CioQhZrq.cjs';
5
5
  import { U as UserRef } from './ids.d-B2GAAifq.cjs';
6
6
  import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
7
7