@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.
- package/CHANGELOG.md +634 -0
- package/README.md +58 -23
- package/consent/package.json +8 -0
- package/dist/Chat-DPUD6dnc.d.cts +128 -0
- package/dist/Chat-DwAC2vhB.d.ts +128 -0
- package/dist/DepthViews-DNEM96Se.d.ts +16 -0
- package/dist/DepthViews-DP0R-DhB.d.cts +19 -0
- package/dist/DepthViews-D_3hl4xk.d.ts +19 -0
- package/dist/DepthViews-DbFhR4Du.d.cts +16 -0
- package/dist/ErrorPolicyPort-CNf4uQZP.d.cts +22 -0
- package/dist/ErrorPolicyPort-CwbfmxzJ.d.ts +22 -0
- package/dist/{EverfurResult-D92-uL82.d.cts → EverfurResult-DN9pL2Ab.d.cts} +11 -10
- package/dist/{EverfurResult-D92-uL82.d.ts → EverfurResult-DN9pL2Ab.d.ts} +11 -10
- package/dist/{PhotoController-BItt5M7u.d.cts → PhotoController-3l7MT9jA.d.cts} +1 -1
- package/dist/{PhotoController-D8zMTdcW.d.ts → PhotoController-vzY5bfY_.d.ts} +1 -1
- package/dist/animations/index.cjs +1 -1997
- package/dist/animations/index.d.cts +35 -35
- package/dist/animations/index.d.ts +35 -35
- package/dist/animations/index.js +1 -1972
- package/dist/attachments-5NeobOCd.d.ts +256 -0
- package/dist/attachments-Bw3iMQgu.d.ts +146 -0
- package/dist/attachments-CQgFrEQ7.d.cts +146 -0
- package/dist/attachments-D8T5re7e.d.cts +256 -0
- package/dist/casesRepository-ClLv6qMl.d.ts +188 -0
- package/dist/casesRepository-DHwtGRYY.d.cts +188 -0
- package/dist/chat/index.cjs +1 -1170
- package/dist/chat/index.d.cts +31 -53
- package/dist/chat/index.d.ts +31 -53
- package/dist/chat/index.js +1 -1167
- package/dist/client/index.cjs +9 -2315
- package/dist/client/index.d.cts +77 -15
- package/dist/client/index.d.ts +77 -15
- package/dist/client/index.js +9 -2215
- package/dist/{config-CiJ0PVBB.d.ts → config-CzTZGlfF.d.cts} +63 -25
- package/dist/{config-BSjBdxrZ.d.cts → config-DW60uRb9.d.ts} +63 -25
- package/dist/consent/index.cjs +1 -0
- package/dist/consent/index.d.cts +33 -0
- package/dist/consent/index.d.ts +33 -0
- package/dist/consent/index.js +1 -0
- package/dist/context-DXhqHlPU.d.ts +159 -0
- package/dist/context-XvTzq1tE.d.cts +159 -0
- package/dist/copy-Mjoo91aS.d.ts +198 -0
- package/dist/copy-bKDNigLb.d.cts +198 -0
- package/dist/core/index.cjs +13 -3178
- package/dist/core/index.d.cts +58 -12
- package/dist/core/index.d.ts +58 -12
- package/dist/core/index.js +13 -3166
- package/dist/depth-CErXCU8J.d.cts +502 -0
- package/dist/depth-DjDcJ6kH.d.ts +502 -0
- package/dist/entitlementRepository-DKdXFgTo.d.cts +698 -0
- package/dist/entitlementRepository-DSbzuyAW.d.ts +698 -0
- package/dist/{identity-DK9zORrG.d.ts → identity-BMx2SUOM.d.ts} +19 -6
- package/dist/{identity-Brl-lDd6.d.cts → identity-DI4eVx9S.d.cts} +19 -6
- package/dist/{ids-CJ1S6adf.d.cts → ids-B2GAAifq.d.cts} +1 -1
- package/dist/{ids-CJ1S6adf.d.ts → ids-B2GAAifq.d.ts} +1 -1
- package/dist/index.cjs +12 -4494
- package/dist/index.d.cts +29 -121
- package/dist/index.d.ts +29 -121
- package/dist/index.js +12 -4470
- package/dist/models-B-Uh2LTf.d.ts +214 -0
- package/dist/models-D2EUxPZY.d.cts +214 -0
- package/dist/notifications/index.cjs +2 -0
- package/dist/notifications/index.d.cts +17 -0
- package/dist/notifications/index.d.ts +17 -0
- package/dist/notifications/index.js +2 -0
- package/dist/pets-CtQdRpWo.d.ts +92 -0
- package/dist/pets-aB8q0JyX.d.cts +92 -0
- package/dist/photo/index.cjs +1 -2189
- package/dist/photo/index.d.cts +6 -6
- package/dist/photo/index.d.ts +6 -6
- package/dist/photo/index.js +1 -2186
- package/dist/ports-BN6RHF9W.d.cts +48 -0
- package/dist/ports-BN6RHF9W.d.ts +48 -0
- package/dist/ports-DEBzEhbp.d.cts +386 -0
- package/dist/ports-DMolTRzU.d.ts +386 -0
- package/dist/profile-CSs1wlXT.d.cts +93 -0
- package/dist/profile-CSs1wlXT.d.ts +93 -0
- package/dist/records/depth/index.cjs +2 -0
- package/dist/records/depth/index.d.cts +13 -0
- package/dist/records/depth/index.d.ts +13 -0
- package/dist/records/depth/index.js +2 -0
- package/dist/records/index.cjs +3 -2839
- package/dist/records/index.d.cts +137 -203
- package/dist/records/index.d.ts +137 -203
- package/dist/records/index.js +3 -2833
- package/dist/requestFunnel-CjW7uDuA.d.ts +87 -0
- package/dist/requestFunnel-L-BQfi0z.d.cts +87 -0
- package/dist/{resolve-Dq_4_agU.d.ts → resolve-D4Ywz5OS.d.cts} +10 -4
- package/dist/{resolve-Dq_4_agU.d.cts → resolve-D4Ywz5OS.d.ts} +10 -4
- package/dist/{runtime-Bvr8yqXm.d.cts → runtime-B8s-_hv8.d.cts} +121 -59
- package/dist/{runtime-BIYzf9cK.d.ts → runtime-BR9ysG0J.d.ts} +121 -59
- package/dist/server/events/index.cjs +2 -0
- package/dist/server/events/index.d.cts +550 -0
- package/dist/server/events/index.d.ts +550 -0
- package/dist/server/events/index.js +2 -0
- package/dist/server/index.cjs +2 -533
- package/dist/server/index.d.cts +73 -18
- package/dist/server/index.d.ts +73 -18
- package/dist/server/index.js +2 -530
- package/dist/species-BXAIMh7I.d.cts +9 -0
- package/dist/species-BXAIMh7I.d.ts +9 -0
- package/dist/televet/index.cjs +1 -0
- package/dist/televet/index.d.cts +60 -0
- package/dist/televet/index.d.ts +60 -0
- package/dist/televet/index.js +1 -0
- package/dist/testing/index.cjs +5 -823
- package/dist/testing/index.d.cts +17 -3
- package/dist/testing/index.d.ts +17 -3
- package/dist/testing/index.js +5 -820
- package/dist/testing/rn/index.cjs +1 -449
- package/dist/testing/rn/index.d.cts +17 -29
- package/dist/testing/rn/index.d.ts +17 -29
- package/dist/testing/rn/index.js +1 -444
- package/dist/testing/web/index.cjs +1 -0
- package/dist/testing/web/index.d.cts +131 -0
- package/dist/testing/web/index.d.ts +131 -0
- package/dist/testing/web/index.js +1 -0
- package/dist/timelineRows-CaohZzXS.d.cts +19 -0
- package/dist/timelineRows-DZed6dAM.d.ts +19 -0
- package/dist/typeStyle-0TydiZ1w.d.cts +19 -0
- package/dist/typeStyle-CWMsoe6b.d.ts +19 -0
- package/dist/uploadTransport-D0M0T4hN.d.ts +38 -0
- package/dist/uploadTransport-DKJHs3Yj.d.cts +38 -0
- package/dist/useRecordsDepth-BHBzJ76R.d.cts +237 -0
- package/dist/useRecordsDepth-BU-OhzH6.d.ts +237 -0
- package/dist/useVetVisit-Bc84hWUU.d.cts +187 -0
- package/dist/useVetVisit-CjmMa896.d.ts +187 -0
- package/dist/video/index.cjs +1 -1941
- package/dist/video/index.d.cts +4 -4
- package/dist/video/index.d.ts +4 -4
- package/dist/video/index.js +1 -1938
- package/dist/view-C3qPIXGX.d.cts +310 -0
- package/dist/view-DtSPYpKa.d.ts +310 -0
- package/dist/visitIntent-D7_yVp1I.d.cts +8 -0
- package/dist/visitIntent-D7_yVp1I.d.ts +8 -0
- package/dist/web/consent/index.cjs +1 -0
- package/dist/web/consent/index.d.cts +34 -0
- package/dist/web/consent/index.d.ts +34 -0
- package/dist/web/consent/index.js +1 -0
- package/dist/web/index.cjs +14 -0
- package/dist/web/index.d.cts +217 -0
- package/dist/web/index.d.ts +217 -0
- package/dist/web/index.js +14 -0
- package/dist/web/notifications/index.cjs +2 -0
- package/dist/web/notifications/index.d.cts +213 -0
- package/dist/web/notifications/index.d.ts +213 -0
- package/dist/web/notifications/index.js +2 -0
- package/dist/web/records/depth/index.cjs +2 -0
- package/dist/web/records/depth/index.d.cts +12 -0
- package/dist/web/records/depth/index.d.ts +12 -0
- package/dist/web/records/depth/index.js +2 -0
- package/dist/web/records/index.cjs +4 -0
- package/dist/web/records/index.d.cts +194 -0
- package/dist/web/records/index.d.ts +194 -0
- package/dist/web/records/index.js +4 -0
- package/dist/web/televet/index.cjs +1 -0
- package/dist/web/televet/index.d.cts +50 -0
- package/dist/web/televet/index.d.ts +50 -0
- package/dist/web/televet/index.js +1 -0
- package/notifications/package.json +8 -0
- package/package.json +197 -9
- package/records/depth/package.json +8 -0
- package/server/events/device-blocked.cjs +15 -0
- package/server/events/package.json +9 -0
- package/televet/package.json +8 -0
- package/testing/web/native-blocked.cjs +12 -0
- package/testing/web/package.json +8 -0
- package/web/consent/native-blocked.cjs +12 -0
- package/web/consent/package.json +8 -0
- package/web/native-blocked.cjs +12 -0
- package/web/notifications/native-blocked.cjs +12 -0
- package/web/notifications/package.json +8 -0
- package/web/package.json +8 -0
- package/web/records/depth/native-blocked.cjs +12 -0
- package/web/records/depth/package.json +8 -0
- package/web/records/native-blocked.cjs +12 -0
- package/web/records/package.json +8 -0
- package/web/televet/native-blocked.cjs +12 -0
- package/web/televet/package.json +8 -0
- package/dist/ChatController-CKdBvPj2.d.ts +0 -146
- package/dist/ChatController-CpUMvvZf.d.cts +0 -146
- package/dist/FilePort-BabWrv7I.d.cts +0 -22
- package/dist/FilePort-BabWrv7I.d.ts +0 -22
- package/dist/petsRepository-BEGb97M9.d.cts +0 -326
- package/dist/petsRepository-Bu18r2kK.d.ts +0 -326
- package/dist/requestFunnel-DuUH-kAe.d.cts +0 -28
- package/dist/requestFunnel-dio5OmR9.d.ts +0 -28
package/dist/server/index.d.cts
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { c as EverfurResult } from '../EverfurResult-DN9pL2Ab.cjs';
|
|
2
|
+
import { j as FetchLike } from '../config-CzTZGlfF.cjs';
|
|
3
|
+
import { P as PartnerServerClient } from '../pets-aB8q0JyX.cjs';
|
|
4
|
+
export { a as PartnerPet, b as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets-aB8q0JyX.cjs';
|
|
5
|
+
export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile-CSs1wlXT.cjs';
|
|
6
|
+
export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species-BXAIMh7I.cjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
|
|
10
|
+
*
|
|
11
|
+
* Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
|
|
12
|
+
* through that the server then rejected or silently reinterpreted:
|
|
13
|
+
*
|
|
14
|
+
* - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
|
|
15
|
+
* fails REQUIRED even though it is three characters here.
|
|
16
|
+
* - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
|
|
17
|
+
* trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
|
|
18
|
+
* user's data.
|
|
19
|
+
* - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
|
|
20
|
+
* is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
|
|
21
|
+
*/
|
|
22
|
+
declare function assertValidUserRef(raw: string): string;
|
|
23
|
+
|
|
24
|
+
/** The consent you collected for this address. `partner_attested` is the one method in this version. */
|
|
25
|
+
interface PartnerMemberEmailConsent {
|
|
26
|
+
/** When the member agreed: an ISO 8601 instant, or a Date. Not in the future (the route allows five minutes of skew). */
|
|
27
|
+
readonly givenAt: string | Date;
|
|
28
|
+
readonly method: 'partner_attested';
|
|
29
|
+
/** The version of your consent text the member agreed to (1 to 64 characters). Never minted by Everfur. */
|
|
30
|
+
readonly version: string;
|
|
31
|
+
}
|
|
32
|
+
interface SetPartnerMemberNotificationProfileInput {
|
|
33
|
+
/** Your stable member id; the session mint's user_ref rule (1 to 128 characters, no '@', printable). */
|
|
34
|
+
readonly userRef: string;
|
|
35
|
+
/** The member's address. Everfur normalises it (trimmed, lowercased) and stores it with its hash; it is never echoed. */
|
|
36
|
+
readonly email: string;
|
|
37
|
+
readonly consent: PartnerMemberEmailConsent;
|
|
38
|
+
}
|
|
39
|
+
/** The consent stamp as Everfur stored it. */
|
|
40
|
+
interface PartnerMemberEmailConsentRecord {
|
|
41
|
+
/** ISO 8601. */
|
|
42
|
+
readonly givenAt: string;
|
|
43
|
+
readonly method: string;
|
|
44
|
+
readonly version: string;
|
|
45
|
+
}
|
|
46
|
+
/** A member's notification profile, MASKED: the address never comes back. */
|
|
47
|
+
interface PartnerMemberNotificationProfile {
|
|
48
|
+
readonly userRef: string;
|
|
49
|
+
/** The stored address in its masked form (`o***@example.com`), or null when none is on file. */
|
|
50
|
+
readonly emailMasked: string | null;
|
|
51
|
+
readonly consent: PartnerMemberEmailConsentRecord | null;
|
|
52
|
+
/** ISO 8601, or null: set by a later verification flow, never by this route. */
|
|
53
|
+
readonly emailVerifiedAt: string | null;
|
|
54
|
+
/** The member's own switches (`PUT /widget/v1/me/notification-preferences` from the SDK). */
|
|
55
|
+
readonly pushEnabled: boolean;
|
|
56
|
+
readonly emailEnabled: boolean;
|
|
57
|
+
/** ISO 8601, or null: set by the one-click unsubscribe link in Everfur's mail, cleared by a new stamp. */
|
|
58
|
+
readonly unsubscribedAt: string | null;
|
|
59
|
+
/** How many of this member's devices are registered for push. */
|
|
60
|
+
readonly activeDevices: number;
|
|
61
|
+
/** ISO 8601. */
|
|
62
|
+
readonly updatedAt: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Supply (or replace) a member's email with its consent stamp. Creates the member on first use.
|
|
66
|
+
*
|
|
67
|
+
* Settles to an `EverfurResult` for HTTP and network failures (`validationFailed` with `reasonCode` `consent_required`,
|
|
68
|
+
* `email_invalid` or `consent_invalid`; the not-found error while the routes are dark; `accessDenied` for a restricted
|
|
69
|
+
* key without `pets.profile.update`; `rateLimited`; `serviceUnavailable` mid-erasure). Throws `EverfurConfigError` for
|
|
70
|
+
* a request that can never be accepted: a malformed key, `userRef`, address or consent.
|
|
71
|
+
*/
|
|
72
|
+
declare function setPartnerMemberNotificationProfile(client: PartnerServerClient, input: SetPartnerMemberNotificationProfileInput): Promise<EverfurResult<PartnerMemberNotificationProfile>>;
|
|
3
73
|
|
|
4
74
|
interface MintSessionParams {
|
|
5
75
|
/** env-derived base URL (resolveApiBaseUrl output), no trailing slash. */
|
|
@@ -29,20 +99,5 @@ interface SessionMint {
|
|
|
29
99
|
* partner backend's helper for a TokenProvider implementation; it is not called on a device.
|
|
30
100
|
*/
|
|
31
101
|
declare function mintPartnerSession(params: MintSessionParams): Promise<EverfurResult<SessionMint>>;
|
|
32
|
-
/**
|
|
33
|
-
* Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
|
|
34
|
-
*
|
|
35
|
-
* Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
|
|
36
|
-
* through that the server then rejected or silently reinterpreted:
|
|
37
|
-
*
|
|
38
|
-
* - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
|
|
39
|
-
* fails REQUIRED even though it is three characters here.
|
|
40
|
-
* - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
|
|
41
|
-
* trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
|
|
42
|
-
* user's data.
|
|
43
|
-
* - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
|
|
44
|
-
* is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
|
|
45
|
-
*/
|
|
46
|
-
declare function assertValidUserRef(raw: string): string;
|
|
47
102
|
|
|
48
|
-
export { type MintSessionParams, type SessionMint, assertValidUserRef, mintPartnerSession };
|
|
103
|
+
export { type MintSessionParams, type PartnerMemberEmailConsent, type PartnerMemberEmailConsentRecord, type PartnerMemberNotificationProfile, PartnerServerClient, type SessionMint, type SetPartnerMemberNotificationProfileInput, assertValidUserRef, mintPartnerSession, setPartnerMemberNotificationProfile };
|
package/dist/server/index.d.ts
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { c as EverfurResult } from '../EverfurResult-DN9pL2Ab.js';
|
|
2
|
+
import { j as FetchLike } from '../config-DW60uRb9.js';
|
|
3
|
+
import { P as PartnerServerClient } from '../pets-CtQdRpWo.js';
|
|
4
|
+
export { a as PartnerPet, b as PartnerPetProfile, c as PartnerPetTarget, d as PartnerPetWithProfile, e as deletePartnerPet, g as getPartnerPet, u as updatePartnerPet, f as upsertPartnerPet } from '../pets-CtQdRpWo.js';
|
|
5
|
+
export { b as PetActivityLevel, c as PetAllergy, d as PetAllergySeverity, e as PetBirthDatePrecision, f as PetCondition, a as PetHealthProfile, P as PetHealthProfileInput, g as PetIndoorOutdoor, h as PetMedication, i as PetSex } from '../profile-CSs1wlXT.js';
|
|
6
|
+
export { C as CanonicalPetSpecies, c as canonicalPetSpecies } from '../species-BXAIMh7I.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
|
|
10
|
+
*
|
|
11
|
+
* Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
|
|
12
|
+
* through that the server then rejected or silently reinterpreted:
|
|
13
|
+
*
|
|
14
|
+
* - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
|
|
15
|
+
* fails REQUIRED even though it is three characters here.
|
|
16
|
+
* - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
|
|
17
|
+
* trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
|
|
18
|
+
* user's data.
|
|
19
|
+
* - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
|
|
20
|
+
* is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
|
|
21
|
+
*/
|
|
22
|
+
declare function assertValidUserRef(raw: string): string;
|
|
23
|
+
|
|
24
|
+
/** The consent you collected for this address. `partner_attested` is the one method in this version. */
|
|
25
|
+
interface PartnerMemberEmailConsent {
|
|
26
|
+
/** When the member agreed: an ISO 8601 instant, or a Date. Not in the future (the route allows five minutes of skew). */
|
|
27
|
+
readonly givenAt: string | Date;
|
|
28
|
+
readonly method: 'partner_attested';
|
|
29
|
+
/** The version of your consent text the member agreed to (1 to 64 characters). Never minted by Everfur. */
|
|
30
|
+
readonly version: string;
|
|
31
|
+
}
|
|
32
|
+
interface SetPartnerMemberNotificationProfileInput {
|
|
33
|
+
/** Your stable member id; the session mint's user_ref rule (1 to 128 characters, no '@', printable). */
|
|
34
|
+
readonly userRef: string;
|
|
35
|
+
/** The member's address. Everfur normalises it (trimmed, lowercased) and stores it with its hash; it is never echoed. */
|
|
36
|
+
readonly email: string;
|
|
37
|
+
readonly consent: PartnerMemberEmailConsent;
|
|
38
|
+
}
|
|
39
|
+
/** The consent stamp as Everfur stored it. */
|
|
40
|
+
interface PartnerMemberEmailConsentRecord {
|
|
41
|
+
/** ISO 8601. */
|
|
42
|
+
readonly givenAt: string;
|
|
43
|
+
readonly method: string;
|
|
44
|
+
readonly version: string;
|
|
45
|
+
}
|
|
46
|
+
/** A member's notification profile, MASKED: the address never comes back. */
|
|
47
|
+
interface PartnerMemberNotificationProfile {
|
|
48
|
+
readonly userRef: string;
|
|
49
|
+
/** The stored address in its masked form (`o***@example.com`), or null when none is on file. */
|
|
50
|
+
readonly emailMasked: string | null;
|
|
51
|
+
readonly consent: PartnerMemberEmailConsentRecord | null;
|
|
52
|
+
/** ISO 8601, or null: set by a later verification flow, never by this route. */
|
|
53
|
+
readonly emailVerifiedAt: string | null;
|
|
54
|
+
/** The member's own switches (`PUT /widget/v1/me/notification-preferences` from the SDK). */
|
|
55
|
+
readonly pushEnabled: boolean;
|
|
56
|
+
readonly emailEnabled: boolean;
|
|
57
|
+
/** ISO 8601, or null: set by the one-click unsubscribe link in Everfur's mail, cleared by a new stamp. */
|
|
58
|
+
readonly unsubscribedAt: string | null;
|
|
59
|
+
/** How many of this member's devices are registered for push. */
|
|
60
|
+
readonly activeDevices: number;
|
|
61
|
+
/** ISO 8601. */
|
|
62
|
+
readonly updatedAt: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Supply (or replace) a member's email with its consent stamp. Creates the member on first use.
|
|
66
|
+
*
|
|
67
|
+
* Settles to an `EverfurResult` for HTTP and network failures (`validationFailed` with `reasonCode` `consent_required`,
|
|
68
|
+
* `email_invalid` or `consent_invalid`; the not-found error while the routes are dark; `accessDenied` for a restricted
|
|
69
|
+
* key without `pets.profile.update`; `rateLimited`; `serviceUnavailable` mid-erasure). Throws `EverfurConfigError` for
|
|
70
|
+
* a request that can never be accepted: a malformed key, `userRef`, address or consent.
|
|
71
|
+
*/
|
|
72
|
+
declare function setPartnerMemberNotificationProfile(client: PartnerServerClient, input: SetPartnerMemberNotificationProfileInput): Promise<EverfurResult<PartnerMemberNotificationProfile>>;
|
|
3
73
|
|
|
4
74
|
interface MintSessionParams {
|
|
5
75
|
/** env-derived base URL (resolveApiBaseUrl output), no trailing slash. */
|
|
@@ -29,20 +99,5 @@ interface SessionMint {
|
|
|
29
99
|
* partner backend's helper for a TokenProvider implementation; it is not called on a device.
|
|
30
100
|
*/
|
|
31
101
|
declare function mintPartnerSession(params: MintSessionParams): Promise<EverfurResult<SessionMint>>;
|
|
32
|
-
/**
|
|
33
|
-
* Validate a partner user_ref at the SDK boundary (server re-validates). SPEC-21 section 1.1.
|
|
34
|
-
*
|
|
35
|
-
* Three checks here mirror server behaviour that is easy to miss, and each one previously let a value
|
|
36
|
-
* through that the server then rejected or silently reinterpreted:
|
|
37
|
-
*
|
|
38
|
-
* - The server does `value = (raw or "").strip()` BEFORE validating, so `" "` reaches it as empty and
|
|
39
|
-
* fails REQUIRED even though it is three characters here.
|
|
40
|
-
* - That same strip means `" alice"`, `"alice "` and `"alice"` all resolve to ONE identity. Silently
|
|
41
|
-
* trimming would hide that; rejecting it tells the partner their two ids are about to collapse into one
|
|
42
|
-
* user's data.
|
|
43
|
-
* - The server uses Python's `str.isprintable()`, which is Unicode-aware. A NBSP, zero-width space or BOM
|
|
44
|
-
* is printable by an ASCII test and NOT printable by that one, so it passed here and 400'd there.
|
|
45
|
-
*/
|
|
46
|
-
declare function assertValidUserRef(raw: string): string;
|
|
47
102
|
|
|
48
|
-
export { type MintSessionParams, type SessionMint, assertValidUserRef, mintPartnerSession };
|
|
103
|
+
export { type MintSessionParams, type PartnerMemberEmailConsent, type PartnerMemberEmailConsentRecord, type PartnerMemberNotificationProfile, PartnerServerClient, type SessionMint, type SetPartnerMemberNotificationProfileInput, assertValidUserRef, mintPartnerSession, setPartnerMemberNotificationProfile };
|