@namiml/sdk-core 3.5.0-dev.202610312243 → 3.5.0-dev.202611011549
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/index.cjs +168 -19
- package/dist/index.d.ts +94 -3
- package/dist/index.mjs +159 -20
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -106,7 +106,7 @@ const {
|
|
|
106
106
|
// version — stamped by scripts/version.sh
|
|
107
107
|
NAMI_SDK_VERSION: exports.NAMI_SDK_VERSION = "3.5.0",
|
|
108
108
|
// full package version including dev suffix — stamped by scripts/version.sh
|
|
109
|
-
NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.5.0-dev.
|
|
109
|
+
NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.5.0-dev.202611011549",
|
|
110
110
|
// environments
|
|
111
111
|
PRODUCTION: exports.PRODUCTION = "production", DEVELOPMENT: exports.DEVELOPMENT = "development",
|
|
112
112
|
// error messages
|
|
@@ -64652,33 +64652,60 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64652
64652
|
getCurrentFlowProgress(key) {
|
|
64653
64653
|
if (!this.currentFlow)
|
|
64654
64654
|
return 1;
|
|
64655
|
-
|
|
64655
|
+
const position = this.getCurrentFlowStepPosition();
|
|
64656
|
+
if (!position)
|
|
64657
|
+
return 0;
|
|
64658
|
+
let progress = position.index / position.total;
|
|
64659
|
+
progress = Math.max(0, Math.min(1, progress));
|
|
64660
|
+
if (key) {
|
|
64661
|
+
this.setLastAnimatedFlowProgress(key, progress);
|
|
64662
|
+
}
|
|
64663
|
+
return progress;
|
|
64664
|
+
}
|
|
64665
|
+
/**
|
|
64666
|
+
* Gets the 1-based position of the current screen within the flow, using the
|
|
64667
|
+
* same step math as {@link getCurrentFlowProgress}.
|
|
64668
|
+
* @returns The current step index (1-based), or 0 when unknown
|
|
64669
|
+
*/
|
|
64670
|
+
getCurrentFlowStepIndex() {
|
|
64671
|
+
const position = this.getCurrentFlowStepPosition();
|
|
64672
|
+
if (!position)
|
|
64656
64673
|
return 0;
|
|
64674
|
+
return Math.max(0, Math.min(position.total, position.index));
|
|
64675
|
+
}
|
|
64676
|
+
/**
|
|
64677
|
+
* Gets the total number of screen steps the current flow's progress is measured against.
|
|
64678
|
+
* @returns The total step count, or 0 when unknown (no open flow, no current step, no screens)
|
|
64679
|
+
*/
|
|
64680
|
+
getTotalFlowSteps() {
|
|
64681
|
+
return this.getCurrentFlowStepPosition()?.total ?? 0;
|
|
64682
|
+
}
|
|
64683
|
+
/**
|
|
64684
|
+
* Resolves the current flow position as an integer pair. `index / total` is the
|
|
64685
|
+
* flow progress. Returns null when the position is unknown.
|
|
64686
|
+
*/
|
|
64687
|
+
getCurrentFlowStepPosition() {
|
|
64688
|
+
if (!this.currentFlow)
|
|
64689
|
+
return null;
|
|
64690
|
+
if (!this.currentFlow.currentFlowStep)
|
|
64691
|
+
return null;
|
|
64657
64692
|
const allScreens = this.currentFlow.steps.filter(step => step.type === NamiFlowStepType.SCREEN);
|
|
64658
64693
|
if (allScreens.length === 0)
|
|
64659
|
-
return
|
|
64694
|
+
return null;
|
|
64660
64695
|
const visitedScreens = this.currentFlow.stepcrumbs.filter(step => step.type === NamiFlowStepType.SCREEN);
|
|
64661
64696
|
if (visitedScreens.length === 0)
|
|
64662
|
-
return
|
|
64697
|
+
return null;
|
|
64663
64698
|
const navGraph = this.buildNavGraph(this.currentFlow);
|
|
64664
64699
|
const currentStep = this.currentFlow.currentFlowStep;
|
|
64665
64700
|
// Find the branch point (first screen with multiple forward paths)
|
|
64666
64701
|
const branchPoint = this.findBranchPoint(allScreens, navGraph);
|
|
64667
|
-
let progress = 0;
|
|
64668
64702
|
if (branchPoint) {
|
|
64669
64703
|
// Branching flow
|
|
64670
|
-
|
|
64671
|
-
}
|
|
64672
|
-
else {
|
|
64673
|
-
// Linear flow
|
|
64674
|
-
const currentIndex = allScreens.findIndex(s => s.id === currentStep.id);
|
|
64675
|
-
progress = currentIndex >= 0 ? (currentIndex + 1) / allScreens.length : 0;
|
|
64676
|
-
}
|
|
64677
|
-
progress = Math.max(0, Math.min(1, progress));
|
|
64678
|
-
if (key) {
|
|
64679
|
-
this.setLastAnimatedFlowProgress(key, progress);
|
|
64704
|
+
return this.calculateBranchingProgress(visitedScreens, allScreens, currentStep, branchPoint, navGraph);
|
|
64680
64705
|
}
|
|
64681
|
-
|
|
64706
|
+
// Linear flow
|
|
64707
|
+
const currentIndex = allScreens.findIndex(s => s.id === currentStep.id);
|
|
64708
|
+
return { index: currentIndex >= 0 ? currentIndex + 1 : 0, total: allScreens.length };
|
|
64682
64709
|
}
|
|
64683
64710
|
/**
|
|
64684
64711
|
* Find the first screen that has branching (multiple forward navigation targets)
|
|
@@ -64692,7 +64719,8 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64692
64719
|
return null;
|
|
64693
64720
|
}
|
|
64694
64721
|
/**
|
|
64695
|
-
* Calculate
|
|
64722
|
+
* Calculate the step position for flows with branching (supports 2+ branches).
|
|
64723
|
+
* Progress is `index / total`.
|
|
64696
64724
|
*/
|
|
64697
64725
|
calculateBranchingProgress(visitedScreens, allScreens, currentStep, branchPoint, navGraph) {
|
|
64698
64726
|
const visitedCount = visitedScreens.length;
|
|
@@ -64706,14 +64734,14 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64706
64734
|
// - visitedScreens = currentPosition + 1 (0-indexed)
|
|
64707
64735
|
// - minimumTotalPathLength = branchPosition + 2
|
|
64708
64736
|
// (all screens before branch + branch itself + at least 1 screen after)
|
|
64709
|
-
return
|
|
64737
|
+
return { index: currentIndexInAll + 1, total: branchPointIndexInAll + 2 };
|
|
64710
64738
|
}
|
|
64711
64739
|
// Case 2: Past the branch point (entered a specific branch)
|
|
64712
64740
|
// Calculate based on: visitedScreens / (visitedScreens + remainingInThisBranch)
|
|
64713
64741
|
const remainingInBranch = this.countForwardScreens(currentStep, allScreens, navGraph);
|
|
64714
64742
|
const totalPathLength = visitedCount + remainingInBranch;
|
|
64715
64743
|
logger.debug(`Branching progress: visited=${visitedCount}, remaining=${remainingInBranch}, total=${totalPathLength}, step=${currentStep.id}`);
|
|
64716
|
-
return visitedCount
|
|
64744
|
+
return { index: visitedCount, total: totalPathLength };
|
|
64717
64745
|
}
|
|
64718
64746
|
/**
|
|
64719
64747
|
* Count how many screens are forward-reachable from the current step
|
|
@@ -64811,6 +64839,12 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64811
64839
|
static getCurrentFlowProgress(key) {
|
|
64812
64840
|
return this.instance.getCurrentFlowProgress(key);
|
|
64813
64841
|
}
|
|
64842
|
+
static getCurrentFlowStepIndex() {
|
|
64843
|
+
return this.instance.getCurrentFlowStepIndex();
|
|
64844
|
+
}
|
|
64845
|
+
static getTotalFlowSteps() {
|
|
64846
|
+
return this.instance.getTotalFlowSteps();
|
|
64847
|
+
}
|
|
64814
64848
|
/**
|
|
64815
64849
|
* Gets the current flow step's auto-advance delay (in seconds)
|
|
64816
64850
|
* Parses __appear__ actions to find flowNav/flowNext with a delay parameter
|
|
@@ -67015,6 +67049,111 @@ function aggregateScreenreaderText(page, focusedButtonLabel = '') {
|
|
|
67015
67049
|
return joinFragments(fragments);
|
|
67016
67050
|
}
|
|
67017
67051
|
|
|
67052
|
+
/**
|
|
67053
|
+
* Step model for the stepped `progressIndicator` (`style: "steps"`).
|
|
67054
|
+
*
|
|
67055
|
+
* Pure helpers shared by every TypeScript renderer (Web, Expo). Apple and
|
|
67056
|
+
* Android mirror these rules natively, so keep the behaviour in sync with
|
|
67057
|
+
* them when changing anything here.
|
|
67058
|
+
*/
|
|
67059
|
+
/** Smallest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
67060
|
+
const MIN_FIXED_STEP_COUNT = 2;
|
|
67061
|
+
/** Largest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
67062
|
+
const MAX_FIXED_STEP_COUNT = 12;
|
|
67063
|
+
/**
|
|
67064
|
+
* Parses a numeric field that may arrive as a number or as a numeric string
|
|
67065
|
+
* (for example from smart text). Returns NaN for "auto", missing, empty or
|
|
67066
|
+
* unparseable values.
|
|
67067
|
+
*/
|
|
67068
|
+
function parseStepNumber(value) {
|
|
67069
|
+
if (typeof value === "number")
|
|
67070
|
+
return Number.isFinite(value) ? value : NaN;
|
|
67071
|
+
if (typeof value === "string") {
|
|
67072
|
+
const trimmed = value.trim();
|
|
67073
|
+
if (trimmed === "")
|
|
67074
|
+
return NaN;
|
|
67075
|
+
const parsed = Number(trimmed);
|
|
67076
|
+
return Number.isFinite(parsed) ? parsed : NaN;
|
|
67077
|
+
}
|
|
67078
|
+
return NaN;
|
|
67079
|
+
}
|
|
67080
|
+
/** True when the component asks for the stepped style; anything else renders the bar. */
|
|
67081
|
+
function isStepsStyle(c) {
|
|
67082
|
+
return c.style === "steps";
|
|
67083
|
+
}
|
|
67084
|
+
/**
|
|
67085
|
+
* Resolves the number of segments to draw.
|
|
67086
|
+
*
|
|
67087
|
+
* "auto", missing or unparseable values use `autoTotal` as is (not clamped).
|
|
67088
|
+
* A number or numeric string is rounded and clamped to
|
|
67089
|
+
* [MIN_FIXED_STEP_COUNT, MAX_FIXED_STEP_COUNT].
|
|
67090
|
+
*/
|
|
67091
|
+
function resolveStepCount(stepCount, autoTotal) {
|
|
67092
|
+
const parsed = parseStepNumber(stepCount);
|
|
67093
|
+
if (Number.isNaN(parsed))
|
|
67094
|
+
return autoTotal;
|
|
67095
|
+
return Math.min(MAX_FIXED_STEP_COUNT, Math.max(MIN_FIXED_STEP_COUNT, Math.round(parsed)));
|
|
67096
|
+
}
|
|
67097
|
+
/**
|
|
67098
|
+
* Resolves the 1-based current step.
|
|
67099
|
+
*
|
|
67100
|
+
* "auto", missing or unparseable values use `autoIndex`. A number or numeric
|
|
67101
|
+
* string is rounded but not clamped: out-of-range values are handled by
|
|
67102
|
+
* {@link stepSegmentState}.
|
|
67103
|
+
*/
|
|
67104
|
+
function resolveCurrentStep(currentStep, autoIndex) {
|
|
67105
|
+
const parsed = parseStepNumber(currentStep);
|
|
67106
|
+
if (Number.isNaN(parsed))
|
|
67107
|
+
return autoIndex;
|
|
67108
|
+
return Math.round(parsed);
|
|
67109
|
+
}
|
|
67110
|
+
/**
|
|
67111
|
+
* State of the segment at 1-based `index1` given the 1-based `current` step.
|
|
67112
|
+
*
|
|
67113
|
+
* `currentStep` mode marks only the matching segment as current. Any other
|
|
67114
|
+
* `fillMode` (including unknown or missing) behaves as `fillUp`, which marks
|
|
67115
|
+
* every segment up to and including `current` as active.
|
|
67116
|
+
*/
|
|
67117
|
+
function stepSegmentState(index1, current, fillMode) {
|
|
67118
|
+
if (fillMode === "currentStep") {
|
|
67119
|
+
return index1 === current ? "current" : "inactive";
|
|
67120
|
+
}
|
|
67121
|
+
return index1 <= current ? "active" : "inactive";
|
|
67122
|
+
}
|
|
67123
|
+
/**
|
|
67124
|
+
* Width of one segment when `count` segments separated by `spacing` share
|
|
67125
|
+
* `available` width evenly. Never negative; 0 when `count <= 0`.
|
|
67126
|
+
*/
|
|
67127
|
+
function evenSegmentWidth(available, count, spacing) {
|
|
67128
|
+
if (count <= 0)
|
|
67129
|
+
return 0;
|
|
67130
|
+
return Math.max(0, (available - (count - 1) * spacing) / count);
|
|
67131
|
+
}
|
|
67132
|
+
/** Resolves `stepSizing`; unknown or missing values fall back to "even". */
|
|
67133
|
+
function resolveStepSizing(v) {
|
|
67134
|
+
return v === "fixed" ? "fixed" : "even";
|
|
67135
|
+
}
|
|
67136
|
+
/** Resolves `alignment`; unknown or missing values fall back to "center". */
|
|
67137
|
+
function resolveStepAlignment(v) {
|
|
67138
|
+
return v === "left" || v === "right" ? v : "center";
|
|
67139
|
+
}
|
|
67140
|
+
/**
|
|
67141
|
+
* First value that is actually set: skips `undefined`, `null`, `""` and
|
|
67142
|
+
* whitespace-only strings, so an empty `current*` field falls back to the
|
|
67143
|
+
* next candidate (for example `active*`) the way Apple and Android do.
|
|
67144
|
+
* `0`, `false` and other falsy non-string values count as set.
|
|
67145
|
+
*/
|
|
67146
|
+
function firstSet(...values) {
|
|
67147
|
+
for (const v of values) {
|
|
67148
|
+
if (v === undefined || v === null)
|
|
67149
|
+
continue;
|
|
67150
|
+
if (typeof v === "string" && v.trim() === "")
|
|
67151
|
+
continue;
|
|
67152
|
+
return v;
|
|
67153
|
+
}
|
|
67154
|
+
return undefined;
|
|
67155
|
+
}
|
|
67156
|
+
|
|
67018
67157
|
function namiBuySKU(skuRefId) {
|
|
67019
67158
|
if (!hasPurchaseManagement("NamiPurchaseManager.buySKU")) {
|
|
67020
67159
|
return;
|
|
@@ -67101,6 +67240,8 @@ exports.ExternalIDRequiredError = ExternalIDRequiredError;
|
|
|
67101
67240
|
exports.FlowScreensNotAvailableError = FlowScreensNotAvailableError;
|
|
67102
67241
|
exports.InternalServerError = InternalServerError;
|
|
67103
67242
|
exports.LaunchContextResolver = LaunchContextResolver;
|
|
67243
|
+
exports.MAX_FIXED_STEP_COUNT = MAX_FIXED_STEP_COUNT;
|
|
67244
|
+
exports.MIN_FIXED_STEP_COUNT = MIN_FIXED_STEP_COUNT;
|
|
67104
67245
|
exports.NAMI_STORAGE_KEYS = NAMI_STORAGE_KEYS;
|
|
67105
67246
|
exports.Nami = Nami;
|
|
67106
67247
|
exports.NamiAPI = NamiAPI;
|
|
@@ -67155,7 +67296,9 @@ exports.didReceiveResponse = didReceiveResponse;
|
|
|
67155
67296
|
exports.empty = empty;
|
|
67156
67297
|
exports.evaluateSystemTimeAssertion = evaluateSystemTimeAssertion;
|
|
67157
67298
|
exports.evaluateSystemTimeCondition = evaluateSystemTimeCondition;
|
|
67299
|
+
exports.evenSegmentWidth = evenSegmentWidth;
|
|
67158
67300
|
exports.extractStandardPricingPhases = extractStandardPricingPhases;
|
|
67301
|
+
exports.firstSet = firstSet;
|
|
67159
67302
|
exports.formatDate = formatDate;
|
|
67160
67303
|
exports.formattedPrice = formattedPrice;
|
|
67161
67304
|
exports.generateUUID = generateUUID;
|
|
@@ -67201,6 +67344,7 @@ exports.invokeHandler = invokeHandler;
|
|
|
67201
67344
|
exports.isAnonymousMode = isAnonymousMode;
|
|
67202
67345
|
exports.isInitialConfigCompressed = isInitialConfigCompressed;
|
|
67203
67346
|
exports.isNamiFlowCampaign = isNamiFlowCampaign;
|
|
67347
|
+
exports.isStepsStyle = isStepsStyle;
|
|
67204
67348
|
exports.isSubscription = isSubscription;
|
|
67205
67349
|
exports.isSystemTimeAssertion = isSystemTimeAssertion;
|
|
67206
67350
|
exports.isValidISODate = isValidISODate;
|
|
@@ -67216,12 +67360,17 @@ exports.productDetail = productDetail;
|
|
|
67216
67360
|
exports.registerAPITrafficObserver = registerAPITrafficObserver;
|
|
67217
67361
|
exports.registerPlatformAdapters = registerPlatformAdapters;
|
|
67218
67362
|
exports.registerPurchaseAdapter = registerPurchaseAdapter;
|
|
67363
|
+
exports.resolveCurrentStep = resolveCurrentStep;
|
|
67219
67364
|
exports.resolveLoopSource = resolveLoopSource;
|
|
67365
|
+
exports.resolveStepAlignment = resolveStepAlignment;
|
|
67366
|
+
exports.resolveStepCount = resolveStepCount;
|
|
67367
|
+
exports.resolveStepSizing = resolveStepSizing;
|
|
67220
67368
|
exports.selectSegment = selectSegment;
|
|
67221
67369
|
exports.setActiveNamiEntitlements = setActiveNamiEntitlements;
|
|
67222
67370
|
exports.shouldValidateProductGroups = shouldValidateProductGroups;
|
|
67223
67371
|
exports.skuItems = skuItems;
|
|
67224
67372
|
exports.skuMapFromEntitlements = skuMapFromEntitlements;
|
|
67373
|
+
exports.stepSegmentState = stepSegmentState;
|
|
67225
67374
|
exports.storageService = storageService;
|
|
67226
67375
|
exports.toDouble = toDouble;
|
|
67227
67376
|
exports.toNamiEntitlements = toNamiEntitlements;
|
package/dist/index.d.ts
CHANGED
|
@@ -1274,6 +1274,20 @@ type TProgressIndicatorComponent = TBaseComponent & {
|
|
|
1274
1274
|
innerPadding?: number;
|
|
1275
1275
|
activeDropShadow?: string;
|
|
1276
1276
|
inactiveDropShadow?: string;
|
|
1277
|
+
style?: "bar" | "steps";
|
|
1278
|
+
stepSizing?: "even" | "fixed";
|
|
1279
|
+
fillMode?: "fillUp" | "currentStep";
|
|
1280
|
+
stepCount?: "auto" | number | string;
|
|
1281
|
+
currentStep?: "auto" | number | string;
|
|
1282
|
+
indicatorSpacing?: number;
|
|
1283
|
+
alignment?: "left" | "center" | "right";
|
|
1284
|
+
activeSize?: number;
|
|
1285
|
+
currentSize?: number;
|
|
1286
|
+
inactiveSize?: number;
|
|
1287
|
+
currentFillColor?: string;
|
|
1288
|
+
currentFillColorFallback?: string;
|
|
1289
|
+
currentBorderRadius?: number;
|
|
1290
|
+
currentDropShadow?: string;
|
|
1277
1291
|
};
|
|
1278
1292
|
type TProgressBarComponent = TBaseComponent & {
|
|
1279
1293
|
component: "progressBar";
|
|
@@ -2270,12 +2284,29 @@ declare class NamiFlowManager$2 {
|
|
|
2270
2284
|
* @returns Progress as a percentage (0-1)
|
|
2271
2285
|
*/
|
|
2272
2286
|
getCurrentFlowProgress(key?: string): number;
|
|
2287
|
+
/**
|
|
2288
|
+
* Gets the 1-based position of the current screen within the flow, using the
|
|
2289
|
+
* same step math as {@link getCurrentFlowProgress}.
|
|
2290
|
+
* @returns The current step index (1-based), or 0 when unknown
|
|
2291
|
+
*/
|
|
2292
|
+
getCurrentFlowStepIndex(): number;
|
|
2293
|
+
/**
|
|
2294
|
+
* Gets the total number of screen steps the current flow's progress is measured against.
|
|
2295
|
+
* @returns The total step count, or 0 when unknown (no open flow, no current step, no screens)
|
|
2296
|
+
*/
|
|
2297
|
+
getTotalFlowSteps(): number;
|
|
2298
|
+
/**
|
|
2299
|
+
* Resolves the current flow position as an integer pair. `index / total` is the
|
|
2300
|
+
* flow progress. Returns null when the position is unknown.
|
|
2301
|
+
*/
|
|
2302
|
+
private getCurrentFlowStepPosition;
|
|
2273
2303
|
/**
|
|
2274
2304
|
* Find the first screen that has branching (multiple forward navigation targets)
|
|
2275
2305
|
*/
|
|
2276
2306
|
private findBranchPoint;
|
|
2277
2307
|
/**
|
|
2278
|
-
* Calculate
|
|
2308
|
+
* Calculate the step position for flows with branching (supports 2+ branches).
|
|
2309
|
+
* Progress is `index / total`.
|
|
2279
2310
|
*/
|
|
2280
2311
|
private calculateBranchingProgress;
|
|
2281
2312
|
/**
|
|
@@ -2296,6 +2327,8 @@ declare class NamiFlowManager$2 {
|
|
|
2296
2327
|
static getLastAnimatedFlowProgress(key: string): number;
|
|
2297
2328
|
static setLastAnimatedFlowProgress(key: string, value: number): void;
|
|
2298
2329
|
static getCurrentFlowProgress(key?: string): number;
|
|
2330
|
+
static getCurrentFlowStepIndex(): number;
|
|
2331
|
+
static getTotalFlowSteps(): number;
|
|
2299
2332
|
/**
|
|
2300
2333
|
* Gets the current flow step's auto-advance delay (in seconds)
|
|
2301
2334
|
* Parses __appear__ actions to find flowNav/flowNext with a delay parameter
|
|
@@ -3434,6 +3467,64 @@ declare function isAnonymousMode(): boolean;
|
|
|
3434
3467
|
*/
|
|
3435
3468
|
declare function aggregateScreenreaderText(page: TPages, focusedButtonLabel?: string): string;
|
|
3436
3469
|
|
|
3470
|
+
/**
|
|
3471
|
+
* Step model for the stepped `progressIndicator` (`style: "steps"`).
|
|
3472
|
+
*
|
|
3473
|
+
* Pure helpers shared by every TypeScript renderer (Web, Expo). Apple and
|
|
3474
|
+
* Android mirror these rules natively, so keep the behaviour in sync with
|
|
3475
|
+
* them when changing anything here.
|
|
3476
|
+
*/
|
|
3477
|
+
/** Smallest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
3478
|
+
declare const MIN_FIXED_STEP_COUNT = 2;
|
|
3479
|
+
/** Largest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
3480
|
+
declare const MAX_FIXED_STEP_COUNT = 12;
|
|
3481
|
+
/** Visual state of one step segment. */
|
|
3482
|
+
type TStepState = "active" | "current" | "inactive";
|
|
3483
|
+
/** True when the component asks for the stepped style; anything else renders the bar. */
|
|
3484
|
+
declare function isStepsStyle(c: {
|
|
3485
|
+
style?: string;
|
|
3486
|
+
}): boolean;
|
|
3487
|
+
/**
|
|
3488
|
+
* Resolves the number of segments to draw.
|
|
3489
|
+
*
|
|
3490
|
+
* "auto", missing or unparseable values use `autoTotal` as is (not clamped).
|
|
3491
|
+
* A number or numeric string is rounded and clamped to
|
|
3492
|
+
* [MIN_FIXED_STEP_COUNT, MAX_FIXED_STEP_COUNT].
|
|
3493
|
+
*/
|
|
3494
|
+
declare function resolveStepCount(stepCount: unknown, autoTotal: number): number;
|
|
3495
|
+
/**
|
|
3496
|
+
* Resolves the 1-based current step.
|
|
3497
|
+
*
|
|
3498
|
+
* "auto", missing or unparseable values use `autoIndex`. A number or numeric
|
|
3499
|
+
* string is rounded but not clamped: out-of-range values are handled by
|
|
3500
|
+
* {@link stepSegmentState}.
|
|
3501
|
+
*/
|
|
3502
|
+
declare function resolveCurrentStep(currentStep: unknown, autoIndex: number): number;
|
|
3503
|
+
/**
|
|
3504
|
+
* State of the segment at 1-based `index1` given the 1-based `current` step.
|
|
3505
|
+
*
|
|
3506
|
+
* `currentStep` mode marks only the matching segment as current. Any other
|
|
3507
|
+
* `fillMode` (including unknown or missing) behaves as `fillUp`, which marks
|
|
3508
|
+
* every segment up to and including `current` as active.
|
|
3509
|
+
*/
|
|
3510
|
+
declare function stepSegmentState(index1: number, current: number, fillMode?: string): TStepState;
|
|
3511
|
+
/**
|
|
3512
|
+
* Width of one segment when `count` segments separated by `spacing` share
|
|
3513
|
+
* `available` width evenly. Never negative; 0 when `count <= 0`.
|
|
3514
|
+
*/
|
|
3515
|
+
declare function evenSegmentWidth(available: number, count: number, spacing: number): number;
|
|
3516
|
+
/** Resolves `stepSizing`; unknown or missing values fall back to "even". */
|
|
3517
|
+
declare function resolveStepSizing(v?: string): "even" | "fixed";
|
|
3518
|
+
/** Resolves `alignment`; unknown or missing values fall back to "center". */
|
|
3519
|
+
declare function resolveStepAlignment(v?: string): "left" | "center" | "right";
|
|
3520
|
+
/**
|
|
3521
|
+
* First value that is actually set: skips `undefined`, `null`, `""` and
|
|
3522
|
+
* whitespace-only strings, so an empty `current*` field falls back to the
|
|
3523
|
+
* next candidate (for example `active*`) the way Apple and Android do.
|
|
3524
|
+
* `0`, `false` and other falsy non-string values count as set.
|
|
3525
|
+
*/
|
|
3526
|
+
declare function firstSet<T>(...values: T[]): Exclude<T, "" | null | undefined> | undefined;
|
|
3527
|
+
|
|
3437
3528
|
/**
|
|
3438
3529
|
* Returns the translated string for the given key in the current SDK language.
|
|
3439
3530
|
* Uses Nami language code from storage (set via Nami.configure({ namiLanguageCode })).
|
|
@@ -4451,5 +4542,5 @@ declare namespace internal {
|
|
|
4451
4542
|
};
|
|
4452
4543
|
}
|
|
4453
4544
|
|
|
4454
|
-
export { ALREADY_CONFIGURED, ANONYMOUS_MODE, ANONYMOUS_MODE_ALREADY_OFF, ANONYMOUS_MODE_ALREADY_ON, ANONYMOUS_MODE_LOGIN_NOT_ALLOWED, ANONYMOUS_UUID, APIError, API_ACTIVE_ENTITLEMENTS, API_CAMPAIGN_RULES, API_CAMPAIGN_SESSION_TIMESTAMP, API_CONFIG, API_MAX_CALLS_LIMIT, API_PAYWALLS, API_PRODUCTS, API_RETRY_DELAY_SEC, API_TIMEOUT_LIMIT, API_TRAFFIC_OBSERVER, API_VERSION, AUTH_DEVICE, AVAILABLE_ACTIVE_ENTITLEMENTS_CHANGED, AVAILABLE_CAMPAIGNS_CHANGED, AccountStateAction, AnonymousCDPError, AnonymousLoginError, AnonymousModeAlreadyOffError, AnonymousModeAlreadyOnError, BASE_STAGING_URL, BASE_URL, BASE_URL_PATH, BadRequestError, BasicNamiFlow, BorderMap, BorderSideMap, CAMPAIGN_CACHE_TTL_PREFIX, CAMPAIGN_NOT_AVAILABLE, CONFIG_API_TIMEOUT_LIMIT, CONFIG_MAX_ATTEMPTS, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, DEFAULT_JOURNEY_SETTINGS, DEVELOPMENT, DEVICE_API_TIMEOUT_LIMIT, DEVICE_ID_NOT_SET, DEVICE_ID_REQUIRED, DISABLE_ASYNC_LOGIN_LOGOUT, DeviceIDRequiredError, DeviceRepository, EXTENDED_CLIENT_INFO_DELIMITER, EXTENDED_CLIENT_INFO_PREFIX, EXTENDED_PLATFORM, EXTENDED_PLATFORM_VERSION, EXTERNAL_ID_REQUIRED, EntitlementRepository, EntitlementUtils, ExternalIDRequiredError, FLOW_SCREENS_NOT_AVAILABLE, FlowScreensNotAvailableError, HTML_REGEX, INITIAL_APP_CONFIG, INITIAL_CAMPAIGN_RULES, INITIAL_PAYWALLS, INITIAL_PRODUCTS, INITIAL_SESSION_COUNTER_VALUE, INITIAL_SUCCESS, InternalServerError, KEY_SESSION_COUNTER, LIQUID_VARIABLE_REGEX, LOCAL_NAMI_ENTITLEMENTS, LOG_HTTP_REQUESTS, LOG_HTTP_TRAFFIC, LaunchCampaignError, LaunchContextResolver, LogLevel, NAMI_CONFIGURATION, NAMI_CUSTOMER_JOURNEY_STATE, NAMI_LANGUAGE_CODE, NAMI_LAST_IMPRESSION_ID, NAMI_LAUNCH_ID, NAMI_PROFILE, NAMI_PURCHASE_CHANNEL, NAMI_PURCHASE_IMPRESSION_ID, NAMI_SDK_PACKAGE_VERSION, NAMI_SDK_VERSION, NAMI_SESSION_ID, NAMI_STORAGE_KEYS, Nami, NamiAPI, NamiAnimationType, NamiCampaignManager$2 as NamiCampaignManager, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager$2 as NamiCustomerManager, NamiEntitlementManager$2 as NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager$1 as NamiFlowManager, NamiFlowStepType, NamiHandoffTag, NamiPaywallAction, NamiPaywallManager$2 as NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiPermissionOutcome, NamiPurchaseManager$2 as NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RESUME_THROTTLE_MS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SIMULATE_CONFIG_FETCH_FAILURE, SIMULATE_PAYWALL_FETCH_FAILURE, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STARTUP_TELEMETRY, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SYSTEM_TIME_FILTER_PREFIX, SYSTEM_TIME_TOKEN_PREFIX, SessionService, SimpleEventTarget, StorageService, TIME_OVERRIDE_PREFIX, TRANSPORT_FAILURE_STATUS, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, NamiProfileManager$1 as _NamiProfileManager, internal as _internal, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, didReceiveResponse, empty, evaluateSystemTimeAssertion, evaluateSystemTimeCondition, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getJourneySettings, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getSystemTimeNow, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isSystemTimeAssertion, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseTimeOverride, parseToSemver, postConversion, productDetail, registerAPITrafficObserver, registerPlatformAdapters, registerPurchaseAdapter, resolveLoopSource, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateForm, validateMinSDKVersion, validateTextInput };
|
|
4455
|
-
export type { AccountStateHandler$1 as AccountStateHandler, AlignmentType, AmazonProduct, ApiResponse, AppleProduct, AvailableCampaignsResponseHandler, BorderLocationType, BorderSideType, Callback$1 as Callback, CloseHandler, CustomerJourneyState, DeepLinkUrlHandler, Device, DevicePayload, DeviceProfile, DirectionType, ExtendedPlatformInfo, FlexDirectionObject, FlowNavigationOptions, FontCollection, FontDetails, FormFactor, FormFieldValidator, GoogleProduct, IConfig, IDeviceAdapter, IEntitlements$1 as IEntitlements, IPaywall, IPlatformAdapters, IProductsWithComponents, IPurchaseAdapter, ISkuMenu, IStorageAdapter, IUIAdapter, Impression, InitialConfig, InitialConfigCompressed, InitiateStateGroup, JourneySettings, LoginResponse, NamiAPITrafficKind, NamiAPITrafficObserver, NamiAPITrafficRecord, NamiAnimation, NamiAnimationObjectSpec, NamiAnimationSpec, NamiAnonymousCampaign, NamiAppSuppliedVideoDetails, NamiCampaign, NamiCampaignManagerStatic, NamiCampaignSegment, NamiCompletionResult, NamiConfiguration, NamiConfigurationState, NamiCustomAttributeValue, NamiCustomerManagerStatic, NamiEntitlement$1 as NamiEntitlement, NamiEntitlementManagerStatic, NamiFlowAction, NamiFlowAnimation, NamiFlowCampaign, NamiFlowCompletionCondition, NamiFlowDTO, NamiFlowEventHandler, NamiFlowHandoffStepHandler, NamiFlowManagerStatic, NamiFlowObjectDTO, NamiFlowOn, NamiFlowStep, NamiFlowTransition, NamiFlowTransitionDirection, NamiFlowWithObject, NamiHandoffAttributeValue, NamiHandoffComplete, NamiHandoffOutcome, NamiHandoffTagValue, NamiInitialConfig, NamiKnownHandoffTag, NamiLanguageCodes, NamiLogLevel, NamiLoginSuccess, NamiPaywallActionHandler, NamiPaywallComponentChange, NamiPaywallEvent, NamiPaywallEventVideoMetadata, NamiPaywallLaunchContext, NamiPaywallManagerStatic, NamiPresentationStyle, NamiProductDetails, NamiProductOffer, NamiProfile, NamiPurchase, NamiPurchaseCompleteResult, NamiPurchaseDetails, NamiPurchaseManagerStatic, NamiPurchaseSuccess, NamiPurchasesState, NamiSKU, NamiSKUType, NamiSubscriptionInterval, NamiSubscriptionPeriod, NamiUserDataEnvelope, None, NoneSpec, PaywallActionEvent, PaywallHandle, PaywallResultHandler, PaywallSKU, PricingPhase, ProductGroup, Pulse, PulseSpec, PurchaseContext, PurchaseResult, PurchaseValidationRequest, SKU, SKUActionHandler, ScreenInfo, Session, TBaseComponent, TButtonContainer, TCarouselContainer, TCarouselSlide, TCarouselSlidesState, TCollapseContainer, TComponent, TConditionalAttributes, TConditionalComponent, TContainer, TContainerPosition, TCountdownTimerTextComponent, TDevice, TDisabledButton, TField, TFieldSettings, TFlexProductContainer, THeaderFooter, TImageComponent, TInitialState, TMediaTypes, TOffer, TPages, TPaywallContext, TPaywallLaunchContext, TPaywallMedia, TPaywallTemplate, TPlayPauseButton, TProductContainer, TProductGroup, TProgressBarComponent, TProgressIndicatorComponent, TQRCodeComponent, TRadioButton, TRepeatingGrid, TResponsiveGrid, TSegmentPicker, TSegmentPickerItem, TSemverObj, TSlot, TSlotGroupSelector, TSpacerComponent, TStack, TSvgImageComponent, TSymbolComponent, TTestObject, TTextComponent, TTextInputComponent, TTextInputType, TTextLikeComponent, TTextListComponent, TTimelineRail, TToggleButtonComponent, TToggleSwitch, TVariablePattern, TVideoComponent, TVolumeButton, TimerState, TransactionRequest, UserAction, UserActionParameters, Wave, WaveSpec };
|
|
4545
|
+
export { ALREADY_CONFIGURED, ANONYMOUS_MODE, ANONYMOUS_MODE_ALREADY_OFF, ANONYMOUS_MODE_ALREADY_ON, ANONYMOUS_MODE_LOGIN_NOT_ALLOWED, ANONYMOUS_UUID, APIError, API_ACTIVE_ENTITLEMENTS, API_CAMPAIGN_RULES, API_CAMPAIGN_SESSION_TIMESTAMP, API_CONFIG, API_MAX_CALLS_LIMIT, API_PAYWALLS, API_PRODUCTS, API_RETRY_DELAY_SEC, API_TIMEOUT_LIMIT, API_TRAFFIC_OBSERVER, API_VERSION, AUTH_DEVICE, AVAILABLE_ACTIVE_ENTITLEMENTS_CHANGED, AVAILABLE_CAMPAIGNS_CHANGED, AccountStateAction, AnonymousCDPError, AnonymousLoginError, AnonymousModeAlreadyOffError, AnonymousModeAlreadyOnError, BASE_STAGING_URL, BASE_URL, BASE_URL_PATH, BadRequestError, BasicNamiFlow, BorderMap, BorderSideMap, CAMPAIGN_CACHE_TTL_PREFIX, CAMPAIGN_NOT_AVAILABLE, CONFIG_API_TIMEOUT_LIMIT, CONFIG_MAX_ATTEMPTS, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, DEFAULT_JOURNEY_SETTINGS, DEVELOPMENT, DEVICE_API_TIMEOUT_LIMIT, DEVICE_ID_NOT_SET, DEVICE_ID_REQUIRED, DISABLE_ASYNC_LOGIN_LOGOUT, DeviceIDRequiredError, DeviceRepository, EXTENDED_CLIENT_INFO_DELIMITER, EXTENDED_CLIENT_INFO_PREFIX, EXTENDED_PLATFORM, EXTENDED_PLATFORM_VERSION, EXTERNAL_ID_REQUIRED, EntitlementRepository, EntitlementUtils, ExternalIDRequiredError, FLOW_SCREENS_NOT_AVAILABLE, FlowScreensNotAvailableError, HTML_REGEX, INITIAL_APP_CONFIG, INITIAL_CAMPAIGN_RULES, INITIAL_PAYWALLS, INITIAL_PRODUCTS, INITIAL_SESSION_COUNTER_VALUE, INITIAL_SUCCESS, InternalServerError, KEY_SESSION_COUNTER, LIQUID_VARIABLE_REGEX, LOCAL_NAMI_ENTITLEMENTS, LOG_HTTP_REQUESTS, LOG_HTTP_TRAFFIC, LaunchCampaignError, LaunchContextResolver, LogLevel, MAX_FIXED_STEP_COUNT, MIN_FIXED_STEP_COUNT, NAMI_CONFIGURATION, NAMI_CUSTOMER_JOURNEY_STATE, NAMI_LANGUAGE_CODE, NAMI_LAST_IMPRESSION_ID, NAMI_LAUNCH_ID, NAMI_PROFILE, NAMI_PURCHASE_CHANNEL, NAMI_PURCHASE_IMPRESSION_ID, NAMI_SDK_PACKAGE_VERSION, NAMI_SDK_VERSION, NAMI_SESSION_ID, NAMI_STORAGE_KEYS, Nami, NamiAPI, NamiAnimationType, NamiCampaignManager$2 as NamiCampaignManager, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager$2 as NamiCustomerManager, NamiEntitlementManager$2 as NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager$1 as NamiFlowManager, NamiFlowStepType, NamiHandoffTag, NamiPaywallAction, NamiPaywallManager$2 as NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiPermissionOutcome, NamiPurchaseManager$2 as NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RESUME_THROTTLE_MS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SIMULATE_CONFIG_FETCH_FAILURE, SIMULATE_PAYWALL_FETCH_FAILURE, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STARTUP_TELEMETRY, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SYSTEM_TIME_FILTER_PREFIX, SYSTEM_TIME_TOKEN_PREFIX, SessionService, SimpleEventTarget, StorageService, TIME_OVERRIDE_PREFIX, TRANSPORT_FAILURE_STATUS, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, NamiProfileManager$1 as _NamiProfileManager, internal as _internal, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, didReceiveResponse, empty, evaluateSystemTimeAssertion, evaluateSystemTimeCondition, evenSegmentWidth, extractStandardPricingPhases, firstSet, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getJourneySettings, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getSystemTimeNow, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isStepsStyle, isSubscription, isSystemTimeAssertion, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseTimeOverride, parseToSemver, postConversion, productDetail, registerAPITrafficObserver, registerPlatformAdapters, registerPurchaseAdapter, resolveCurrentStep, resolveLoopSource, resolveStepAlignment, resolveStepCount, resolveStepSizing, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, stepSegmentState, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateForm, validateMinSDKVersion, validateTextInput };
|
|
4546
|
+
export type { AccountStateHandler$1 as AccountStateHandler, AlignmentType, AmazonProduct, ApiResponse, AppleProduct, AvailableCampaignsResponseHandler, BorderLocationType, BorderSideType, Callback$1 as Callback, CloseHandler, CustomerJourneyState, DeepLinkUrlHandler, Device, DevicePayload, DeviceProfile, DirectionType, ExtendedPlatformInfo, FlexDirectionObject, FlowNavigationOptions, FontCollection, FontDetails, FormFactor, FormFieldValidator, GoogleProduct, IConfig, IDeviceAdapter, IEntitlements$1 as IEntitlements, IPaywall, IPlatformAdapters, IProductsWithComponents, IPurchaseAdapter, ISkuMenu, IStorageAdapter, IUIAdapter, Impression, InitialConfig, InitialConfigCompressed, InitiateStateGroup, JourneySettings, LoginResponse, NamiAPITrafficKind, NamiAPITrafficObserver, NamiAPITrafficRecord, NamiAnimation, NamiAnimationObjectSpec, NamiAnimationSpec, NamiAnonymousCampaign, NamiAppSuppliedVideoDetails, NamiCampaign, NamiCampaignManagerStatic, NamiCampaignSegment, NamiCompletionResult, NamiConfiguration, NamiConfigurationState, NamiCustomAttributeValue, NamiCustomerManagerStatic, NamiEntitlement$1 as NamiEntitlement, NamiEntitlementManagerStatic, NamiFlowAction, NamiFlowAnimation, NamiFlowCampaign, NamiFlowCompletionCondition, NamiFlowDTO, NamiFlowEventHandler, NamiFlowHandoffStepHandler, NamiFlowManagerStatic, NamiFlowObjectDTO, NamiFlowOn, NamiFlowStep, NamiFlowTransition, NamiFlowTransitionDirection, NamiFlowWithObject, NamiHandoffAttributeValue, NamiHandoffComplete, NamiHandoffOutcome, NamiHandoffTagValue, NamiInitialConfig, NamiKnownHandoffTag, NamiLanguageCodes, NamiLogLevel, NamiLoginSuccess, NamiPaywallActionHandler, NamiPaywallComponentChange, NamiPaywallEvent, NamiPaywallEventVideoMetadata, NamiPaywallLaunchContext, NamiPaywallManagerStatic, NamiPresentationStyle, NamiProductDetails, NamiProductOffer, NamiProfile, NamiPurchase, NamiPurchaseCompleteResult, NamiPurchaseDetails, NamiPurchaseManagerStatic, NamiPurchaseSuccess, NamiPurchasesState, NamiSKU, NamiSKUType, NamiSubscriptionInterval, NamiSubscriptionPeriod, NamiUserDataEnvelope, None, NoneSpec, PaywallActionEvent, PaywallHandle, PaywallResultHandler, PaywallSKU, PricingPhase, ProductGroup, Pulse, PulseSpec, PurchaseContext, PurchaseResult, PurchaseValidationRequest, SKU, SKUActionHandler, ScreenInfo, Session, TBaseComponent, TButtonContainer, TCarouselContainer, TCarouselSlide, TCarouselSlidesState, TCollapseContainer, TComponent, TConditionalAttributes, TConditionalComponent, TContainer, TContainerPosition, TCountdownTimerTextComponent, TDevice, TDisabledButton, TField, TFieldSettings, TFlexProductContainer, THeaderFooter, TImageComponent, TInitialState, TMediaTypes, TOffer, TPages, TPaywallContext, TPaywallLaunchContext, TPaywallMedia, TPaywallTemplate, TPlayPauseButton, TProductContainer, TProductGroup, TProgressBarComponent, TProgressIndicatorComponent, TQRCodeComponent, TRadioButton, TRepeatingGrid, TResponsiveGrid, TSegmentPicker, TSegmentPickerItem, TSemverObj, TSlot, TSlotGroupSelector, TSpacerComponent, TStack, TStepState, TSvgImageComponent, TSymbolComponent, TTestObject, TTextComponent, TTextInputComponent, TTextInputType, TTextLikeComponent, TTextListComponent, TTimelineRail, TToggleButtonComponent, TToggleSwitch, TVariablePattern, TVideoComponent, TVolumeButton, TimerState, TransactionRequest, UserAction, UserActionParameters, Wave, WaveSpec };
|
package/dist/index.mjs
CHANGED
|
@@ -104,7 +104,7 @@ const {
|
|
|
104
104
|
// version — stamped by scripts/version.sh
|
|
105
105
|
NAMI_SDK_VERSION = "3.5.0",
|
|
106
106
|
// full package version including dev suffix — stamped by scripts/version.sh
|
|
107
|
-
NAMI_SDK_PACKAGE_VERSION = "3.5.0-dev.
|
|
107
|
+
NAMI_SDK_PACKAGE_VERSION = "3.5.0-dev.202611011549",
|
|
108
108
|
// environments
|
|
109
109
|
PRODUCTION = "production", DEVELOPMENT = "development",
|
|
110
110
|
// error messages
|
|
@@ -64650,33 +64650,60 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64650
64650
|
getCurrentFlowProgress(key) {
|
|
64651
64651
|
if (!this.currentFlow)
|
|
64652
64652
|
return 1;
|
|
64653
|
-
|
|
64653
|
+
const position = this.getCurrentFlowStepPosition();
|
|
64654
|
+
if (!position)
|
|
64655
|
+
return 0;
|
|
64656
|
+
let progress = position.index / position.total;
|
|
64657
|
+
progress = Math.max(0, Math.min(1, progress));
|
|
64658
|
+
if (key) {
|
|
64659
|
+
this.setLastAnimatedFlowProgress(key, progress);
|
|
64660
|
+
}
|
|
64661
|
+
return progress;
|
|
64662
|
+
}
|
|
64663
|
+
/**
|
|
64664
|
+
* Gets the 1-based position of the current screen within the flow, using the
|
|
64665
|
+
* same step math as {@link getCurrentFlowProgress}.
|
|
64666
|
+
* @returns The current step index (1-based), or 0 when unknown
|
|
64667
|
+
*/
|
|
64668
|
+
getCurrentFlowStepIndex() {
|
|
64669
|
+
const position = this.getCurrentFlowStepPosition();
|
|
64670
|
+
if (!position)
|
|
64654
64671
|
return 0;
|
|
64672
|
+
return Math.max(0, Math.min(position.total, position.index));
|
|
64673
|
+
}
|
|
64674
|
+
/**
|
|
64675
|
+
* Gets the total number of screen steps the current flow's progress is measured against.
|
|
64676
|
+
* @returns The total step count, or 0 when unknown (no open flow, no current step, no screens)
|
|
64677
|
+
*/
|
|
64678
|
+
getTotalFlowSteps() {
|
|
64679
|
+
return this.getCurrentFlowStepPosition()?.total ?? 0;
|
|
64680
|
+
}
|
|
64681
|
+
/**
|
|
64682
|
+
* Resolves the current flow position as an integer pair. `index / total` is the
|
|
64683
|
+
* flow progress. Returns null when the position is unknown.
|
|
64684
|
+
*/
|
|
64685
|
+
getCurrentFlowStepPosition() {
|
|
64686
|
+
if (!this.currentFlow)
|
|
64687
|
+
return null;
|
|
64688
|
+
if (!this.currentFlow.currentFlowStep)
|
|
64689
|
+
return null;
|
|
64655
64690
|
const allScreens = this.currentFlow.steps.filter(step => step.type === NamiFlowStepType.SCREEN);
|
|
64656
64691
|
if (allScreens.length === 0)
|
|
64657
|
-
return
|
|
64692
|
+
return null;
|
|
64658
64693
|
const visitedScreens = this.currentFlow.stepcrumbs.filter(step => step.type === NamiFlowStepType.SCREEN);
|
|
64659
64694
|
if (visitedScreens.length === 0)
|
|
64660
|
-
return
|
|
64695
|
+
return null;
|
|
64661
64696
|
const navGraph = this.buildNavGraph(this.currentFlow);
|
|
64662
64697
|
const currentStep = this.currentFlow.currentFlowStep;
|
|
64663
64698
|
// Find the branch point (first screen with multiple forward paths)
|
|
64664
64699
|
const branchPoint = this.findBranchPoint(allScreens, navGraph);
|
|
64665
|
-
let progress = 0;
|
|
64666
64700
|
if (branchPoint) {
|
|
64667
64701
|
// Branching flow
|
|
64668
|
-
|
|
64669
|
-
}
|
|
64670
|
-
else {
|
|
64671
|
-
// Linear flow
|
|
64672
|
-
const currentIndex = allScreens.findIndex(s => s.id === currentStep.id);
|
|
64673
|
-
progress = currentIndex >= 0 ? (currentIndex + 1) / allScreens.length : 0;
|
|
64674
|
-
}
|
|
64675
|
-
progress = Math.max(0, Math.min(1, progress));
|
|
64676
|
-
if (key) {
|
|
64677
|
-
this.setLastAnimatedFlowProgress(key, progress);
|
|
64702
|
+
return this.calculateBranchingProgress(visitedScreens, allScreens, currentStep, branchPoint, navGraph);
|
|
64678
64703
|
}
|
|
64679
|
-
|
|
64704
|
+
// Linear flow
|
|
64705
|
+
const currentIndex = allScreens.findIndex(s => s.id === currentStep.id);
|
|
64706
|
+
return { index: currentIndex >= 0 ? currentIndex + 1 : 0, total: allScreens.length };
|
|
64680
64707
|
}
|
|
64681
64708
|
/**
|
|
64682
64709
|
* Find the first screen that has branching (multiple forward navigation targets)
|
|
@@ -64690,7 +64717,8 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64690
64717
|
return null;
|
|
64691
64718
|
}
|
|
64692
64719
|
/**
|
|
64693
|
-
* Calculate
|
|
64720
|
+
* Calculate the step position for flows with branching (supports 2+ branches).
|
|
64721
|
+
* Progress is `index / total`.
|
|
64694
64722
|
*/
|
|
64695
64723
|
calculateBranchingProgress(visitedScreens, allScreens, currentStep, branchPoint, navGraph) {
|
|
64696
64724
|
const visitedCount = visitedScreens.length;
|
|
@@ -64704,14 +64732,14 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64704
64732
|
// - visitedScreens = currentPosition + 1 (0-indexed)
|
|
64705
64733
|
// - minimumTotalPathLength = branchPosition + 2
|
|
64706
64734
|
// (all screens before branch + branch itself + at least 1 screen after)
|
|
64707
|
-
return
|
|
64735
|
+
return { index: currentIndexInAll + 1, total: branchPointIndexInAll + 2 };
|
|
64708
64736
|
}
|
|
64709
64737
|
// Case 2: Past the branch point (entered a specific branch)
|
|
64710
64738
|
// Calculate based on: visitedScreens / (visitedScreens + remainingInThisBranch)
|
|
64711
64739
|
const remainingInBranch = this.countForwardScreens(currentStep, allScreens, navGraph);
|
|
64712
64740
|
const totalPathLength = visitedCount + remainingInBranch;
|
|
64713
64741
|
logger.debug(`Branching progress: visited=${visitedCount}, remaining=${remainingInBranch}, total=${totalPathLength}, step=${currentStep.id}`);
|
|
64714
|
-
return visitedCount
|
|
64742
|
+
return { index: visitedCount, total: totalPathLength };
|
|
64715
64743
|
}
|
|
64716
64744
|
/**
|
|
64717
64745
|
* Count how many screens are forward-reachable from the current step
|
|
@@ -64809,6 +64837,12 @@ let NamiFlowManager$2 = class NamiFlowManager {
|
|
|
64809
64837
|
static getCurrentFlowProgress(key) {
|
|
64810
64838
|
return this.instance.getCurrentFlowProgress(key);
|
|
64811
64839
|
}
|
|
64840
|
+
static getCurrentFlowStepIndex() {
|
|
64841
|
+
return this.instance.getCurrentFlowStepIndex();
|
|
64842
|
+
}
|
|
64843
|
+
static getTotalFlowSteps() {
|
|
64844
|
+
return this.instance.getTotalFlowSteps();
|
|
64845
|
+
}
|
|
64812
64846
|
/**
|
|
64813
64847
|
* Gets the current flow step's auto-advance delay (in seconds)
|
|
64814
64848
|
* Parses __appear__ actions to find flowNav/flowNext with a delay parameter
|
|
@@ -67013,6 +67047,111 @@ function aggregateScreenreaderText(page, focusedButtonLabel = '') {
|
|
|
67013
67047
|
return joinFragments(fragments);
|
|
67014
67048
|
}
|
|
67015
67049
|
|
|
67050
|
+
/**
|
|
67051
|
+
* Step model for the stepped `progressIndicator` (`style: "steps"`).
|
|
67052
|
+
*
|
|
67053
|
+
* Pure helpers shared by every TypeScript renderer (Web, Expo). Apple and
|
|
67054
|
+
* Android mirror these rules natively, so keep the behaviour in sync with
|
|
67055
|
+
* them when changing anything here.
|
|
67056
|
+
*/
|
|
67057
|
+
/** Smallest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
67058
|
+
const MIN_FIXED_STEP_COUNT = 2;
|
|
67059
|
+
/** Largest step count a fixed (non-"auto") `stepCount` resolves to. */
|
|
67060
|
+
const MAX_FIXED_STEP_COUNT = 12;
|
|
67061
|
+
/**
|
|
67062
|
+
* Parses a numeric field that may arrive as a number or as a numeric string
|
|
67063
|
+
* (for example from smart text). Returns NaN for "auto", missing, empty or
|
|
67064
|
+
* unparseable values.
|
|
67065
|
+
*/
|
|
67066
|
+
function parseStepNumber(value) {
|
|
67067
|
+
if (typeof value === "number")
|
|
67068
|
+
return Number.isFinite(value) ? value : NaN;
|
|
67069
|
+
if (typeof value === "string") {
|
|
67070
|
+
const trimmed = value.trim();
|
|
67071
|
+
if (trimmed === "")
|
|
67072
|
+
return NaN;
|
|
67073
|
+
const parsed = Number(trimmed);
|
|
67074
|
+
return Number.isFinite(parsed) ? parsed : NaN;
|
|
67075
|
+
}
|
|
67076
|
+
return NaN;
|
|
67077
|
+
}
|
|
67078
|
+
/** True when the component asks for the stepped style; anything else renders the bar. */
|
|
67079
|
+
function isStepsStyle(c) {
|
|
67080
|
+
return c.style === "steps";
|
|
67081
|
+
}
|
|
67082
|
+
/**
|
|
67083
|
+
* Resolves the number of segments to draw.
|
|
67084
|
+
*
|
|
67085
|
+
* "auto", missing or unparseable values use `autoTotal` as is (not clamped).
|
|
67086
|
+
* A number or numeric string is rounded and clamped to
|
|
67087
|
+
* [MIN_FIXED_STEP_COUNT, MAX_FIXED_STEP_COUNT].
|
|
67088
|
+
*/
|
|
67089
|
+
function resolveStepCount(stepCount, autoTotal) {
|
|
67090
|
+
const parsed = parseStepNumber(stepCount);
|
|
67091
|
+
if (Number.isNaN(parsed))
|
|
67092
|
+
return autoTotal;
|
|
67093
|
+
return Math.min(MAX_FIXED_STEP_COUNT, Math.max(MIN_FIXED_STEP_COUNT, Math.round(parsed)));
|
|
67094
|
+
}
|
|
67095
|
+
/**
|
|
67096
|
+
* Resolves the 1-based current step.
|
|
67097
|
+
*
|
|
67098
|
+
* "auto", missing or unparseable values use `autoIndex`. A number or numeric
|
|
67099
|
+
* string is rounded but not clamped: out-of-range values are handled by
|
|
67100
|
+
* {@link stepSegmentState}.
|
|
67101
|
+
*/
|
|
67102
|
+
function resolveCurrentStep(currentStep, autoIndex) {
|
|
67103
|
+
const parsed = parseStepNumber(currentStep);
|
|
67104
|
+
if (Number.isNaN(parsed))
|
|
67105
|
+
return autoIndex;
|
|
67106
|
+
return Math.round(parsed);
|
|
67107
|
+
}
|
|
67108
|
+
/**
|
|
67109
|
+
* State of the segment at 1-based `index1` given the 1-based `current` step.
|
|
67110
|
+
*
|
|
67111
|
+
* `currentStep` mode marks only the matching segment as current. Any other
|
|
67112
|
+
* `fillMode` (including unknown or missing) behaves as `fillUp`, which marks
|
|
67113
|
+
* every segment up to and including `current` as active.
|
|
67114
|
+
*/
|
|
67115
|
+
function stepSegmentState(index1, current, fillMode) {
|
|
67116
|
+
if (fillMode === "currentStep") {
|
|
67117
|
+
return index1 === current ? "current" : "inactive";
|
|
67118
|
+
}
|
|
67119
|
+
return index1 <= current ? "active" : "inactive";
|
|
67120
|
+
}
|
|
67121
|
+
/**
|
|
67122
|
+
* Width of one segment when `count` segments separated by `spacing` share
|
|
67123
|
+
* `available` width evenly. Never negative; 0 when `count <= 0`.
|
|
67124
|
+
*/
|
|
67125
|
+
function evenSegmentWidth(available, count, spacing) {
|
|
67126
|
+
if (count <= 0)
|
|
67127
|
+
return 0;
|
|
67128
|
+
return Math.max(0, (available - (count - 1) * spacing) / count);
|
|
67129
|
+
}
|
|
67130
|
+
/** Resolves `stepSizing`; unknown or missing values fall back to "even". */
|
|
67131
|
+
function resolveStepSizing(v) {
|
|
67132
|
+
return v === "fixed" ? "fixed" : "even";
|
|
67133
|
+
}
|
|
67134
|
+
/** Resolves `alignment`; unknown or missing values fall back to "center". */
|
|
67135
|
+
function resolveStepAlignment(v) {
|
|
67136
|
+
return v === "left" || v === "right" ? v : "center";
|
|
67137
|
+
}
|
|
67138
|
+
/**
|
|
67139
|
+
* First value that is actually set: skips `undefined`, `null`, `""` and
|
|
67140
|
+
* whitespace-only strings, so an empty `current*` field falls back to the
|
|
67141
|
+
* next candidate (for example `active*`) the way Apple and Android do.
|
|
67142
|
+
* `0`, `false` and other falsy non-string values count as set.
|
|
67143
|
+
*/
|
|
67144
|
+
function firstSet(...values) {
|
|
67145
|
+
for (const v of values) {
|
|
67146
|
+
if (v === undefined || v === null)
|
|
67147
|
+
continue;
|
|
67148
|
+
if (typeof v === "string" && v.trim() === "")
|
|
67149
|
+
continue;
|
|
67150
|
+
return v;
|
|
67151
|
+
}
|
|
67152
|
+
return undefined;
|
|
67153
|
+
}
|
|
67154
|
+
|
|
67016
67155
|
function namiBuySKU(skuRefId) {
|
|
67017
67156
|
if (!hasPurchaseManagement("NamiPurchaseManager.buySKU")) {
|
|
67018
67157
|
return;
|
|
@@ -67074,4 +67213,4 @@ var internal = /*#__PURE__*/Object.freeze({
|
|
|
67074
67213
|
NamiPurchaseManager: NamiPurchaseManager
|
|
67075
67214
|
});
|
|
67076
67215
|
|
|
67077
|
-
export { ALREADY_CONFIGURED, ANONYMOUS_MODE, ANONYMOUS_MODE_ALREADY_OFF, ANONYMOUS_MODE_ALREADY_ON, ANONYMOUS_MODE_LOGIN_NOT_ALLOWED, ANONYMOUS_UUID, APIError, API_ACTIVE_ENTITLEMENTS, API_CAMPAIGN_RULES, API_CAMPAIGN_SESSION_TIMESTAMP, API_CONFIG, API_MAX_CALLS_LIMIT, API_PAYWALLS, API_PRODUCTS, API_RETRY_DELAY_SEC, API_TIMEOUT_LIMIT, API_TRAFFIC_OBSERVER, API_VERSION, AUTH_DEVICE, AVAILABLE_ACTIVE_ENTITLEMENTS_CHANGED, AVAILABLE_CAMPAIGNS_CHANGED, AccountStateAction, AnonymousCDPError, AnonymousLoginError, AnonymousModeAlreadyOffError, AnonymousModeAlreadyOnError, BASE_STAGING_URL, BASE_URL, BASE_URL_PATH, BadRequestError, BasicNamiFlow, BorderMap, BorderSideMap, CAMPAIGN_CACHE_TTL_PREFIX, CAMPAIGN_NOT_AVAILABLE, CONFIG_API_TIMEOUT_LIMIT, CONFIG_MAX_ATTEMPTS, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, DEFAULT_JOURNEY_SETTINGS, DEVELOPMENT, DEVICE_API_TIMEOUT_LIMIT, DEVICE_ID_NOT_SET, DEVICE_ID_REQUIRED, DISABLE_ASYNC_LOGIN_LOGOUT, DeviceIDRequiredError, DeviceRepository, EXTENDED_CLIENT_INFO_DELIMITER, EXTENDED_CLIENT_INFO_PREFIX, EXTENDED_PLATFORM, EXTENDED_PLATFORM_VERSION, EXTERNAL_ID_REQUIRED, EntitlementRepository, EntitlementUtils, ExternalIDRequiredError, FLOW_SCREENS_NOT_AVAILABLE, FlowScreensNotAvailableError, HTML_REGEX, INITIAL_APP_CONFIG, INITIAL_CAMPAIGN_RULES, INITIAL_PAYWALLS, INITIAL_PRODUCTS, INITIAL_SESSION_COUNTER_VALUE, INITIAL_SUCCESS, InternalServerError, KEY_SESSION_COUNTER, LIQUID_VARIABLE_REGEX, LOCAL_NAMI_ENTITLEMENTS, LOG_HTTP_REQUESTS, LOG_HTTP_TRAFFIC, LaunchCampaignError, LaunchContextResolver, LogLevel, NAMI_CONFIGURATION, NAMI_CUSTOMER_JOURNEY_STATE, NAMI_LANGUAGE_CODE, NAMI_LAST_IMPRESSION_ID, NAMI_LAUNCH_ID, NAMI_PROFILE, NAMI_PURCHASE_CHANNEL, NAMI_PURCHASE_IMPRESSION_ID, NAMI_SDK_PACKAGE_VERSION, NAMI_SDK_VERSION, NAMI_SESSION_ID, NAMI_STORAGE_KEYS, Nami, NamiAPI, NamiAnimationType, NamiCampaignManager$1 as NamiCampaignManager, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager$1 as NamiCustomerManager, NamiEntitlementManager$1 as NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager$1 as NamiFlowManager, NamiFlowStepType, NamiHandoffTag, NamiPaywallAction, NamiPaywallManager$1 as NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiPermissionOutcome, NamiPurchaseManager$1 as NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RESUME_THROTTLE_MS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SIMULATE_CONFIG_FETCH_FAILURE, SIMULATE_PAYWALL_FETCH_FAILURE, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STARTUP_TELEMETRY, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SYSTEM_TIME_FILTER_PREFIX, SYSTEM_TIME_TOKEN_PREFIX, SessionService, SimpleEventTarget, StorageService, TIME_OVERRIDE_PREFIX, TRANSPORT_FAILURE_STATUS, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, NamiProfileManager$1 as _NamiProfileManager, internal as _internal, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, didReceiveResponse, empty, evaluateSystemTimeAssertion, evaluateSystemTimeCondition, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getJourneySettings, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getSystemTimeNow, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isSystemTimeAssertion, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseTimeOverride, parseToSemver, postConversion, productDetail, registerAPITrafficObserver, registerPlatformAdapters, registerPurchaseAdapter, resolveLoopSource, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateForm, validateMinSDKVersion, validateTextInput };
|
|
67216
|
+
export { ALREADY_CONFIGURED, ANONYMOUS_MODE, ANONYMOUS_MODE_ALREADY_OFF, ANONYMOUS_MODE_ALREADY_ON, ANONYMOUS_MODE_LOGIN_NOT_ALLOWED, ANONYMOUS_UUID, APIError, API_ACTIVE_ENTITLEMENTS, API_CAMPAIGN_RULES, API_CAMPAIGN_SESSION_TIMESTAMP, API_CONFIG, API_MAX_CALLS_LIMIT, API_PAYWALLS, API_PRODUCTS, API_RETRY_DELAY_SEC, API_TIMEOUT_LIMIT, API_TRAFFIC_OBSERVER, API_VERSION, AUTH_DEVICE, AVAILABLE_ACTIVE_ENTITLEMENTS_CHANGED, AVAILABLE_CAMPAIGNS_CHANGED, AccountStateAction, AnonymousCDPError, AnonymousLoginError, AnonymousModeAlreadyOffError, AnonymousModeAlreadyOnError, BASE_STAGING_URL, BASE_URL, BASE_URL_PATH, BadRequestError, BasicNamiFlow, BorderMap, BorderSideMap, CAMPAIGN_CACHE_TTL_PREFIX, CAMPAIGN_NOT_AVAILABLE, CONFIG_API_TIMEOUT_LIMIT, CONFIG_MAX_ATTEMPTS, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, DEFAULT_JOURNEY_SETTINGS, DEVELOPMENT, DEVICE_API_TIMEOUT_LIMIT, DEVICE_ID_NOT_SET, DEVICE_ID_REQUIRED, DISABLE_ASYNC_LOGIN_LOGOUT, DeviceIDRequiredError, DeviceRepository, EXTENDED_CLIENT_INFO_DELIMITER, EXTENDED_CLIENT_INFO_PREFIX, EXTENDED_PLATFORM, EXTENDED_PLATFORM_VERSION, EXTERNAL_ID_REQUIRED, EntitlementRepository, EntitlementUtils, ExternalIDRequiredError, FLOW_SCREENS_NOT_AVAILABLE, FlowScreensNotAvailableError, HTML_REGEX, INITIAL_APP_CONFIG, INITIAL_CAMPAIGN_RULES, INITIAL_PAYWALLS, INITIAL_PRODUCTS, INITIAL_SESSION_COUNTER_VALUE, INITIAL_SUCCESS, InternalServerError, KEY_SESSION_COUNTER, LIQUID_VARIABLE_REGEX, LOCAL_NAMI_ENTITLEMENTS, LOG_HTTP_REQUESTS, LOG_HTTP_TRAFFIC, LaunchCampaignError, LaunchContextResolver, LogLevel, MAX_FIXED_STEP_COUNT, MIN_FIXED_STEP_COUNT, NAMI_CONFIGURATION, NAMI_CUSTOMER_JOURNEY_STATE, NAMI_LANGUAGE_CODE, NAMI_LAST_IMPRESSION_ID, NAMI_LAUNCH_ID, NAMI_PROFILE, NAMI_PURCHASE_CHANNEL, NAMI_PURCHASE_IMPRESSION_ID, NAMI_SDK_PACKAGE_VERSION, NAMI_SDK_VERSION, NAMI_SESSION_ID, NAMI_STORAGE_KEYS, Nami, NamiAPI, NamiAnimationType, NamiCampaignManager$1 as NamiCampaignManager, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager$1 as NamiCustomerManager, NamiEntitlementManager$1 as NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager$1 as NamiFlowManager, NamiFlowStepType, NamiHandoffTag, NamiPaywallAction, NamiPaywallManager$1 as NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiPermissionOutcome, NamiPurchaseManager$1 as NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RESUME_THROTTLE_MS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SIMULATE_CONFIG_FETCH_FAILURE, SIMULATE_PAYWALL_FETCH_FAILURE, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STARTUP_TELEMETRY, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SYSTEM_TIME_FILTER_PREFIX, SYSTEM_TIME_TOKEN_PREFIX, SessionService, SimpleEventTarget, StorageService, TIME_OVERRIDE_PREFIX, TRANSPORT_FAILURE_STATUS, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, NamiProfileManager$1 as _NamiProfileManager, internal as _internal, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, didReceiveResponse, empty, evaluateSystemTimeAssertion, evaluateSystemTimeCondition, evenSegmentWidth, extractStandardPricingPhases, firstSet, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getJourneySettings, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getSystemTimeNow, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isStepsStyle, isSubscription, isSystemTimeAssertion, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseTimeOverride, parseToSemver, postConversion, productDetail, registerAPITrafficObserver, registerPlatformAdapters, registerPurchaseAdapter, resolveCurrentStep, resolveLoopSource, resolveStepAlignment, resolveStepCount, resolveStepSizing, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, stepSegmentState, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateForm, validateMinSDKVersion, validateTextInput };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namiml/sdk-core",
|
|
3
|
-
"version": "3.5.0-dev.
|
|
3
|
+
"version": "3.5.0-dev.202611011549",
|
|
4
4
|
"description": "Platform-agnostic core for the Nami SDK — business logic, API, types, and state management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|