@encorekit/web-sdk 1.1.21 → 2.0.1

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 (52) hide show
  1. package/README.md +190 -46
  2. package/dist/cjs/index.cjs +1 -1
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/esm/index.js +1 -1
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/umd/encore.min.js +1 -1
  7. package/dist/umd/encore.min.js.map +1 -1
  8. package/package.json +4 -3
  9. package/types/analytics/AnalyticsClient.d.ts +11 -1
  10. package/types/analytics/AnalyticsClient.d.ts.map +1 -1
  11. package/types/analytics/events.d.ts +192 -19
  12. package/types/analytics/events.d.ts.map +1 -1
  13. package/types/analytics/transport.d.ts.map +1 -1
  14. package/types/api/APIClient.d.ts +36 -7
  15. package/types/api/APIClient.d.ts.map +1 -1
  16. package/types/api/generated/types.d.ts +548 -1
  17. package/types/api/generated/types.d.ts.map +1 -1
  18. package/types/api/models.d.ts +8 -3
  19. package/types/api/models.d.ts.map +1 -1
  20. package/types/core/Configuration.d.ts +0 -4
  21. package/types/core/Configuration.d.ts.map +1 -1
  22. package/types/core/Encore.d.ts +8 -33
  23. package/types/core/Encore.d.ts.map +1 -1
  24. package/types/core/OfferManager.d.ts +50 -9
  25. package/types/core/OfferManager.d.ts.map +1 -1
  26. package/types/core/PlacementBuilder.d.ts +11 -12
  27. package/types/core/PlacementBuilder.d.ts.map +1 -1
  28. package/types/core/useCase.d.ts +62 -0
  29. package/types/core/useCase.d.ts.map +1 -0
  30. package/types/core/version.d.ts +1 -1
  31. package/types/core/version.d.ts.map +1 -1
  32. package/types/types.d.ts +92 -223
  33. package/types/types.d.ts.map +1 -1
  34. package/types/ui/OfferCarousel.d.ts +81 -0
  35. package/types/ui/OfferCarousel.d.ts.map +1 -1
  36. package/types/ui/RewardActions.d.ts +60 -0
  37. package/types/ui/RewardActions.d.ts.map +1 -0
  38. package/types/ui/RewardCard.d.ts +49 -0
  39. package/types/ui/RewardCard.d.ts.map +1 -0
  40. package/types/ui/RewardConfetti.d.ts +46 -0
  41. package/types/ui/RewardConfetti.d.ts.map +1 -0
  42. package/types/ui/RewardLayout.d.ts +55 -0
  43. package/types/ui/RewardLayout.d.ts.map +1 -0
  44. package/types/ui/ThankYouLayout.d.ts +11 -0
  45. package/types/ui/ThankYouLayout.d.ts.map +1 -1
  46. package/types/ui/brandTint.d.ts +61 -0
  47. package/types/ui/brandTint.d.ts.map +1 -0
  48. package/types/ui/styles.d.ts +86 -0
  49. package/types/ui/styles.d.ts.map +1 -1
  50. package/types/utils/text.d.ts +24 -0
  51. package/types/utils/text.d.ts.map +1 -0
  52. package/examples/react/.env +0 -1
@@ -3,11 +3,65 @@
3
3
  * Event definitions matching cross-platform analytics spec
4
4
  */
5
5
  import type { AnalyticsEvent } from './models';
6
+ import type { UseCase } from '../types';
7
+ /**
8
+ * `properties.reason` on `sdk_offer_presentation_failed`. These strings are the
9
+ * cross-SDK vocabulary, not local names: the backend pins them in
10
+ * `packages/core/src/canonical/analytics/index.ts`
11
+ * (`SDKPresentationFailedReason`), iOS produces them from
12
+ * `NotPresentedReason.wireValue`, and Android from `OfferPresentationFailedEvent`.
13
+ *
14
+ * `NO_OFFER_AVAILABLE` is the one this SDK used to get wrong — web emitted
15
+ * camelCase `noOffersAvailable` for the identical condition iOS reports as
16
+ * `no_offer_available`, so every dashboard grouping by reason split one
17
+ * condition across two buckets. The backend registry documents the split
18
+ * explicitly and matches BOTH spellings as a workaround; this constant is the
19
+ * emitter-side fix that lets it eventually match one.
20
+ *
21
+ * `NO_TEMPLATE` deliberately keeps web's existing spelling: `no_template` is the
22
+ * name the BACKEND registry canonicalises (`SDKPresentationFailedReason.NoTemplate`),
23
+ * so web is already correct here and Android's `use_case_unavailable` is the
24
+ * outlier. Aligning that one is an Android change, not a web change.
25
+ */
26
+ export declare const PresentationFailedReason: {
27
+ readonly NO_OFFER_AVAILABLE: "no_offer_available";
28
+ readonly EXPERIMENT_CONTROL: "experiment_control";
29
+ readonly NO_TEMPLATE: "no_template";
30
+ };
31
+ /**
32
+ * `properties.reason` on `sdk_offer_claim_failed` — the failure twin of
33
+ * `sdk_offer_claimed`. Values match iOS's `ClaimFailureReason`, plus one
34
+ * browser-only member: `POPUP_BLOCKED` has no native analogue because only a
35
+ * browser can refuse to open the destination the user just asked for. It is the
36
+ * single most common way a web claim dies and today it only produces a
37
+ * `logger.warn` nobody reads.
38
+ */
39
+ export declare const ClaimFailureReason: {
40
+ readonly MANAGER_UNAVAILABLE: "manager_unavailable";
41
+ readonly TRANSACTION_START_FAILED: "transaction_start_failed";
42
+ readonly MISSING_DESTINATION_URL: "missing_destination_url";
43
+ readonly INVALID_DESTINATION_URL: "invalid_destination_url";
44
+ readonly POPUP_BLOCKED: "popup_blocked";
45
+ };
46
+ /**
47
+ * Translate an SDK-internal decline reason to its wire value.
48
+ *
49
+ * Takes the STRING form only. `NotGrantedReason`'s `{type:'error'}` member
50
+ * is a public RESULT shape that never reaches an analytics call site — the flow
51
+ * passes the literal `'error'` for that case (see `endPresentation('error', …)`
52
+ * in Encore.ts) — so accepting the object here would be dead code pretending to
53
+ * be defensive.
54
+ *
55
+ * A reason with no mapping falls back to its raw value rather than being
56
+ * dropped: an unmapped bucket is visible in the warehouse and can be fixed; a
57
+ * missing one is invisible.
58
+ */
59
+ export declare function declineReasonWireValue(reason: string | undefined): string | undefined;
6
60
  export declare function sdkInitialized(distinctId: string, sdkVersion: string, appBundleId: string): AnalyticsEvent;
7
61
  export declare function userIdentified(distinctId: string, userId: string, appBundleId: string, attributes?: Record<string, unknown>): AnalyticsEvent;
8
- export declare function offerPresentationTriggered(distinctId: string, presentationId: string, variantId?: string): AnalyticsEvent;
9
- export declare function offerPresentationFailed(distinctId: string, reason: string, presentationId: string, variantId?: string): AnalyticsEvent;
10
- export declare function offerPresentationSuccess(distinctId: string, presentationId: string, offerCount: number, variantId?: string): AnalyticsEvent;
62
+ export declare function offerPresentationTriggered(distinctId: string, presentationId: string, variantId?: string, useCase?: UseCase): AnalyticsEvent;
63
+ export declare function offerPresentationFailed(distinctId: string, reason: string, presentationId: string, variantId?: string, useCase?: UseCase): AnalyticsEvent;
64
+ export declare function offerPresentationSuccess(distinctId: string, presentationId: string, offerCount: number, variantId?: string, useCase?: UseCase): AnalyticsEvent;
11
65
  export declare function offerPresented(distinctId: string, params: {
12
66
  campaignId: string;
13
67
  creativeId: string;
@@ -18,6 +72,7 @@ export declare function offerPresented(distinctId: string, params: {
18
72
  presentationTrigger?: string;
19
73
  presentationId: string;
20
74
  variantId?: string;
75
+ useCase?: UseCase;
21
76
  }): AnalyticsEvent;
22
77
  export declare function offerClaimed(distinctId: string, params: {
23
78
  campaignId: string;
@@ -29,6 +84,7 @@ export declare function offerClaimed(distinctId: string, params: {
29
84
  totalOffers: number;
30
85
  presentationId: string;
31
86
  variantId?: string;
87
+ useCase?: UseCase;
32
88
  }): AnalyticsEvent;
33
89
  export declare function offerDeclined(distinctId: string, params: {
34
90
  campaignId: string;
@@ -40,6 +96,7 @@ export declare function offerDeclined(distinctId: string, params: {
40
96
  declineReason?: string;
41
97
  presentationId: string;
42
98
  variantId?: string;
99
+ useCase?: UseCase;
43
100
  }): AnalyticsEvent;
44
101
  export declare function offerSheetDismissed(distinctId: string, params: {
45
102
  presentationId: string;
@@ -48,33 +105,149 @@ export declare function offerSheetDismissed(distinctId: string, params: {
48
105
  offersViewed: number;
49
106
  declineReason?: string;
50
107
  variantId?: string;
108
+ useCase?: UseCase;
51
109
  }): AnalyticsEvent;
52
- /**
53
- * Primer-screen (post-claim activation handoff) outcomes. The two events are what
54
- * distinguish the two 'claimed' exits — the ShowResult is 'claimed' either way.
55
- * Payloads are ID-ONLY by contract: resolved display strings and the host `detail`
56
- * line never ride analytics (publishers may template user data into them).
57
- */
58
- export declare function offerActivationContinue(distinctId: string, params: {
59
- transactionId: string;
110
+ export declare function offerTimeSpent(distinctId: string, params: {
60
111
  campaignId: string;
112
+ offerIndex: number;
113
+ timeSpentSeconds: number;
114
+ viewCount: number;
115
+ totalOffers: number;
61
116
  presentationId: string;
62
117
  variantId?: string;
118
+ useCase?: UseCase;
63
119
  }): AnalyticsEvent;
64
- export declare function offerActivationDismissed(distinctId: string, params: {
65
- transactionId: string;
120
+ /**
121
+ * The offer identity every claim-funnel and advertiser-handoff event carries —
122
+ * the same field set iOS threads as `OfferAnalyticsContext`, so a row from web
123
+ * joins a row from iOS on identical keys.
124
+ *
125
+ * Only `campaignId` is required. The presentation-scoped fields are optional
126
+ * because a caller can legitimately have no live presentation in hand — there is
127
+ * then no impression or presentation id to report, and minting one would be
128
+ * worse than omitting it: `impression_id` is the warehouse's primary
129
+ * claim↔completion join key, so a fabricated value joins against nothing while
130
+ * looking like real coverage. Those rows join on `transaction_id` instead, the
131
+ * documented fallback. Same rule iOS applies to its cross-launch
132
+ * `OfferVerifiedEvent`: absent context fields stay absent, never fabricated.
133
+ */
134
+ export interface OfferEventContext {
66
135
  campaignId: string;
67
- presentationId: string;
136
+ creativeId?: string;
137
+ advertiserName?: string;
138
+ impressionId?: string;
139
+ offerIndex?: number;
140
+ totalOffers?: number;
141
+ presentationId?: string;
68
142
  variantId?: string;
143
+ useCase?: UseCase;
144
+ }
145
+ /**
146
+ * The claim TAP, emitted before any guard can fail — the advertiser funnel's
147
+ * true denominator. `sdk_offer_claimed` fires only once a transaction exists, so
148
+ * on its own it cannot distinguish "nobody tapped Claim" from "everybody tapped
149
+ * and the transaction call failed". Mirrors iOS `OfferClaimTappedEvent`.
150
+ */
151
+ export declare function offerClaimTapped(distinctId: string, ctx: OfferEventContext): AnalyticsEvent;
152
+ /**
153
+ * A claim tap that never reached the advertiser — the failure twin of
154
+ * `sdk_offer_claimed`. Together they make every claim outcome observable, so a
155
+ * regression like a silently-rejected transaction shows up as a failure rather
156
+ * than as users who simply didn't tap. Mirrors iOS `OfferClaimFailedEvent`.
157
+ *
158
+ * `errorDescription` is the caught error's message, included only for
159
+ * `transaction_start_failed` to separate network from server-side reject. It is
160
+ * an SDK-produced message, never publisher data.
161
+ */
162
+ export declare function offerClaimFailed(distinctId: string, ctx: OfferEventContext, params: {
163
+ reason: string;
164
+ errorDescription?: string;
165
+ transactionId?: string;
69
166
  }): AnalyticsEvent;
70
- export declare function offerTimeSpent(distinctId: string, params: {
71
- campaignId: string;
72
- offerIndex: number;
167
+ /**
168
+ * The user came back to the host page from the advertiser. iOS reads this off
169
+ * the in-app Safari dismissal; web reads the equivalent moment — the host
170
+ * document regaining focus/visibility after the advertiser tab was opened. It is
171
+ * the one signal that separates "we handed the user off" from "the user actually
172
+ * engaged and returned". Mirrors iOS `OfferClaimReturnedEvent`.
173
+ */
174
+ export declare function offerClaimReturned(distinctId: string, ctx: OfferEventContext, params: {
175
+ transactionId?: string;
176
+ }): AnalyticsEvent;
177
+ /**
178
+ * Web's advertiser handoff is a browser tab, not an embedded webview, so these
179
+ * keep iOS's event NAMES (the warehouse funnel is keyed on them) while reporting
180
+ * only what a browser can actually observe. `docs/architecture/analytics-events.md`
181
+ * lists the two members of the iOS funnel this SDK deliberately does NOT emit
182
+ * (`_load_success` and `_initial_redirect` — both need to see inside the
183
+ * cross-origin advertiser context).
184
+ *
185
+ * `url` / `urlHost` describe the ADVERTISER destination the SDK itself composed —
186
+ * never the host page's own URL, which can carry publisher query data.
187
+ */
188
+ export declare function offerWebviewAttemptingOpen(distinctId: string, ctx: OfferEventContext, params: {
189
+ url: string;
190
+ urlHost: string;
191
+ }): AnalyticsEvent;
192
+ /** The advertiser window handle was obtained and navigated to the destination. */
193
+ export declare function offerWebviewOpened(distinctId: string, ctx: OfferEventContext, params: {
194
+ url: string;
195
+ urlHost: string;
196
+ openedAt: string;
197
+ }): AnalyticsEvent;
198
+ /**
199
+ * The handoff failed — on web this is overwhelmingly a blocked popup. Carries
200
+ * `loadSuccess: false` for wire-shape parity with iOS's load_failed row.
201
+ */
202
+ export declare function offerWebviewLoadFailed(distinctId: string, ctx: OfferEventContext, params: {
203
+ url: string;
204
+ urlHost: string;
205
+ reason: string;
206
+ }): AnalyticsEvent;
207
+ /** Dwell at the advertiser, measured from handoff to the host page regaining focus. */
208
+ export declare function offerWebviewDismissed(distinctId: string, ctx: OfferEventContext, params: {
73
209
  timeSpentSeconds: number;
74
- viewCount: number;
75
- totalOffers: number;
210
+ }): AnalyticsEvent;
211
+ /**
212
+ * The server-assigned variant landed and the sheet will render it.
213
+ *
214
+ * Web has no server-driven-UI RENDERER (see `UseCase` in types.ts), but it is
215
+ * served by the same variant assignment as iOS/Android: `/config` returns
216
+ * `ui.variantId` plus the variant's copy. So the variant dimension is real here
217
+ * and this event is the one that makes it readable — without it, a web row's
218
+ * `variant_id` has no denominator saying how many users the variant reached.
219
+ *
220
+ * `loadSource` is the cross-SDK frozen vocabulary; web can only ever report
221
+ * `'remote'` (config resolved) or `'fallback'` (it did not, and the bundled copy
222
+ * rendered). It never reports `'cache'` — web persists no variant/template pair,
223
+ * so claiming a cache tier would describe a mechanism this SDK does not have.
224
+ */
225
+ export declare function sduiConfigLoaded(distinctId: string, params: {
226
+ variantId?: string;
227
+ loadSource: 'remote' | 'fallback';
228
+ loadDurationMs: number;
229
+ presentationId?: string;
230
+ }): AnalyticsEvent;
231
+ /**
232
+ * A control in the offer sheet was activated. `actionType` uses iOS's action
233
+ * vocabulary so the same query reads both platforms.
234
+ */
235
+ export declare function sduiButtonTapped(distinctId: string, params: {
236
+ variantId?: string;
237
+ actionType: 'close' | 'claimOffer' | 'openUrl' | 'next' | 'previous';
76
238
  presentationId: string;
239
+ currentState: string;
240
+ }): AnalyticsEvent;
241
+ /**
242
+ * The user moved through the offer carousel. `scrollAxis` is genuinely
243
+ * bi-modal on web: the carousel is horizontal on desktop and a vertical list on
244
+ * mobile, and which one a user got is a real analysis dimension iOS does not have.
245
+ */
246
+ export declare function sduiScroll(distinctId: string, params: {
77
247
  variantId?: string;
248
+ scrollAxis: 'horizontal' | 'vertical';
249
+ scrollPosition: number;
250
+ presentationId: string;
78
251
  }): AnalyticsEvent;
79
252
  /**
80
253
  * Exposure at the offer trigger — logged for BOTH treatment and control to
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/analytics/events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAOxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AA+BX;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGrF;AAMD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,cAAc,CAMhB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,cAAc,CAMhB;AA0CD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB,cAAc,CAMhB;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB,cAAc,CAMhB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,OAAO,GAChB,cAAc,CAMhB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,cAAc,CAOhB;AAED,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,cAAc,CAOhB;AAED,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,cAAc,CAOhB;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,cAAc,CAOhB;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,cAAc,CAOhB;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,cAAc,CAM3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,cAAc,CAWhB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC,cAAc,CAShB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC,cAAc,CAMhB;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzD,cAAc,CAWhB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD,cAAc,CAYhB;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACnC,cAAc,CAMhB;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACA,cAAc,CAWhB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,GACA,cAAc,CAWhB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;IACN,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,GACA,cAAc,CAWhB;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACxE,cAAc,CAWhB;AAMD,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,MAAM,GACf,cAAc,CAMhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/analytics/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE,MAAuB,GAAG,aAAa,CAcpG;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/analytics/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiD9D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,GAAE,MAAuB,GAAG,aAAa,CAcpG;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAChC,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
@@ -3,7 +3,7 @@
3
3
  * Low-level HTTP client using native fetch with retries, timeout, and deduplication
4
4
  * Also provides high-level methods for specific API endpoints
5
5
  */
6
- import type { UserAttributes, Entitlement, VerificationStatus } from '../types';
6
+ import type { UserAttributes, Entitlement, VerificationStatus, UseCase } from '../types';
7
7
  import type { StartTransactionResponse, InitUserResponse, IdentifyUserResponse, RemoteConfigResponse, OfferModel, BackendVerificationStatus } from './models';
8
8
  interface RequestOptions {
9
9
  method: 'GET' | 'POST' | 'PATCH';
@@ -36,15 +36,29 @@ export declare class APIClient {
36
36
  */
37
37
  patch<T>(endpoint: string, body?: unknown, options?: Partial<RequestOptions>): Promise<T>;
38
38
  /**
39
- * Fetch offers for a user
39
+ * Fetch offers for a user. `placementId` is best-effort analytics context (max 64
40
+ * chars per contract) — stamped server-side onto sdk_offer_requested; omitted for
41
+ * an auto-generated/absent placement id (buckets as '(unlabeled)' server-side).
42
+ *
43
+ * Truncated client-side to the contract's own limit (`z.string().max(64)` on
44
+ * `/offers/search` — see backend `offers/dto.ts`) rather than sent verbatim: the
45
+ * backend rejects the WHOLE request with a 400 on an oversized value, which would
46
+ * turn this best-effort label into a hard failure of the entire offers fetch for
47
+ * a publisher who simply named their placement something long. Truncating keeps
48
+ * the analytics label degraded-but-present instead of losing the offer entirely.
40
49
  */
41
- fetchOffers(userId: string, attributes: UserAttributes): Promise<{
50
+ fetchOffers(userId: string, attributes: UserAttributes, placementId?: string): Promise<{
42
51
  offers: OfferModel[];
43
52
  }>;
44
53
  /**
45
- * Start a transaction for an offer
54
+ * Start a transaction for an offer. `useCase` is omitted for `'reduceChurn'` (the
55
+ * contract's own default) rather than sent explicitly, keeping the wire payload
56
+ * byte-identical to before this dimension existed for every existing caller.
57
+ *
58
+ * When it IS sent it carries the WIRE value (`post-action-reward`), never the
59
+ * public symbol — see `core/useCase.ts`.
46
60
  */
47
- startTransaction(campaignId: string, userId: string): Promise<StartTransactionResponse>;
61
+ startTransaction(campaignId: string, userId: string, useCase?: UseCase): Promise<StartTransactionResponse>;
48
62
  /**
49
63
  * Send grant signal (provisional or final)
50
64
  */
@@ -75,9 +89,24 @@ export declare class APIClient {
75
89
  name?: string;
76
90
  }): Promise<IdentifyUserResponse>;
77
91
  /**
78
- * Fetch remote config
92
+ * Fetch remote config.
93
+ *
94
+ * `useCase` selects which SURFACE the response's `ui` block resolves, and the
95
+ * response echoes it back as `ui.useCase` — both in WIRE values (see
96
+ * `core/useCase.ts`). The param is deliberately OMITTED for both `undefined` and
97
+ * an explicit `'reduceChurn'`, so the eager configure()-time fetch stays
98
+ * byte-identical to every pre-use-case SDK — the same convention
99
+ * `startTransaction` already uses for this dimension.
100
+ *
101
+ * Two callers, two very different requests:
102
+ * - The EAGER fetch (once, at configure()) passes no use case. Its response
103
+ * carries reduceChurn in `ui` PLUS the `useCases` prefetch block.
104
+ * - The LAZY fetch (at most once per use case, only when the block did not
105
+ * carry it) passes one. Its response resolves that surface in `ui`
106
+ * INCLUDING experiments — which the prefetch block, carrying only default
107
+ * variants, cannot do.
79
108
  */
80
- fetchConfig(userId: string, sdkVersion: string): Promise<RemoteConfigResponse>;
109
+ fetchConfig(userId: string, sdkVersion: string, useCase?: UseCase): Promise<RemoteConfigResponse>;
81
110
  /**
82
111
  * Report a client error (fire-and-forget)
83
112
  */
@@ -1 +1 @@
1
- {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"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"}