@namiml/sdk-core 3.4.1-dev.202605272004 → 3.4.1-rc.202605281509

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 CHANGED
@@ -98,7 +98,7 @@ const {
98
98
  // version — stamped by scripts/version.sh
99
99
  NAMI_SDK_VERSION: exports.NAMI_SDK_VERSION = "3.4.1",
100
100
  // full package version including dev suffix — stamped by scripts/version.sh
101
- NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.4.1-dev.202605272004",
101
+ NAMI_SDK_PACKAGE_VERSION: exports.NAMI_SDK_PACKAGE_VERSION = "3.4.1-rc.202605281509",
102
102
  // environments
103
103
  PRODUCTION: exports.PRODUCTION = "production", DEVELOPMENT: exports.DEVELOPMENT = "development",
104
104
  // error messages
@@ -12412,7 +12412,6 @@ exports.NamiFlowActionFunction = void 0;
12412
12412
  NamiFlowActionFunction["SET_TAGS"] = "setTags";
12413
12413
  NamiFlowActionFunction["PAUSE"] = "flowPause";
12414
12414
  NamiFlowActionFunction["RESUME"] = "flowResume";
12415
- NamiFlowActionFunction["SET_LAUNCH_CONTEXT"] = "setLaunchContext";
12416
12415
  })(exports.NamiFlowActionFunction || (exports.NamiFlowActionFunction = {}));
12417
12416
  const HandoffTag = {
12418
12417
  SEQUENCE: '__handoff_sequence__',
@@ -12996,16 +12995,6 @@ class FlowLiquidResolver {
12996
12995
  const idx = screenState?.getSelectedSlideIndexForCurrentCarousel();
12997
12996
  return idx != null ? `${idx + 1}` : undefined;
12998
12997
  }
12999
- case "productGroupId":
13000
- return PaywallState.currentProvider?.state.currentGroupId || undefined;
13001
- case "productGroupName": {
13002
- const s = PaywallState.currentProvider?.state;
13003
- return s?.groups?.find(g => g.id === s.currentGroupId)?.displayName ?? undefined;
13004
- }
13005
- case "productGroupRef": {
13006
- const s = PaywallState.currentProvider?.state;
13007
- return s?.groups?.find(g => g.id === s.currentGroupId)?.ref ?? undefined;
13008
- }
13009
12998
  default:
13010
12999
  return undefined;
13011
13000
  }
@@ -13951,16 +13940,6 @@ class NamiFlow extends BasicNamiFlow {
13951
13940
  this.forward(entry.id);
13952
13941
  }
13953
13942
  }
13954
- applyLaunchContextAttributes(attrs) {
13955
- if (!this.context) {
13956
- this.context = { customAttributes: {} };
13957
- new LaunchContextResolver(this.context);
13958
- }
13959
- // Guard against a runtime-supplied context that omits customAttributes
13960
- // (the field is required by the type but may be absent in untyped JSON).
13961
- this.context.customAttributes ??= {};
13962
- Object.assign(this.context.customAttributes, attrs);
13963
- }
13964
13943
  registerResolvers(context) {
13965
13944
  if (context) {
13966
13945
  new LaunchContextResolver(context);
@@ -14217,9 +14196,6 @@ class NamiFlow extends BasicNamiFlow {
14217
14196
  this.back();
14218
14197
  break;
14219
14198
  case exports.NamiFlowActionFunction.NEXT:
14220
- if (action.parameters?.customAttributes) {
14221
- this.applyLaunchContextAttributes(action.parameters.customAttributes);
14222
- }
14223
14199
  if (action.parameters?.step) {
14224
14200
  this.forward(action.parameters.step);
14225
14201
  }
@@ -14228,9 +14204,6 @@ class NamiFlow extends BasicNamiFlow {
14228
14204
  }
14229
14205
  break;
14230
14206
  case exports.NamiFlowActionFunction.NAVIGATE:
14231
- if (action.parameters?.customAttributes) {
14232
- this.applyLaunchContextAttributes(action.parameters.customAttributes);
14233
- }
14234
14207
  if (action.parameters?.step) {
14235
14208
  if (this.previousFlowStep?.id === action.parameters.step) {
14236
14209
  this.back();
@@ -14356,20 +14329,6 @@ class NamiFlow extends BasicNamiFlow {
14356
14329
  });
14357
14330
  }
14358
14331
  break;
14359
- case exports.NamiFlowActionFunction.SET_LAUNCH_CONTEXT: {
14360
- // Two supported shapes (matches the nav-action customAttributes wire shape
14361
- // and the { key, value } shape used by Apple/Android/Roku). We deliberately
14362
- // do NOT treat arbitrary top-level parameters as attributes, to avoid writing
14363
- // reserved keys (step, delay, …) into the launch context.
14364
- const params = action.parameters;
14365
- if (params?.customAttributes) {
14366
- this.applyLaunchContextAttributes(params.customAttributes);
14367
- }
14368
- else if (params?.key !== undefined && params?.value !== undefined) {
14369
- this.applyLaunchContextAttributes({ [params.key]: params.value });
14370
- }
14371
- break;
14372
- }
14373
14332
  default:
14374
14333
  logger.warn(`Missing action handler for ${action.function}`, action);
14375
14334
  break;
@@ -64309,29 +64268,6 @@ const convertLocale = (locale) => {
64309
64268
  return intlLocale.language + (intlLocale.region ?? intlLocale.script ?? '');
64310
64269
  };
64311
64270
 
64312
- /**
64313
- * Coerces the four launch-context wire-format variants of a boolean —
64314
- * `true`, `false`, `"true"`, `"false"` — into a JS `boolean`.
64315
- *
64316
- * Returns `undefined` for everything else (case-variant strings, numbers,
64317
- * `null`, `undefined`, empty string, objects). Callers decide how to treat
64318
- * the `undefined` case; the helper deliberately does not coerce numerics or
64319
- * mixed-case strings so unintended truthy-by-presence behavior doesn't sneak
64320
- * back in.
64321
- */
64322
- function coerceBooleanish(value) {
64323
- if (value === true || value === false) {
64324
- return value;
64325
- }
64326
- if (typeof value === 'string') {
64327
- if (value === 'true')
64328
- return true;
64329
- if (value === 'false')
64330
- return false;
64331
- }
64332
- return undefined;
64333
- }
64334
-
64335
64271
  /**
64336
64272
  * Components that are skipped entirely (they and their subtree do not
64337
64273
  * contribute text to the page-level announcement).
@@ -64635,7 +64571,6 @@ exports.bestUrlCampaignMatch = bestUrlCampaignMatch;
64635
64571
  exports.bigintToUuid = bigintToUuid;
64636
64572
  exports.checkAnySkuHasPromoOffer = checkAnySkuHasPromoOffer;
64637
64573
  exports.checkAnySkuHasTrialOffer = checkAnySkuHasTrialOffer;
64638
- exports.coerceBooleanish = coerceBooleanish;
64639
64574
  exports.convertISO8601PeriodToText = convertISO8601PeriodToText;
64640
64575
  exports.convertLocale = convertLocale;
64641
64576
  exports.convertOfferToPricingPhase = convertOfferToPricingPhase;
package/dist/index.d.ts CHANGED
@@ -130,8 +130,7 @@ declare enum NamiFlowActionFunction {
130
130
  FLOW_DISABLED = "flowInteractionDisabled",
131
131
  SET_TAGS = "setTags",
132
132
  PAUSE = "flowPause",
133
- RESUME = "flowResume",
134
- SET_LAUNCH_CONTEXT = "setLaunchContext"
133
+ RESUME = "flowResume"
135
134
  }
136
135
  type NamiFlowHandoffStepHandler = (handoffTag: string, handoffData?: Record<string, any>) => void;
137
136
  type NamiFlowEventHandler = (eventHandler: Record<string, any>) => void;
@@ -1281,15 +1280,6 @@ type NamiPaywallEvent = {
1281
1280
  purchaseChannel?: string;
1282
1281
  };
1283
1282
  type NamiPaywallActionHandler = (event: NamiPaywallEvent) => void;
1284
- /**
1285
- * Permitted value types for entries in {@link NamiPaywallLaunchContext.customAttributes}.
1286
- *
1287
- * Both native primitives and their string equivalents are accepted so integrators can
1288
- * pass `true`/`false` directly or `"true"`/`"false"` from a stringly-typed source
1289
- * (e.g. a remote-config blob). Targeting predicates treat the two wire formats
1290
- * identically — see `coerceBooleanish()`.
1291
- */
1292
- type NamiCustomAttributeValue = string | boolean | number;
1293
1283
  /**
1294
1284
  * @type NamiPaywallLaunchContext
1295
1285
  * Will be used to pass custom context while launching paywall
@@ -1297,7 +1287,7 @@ type NamiCustomAttributeValue = string | boolean | number;
1297
1287
  type NamiPaywallLaunchContext = {
1298
1288
  productGroups?: string[];
1299
1289
  customAttributes: {
1300
- [key: string]: NamiCustomAttributeValue;
1290
+ [key: string]: string;
1301
1291
  };
1302
1292
  customObject?: {
1303
1293
  [key: string]: any;
@@ -1430,7 +1420,6 @@ declare class NamiFlow extends BasicNamiFlow {
1430
1420
  [timerId: string]: TimerState;
1431
1421
  };
1432
1422
  constructor(campaign: NamiFlowCampaign, paywall: PaywallHandle, manager: NamiFlowManager, context?: NamiPaywallLaunchContext);
1433
- private applyLaunchContextAttributes;
1434
1423
  private registerResolvers;
1435
1424
  get currentFlowStep(): NamiFlowStep | undefined;
1436
1425
  get nextStepAvailable(): boolean;
@@ -2731,18 +2720,6 @@ interface INamiRefsInstance {
2731
2720
  */
2732
2721
  declare function isAnonymousMode(): boolean;
2733
2722
 
2734
- /**
2735
- * Coerces the four launch-context wire-format variants of a boolean —
2736
- * `true`, `false`, `"true"`, `"false"` — into a JS `boolean`.
2737
- *
2738
- * Returns `undefined` for everything else (case-variant strings, numbers,
2739
- * `null`, `undefined`, empty string, objects). Callers decide how to treat
2740
- * the `undefined` case; the helper deliberately does not coerce numerics or
2741
- * mixed-case strings so unintended truthy-by-presence behavior doesn't sneak
2742
- * back in.
2743
- */
2744
- declare function coerceBooleanish(value: unknown): boolean | undefined;
2745
-
2746
2723
  /**
2747
2724
  * Build the full-screen announcement string for a paywall page per the
2748
2725
  * TV Full-Page Announcement contract
@@ -3178,5 +3155,5 @@ declare const getBillingPeriodNumber: (billingPeriod: string) => number;
3178
3155
  declare const formattedPrice: (price: number) => number;
3179
3156
  declare function toDouble(num: number): number;
3180
3157
 
3181
- 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_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_NOT_AVAILABLE, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, 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, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager, NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager, NamiFlowStepType, NamiPaywallAction, NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiProfileManager, NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SessionService, SimpleEventTarget, StorageService, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, coerceBooleanish, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, empty, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseToSemver, postConversion, productDetail, registerPlatformAdapters, registerPurchaseAdapter, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateMinSDKVersion };
3182
- export type { AlignmentType, AmazonProduct, ApiResponse, AppleProduct, AvailableCampaignsResponseHandler, BorderLocationType, BorderSideType, Callback$1 as Callback, CloseHandler, CustomerJourneyState, DeepLinkUrlHandler, Device, DevicePayload, DeviceProfile, DirectionType, ExtendedPlatformInfo, FlexDirectionObject, FlowNavigationOptions, FontCollection, FontDetails, FormFactor, GoogleProduct, IConfig, IDeviceAdapter, IEntitlements$1 as IEntitlements, IPaywall, IPlatformAdapters, IProductsWithComponents, IPurchaseAdapter, ISkuMenu, IStorageAdapter, IUIAdapter, Impression, InitialConfig, InitialConfigCompressed, InitiateStateGroup, LoginResponse, NamiAnimation, NamiAnimationObjectSpec, NamiAnimationSpec, NamiAnonymousCampaign, NamiAppSuppliedVideoDetails, NamiCampaign, NamiCampaignSegment, NamiConfiguration, NamiConfigurationState, NamiCustomAttributeValue, NamiEntitlement$1 as NamiEntitlement, NamiFlowAction, NamiFlowAnimation, NamiFlowCampaign, NamiFlowDTO, NamiFlowEventHandler, NamiFlowHandoffStepHandler, NamiFlowObjectDTO, NamiFlowOn, NamiFlowStep, NamiFlowTransition, NamiFlowTransitionDirection, NamiFlowWithObject, NamiInitialConfig, NamiLanguageCodes, NamiLogLevel, NamiPaywallActionHandler, NamiPaywallComponentChange, NamiPaywallEvent, NamiPaywallEventVideoMetadata, NamiPaywallLaunchContext, NamiPresentationStyle, NamiProductDetails, NamiProductOffer, NamiProfile, NamiPurchase, NamiPurchaseCompleteResult, NamiPurchaseDetails, NamiPurchasesState, NamiSKU, NamiSKUType, NamiSubscriptionInterval, NamiSubscriptionPeriod, 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, TSpacerComponent, TStack, TSvgImageComponent, TSymbolComponent, TTestObject, TTextComponent, TTextLikeComponent, TTextListComponent, TToggleButtonComponent, TToggleSwitch, TVariablePattern, TVideoComponent, TVolumeButton, TimerState, TransactionRequest, UserAction, UserActionParameters, Wave, WaveSpec };
3158
+ 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_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_NOT_AVAILABLE, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, 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, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager, NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager, NamiFlowStepType, NamiPaywallAction, NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiProfileManager, NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SessionService, SimpleEventTarget, StorageService, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, empty, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseToSemver, postConversion, productDetail, registerPlatformAdapters, registerPurchaseAdapter, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateMinSDKVersion };
3159
+ export type { AlignmentType, AmazonProduct, ApiResponse, AppleProduct, AvailableCampaignsResponseHandler, BorderLocationType, BorderSideType, Callback$1 as Callback, CloseHandler, CustomerJourneyState, DeepLinkUrlHandler, Device, DevicePayload, DeviceProfile, DirectionType, ExtendedPlatformInfo, FlexDirectionObject, FlowNavigationOptions, FontCollection, FontDetails, FormFactor, GoogleProduct, IConfig, IDeviceAdapter, IEntitlements$1 as IEntitlements, IPaywall, IPlatformAdapters, IProductsWithComponents, IPurchaseAdapter, ISkuMenu, IStorageAdapter, IUIAdapter, Impression, InitialConfig, InitialConfigCompressed, InitiateStateGroup, LoginResponse, NamiAnimation, NamiAnimationObjectSpec, NamiAnimationSpec, NamiAnonymousCampaign, NamiAppSuppliedVideoDetails, NamiCampaign, NamiCampaignSegment, NamiConfiguration, NamiConfigurationState, NamiEntitlement$1 as NamiEntitlement, NamiFlowAction, NamiFlowAnimation, NamiFlowCampaign, NamiFlowDTO, NamiFlowEventHandler, NamiFlowHandoffStepHandler, NamiFlowObjectDTO, NamiFlowOn, NamiFlowStep, NamiFlowTransition, NamiFlowTransitionDirection, NamiFlowWithObject, NamiInitialConfig, NamiLanguageCodes, NamiLogLevel, NamiPaywallActionHandler, NamiPaywallComponentChange, NamiPaywallEvent, NamiPaywallEventVideoMetadata, NamiPaywallLaunchContext, NamiPresentationStyle, NamiProductDetails, NamiProductOffer, NamiProfile, NamiPurchase, NamiPurchaseCompleteResult, NamiPurchaseDetails, NamiPurchasesState, NamiSKU, NamiSKUType, NamiSubscriptionInterval, NamiSubscriptionPeriod, 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, TSpacerComponent, TStack, TSvgImageComponent, TSymbolComponent, TTestObject, TTextComponent, TTextLikeComponent, TTextListComponent, TToggleButtonComponent, TToggleSwitch, TVariablePattern, TVideoComponent, TVolumeButton, TimerState, TransactionRequest, UserAction, UserActionParameters, Wave, WaveSpec };
package/dist/index.mjs CHANGED
@@ -96,7 +96,7 @@ const {
96
96
  // version — stamped by scripts/version.sh
97
97
  NAMI_SDK_VERSION = "3.4.1",
98
98
  // full package version including dev suffix — stamped by scripts/version.sh
99
- NAMI_SDK_PACKAGE_VERSION = "3.4.1-dev.202605272004",
99
+ NAMI_SDK_PACKAGE_VERSION = "3.4.1-rc.202605281509",
100
100
  // environments
101
101
  PRODUCTION = "production", DEVELOPMENT = "development",
102
102
  // error messages
@@ -12410,7 +12410,6 @@ var NamiFlowActionFunction;
12410
12410
  NamiFlowActionFunction["SET_TAGS"] = "setTags";
12411
12411
  NamiFlowActionFunction["PAUSE"] = "flowPause";
12412
12412
  NamiFlowActionFunction["RESUME"] = "flowResume";
12413
- NamiFlowActionFunction["SET_LAUNCH_CONTEXT"] = "setLaunchContext";
12414
12413
  })(NamiFlowActionFunction || (NamiFlowActionFunction = {}));
12415
12414
  const HandoffTag = {
12416
12415
  SEQUENCE: '__handoff_sequence__',
@@ -12994,16 +12993,6 @@ class FlowLiquidResolver {
12994
12993
  const idx = screenState?.getSelectedSlideIndexForCurrentCarousel();
12995
12994
  return idx != null ? `${idx + 1}` : undefined;
12996
12995
  }
12997
- case "productGroupId":
12998
- return PaywallState.currentProvider?.state.currentGroupId || undefined;
12999
- case "productGroupName": {
13000
- const s = PaywallState.currentProvider?.state;
13001
- return s?.groups?.find(g => g.id === s.currentGroupId)?.displayName ?? undefined;
13002
- }
13003
- case "productGroupRef": {
13004
- const s = PaywallState.currentProvider?.state;
13005
- return s?.groups?.find(g => g.id === s.currentGroupId)?.ref ?? undefined;
13006
- }
13007
12996
  default:
13008
12997
  return undefined;
13009
12998
  }
@@ -13949,16 +13938,6 @@ class NamiFlow extends BasicNamiFlow {
13949
13938
  this.forward(entry.id);
13950
13939
  }
13951
13940
  }
13952
- applyLaunchContextAttributes(attrs) {
13953
- if (!this.context) {
13954
- this.context = { customAttributes: {} };
13955
- new LaunchContextResolver(this.context);
13956
- }
13957
- // Guard against a runtime-supplied context that omits customAttributes
13958
- // (the field is required by the type but may be absent in untyped JSON).
13959
- this.context.customAttributes ??= {};
13960
- Object.assign(this.context.customAttributes, attrs);
13961
- }
13962
13941
  registerResolvers(context) {
13963
13942
  if (context) {
13964
13943
  new LaunchContextResolver(context);
@@ -14215,9 +14194,6 @@ class NamiFlow extends BasicNamiFlow {
14215
14194
  this.back();
14216
14195
  break;
14217
14196
  case NamiFlowActionFunction.NEXT:
14218
- if (action.parameters?.customAttributes) {
14219
- this.applyLaunchContextAttributes(action.parameters.customAttributes);
14220
- }
14221
14197
  if (action.parameters?.step) {
14222
14198
  this.forward(action.parameters.step);
14223
14199
  }
@@ -14226,9 +14202,6 @@ class NamiFlow extends BasicNamiFlow {
14226
14202
  }
14227
14203
  break;
14228
14204
  case NamiFlowActionFunction.NAVIGATE:
14229
- if (action.parameters?.customAttributes) {
14230
- this.applyLaunchContextAttributes(action.parameters.customAttributes);
14231
- }
14232
14205
  if (action.parameters?.step) {
14233
14206
  if (this.previousFlowStep?.id === action.parameters.step) {
14234
14207
  this.back();
@@ -14354,20 +14327,6 @@ class NamiFlow extends BasicNamiFlow {
14354
14327
  });
14355
14328
  }
14356
14329
  break;
14357
- case NamiFlowActionFunction.SET_LAUNCH_CONTEXT: {
14358
- // Two supported shapes (matches the nav-action customAttributes wire shape
14359
- // and the { key, value } shape used by Apple/Android/Roku). We deliberately
14360
- // do NOT treat arbitrary top-level parameters as attributes, to avoid writing
14361
- // reserved keys (step, delay, …) into the launch context.
14362
- const params = action.parameters;
14363
- if (params?.customAttributes) {
14364
- this.applyLaunchContextAttributes(params.customAttributes);
14365
- }
14366
- else if (params?.key !== undefined && params?.value !== undefined) {
14367
- this.applyLaunchContextAttributes({ [params.key]: params.value });
14368
- }
14369
- break;
14370
- }
14371
14330
  default:
14372
14331
  logger.warn(`Missing action handler for ${action.function}`, action);
14373
14332
  break;
@@ -64307,29 +64266,6 @@ const convertLocale = (locale) => {
64307
64266
  return intlLocale.language + (intlLocale.region ?? intlLocale.script ?? '');
64308
64267
  };
64309
64268
 
64310
- /**
64311
- * Coerces the four launch-context wire-format variants of a boolean —
64312
- * `true`, `false`, `"true"`, `"false"` — into a JS `boolean`.
64313
- *
64314
- * Returns `undefined` for everything else (case-variant strings, numbers,
64315
- * `null`, `undefined`, empty string, objects). Callers decide how to treat
64316
- * the `undefined` case; the helper deliberately does not coerce numerics or
64317
- * mixed-case strings so unintended truthy-by-presence behavior doesn't sneak
64318
- * back in.
64319
- */
64320
- function coerceBooleanish(value) {
64321
- if (value === true || value === false) {
64322
- return value;
64323
- }
64324
- if (typeof value === 'string') {
64325
- if (value === 'true')
64326
- return true;
64327
- if (value === 'false')
64328
- return false;
64329
- }
64330
- return undefined;
64331
- }
64332
-
64333
64269
  /**
64334
64270
  * Components that are skipped entirely (they and their subtree do not
64335
64271
  * contribute text to the page-level announcement).
@@ -64568,4 +64504,4 @@ function namiBuySKU(skuRefId) {
64568
64504
  return result;
64569
64505
  }
64570
64506
 
64571
- 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_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_NOT_AVAILABLE, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, 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, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager, NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager, NamiFlowStepType, NamiPaywallAction, NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiProfileManager, NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SessionService, SimpleEventTarget, StorageService, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, coerceBooleanish, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, empty, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseToSemver, postConversion, productDetail, registerPlatformAdapters, registerPurchaseAdapter, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateMinSDKVersion };
64507
+ 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_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_NOT_AVAILABLE, CUSTOMER_ATTRIBUTES_KEY_PREFIX, CUSTOMER_JOURNEY_STATE_CHANGED, CUSTOM_HOST_PREFIX, CampaignNotAvailableError, CampaignRuleConversionEventType, CampaignRuleRepository, Capabilities, ClientError, ConfigRepository, ConflictError, CustomerJourneyRepository, 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, NamiCampaignRuleType, NamiConditionEvaluator, NamiCustomerManager, NamiEntitlementManager, NamiEventEmitter, NamiFlow, NamiFlowActionFunction, NamiFlowManager, NamiFlowStepType, NamiPaywallAction, NamiPaywallManager, PaywallManagerEvents as NamiPaywallManagerEvents, NamiProfileManager, NamiPurchaseManager, NamiRefs, NamiReservedActions, NotFoundError, PAYWALL_ACTION_EVENT, PLATFORM_ID_REQUIRED, PRODUCTION, PaywallManagerEvents, PaywallRepository, PaywallState, PlacementLabelResolver, PlatformIDRequiredError, ProductRepository, RECONFIG_SUCCESS, RetryLimitExceededError, SDKNotInitializedError, SDK_NOT_INITIALIZED, SERVER_NAMI_ENTITLEMENTS, SESSION_REQUIRED, SHOULD_SHOW_LOADING_INDICATOR, SKU_TEXT_REGEX, SMART_TEXT_PATTERN, STATUS_BAD_REQUEST, STATUS_CONFLICT, STATUS_INTERNAL_SERVER_ERROR, STATUS_NOT_FOUND, STATUS_SUCCESS, SessionService, SimpleEventTarget, StorageService, UNABLE_TO_UPDATE_CDP_ID, USE_STAGING_API, VALIDATE_PRODUCT_GROUPS, VAR_REGEX, activateEntitlementByPurchase, activeEntitlements, aggregateScreenreaderText, allCampaigns, allPaywalls, applyEntitlementActivation, audienceSplitPosition, bestUrlCampaignMatch, bigintToUuid, checkAnySkuHasPromoOffer, checkAnySkuHasTrialOffer, convertISO8601PeriodToText, convertLocale, convertOfferToPricingPhase, createNamiEntitlements, currentSku, empty, extractStandardPricingPhases, formatDate, formattedPrice, generateUUID, getApiCampaigns, getApiPaywalls, getBaseUrl, getBillingPeriodNumber, getCurrencyFormat, getDeviceData, getDeviceFormFactor, getDeviceScaleFactor, getEffectiveWebStyle, getEntitlementRefIdsForSku, getExtendedClientInfo, getFreeTrialPeriod, getInitialCampaigns, getInitialPaywalls, getPaywall, getPaywallDataFromLabel, getPercentagePriceDifference, getPeriodNumberInDays, getPeriodNumberInWeeks, getPlatformAdapters, getPriceDifference, getPricePerMonth, getProductDetail, getPurchaseAdapter, getReferenceSku, getSkuProductDetailKeys, getSkuSmartTextValue, getSlideSmartTextValue, getStandardBillingPeriod, getTranslate, getUrlParams, handleErrors, hasAllPaywalls, hasCapability, hasPurchaseManagement, initialState, invokeHandler, isAnonymousMode, isInitialConfigCompressed, isNamiFlowCampaign, isSubscription, isValidISODate, isValidUrl, logger, mapAnonymousCampaigns, namiBuySKU, normalizeLaunchContext, parseToSemver, postConversion, productDetail, registerPlatformAdapters, registerPurchaseAdapter, selectSegment, setActiveNamiEntitlements, shouldValidateProductGroups, skuItems, skuMapFromEntitlements, storageService, toDouble, toNamiEntitlements, toNamiSKU, tryParseB64Gzip, tryParseJson, updateRelatedSKUsForNamiEntitlement, uuidFromSplitPosition, validateMinSDKVersion };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@namiml/sdk-core",
3
- "version": "3.4.1-dev.202605272004",
3
+ "version": "3.4.1-rc.202605281509",
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",