UNPKG

@namiml/web-sdk

Version:

Nami Web SDK makes subscriptions & in-app purchases easy, with powerful built-in paywalls and A/B testing

278 lines (207 loc) 12.5 kB
# Changelog ## 1.6.2 (July 29, 2025) ### Enhancements - Improved television layout scaling for various viewport sizes ## 1.6.2 (July 28, 2025) ### New Features - **Nami.sdkVersion** - Method to get the internal SDK version - Added support for QR Code components - On Device Segment Selection for A/B testing - Support Base64, Gzipped Initial Configurations - Support Fully Uppercase Text Components ### Enhancements - Paywall actions will now trigger if no flow action for a button is defined ### Bug Fixes - Dynamic widths on Responsive Grid components ## 1.6.1 (July 13, 2025) ### Improvements - Fix type exports in declaration files ## 1.6.0 (July 10, 2025) ### New Features - **NamiFlowManager** - Introduced `NamiFlowManager` for orchestrating multi-page flows. - **NamiFlowManager.registerStepHandoff** - Method to register a callback that is called when a flow is handed off. - **NamiFlowManager.registerEventHandler** - Method to register a callback that is called for flow analytics. - **NamiFlowManager.resume** - Method to call after a flow is handed off, to resume the flow. ### UI Enhancements - Default Focused Buttons - Blur Properties ### Accessibility - Screenreader support for videos - Screenreader hints have been added ### Performance - Better support handling multiple `Nami.configure` calls - General stability fixes ## 1.5.11 (June 18, 2025) ## Enhancements - Performance improvements for form factor lookups ## Bugfixes - Fix uninterpolated smart text - Fix fallback to in-memory storage on localStorage write failures ## 1.5.10 (May 22, 2025) ## Enhancements - Support focused styling on buttons and toggle - Support tab key focus for collapsible component - Support alt tags on images ## Bugfixes - Fix toggle switch not preserving state on re-render - Fix additional spacing in text list items - Fix issue with screenreader and collapsed content ## 1.5.9 (Apr 2, 2025) ## Bugfixes - Resolve incorrect downscaling on 720p TV devices ## 1.5.8 (Apr 1, 2025) ## Bugfixes - Resolve an issue where toggle component event was firing twice - Resolve an issue where toogle switch state was re-rendering due to parent page - Resolve an issue where additional spacing was being applied ## 1.5.7 (Feb 20, 2025) ## Bugfixes - Resolve additional type issue encountered with certain initial config files ## 1.5.6 (Feb 19, 2025) ## Bugfixes - Resolve type issue encountered with certain initial config files ## 1.5.5 (January 16, 2025) ## Enhancements - Add optional `purchaseChannel` to `NamiConfiguration` to pass through to `NamiPaywallEvent` analytics ## 1.5.4 (November 29, 2024) ## Bugfixes - Resolve issue with TV focus with containers and product button on first load ## 1.5.3 (November 21, 2024) ## Bugfixes - Resolve an issue where the collapse component caret icon was not updating when expanded ## Enhancements - Support scaling on TV devices for optimal display on 720p, 1080p, 4K, and 8K devices ## 1.5.2 (October 24, 2024) ## Bugfixes - Fix an issue where the wrong campaign rule was being used for a given placement label - Fix issue where the wrong initial config campaign rule was being used - Fix an issue where background video on mobile goes into full screen player - Fix an issue with focus events on connected TV platforms - Fix an issue with login / logout state handling - Fix an issue with free trial and promotional offer display - Fix several UI issues with carousel and stack components ## 1.5.1 (October 2, 2024) ## Enhancements - Add `TOGGLE_CHANGE` and `PAGE_CHANGE` paywall events ## Bugfixes - Fix carousel component swiper - Fix flex alignment - Fix hero video not redenering correctly in Safari ## 1.5.0 (September 26, 2024) ## New Features - Support for advanced video features - Support for carousel component ## Enhancements - Improve fallback data handling - Support repeatable list inside collapse component - Support vertical alignment on product container - Align `removeAllListeners` behavior with RN SDK ## Bugfixes - Fix segment picker cursor - Fix hidden component handling - Fix responsive grid spacing and scrolling - Fix background video and gradient container - Fix background video position ## 1.4.0 (September 5, 2024) ## New Features - Support for HLS in Video component - Support for Responsive Grid component - Add `NamiCustomerManager.deviceId` - Add `NamiCustomerManager.registerJourneyStateHandler`, `journeyState` (subscription management-only) - Add `NamiEntitlementManager.clearProvisionalEntitlementGrants` (subscription management-only) ## Enhancements - Allow passing product groups to paywall via campaign launch ## Bug Fixes - Find product by id rather than name - Fix text component spacing issue ## Improvements - Modify type definitions for `NamiPaywallManager.registerSignInHandler`, `NamiPaywallManager.registerCloseHandler`, `NamiPaywallManager.registerBuySkuHandler`, `NamiPaywallManager.registerDeeplinkActionHandler`, `NamiCustomerManager.registerAccountStateHandler`, `NamiCampaignManager.launch` handlers to match Nami React Native SDK ## 1.3.2 (August 14, 2024) ### Bug Fixes - Support Conditional components based on product entitlement - Respect conditions based on product groups ## 1.3.1 (August 12, 2024) ### Bug Fixes - `SHOW_PAYWALL` event action is being triggered as `UNKNOWN` ## 1.3.0 (August 12, 2024) ### New Features - **NamiEntitlementManager** - Implemented `NamiEntitlementManager` for Nami to manage entitlements. - **NamiEntitlementManager.active** - Retrieve all active entitlements for a user on the current device. - **NamiEntitlementManager.isEntitlementActive** - Check if a single entitlement is currently active. - **NamiEntitlementManager.refresh** - Manually trigger a refresh of the user's latest active entitlements from the Nami services. - **NamiEntitlementManager.registerActiveEntitlementsHandler** - Register a callback to react to a potential changes to the active entitlements for the user - **NamiEntitlement** - Object that contains data about an entitlement on the Nami Platform. - **Support hidden components** - Hide components without removing them from your paywalls. - **New components** - Video and collapsable components. - **Improved timeout and error handling** ### Bug Fixes - Provide consistent typing with other Nami SDKs. - Updated the JavaScript version to ECMAScript2021 for better backward compatability. ### Breaking changes - `NamiConfiguration`'s `appPlatformId` is now `appPlatformID` for consistentcy with other Nami SDKs - `NamiPaywallManager.buySkuComplete` has a much simpler (but modified) interface. ## 1.2.0 (July 26, 2024) ### New Features - **NamiCampaignManager.launch** - Implemented `paywallLaunchContext` in `NamiCampaignManager.launch` in order to provide the paywall additional details. - **NamiPaywallManager.buySKUCancel** - Implemented `NamiPaywallManager.buySKUCancel` to let Nami know the user has canceled their paywall purchase. - **NamiPayallManager.buySKUComplete** - Implemented `NamiPaywallManager.buySKUComplete` to let Nami know the user has completed their paywall purchase. - **Impression / Conversion Reporting** - Implemented impression / conversion reporting for paywall analytics. - **Improved paywall load time** - Paywalls render signficantly faster when immediately displayed. ### Bug Fixes - Provide consistent typing with other Nami SDKs. - Provide consistent APIs with other Nami SDKs. ## 1.1.0 (June 24, 2024) ### New Features - **NamiCustomerManager.setAnonymousMode** - Method to enable anonymous mode for the customer, concealing their identity from system tracking for privacy. - **NamiCampaignManager.launch** - Implemented the `paywallActionHandler` to allow registering a callback to receive paywall-related events. - **NamiPaywallManager.registerBuySkuHandler** - Method to register a callback invoked when the user initiates a purchase action. ### Bug Fixes - Resolved compatibility issues with the Lit web component library and server-side rendering. - Fixed rendering issues with subscription periods and pricing in paywalls. - Fixed connectivity issues related to custom API hosts. - Enhanced the display for different icons. ### Known Issues - `NamiPaywallManager`'s `buySkuComplete` and `buySkuCancel` methods are not fully implemented. - Impression or conversion reporting not yet implemented. - Launch context is not yet implemented. ## 1.0.0 (June 13, 2024) ### New Features - **Nami** - Introduced `Nami` to provide core functionality to initialize the SDK. - **Nami.configure** -Method to initialize and configure the SDK using a `NamiConfiguration` object. - **NamiConfiguration** - Defines the structure of the configuration object used by `Nami.configure`. - **NamiLanguageCodes** - Defines the languages supported by Nami paywalls. - **NamiCampaignManager** - Introduced `NamiCampaignManager` to launch paywalls and manage campaigns. - **NamiCampaignManager.launch** - Method to launch paywalls. - **NamiCampaignManager.allCampaigns** - Method to get a list of available `NamiCampaign`s. - **NamiCampaignManager.isCampaignAvailable** - Method to check if a matching campaign is available, returning a boolean. - **NamiCampaignManager.refresh** - Method to request that available campaigns be refreshed. - **NamiCampaignManager.registerAvailableCampaignsHandler** - Method to register a callback that is called when campaigns are updated. - **NamiCampaign** - Defines the structure of the campaign objects. - **NamiCustomerManager** - Introduced `NamiCustomerManager` to manager customer related functionality. - **NamiCustomerManager.isLoggedIn** - Method to check if a customer is logged in, returning a boolean. - **NamiCustomerManager.loggedInId** - Method to get the unique customer identifier associated with the current device. - **NamiCustomerManager.login** - Method to provide a customer id to link one or more devices to a known customer. - **NamiCustomerManager.logout** - Method to disassociate a device from a customer identifier. - **NamiCustomerManager.registerAccountStateHandler** - Method to register a callback that is called when a customer is logged in or logged out. - **NamiCustomerManager.setCustomerAttribute** - Method to set an attribute in an on-device key/value store for use for paywall personalization uses cases. - **NamiCustomerManager.getCustomerAttribute** - Method to get the current stored value, if available, for the provided key in the on-device customer key/value store. - **NamiCustomerManager.clearCustomerAttribute** - Method to remove a key from the on-device customer key/value store. - **NamiCustomerManager.clearAllCustomerAttributes** - Method to clear all customer attributes in the on-device key/value store. - **NamiCustomerManager.setAnonymousMode** - Method to set the anonymous mode for the customer. - **NamiPaywallManager** - Introduce `NamiPaywallManager` to manage paywalls. - **NamiPaywallManager.setProductDetails** - Method to set product and price details to be used by the paywall. - **NamiPaywallManager.registerSignInHandler** - Method to register a callback for when the customer clicks a sign in button on the paywall. - **NamiPaywallManager.registerCloseHandler** - Method to register a callback for when the customer clicks on a close button on the paywall. - **NamiPaywallManager.registerDeeplinkActionHandler** - Method to register a callback for when a customer clicks on a deeplink button on the paywall. - **NamiPaywallManager.registerBuySkuHandler** - Method to register a callback for when a customer clicks on a buy button on the paywall. - **NamiPaywallManager.registerRestoreHandler** - Method to register a callback wfor when a customer clicks to restore a previous purchase. - **NamiPaywallManager.buySkuComplete** - Method to notify Nami SDK when a purchase succeeded for conversion reporting. - **NamiPaywallManager.buySkuCancel** - Method to notify Nami SDK when a user cancelled the purchase flow, or an error occurred. ### Known Issues - When user actions are taken on the paywall, paywall callbacks are not being called. - `NamiPaywallManager`'s `buySkuComplete` and `buySkuCancel` methods are not fully implemented. - `NamiCustomerManager`'s `setAnonymousMode` method is not fully implemented. - Impression or conversion reporting not yet implemented - Launch context is not yet implemented ### Additional Notes Please refer to the documentation for detailed usage instructions and examples.