@encorekit/web-sdk 2.2.1 → 2.4.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/README.md +66 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/preview.cjs +2 -0
- package/dist/cjs/preview.cjs.map +1 -0
- package/dist/cjs/react.cjs +1 -1
- package/dist/cjs/react.cjs.map +1 -1
- package/dist/esm/chunks/ClaimReminder-DFyrm5bJ.js +2 -0
- package/dist/esm/chunks/ClaimReminder-DFyrm5bJ.js.map +1 -0
- package/dist/esm/chunks/GiftsButton-B0lVB463.js +2 -0
- package/dist/esm/chunks/GiftsButton-B0lVB463.js.map +1 -0
- package/dist/esm/chunks/TriggerHost-CNTiNrTH.js +2 -0
- package/dist/esm/chunks/TriggerHost-CNTiNrTH.js.map +1 -0
- package/dist/esm/chunks/autoPops-CngtK_R0.js +2 -0
- package/dist/esm/chunks/autoPops-CngtK_R0.js.map +1 -0
- package/dist/esm/chunks/customClaim-B4uj-aOc.js +2 -0
- package/dist/esm/chunks/customClaim-B4uj-aOc.js.map +1 -0
- package/dist/esm/chunks/eligibility-BY7fL8Ve.js +2 -0
- package/dist/esm/chunks/eligibility-BY7fL8Ve.js.map +1 -0
- package/dist/esm/chunks/index-CaBSqauy.js +2 -0
- package/dist/esm/chunks/index-CaBSqauy.js.map +1 -0
- package/dist/esm/chunks/lookValues-B9z2VWpH.js +2 -0
- package/dist/esm/chunks/lookValues-B9z2VWpH.js.map +1 -0
- package/dist/esm/chunks/sduiView-Ds7QtFId.js +2 -0
- package/dist/esm/chunks/sduiView-Ds7QtFId.js.map +1 -0
- package/dist/esm/chunks/spot-DkKMLpB-.js +2 -0
- package/dist/esm/chunks/spot-DkKMLpB-.js.map +1 -0
- package/dist/esm/chunks/template-B9p4CbPD.js +2 -0
- package/dist/esm/chunks/template-B9p4CbPD.js.map +1 -0
- package/dist/esm/chunks/textSlots-BnwxUg9V.js +2 -0
- package/dist/esm/chunks/textSlots-BnwxUg9V.js.map +1 -0
- package/dist/esm/chunks/timers-Bva4yoGM.js +2 -0
- package/dist/esm/chunks/timers-Bva4yoGM.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/preview.js +2 -0
- package/dist/esm/preview.js.map +1 -0
- package/dist/esm/react.js +1 -1
- package/dist/esm/react.js.map +1 -1
- package/dist/umd/encore.min.js +1 -1
- package/dist/umd/encore.min.js.map +1 -1
- package/package.json +9 -1
- package/types/analytics/DiagnosticsOutbox.d.ts +1 -0
- package/types/analytics/DiagnosticsOutbox.d.ts.map +1 -1
- package/types/analytics/events.d.ts +108 -8
- package/types/analytics/events.d.ts.map +1 -1
- package/types/analytics/models.d.ts +2 -0
- package/types/analytics/models.d.ts.map +1 -1
- package/types/analytics/transport.d.ts +6 -0
- package/types/analytics/transport.d.ts.map +1 -1
- package/types/api/APIClient.d.ts +70 -33
- package/types/api/APIClient.d.ts.map +1 -1
- package/types/api/contract.d.ts +4 -1
- package/types/api/contract.d.ts.map +1 -1
- package/types/api/generated/types.d.ts +994 -17
- package/types/api/generated/types.d.ts.map +1 -1
- package/types/api/models.d.ts +29 -8
- package/types/api/models.d.ts.map +1 -1
- package/types/api/offerBuilder.d.ts +51 -0
- package/types/api/offerBuilder.d.ts.map +1 -0
- package/types/core/Configuration.d.ts +9 -0
- package/types/core/Configuration.d.ts.map +1 -1
- package/types/core/Encore.d.ts +145 -3
- package/types/core/Encore.d.ts.map +1 -1
- package/types/core/OfferManager.d.ts +27 -5
- package/types/core/OfferManager.d.ts.map +1 -1
- package/types/core/PlacementBuilder.d.ts +6 -1
- package/types/core/PlacementBuilder.d.ts.map +1 -1
- package/types/core/SignalManager.d.ts.map +1 -1
- package/types/core/StorageManager.d.ts +3 -2
- package/types/core/StorageManager.d.ts.map +1 -1
- package/types/core/StrictUnlockReconciler.d.ts +1 -1
- package/types/core/StrictUnlockReconciler.d.ts.map +1 -1
- package/types/core/claimHandle.d.ts +44 -0
- package/types/core/claimHandle.d.ts.map +1 -0
- package/types/core/claimLog.d.ts +102 -0
- package/types/core/claimLog.d.ts.map +1 -0
- package/types/core/claimRefusal.d.ts +3 -0
- package/types/core/claimRefusal.d.ts.map +1 -0
- package/types/core/claimScreenVariant.d.ts +3 -0
- package/types/core/claimScreenVariant.d.ts.map +1 -0
- package/types/core/claimStatusCheck.d.ts +62 -0
- package/types/core/claimStatusCheck.d.ts.map +1 -0
- package/types/core/giftVariant.d.ts +5 -0
- package/types/core/giftVariant.d.ts.map +1 -1
- package/types/core/hostDisplay.d.ts +9 -2
- package/types/core/hostDisplay.d.ts.map +1 -1
- package/types/core/sduiVariables.d.ts +20 -0
- package/types/core/sduiVariables.d.ts.map +1 -0
- package/types/core/strings.d.ts +114 -0
- package/types/core/strings.d.ts.map +1 -0
- package/types/core/unlockCode.d.ts +12 -2
- package/types/core/unlockCode.d.ts.map +1 -1
- package/types/core/userKeys.d.ts +7 -0
- package/types/core/userKeys.d.ts.map +1 -0
- package/types/core/version.d.ts +1 -1
- package/types/experiments/ExposureOutbox.d.ts +1 -0
- package/types/experiments/ExposureOutbox.d.ts.map +1 -1
- package/types/preview.d.ts +51 -0
- package/types/preview.d.ts.map +1 -0
- package/types/react.d.ts +53 -1
- package/types/react.d.ts.map +1 -1
- package/types/sdui/actions.d.ts +93 -0
- package/types/sdui/actions.d.ts.map +1 -0
- package/types/sdui/bindings.d.ts +63 -0
- package/types/sdui/bindings.d.ts.map +1 -0
- package/types/sdui/compile.d.ts +88 -0
- package/types/sdui/compile.d.ts.map +1 -0
- package/types/sdui/conditions.d.ts +22 -0
- package/types/sdui/conditions.d.ts.map +1 -0
- package/types/sdui/context.d.ts +132 -0
- package/types/sdui/context.d.ts.map +1 -0
- package/types/sdui/countdown.d.ts +31 -0
- package/types/sdui/countdown.d.ts.map +1 -0
- package/types/sdui/decode.d.ts +35 -0
- package/types/sdui/decode.d.ts.map +1 -0
- package/types/sdui/deps.d.ts +43 -0
- package/types/sdui/deps.d.ts.map +1 -0
- package/types/sdui/dominantColor.d.ts +24 -0
- package/types/sdui/dominantColor.d.ts.map +1 -0
- package/types/sdui/elements/confetti.d.ts +38 -0
- package/types/sdui/elements/confetti.d.ts.map +1 -0
- package/types/sdui/elements/content.d.ts +27 -0
- package/types/sdui/elements/content.d.ts.map +1 -0
- package/types/sdui/elements/interactive.d.ts +48 -0
- package/types/sdui/elements/interactive.d.ts.map +1 -0
- package/types/sdui/elements/layout.d.ts +41 -0
- package/types/sdui/elements/layout.d.ts.map +1 -0
- package/types/sdui/elements/marquee.d.ts +17 -0
- package/types/sdui/elements/marquee.d.ts.map +1 -0
- package/types/sdui/elements/progress.d.ts +10 -0
- package/types/sdui/elements/progress.d.ts.map +1 -0
- package/types/sdui/elements/shared.d.ts +138 -0
- package/types/sdui/elements/shared.d.ts.map +1 -0
- package/types/sdui/elements/symbols.d.ts +22 -0
- package/types/sdui/elements/symbols.d.ts.map +1 -0
- package/types/sdui/elements/triggerText.d.ts +55 -0
- package/types/sdui/elements/triggerText.d.ts.map +1 -0
- package/types/sdui/host.d.ts +274 -0
- package/types/sdui/host.d.ts.map +1 -0
- package/types/sdui/inlineMarkup.d.ts +22 -0
- package/types/sdui/inlineMarkup.d.ts.map +1 -0
- package/types/sdui/lookValues.d.ts +50 -0
- package/types/sdui/lookValues.d.ts.map +1 -0
- package/types/sdui/model.d.ts +130 -0
- package/types/sdui/model.d.ts.map +1 -0
- package/types/sdui/motion.d.ts +37 -0
- package/types/sdui/motion.d.ts.map +1 -0
- package/types/sdui/precheck.d.ts +94 -0
- package/types/sdui/precheck.d.ts.map +1 -0
- package/types/sdui/scrollMath.d.ts +32 -0
- package/types/sdui/scrollMath.d.ts.map +1 -0
- package/types/sdui/style.d.ts +99 -0
- package/types/sdui/style.d.ts.map +1 -0
- package/types/sdui/triggerKit.d.ts +24 -0
- package/types/sdui/triggerKit.d.ts.map +1 -0
- package/types/sdui/unrunnable.d.ts +11 -0
- package/types/sdui/unrunnable.d.ts.map +1 -0
- package/types/sdui/vocabulary.d.ts +119 -0
- package/types/sdui/vocabulary.d.ts.map +1 -0
- package/types/triggers/claimReminder/ClaimReminder.d.ts +65 -0
- package/types/triggers/claimReminder/ClaimReminder.d.ts.map +1 -0
- package/types/triggers/claimReminder/bindings.d.ts +40 -0
- package/types/triggers/claimReminder/bindings.d.ts.map +1 -0
- package/types/triggers/claimReminder/config.d.ts +56 -0
- package/types/triggers/claimReminder/config.d.ts.map +1 -0
- package/types/triggers/claimReminder/eligibility.d.ts +37 -0
- package/types/triggers/claimReminder/eligibility.d.ts.map +1 -0
- package/types/triggers/claimReminder/servedWindow.d.ts +15 -0
- package/types/triggers/claimReminder/servedWindow.d.ts.map +1 -0
- package/types/triggers/claimReminder/source.d.ts +29 -0
- package/types/triggers/claimReminder/source.d.ts.map +1 -0
- package/types/triggers/giftsButton/GiftsButton.d.ts +60 -0
- package/types/triggers/giftsButton/GiftsButton.d.ts.map +1 -0
- package/types/triggers/giftsButton/config.d.ts +53 -0
- package/types/triggers/giftsButton/config.d.ts.map +1 -0
- package/types/triggers/giftsButton/spot.d.ts +54 -0
- package/types/triggers/giftsButton/spot.d.ts.map +1 -0
- package/types/triggers/host/TriggerHost.d.ts +127 -0
- package/types/triggers/host/TriggerHost.d.ts.map +1 -0
- package/types/triggers/host/autoPops.d.ts +16 -0
- package/types/triggers/host/autoPops.d.ts.map +1 -0
- package/types/triggers/host/configCache.d.ts +29 -0
- package/types/triggers/host/configCache.d.ts.map +1 -0
- package/types/triggers/host/customClaim.d.ts +85 -0
- package/types/triggers/host/customClaim.d.ts.map +1 -0
- package/types/triggers/host/dismissStore.d.ts +37 -0
- package/types/triggers/host/dismissStore.d.ts.map +1 -0
- package/types/triggers/host/readThrottle.d.ts +15 -0
- package/types/triggers/host/readThrottle.d.ts.map +1 -0
- package/types/triggers/host/registry.d.ts +17 -0
- package/types/triggers/host/registry.d.ts.map +1 -0
- package/types/triggers/host/sduiView.d.ts +31 -0
- package/types/triggers/host/sduiView.d.ts.map +1 -0
- package/types/triggers/host/template.d.ts +28 -0
- package/types/triggers/host/template.d.ts.map +1 -0
- package/types/triggers/host/textSlots.d.ts +35 -0
- package/types/triggers/host/textSlots.d.ts.map +1 -0
- package/types/triggers/host/theme.d.ts +87 -0
- package/types/triggers/host/theme.d.ts.map +1 -0
- package/types/triggers/host/timers.d.ts +11 -0
- package/types/triggers/host/timers.d.ts.map +1 -0
- package/types/triggers/host/types.d.ts +278 -0
- package/types/triggers/host/types.d.ts.map +1 -0
- package/types/triggers/host/wire.d.ts +55 -0
- package/types/triggers/host/wire.d.ts.map +1 -0
- package/types/triggers/preview.d.ts +78 -0
- package/types/triggers/preview.d.ts.map +1 -0
- package/types/triggers/request.d.ts +53 -0
- package/types/triggers/request.d.ts.map +1 -0
- package/types/types.d.ts +420 -4
- package/types/types.d.ts.map +1 -1
- package/types/ui/ClaimScreen.d.ts +62 -0
- package/types/ui/ClaimScreen.d.ts.map +1 -0
- package/types/ui/CodeUnlock.d.ts +26 -2
- package/types/ui/CodeUnlock.d.ts.map +1 -1
- package/types/ui/GiftHero.d.ts.map +1 -1
- package/types/ui/GiftList.d.ts.map +1 -1
- package/types/ui/GiftPicker.d.ts.map +1 -1
- package/types/ui/GiftPickerHero.d.ts.map +1 -1
- package/types/ui/GiftReveal.d.ts.map +1 -1
- package/types/ui/GiftSheet.d.ts +5 -5
- package/types/ui/GiftSheet.d.ts.map +1 -1
- package/types/ui/GiftUnwrap.d.ts.map +1 -1
- package/types/ui/OfferCard.d.ts.map +1 -1
- package/types/ui/OfferCarousel.d.ts.map +1 -1
- package/types/ui/OfferModal.d.ts +31 -6
- package/types/ui/OfferModal.d.ts.map +1 -1
- package/types/ui/PrimerScreen.d.ts +2 -0
- package/types/ui/PrimerScreen.d.ts.map +1 -1
- package/types/ui/RedemptionScreen.d.ts +5 -0
- package/types/ui/RedemptionScreen.d.ts.map +1 -1
- package/types/ui/RewardActions.d.ts.map +1 -1
- package/types/ui/RewardCard.d.ts.map +1 -1
- package/types/ui/SduiRewardSurface.d.ts +145 -0
- package/types/ui/SduiRewardSurface.d.ts.map +1 -0
- package/types/ui/Tooltip.d.ts.map +1 -1
- package/types/ui/brandComponents.d.ts.map +1 -1
- package/types/ui/brandTint.d.ts.map +1 -1
- package/types/ui/colorScheme.d.ts +15 -0
- package/types/ui/colorScheme.d.ts.map +1 -0
- package/types/ui/covered.d.ts +12 -0
- package/types/ui/covered.d.ts.map +1 -0
- package/types/ui/giftCategoryGroups.d.ts +13 -0
- package/types/ui/giftCategoryGroups.d.ts.map +1 -1
- package/types/ui/giftCopy.d.ts +14 -9
- package/types/ui/giftCopy.d.ts.map +1 -1
- package/types/ui/giftUnwrapCopy.d.ts.map +1 -1
- package/types/ui/imageURL.d.ts +44 -0
- package/types/ui/imageURL.d.ts.map +1 -0
- package/types/ui/impressionGate.d.ts +9 -0
- package/types/ui/impressionGate.d.ts.map +1 -1
- package/types/ui/offerBadge.d.ts.map +1 -1
- package/types/ui/rewardSurface.d.ts +11 -1
- package/types/ui/rewardSurface.d.ts.map +1 -1
- package/types/ui/sduiTheme.d.ts +48 -0
- package/types/ui/sduiTheme.d.ts.map +1 -0
- package/types/ui/sheetDetents.d.ts +28 -0
- package/types/ui/sheetDetents.d.ts.map +1 -0
- package/types/ui/styles.d.ts +11 -8
- package/types/ui/styles.d.ts.map +1 -1
- package/types/ui/termsLine.d.ts +3 -3
- package/types/ui/termsLine.d.ts.map +1 -1
- package/types/ui/toast.d.ts +11 -0
- package/types/ui/toast.d.ts.map +1 -0
- package/types/utils/logger.d.ts +10 -0
- package/types/utils/logger.d.ts.map +1 -1
- package/types/utils/text.d.ts +17 -0
- package/types/utils/text.d.ts.map +1 -1
package/types/api/models.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* What stays hand-written here:
|
|
10
10
|
* - `OfferModel` / `TransactionModel`: SDK-internal VIEW models (assembled by the
|
|
11
|
-
* client
|
|
11
|
+
* client: `offerBuilder.ts` builds one OfferModel per campaign).
|
|
12
12
|
* They are not backend contract shapes, so they are not generated.
|
|
13
13
|
* - `*Request` types: the SDK's request-shaping helpers. (No contract consumers.)
|
|
14
14
|
*/
|
|
@@ -21,11 +21,15 @@ export interface OfferModel {
|
|
|
21
21
|
id: string;
|
|
22
22
|
title: string;
|
|
23
23
|
description: string;
|
|
24
|
+
/** The creative's own `description`, which SDUI's `offerDescription` reads, as Swift does. */
|
|
25
|
+
creativeDescription?: string;
|
|
24
26
|
imageUrl?: string;
|
|
25
|
-
|
|
27
|
+
/** Absent when the server sends none: the card shows its own `card.claim` string. */
|
|
28
|
+
ctaText?: string;
|
|
26
29
|
advertiserUrl: string;
|
|
27
30
|
campaignId: string;
|
|
28
|
-
|
|
31
|
+
/** Absent for a campaign served without a creative (no picture). */
|
|
32
|
+
creativeId?: string;
|
|
29
33
|
merchantName?: string;
|
|
30
34
|
logoUrl?: string;
|
|
31
35
|
/**
|
|
@@ -45,6 +49,12 @@ export interface OfferModel {
|
|
|
45
49
|
* `advertiserUrl`. See `readShareUrl` in `APIClient.ts` and `core/share.ts`.
|
|
46
50
|
*/
|
|
47
51
|
shareUrl?: string;
|
|
52
|
+
/**
|
|
53
|
+
* The advertiser's bare hostname (`campaign.expectedDomain`, `www.` dropped), for the
|
|
54
|
+
* claim screen's "Finish on {domain}". Display only: never requested. See
|
|
55
|
+
* `readExpectedDomain` in `offerBuilder.ts`.
|
|
56
|
+
*/
|
|
57
|
+
expectedDomain?: string;
|
|
48
58
|
/**
|
|
49
59
|
* Campaign-level perk line, e.g. "Enjoy 30 days of Apple Music free". Only set
|
|
50
60
|
* when non-empty.
|
|
@@ -71,21 +81,32 @@ export interface OfferModel {
|
|
|
71
81
|
* `ui/giftCategoryGroups.ts` maps it onto a gift sheet tab. Trimmed, only set when
|
|
72
82
|
* non-empty.
|
|
73
83
|
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
84
|
+
* Read tolerantly from `campaign.category` on the `/offers/search` response (nullable
|
|
85
|
+
* in the contract). Absent, the sheet renders one list with no tabs. See
|
|
86
|
+
* `readCampaignText` in `offerBuilder.ts`.
|
|
87
|
+
*
|
|
88
|
+
* Stays English on every locale: it is a key, never display text.
|
|
79
89
|
*/
|
|
80
90
|
category?: string;
|
|
91
|
+
/**
|
|
92
|
+
* The gift sheet group the server filed this offer under ("Watch & listen", "Money",
|
|
93
|
+
* "Everyday"), English, trimmed. Preferred over mapping `category` locally.
|
|
94
|
+
*/
|
|
95
|
+
categoryGroup?: string;
|
|
96
|
+
/** `categoryGroup` in the response locale, for the tab label only. */
|
|
97
|
+
categoryGroupDisplayName?: string;
|
|
81
98
|
instructions?: {
|
|
82
99
|
title: string;
|
|
83
100
|
subtitle: string;
|
|
84
101
|
ctaButtonText?: string;
|
|
102
|
+
/** The step's image, when it has one. */
|
|
103
|
+
imageUrl?: string;
|
|
85
104
|
}[];
|
|
86
105
|
quickInstructions?: string;
|
|
87
106
|
tooltipText?: string;
|
|
88
107
|
trackingParameters?: Record<string, string>;
|
|
108
|
+
/** Admin copy a variant draws by key (`propertyKey`). Blank values are absent. */
|
|
109
|
+
displayProperties?: Record<string, string>;
|
|
89
110
|
}
|
|
90
111
|
export interface TransactionModel {
|
|
91
112
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/api/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,QAAQ,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAC9C,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAM9C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/api/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `/offers/search` campaigns → the SDK's `OfferModel` list, ONE offer per campaign.
|
|
3
|
+
*
|
|
4
|
+
* Creative first: when a campaign arrives with a creative, every field
|
|
5
|
+
* comes from that creative exactly as before, and the offer-level fields are ignored.
|
|
6
|
+
* The switch to campaign-owned values happens on the server, which composes the
|
|
7
|
+
* served creative from the campaign, so every client flips together.
|
|
8
|
+
*
|
|
9
|
+
* Only a campaign with NO active creative reads the offer-level fields. Its claim link
|
|
10
|
+
* is `destinationUrl` + `trackingParameters` taken together, and without usable
|
|
11
|
+
* tracking the campaign is skipped: a link without it could not attribute the claim.
|
|
12
|
+
*/
|
|
13
|
+
import type { OfferModel } from './models';
|
|
14
|
+
/**
|
|
15
|
+
* A campaign's category field, read tolerantly: only a non-blank string is kept (trimmed).
|
|
16
|
+
* Anything else, and the field's absence on an older backend, is `undefined`, so a
|
|
17
|
+
* response with none of them maps to one list with no tabs.
|
|
18
|
+
*
|
|
19
|
+
* `category` is the shelf taxonomy name (nullable free string in the contract);
|
|
20
|
+
* `categoryGroup` is the gift sheet group the server filed it under (English, a key);
|
|
21
|
+
* `categoryGroupDisplayName` is that group in the response locale, for the tab label.
|
|
22
|
+
*/
|
|
23
|
+
export declare function readCampaignText(campaign: unknown, key: 'category' | 'categoryGroup' | 'categoryGroupDisplayName'): string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* A campaign-level URL (`heroImageUrl`, `termsUrl`), read tolerantly: a non-blank string,
|
|
26
|
+
* trimmed, that passes the SDK's https guard. Anything else, a `javascript:` or plain
|
|
27
|
+
* `http:` row included, is dropped, so a bad row can never inject a scheme.
|
|
28
|
+
*/
|
|
29
|
+
export declare function readCampaignUrl(campaign: unknown, key: 'heroImageUrl' | 'termsUrl'): string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The link a user can send someone for this offer (`campaign.shareUrl`, nullable in the
|
|
32
|
+
* contract), read tolerantly: a non-blank string,
|
|
33
|
+
* trimmed, that parses as an ABSOLUTE `http:` or `https:` URL. Anything else is absent,
|
|
34
|
+
* which the share action reports as `missing_share_link`.
|
|
35
|
+
*
|
|
36
|
+
* Only the field is dropped, never the offer: a bad link costs one button, not the
|
|
37
|
+
* offer list. A relative value is absent too, because `navigator.share` would resolve
|
|
38
|
+
* it against the HOST page and send the publisher's own URL.
|
|
39
|
+
*/
|
|
40
|
+
export declare function readShareUrl(campaign: unknown): string | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The advertiser's hostname for the claim screen's "Finish on {domain}"
|
|
43
|
+
* (`campaign.expectedDomain`): trimmed, lowercased, a leading `www.` and a trailing root dot
|
|
44
|
+
* dropped. Only a bare hostname is kept, so a bad row can never put a URL on screen.
|
|
45
|
+
*/
|
|
46
|
+
export declare function readExpectedDomain(campaign: unknown): string | undefined;
|
|
47
|
+
/** String values only, and a blank one is absent, as on iOS. Empty → undefined. */
|
|
48
|
+
export declare function readDisplayProperties(value: unknown): Record<string, string> | undefined;
|
|
49
|
+
/** Never throws: a malformed campaign is skipped, not allowed to fail the list. */
|
|
50
|
+
export declare function buildOffers(campaigns: readonly unknown[] | null | undefined): OfferModel[];
|
|
51
|
+
//# sourceMappingURL=offerBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offerBuilder.d.ts","sourceRoot":"","sources":["../../src/api/offerBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,UAAU,GAAG,eAAe,GAAG,0BAA0B,GAC7D,MAAM,GAAG,SAAS,CAMpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,cAAc,GAAG,UAAU,GAC/B,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYlE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAYxE;AAuCD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQxF;AA2ID,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,EAAE,CAQ1F"}
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
* Validates and stores SDK configuration
|
|
4
4
|
*/
|
|
5
5
|
import type { EncoreConfig } from '../types';
|
|
6
|
+
/**
|
|
7
|
+
* @internal Not in `EncoreConfig`: scopes the offers search to the presented variant, which
|
|
8
|
+
* the server filters on links it is due to drop. Only a literal `true` turns it on.
|
|
9
|
+
*/
|
|
10
|
+
export interface InternalConfigOptions {
|
|
11
|
+
filterOffersByVariant?: boolean;
|
|
12
|
+
}
|
|
6
13
|
export declare class Configuration {
|
|
7
14
|
#private;
|
|
8
15
|
/**
|
|
@@ -41,6 +48,8 @@ export declare class Configuration {
|
|
|
41
48
|
getUnlockMode(): 'strict' | 'optimistic';
|
|
42
49
|
/** Whether a labelled reward placement resolves its own variant. See `EncoreConfig`. */
|
|
43
50
|
getResolveVariantsByPlacement(): boolean;
|
|
51
|
+
/** Whether the offers search sends the presented variant. See `InternalConfigOptions`. */
|
|
52
|
+
getFilterOffersByVariant(): boolean;
|
|
44
53
|
/**
|
|
45
54
|
* Reset configuration (primarily for testing)
|
|
46
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/core/Configuration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Configuration.d.ts","sourceRoot":"","sources":["../../src/core/Configuration.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAUD,qBAAa,aAAa;;IAIxB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAmGxC;;OAEG;IACH,SAAS,IAAI,YAAY,GAAG,IAAI;IAIhC;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAI/B;;;OAGG;IACH,aAAa,IAAI,QAAQ,GAAG,YAAY;IAIxC,wFAAwF;IACxF,6BAA6B,IAAI,OAAO;IAIxC,0FAA0F;IAC1F,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd"}
|
package/types/core/Encore.d.ts
CHANGED
|
@@ -2,16 +2,96 @@
|
|
|
2
2
|
* Main Encore SDK Class
|
|
3
3
|
* Singleton class that serves as the public API entry point
|
|
4
4
|
*/
|
|
5
|
-
import type { EncoreConfig, UserAttributes, EntitlementType, EntitlementScope, EventHandler, Unsubscribe, PresentationOptions, PresentationResult, PlacementOptions, VerificationStatus, PlacementBuilder as IPlacementBuilder, RedeemOptions, RedeemResult, ShowResult, Transaction } from '../types';
|
|
5
|
+
import type { EncoreConfig, UserAttributes, EntitlementType, EntitlementScope, EventHandler, Unsubscribe, PresentationOptions, PresentationResult, PlacementOptions, VerificationStatus, PlacementBuilder as IPlacementBuilder, RedeemOptions, RedeemResult, ShowResult, Transaction, UseCase, EncoreClaim, EncoreClaimOptions, EncoreTriggers } from '../types';
|
|
6
|
+
import { APIClient } from '../api/APIClient';
|
|
7
|
+
import { type PlacementResolutionOverride } from '../analytics/placementResolved';
|
|
6
8
|
import type { NCLExperimentState } from '../experiments/types';
|
|
9
|
+
import type { ClaimReminderSource } from '../triggers/claimReminder/source';
|
|
7
10
|
import { type LogLevel } from '../utils/logger';
|
|
11
|
+
/**
|
|
12
|
+
* What an internal exit hands back to `show()`'s wrapper, so exactly one
|
|
13
|
+
* `sdk_placement_resolved` record is written per attempt no matter which path
|
|
14
|
+
* produced the result. Mirrors iOS's `OfferSheetCoordinator.present()` wrapping a
|
|
15
|
+
* `presentCore()`.
|
|
16
|
+
*
|
|
17
|
+
* `override` is set ONLY by sites whose public `ShowResult` collapses something the
|
|
18
|
+
* record still needs — the deliberately overloaded `'unavailable'`, and the
|
|
19
|
+
* `UNKNOWN_ERROR` code shared by three structurally different failures. See
|
|
20
|
+
* `PlacementResolutionOverride`.
|
|
21
|
+
*/
|
|
22
|
+
export interface OfferFlowOutcome {
|
|
23
|
+
result: ShowResult;
|
|
24
|
+
/**
|
|
25
|
+
* THE id for this attempt — the same one every analytics event from this attempt
|
|
26
|
+
* carries, so the terminal record joins to all of them. Required: it is minted
|
|
27
|
+
* above every gate in #showCore, so there is no exit that lacks one.
|
|
28
|
+
*/
|
|
29
|
+
presentationId: string;
|
|
30
|
+
variantId?: string;
|
|
31
|
+
override?: PlacementResolutionOverride;
|
|
32
|
+
/**
|
|
33
|
+
* INTERNAL: a trigger's automatic pop dropped before its sheet showed (its mount went
|
|
34
|
+
* away). Nothing happened, so no placement record is written, as on iOS.
|
|
35
|
+
*/
|
|
36
|
+
aborted?: true;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The whole years since a date of birth, on today's UTC date as the native SDKs count
|
|
40
|
+
* it: floored, so the age turns only on the birthday itself. Null for an unreadable or
|
|
41
|
+
* future date, or one that gives an age outside 0 to 120.
|
|
42
|
+
*/
|
|
43
|
+
export declare function ageFromDateOfBirth(value: unknown, now?: Date): number | null;
|
|
44
|
+
/**
|
|
45
|
+
* Attributes as they may be kept (`age` for this page load only, see savedAttributes): `age` only as a number from 0 to 120,
|
|
46
|
+
* floored to whole years (15.5 is 15), so a fractional age still restricts a minor; a
|
|
47
|
+
* `dateOfBirth` only when it names a real date. The date stays on the device, and
|
|
48
|
+
* `outgoingAttributes` turns it into an age each time attributes are sent.
|
|
49
|
+
*/
|
|
50
|
+
export declare function cleanUserAttributes<T extends UserAttributes>(attributes: T): T;
|
|
51
|
+
/**
|
|
52
|
+
* Kept attributes as they are sent: never the date of birth, and `age` as of now. The
|
|
53
|
+
* age comes from `age`, from `dateOfBirth`, or, given both, the lower of the two, so a
|
|
54
|
+
* minor is never sent as an adult. A date that gives no age adds none.
|
|
55
|
+
*/
|
|
56
|
+
export declare function outgoingAttributes<T extends UserAttributes>(attributes: T, now?: Date): T;
|
|
8
57
|
export declare class EncoreSDK {
|
|
9
58
|
#private;
|
|
59
|
+
/**
|
|
60
|
+
* Drop-in UI pieces a host places in its own layout.
|
|
61
|
+
*
|
|
62
|
+
* `mount(id, element, { placement, useCase, autoOpen, ... })` draws trigger
|
|
63
|
+
* `id` in `element`. It renders nothing (zero height) until there is something to
|
|
64
|
+
* show, including before `configure()`, for an id this version does not ship, and for
|
|
65
|
+
* churn, and never throws. An untyped `layout` pins a look for demos and tests only
|
|
66
|
+
* (as Swift's `@_spi(EncoreDemo)`): apps never pin, Encore picks looks per placement. Returns a handle whose
|
|
67
|
+
* `unmount()` removes it. `claimReminder.mount(element, options)` is
|
|
68
|
+
* `mount('claimReminder', element, options)`, and likewise `giftsButton`.
|
|
69
|
+
*/
|
|
70
|
+
readonly triggers: EncoreTriggers;
|
|
71
|
+
/**
|
|
72
|
+
* Your own gifts button or claim reminder, counted and driven by Encore: a handle for
|
|
73
|
+
* `placement` whose `state` says what to draw (`hidden`, `gifts`, `reminder`). Bind your
|
|
74
|
+
* view with `handle.bind(element)` (or report visibility with `setVisible` and call
|
|
75
|
+
* `tap()`); Encore counts the impression and the tap, opens the reward sheet, and
|
|
76
|
+
* calls `onResult`. Encore decides what it shows after a claim and after a completion
|
|
77
|
+
* (rules read once the view is on screen; the defaults until then). Never throws; `hidden` until the
|
|
78
|
+
* SDK is configured.
|
|
79
|
+
*/
|
|
80
|
+
claim(options: EncoreClaimOptions): EncoreClaim;
|
|
81
|
+
/**
|
|
82
|
+
* 🔴 INTERNAL: binds the claims adapter the claim reminder reads (null unbinds).
|
|
83
|
+
* Static, so it stays off the public instance. Its callers are the SDK's own
|
|
84
|
+
* mapper over the claims bank, once that is on main, and tests.
|
|
85
|
+
*/
|
|
86
|
+
static bindClaimReminderSource(sdk: EncoreSDK, source: ClaimReminderSource | null): void;
|
|
10
87
|
constructor();
|
|
11
88
|
/**
|
|
12
89
|
* Configure the SDK with API key and options
|
|
13
90
|
*/
|
|
14
91
|
configure(config: EncoreConfig): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Identify user with custom user ID and optionally set attributes
|
|
94
|
+
*/
|
|
15
95
|
identify(userId: string, attributes?: UserAttributes): void;
|
|
16
96
|
/**
|
|
17
97
|
* Get current user ID
|
|
@@ -87,9 +167,45 @@ export declare class EncoreSDK {
|
|
|
87
167
|
*/
|
|
88
168
|
revokeEntitlements(): Promise<boolean>;
|
|
89
169
|
/**
|
|
90
|
-
* Set user attributes (merges with existing attributes)
|
|
170
|
+
* Set user attributes (merges with existing attributes).
|
|
171
|
+
*
|
|
172
|
+
* A `language` here is not kept as an attribute: it is forwarded to
|
|
173
|
+
* `setLanguage()` (see `UserAttributes.language`, deprecated).
|
|
91
174
|
*/
|
|
92
175
|
setUserAttributes(attributes: UserAttributes): void;
|
|
176
|
+
/**
|
|
177
|
+
* Show Encore's copy and offers in `tag`, a BCP 47 language tag such as `'fr'` or
|
|
178
|
+
* `'pt-BR'`, until `clearLanguage()`. Any case is accepted and stored in BCP 47
|
|
179
|
+
* case (`'PT-br'` → `'pt-BR'`), with a deprecated code replaced (`'iw'` →
|
|
180
|
+
* `'he'`); separators are hyphens only.
|
|
181
|
+
*
|
|
182
|
+
* The tag rides the next `/config` and `/offers/search` requests, so the sheet's
|
|
183
|
+
* copy and its offers are always in one language, and analytics events carry the
|
|
184
|
+
* locale the server then serves. Only languages enabled for your app are served;
|
|
185
|
+
* anything else falls back to the browser's `Accept-Language`, then the app's
|
|
186
|
+
* default language. Call it after `configure()`.
|
|
187
|
+
*
|
|
188
|
+
* The choice is kept on this device (localStorage, when the browser allows it)
|
|
189
|
+
* until `clearLanguage()`: a later `configure()`, a reload and `reset()` keep it.
|
|
190
|
+
* A change drops the served strings and the cached copy and offers and asks
|
|
191
|
+
* `/config` again at once; once it answers, the offers are fetched again in the new
|
|
192
|
+
* language and `user_identified` is sent again, as on iOS and Android. Setting the
|
|
193
|
+
* current language again does nothing. A value that is not a well-formed tag
|
|
194
|
+
* (`'pt_BR'`, `'english'`, `' fr'`) is ignored with one console warning, never
|
|
195
|
+
* thrown, and the current language stays. A new identity (`identify()` with
|
|
196
|
+
* another user, `reset()`) keeps it.
|
|
197
|
+
* iOS, Android, React Native and Flutter have the same call.
|
|
198
|
+
*/
|
|
199
|
+
setLanguage(tag: string): void;
|
|
200
|
+
/**
|
|
201
|
+
* Stop choosing a language: forget the `setLanguage()` choice on this device, so
|
|
202
|
+
* copy and offers follow the browser's `Accept-Language` again. Every attribute is
|
|
203
|
+
* kept. Like any language change it drops the served strings and the config and
|
|
204
|
+
* offer caches, and it asks `/config` again at once for the current user (with no
|
|
205
|
+
* `?language=`), then fetches the offers again and identifies again. A no-op when
|
|
206
|
+
* no language was set. iOS, Android, React Native and Flutter have the same call.
|
|
207
|
+
*/
|
|
208
|
+
clearLanguage(): void;
|
|
93
209
|
/**
|
|
94
210
|
* Get current user attributes
|
|
95
211
|
*/
|
|
@@ -99,7 +215,9 @@ export declare class EncoreSDK {
|
|
|
99
215
|
*
|
|
100
216
|
* Resolves 'claimed' when the user claims an offer (a transaction is recorded and
|
|
101
217
|
* the advertiser opens in a new tab), 'dismissed' if the user closes the carousel,
|
|
102
|
-
* or 'unavailable' if there are no eligible offers.
|
|
218
|
+
* or 'unavailable' if there are no eligible offers. A served variant with a
|
|
219
|
+
* post-claim screen keeps the sheet up, as iOS does, and resolves 'claimed' when
|
|
220
|
+
* that sheet closes.
|
|
103
221
|
*
|
|
104
222
|
* @param placementId The publisher's placement label. Attributed on the offers
|
|
105
223
|
* request AND stamped as `placement_id` on every analytics row this
|
|
@@ -193,6 +311,30 @@ export declare class EncoreSDK {
|
|
|
193
311
|
* placement("cancel_flow", { appearance: { ... } })
|
|
194
312
|
*/
|
|
195
313
|
placement(idOrOptions?: string | PlacementOptions, options?: PlacementOptions): IPlacementBuilder;
|
|
314
|
+
/**
|
|
315
|
+
* 🔴 INTERNAL — the render-only preview behind `@encorekit/web-sdk/preview`, its only
|
|
316
|
+
* caller (which owns the session, `ready` and `destroy()`).
|
|
317
|
+
*
|
|
318
|
+
* Runs the REAL presentation (`#runOfferFlow`) on a fresh instance, never the
|
|
319
|
+
* singleton, whose only "network" is `transport`. No analytics client exists, so
|
|
320
|
+
* nothing is tracked, and nothing is stored (claims, the only path that stores, do
|
|
321
|
+
* nothing in a preview).
|
|
322
|
+
*/
|
|
323
|
+
static runPreview(session: PreviewSession, transport: PreviewTransport, useCase: UseCase): {
|
|
324
|
+
flow: Promise<OfferFlowOutcome>;
|
|
325
|
+
stop: () => void;
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/** The preview's stand-in for the API client: the only calls a presentation makes. */
|
|
329
|
+
export type PreviewTransport = Pick<APIClient, 'fetchConfig' | 'fetchOffers' | 'reportError'>;
|
|
330
|
+
/** A preview's hooks into the presentation. */
|
|
331
|
+
export interface PreviewSession {
|
|
332
|
+
/** Where the sheet mounts, inline. */
|
|
333
|
+
mount: HTMLElement | ShadowRoot;
|
|
334
|
+
/** Called once the sheet's content is in the DOM. */
|
|
335
|
+
mounted: () => void;
|
|
336
|
+
/** Set by the presentation: settles it and removes the sheet. */
|
|
337
|
+
end: (() => void) | null;
|
|
196
338
|
}
|
|
197
339
|
export declare const Encore: EncoreSDK;
|
|
198
340
|
//# sourceMappingURL=Encore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Encore.d.ts","sourceRoot":"","sources":["../../src/core/Encore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Encore.d.ts","sourceRoot":"","sources":["../../src/core/Encore.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* Offer Manager
|
|
3
3
|
* Handles offer fetching, caching, and analytics tracking
|
|
4
4
|
*/
|
|
5
|
-
import type { APIClient } from '../api/APIClient';
|
|
5
|
+
import type { APIClient, OffersSearchScope } from '../api/APIClient';
|
|
6
6
|
import type { OfferModel } from '../api/models';
|
|
7
7
|
import type { UserAttributes, UseCase } from '../types';
|
|
8
8
|
import type { AnalyticsClient } from '../analytics/AnalyticsClient';
|
|
9
|
+
import { type PresentationTrigger } from '../analytics/events';
|
|
9
10
|
export declare class OfferManager {
|
|
10
11
|
#private;
|
|
12
|
+
/** Test hook: scopes with searches still out. */
|
|
13
|
+
pendingScopeCount(): number;
|
|
11
14
|
constructor(apiClient: APIClient, userId: string, analyticsClient?: AnalyticsClient);
|
|
12
15
|
/**
|
|
13
16
|
* Fetch offers from API with optional caching.
|
|
@@ -19,9 +22,26 @@ export declare class OfferManager {
|
|
|
19
22
|
* strict presentation, and caching the narrowed set would starve a later
|
|
20
23
|
* optimistic one. Matches iOS.
|
|
21
24
|
*/
|
|
22
|
-
fetchOffers(userAttributes: UserAttributes, useCache?: boolean, placementId?: string, maxPostbackTimeMs?: number): Promise<{
|
|
25
|
+
fetchOffers(userAttributes: UserAttributes, useCache?: boolean, placementId?: string, maxPostbackTimeMs?: number, scope?: OffersSearchScope): Promise<{
|
|
23
26
|
offers: OfferModel[];
|
|
24
27
|
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Warm the cache for `scope` without presenting anything: the set a sheet already on
|
|
30
|
+
* screen reports its analytics against is left alone. Never throws. A set already
|
|
31
|
+
* cached is not fetched again.
|
|
32
|
+
*/
|
|
33
|
+
prefetchOffers(userAttributes: UserAttributes, scope?: OffersSearchScope): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* A trigger's gate: the offers the sheet would show for `scope`.
|
|
36
|
+
* The result is cached under the same key the sheet's own search reads (the scope's
|
|
37
|
+
* `wireVariantId` and `purpose` are not part of it), so a tap that opens the sheet
|
|
38
|
+
* presents these offers without searching again. A set already cached is not
|
|
39
|
+
* fetched again unless `fresh` (after a claim, the held set may still list the
|
|
40
|
+
* claimed offer); a fresh answer replaces it. In strict unlock mode the cache is
|
|
41
|
+
* bypassed and every check searches. Rejects when the search fails; nothing on
|
|
42
|
+
* screen changes.
|
|
43
|
+
*/
|
|
44
|
+
searchForTrigger(userAttributes: UserAttributes, placementId: string | undefined, scope: OffersSearchScope, maxPostbackTimeMs?: number, fresh?: boolean): Promise<OfferModel[]>;
|
|
25
45
|
/**
|
|
26
46
|
* Begin a new presentation session. `variantId` is the SDUI variant this
|
|
27
47
|
* presentation renders — stamped onto every event the session emits — and
|
|
@@ -39,7 +59,7 @@ export declare class OfferManager {
|
|
|
39
59
|
* presentation's own id the same value. Absent a caller-supplied one this still mints,
|
|
40
60
|
* which is the behaviour every non-`show()` entry point relies on.
|
|
41
61
|
*/
|
|
42
|
-
beginPresentation(variantId?: string, useCase?: UseCase, placementId?: string, presentationId?: string): string;
|
|
62
|
+
beginPresentation(variantId?: string, useCase?: UseCase, placementId?: string, presentationId?: string, experimentId?: string): string;
|
|
43
63
|
/**
|
|
44
64
|
* The live presentation's placement label, or undefined when the publisher gave
|
|
45
65
|
* none. Exposed for the strict-unlock pending record, which has to persist the
|
|
@@ -50,9 +70,11 @@ export declare class OfferManager {
|
|
|
50
70
|
/** The live presentation's id, or null between presentations. */
|
|
51
71
|
get presentationId(): string | null;
|
|
52
72
|
/**
|
|
53
|
-
* Track that an offer was presented
|
|
73
|
+
* Track that an offer was presented. Sent at most once per impression id; a repeat
|
|
74
|
+
* (a later view after a claim sent it, a second claim) is a no-op.
|
|
75
|
+
* `presentationTrigger` is `'claim'` when a claim sends it before any view did.
|
|
54
76
|
*/
|
|
55
|
-
trackOfferPresented(offer: OfferModel, impressionId: string, offerIndex: number, totalOffers: number, useCase?: UseCase): void;
|
|
77
|
+
trackOfferPresented(offer: OfferModel, impressionId: string, offerIndex: number, totalOffers: number, useCase?: UseCase, presentationTrigger?: PresentationTrigger, imageCacheHit?: boolean): void;
|
|
56
78
|
/**
|
|
57
79
|
* Track that a user navigated away from an offer (pause time tracking)
|
|
58
80
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OfferManager.d.ts","sourceRoot":"","sources":["../../src/core/OfferManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"OfferManager.d.ts","sourceRoot":"","sources":["../../src/core/OfferManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Placement Builder
|
|
3
3
|
* Fluent API for configuring and presenting offers
|
|
4
4
|
*/
|
|
5
|
-
import type { PlacementBuilder as IPlacementBuilder, PlacementOptions, RedeemResult, ShowResult, NotGrantedReason, UseCase } from '../types';
|
|
5
|
+
import type { PlacementBuilder as IPlacementBuilder, PlacementOptions, PublisherReward, RedeemResult, ShowResult, NotGrantedReason, UseCase } from '../types';
|
|
6
6
|
export type PresentationExecutor = (options?: PlacementOptions) => Promise<ShowResult>;
|
|
7
7
|
export type RedemptionExecutor = (placementId: string) => Promise<RedeemResult>;
|
|
8
8
|
export declare class PlacementBuilder implements IPlacementBuilder {
|
|
@@ -25,6 +25,11 @@ export declare class PlacementBuilder implements IPlacementBuilder {
|
|
|
25
25
|
headline(text: string): PlacementBuilder;
|
|
26
26
|
/** Counterpart to {@link headline}: same precedence, same blank-falls-through rule. */
|
|
27
27
|
subheadline(text: string): PlacementBuilder;
|
|
28
|
+
/**
|
|
29
|
+
* Your own prize for trying an offer here; the same as `PlacementOptions.publisherReward`.
|
|
30
|
+
* Passed to the sheet, which does not yet draw or grant it on web.
|
|
31
|
+
*/
|
|
32
|
+
publisherReward(reward: PublisherReward): PlacementBuilder;
|
|
28
33
|
/**
|
|
29
34
|
* Set callback for when user declines or offer not granted
|
|
30
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlacementBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PlacementBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AACvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEhF,qBAAa,gBAAiB,YAAW,iBAAiB;;gBAatD,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,QAAQ,EAAE,kBAAkB;IAQ9B;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAK3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKxC,uFAAuF;IACvF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAK3C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,gBAAgB;IAK5E;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,gBAAgB;IAK9E;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA8CjC;;;;;;;;;OASG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAItC"}
|
|
1
|
+
{"version":3,"file":"PlacementBuilder.d.ts","sourceRoot":"","sources":["../../src/core/PlacementBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,gBAAgB,IAAI,iBAAiB,EACrC,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,OAAO,EACR,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AACvF,MAAM,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAEhF,qBAAa,gBAAiB,YAAW,iBAAiB;;gBAatD,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,QAAQ,EAAE,kBAAkB;IAQ9B;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAK3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAKxC,uFAAuF;IACvF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAK3C;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB;IAK1D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,gBAAgB;IAK5E;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,GAAG,gBAAgB;IAK9E;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA8CjC;;;;;;;;;OASG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;CAItC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignalManager.d.ts","sourceRoot":"","sources":["../../src/core/SignalManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"SignalManager.d.ts","sourceRoot":"","sources":["../../src/core/SignalManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AASlD,UAAU,WAAW;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAaD,qBAAa,aAAa;;gBAUZ,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAezE;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA+C/B;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI;IA+BxE;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAmBlC;;OAEG;IACH,QAAQ,IAAI,WAAW,EAAE;IAIzB;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACG,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/F;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0GnC;;OAEG;IACH,OAAO,IAAI,IAAI;CAchB"}
|
|
@@ -22,9 +22,10 @@ export declare class StorageManager {
|
|
|
22
22
|
*/
|
|
23
23
|
remove(key: string): void;
|
|
24
24
|
/**
|
|
25
|
-
* Clear all Encore-prefixed items from storage
|
|
25
|
+
* Clear all Encore-prefixed items from storage, except those `keep` (given the
|
|
26
|
+
* unprefixed key) returns true for.
|
|
26
27
|
*/
|
|
27
|
-
clear(): void;
|
|
28
|
+
clear(keep?: (key: string) => boolean): void;
|
|
28
29
|
/**
|
|
29
30
|
* Get the current storage type being used
|
|
30
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/core/StorageManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,KAAK,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAIhE,qBAAa,cAAc;;;
|
|
1
|
+
{"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/core/StorageManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,KAAK,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,QAAQ,CAAC;AAIhE,qBAAa,cAAc;;;IA2EzB;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAoCnC;;;OAGG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IA+B7B;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAkBzB;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IA+B5C;;OAEG;IACH,cAAc,IAAI,WAAW;CAG9B"}
|
|
@@ -59,7 +59,7 @@ export declare class StrictUnlockReconciler {
|
|
|
59
59
|
* their unlock silently never lands. reset() is the destructive path, and it
|
|
60
60
|
* clears storage before this runs, so nothing carries over there.
|
|
61
61
|
*/
|
|
62
|
-
setUserId(userId: string): void;
|
|
62
|
+
setUserId(userId: string, carryPending?: boolean): void;
|
|
63
63
|
/**
|
|
64
64
|
* Record a claim as awaiting verification. Called as soon as the transaction id
|
|
65
65
|
* exists and BEFORE the advertiser redirect opens, so a tab closed one moment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StrictUnlockReconciler.d.ts","sourceRoot":"","sources":["../../src/core/StrictUnlockReconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"StrictUnlockReconciler.d.ts","sourceRoot":"","sources":["../../src/core/StrictUnlockReconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAY5D,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,sBAAsB;;gBAKrB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAMzE;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,IAAI;IASpD;;;;OAIG;IACH,WAAW,CACT,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GACjF,IAAI;IAgBP,2EAA2E;IAC3E,YAAY,IAAI,IAAI;IAKpB;;;;;;;;;OASG;IACH,UAAU,IAAI,YAAY,GAAG,IAAI;IAsCjC;;;;;OAKG;IACG,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,GAAE,MAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiBtG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `EncoreClaim` handle a host app holds for its own gifts button or claim reminder
|
|
3
|
+
* (`Encore.claim`). INTERNAL module, public object.
|
|
4
|
+
*
|
|
5
|
+
* This part is in the core bundle and stays small: the state and its listeners, and
|
|
6
|
+
* `bind()`'s DOM wiring (visibility, click, Enter/Space). Everything that decides
|
|
7
|
+
* (the sheet gate, the claim log, impressions, events, the tap and its sheet) is the
|
|
8
|
+
* controller in `triggers/host/customClaim.ts`, loaded on first use. Until it is
|
|
9
|
+
* attached the state is `hidden`, a tap resolves `unavailable`, and visibility is kept
|
|
10
|
+
* for it.
|
|
11
|
+
*/
|
|
12
|
+
import type { ClaimTarget, EncoreClaim, EncoreClaimState, ShowResult } from '../types';
|
|
13
|
+
/** What the handle needs from its controller once loaded. */
|
|
14
|
+
export interface ClaimController {
|
|
15
|
+
/**
|
|
16
|
+
* `covered`: whether something the app presents sits over every bound element that is
|
|
17
|
+
* on screen (asked when an impression's dwell starts and ends); never covered with no
|
|
18
|
+
* bound element.
|
|
19
|
+
*/
|
|
20
|
+
setVisible(fraction: number, covered?: () => boolean): void;
|
|
21
|
+
tap(target: ClaimTarget | undefined): Promise<ShowResult>;
|
|
22
|
+
dismiss(): void;
|
|
23
|
+
destroy(): void;
|
|
24
|
+
}
|
|
25
|
+
export declare class ClaimHandle implements EncoreClaim {
|
|
26
|
+
#private;
|
|
27
|
+
constructor(onDestroy?: () => void);
|
|
28
|
+
get state(): EncoreClaimState;
|
|
29
|
+
get destroyed(): boolean;
|
|
30
|
+
/** INTERNAL: the controller loaded. It hears the visibility reported so far. */
|
|
31
|
+
attach(controller: ClaimController): void;
|
|
32
|
+
/** INTERNAL: the controller's new state. Listeners hear it only when it changed. */
|
|
33
|
+
setState(next: EncoreClaimState): void;
|
|
34
|
+
subscribe(listener: (state: EncoreClaimState) => void): () => void;
|
|
35
|
+
setVisible(fraction: number): void;
|
|
36
|
+
tap(target?: ClaimTarget): Promise<ShowResult>;
|
|
37
|
+
dismiss(): void;
|
|
38
|
+
bind(element: HTMLElement, options?: {
|
|
39
|
+
target?: ClaimTarget;
|
|
40
|
+
tap?: boolean;
|
|
41
|
+
}): () => void;
|
|
42
|
+
destroy(): void;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=claimHandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claimHandle.d.ts","sourceRoot":"","sources":["../../src/core/claimHandle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAKvF,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC;IAC5D,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,IAAI,CAAC;CACjB;AAiDD,qBAAa,WAAY,YAAW,WAAW;;gBAiBjC,SAAS,CAAC,EAAE,MAAM,IAAI;IAIlC,IAAI,KAAK,IAAI,gBAAgB,CAE5B;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,gFAAgF;IAChF,MAAM,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IASzC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAYtC,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;IAoClE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMlC,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAU9C,OAAO,IAAI,IAAI;IASf,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,IAAI;IAuHzF,OAAO,IAAI,IAAI;CAqBhB"}
|