@everfur/sdk 0.1.1 → 0.3.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 (187) hide show
  1. package/CHANGELOG.md +634 -0
  2. package/README.md +58 -23
  3. package/consent/package.json +8 -0
  4. package/dist/Chat-DPUD6dnc.d.cts +128 -0
  5. package/dist/Chat-DwAC2vhB.d.ts +128 -0
  6. package/dist/DepthViews-DNEM96Se.d.ts +16 -0
  7. package/dist/DepthViews-DP0R-DhB.d.cts +19 -0
  8. package/dist/DepthViews-D_3hl4xk.d.ts +19 -0
  9. package/dist/DepthViews-DbFhR4Du.d.cts +16 -0
  10. package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
  11. package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
  12. package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
  13. package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
  14. package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
  15. package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
  16. package/dist/animations/index.cjs +1 -1997
  17. package/dist/animations/index.d.cts +35 -35
  18. package/dist/animations/index.d.ts +35 -35
  19. package/dist/animations/index.js +1 -1972
  20. package/dist/attachments-5NeobOCd.d.ts +256 -0
  21. package/dist/attachments-Bw3iMQgu.d.ts +146 -0
  22. package/dist/attachments-CQgFrEQ7.d.cts +146 -0
  23. package/dist/attachments-D8T5re7e.d.cts +256 -0
  24. package/dist/casesRepository-ClLv6qMl.d.ts +188 -0
  25. package/dist/casesRepository-DHwtGRYY.d.cts +188 -0
  26. package/dist/chat/index.cjs +1 -1170
  27. package/dist/chat/index.d.cts +31 -53
  28. package/dist/chat/index.d.ts +31 -53
  29. package/dist/chat/index.js +1 -1167
  30. package/dist/client/index.cjs +9 -2315
  31. package/dist/client/index.d.cts +77 -15
  32. package/dist/client/index.d.ts +77 -15
  33. package/dist/client/index.js +9 -2215
  34. package/dist/{config-CiJ0PVBB.d.ts → config-CzTZGlfF.d.cts} +63 -25
  35. package/dist/{config-BSjBdxrZ.d.cts → config-DW60uRb9.d.ts} +63 -25
  36. package/dist/consent/index.cjs +1 -0
  37. package/dist/consent/index.d.cts +33 -0
  38. package/dist/consent/index.d.ts +33 -0
  39. package/dist/consent/index.js +1 -0
  40. package/dist/context-DXhqHlPU.d.ts +159 -0
  41. package/dist/context-XvTzq1tE.d.cts +159 -0
  42. package/dist/copy-Mjoo91aS.d.ts +198 -0
  43. package/dist/copy-bKDNigLb.d.cts +198 -0
  44. package/dist/core/index.cjs +13 -3178
  45. package/dist/core/index.d.cts +58 -12
  46. package/dist/core/index.d.ts +58 -12
  47. package/dist/core/index.js +13 -3166
  48. package/dist/depth-CErXCU8J.d.cts +502 -0
  49. package/dist/depth-DjDcJ6kH.d.ts +502 -0
  50. package/dist/entitlementRepository-DKdXFgTo.d.cts +698 -0
  51. package/dist/entitlementRepository-DSbzuyAW.d.ts +698 -0
  52. package/dist/{identity-DK9zORrG.d.ts → identity-BMx2SUOM.d.ts} +19 -6
  53. package/dist/{identity-Brl-lDd6.d.cts → identity-DI4eVx9S.d.cts} +19 -6
  54. package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
  55. package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
  56. package/dist/index.cjs +12 -4494
  57. package/dist/index.d.cts +29 -121
  58. package/dist/index.d.ts +29 -121
  59. package/dist/index.js +12 -4470
  60. package/dist/models-B-Uh2LTf.d.ts +214 -0
  61. package/dist/models-D2EUxPZY.d.cts +214 -0
  62. package/dist/notifications/index.cjs +2 -0
  63. package/dist/notifications/index.d.cts +17 -0
  64. package/dist/notifications/index.d.ts +17 -0
  65. package/dist/notifications/index.js +2 -0
  66. package/dist/pets-CtQdRpWo.d.ts +92 -0
  67. package/dist/pets-aB8q0JyX.d.cts +92 -0
  68. package/dist/photo/index.cjs +1 -2189
  69. package/dist/photo/index.d.cts +6 -6
  70. package/dist/photo/index.d.ts +6 -6
  71. package/dist/photo/index.js +1 -2186
  72. package/dist/ports-BN6RHF9W.d.cts +48 -0
  73. package/dist/ports-BN6RHF9W.d.ts +48 -0
  74. package/dist/ports-DEBzEhbp.d.cts +386 -0
  75. package/dist/ports-DMolTRzU.d.ts +386 -0
  76. package/dist/profile-CSs1wlXT.d.cts +93 -0
  77. package/dist/profile-CSs1wlXT.d.ts +93 -0
  78. package/dist/records/depth/index.cjs +2 -0
  79. package/dist/records/depth/index.d.cts +13 -0
  80. package/dist/records/depth/index.d.ts +13 -0
  81. package/dist/records/depth/index.js +2 -0
  82. package/dist/records/index.cjs +3 -2839
  83. package/dist/records/index.d.cts +137 -203
  84. package/dist/records/index.d.ts +137 -203
  85. package/dist/records/index.js +3 -2833
  86. package/dist/requestFunnel-CjW7uDuA.d.ts +87 -0
  87. package/dist/requestFunnel-L-BQfi0z.d.cts +87 -0
  88. package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
  89. package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
  90. package/dist/{runtime-Bvr8yqXm.d.cts → runtime-B8s-_hv8.d.cts} +121 -59
  91. package/dist/{runtime-BIYzf9cK.d.ts → runtime-BR9ysG0J.d.ts} +121 -59
  92. package/dist/server/events/index.cjs +2 -0
  93. package/dist/server/events/index.d.cts +550 -0
  94. package/dist/server/events/index.d.ts +550 -0
  95. package/dist/server/events/index.js +2 -0
  96. package/dist/server/index.cjs +2 -533
  97. package/dist/server/index.d.cts +73 -18
  98. package/dist/server/index.d.ts +73 -18
  99. package/dist/server/index.js +2 -530
  100. package/dist/species-BXAIMh7I.d.cts +9 -0
  101. package/dist/species-BXAIMh7I.d.ts +9 -0
  102. package/dist/televet/index.cjs +1 -0
  103. package/dist/televet/index.d.cts +60 -0
  104. package/dist/televet/index.d.ts +60 -0
  105. package/dist/televet/index.js +1 -0
  106. package/dist/testing/index.cjs +5 -823
  107. package/dist/testing/index.d.cts +17 -3
  108. package/dist/testing/index.d.ts +17 -3
  109. package/dist/testing/index.js +5 -820
  110. package/dist/testing/rn/index.cjs +1 -449
  111. package/dist/testing/rn/index.d.cts +17 -29
  112. package/dist/testing/rn/index.d.ts +17 -29
  113. package/dist/testing/rn/index.js +1 -444
  114. package/dist/testing/web/index.cjs +1 -0
  115. package/dist/testing/web/index.d.cts +131 -0
  116. package/dist/testing/web/index.d.ts +131 -0
  117. package/dist/testing/web/index.js +1 -0
  118. package/dist/timelineRows-CaohZzXS.d.cts +19 -0
  119. package/dist/timelineRows-DZed6dAM.d.ts +19 -0
  120. package/dist/typeStyle-0TydiZ1w.d.cts +19 -0
  121. package/dist/typeStyle-CWMsoe6b.d.ts +19 -0
  122. package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
  123. package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
  124. package/dist/useRecordsDepth-BHBzJ76R.d.cts +237 -0
  125. package/dist/useRecordsDepth-BU-OhzH6.d.ts +237 -0
  126. package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
  127. package/dist/useVetVisit-CjmMa896.d.ts +187 -0
  128. package/dist/video/index.cjs +1 -1941
  129. package/dist/video/index.d.cts +4 -4
  130. package/dist/video/index.d.ts +4 -4
  131. package/dist/video/index.js +1 -1938
  132. package/dist/view-C3qPIXGX.d.cts +310 -0
  133. package/dist/view-DtSPYpKa.d.ts +310 -0
  134. package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
  135. package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
  136. package/dist/web/consent/index.cjs +1 -0
  137. package/dist/web/consent/index.d.cts +34 -0
  138. package/dist/web/consent/index.d.ts +34 -0
  139. package/dist/web/consent/index.js +1 -0
  140. package/dist/web/index.cjs +14 -0
  141. package/dist/web/index.d.cts +217 -0
  142. package/dist/web/index.d.ts +217 -0
  143. package/dist/web/index.js +14 -0
  144. package/dist/web/notifications/index.cjs +2 -0
  145. package/dist/web/notifications/index.d.cts +213 -0
  146. package/dist/web/notifications/index.d.ts +213 -0
  147. package/dist/web/notifications/index.js +2 -0
  148. package/dist/web/records/depth/index.cjs +2 -0
  149. package/dist/web/records/depth/index.d.cts +12 -0
  150. package/dist/web/records/depth/index.d.ts +12 -0
  151. package/dist/web/records/depth/index.js +2 -0
  152. package/dist/web/records/index.cjs +4 -0
  153. package/dist/web/records/index.d.cts +194 -0
  154. package/dist/web/records/index.d.ts +194 -0
  155. package/dist/web/records/index.js +4 -0
  156. package/dist/web/televet/index.cjs +1 -0
  157. package/dist/web/televet/index.d.cts +50 -0
  158. package/dist/web/televet/index.d.ts +50 -0
  159. package/dist/web/televet/index.js +1 -0
  160. package/notifications/package.json +8 -0
  161. package/package.json +197 -9
  162. package/records/depth/package.json +8 -0
  163. package/server/events/device-blocked.cjs +15 -0
  164. package/server/events/package.json +9 -0
  165. package/televet/package.json +8 -0
  166. package/testing/web/native-blocked.cjs +12 -0
  167. package/testing/web/package.json +8 -0
  168. package/web/consent/native-blocked.cjs +12 -0
  169. package/web/consent/package.json +8 -0
  170. package/web/native-blocked.cjs +12 -0
  171. package/web/notifications/native-blocked.cjs +12 -0
  172. package/web/notifications/package.json +8 -0
  173. package/web/package.json +8 -0
  174. package/web/records/depth/native-blocked.cjs +12 -0
  175. package/web/records/depth/package.json +8 -0
  176. package/web/records/native-blocked.cjs +12 -0
  177. package/web/records/package.json +8 -0
  178. package/web/televet/native-blocked.cjs +12 -0
  179. package/web/televet/package.json +8 -0
  180. package/dist/ChatController-CKdBvPj2.d.ts +0 -146
  181. package/dist/ChatController-CpUMvvZf.d.cts +0 -146
  182. package/dist/FilePort-BabWrv7I.d.cts +0 -22
  183. package/dist/FilePort-BabWrv7I.d.ts +0 -22
  184. package/dist/petsRepository-BEGb97M9.d.cts +0 -326
  185. package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
  186. package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
  187. package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
@@ -0,0 +1 @@
1
+ 'use strict';var react=require('react'),jsxRuntime=require('react/jsx-runtime');var or=Object.defineProperty;var n=(e,r)=>or(e,"name",{value:r,configurable:true});var k=Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),Y=Object.freeze({transcript_exposure:Object.freeze({title:"Conversation sharing",body:n(e=>`Let ${e} read the conversations you have with Everfur.`,"body")}),partner_context:Object.freeze({title:"Pet details",body:n(e=>`Let Everfur use the pet details ${e} already holds as background in your conversations.`,"body")})});function K(e,r){if(e.status==="signed_out")return {kind:"signedOut"};let t=e.scopes.find(o=>o.scope===r);return t===void 0?e.error!==null?{kind:"failed",error:e.error}:{kind:"loading"}:t.loaded?{kind:"row",scope:t.scope,granted:t.granted,hasDecision:t.hasDecision,saving:t.saving,error:t.error}:t.error!==null?{kind:"failed",error:t.error}:{kind:"loading"}}n(K,"consentRowView");var W=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(W.map(e=>e.wireCode));var ar=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),ye=Object.freeze(W.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:ar[e.wireCode]}))),ir=new Map(ye.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),sr=Object.freeze(["http_envelope",...[...new Set(ye.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function M(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...sr]){let a=ir.get(o+t);if(a)return a}}n(M,"contractErrorFor");function lr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(lr,"contractDocUrl");function me(e){return null}n(me,"publishedDocUrl");var ur=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function ve(e){return ur[e]}n(ve,"categoryFor");function Ee(e){let r=M(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}n(Ee,"fromWire");var dr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function $(e){return dr.has(e)}n($,"isAutoRetryable");var cr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ge(e){return $(e)||cr.has(e)}n(ge,"isRetryableCode");var pr=500,G=8e3,be=4;function he(e,r=Math.random){let t=Math.max(0,e),o=Math.min(pr*2**t,G);return Math.floor(r()*o)}n(he,"backoffDelayMs");var fr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function yr(e){return fr[e]}n(yr,"userFacingError");function _e(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n(_e,"defineHidden");var mr=/^[a-z][a-z0-9_]{0,63}$/;function T(e,r){let t=M(r?.wireCode,r?.wireEnvelope),o={code:e,category:ve(e),retryable:r?.retryable??ge(e),displayMessage:yr(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&mr.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&_e(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&_e(o,"raw",r.raw),Object.freeze(o)}n(T,"makeEverfurError");function Q(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(Q,"ok");function f(e){return Object.freeze({ok:false,error:e})}n(f,"err");var U=class U extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,U.prototype);}};n(U,"EverfurConfigError");var z=U;function Ce(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}n(Ce,"errorFrame");function gr(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(gr,"authHeaders");function N(e,r){return {...e,headers:{...br(e.headers),...gr(r)}}}n(N,"withAuthHeaders");function br(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let a=t.toLowerCase();a==="authorization"||a==="x-everfur-partner-key"||(r[t]=o);}return r}n(br,"stripAuthHeaders");async function Re(e,r){if(r.mode==="anonymous")return r.transport.request(N(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return f(X())}let o=await r.transport.request(N(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let a;try{a=await r.identity.currentToken({forceRefresh:!0});}catch{return f(X())}let s=await r.transport.request(N(e,{mode:"personalized",token:a,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?f(X(s.error.httpStatus)):s}n(Re,"authedSend");function X(e){return T("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(X,"authRejectedError");function Se(e){return T("internalError",{retryable:true,wireMessage:hr(e)})}n(Se,"networkError");function hr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(hr,"describeCause");var _r=3e4,Cr=G*2,Rr="idempotency-key",Sr=new Set(["POST","PUT","PATCH","DELETE"]),Tr=Object.freeze({onEvent(){}}),wr=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function we(e){let r=e.observer??Tr,t=e.timers??wr,o=e.rng??Math.random,a=e.sleep??((m,d)=>Ur(m,t,d)),s=e.maxAttempts??be,p=e.unaryTimeoutMs??_r,i=e.newIdempotencyKey??Fr(),l=n(m=>{try{r.onEvent(m);}catch{}},"emit");async function u(m,d,y){let _=y?.maxAttempts,v=Math.max(1,_??s),R=y?.idempotent??Sr.has(d.method)?i():null,c=xr(d,R),g=0;for(;;){let b=n(V=>Object.freeze({call:m,method:d.method,path:d.path,attempt:g,...R?{idempotencyKey:R}:{},...V}),"stamp");l(b({phase:"attempt"}));let x=jr(p,t),P=Mr(x.signal,d.signal),F;try{F=await Re({...c,signal:P.signal},e.auth);}catch(V){F=f(Se(V));}finally{P.dispose(),x.cancel();}if(F.ok)return l(b({phase:"settled",ok:true,reason:"ok"})),F;let w=F.error,j=Or(w,g,{maxAttempts:v,rng:o,now:t.now(),aborted:d.signal?.aborted===true,..._!==void 0?{perCallMaxAttempts:_}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),H={ok:false,code:w.code,reason:j.reason,...w.httpStatus!==void 0?{httpStatus:w.httpStatus}:{},...w.requestId!==void 0?{requestId:w.requestId}:{}};if(!j.retry)return l(b({phase:"settled",...H})),f(w);if(l(b({phase:"retry",...H,delayMs:j.delayMs})),await a(j.delayMs,d.signal),d.signal?.aborted===true)return l(b({phase:"settled",...H,reason:"aborted"})),f(w);g+=1;}}n(u,"send");async function E(m){return N(m,await Dr(e.auth))}n(E,"authorize");async function*S(m,d,y){l(Object.freeze({call:m,phase:"stream.open",method:d.method,path:d.path,attempt:0}));try{yield*e.auth.transport.stream(d,y);}catch{yield Ce({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(S,"stream"),Object.freeze({send:u,authorize:E,stream:S})}n(we,"createRequestFunnel");function xr(e,r){let t={};for(let[o,a]of Object.entries(e.headers??{}))o.toLowerCase()!==Rr&&(t[o]=a);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(xr,"assembleHeaders");function Fr(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Fr,"defaultIdempotencyKeyFactory");var kr=10;function Or(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=Ar(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!$(e.code))return {retry:false,reason:"terminal-code"};let a=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let p=n(()=>{if(t.policy===void 0)return null;let u;try{u=t.policy.maxAttempts(e.code);}catch{return null}return typeof u!="number"||!Number.isFinite(u)?null:Math.max(1,Math.min(kr,Math.floor(u)))},"policyCeiling"),i=t.perCallMaxAttempts??p()??t.maxAttempts;if(r+1>=i)return {retry:false,reason:"attempts-exhausted"};let l=Ir(e,t.now);return l!==null?l>Cr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:a,delayMs:l}:{retry:true,reason:a,delayMs:he(r,t.rng)}}n(Or,"decideRetry");function Ar(e){let r=e.code==="unknown"?Ee(Nr(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(Ar,"throttleKind");function Ir(e,r){let t=Pr(e.raw);if(t===null)return null;let o=t-r;return o>0?o:0}n(Ir,"retryOverrideMs");function Pr(e){for(let r of xe(e)){let t=r.resets_at,o=zr(t);if(o!==null)return o}return null}n(Pr,"findResetsAt");function xe(e){if(!Te(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];Te(o)&&r.push(o);}return r}n(xe,"candidateScopes");function zr(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(zr,"parseInstantMs");function Nr(e){for(let r of xe(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(Nr,"rawWireCode");function Te(e){return typeof e=="object"&&e!==null}n(Te,"isRecord");async function Dr(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Dr,"resolveDeviceAuth");function jr(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(jr,"boundedSignal");function Mr(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let a=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",a,{once:true}),r.addEventListener("abort",a,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",a),r.removeEventListener("abort",a);},"dispose")}}n(Mr,"mergeSignals");function Ur(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let a=r.setTimeout(()=>{t?.removeEventListener("abort",s),o();},e),s=n(()=>{r.clearTimeout(a),o();},"onAbort");t?.addEventListener("abort",s,{once:true});})}n(Ur,"delayAbortable");var Fe="/widget/v1/consent",D=Object.freeze(["transcript_exposure","partner_context"]),ke="records_content",Z=64,Lr=new Set(D);function L(e){return typeof e=="string"&&Lr.has(e)}n(L,"isEverfurConsentScope");function O(e){return T("validationFailed",{retryable:false,wireMessage:e})}n(O,"invalid");function Pe(e){return L(e)?null:O(e===ke?`'${ke}' is not recorded here: the records release a member grants and revokes is PUT and DELETE /widget/v1/records/pets/{pet_ref}/consent, which the records surface wires and which also kills the pet's live share links on a revoke. A row on the scoped ledger would not gate any read.`:`scope must be one of ${D.join(", ")}`)}n(Pe,"validateScope");function Br(e){if(typeof e!="object"||e===null)return O("write needs a decision object");let{scope:r,granted:t,consentVersion:o}=e,a=Pe(r);return a!==null?a:typeof t!="boolean"?O("granted must be true to grant or false to withdraw"):o!==void 0&&(typeof o!="string"||o.length===0||o.length>Z)?O(`consentVersion must be 1..${Z} characters`):null}n(Br,"validateDecision");var J=n(e=>typeof e=="string"&&e.length>0?e:null,"str");function Oe(e,r){if(typeof e!="object"||e===null)return null;let t=e;return typeof t.granted!="boolean"||typeof t.has_decision!="boolean"?null:Object.freeze({scope:r,granted:t.granted,hasDecision:t.has_decision,consentVersion:J(t.consent_version),actor:J(t.actor),recordedAt:J(t.recorded_at)})}n(Oe,"verdictFromWire");function Ae(e){return T("internalError",{retryable:false,httpStatus:502,wireMessage:`${e}: the response carried no granted/has_decision pair`})}n(Ae,"malformed");function Ie(e){return O(`the Everfur runtime is disposed; ${e} was called after unmount`)}n(Ie,"disposed");function ee(e){let r=n(()=>{let{services:t}=e.registry;return ze({auth:t.authFor(null),...t.errorPolicy?{errorPolicy:t.errorPolicy}:{}})},"over");return {read:n((t,o)=>e.isDisposed?Promise.resolve(f(Ie("read"))):r().read(t,o),"read"),write:n((t,o)=>e.isDisposed?Promise.resolve(f(Ie("write"))):r().write(t,o),"write")}}n(ee,"createConsentRepository");function ze(e){let r=e.funnel??we({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=n((o,a)=>a?{...o,signal:a}:o,"withSignal");return {async read(o,a){let s=Pe(o);if(s!==null)return f(s);let p=await r.send("consent.read",t({method:"GET",path:Fe,query:{scope:o}},a?.signal));if(!p.ok)return f(p.error);let i=Oe(p.value,o);return i===null?f(Ae("consent.read")):Q(i)},async write(o,a){let s=Br(o);if(s!==null)return f(s);let p={scope:o.scope,granted:o.granted};o.consentVersion!==void 0&&(p.consent_version=o.consentVersion);let i=await r.send("consent.write",t({method:"PUT",path:Fe,body:p},a?.signal));if(!i.ok)return f(i.error);let l=Oe(i.value,o.scope);return l===null?f(Ae("consent.write")):Q(l)}}}n(ze,"createConsentRepositoryOver");var Ne=Symbol.for("@everfur/sdk#EverfurContext@v1"),De=globalThis,je=De[Ne]??(De[Ne]=react.createContext(null));je.displayName??="EverfurContext";function re(){let e=react.useContext(je);if(e===null)throw new z("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(re,"useEverfurContext");function ne(e,r){return Object.freeze({scope:e,granted:false,hasDecision:false,consentVersion:null,recordedAt:null,loaded:false,saving:false,error:r})}n(ne,"blank");function Ue(e){return Object.freeze({scope:e.scope,granted:e.granted,hasDecision:e.hasDecision,consentVersion:e.consentVersion,recordedAt:e.recordedAt,loaded:true,saving:false,error:null})}n(Ue,"settled");function Kr(){return T("sessionRequired",{retryable:false,wireMessage:"a consent decision is authored by the member; sign a user in on the provider first"})}n(Kr,"noMember");function Le(){let{runtime:e}=re();return react.useMemo(()=>ee(e),[e])}n(Le,"useEverfurConsentRepository");function ae(e){let{userRef:r}=re(),t=Le(),o=(e?.scopes??[]).filter(L).join(","),a=react.useMemo(()=>{let y=o.length===0?[]:o.split(",");return y.length===0?D:Object.freeze(y)},[o]),[s,p]=react.useState(r===null?"signed_out":"loading"),[i,l]=react.useState([]),[u,E]=react.useState(null),S=react.useRef(0),m=react.useCallback(async()=>{if(r===null){S.current+=1,p("signed_out"),l([]),E(null);return}let y=S.current+=1;p("loading"),E(null);let _=await Promise.all(a.map(c=>t.read(c)));if(y!==S.current)return;let v=_.map((c,g)=>{let b=a[g];return c.ok?Ue(c.value):ne(b,c.error)}),C=_.find(c=>!c.ok),R=_.every(c=>!c.ok);l(Object.freeze(v)),p(R?"failed":"ready"),E(R&&C!==void 0&&!C.ok?C.error:null);},[t,a,r]);react.useEffect(()=>{m();},[m]);let d=react.useCallback(async(y,_)=>{if(r===null)return f(Kr());let v=S.current,C=null;l(c=>{let g=c.findIndex(F=>F.scope===y),b=g===-1?ne(y,null):c[g];C=b;let x=Object.freeze({...b,granted:_,hasDecision:true,saving:true,error:null});if(g===-1)return Object.freeze([...c,x]);let P=[...c];return P[g]=x,Object.freeze(P)});let R=await t.write({scope:y,granted:_});return v!==S.current||l(c=>{let g=c.findIndex(x=>x.scope===y);if(g===-1)return c;let b=[...c];return b[g]=R.ok?Ue(R.value):Object.freeze({...C??ne(y,null),saving:false,error:R.error}),Object.freeze(b)}),R},[t,r]);return react.useMemo(()=>({status:s,scopes:i,error:u,setConsent:d,refresh:m}),[s,i,u,d,m])}n(ae,"useEverfurConsent");function Be(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(Be,"reportHostFailure");function Wr(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(Wr,"isThenable");function $r(e,...r){if(typeof e=="function")try{let t=e(...r);return Wr(t)&&Promise.resolve(t).then(void 0,Be),t}catch(t){Be(t);return}}n($r,"callHost");var qe=new WeakMap;function Gr(e){if(typeof e!="function")return;let r=qe.get(e);if(r!==void 0)return r;let t=n((...o)=>{$r(e,...o);},"guarded");return qe.set(e,t),t}n(Gr,"guardHost");function He(e,r){let t=null;for(let o of r){let a=e[o];typeof a=="function"&&(t??={...e},t[o]=Gr(a));}return t??e}n(He,"guardHostProps");var se=class se extends react.Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(t,o){return Object.is(t.resetKey,o.key)?null:{failed:false,key:t.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};n(se,"HostRenderBoundary");var ie=se;function Xr({render:e}){return e()}n(Xr,"RenderHost");function Ye({render:e,fallback:r,resetKey:t}){return react.createElement(ie,{fallback:r,resetKey:t,children:react.createElement(Xr,{render:e})})}n(Ye,"HostRender");function de(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))de(e[r]);}return e}n(de,"deepFreeze");var Jr=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),We={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},$e={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Ke={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Zr={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},et={regular:"400",medium:"500",bold:"700"},rt={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},tt=0,B="System",q="monospace",nt=["content","heading","control","compact","badge"];function ot(e){let r={};for(let t of nt)r[t]=e;return r}n(ot,"authoredTierSizes");function Ge(){return {family:B,mono:q,fontUrl:null,families:{regular:B,medium:B,bold:B,mono:q,monoMedium:q,monoBold:q},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Ke,tierSizes:ot(Ke),lineHeight:Zr,weight:et,letterSpacing:rt,scale:1,maxScale:tt,scaleCaps:Jr}}n(Ge,"baseType");var Qe={},le=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function ue(e){return `cubic-bezier(${e.join(", ")})`}n(ue,"cssCubicBezier");var Xe={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ue(le.standard),emphasized:ue(le.emphasized),exit:ue(le.exit)},reducedMotion:false},at={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FDFBF8",surfaceSubtle:"#EFE9E3",background:"#FFFFFF",borderRingCream:"#D8D2C8",chatGround:"#FFFFFF",composerFill:"#FDFBF8",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#111111",secondary:"#0E462E",muted:"#6E6660",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#B91C1C",errorRed:"#FF1B00",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(185,28,28,0.12)",badgeBgNeutral:"rgba(110,102,96,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Je=de({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:at,space:We,radius:$e,type:Ge(),motion:Xe,slots:Qe}),it={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A938C",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};de({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:it,space:We,radius:$e,type:Ge(),motion:Xe,slots:Qe});var Ze=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),er=globalThis,ce=er[Ze]??(er[Ze]=react.createContext(Je));ce.displayName??="EverfurThemeContext";function pe(){return react.useContext(ce)}n(pe,"useEverfurTheme");var rr=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var tr='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',ut="System";function dt(e){let r=e.trim();return r.length===0||r===ut?tr:`${nr(r)}, ${tr}`}n(dt,"cssFontFamily");function ct(e){let r=e.trim();return r.length===0||r==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${nr(r)}, ui-monospace, Menlo, Consolas, monospace`}n(ct,"cssMonoFamily");function nr(e){return `"${e.replace(/[\\"]/g,"\\$&")}"`}n(nr,"quote");function A(e,r){let t=e.type,o=t.families[r];return {fontFamily:r==="mono"||r==="monoMedium"||r==="monoBold"?ct(o):dt(o),fontWeight:t.namedFaces[r]?t.weight.regular:t.weight[rr[r]]}}n(A,"faceCss");function mt(e){let{scope:r,onChange:t,renderNotice:o,style:a,className:s}=He(e,["onChange"]),p=pe(),i=react.useMemo(()=>vt(p),[p]),l=ae({scopes:[r]}),u=K(l,r),E=Y[r],[S,m]=react.useState(null),d=react.useCallback(async v=>{m(v);let C=await l.setConsent(r,v);C.ok&&(m(null),t?.(C.value.granted));},[l,t,r]),y=n((v,C)=>jsxRuntime.jsxs("div",{style:i.notice,children:[jsxRuntime.jsx(Ye,{resetKey:v,render:()=>o?o(v):jsxRuntime.jsx("p",{style:i.noticeText,children:v.displayMessage}),fallback:jsxRuntime.jsx("p",{style:i.noticeText,children:v.displayMessage})}),jsxRuntime.jsx("button",{type:"button",onClick:C,style:i.retry,children:k.retry})]}),"notice");if(u.kind==="signedOut")return jsxRuntime.jsxs("div",{className:s,style:{...i.container,...a},children:[jsxRuntime.jsx("p",{style:i.title,children:E.title}),jsxRuntime.jsx("p",{style:i.body,children:k.signedOut})]});if(u.kind==="loading")return jsxRuntime.jsx("div",{className:s,style:{...i.container,...a},role:"status","aria-busy":"true","aria-label":k.loading,children:jsxRuntime.jsx("p",{style:i.title,children:E.title})});if(u.kind==="failed")return jsxRuntime.jsxs("div",{className:s,style:{...i.container,...a},children:[jsxRuntime.jsx("p",{style:i.title,children:E.title}),y(u.error,()=>{l.refresh();})]});let _=`${E.title}. ${E.body(p.meta.displayName)}`;return jsxRuntime.jsxs("div",{className:s,style:{...i.container,...a},children:[jsxRuntime.jsxs("div",{style:{...i.row,...u.granted?i.rowChecked:null},children:[jsxRuntime.jsx("input",{type:"checkbox",checked:u.granted,disabled:u.saving,"aria-label":_,"aria-busy":u.saving?"true":void 0,onChange:v=>{d(v.currentTarget.checked);},style:i.box}),jsxRuntime.jsxs("div",{style:i.copy,children:[jsxRuntime.jsx("p",{style:i.title,children:E.title}),jsxRuntime.jsx("p",{style:i.body,children:E.body(p.meta.displayName)}),jsxRuntime.jsx("p",{style:i.footnote,children:k.changeable})]})]}),u.error===null?null:y(u.error,()=>{d(S??!u.granted);})]})}n(mt,"EverfurConsentToggle");function vt(e){let{color:r,radius:t,space:o,type:a}=e,s=`${Math.round(a.size.caption*a.lineHeight.snug)}px`;return {container:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:o.sm,padding:`${o.md}px ${o.lg}px`},row:{boxSizing:"border-box",display:"flex",alignItems:"flex-start",gap:o.md,borderRadius:t.md,border:`1px solid ${r.brandBorder}`,backgroundColor:r.surface,padding:o.lg},rowChecked:{border:`1px solid ${r.brand}`,backgroundColor:r.brandSoft},box:{width:24,height:24,minWidth:24,minHeight:24,margin:0,accentColor:r.brand,cursor:"pointer"},copy:{display:"flex",flexDirection:"column",gap:o.xs},title:{margin:0,...A(e,"bold"),fontSize:a.size.body,lineHeight:`${Math.round(a.size.body*a.lineHeight.snug)}px`,color:r.text.primary},body:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.secondary},footnote:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.muted},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:o.xs,paddingTop:o.xs},noticeText:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.errorRed},retry:{minHeight:44,padding:`0 ${o.sm}px`,border:"none",background:"none",cursor:"pointer",...A(e,"bold"),fontSize:a.size.caption,color:r.linkInk}}}n(vt,"makeStyles");exports.CONSENT_COPY=k;exports.CONSENT_SCOPE_COPY=Y;exports.CONSENT_VERSION_MAX=Z;exports.EVERFUR_CONSENT_SCOPES=D;exports.EverfurConsentToggle=mt;exports.consentRowView=K;exports.createConsentRepository=ee;exports.createConsentRepositoryOver=ze;exports.isEverfurConsentScope=L;exports.useEverfurConsent=ae;exports.useEverfurConsentRepository=Le;
@@ -0,0 +1,34 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ import { E as EverfurConsentScope } from '../../copy-bKDNigLb.cjs';
3
+ 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-bKDNigLb.cjs';
4
+ import { E as EverfurError } from '../../EverfurResult-DN9pL2Ab.cjs';
5
+ export { a as EverfurErrorCategory, b as EverfurErrorCode, c as EverfurResult } from '../../EverfurResult-DN9pL2Ab.cjs';
6
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity-DI4eVx9S.cjs';
7
+ 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-CzTZGlfF.cjs';
8
+ export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids-B2GAAifq.cjs';
9
+ export { E as ErrorPolicyPort } from '../../ErrorPolicyPort-CNf4uQZP.cjs';
10
+ import '../../requestFunnel-L-BQfi0z.cjs';
11
+
12
+ interface EverfurConsentToggleProps {
13
+ /** Which act this row is. One row is one act; two acts are two rows, never one switch. */
14
+ readonly scope: EverfurConsentScope;
15
+ /**
16
+ * Called with the settled answer after a decision lands, so a host can react (close a dialog, log its own
17
+ * analytics). A throw from it is swallowed by the SDK's host-callback guard and never reaches your tree.
18
+ */
19
+ readonly onChange?: (granted: boolean) => void;
20
+ /**
21
+ * Your own wording for a refusal, in place of the SDK's line. It runs inside the SDK's error boundary; a
22
+ * throw falls back to the SDK's own text. The RETRY control is always the SDK's, so replacing the wording
23
+ * can never remove the way out.
24
+ */
25
+ readonly renderNotice?: (error: EverfurError) => ReactNode;
26
+ /** Layout only (spacing / surface). */
27
+ readonly style?: CSSProperties;
28
+ /** A class the host may hang layout rules on; the SDK sets no classes of its own. */
29
+ readonly className?: string;
30
+ }
31
+ /** One consent act the member can read and change, on the web band. */
32
+ declare function EverfurConsentToggle(props: EverfurConsentToggleProps): ReactNode;
33
+
34
+ export { EverfurConsentScope, EverfurConsentToggle, type EverfurConsentToggleProps, EverfurError };
@@ -0,0 +1,34 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ import { E as EverfurConsentScope } from '../../copy-Mjoo91aS.js';
3
+ 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-Mjoo91aS.js';
4
+ import { E as EverfurError } from '../../EverfurResult-DN9pL2Ab.js';
5
+ export { a as EverfurErrorCategory, b as EverfurErrorCode, c as EverfurResult } from '../../EverfurResult-DN9pL2Ab.js';
6
+ export { A as AuthContext, I as IdentityProvider, M as MintedToken, T as TokenProvider } from '../../identity-BMx2SUOM.js';
7
+ 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-DW60uRb9.js';
8
+ export { B as Brand, C as ConversationId, P as PetRef, R as RecordsRequestId, U as UserRef, _ as __brand } from '../../ids-B2GAAifq.js';
9
+ export { E as ErrorPolicyPort } from '../../ErrorPolicyPort-CwbfmxzJ.js';
10
+ import '../../requestFunnel-CjW7uDuA.js';
11
+
12
+ interface EverfurConsentToggleProps {
13
+ /** Which act this row is. One row is one act; two acts are two rows, never one switch. */
14
+ readonly scope: EverfurConsentScope;
15
+ /**
16
+ * Called with the settled answer after a decision lands, so a host can react (close a dialog, log its own
17
+ * analytics). A throw from it is swallowed by the SDK's host-callback guard and never reaches your tree.
18
+ */
19
+ readonly onChange?: (granted: boolean) => void;
20
+ /**
21
+ * Your own wording for a refusal, in place of the SDK's line. It runs inside the SDK's error boundary; a
22
+ * throw falls back to the SDK's own text. The RETRY control is always the SDK's, so replacing the wording
23
+ * can never remove the way out.
24
+ */
25
+ readonly renderNotice?: (error: EverfurError) => ReactNode;
26
+ /** Layout only (spacing / surface). */
27
+ readonly style?: CSSProperties;
28
+ /** A class the host may hang layout rules on; the SDK sets no classes of its own. */
29
+ readonly className?: string;
30
+ }
31
+ /** One consent act the member can read and change, on the web band. */
32
+ declare function EverfurConsentToggle(props: EverfurConsentToggleProps): ReactNode;
33
+
34
+ export { EverfurConsentScope, EverfurConsentToggle, type EverfurConsentToggleProps, EverfurError };
@@ -0,0 +1 @@
1
+ import {createContext,useMemo,useState,useRef,useCallback,useEffect,useContext,Component,createElement}from'react';import {jsxs,jsx}from'react/jsx-runtime';var or=Object.defineProperty;var n=(e,r)=>or(e,"name",{value:r,configurable:true});var k=Object.freeze({loading:"Loading",retry:"Try again",signedOut:"Sign in required",changeable:"You can change this at any time.",saving:"Saving"}),Y=Object.freeze({transcript_exposure:Object.freeze({title:"Conversation sharing",body:n(e=>`Let ${e} read the conversations you have with Everfur.`,"body")}),partner_context:Object.freeze({title:"Pet details",body:n(e=>`Let Everfur use the pet details ${e} already holds as background in your conversations.`,"body")})});function K(e,r){if(e.status==="signed_out")return {kind:"signedOut"};let t=e.scopes.find(o=>o.scope===r);return t===void 0?e.error!==null?{kind:"failed",error:e.error}:{kind:"loading"}:t.loaded?{kind:"row",scope:t.scope,granted:t.granted,hasDecision:t.hasDecision,saving:t.saving,error:t.error}:t.error!==null?{kind:"failed",error:t.error}:{kind:"loading"}}n(K,"consentRowView");var W=Object.freeze([Object.freeze({wireCode:"AccessDeniedException",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"AuthorizationException",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"ConflictException",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"DAILY_QUOTA_EXCEEDED",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"FILE_TOO_LARGE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_IN_FLIGHT",envelope:"http_envelope",httpStatus:409,retryable:true}),Object.freeze({wireCode:"IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"INVALID_CONTENT_TYPE",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"InternalFailureException",envelope:"http_envelope",httpStatus:500,retryable:true}),Object.freeze({wireCode:"MethodNotAllowedException",envelope:"http_envelope",httpStatus:405,retryable:false}),Object.freeze({wireCode:"NotImplementedException",envelope:"http_envelope",httpStatus:501,retryable:false}),Object.freeze({wireCode:"PaymentRequiredException",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ResourceNotFoundException",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"ServiceUnavailableException",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"TIER_UPGRADE_REQUIRED",envelope:"http_envelope",httpStatus:402,retryable:false}),Object.freeze({wireCode:"ThrottlingException",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"ValidationException",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"accessDenied",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"access_denied",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"attachment_unreadable",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"authExpired",envelope:"http_envelope",httpStatus:401,retryable:true}),Object.freeze({wireCode:"authRejected",envelope:"http_envelope",httpStatus:401,retryable:false}),Object.freeze({wireCode:"consent_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_required",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"consent_scope_wrong_route",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"device_cipher_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"email_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"event_cursor_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_payload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_not_available",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"event_type_unknown",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_required",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"idempotency_key_reused",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"insufficientCapability",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"insufficient_scope",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"internal_error",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"invalidRequest",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_client",envelope:"oauth_error",httpStatus:401,retryable:false}),Object.freeze({wireCode:"invalid_client_metadata",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_grant",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_redirect_uri",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_request",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_scope",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"invalid_target",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"mcp_connection_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"mcp_request_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"mcp_request_gone",envelope:"http_envelope",httpStatus:410,retryable:false}),Object.freeze({wireCode:"mcp_request_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"not_found",envelope:"sse_frame",httpStatus:200,retryable:false}),Object.freeze({wireCode:"partner_visit_link_conflict",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"partner_visit_owner_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"partner_visit_pet_already_mapped",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"payload_too_large",envelope:"http_envelope",httpStatus:413,retryable:false}),Object.freeze({wireCode:"petRefInUse",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"pet_health_list_removals_unconfirmed",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_health_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"pet_not_registered",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"provider_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"rateLimited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"record_species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"record_subject_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"record_upload_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"records_consent_required",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"sandbox_only",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"session_required",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"share_limit_reached",envelope:"http_envelope",httpStatus:429,retryable:false}),Object.freeze({wireCode:"slow_down",envelope:"oauth_error",httpStatus:429,retryable:true}),Object.freeze({wireCode:"species_unsupported",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"tenant_filter_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"tenant_has_no_capabilities",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"tenant_resource_not_found",envelope:"http_envelope",httpStatus:404,retryable:false}),Object.freeze({wireCode:"tenant_surface_not_enabled",envelope:"http_envelope",httpStatus:409,retryable:false}),Object.freeze({wireCode:"timeout",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"token_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"unavailable",envelope:"sse_frame",httpStatus:200,retryable:true}),Object.freeze({wireCode:"unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"unsupported_grant_type",envelope:"oauth_error",httpStatus:400,retryable:false}),Object.freeze({wireCode:"unsupported_response_type",envelope:"oauth_error",httpStatus:302,retryable:false}),Object.freeze({wireCode:"verify_mint_rate_limited",envelope:"http_envelope",httpStatus:429,retryable:true}),Object.freeze({wireCode:"verify_mint_refused",envelope:"http_envelope",httpStatus:403,retryable:false}),Object.freeze({wireCode:"verify_mint_unavailable",envelope:"http_envelope",httpStatus:503,retryable:true}),Object.freeze({wireCode:"verify_user_ref_invalid",envelope:"http_envelope",httpStatus:422,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_empty",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_endpoint_update_invalid",envelope:"http_envelope",httpStatus:400,retryable:false}),Object.freeze({wireCode:"webhook_url_rejected",envelope:"http_envelope",httpStatus:400,retryable:false})]);Object.freeze(W.map(e=>e.wireCode));var ar=Object.freeze({ValidationException:"validationFailed",AuthorizationException:"authRejected",PaymentRequiredException:"paymentRequired",AccessDeniedException:"accessDenied",ResourceNotFoundException:"resourceNotFound",ConflictException:"conflict",ThrottlingException:"rateLimited",InternalFailureException:"internalError",NotImplementedException:"notImplemented",ServiceUnavailableException:"serviceUnavailable",MethodNotAllowedException:"validationFailed",authExpired:"authExpired",unavailable:"serviceUnavailable",session_required:"sessionRequired",accessDenied:"accessDenied",invalidRequest:"sdkUpdateRequired",authRejected:"authRejected",rateLimited:"rateLimited",insufficientCapability:"accessDenied",event_cursor_invalid:"validationFailed",event_filter_invalid:"validationFailed",event_payload_invalid:"validationFailed",event_type_unknown:"validationFailed",idempotency_key_invalid:"validationFailed",idempotency_key_required:"validationFailed",idempotency_key_reused:"idempotencyConflict",payload_too_large:"validationFailed",webhook_url_rejected:"validationFailed",webhook_endpoint_update_empty:"validationFailed",webhook_endpoint_update_invalid:"validationFailed",event_type_not_available:"conflict",record_subject_not_found:"resourceNotFound",records_consent_required:"conflict",record_species_unsupported:"validationFailed",record_upload_invalid:"validationFailed",FILE_TOO_LARGE:"validationFailed",INVALID_CONTENT_TYPE:"validationFailed",attachment_unreadable:"validationFailed",provider_unsupported:"validationFailed",token_invalid:"validationFailed",device_cipher_unavailable:"serviceUnavailable",email_invalid:"validationFailed",consent_required:"validationFailed",consent_invalid:"validationFailed",consent_scope_wrong_route:"validationFailed",IDEMPOTENCY_KEY_IN_FLIGHT:"idempotencyInFlight",IDEMPOTENCY_KEY_REUSED_DIFFERENT_REQUEST:"idempotencyConflict",DAILY_QUOTA_EXCEEDED:"quotaExceeded",TIER_UPGRADE_REQUIRED:"paymentRequired",not_found:"conversationNotFound",timeout:"streamTimeout",internal_error:"internalError",invalid_request:"validationFailed",invalid_client:"authRejected",invalid_grant:"authRejected",unsupported_grant_type:"validationFailed",invalid_scope:"validationFailed",invalid_target:"validationFailed",invalid_redirect_uri:"validationFailed",invalid_client_metadata:"validationFailed",unsupported_response_type:"validationFailed",access_denied:"accessDenied",slow_down:"rateLimited",mcp_request_not_found:"resourceNotFound",mcp_request_gone:"resourceNotFound",mcp_connection_not_found:"resourceNotFound",mcp_request_conflict:"conflict",sandbox_only:"accessDenied",tenant_has_no_capabilities:"conflict",verify_mint_refused:"accessDenied",verify_mint_rate_limited:"rateLimited",verify_mint_unavailable:"serviceUnavailable",verify_user_ref_invalid:"validationFailed",insufficient_scope:"accessDenied",tenant_filter_invalid:"validationFailed",tenant_resource_not_found:"resourceNotFound",tenant_surface_not_enabled:"conflict",pet_health_species_unsupported:"validationFailed",pet_health_list_removals_unconfirmed:"validationFailed",petRefInUse:"conflict",share_limit_reached:"conflict",pet_not_registered:"resourceNotFound",species_unsupported:"validationFailed",partner_visit_owner_only:"accessDenied",partner_visit_link_conflict:"conflict",partner_visit_pet_already_mapped:"conflict"}),ye=Object.freeze(W.map(e=>Object.freeze({wireCode:e.wireCode,envelope:e.envelope,retryable:e.retryable,normalized:ar[e.wireCode]}))),ir=new Map(ye.map(e=>[e.envelope+e.wireCode.toUpperCase(),e])),sr=Object.freeze(["http_envelope",...[...new Set(ye.map(e=>e.envelope))].filter(e=>e!=="http_envelope").sort()]);function M(e,r){if(typeof e!="string")return;let t=e.trim().toUpperCase();if(t.length!==0)for(let o of [r??"http_envelope",...sr]){let a=ir.get(o+t);if(a)return a}}n(M,"contractErrorFor");function lr(e){return e.envelope==="sse_frame"?`/errors#sse-${e.wireCode}`:e.envelope==="oauth_error"?`/errors#oauth-${e.wireCode}`:`/errors#${e.wireCode}`}n(lr,"contractDocUrl");function me(e){return null}n(me,"publishedDocUrl");var ur=Object.freeze({authExpired:"authentication",authRejected:"authentication",sessionRequired:"authentication",accessDenied:"authorization",paymentRequired:"entitlement",quotaExceeded:"rateLimit",rateLimited:"rateLimit",validationFailed:"invalidRequest",sdkUpdateRequired:"invalidRequest",conversationNotFound:"notFound",petNotFound:"notFound",resourceNotFound:"notFound",conflict:"conflict",idempotencyConflict:"conflict",idempotencyInFlight:"conflict",streamTimeout:"connection",streamIncomplete:"connection",upstreamLlmTimeout:"connection",serviceUnavailable:"connection",internalError:"server",notImplemented:"server",mediaUploadFailed:"media",moderationBlocked:"policy",unknown:"unknown"});function ve(e){return ur[e]}n(ve,"categoryFor");function Ee(e){let r=M(e);if(r)return r.normalized;let t=(e??"").trim().toUpperCase(),o=t.replace(/[^A-Z0-9]/g,"");if(o==="AUTHREJECTED")return "authRejected";if(t.startsWith("AUTH"))return "authExpired";switch(o){case "DAILYQUOTAEXCEEDED":case "QUOTAEXCEEDED":return "quotaExceeded";case "RATELIMITED":case "TOOMANYREQUESTS":return "rateLimited";case "IDEMPOTENCYKEYCONFLICT":case "IDEMPOTENCYCONFLICT":return "idempotencyConflict";case "ACCESSDENIED":case "FORBIDDEN":return "accessDenied";case "NOTFOUND":case "CONVERSATIONNOTFOUND":return "conversationNotFound";case "PETNOTFOUND":return "petNotFound";case "TIMEOUT":case "STREAMTIMEOUT":return "streamTimeout";case "MEDIAUPLOADFAILED":case "UNRECOGNIZEDVIDEOFORMAT":case "FILETOOSMALL":return "mediaUploadFailed";case "MODERATIONBLOCKED":return "moderationBlocked";case "UPSTREAMLLMTIMEOUT":return "upstreamLlmTimeout";case "INTERNALERROR":case "INTERNALSERVERERROR":return "internalError";case "STREAMINCOMPLETE":case "CHATSTREAMINCOMPLETE":return "streamIncomplete";case "INVALIDANALYSISTYPE":case "INVALIDUPLOADPURPOSE":return "unknown";default:return "unknown"}}n(Ee,"fromWire");var dr=new Set(["streamTimeout","rateLimited","internalError","upstreamLlmTimeout","streamIncomplete"]);function $(e){return dr.has(e)}n($,"isAutoRetryable");var cr=new Set(["serviceUnavailable","conflict","idempotencyInFlight"]);function ge(e){return $(e)||cr.has(e)}n(ge,"isRetryableCode");var pr=500,G=8e3,be=4;function he(e,r=Math.random){let t=Math.max(0,e),o=Math.min(pr*2**t,G);return Math.floor(r()*o)}n(he,"backoffDelayMs");var fr=Object.freeze({authExpired:"Please sign in again to continue.",authRejected:"Please sign in again to continue.",sessionRequired:"This app needs to be updated to keep using Everfur.",accessDenied:"This feature isn't available on your account right now.",paymentRequired:"This is part of a paid plan.",quotaExceeded:"You have used today's messages. This resets tomorrow.",rateLimited:"You are sending messages quickly. Try again in a few seconds.",validationFailed:"Something in that request was not right. Check the details and try again.",sdkUpdateRequired:"This app needs to be updated to keep using Everfur.",conflict:"That is already running. Wait for it to finish, then try again.",idempotencyConflict:"That message was already delivered.",idempotencyInFlight:"That is still processing. Give it a moment.",conversationNotFound:"This conversation is no longer available.",petNotFound:"We could not find that pet. Please pick a pet and try again.",resourceNotFound:"We could not find that.",streamTimeout:"The response timed out. Tap retry to try again.",mediaUploadFailed:"We could not upload that photo. Please attach it again.",moderationBlocked:"This request cannot be answered here.",upstreamLlmTimeout:"The response timed out. Tap retry to try again.",internalError:"We hit a snag on our end. Please try again.",notImplemented:"That is not available yet.",serviceUnavailable:"That service is briefly unavailable. Try again shortly.",streamIncomplete:"The connection dropped mid-answer. Tap retry to continue.",unknown:"Something went wrong. Please try again."});function yr(e){return fr[e]}n(yr,"userFacingError");function _e(e,r,t){Object.defineProperty(e,r,{value:t,enumerable:false,writable:false,configurable:false});}n(_e,"defineHidden");var mr=/^[a-z][a-z0-9_]{0,63}$/;function T(e,r){let t=M(r?.wireCode,r?.wireEnvelope),o={code:e,category:ve(e),retryable:r?.retryable??ge(e),displayMessage:yr(e)};if(r?.httpStatus!==void 0&&(o.httpStatus=r.httpStatus),r?.requestId&&(o.requestId=r.requestId),typeof r?.reasonCode=="string"&&mr.test(r.reasonCode)&&(o.reasonCode=r.reasonCode),t);return r?.wireMessage&&_e(o,"wireMessage",r.wireMessage),r?.raw!==void 0&&r.raw!==null&&_e(o,"raw",r.raw),Object.freeze(o)}n(T,"makeEverfurError");function Q(e,r){return Object.freeze(r===void 0?{ok:true,value:e}:{ok:true,value:e,warning:r})}n(Q,"ok");function f(e){return Object.freeze({ok:false,error:e})}n(f,"err");var U=class U extends Error{constructor(r,t){super(t),this.name="EverfurConfigError",this.kind=r,Object.setPrototypeOf(this,U.prototype);}};n(U,"EverfurConfigError");var z=U;function Ce(e){return Object.freeze({kind:"error",terminal:true,code:e.code,retryable:e.retryable,wireMessage:e.wireMessage,synthesized:e.synthesized,lastEventId:e.lastEventId,serverRequestId:e.serverRequestId??null})}n(Ce,"errorFrame");function gr(e){let r={};return e.mode==="personalized"?r.authorization=`Bearer ${e.token}`:r["x-everfur-partner-key"]=e.publishableKey,e.userRef&&(r["x-everfur-user-ref"]=e.userRef),e.sessionId&&(r["x-everfur-session-id"]=e.sessionId),r}n(gr,"authHeaders");function N(e,r){return {...e,headers:{...br(e.headers),...gr(r)}}}n(N,"withAuthHeaders");function br(e){if(!e)return {};let r={};for(let[t,o]of Object.entries(e)){let a=t.toLowerCase();a==="authorization"||a==="x-everfur-partner-key"||(r[t]=o);}return r}n(br,"stripAuthHeaders");async function Re(e,r){if(r.mode==="anonymous")return r.transport.request(N(e,{mode:"anonymous",publishableKey:r.publishableKey,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));let t;try{t=await r.identity.currentToken();}catch{return f(X())}let o=await r.transport.request(N(e,{mode:"personalized",token:t,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));if(o.ok||o.error.httpStatus!==401)return o;let a;try{a=await r.identity.currentToken({forceRefresh:!0});}catch{return f(X())}let s=await r.transport.request(N(e,{mode:"personalized",token:a,userRef:r.userRef,...r.sessionId?{sessionId:r.sessionId}:{}}));return !s.ok&&s.error.httpStatus===401?f(X(s.error.httpStatus)):s}n(Re,"authedSend");function X(e){return T("authRejected",{retryable:false,...e!==void 0?{httpStatus:e}:{}})}n(X,"authRejectedError");function Se(e){return T("internalError",{retryable:true,wireMessage:hr(e)})}n(Se,"networkError");function hr(e){return e instanceof Error?e.message:typeof e=="string"?e:"network request failed"}n(hr,"describeCause");var _r=3e4,Cr=G*2,Rr="idempotency-key",Sr=new Set(["POST","PUT","PATCH","DELETE"]),Tr=Object.freeze({onEvent(){}}),wr=Object.freeze({setTimeout:n((e,r)=>setTimeout(e,r),"setTimeout"),clearTimeout:n(e=>clearTimeout(e),"clearTimeout"),now:n(()=>Date.now(),"now")});function we(e){let r=e.observer??Tr,t=e.timers??wr,o=e.rng??Math.random,a=e.sleep??((m,d)=>Ur(m,t,d)),s=e.maxAttempts??be,p=e.unaryTimeoutMs??_r,i=e.newIdempotencyKey??Fr(),l=n(m=>{try{r.onEvent(m);}catch{}},"emit");async function u(m,d,y){let _=y?.maxAttempts,v=Math.max(1,_??s),R=y?.idempotent??Sr.has(d.method)?i():null,c=xr(d,R),g=0;for(;;){let b=n(V=>Object.freeze({call:m,method:d.method,path:d.path,attempt:g,...R?{idempotencyKey:R}:{},...V}),"stamp");l(b({phase:"attempt"}));let x=jr(p,t),P=Mr(x.signal,d.signal),F;try{F=await Re({...c,signal:P.signal},e.auth);}catch(V){F=f(Se(V));}finally{P.dispose(),x.cancel();}if(F.ok)return l(b({phase:"settled",ok:true,reason:"ok"})),F;let w=F.error,j=Or(w,g,{maxAttempts:v,rng:o,now:t.now(),aborted:d.signal?.aborted===true,..._!==void 0?{perCallMaxAttempts:_}:{},...e.errorPolicy!==void 0?{policy:e.errorPolicy}:{}}),H={ok:false,code:w.code,reason:j.reason,...w.httpStatus!==void 0?{httpStatus:w.httpStatus}:{},...w.requestId!==void 0?{requestId:w.requestId}:{}};if(!j.retry)return l(b({phase:"settled",...H})),f(w);if(l(b({phase:"retry",...H,delayMs:j.delayMs})),await a(j.delayMs,d.signal),d.signal?.aborted===true)return l(b({phase:"settled",...H,reason:"aborted"})),f(w);g+=1;}}n(u,"send");async function E(m){return N(m,await Dr(e.auth))}n(E,"authorize");async function*S(m,d,y){l(Object.freeze({call:m,phase:"stream.open",method:d.method,path:d.path,attempt:0}));try{yield*e.auth.transport.stream(d,y);}catch{yield Ce({code:"internal_error",retryable:true,wireMessage:null,synthesized:true,lastEventId:null,serverRequestId:null});}}return n(S,"stream"),Object.freeze({send:u,authorize:E,stream:S})}n(we,"createRequestFunnel");function xr(e,r){let t={};for(let[o,a]of Object.entries(e.headers??{}))o.toLowerCase()!==Rr&&(t[o]=a);return r!==null&&(t["Idempotency-Key"]=r),{...e,headers:t}}n(xr,"assembleHeaders");function Fr(){let e=0;return ()=>`efk_${Date.now().toString(36)}_${(e++).toString(36)}_${Math.random().toString(36).slice(2,12)}`}n(Fr,"defaultIdempotencyKeyFactory");var kr=10;function Or(e,r,t){if(t.aborted)return {retry:false,reason:"aborted"};let o=Ar(e);if(o==="quota")return {retry:false,reason:"daily-quota-exhausted"};if(o!=="burst"&&!$(e.code))return {retry:false,reason:"terminal-code"};let a=o==="burst"?"burst-throttle":"retryable-code";if(n(()=>{if(t.policy===void 0)return false;try{return !t.policy.shouldRetry(e.code,r)}catch{return false}},"policyVetoedRetry")())return {retry:false,reason:"terminal-code"};let p=n(()=>{if(t.policy===void 0)return null;let u;try{u=t.policy.maxAttempts(e.code);}catch{return null}return typeof u!="number"||!Number.isFinite(u)?null:Math.max(1,Math.min(kr,Math.floor(u)))},"policyCeiling"),i=t.perCallMaxAttempts??p()??t.maxAttempts;if(r+1>=i)return {retry:false,reason:"attempts-exhausted"};let l=Ir(e,t.now);return l!==null?l>Cr?{retry:false,reason:"server-reset-beyond-budget"}:{retry:true,reason:a,delayMs:l}:{retry:true,reason:a,delayMs:he(r,t.rng)}}n(Or,"decideRetry");function Ar(e){let r=e.code==="unknown"?Ee(Nr(e.raw)):e.code;return r==="quotaExceeded"?"quota":r==="rateLimited"||e.httpStatus===429?"burst":null}n(Ar,"throttleKind");function Ir(e,r){let t=Pr(e.raw);if(t===null)return null;let o=t-r;return o>0?o:0}n(Ir,"retryOverrideMs");function Pr(e){for(let r of xe(e)){let t=r.resets_at,o=zr(t);if(o!==null)return o}return null}n(Pr,"findResetsAt");function xe(e){if(!Te(e))return [];let r=[e];for(let t of ["error","detail"]){let o=e[t];Te(o)&&r.push(o);}return r}n(xe,"candidateScopes");function zr(e){if(typeof e=="number"&&Number.isFinite(e))return e<1e11?Math.round(e*1e3):Math.round(e);if(typeof e=="string"&&e.trim().length>0){let r=Date.parse(e);return Number.isFinite(r)?r:null}return null}n(zr,"parseInstantMs");function Nr(e){for(let r of xe(e)){let t=r.code;if(typeof t=="string"&&t.length>0)return t}return null}n(Nr,"rawWireCode");function Te(e){return typeof e=="object"&&e!==null}n(Te,"isRecord");async function Dr(e){return e.mode==="anonymous"?{mode:"anonymous",publishableKey:e.publishableKey,userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}:{mode:"personalized",token:await e.identity.currentToken(),userRef:e.userRef,...e.sessionId?{sessionId:e.sessionId}:{}}}n(Dr,"resolveDeviceAuth");function jr(e,r){let t=new AbortController,o=r.setTimeout(()=>t.abort(),e);return {signal:t.signal,cancel:n(()=>r.clearTimeout(o),"cancel")}}n(jr,"boundedSignal");function Mr(e,r){let t=n(()=>{},"noop");if(!r)return {signal:e,dispose:t};let o=new AbortController;if(e.aborted||r.aborted)return o.abort(),{signal:o.signal,dispose:t};let a=n(()=>o.abort(),"onAbort");return e.addEventListener("abort",a,{once:true}),r.addEventListener("abort",a,{once:true}),{signal:o.signal,dispose:n(()=>{e.removeEventListener("abort",a),r.removeEventListener("abort",a);},"dispose")}}n(Mr,"mergeSignals");function Ur(e,r,t){return e<=0||t?.aborted===true?Promise.resolve():new Promise(o=>{let a=r.setTimeout(()=>{t?.removeEventListener("abort",s),o();},e),s=n(()=>{r.clearTimeout(a),o();},"onAbort");t?.addEventListener("abort",s,{once:true});})}n(Ur,"delayAbortable");var Fe="/widget/v1/consent",D=Object.freeze(["transcript_exposure","partner_context"]),ke="records_content",Z=64,Lr=new Set(D);function L(e){return typeof e=="string"&&Lr.has(e)}n(L,"isEverfurConsentScope");function O(e){return T("validationFailed",{retryable:false,wireMessage:e})}n(O,"invalid");function Pe(e){return L(e)?null:O(e===ke?`'${ke}' is not recorded here: the records release a member grants and revokes is PUT and DELETE /widget/v1/records/pets/{pet_ref}/consent, which the records surface wires and which also kills the pet's live share links on a revoke. A row on the scoped ledger would not gate any read.`:`scope must be one of ${D.join(", ")}`)}n(Pe,"validateScope");function Br(e){if(typeof e!="object"||e===null)return O("write needs a decision object");let{scope:r,granted:t,consentVersion:o}=e,a=Pe(r);return a!==null?a:typeof t!="boolean"?O("granted must be true to grant or false to withdraw"):o!==void 0&&(typeof o!="string"||o.length===0||o.length>Z)?O(`consentVersion must be 1..${Z} characters`):null}n(Br,"validateDecision");var J=n(e=>typeof e=="string"&&e.length>0?e:null,"str");function Oe(e,r){if(typeof e!="object"||e===null)return null;let t=e;return typeof t.granted!="boolean"||typeof t.has_decision!="boolean"?null:Object.freeze({scope:r,granted:t.granted,hasDecision:t.has_decision,consentVersion:J(t.consent_version),actor:J(t.actor),recordedAt:J(t.recorded_at)})}n(Oe,"verdictFromWire");function Ae(e){return T("internalError",{retryable:false,httpStatus:502,wireMessage:`${e}: the response carried no granted/has_decision pair`})}n(Ae,"malformed");function Ie(e){return O(`the Everfur runtime is disposed; ${e} was called after unmount`)}n(Ie,"disposed");function ee(e){let r=n(()=>{let{services:t}=e.registry;return ze({auth:t.authFor(null),...t.errorPolicy?{errorPolicy:t.errorPolicy}:{}})},"over");return {read:n((t,o)=>e.isDisposed?Promise.resolve(f(Ie("read"))):r().read(t,o),"read"),write:n((t,o)=>e.isDisposed?Promise.resolve(f(Ie("write"))):r().write(t,o),"write")}}n(ee,"createConsentRepository");function ze(e){let r=e.funnel??we({auth:e.auth,...e.errorPolicy?{errorPolicy:e.errorPolicy}:{}}),t=n((o,a)=>a?{...o,signal:a}:o,"withSignal");return {async read(o,a){let s=Pe(o);if(s!==null)return f(s);let p=await r.send("consent.read",t({method:"GET",path:Fe,query:{scope:o}},a?.signal));if(!p.ok)return f(p.error);let i=Oe(p.value,o);return i===null?f(Ae("consent.read")):Q(i)},async write(o,a){let s=Br(o);if(s!==null)return f(s);let p={scope:o.scope,granted:o.granted};o.consentVersion!==void 0&&(p.consent_version=o.consentVersion);let i=await r.send("consent.write",t({method:"PUT",path:Fe,body:p},a?.signal));if(!i.ok)return f(i.error);let l=Oe(i.value,o.scope);return l===null?f(Ae("consent.write")):Q(l)}}}n(ze,"createConsentRepositoryOver");var Ne=Symbol.for("@everfur/sdk#EverfurContext@v1"),De=globalThis,je=De[Ne]??(De[Ne]=createContext(null));je.displayName??="EverfurContext";function re(){let e=useContext(je);if(e===null)throw new z("not-initialized","Everfur hooks must be called inside <EverfurProvider>. Wrap your tree once, high.");return e}n(re,"useEverfurContext");function ne(e,r){return Object.freeze({scope:e,granted:false,hasDecision:false,consentVersion:null,recordedAt:null,loaded:false,saving:false,error:r})}n(ne,"blank");function Ue(e){return Object.freeze({scope:e.scope,granted:e.granted,hasDecision:e.hasDecision,consentVersion:e.consentVersion,recordedAt:e.recordedAt,loaded:true,saving:false,error:null})}n(Ue,"settled");function Kr(){return T("sessionRequired",{retryable:false,wireMessage:"a consent decision is authored by the member; sign a user in on the provider first"})}n(Kr,"noMember");function Le(){let{runtime:e}=re();return useMemo(()=>ee(e),[e])}n(Le,"useEverfurConsentRepository");function ae(e){let{userRef:r}=re(),t=Le(),o=(e?.scopes??[]).filter(L).join(","),a=useMemo(()=>{let y=o.length===0?[]:o.split(",");return y.length===0?D:Object.freeze(y)},[o]),[s,p]=useState(r===null?"signed_out":"loading"),[i,l]=useState([]),[u,E]=useState(null),S=useRef(0),m=useCallback(async()=>{if(r===null){S.current+=1,p("signed_out"),l([]),E(null);return}let y=S.current+=1;p("loading"),E(null);let _=await Promise.all(a.map(c=>t.read(c)));if(y!==S.current)return;let v=_.map((c,g)=>{let b=a[g];return c.ok?Ue(c.value):ne(b,c.error)}),C=_.find(c=>!c.ok),R=_.every(c=>!c.ok);l(Object.freeze(v)),p(R?"failed":"ready"),E(R&&C!==void 0&&!C.ok?C.error:null);},[t,a,r]);useEffect(()=>{m();},[m]);let d=useCallback(async(y,_)=>{if(r===null)return f(Kr());let v=S.current,C=null;l(c=>{let g=c.findIndex(F=>F.scope===y),b=g===-1?ne(y,null):c[g];C=b;let x=Object.freeze({...b,granted:_,hasDecision:true,saving:true,error:null});if(g===-1)return Object.freeze([...c,x]);let P=[...c];return P[g]=x,Object.freeze(P)});let R=await t.write({scope:y,granted:_});return v!==S.current||l(c=>{let g=c.findIndex(x=>x.scope===y);if(g===-1)return c;let b=[...c];return b[g]=R.ok?Ue(R.value):Object.freeze({...C??ne(y,null),saving:false,error:R.error}),Object.freeze(b)}),R},[t,r]);return useMemo(()=>({status:s,scopes:i,error:u,setConsent:d,refresh:m}),[s,i,u,d,m])}n(ae,"useEverfurConsent");function Be(e){let r=globalThis.console;try{r?.error?.("[everfur] A host callback threw; the SDK ignored it.",e);}catch{}}n(Be,"reportHostFailure");function Wr(e){return (typeof e=="object"||typeof e=="function")&&e!==null&&typeof e.then=="function"}n(Wr,"isThenable");function $r(e,...r){if(typeof e=="function")try{let t=e(...r);return Wr(t)&&Promise.resolve(t).then(void 0,Be),t}catch(t){Be(t);return}}n($r,"callHost");var qe=new WeakMap;function Gr(e){if(typeof e!="function")return;let r=qe.get(e);if(r!==void 0)return r;let t=n((...o)=>{$r(e,...o);},"guarded");return qe.set(e,t),t}n(Gr,"guardHost");function He(e,r){let t=null;for(let o of r){let a=e[o];typeof a=="function"&&(t??={...e},t[o]=Gr(a));}return t??e}n(He,"guardHostProps");var se=class se extends Component{constructor(){super(...arguments);this.state={failed:false,key:this.props.resetKey};}static getDerivedStateFromError(){return {failed:true}}static getDerivedStateFromProps(t,o){return Object.is(t.resetKey,o.key)?null:{failed:false,key:t.resetKey}}render(){return this.state.failed?this.props.fallback:this.props.children}};n(se,"HostRenderBoundary");var ie=se;function Xr({render:e}){return e()}n(Xr,"RenderHost");function Ye({render:e,fallback:r,resetKey:t}){return createElement(ie,{fallback:r,resetKey:t,children:createElement(Xr,{render:e})})}n(Ye,"HostRender");function de(e){if(e!==null&&typeof e=="object"&&!Object.isFrozen(e)){Object.freeze(e);for(let r of Object.keys(e))de(e[r]);}return e}n(de,"deepFreeze");var Jr=Object.freeze({content:0,heading:2,control:1.8,compact:1.5,badge:1.3}),We={xs:4,sm:8,md:12,lg:16,xl:24,xxl:32},$e={tile:5,xs:6,sm:10,md:14,lg:20,xl:28,pill:500},Ke={nano:8,small:9,micro:10,tiny:11,caption:12,bodyTight:13,body:14,subtitle:16,heading:18,verdict:24},Zr={tight:1.15,snug:1.3,normal:1.4,relaxed:1.55},et={regular:"400",medium:"500",bold:"700"},rt={eyebrow:1,monoWide:.9,headerBrand:-0.42,tight:-0.35},tt=0,B="System",q="monospace",nt=["content","heading","control","compact","badge"];function ot(e){let r={};for(let t of nt)r[t]=e;return r}n(ot,"authoredTierSizes");function Ge(){return {family:B,mono:q,fontUrl:null,families:{regular:B,medium:B,bold:B,mono:q,monoMedium:q,monoBold:q},namedFaces:{regular:false,medium:false,bold:false,mono:false,monoMedium:false,monoBold:false},fontUrls:{},size:Ke,tierSizes:ot(Ke),lineHeight:Zr,weight:et,letterSpacing:rt,scale:1,maxScale:tt,scaleCaps:Jr}}n(Ge,"baseType");var Qe={},le=Object.freeze({standard:Object.freeze([.2,0,0,1]),emphasized:Object.freeze([.2,.8,.2,1]),exit:Object.freeze([.4,0,1,1])});function ue(e){return `cubic-bezier(${e.join(", ")})`}n(ue,"cssCubicBezier");var Xe={duration:{instant:80,fast:140,normal:220,slow:320},spring:{gentle:{damping:18,stiffness:200}},easing:{standard:ue(le.standard),emphasized:ue(le.emphasized),exit:ue(le.exit)},reducedMotion:false},at={brand:"#10462E",brandSoft:"rgba(16,70,46,0.10)",brandSofter:"rgba(16,70,46,0.15)",brandBorder:"rgba(16,70,46,0.18)",borderHairlineGreen:"rgba(16,70,46,0.25)",brandBorderStrong:"rgba(16,70,46,0.55)",brandInk:"#10462E",linkInk:"#10462E",surface:"#FFFFFF",surfaceCream:"#FDFBF8",surfaceSubtle:"#EFE9E3",background:"#FFFFFF",borderRingCream:"#D8D2C8",chatGround:"#FFFFFF",composerFill:"#FDFBF8",composerBorder:"rgba(16,70,46,0.75)",shadow:"#0B3421",text:{primary:"#111111",secondary:"#0E462E",muted:"#6E6660",placeholder:"rgba(61,61,61,0.75)",onBrand:"#FFFFFF",metaCool:"#3D3D3D",timestamp:"rgba(61,61,61,0.75)"},primary:"#10462E",onPrimary:"#FFFFFF",accent:"#10462E",onAccent:"#FFFFFF",accentEdge:"#07C168",success:"#07C168",danger:"#B91C1C",errorRed:"#FF1B00",warningStrong:"#A45610",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.12)",badgeBgCaution:"rgba(217,130,29,0.14)",badgeBgCritical:"rgba(185,28,28,0.12)",badgeBgNeutral:"rgba(110,102,96,0.12)",bubbleUser:"#10462E",bubbleAssistant:"#FFFFFF",skeleton:"#EFE9E3",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.10)",checkupCardConcernBg:"rgba(239,167,0,0.10)"},Je=de({brightness:"light",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:at,space:We,radius:$e,type:Ge(),motion:Xe,slots:Qe}),it={brand:"#6BD39A",brandSoft:"rgba(107,211,154,0.12)",brandSofter:"rgba(107,211,154,0.18)",brandBorder:"rgba(107,211,154,0.22)",borderHairlineGreen:"rgba(107,211,154,0.28)",brandBorderStrong:"rgba(107,211,154,0.55)",brandInk:"#6BD39A",linkInk:"#6BD39A",surface:"#1C1F23",surfaceCream:"#23272C",surfaceSubtle:"#23272C",background:"#15171A",borderRingCream:"#3A3F45",chatGround:"#1C1F23",composerFill:"#23272C",composerBorder:"rgba(107,211,154,0.75)",shadow:"#000000",text:{primary:"#F5F3F0",secondary:"#A9E4C4",muted:"#9A938C",placeholder:"rgba(255,255,255,0.55)",onBrand:"#0E1F17",metaCool:"#C9C9C9",timestamp:"rgba(245,243,240,0.7)"},primary:"#6BD39A",onPrimary:"#0E1F17",accent:"#6BD39A",onAccent:"#0E1F17",accentEdge:"#34D888",success:"#07C168",danger:"#F87171",errorRed:"#FF6B5B",warningStrong:"#F0A35E",cautionAccent:"#D9821D",riskConcern:"#EFA700",sentiment:{up:"#07C168",neutral:"#FBC558",down:"#FF1B00"},badgeBgPositive:"rgba(7,193,104,0.18)",badgeBgCaution:"rgba(217,130,29,0.20)",badgeBgCritical:"rgba(185,28,28,0.22)",badgeBgNeutral:"rgba(255,255,255,0.10)",bubbleUser:"#6BD39A",bubbleAssistant:"#1C1F23",skeleton:"#23272C",scanButtonPink:"#FFC3BC",checkupCardLowRiskBg:"rgba(7,193,104,0.16)",checkupCardConcernBg:"rgba(239,167,0,0.16)"};de({brightness:"dark",highContrast:false,meta:{displayName:"Everfur",logoUrl:null,placeholder:null,hidePoweredBy:false},color:it,space:We,radius:$e,type:Ge(),motion:Xe,slots:Qe});var Ze=Symbol.for("@everfur/sdk#EverfurThemeContext@v1"),er=globalThis,ce=er[Ze]??(er[Ze]=createContext(Je));ce.displayName??="EverfurThemeContext";function pe(){return useContext(ce)}n(pe,"useEverfurTheme");var rr=Object.freeze({regular:"regular",medium:"medium",bold:"bold",mono:"regular",monoMedium:"medium",monoBold:"bold"});var tr='system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',ut="System";function dt(e){let r=e.trim();return r.length===0||r===ut?tr:`${nr(r)}, ${tr}`}n(dt,"cssFontFamily");function ct(e){let r=e.trim();return r.length===0||r==="monospace"?"ui-monospace, Menlo, Consolas, monospace":`${nr(r)}, ui-monospace, Menlo, Consolas, monospace`}n(ct,"cssMonoFamily");function nr(e){return `"${e.replace(/[\\"]/g,"\\$&")}"`}n(nr,"quote");function A(e,r){let t=e.type,o=t.families[r];return {fontFamily:r==="mono"||r==="monoMedium"||r==="monoBold"?ct(o):dt(o),fontWeight:t.namedFaces[r]?t.weight.regular:t.weight[rr[r]]}}n(A,"faceCss");function mt(e){let{scope:r,onChange:t,renderNotice:o,style:a,className:s}=He(e,["onChange"]),p=pe(),i=useMemo(()=>vt(p),[p]),l=ae({scopes:[r]}),u=K(l,r),E=Y[r],[S,m]=useState(null),d=useCallback(async v=>{m(v);let C=await l.setConsent(r,v);C.ok&&(m(null),t?.(C.value.granted));},[l,t,r]),y=n((v,C)=>jsxs("div",{style:i.notice,children:[jsx(Ye,{resetKey:v,render:()=>o?o(v):jsx("p",{style:i.noticeText,children:v.displayMessage}),fallback:jsx("p",{style:i.noticeText,children:v.displayMessage})}),jsx("button",{type:"button",onClick:C,style:i.retry,children:k.retry})]}),"notice");if(u.kind==="signedOut")return jsxs("div",{className:s,style:{...i.container,...a},children:[jsx("p",{style:i.title,children:E.title}),jsx("p",{style:i.body,children:k.signedOut})]});if(u.kind==="loading")return jsx("div",{className:s,style:{...i.container,...a},role:"status","aria-busy":"true","aria-label":k.loading,children:jsx("p",{style:i.title,children:E.title})});if(u.kind==="failed")return jsxs("div",{className:s,style:{...i.container,...a},children:[jsx("p",{style:i.title,children:E.title}),y(u.error,()=>{l.refresh();})]});let _=`${E.title}. ${E.body(p.meta.displayName)}`;return jsxs("div",{className:s,style:{...i.container,...a},children:[jsxs("div",{style:{...i.row,...u.granted?i.rowChecked:null},children:[jsx("input",{type:"checkbox",checked:u.granted,disabled:u.saving,"aria-label":_,"aria-busy":u.saving?"true":void 0,onChange:v=>{d(v.currentTarget.checked);},style:i.box}),jsxs("div",{style:i.copy,children:[jsx("p",{style:i.title,children:E.title}),jsx("p",{style:i.body,children:E.body(p.meta.displayName)}),jsx("p",{style:i.footnote,children:k.changeable})]})]}),u.error===null?null:y(u.error,()=>{d(S??!u.granted);})]})}n(mt,"EverfurConsentToggle");function vt(e){let{color:r,radius:t,space:o,type:a}=e,s=`${Math.round(a.size.caption*a.lineHeight.snug)}px`;return {container:{boxSizing:"border-box",display:"flex",flexDirection:"column",gap:o.sm,padding:`${o.md}px ${o.lg}px`},row:{boxSizing:"border-box",display:"flex",alignItems:"flex-start",gap:o.md,borderRadius:t.md,border:`1px solid ${r.brandBorder}`,backgroundColor:r.surface,padding:o.lg},rowChecked:{border:`1px solid ${r.brand}`,backgroundColor:r.brandSoft},box:{width:24,height:24,minWidth:24,minHeight:24,margin:0,accentColor:r.brand,cursor:"pointer"},copy:{display:"flex",flexDirection:"column",gap:o.xs},title:{margin:0,...A(e,"bold"),fontSize:a.size.body,lineHeight:`${Math.round(a.size.body*a.lineHeight.snug)}px`,color:r.text.primary},body:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.secondary},footnote:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.text.muted},notice:{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:o.xs,paddingTop:o.xs},noticeText:{margin:0,...A(e,"regular"),fontSize:a.size.caption,lineHeight:s,color:r.errorRed},retry:{minHeight:44,padding:`0 ${o.sm}px`,border:"none",background:"none",cursor:"pointer",...A(e,"bold"),fontSize:a.size.caption,color:r.linkInk}}}n(vt,"makeStyles");export{k as CONSENT_COPY,Y as CONSENT_SCOPE_COPY,Z as CONSENT_VERSION_MAX,D as EVERFUR_CONSENT_SCOPES,mt as EverfurConsentToggle,K as consentRowView,ee as createConsentRepository,ze as createConsentRepositoryOver,L as isEverfurConsentScope,ae as useEverfurConsent,Le as useEverfurConsentRepository};