@encorekit/web-sdk 2.1.4 → 2.2.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/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/umd/encore.min.js +1 -1
- package/dist/umd/encore.min.js.map +1 -1
- package/package.json +1 -1
- package/types/api/APIClient.d.ts.map +1 -1
- package/types/api/generated/types.d.ts +56 -7
- package/types/api/generated/types.d.ts.map +1 -1
- package/types/core/Encore.d.ts.map +1 -1
- package/types/core/giftVariant.d.ts +5 -3
- package/types/core/giftVariant.d.ts.map +1 -1
- package/types/core/unlockCode.d.ts +25 -0
- package/types/core/unlockCode.d.ts.map +1 -0
- package/types/core/version.d.ts +1 -1
- package/types/types.d.ts +32 -8
- package/types/types.d.ts.map +1 -1
- package/types/ui/CodeUnlock.d.ts +151 -0
- package/types/ui/CodeUnlock.d.ts.map +1 -0
- package/types/ui/OfferModal.d.ts +6 -0
- package/types/ui/OfferModal.d.ts.map +1 -1
- package/types/ui/styles.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAe,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGtG,OAAO,KAAK,EAEV,wBAAwB,EAIxB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,yBAAyB,EAC1B,MAAM,UAAU,CAAC;AAalB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOzD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAM1E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,cAAc,GAAG,UAAU,GAC/B,MAAM,GAAG,SAAS,CAKpB;AAMD,UAAU,cAAc;IACtB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAQD,qBAAa,SAAS;;gBAKR,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM3C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAW7E;;OAEG;IACG,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY9F;;OAEG;IACG,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsP/F;;;;;;;;;;;;;;;;;OAiBG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"APIClient.d.ts","sourceRoot":"","sources":["../../src/api/APIClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ export interface paths {
|
|
|
46
46
|
organizationId: string;
|
|
47
47
|
name: string;
|
|
48
48
|
/** @enum {string} */
|
|
49
|
-
payoutModel: "CPA" | "CPC" | "CPI" | "CPM";
|
|
49
|
+
payoutModel: "CPA" | "CPC" | "CPI" | "CPL" | "CPM";
|
|
50
50
|
payoutAmount: number;
|
|
51
51
|
/** @description Attribution platform (e.g., rakuten, impact, tune) */
|
|
52
52
|
attributionPlatform: string | null;
|
|
@@ -351,7 +351,7 @@ export interface paths {
|
|
|
351
351
|
organizationId: string;
|
|
352
352
|
name: string;
|
|
353
353
|
/** @enum {string} */
|
|
354
|
-
payoutModel: "CPA" | "CPC" | "CPI" | "CPM";
|
|
354
|
+
payoutModel: "CPA" | "CPC" | "CPI" | "CPL" | "CPM";
|
|
355
355
|
payoutAmount: number;
|
|
356
356
|
/** @description Attribution platform (e.g., rakuten, impact, tune) */
|
|
357
357
|
attributionPlatform: string | null;
|
|
@@ -517,10 +517,17 @@ export interface paths {
|
|
|
517
517
|
/** Format: date-time */
|
|
518
518
|
updatedAt: string;
|
|
519
519
|
}[];
|
|
520
|
+
/** @description Opaque link a user can send to someone else for this campaign. A claim made through it attributes back to the user who shared it. MUST be absolute and http or https: both SDKs drop anything else while parsing, so a scheme-less or relative value reads as absent and no share control is drawn. ABSENT until share links ship, and a client that finds it absent must share nothing rather than falling back to another URL: an unattributed link loses the claim the share exists to carry. /offers/search only. Deliberately a plain string, not `format: uri`: that format makes the Kotlin generator emit java.net.URI, and a link its parser rejects would fail the WHOLE offers decode on Android rather than just the share button. */
|
|
521
|
+
shareUrl?: string | null;
|
|
520
522
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
521
523
|
category?: string | null;
|
|
522
524
|
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
523
525
|
categoryGroup?: string | null;
|
|
526
|
+
/** @description Estimated time from the user tapping this offer to the reward being confirmed, from recent real conversions (on demo offers, from the demo advertiser's configured behavior instead). Half confirm within medianSeconds, 9 in 10 within p90Seconds. Not a guarantee: to show a wait, use p90Seconds. Null when there is no current estimate (too few recent conversions, data more than 7 days old, or an offer that does not confirm through the advertiser); say nothing about timing then. */
|
|
527
|
+
rewardConfirmationTime?: {
|
|
528
|
+
medianSeconds: number;
|
|
529
|
+
p90Seconds: number;
|
|
530
|
+
} | null;
|
|
524
531
|
}[];
|
|
525
532
|
metadata: {
|
|
526
533
|
/** @description Total offers available */
|
|
@@ -671,6 +678,13 @@ export interface paths {
|
|
|
671
678
|
targetCountries: string[];
|
|
672
679
|
/** @description When true, this is a demo offer: a fictional brand served only to pk_test_* keys so an integration can be exercised end to end without contacting a real advertiser. Surface it as such rather than presenting it as real inventory. Absent or false means ordinary inventory. */
|
|
673
680
|
isDemo?: boolean;
|
|
681
|
+
/** @description https link to the advertiser offer terms. Null or absent: render terms copy as plain text. */
|
|
682
|
+
termsUrl?: string | null;
|
|
683
|
+
/** @description Estimated time from the user tapping this offer to the reward being confirmed, from recent real conversions (on demo offers, from the demo advertiser's configured behavior instead). Half confirm within medianSeconds, 9 in 10 within p90Seconds. Not a guarantee: to show a wait, use p90Seconds. Null when there is no current estimate (too few recent conversions, data more than 7 days old, or an offer that does not confirm through the advertiser); say nothing about timing then. */
|
|
684
|
+
rewardConfirmationTime?: {
|
|
685
|
+
medianSeconds: number;
|
|
686
|
+
p90Seconds: number;
|
|
687
|
+
} | null;
|
|
674
688
|
organization?: {
|
|
675
689
|
/** Format: uuid */
|
|
676
690
|
id: string;
|
|
@@ -693,6 +707,14 @@ export interface paths {
|
|
|
693
707
|
ctaText: string;
|
|
694
708
|
/** @description Platforms this creative supports (empty = all platforms) */
|
|
695
709
|
supportedPlatforms: ("android" | "ios" | "web")[] | null;
|
|
710
|
+
/** @description Step by step instructions from the creative, translated like the title. Null or absent: the creative has none. */
|
|
711
|
+
instructions?: {
|
|
712
|
+
title: string;
|
|
713
|
+
subtitle: string;
|
|
714
|
+
ctaButtonText?: string;
|
|
715
|
+
}[] | null;
|
|
716
|
+
/** @description A short one line version of the instructions, e.g. "sign up, complete one survey". Null or absent: the creative has none. */
|
|
717
|
+
quickInstructions?: string | null;
|
|
696
718
|
/**
|
|
697
719
|
* Format: uri
|
|
698
720
|
* @description Tokenized click URL for THIS creative. Send the end user here when they tap the offer: it records a transaction attributed to (your app, this offer, this creative, the userId you supplied) and 302-redirects to the advertiser with the transaction id substituted. Treat it as opaque, do not modify it. Present on serve responses; absent when includeAllRegions is set.
|
|
@@ -994,6 +1016,19 @@ export interface paths {
|
|
|
994
1016
|
termsUrl?: string | null;
|
|
995
1017
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
996
1018
|
category?: string | null;
|
|
1019
|
+
/** @description Step by step instructions from the creative, translated like the title. Null or absent: the creative has none. */
|
|
1020
|
+
instructions?: {
|
|
1021
|
+
title: string;
|
|
1022
|
+
subtitle: string;
|
|
1023
|
+
ctaButtonText?: string;
|
|
1024
|
+
}[] | null;
|
|
1025
|
+
/** @description A short one line version of the instructions, e.g. "sign up, complete one survey". Null or absent: the creative has none. */
|
|
1026
|
+
quickInstructions?: string | null;
|
|
1027
|
+
/** @description Estimated time from the user tapping this offer to the reward being confirmed, from recent real conversions (on demo offers, from the demo advertiser's configured behavior instead). Half confirm within medianSeconds, 9 in 10 within p90Seconds. Not a guarantee: to show a wait, use p90Seconds. Null when there is no current estimate (too few recent conversions, data more than 7 days old, or an offer that does not confirm through the advertiser); say nothing about timing then. */
|
|
1028
|
+
rewardConfirmationTime?: {
|
|
1029
|
+
medianSeconds: number;
|
|
1030
|
+
p90Seconds: number;
|
|
1031
|
+
} | null;
|
|
997
1032
|
}[];
|
|
998
1033
|
};
|
|
999
1034
|
};
|
|
@@ -2301,7 +2336,7 @@ export interface paths {
|
|
|
2301
2336
|
path?: never;
|
|
2302
2337
|
cookie?: never;
|
|
2303
2338
|
};
|
|
2304
|
-
/** @description Get unified SDK configuration including SDUI, entitlements, experiments, and remote config. This endpoint replaces /ui-config with a cleaner structure. Entitlement mode is implicit: if entitlements.iap.productId exists, use IAP mode; otherwise use Native mode. Pass `useCase` to configure a surface other than churn-intervention; the response echoes it as ui.useCase. `demoVariant` names an SDUI variant to serve for this request. It is honoured on a TEST key (pk_test_*) for any app, and
|
|
2339
|
+
/** @description Get unified SDK configuration including SDUI, entitlements, experiments, and remote config. This endpoint replaces /ui-config with a cleaner structure. Entitlement mode is implicit: if entitlements.iap.productId exists, use IAP mode; otherwise use Native mode. Pass `useCase` to configure a surface other than churn-intervention; the response echoes it as ui.useCase. `demoVariant` names an SDUI variant to serve for this request. It is honoured on a TEST key (pk_test_*) for any app, and on a live key only for Encore's own demo apps; for every other app it is ignored silently (never an error). It exists for demos and previews: Encore's own demo pages, and a publisher who wants to see the other variants against their own test key. Requesting a surface is all it takes to be served it — no setup call is required. A surface Encore has explicitly switched off for this app, or one with no variant available, returns ui.template: null — clients must no-op, never reuse another use case's template. */
|
|
2305
2340
|
get: {
|
|
2306
2341
|
parameters: {
|
|
2307
2342
|
query: {
|
|
@@ -2313,7 +2348,7 @@ export interface paths {
|
|
|
2313
2348
|
language?: string;
|
|
2314
2349
|
/** @description Which Encore surface is being configured. Omit for today's behaviour. Requesting a surface is all it takes to be served it — no setup call is required. A surface Encore has explicitly switched off for this app, or one with no variant available, resolves to template: null — it NEVER falls back to another use case's template. */
|
|
2315
2350
|
useCase?: "churn-intervention" | "post-action-reward";
|
|
2316
|
-
/** @description Demos and previews only. The SDUI variant file stem to serve for this request, e.g. 'giftUnwrap'. Honoured on a TEST key (pk_test_*) for any app
|
|
2351
|
+
/** @description Demos and previews only. The SDUI variant file stem to serve for this request, e.g. 'giftUnwrap'. Honoured on a TEST key (pk_test_*) for any app. On a live key it is honoured only for Encore's own demo apps; for every other app it is ignored silently and resolution is unchanged, never an error. Intended for Encore's internal demos and for a publisher previewing the other variants against their own test key. An honoured value bypasses app targeting, experiments and arm weights, and WIDENS the status filter from 'active' to 'active' or 'valid' — the filter is widened, not removed, so a draft, testing, invalid or archived variant is still refused. The use-case partition, the per-app kill switch and the SDK version gate all still apply. Note that a test key also serves the demo campaign catalog rather than live advertiser inventory, and tags the request as test traffic in analytics. */
|
|
2317
2352
|
demoVariant?: string;
|
|
2318
2353
|
};
|
|
2319
2354
|
header?: never;
|
|
@@ -4082,7 +4117,7 @@ export interface paths {
|
|
|
4082
4117
|
* @description Campaign payout model (CPA / CPC / CPI / CPM).
|
|
4083
4118
|
* @enum {string}
|
|
4084
4119
|
*/
|
|
4085
|
-
model: "CPA" | "CPC" | "CPI" | "CPM";
|
|
4120
|
+
model: "CPA" | "CPC" | "CPI" | "CPL" | "CPM";
|
|
4086
4121
|
};
|
|
4087
4122
|
/** @description The campaign's categories (for offer-wall filter tabs). Empty when the campaign has none. */
|
|
4088
4123
|
categories: {
|
|
@@ -4642,7 +4677,7 @@ export interface components {
|
|
|
4642
4677
|
organizationId: string;
|
|
4643
4678
|
name: string;
|
|
4644
4679
|
/** @enum {string} */
|
|
4645
|
-
payoutModel: "CPA" | "CPC" | "CPI" | "CPM";
|
|
4680
|
+
payoutModel: "CPA" | "CPC" | "CPI" | "CPL" | "CPM";
|
|
4646
4681
|
payoutAmount: number;
|
|
4647
4682
|
/** @description Attribution platform (e.g., rakuten, impact, tune) */
|
|
4648
4683
|
attributionPlatform: string | null;
|
|
@@ -4808,10 +4843,17 @@ export interface components {
|
|
|
4808
4843
|
/** Format: date-time */
|
|
4809
4844
|
updatedAt: string;
|
|
4810
4845
|
}[];
|
|
4846
|
+
/** @description Opaque link a user can send to someone else for this campaign. A claim made through it attributes back to the user who shared it. MUST be absolute and http or https: both SDKs drop anything else while parsing, so a scheme-less or relative value reads as absent and no share control is drawn. ABSENT until share links ship, and a client that finds it absent must share nothing rather than falling back to another URL: an unattributed link loses the claim the share exists to carry. /offers/search only. Deliberately a plain string, not `format: uri`: that format makes the Kotlin generator emit java.net.URI, and a link its parser rejects would fail the WHOLE offers decode on Android rather than just the share button. */
|
|
4847
|
+
shareUrl?: string | null;
|
|
4811
4848
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
4812
4849
|
category?: string | null;
|
|
4813
4850
|
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
4814
4851
|
categoryGroup?: string | null;
|
|
4852
|
+
/** @description Estimated time from the user tapping this offer to the reward being confirmed, from recent real conversions (on demo offers, from the demo advertiser's configured behavior instead). Half confirm within medianSeconds, 9 in 10 within p90Seconds. Not a guarantee: to show a wait, use p90Seconds. Null when there is no current estimate (too few recent conversions, data more than 7 days old, or an offer that does not confirm through the advertiser); say nothing about timing then. */
|
|
4853
|
+
rewardConfirmationTime?: {
|
|
4854
|
+
medianSeconds: number;
|
|
4855
|
+
p90Seconds: number;
|
|
4856
|
+
} | null;
|
|
4815
4857
|
}[];
|
|
4816
4858
|
metadata: {
|
|
4817
4859
|
/** @description Total offers available */
|
|
@@ -4838,7 +4880,7 @@ export interface components {
|
|
|
4838
4880
|
organizationId: string;
|
|
4839
4881
|
name: string;
|
|
4840
4882
|
/** @enum {string} */
|
|
4841
|
-
payoutModel: "CPA" | "CPC" | "CPI" | "CPM";
|
|
4883
|
+
payoutModel: "CPA" | "CPC" | "CPI" | "CPL" | "CPM";
|
|
4842
4884
|
payoutAmount: number;
|
|
4843
4885
|
/** @description Attribution platform (e.g., rakuten, impact, tune) */
|
|
4844
4886
|
attributionPlatform: string | null;
|
|
@@ -5004,10 +5046,17 @@ export interface components {
|
|
|
5004
5046
|
/** Format: date-time */
|
|
5005
5047
|
updatedAt: string;
|
|
5006
5048
|
}[];
|
|
5049
|
+
/** @description Opaque link a user can send to someone else for this campaign. A claim made through it attributes back to the user who shared it. MUST be absolute and http or https: both SDKs drop anything else while parsing, so a scheme-less or relative value reads as absent and no share control is drawn. ABSENT until share links ship, and a client that finds it absent must share nothing rather than falling back to another URL: an unattributed link loses the claim the share exists to carry. /offers/search only. Deliberately a plain string, not `format: uri`: that format makes the Kotlin generator emit java.net.URI, and a link its parser rejects would fail the WHOLE offers decode on Android rather than just the share button. */
|
|
5050
|
+
shareUrl?: string | null;
|
|
5007
5051
|
/** @description Display name of the campaign category, e.g. "Music and Audio". Free string: the taxonomy is admin-editable, so accept any value. */
|
|
5008
5052
|
category?: string | null;
|
|
5009
5053
|
/** @description The gift-sheet group this campaign files under: "Watch & listen", "Money" or "Everyday". Derived from `category` by the server so a native chip strip shows what web tabs show without holding the taxonomy map. Always set: an absent, blank or unmapped category files under "Everyday", so every offer sits in some group. Whether a strip is worth drawing is the client's call, because only it knows which offers its sheet lists. /offers/search only: web-sdk holds its own copy of the map and groups `category` itself. */
|
|
5010
5054
|
categoryGroup?: string | null;
|
|
5055
|
+
/** @description Estimated time from the user tapping this offer to the reward being confirmed, from recent real conversions (on demo offers, from the demo advertiser's configured behavior instead). Half confirm within medianSeconds, 9 in 10 within p90Seconds. Not a guarantee: to show a wait, use p90Seconds. Null when there is no current estimate (too few recent conversions, data more than 7 days old, or an offer that does not confirm through the advertiser); say nothing about timing then. */
|
|
5056
|
+
rewardConfirmationTime?: {
|
|
5057
|
+
medianSeconds: number;
|
|
5058
|
+
p90Seconds: number;
|
|
5059
|
+
} | null;
|
|
5011
5060
|
};
|
|
5012
5061
|
Creative: {
|
|
5013
5062
|
/** Format: uuid */
|