@everfur/sdk 0.12.0 → 0.13.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 (268) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/README.md +2 -1
  3. package/dist/{Chat-BOG0SXKV.d.cts → Chat.d-DUNTfzqC.d.ts} +170 -8
  4. package/dist/{Chat-CIolBgjJ.d.ts → Chat.d-Dts8u_1a.d.cts} +170 -8
  5. package/dist/{DepthViews-BR6VQ3Ta.d.cts → DepthViews.d-BIp599lz.d.cts} +1 -1
  6. package/dist/{DepthViews-280t3BcQ.d.ts → DepthViews.d-BMU2jFPw.d.cts} +1 -1
  7. package/dist/{DepthViews-DlBuFsgN.d.ts → DepthViews.d-Ce2Zhnrb.d.ts} +1 -1
  8. package/dist/{DepthViews-BTbF_DJY.d.cts → DepthViews.d-CubkMPbU.d.ts} +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/animations/index.cjs +5 -1
  24. package/dist/animations/index.d.cts +24 -24
  25. package/dist/animations/index.d.ts +24 -24
  26. package/dist/animations/index.js +5 -1
  27. package/dist/{attachments-CGxvnYu4.d.ts → attachments.d-Bp2qbHxn.d.cts} +22 -26
  28. package/dist/{attachments-CWNj1ZkM.d.ts → attachments.d-D1yhJjcZ.d.ts} +4 -4
  29. package/dist/{attachments-waXcJWCp.d.cts → attachments.d-DisnvB9R.d.cts} +4 -4
  30. package/dist/{attachments-B6h4cJU-.d.cts → attachments.d-Djy9z_0Z.d.ts} +22 -26
  31. package/dist/{bookingCopy-CjPKeg75.d.ts → bookingCopy.d-BJF6gd1A.d.ts} +24 -9
  32. package/dist/{bookingCopy-8aEU6ZmR.d.cts → bookingCopy.d-BlBmhAJc.d.cts} +24 -9
  33. package/dist/{branding-DJf4h12Q.d.ts → branding.d-DI8S400y.d.cts} +9 -2
  34. package/dist/{branding-BCfwLj0h.d.cts → branding.d-OIGLbQeM.d.ts} +9 -2
  35. package/dist/{callRoom-BhIdadyV.d.cts → callRoom.d-B1DoYdJe.d.cts} +1 -1
  36. package/dist/{callRoom-B92eH_ij.d.ts → callRoom.d-Dqm1rUqT.d.ts} +1 -1
  37. package/dist/{casesRepository-CGdhvzTu.d.cts → casesRepository.d-CT2LTicS.d.cts} +3 -3
  38. package/dist/{casesRepository-ZG9Sg0e4.d.ts → casesRepository.d-UsWOz9bv.d.ts} +3 -3
  39. package/dist/chat/index.cjs +132 -57
  40. package/dist/chat/index.d.cts +18 -16
  41. package/dist/chat/index.d.ts +18 -16
  42. package/dist/chat/index.js +133 -58
  43. package/dist/client/index.cjs +15 -10
  44. package/dist/client/index.d.cts +19 -18
  45. package/dist/client/index.d.ts +19 -18
  46. package/dist/client/index.js +15 -10
  47. package/dist/{config-B0p6Lygh.d.cts → config.d-BR3DT9ho.d.cts} +3 -3
  48. package/dist/{config-DmFAZJOx.d.ts → config.d-Dy6igYlH.d.ts} +3 -3
  49. package/dist/consent/index.cjs +5 -1
  50. package/dist/consent/index.d.cts +10 -10
  51. package/dist/consent/index.d.ts +10 -10
  52. package/dist/consent/index.js +5 -1
  53. package/dist/{context-BNreNLtL.d.ts → context.d-Cwks0p3C.d.cts} +15 -15
  54. package/dist/{context-BgS2a57J.d.cts → context.d-QcCgguzA.d.ts} +15 -15
  55. package/dist/{copy-DLJriGQS.d.ts → copy.d-CiMn2IIt.d.ts} +6 -6
  56. package/dist/{copy-lWp-Lkv5.d.cts → copy.d-DLJTyRfT.d.cts} +6 -6
  57. package/dist/core/index.cjs +17 -13
  58. package/dist/core/index.d.cts +33 -29
  59. package/dist/core/index.d.ts +33 -29
  60. package/dist/core/index.js +17 -13
  61. package/dist/{depth-BYb3RXoA.d.cts → depth.d-CjPGVPDL.d.cts} +9 -115
  62. package/dist/{depth-COz-sSG5.d.ts → depth.d-OSALbYM7.d.ts} +9 -115
  63. package/dist/{entitlementRepository-D-Lse67w.d.cts → entitlementRepository.d-CVQa1DA1.d.cts} +10 -5
  64. package/dist/{entitlementRepository-CrTOP_-o.d.ts → entitlementRepository.d-Cf3LbTwD.d.ts} +10 -5
  65. package/dist/features.d-fNsGcg0R.d.cts +108 -0
  66. package/dist/features.d-fNsGcg0R.d.ts +108 -0
  67. package/dist/focus.d-DMg2ngHI.d.ts +1178 -0
  68. package/dist/focus.d-az9cqUz3.d.cts +1178 -0
  69. package/dist/health-plan/index.cjs +370 -0
  70. package/dist/health-plan/index.d.cts +251 -0
  71. package/dist/health-plan/index.d.ts +251 -0
  72. package/dist/health-plan/index.js +370 -0
  73. package/dist/idempotency.d-D461_DPD.d.cts +910 -0
  74. package/dist/idempotency.d-WpXx9zQo.d.ts +910 -0
  75. package/dist/{identity-Cw07BKZp.d.ts → identity.d-60LeJt_s.d.cts} +3 -3
  76. package/dist/{identity-DFVGYn1o.d.cts → identity.d-DzTijonw.d.ts} +3 -3
  77. package/dist/index.cjs +141 -66
  78. package/dist/index.d.cts +31 -29
  79. package/dist/index.d.ts +31 -29
  80. package/dist/index.js +142 -67
  81. package/dist/{models-A4A5S7AG.d.cts → models.d-BagXhafD.d.ts} +8 -3
  82. package/dist/{models-CnXY5LuO.d.ts → models.d-BnLm3VAA.d.cts} +8 -3
  83. package/dist/notifications/index.cjs +5 -1
  84. package/dist/notifications/index.d.cts +9 -9
  85. package/dist/notifications/index.d.ts +9 -9
  86. package/dist/notifications/index.js +5 -1
  87. package/dist/optInView.d-CEyHR6PK.d.cts +325 -0
  88. package/dist/optInView.d-acKpV8V2.d.ts +325 -0
  89. package/dist/parse.d-C8CXyS58.d.ts +210 -0
  90. package/dist/parse.d-tEzufgJX.d.cts +210 -0
  91. package/dist/{pets-BYALZTSu.d.ts → pets.d-C_53_fzo.d.ts} +3 -3
  92. package/dist/{pets-CcyPQS-H.d.cts → pets.d-NbJvP_kh.d.cts} +3 -3
  93. package/dist/{petsRepository-B_Q1gFkE.d.cts → petsRepository.d-BuGHymNx.d.ts} +4 -4
  94. package/dist/{petsRepository-518QkPxH.d.ts → petsRepository.d-lp1BHRqM.d.cts} +4 -4
  95. package/dist/photo/index.cjs +6 -2
  96. package/dist/photo/index.d.cts +9 -9
  97. package/dist/photo/index.d.ts +9 -9
  98. package/dist/photo/index.js +6 -2
  99. package/dist/{ports-BN6RHF9W.d.ts → ports.d-BX4f4UsB.d.cts} +14 -1
  100. package/dist/{ports-BN6RHF9W.d.cts → ports.d-BX4f4UsB.d.ts} +14 -1
  101. package/dist/{ports-RuNJmBA-.d.cts → ports.d-CEROoqnA.d.cts} +16 -10
  102. package/dist/{ports-DmQeMArX.d.ts → ports.d-COIyN624.d.ts} +16 -10
  103. package/dist/presentation.d-DMbdad7G.d.cts +90 -0
  104. package/dist/presentation.d-DMbdad7G.d.ts +90 -0
  105. package/dist/records/depth/index.cjs +11 -7
  106. package/dist/records/depth/index.d.cts +14 -12
  107. package/dist/records/depth/index.d.ts +14 -12
  108. package/dist/records/depth/index.js +11 -7
  109. package/dist/records/index.cjs +225 -62
  110. package/dist/records/index.d.cts +159 -20
  111. package/dist/records/index.d.ts +159 -20
  112. package/dist/records/index.js +225 -62
  113. package/dist/recordsAsk.d-C5CGSi3j.d.cts +14 -0
  114. package/dist/recordsAsk.d-C5CGSi3j.d.ts +14 -0
  115. package/dist/{requestFunnel-B9fdXMi5.d.ts → requestFunnel.d-CXUMPw1K.d.ts} +5 -5
  116. package/dist/{requestFunnel-BBjNNwc9.d.cts → requestFunnel.d-DWQQpjFR.d.cts} +5 -5
  117. package/dist/{resolve-D4Ywz5OS.d.ts → resolve.d-jI8FmBj3.d.cts} +3 -3
  118. package/dist/{resolve-D4Ywz5OS.d.cts → resolve.d-jI8FmBj3.d.ts} +3 -3
  119. package/dist/{runtimeTypes-CstDBX8w.d.cts → runtimeTypes.d-4yFNNuYR.d.ts} +20 -13
  120. package/dist/{runtimeTypes-N_K4BVZB.d.ts → runtimeTypes.d-D6N_fhxx.d.cts} +20 -13
  121. package/dist/server/events/index.cjs +7 -3
  122. package/dist/server/events/index.d.cts +51 -9
  123. package/dist/server/events/index.d.ts +51 -9
  124. package/dist/server/events/index.js +7 -3
  125. package/dist/server/index.cjs +12 -6
  126. package/dist/server/index.d.cts +152 -8
  127. package/dist/server/index.d.ts +152 -8
  128. package/dist/server/index.js +12 -6
  129. package/dist/sheetCopy.d-CAhLOxjc.d.cts +4 -0
  130. package/dist/sheetCopy.d-CAhLOxjc.d.ts +4 -0
  131. package/dist/sheetSeam.d-Cviqk89n.d.ts +45 -0
  132. package/dist/sheetSeam.d-DCS3LW8g.d.cts +45 -0
  133. package/dist/shop/index.cjs +262 -0
  134. package/dist/shop/index.d.cts +193 -0
  135. package/dist/shop/index.d.ts +193 -0
  136. package/dist/shop/index.js +262 -0
  137. package/dist/televet/booking/index.cjs +16 -12
  138. package/dist/televet/booking/index.d.cts +36 -22
  139. package/dist/televet/booking/index.d.ts +36 -22
  140. package/dist/televet/booking/index.js +16 -12
  141. package/dist/televet/call/index.d.cts +5 -5
  142. package/dist/televet/call/index.d.ts +5 -5
  143. package/dist/televet/index.cjs +7 -3
  144. package/dist/televet/index.d.cts +12 -12
  145. package/dist/televet/index.d.ts +12 -12
  146. package/dist/televet/index.js +7 -3
  147. package/dist/{televetGlobal-C5dTUACe.d.cts → televetGlobal.d-CC-DrqkQ.d.ts} +7 -2
  148. package/dist/{televetGlobal-CnjrfhT4.d.ts → televetGlobal.d-CKwDCbmN.d.cts} +7 -2
  149. package/dist/testing/index.cjs +7 -3
  150. package/dist/testing/index.d.cts +3 -3
  151. package/dist/testing/index.d.ts +3 -3
  152. package/dist/testing/index.js +7 -3
  153. package/dist/testing/rn/index.cjs +5 -1
  154. package/dist/testing/rn/index.d.cts +23 -22
  155. package/dist/testing/rn/index.d.ts +23 -22
  156. package/dist/testing/rn/index.js +5 -1
  157. package/dist/testing/web/index.cjs +5 -1
  158. package/dist/testing/web/index.d.cts +23 -22
  159. package/dist/testing/web/index.d.ts +23 -22
  160. package/dist/testing/web/index.js +5 -1
  161. package/dist/texting/index.cjs +158 -0
  162. package/dist/texting/index.d.cts +36 -0
  163. package/dist/texting/index.d.ts +36 -0
  164. package/dist/texting/index.js +158 -0
  165. package/dist/threadOptions.d-B1pTMmDF.d.cts +260 -0
  166. package/dist/threadOptions.d-B1pTMmDF.d.ts +260 -0
  167. package/dist/{timelineRows-7yjHyh8i.d.ts → timelineRows.d-BNxgzYRW.d.cts} +1 -1
  168. package/dist/{timelineRows-WvnL-Lds.d.cts → timelineRows.d-CU5GvvLk.d.ts} +1 -1
  169. package/dist/{tokens-DLj8OnLH.d.cts → tokens.d-DarDaV39.d.cts} +10 -2
  170. package/dist/{tokens-DLj8OnLH.d.ts → tokens.d-DarDaV39.d.ts} +10 -2
  171. package/dist/{typeStyle-BxVyF71R.d.ts → typeStyle.d-Bl8pzbBy.d.cts} +2 -2
  172. package/dist/{typeStyle-DJedEu14.d.cts → typeStyle.d-C1HBRAI3.d.ts} +2 -2
  173. package/dist/{uploadTransport-BM_pnEWj.d.cts → uploadTransport.d-CWL7CdWP.d.cts} +1 -1
  174. package/dist/{uploadTransport-C6kGP1Kd.d.ts → uploadTransport.d-EGoUl7gX.d.ts} +1 -1
  175. package/dist/usePresentation.d-D6qsFzBz.d.cts +9 -0
  176. package/dist/usePresentation.d-DuGQe_Do.d.ts +9 -0
  177. package/dist/useRecords.d-Cb-36SF5.d.cts +121 -0
  178. package/dist/useRecords.d-aQTzQZoV.d.ts +121 -0
  179. package/dist/{useRecordsDepth-Bp6L4M5P.d.ts → useRecordsDepth.d-DFcCfiXm.d.ts} +8 -20
  180. package/dist/{useRecordsDepth-DPdAK_81.d.cts → useRecordsDepth.d-sAq2Qkhr.d.cts} +8 -20
  181. package/dist/{useVetVisit-DmWa7lt1.d.ts → useVetVisit.d-BtdwhmgD.d.cts} +15 -4
  182. package/dist/{useVetVisit-PtBjNwZr.d.cts → useVetVisit.d-DoYQimyt.d.ts} +15 -4
  183. package/dist/video/index.cjs +6 -2
  184. package/dist/video/index.d.cts +7 -7
  185. package/dist/video/index.d.ts +7 -7
  186. package/dist/video/index.js +6 -2
  187. package/dist/{view-C6go2uUt.d.ts → view.d-C-SNpDJX.d.ts} +10 -122
  188. package/dist/{view-CiF_HVFQ.d.cts → view.d-Dps5C8-s.d.cts} +10 -122
  189. package/dist/web/consent/index.cjs +5 -1
  190. package/dist/web/consent/index.d.cts +10 -10
  191. package/dist/web/consent/index.d.ts +10 -10
  192. package/dist/web/consent/index.js +5 -1
  193. package/dist/web/health-plan/index.cjs +414 -0
  194. package/dist/web/health-plan/index.d.cts +335 -0
  195. package/dist/web/health-plan/index.d.ts +335 -0
  196. package/dist/web/health-plan/index.js +414 -0
  197. package/dist/web/index.cjs +150 -82
  198. package/dist/web/index.d.cts +152 -38
  199. package/dist/web/index.d.ts +152 -38
  200. package/dist/web/index.js +150 -82
  201. package/dist/web/notifications/index.cjs +16 -3
  202. package/dist/web/notifications/index.d.cts +39 -209
  203. package/dist/web/notifications/index.d.ts +39 -209
  204. package/dist/web/notifications/index.js +16 -3
  205. package/dist/web/records/depth/index.cjs +11 -7
  206. package/dist/web/records/depth/index.d.cts +14 -12
  207. package/dist/web/records/depth/index.d.ts +14 -12
  208. package/dist/web/records/depth/index.js +11 -7
  209. package/dist/web/records/index.cjs +95 -68
  210. package/dist/web/records/index.d.cts +66 -21
  211. package/dist/web/records/index.d.ts +66 -21
  212. package/dist/web/records/index.js +95 -68
  213. package/dist/web/records/upload/index.d.cts +2 -2
  214. package/dist/web/records/upload/index.d.ts +2 -2
  215. package/dist/web/records-sheet/index.cjs +278 -0
  216. package/dist/web/records-sheet/index.d.cts +102 -0
  217. package/dist/web/records-sheet/index.d.ts +102 -0
  218. package/dist/web/records-sheet/index.js +278 -0
  219. package/dist/web/shop/index.cjs +301 -0
  220. package/dist/web/shop/index.d.cts +42 -0
  221. package/dist/web/shop/index.d.ts +42 -0
  222. package/dist/web/shop/index.js +301 -0
  223. package/dist/web/televet/booking/index.cjs +16 -12
  224. package/dist/web/televet/booking/index.d.cts +37 -23
  225. package/dist/web/televet/booking/index.d.ts +37 -23
  226. package/dist/web/televet/booking/index.js +16 -12
  227. package/dist/web/televet/call/index.d.cts +4 -4
  228. package/dist/web/televet/call/index.d.ts +4 -4
  229. package/dist/web/televet/index.cjs +7 -3
  230. package/dist/web/televet/index.d.cts +12 -12
  231. package/dist/web/televet/index.d.ts +12 -12
  232. package/dist/web/televet/index.js +7 -3
  233. package/dist/web/texting/index.cjs +157 -0
  234. package/dist/web/texting/index.d.cts +36 -0
  235. package/dist/web/texting/index.d.ts +36 -0
  236. package/dist/web/texting/index.js +157 -0
  237. package/health-plan/package.json +8 -0
  238. package/package.json +106 -4
  239. package/shop/package.json +8 -0
  240. package/texting/package.json +8 -0
  241. package/web/health-plan/native-blocked.cjs +12 -0
  242. package/web/health-plan/package.json +8 -0
  243. package/web/records-sheet/native-blocked.cjs +12 -0
  244. package/web/records-sheet/package.json +8 -0
  245. package/web/shop/native-blocked.cjs +12 -0
  246. package/web/shop/package.json +8 -0
  247. package/web/texting/native-blocked.cjs +12 -0
  248. package/web/texting/package.json +8 -0
  249. /package/dist/{CameraPort-Cv31Pz7g.d.cts → CameraPort.d-Cv31Pz7g.d.cts} +0 -0
  250. /package/dist/{CameraPort-Cv31Pz7g.d.ts → CameraPort.d-Cv31Pz7g.d.ts} +0 -0
  251. /package/dist/{TelemetryPort-BDNr00hu.d.cts → TelemetryPort.d-BDNr00hu.d.cts} +0 -0
  252. /package/dist/{TelemetryPort-BDNr00hu.d.ts → TelemetryPort.d-BDNr00hu.d.ts} +0 -0
  253. /package/dist/{cacheEpoch-DknKn3S0.d.cts → cacheEpoch.d-DknKn3S0.d.cts} +0 -0
  254. /package/dist/{cacheEpoch-DknKn3S0.d.ts → cacheEpoch.d-DknKn3S0.d.ts} +0 -0
  255. /package/dist/{callCopy-Bw6oZT54.d.cts → callCopy.d-Bw6oZT54.d.cts} +0 -0
  256. /package/dist/{callCopy-Bw6oZT54.d.ts → callCopy.d-Bw6oZT54.d.ts} +0 -0
  257. /package/dist/{ids-B2GAAifq.d.cts → ids.d-B2GAAifq.d.cts} +0 -0
  258. /package/dist/{ids-B2GAAifq.d.ts → ids.d-B2GAAifq.d.ts} +0 -0
  259. /package/dist/{optionalModule-DbJmsq5f.d.cts → optionalModule.d-DbJmsq5f.d.cts} +0 -0
  260. /package/dist/{optionalModule-DbJmsq5f.d.ts → optionalModule.d-DbJmsq5f.d.ts} +0 -0
  261. /package/dist/{profile-CSs1wlXT.d.cts → profile.d-CSs1wlXT.d.cts} +0 -0
  262. /package/dist/{profile-CSs1wlXT.d.ts → profile.d-CSs1wlXT.d.ts} +0 -0
  263. /package/dist/{projection-CeIUsbSk.d.cts → projection.d-CeIUsbSk.d.cts} +0 -0
  264. /package/dist/{projection-CeIUsbSk.d.ts → projection.d-CeIUsbSk.d.ts} +0 -0
  265. /package/dist/{species-BXAIMh7I.d.cts → species.d-BXAIMh7I.d.cts} +0 -0
  266. /package/dist/{species-BXAIMh7I.d.ts → species.d-BXAIMh7I.d.ts} +0 -0
  267. /package/dist/{visitIntent-D7_yVp1I.d.cts → visitIntent.d-D7_yVp1I.d.cts} +0 -0
  268. /package/dist/{visitIntent-D7_yVp1I.d.ts → visitIntent.d-D7_yVp1I.d.ts} +0 -0
@@ -1,117 +1,11 @@
1
- import { E as EverfurResult } from './EverfurResult-COlXj1wq.cjs';
2
- import { P as PetRef } from './ids-B2GAAifq.cjs';
3
- import { R as RequestFunnel } from './requestFunnel-BBjNNwc9.cjs';
4
- import { A as AuthContext } from './identity-DFVGYn1o.cjs';
5
- import { E as ErrorPolicyPort } from './ErrorPolicyPort-10s3HJCt.cjs';
6
- import { d as RecordsRequestView, R as RecordDocumentMeta, a as RecordEntity } from './models-A4A5S7AG.cjs';
7
- import { E as EverfurError } from './EverfurError-DeBqRpQV.cjs';
8
-
9
- /** Who a share link is for, while the server's audience switch is on (V819), in the order it offers them. */
10
- type RecordShareAudience = 'vet' | 'groomer' | 'boarding';
11
- /** Every audience this package can name, in the design's order. */
12
- declare const RECORD_SHARE_AUDIENCES: readonly RecordShareAudience[];
13
- /** Who an emailed record goes to: an audience, or `other` (the neutral email wording and no audience). */
14
- type RecordShareRecipientKind = RecordShareAudience | 'other';
15
- /**
16
- * What a link minted for one audience carries (`ShareAudienceScope` on the wire): the content `sections` of the
17
- * shared record and, for a care handoff that is not a vet, the only `entityTypes` it keeps (null: every type).
18
- */
19
- interface RecordShareAudienceScope {
20
- readonly audience: RecordShareAudience;
21
- readonly sections: readonly string[];
22
- readonly entityTypes: readonly string[] | null;
23
- }
24
- /** A freshly minted share link. `shareUrl` is shown once; the list read never repeats it. */
25
- interface RecordShareLink {
26
- readonly shareId: string;
27
- readonly shareUrl: string;
28
- readonly expiresAt: string | null;
29
- /**
30
- * The audience the link was stamped with; null for a link minted without one (or with the switch off). Always
31
- * set by this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
32
- */
33
- readonly audience?: RecordShareAudience | null;
34
- }
35
- /** One live share link as the list read reports it (no URL: the token was shown once, at creation). */
36
- interface RecordShare {
37
- readonly shareId: string;
38
- readonly expiresAt: string | null;
39
- readonly createdAt: string | null;
40
- readonly viewCount: number;
41
- readonly lastViewedAt: string | null;
42
- /**
43
- * The audience the link was stamped with; null for none, an unknown one, or with the switch off. Always set by
44
- * this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
45
- */
46
- readonly audience?: RecordShareAudience | null;
47
- }
48
- /** Email the record: the recipient's address and who they are (which picks the email's wording). */
49
- interface RecordShareEmailInput {
50
- readonly recipientEmail: string;
51
- readonly recipientKind: RecordShareRecipientKind;
52
- }
53
- /**
54
- * The emailed link's receipt: the id to turn it off by and the date it dies. NO URL, by design: the server never
55
- * returns the link for an email send, and this shape has nowhere to put one.
56
- */
57
- interface RecordShareEmailReceipt {
58
- readonly shareId: string;
59
- readonly expiresAt: string | null;
60
- readonly audience: RecordShareAudience | null;
61
- }
62
- /** The presigned PDF download. */
63
- interface RecordPdfLink {
64
- readonly downloadUrl: string;
65
- readonly expiresAt: string | null;
66
- }
67
- /** The longest address the email route accepts (`recipient_email: Field(max_length=254)`). */
68
- declare const SHARE_RECIPIENT_EMAIL_MAX = 254;
69
- /**
70
- * The email route's own lenient address check (records_router.py `_EMAIL_RE`, which the widget route imports), so
71
- * an address the server would refuse is refused here before a request is spent. Not an RFC 5322 parser.
72
- */
73
- declare function isShareRecipientEmail(value: string): boolean;
74
- /**
75
- * `share_audiences` off the features read, FAIL CLOSED: absent, not a list, or any entry off the documented shape
76
- * is NO audiences, so a surface never claims a scope it cannot read. An audience this package cannot name (a
77
- * newer server's) and a repeat are dropped; the rest keep the server's order.
78
- */
79
- declare function mapShareAudiences(wire: unknown): readonly RecordShareAudienceScope[];
80
- /**
81
- * The share link as an absolute https URL. The consumer route returns the RELATIVE form
82
- * (`/api/v1/records/everfur_record/shared/<token>.pdf`), which is resolved against the API base URL the
83
- * client was built for; an absolute value is kept as it is. A link that cannot be made absolute https (a
84
- * relative path with no base URL, another scheme, a malformed value) is refused: it is never opened raw.
85
- */
86
- declare function resolveShareUrl(shareUrl: string, apiBaseUrl: string | undefined): string | null;
87
- /** The mint response to a frozen link, or null when malformed (fail-closed: no link is better than a bad one). */
88
- declare function mapRecordShareLink(wire: unknown, apiBaseUrl?: string): RecordShareLink | null;
89
- /** The list response to frozen rows, or null when malformed. */
90
- declare function mapRecordShareList(wire: unknown): readonly RecordShare[] | null;
91
- /** The email send's answer to a frozen receipt, or null when malformed. Only the named keys survive: never a URL. */
92
- declare function mapRecordShareEmailReceipt(wire: unknown): RecordShareEmailReceipt | null;
93
- /** The PDF link response to a frozen link, or null when malformed or not https. */
94
- declare function mapRecordPdfLink(wire: unknown): RecordPdfLink | null;
95
-
96
- /** A photo type `uploads/initiate` accepts while photo upload is armed. */
97
- type RecordsPhotoContentType = 'image/jpeg' | 'image/png' | 'image/heic' | 'image/heif';
98
- /** A content type `uploads/initiate` can be asked for. */
99
- type RecordsUploadContentType = 'application/pdf' | RecordsPhotoContentType;
100
-
101
- /** The records features read, mapped. */
102
- interface RecordsFeatures {
103
- /** Every feature the server named, by its wire name (`markers`, `sharing`, ...). Empty when the read failed. */
104
- readonly features: Readonly<Record<string, boolean>>;
105
- /** What an upload may declare. Always starts with `application/pdf`; photo types only while armed. */
106
- readonly uploadContentTypes: readonly RecordsUploadContentType[];
107
- /**
108
- * Who a share link can be for, in the server's order, each with the scope its link carries. Served only while
109
- * the audience switch is on; empty otherwise, and when the list is malformed.
110
- */
111
- readonly shareAudiences: readonly RecordShareAudienceScope[];
112
- }
113
- /** True when an upload may be a photo. An absent list (a host-built state) is PDF only. */
114
- declare function acceptsPhotos(types: readonly string[] | undefined): boolean;
1
+ import { E as EverfurResult } from './EverfurResult.d-BFH-3s6E.cjs';
2
+ import { P as PetRef } from './ids.d-B2GAAifq.cjs';
3
+ import { R as RequestFunnel } from './requestFunnel.d-DWQQpjFR.cjs';
4
+ import { A as AuthContext } from './identity.d-60LeJt_s.cjs';
5
+ import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-DirW9hgO.cjs';
6
+ import { d as RecordsRequestView, R as RecordDocumentMeta, a as RecordEntity } from './models.d-BnLm3VAA.cjs';
7
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
8
+ import { R as RecordShareAudience, i as RecordShareLink, g as RecordShareEmailInput, h as RecordShareEmailReceipt, a as RecordsFeatures, e as RecordShare, d as RecordPdfLink } from './features.d-fNsGcg0R.cjs';
115
9
 
116
10
  /** Directory contact details only. The server intentionally does not expose clinic email addresses. */
117
11
  interface RecordsClinic {
@@ -626,4 +520,4 @@ interface RecordsDepthClient {
626
520
  /** The depth client, over the same auth, funnel and error policy as the records repository. */
627
521
  declare function createRecordsDepthClient(deps: HttpRecordsRepositoryDeps): RecordsDepthClient;
628
522
 
629
- export { type RecordsSignatureSuggestion as $, type HttpRecordsRepositoryDeps as A, RECORDS_CLINIC_BATCH_MAX as B, type CreateClinicRequestBatchInput as C, RECORD_SHARE_AUDIENCES as D, type RecordFactEditInput as E, FACT_FIELD_BY_KIND as F, type RecordFactRemoveInput as G, type HttpRecordsClinicRepositoryDeps as H, type RecordMarker as I, type RecordMarkerLatest as J, type RecordMarkerPoint as K, type RecordMarkerSummary as L, type RecordMarkersView as M, type RecordPdfLink as N, type RecordShare as O, type RecordShareAudienceScope as P, type RecordShareEmailInput as Q, type RecordClinicianNote as R, type RecordShareEmailReceipt as S, type RecordShareLink as T, type RecordShareRecipientKind as U, type RecordsAuthorizationSignature as V, type RecordsClinicBatch as W, type RecordsClinicBatchClient as X, type RecordsClinicBatchItem as Y, type RecordsClinicBatchResult as Z, type RecordsClinicTarget as _, type RecordClinicianNoteSection as a, SHARE_RECIPIENT_EMAIL_MAX as a0, createRecordsClinicBatchClient as a1, createRecordsDepthClient as a2, factCorrectionFor as a3, factValueCorrection as a4, inferFactValueKind as a5, isFactReviewerLocked as a6, isShareRecipientEmail as a7, mapRecordMarkers as a8, mapRecordPdfLink as a9, mapRecordShareEmailReceipt as aa, mapRecordShareLink as ab, mapRecordShareList as ac, mapShareAudiences as ad, mapSignatureSuggestions as ae, resolveShareUrl as af, type RecordsClinicSearchInput as ag, type RecordsClinicSearchPage as ah, type RecordsRecentClinicsInput as ai, type RecordsAuthorizationCopy as aj, type CreateClinicRequestInput as ak, type RecordsSignatureUploadPolicy as al, type RecordsFeatures as am, type RecordsUploadContentType as an, type RecordsPhotoContentType as ao, acceptsPhotos as ap, type RecordCompleteness as b, type RecordConflict as c, type RecordConflictCandidate as d, type RecordDepthView as e, type RecordDocumentContributionsView as f, type RecordEncounter as g, type RecordExamSystem as h, type RecordLabMarker as i, type RecordLabPoint as j, type RecordPhysicalExam as k, type RecordShareAudience as l, type RecordsClinic as m, type RecordsDepthClient as n, type RecordsRequestDocument as o, type RecordsTimelineMedication as p, type RecordsTimelineVaccine as q, type RecordsTimelineView as r, type RecordsTimelineVisit as s, type RecordsTimelineWeight as t, mapDocumentContributions as u, mapRecordDepth as v, mapRecordsTimeline as w, FACT_VALUE_FIELD as x, type FactFieldValue as y, type FactValueKind as z };
523
+ export { type RecordsClinicSearchInput as $, RECORDS_CLINIC_BATCH_MAX as A, type RecordFactEditInput as B, type CreateClinicRequestBatchInput as C, type RecordFactRemoveInput as D, type RecordMarker as E, FACT_FIELD_BY_KIND as F, type RecordMarkerLatest as G, type HttpRecordsClinicRepositoryDeps as H, type RecordMarkerPoint as I, type RecordMarkerSummary as J, type RecordMarkersView as K, type RecordsAuthorizationSignature as L, type RecordsClinicBatch as M, type RecordsClinicBatchClient as N, type RecordsClinicBatchItem as O, type RecordsClinicBatchResult as P, type RecordsClinicTarget as Q, type RecordClinicianNote as R, type RecordsSignatureSuggestion as S, createRecordsClinicBatchClient as T, createRecordsDepthClient as U, factCorrectionFor as V, factValueCorrection as W, inferFactValueKind as X, isFactReviewerLocked as Y, mapRecordMarkers as Z, mapSignatureSuggestions as _, type RecordClinicianNoteSection as a, type RecordsClinicSearchPage as a0, type RecordsRecentClinicsInput as a1, type RecordsAuthorizationCopy as a2, type CreateClinicRequestInput as a3, type RecordsSignatureUploadPolicy as a4, type RecordCompleteness as b, type RecordConflict as c, type RecordConflictCandidate as d, type RecordDepthView as e, type RecordDocumentContributionsView as f, type RecordEncounter as g, type RecordExamSystem as h, type RecordLabMarker as i, type RecordLabPoint as j, type RecordPhysicalExam as k, type RecordsClinic as l, type RecordsDepthClient as m, type RecordsRequestDocument as n, type RecordsTimelineMedication as o, type RecordsTimelineVaccine as p, type RecordsTimelineView as q, type RecordsTimelineVisit as r, type RecordsTimelineWeight as s, mapDocumentContributions as t, mapRecordDepth as u, mapRecordsTimeline as v, FACT_VALUE_FIELD as w, type FactFieldValue as x, type FactValueKind as y, type HttpRecordsRepositoryDeps as z };
@@ -1,117 +1,11 @@
1
- import { E as EverfurResult } from './EverfurResult-ClPTS0P2.js';
2
- import { P as PetRef } from './ids-B2GAAifq.js';
3
- import { R as RequestFunnel } from './requestFunnel-B9fdXMi5.js';
4
- import { A as AuthContext } from './identity-Cw07BKZp.js';
5
- import { E as ErrorPolicyPort } from './ErrorPolicyPort-C3nNSS_j.js';
6
- import { d as RecordsRequestView, R as RecordDocumentMeta, a as RecordEntity } from './models-CnXY5LuO.js';
7
- import { E as EverfurError } from './EverfurError-DeBqRpQV.js';
8
-
9
- /** Who a share link is for, while the server's audience switch is on (V819), in the order it offers them. */
10
- type RecordShareAudience = 'vet' | 'groomer' | 'boarding';
11
- /** Every audience this package can name, in the design's order. */
12
- declare const RECORD_SHARE_AUDIENCES: readonly RecordShareAudience[];
13
- /** Who an emailed record goes to: an audience, or `other` (the neutral email wording and no audience). */
14
- type RecordShareRecipientKind = RecordShareAudience | 'other';
15
- /**
16
- * What a link minted for one audience carries (`ShareAudienceScope` on the wire): the content `sections` of the
17
- * shared record and, for a care handoff that is not a vet, the only `entityTypes` it keeps (null: every type).
18
- */
19
- interface RecordShareAudienceScope {
20
- readonly audience: RecordShareAudience;
21
- readonly sections: readonly string[];
22
- readonly entityTypes: readonly string[] | null;
23
- }
24
- /** A freshly minted share link. `shareUrl` is shown once; the list read never repeats it. */
25
- interface RecordShareLink {
26
- readonly shareId: string;
27
- readonly shareUrl: string;
28
- readonly expiresAt: string | null;
29
- /**
30
- * The audience the link was stamped with; null for a link minted without one (or with the switch off). Always
31
- * set by this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
32
- */
33
- readonly audience?: RecordShareAudience | null;
34
- }
35
- /** One live share link as the list read reports it (no URL: the token was shown once, at creation). */
36
- interface RecordShare {
37
- readonly shareId: string;
38
- readonly expiresAt: string | null;
39
- readonly createdAt: string | null;
40
- readonly viewCount: number;
41
- readonly lastViewedAt: string | null;
42
- /**
43
- * The audience the link was stamped with; null for none, an unknown one, or with the switch off. Always set by
44
- * this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
45
- */
46
- readonly audience?: RecordShareAudience | null;
47
- }
48
- /** Email the record: the recipient's address and who they are (which picks the email's wording). */
49
- interface RecordShareEmailInput {
50
- readonly recipientEmail: string;
51
- readonly recipientKind: RecordShareRecipientKind;
52
- }
53
- /**
54
- * The emailed link's receipt: the id to turn it off by and the date it dies. NO URL, by design: the server never
55
- * returns the link for an email send, and this shape has nowhere to put one.
56
- */
57
- interface RecordShareEmailReceipt {
58
- readonly shareId: string;
59
- readonly expiresAt: string | null;
60
- readonly audience: RecordShareAudience | null;
61
- }
62
- /** The presigned PDF download. */
63
- interface RecordPdfLink {
64
- readonly downloadUrl: string;
65
- readonly expiresAt: string | null;
66
- }
67
- /** The longest address the email route accepts (`recipient_email: Field(max_length=254)`). */
68
- declare const SHARE_RECIPIENT_EMAIL_MAX = 254;
69
- /**
70
- * The email route's own lenient address check (records_router.py `_EMAIL_RE`, which the widget route imports), so
71
- * an address the server would refuse is refused here before a request is spent. Not an RFC 5322 parser.
72
- */
73
- declare function isShareRecipientEmail(value: string): boolean;
74
- /**
75
- * `share_audiences` off the features read, FAIL CLOSED: absent, not a list, or any entry off the documented shape
76
- * is NO audiences, so a surface never claims a scope it cannot read. An audience this package cannot name (a
77
- * newer server's) and a repeat are dropped; the rest keep the server's order.
78
- */
79
- declare function mapShareAudiences(wire: unknown): readonly RecordShareAudienceScope[];
80
- /**
81
- * The share link as an absolute https URL. The consumer route returns the RELATIVE form
82
- * (`/api/v1/records/everfur_record/shared/<token>.pdf`), which is resolved against the API base URL the
83
- * client was built for; an absolute value is kept as it is. A link that cannot be made absolute https (a
84
- * relative path with no base URL, another scheme, a malformed value) is refused: it is never opened raw.
85
- */
86
- declare function resolveShareUrl(shareUrl: string, apiBaseUrl: string | undefined): string | null;
87
- /** The mint response to a frozen link, or null when malformed (fail-closed: no link is better than a bad one). */
88
- declare function mapRecordShareLink(wire: unknown, apiBaseUrl?: string): RecordShareLink | null;
89
- /** The list response to frozen rows, or null when malformed. */
90
- declare function mapRecordShareList(wire: unknown): readonly RecordShare[] | null;
91
- /** The email send's answer to a frozen receipt, or null when malformed. Only the named keys survive: never a URL. */
92
- declare function mapRecordShareEmailReceipt(wire: unknown): RecordShareEmailReceipt | null;
93
- /** The PDF link response to a frozen link, or null when malformed or not https. */
94
- declare function mapRecordPdfLink(wire: unknown): RecordPdfLink | null;
95
-
96
- /** A photo type `uploads/initiate` accepts while photo upload is armed. */
97
- type RecordsPhotoContentType = 'image/jpeg' | 'image/png' | 'image/heic' | 'image/heif';
98
- /** A content type `uploads/initiate` can be asked for. */
99
- type RecordsUploadContentType = 'application/pdf' | RecordsPhotoContentType;
100
-
101
- /** The records features read, mapped. */
102
- interface RecordsFeatures {
103
- /** Every feature the server named, by its wire name (`markers`, `sharing`, ...). Empty when the read failed. */
104
- readonly features: Readonly<Record<string, boolean>>;
105
- /** What an upload may declare. Always starts with `application/pdf`; photo types only while armed. */
106
- readonly uploadContentTypes: readonly RecordsUploadContentType[];
107
- /**
108
- * Who a share link can be for, in the server's order, each with the scope its link carries. Served only while
109
- * the audience switch is on; empty otherwise, and when the list is malformed.
110
- */
111
- readonly shareAudiences: readonly RecordShareAudienceScope[];
112
- }
113
- /** True when an upload may be a photo. An absent list (a host-built state) is PDF only. */
114
- declare function acceptsPhotos(types: readonly string[] | undefined): boolean;
1
+ import { E as EverfurResult } from './EverfurResult.d-D_-254ZY.js';
2
+ import { P as PetRef } from './ids.d-B2GAAifq.js';
3
+ import { R as RequestFunnel } from './requestFunnel.d-CXUMPw1K.js';
4
+ import { A as AuthContext } from './identity.d-DzTijonw.js';
5
+ import { E as ErrorPolicyPort } from './ErrorPolicyPort.d-68yrE3BE.js';
6
+ import { d as RecordsRequestView, R as RecordDocumentMeta, a as RecordEntity } from './models.d-BagXhafD.js';
7
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
8
+ import { R as RecordShareAudience, i as RecordShareLink, g as RecordShareEmailInput, h as RecordShareEmailReceipt, a as RecordsFeatures, e as RecordShare, d as RecordPdfLink } from './features.d-fNsGcg0R.js';
115
9
 
116
10
  /** Directory contact details only. The server intentionally does not expose clinic email addresses. */
117
11
  interface RecordsClinic {
@@ -626,4 +520,4 @@ interface RecordsDepthClient {
626
520
  /** The depth client, over the same auth, funnel and error policy as the records repository. */
627
521
  declare function createRecordsDepthClient(deps: HttpRecordsRepositoryDeps): RecordsDepthClient;
628
522
 
629
- export { type RecordsSignatureSuggestion as $, type HttpRecordsRepositoryDeps as A, RECORDS_CLINIC_BATCH_MAX as B, type CreateClinicRequestBatchInput as C, RECORD_SHARE_AUDIENCES as D, type RecordFactEditInput as E, FACT_FIELD_BY_KIND as F, type RecordFactRemoveInput as G, type HttpRecordsClinicRepositoryDeps as H, type RecordMarker as I, type RecordMarkerLatest as J, type RecordMarkerPoint as K, type RecordMarkerSummary as L, type RecordMarkersView as M, type RecordPdfLink as N, type RecordShare as O, type RecordShareAudienceScope as P, type RecordShareEmailInput as Q, type RecordClinicianNote as R, type RecordShareEmailReceipt as S, type RecordShareLink as T, type RecordShareRecipientKind as U, type RecordsAuthorizationSignature as V, type RecordsClinicBatch as W, type RecordsClinicBatchClient as X, type RecordsClinicBatchItem as Y, type RecordsClinicBatchResult as Z, type RecordsClinicTarget as _, type RecordClinicianNoteSection as a, SHARE_RECIPIENT_EMAIL_MAX as a0, createRecordsClinicBatchClient as a1, createRecordsDepthClient as a2, factCorrectionFor as a3, factValueCorrection as a4, inferFactValueKind as a5, isFactReviewerLocked as a6, isShareRecipientEmail as a7, mapRecordMarkers as a8, mapRecordPdfLink as a9, mapRecordShareEmailReceipt as aa, mapRecordShareLink as ab, mapRecordShareList as ac, mapShareAudiences as ad, mapSignatureSuggestions as ae, resolveShareUrl as af, type RecordsClinicSearchInput as ag, type RecordsClinicSearchPage as ah, type RecordsRecentClinicsInput as ai, type RecordsAuthorizationCopy as aj, type CreateClinicRequestInput as ak, type RecordsSignatureUploadPolicy as al, type RecordsFeatures as am, type RecordsUploadContentType as an, type RecordsPhotoContentType as ao, acceptsPhotos as ap, type RecordCompleteness as b, type RecordConflict as c, type RecordConflictCandidate as d, type RecordDepthView as e, type RecordDocumentContributionsView as f, type RecordEncounter as g, type RecordExamSystem as h, type RecordLabMarker as i, type RecordLabPoint as j, type RecordPhysicalExam as k, type RecordShareAudience as l, type RecordsClinic as m, type RecordsDepthClient as n, type RecordsRequestDocument as o, type RecordsTimelineMedication as p, type RecordsTimelineVaccine as q, type RecordsTimelineView as r, type RecordsTimelineVisit as s, type RecordsTimelineWeight as t, mapDocumentContributions as u, mapRecordDepth as v, mapRecordsTimeline as w, FACT_VALUE_FIELD as x, type FactFieldValue as y, type FactValueKind as z };
523
+ export { type RecordsClinicSearchInput as $, RECORDS_CLINIC_BATCH_MAX as A, type RecordFactEditInput as B, type CreateClinicRequestBatchInput as C, type RecordFactRemoveInput as D, type RecordMarker as E, FACT_FIELD_BY_KIND as F, type RecordMarkerLatest as G, type HttpRecordsClinicRepositoryDeps as H, type RecordMarkerPoint as I, type RecordMarkerSummary as J, type RecordMarkersView as K, type RecordsAuthorizationSignature as L, type RecordsClinicBatch as M, type RecordsClinicBatchClient as N, type RecordsClinicBatchItem as O, type RecordsClinicBatchResult as P, type RecordsClinicTarget as Q, type RecordClinicianNote as R, type RecordsSignatureSuggestion as S, createRecordsClinicBatchClient as T, createRecordsDepthClient as U, factCorrectionFor as V, factValueCorrection as W, inferFactValueKind as X, isFactReviewerLocked as Y, mapRecordMarkers as Z, mapSignatureSuggestions as _, type RecordClinicianNoteSection as a, type RecordsClinicSearchPage as a0, type RecordsRecentClinicsInput as a1, type RecordsAuthorizationCopy as a2, type CreateClinicRequestInput as a3, type RecordsSignatureUploadPolicy as a4, type RecordCompleteness as b, type RecordConflict as c, type RecordConflictCandidate as d, type RecordDepthView as e, type RecordDocumentContributionsView as f, type RecordEncounter as g, type RecordExamSystem as h, type RecordLabMarker as i, type RecordLabPoint as j, type RecordPhysicalExam as k, type RecordsClinic as l, type RecordsDepthClient as m, type RecordsRequestDocument as n, type RecordsTimelineMedication as o, type RecordsTimelineVaccine as p, type RecordsTimelineView as q, type RecordsTimelineVisit as r, type RecordsTimelineWeight as s, mapDocumentContributions as t, mapRecordDepth as u, mapRecordsTimeline as v, FACT_VALUE_FIELD as w, type FactFieldValue as x, type FactValueKind as y, type HttpRecordsRepositoryDeps as z };
@@ -1,8 +1,8 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.cjs';
2
- import { R as RequestFunnel } from './requestFunnel-BBjNNwc9.cjs';
3
- import { A as AuthContext } from './identity-DFVGYn1o.cjs';
4
- import { C as ClientBranding } from './branding-BCfwLj0h.cjs';
5
- import { E as EntitlementDecision } from './resolve-D4Ywz5OS.cjs';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.cjs';
2
+ import { R as RequestFunnel } from './requestFunnel.d-DWQQpjFR.cjs';
3
+ import { A as AuthContext } from './identity.d-60LeJt_s.cjs';
4
+ import { C as ClientBranding } from './branding.d-DI8S400y.cjs';
5
+ import { E as EntitlementDecision } from './resolve.d-jI8FmBj3.cjs';
6
6
 
7
7
  /** The conditional-GET endpoint (SPEC-00 §5.3). Relative; the transport prefixes the resolved base URL. */
8
8
  declare const ENTITLEMENTS_PATH = "/widget/v1/entitlements";
@@ -29,6 +29,11 @@ type EntitlementResolution = {
29
29
  * side. OPTIONAL so a hand-built resolution need not supply it; absent there is live too.
30
30
  */
31
31
  readonly livemode?: boolean;
32
+ /**
33
+ * The tenant's public texting profile (`sms_profile_public`, top level or under `render_hints`), RAW: the
34
+ * texting subpath parses it, so this module carries no parser. Absent when the body has none.
35
+ */
36
+ readonly smsProfilePublic?: unknown;
32
37
  } | {
33
38
  readonly kind: 'notModified';
34
39
  } | {
@@ -1,8 +1,8 @@
1
- import { E as EverfurError } from './EverfurError-DeBqRpQV.js';
2
- import { R as RequestFunnel } from './requestFunnel-B9fdXMi5.js';
3
- import { A as AuthContext } from './identity-Cw07BKZp.js';
4
- import { C as ClientBranding } from './branding-DJf4h12Q.js';
5
- import { E as EntitlementDecision } from './resolve-D4Ywz5OS.js';
1
+ import { E as EverfurError } from './EverfurError.d-8NHtlgzA.js';
2
+ import { R as RequestFunnel } from './requestFunnel.d-CXUMPw1K.js';
3
+ import { A as AuthContext } from './identity.d-DzTijonw.js';
4
+ import { C as ClientBranding } from './branding.d-OIGLbQeM.js';
5
+ import { E as EntitlementDecision } from './resolve.d-jI8FmBj3.js';
6
6
 
7
7
  /** The conditional-GET endpoint (SPEC-00 §5.3). Relative; the transport prefixes the resolved base URL. */
8
8
  declare const ENTITLEMENTS_PATH = "/widget/v1/entitlements";
@@ -29,6 +29,11 @@ type EntitlementResolution = {
29
29
  * side. OPTIONAL so a hand-built resolution need not supply it; absent there is live too.
30
30
  */
31
31
  readonly livemode?: boolean;
32
+ /**
33
+ * The tenant's public texting profile (`sms_profile_public`, top level or under `render_hints`), RAW: the
34
+ * texting subpath parses it, so this module carries no parser. Absent when the body has none.
35
+ */
36
+ readonly smsProfilePublic?: unknown;
32
37
  } | {
33
38
  readonly kind: 'notModified';
34
39
  } | {
@@ -0,0 +1,108 @@
1
+ /** Who a share link is for, while the server's audience switch is on (V819), in the order it offers them. */
2
+ type RecordShareAudience = 'vet' | 'groomer' | 'boarding';
3
+ /** Every audience this package can name, in the design's order. */
4
+ declare const RECORD_SHARE_AUDIENCES: readonly RecordShareAudience[];
5
+ /** Who an emailed record goes to: an audience, or `other` (the neutral email wording and no audience). */
6
+ type RecordShareRecipientKind = RecordShareAudience | 'other';
7
+ /**
8
+ * What a link minted for one audience carries (`ShareAudienceScope` on the wire): the content `sections` of the
9
+ * shared record and, for a care handoff that is not a vet, the only `entityTypes` it keeps (null: every type).
10
+ */
11
+ interface RecordShareAudienceScope {
12
+ readonly audience: RecordShareAudience;
13
+ readonly sections: readonly string[];
14
+ readonly entityTypes: readonly string[] | null;
15
+ }
16
+ /** A freshly minted share link. `shareUrl` is shown once; the list read never repeats it. */
17
+ interface RecordShareLink {
18
+ readonly shareId: string;
19
+ readonly shareUrl: string;
20
+ readonly expiresAt: string | null;
21
+ /**
22
+ * The audience the link was stamped with; null for a link minted without one (or with the switch off). Always
23
+ * set by this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
24
+ */
25
+ readonly audience?: RecordShareAudience | null;
26
+ }
27
+ /** One live share link as the list read reports it (no URL: the token was shown once, at creation). */
28
+ interface RecordShare {
29
+ readonly shareId: string;
30
+ readonly expiresAt: string | null;
31
+ readonly createdAt: string | null;
32
+ readonly viewCount: number;
33
+ readonly lastViewedAt: string | null;
34
+ /**
35
+ * The audience the link was stamped with; null for none, an unknown one, or with the switch off. Always set by
36
+ * this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
37
+ */
38
+ readonly audience?: RecordShareAudience | null;
39
+ }
40
+ /** Email the record: the recipient's address and who they are (which picks the email's wording). */
41
+ interface RecordShareEmailInput {
42
+ readonly recipientEmail: string;
43
+ readonly recipientKind: RecordShareRecipientKind;
44
+ }
45
+ /**
46
+ * The emailed link's receipt: the id to turn it off by and the date it dies. NO URL, by design: the server never
47
+ * returns the link for an email send, and this shape has nowhere to put one.
48
+ */
49
+ interface RecordShareEmailReceipt {
50
+ readonly shareId: string;
51
+ readonly expiresAt: string | null;
52
+ readonly audience: RecordShareAudience | null;
53
+ }
54
+ /** The presigned PDF download. */
55
+ interface RecordPdfLink {
56
+ readonly downloadUrl: string;
57
+ readonly expiresAt: string | null;
58
+ }
59
+ /** The longest address the email route accepts (`recipient_email: Field(max_length=254)`). */
60
+ declare const SHARE_RECIPIENT_EMAIL_MAX = 254;
61
+ /**
62
+ * The email route's own lenient address check (records_router.py `_EMAIL_RE`, which the widget route imports), so
63
+ * an address the server would refuse is refused here before a request is spent. Not an RFC 5322 parser.
64
+ */
65
+ declare function isShareRecipientEmail(value: string): boolean;
66
+ /**
67
+ * `share_audiences` off the features read, FAIL CLOSED: absent, not a list, or any entry off the documented shape
68
+ * is NO audiences, so a surface never claims a scope it cannot read. An audience this package cannot name (a
69
+ * newer server's) and a repeat are dropped; the rest keep the server's order.
70
+ */
71
+ declare function mapShareAudiences(wire: unknown): readonly RecordShareAudienceScope[];
72
+ /**
73
+ * The share link as an absolute https URL. The consumer route returns the RELATIVE form
74
+ * (`/api/v1/records/everfur_record/shared/<token>.pdf`), which is resolved against the API base URL the
75
+ * client was built for; an absolute value is kept as it is. A link that cannot be made absolute https (a
76
+ * relative path with no base URL, another scheme, a malformed value) is refused: it is never opened raw.
77
+ */
78
+ declare function resolveShareUrl(shareUrl: string, apiBaseUrl: string | undefined): string | null;
79
+ /** The mint response to a frozen link, or null when malformed (fail-closed: no link is better than a bad one). */
80
+ declare function mapRecordShareLink(wire: unknown, apiBaseUrl?: string): RecordShareLink | null;
81
+ /** The list response to frozen rows, or null when malformed. */
82
+ declare function mapRecordShareList(wire: unknown): readonly RecordShare[] | null;
83
+ /** The email send's answer to a frozen receipt, or null when malformed. Only the named keys survive: never a URL. */
84
+ declare function mapRecordShareEmailReceipt(wire: unknown): RecordShareEmailReceipt | null;
85
+ /** The PDF link response to a frozen link, or null when malformed or not https. */
86
+ declare function mapRecordPdfLink(wire: unknown): RecordPdfLink | null;
87
+
88
+ /** A photo type `uploads/initiate` accepts while photo upload is armed. */
89
+ type RecordsPhotoContentType = 'image/jpeg' | 'image/png' | 'image/heic' | 'image/heif';
90
+ /** A content type `uploads/initiate` can be asked for. */
91
+ type RecordsUploadContentType = 'application/pdf' | RecordsPhotoContentType;
92
+
93
+ /** The records features read, mapped. */
94
+ interface RecordsFeatures {
95
+ /** Every feature the server named, by its wire name (`markers`, `sharing`, ...). Empty when the read failed. */
96
+ readonly features: Readonly<Record<string, boolean>>;
97
+ /** What an upload may declare. Always starts with `application/pdf`; photo types only while armed. */
98
+ readonly uploadContentTypes: readonly RecordsUploadContentType[];
99
+ /**
100
+ * Who a share link can be for, in the server's order, each with the scope its link carries. Served only while
101
+ * the audience switch is on; empty otherwise, and when the list is malformed.
102
+ */
103
+ readonly shareAudiences: readonly RecordShareAudienceScope[];
104
+ }
105
+ /** True when an upload may be a photo. An absent list (a host-built state) is PDF only. */
106
+ declare function acceptsPhotos(types: readonly string[] | undefined): boolean;
107
+
108
+ export { type RecordShareAudience as R, SHARE_RECIPIENT_EMAIL_MAX as S, type RecordsFeatures as a, type RecordsUploadContentType as b, RECORD_SHARE_AUDIENCES as c, type RecordPdfLink as d, type RecordShare as e, type RecordShareAudienceScope as f, type RecordShareEmailInput as g, type RecordShareEmailReceipt as h, type RecordShareLink as i, type RecordShareRecipientKind as j, isShareRecipientEmail as k, mapRecordShareEmailReceipt as l, mapRecordPdfLink as m, mapRecordShareLink as n, mapRecordShareList as o, mapShareAudiences as p, type RecordsPhotoContentType as q, resolveShareUrl as r, acceptsPhotos as s };
@@ -0,0 +1,108 @@
1
+ /** Who a share link is for, while the server's audience switch is on (V819), in the order it offers them. */
2
+ type RecordShareAudience = 'vet' | 'groomer' | 'boarding';
3
+ /** Every audience this package can name, in the design's order. */
4
+ declare const RECORD_SHARE_AUDIENCES: readonly RecordShareAudience[];
5
+ /** Who an emailed record goes to: an audience, or `other` (the neutral email wording and no audience). */
6
+ type RecordShareRecipientKind = RecordShareAudience | 'other';
7
+ /**
8
+ * What a link minted for one audience carries (`ShareAudienceScope` on the wire): the content `sections` of the
9
+ * shared record and, for a care handoff that is not a vet, the only `entityTypes` it keeps (null: every type).
10
+ */
11
+ interface RecordShareAudienceScope {
12
+ readonly audience: RecordShareAudience;
13
+ readonly sections: readonly string[];
14
+ readonly entityTypes: readonly string[] | null;
15
+ }
16
+ /** A freshly minted share link. `shareUrl` is shown once; the list read never repeats it. */
17
+ interface RecordShareLink {
18
+ readonly shareId: string;
19
+ readonly shareUrl: string;
20
+ readonly expiresAt: string | null;
21
+ /**
22
+ * The audience the link was stamped with; null for a link minted without one (or with the switch off). Always
23
+ * set by this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
24
+ */
25
+ readonly audience?: RecordShareAudience | null;
26
+ }
27
+ /** One live share link as the list read reports it (no URL: the token was shown once, at creation). */
28
+ interface RecordShare {
29
+ readonly shareId: string;
30
+ readonly expiresAt: string | null;
31
+ readonly createdAt: string | null;
32
+ readonly viewCount: number;
33
+ readonly lastViewedAt: string | null;
34
+ /**
35
+ * The audience the link was stamped with; null for none, an unknown one, or with the switch off. Always set by
36
+ * this package's mapper; optional only so a value a host builds itself (a test double) still type-checks.
37
+ */
38
+ readonly audience?: RecordShareAudience | null;
39
+ }
40
+ /** Email the record: the recipient's address and who they are (which picks the email's wording). */
41
+ interface RecordShareEmailInput {
42
+ readonly recipientEmail: string;
43
+ readonly recipientKind: RecordShareRecipientKind;
44
+ }
45
+ /**
46
+ * The emailed link's receipt: the id to turn it off by and the date it dies. NO URL, by design: the server never
47
+ * returns the link for an email send, and this shape has nowhere to put one.
48
+ */
49
+ interface RecordShareEmailReceipt {
50
+ readonly shareId: string;
51
+ readonly expiresAt: string | null;
52
+ readonly audience: RecordShareAudience | null;
53
+ }
54
+ /** The presigned PDF download. */
55
+ interface RecordPdfLink {
56
+ readonly downloadUrl: string;
57
+ readonly expiresAt: string | null;
58
+ }
59
+ /** The longest address the email route accepts (`recipient_email: Field(max_length=254)`). */
60
+ declare const SHARE_RECIPIENT_EMAIL_MAX = 254;
61
+ /**
62
+ * The email route's own lenient address check (records_router.py `_EMAIL_RE`, which the widget route imports), so
63
+ * an address the server would refuse is refused here before a request is spent. Not an RFC 5322 parser.
64
+ */
65
+ declare function isShareRecipientEmail(value: string): boolean;
66
+ /**
67
+ * `share_audiences` off the features read, FAIL CLOSED: absent, not a list, or any entry off the documented shape
68
+ * is NO audiences, so a surface never claims a scope it cannot read. An audience this package cannot name (a
69
+ * newer server's) and a repeat are dropped; the rest keep the server's order.
70
+ */
71
+ declare function mapShareAudiences(wire: unknown): readonly RecordShareAudienceScope[];
72
+ /**
73
+ * The share link as an absolute https URL. The consumer route returns the RELATIVE form
74
+ * (`/api/v1/records/everfur_record/shared/<token>.pdf`), which is resolved against the API base URL the
75
+ * client was built for; an absolute value is kept as it is. A link that cannot be made absolute https (a
76
+ * relative path with no base URL, another scheme, a malformed value) is refused: it is never opened raw.
77
+ */
78
+ declare function resolveShareUrl(shareUrl: string, apiBaseUrl: string | undefined): string | null;
79
+ /** The mint response to a frozen link, or null when malformed (fail-closed: no link is better than a bad one). */
80
+ declare function mapRecordShareLink(wire: unknown, apiBaseUrl?: string): RecordShareLink | null;
81
+ /** The list response to frozen rows, or null when malformed. */
82
+ declare function mapRecordShareList(wire: unknown): readonly RecordShare[] | null;
83
+ /** The email send's answer to a frozen receipt, or null when malformed. Only the named keys survive: never a URL. */
84
+ declare function mapRecordShareEmailReceipt(wire: unknown): RecordShareEmailReceipt | null;
85
+ /** The PDF link response to a frozen link, or null when malformed or not https. */
86
+ declare function mapRecordPdfLink(wire: unknown): RecordPdfLink | null;
87
+
88
+ /** A photo type `uploads/initiate` accepts while photo upload is armed. */
89
+ type RecordsPhotoContentType = 'image/jpeg' | 'image/png' | 'image/heic' | 'image/heif';
90
+ /** A content type `uploads/initiate` can be asked for. */
91
+ type RecordsUploadContentType = 'application/pdf' | RecordsPhotoContentType;
92
+
93
+ /** The records features read, mapped. */
94
+ interface RecordsFeatures {
95
+ /** Every feature the server named, by its wire name (`markers`, `sharing`, ...). Empty when the read failed. */
96
+ readonly features: Readonly<Record<string, boolean>>;
97
+ /** What an upload may declare. Always starts with `application/pdf`; photo types only while armed. */
98
+ readonly uploadContentTypes: readonly RecordsUploadContentType[];
99
+ /**
100
+ * Who a share link can be for, in the server's order, each with the scope its link carries. Served only while
101
+ * the audience switch is on; empty otherwise, and when the list is malformed.
102
+ */
103
+ readonly shareAudiences: readonly RecordShareAudienceScope[];
104
+ }
105
+ /** True when an upload may be a photo. An absent list (a host-built state) is PDF only. */
106
+ declare function acceptsPhotos(types: readonly string[] | undefined): boolean;
107
+
108
+ export { type RecordShareAudience as R, SHARE_RECIPIENT_EMAIL_MAX as S, type RecordsFeatures as a, type RecordsUploadContentType as b, RECORD_SHARE_AUDIENCES as c, type RecordPdfLink as d, type RecordShare as e, type RecordShareAudienceScope as f, type RecordShareEmailInput as g, type RecordShareEmailReceipt as h, type RecordShareLink as i, type RecordShareRecipientKind as j, isShareRecipientEmail as k, mapRecordShareEmailReceipt as l, mapRecordPdfLink as m, mapRecordShareLink as n, mapRecordShareList as o, mapShareAudiences as p, type RecordsPhotoContentType as q, resolveShareUrl as r, acceptsPhotos as s };