Releases: wingify/vwo-fme-node-sdk
Version 1.24.0
Added support for sending a one-time initialization event to the server to verify correct SDK setup.
Version 1.23.1
Fixed
- Updated regex in
addIsGatewayServiceRequiredFlag
method to remove unsupported lookbehind and named capture groups, ensuring compatibility with older browsers like Safari 16.3 (SyntaxError: Invalid regular expression: invalid group specifier name
).
Version 1.23.0
[1.23.0] - 2025-07-18
Added
-
Added support for polling intervals to periodically fetch and update settings:
- If
pollInterval
is set in options (must be >= 1000 milliseconds), that interval will be used - If
pollInterval
is configured in VWO application settings, that will be used - If neither is set, defaults to 10 minute polling interval
Example usage:
vwoClient = await init({ accountId: '123456', sdkKey: '32-alpha-numeric-sdk-key', pollInterval: 60000; // Set the poll interval to 60 seconds, });
- If
Version 1.21.0
[1.21.0] - 2025-07-03
Added
-
Added configurable retry mechanism for network requests with partial override support. You can now customize retry behavior by passing a
retryConfig
in thenetwork
options:const vwoClient = await init({ accountId: '123456', sdkKey: '32-alpha-numeric-sdk-key', retryConfig: { shouldRetry: true, // Turn retries on/off (default: true) maxRetries: 3, // How many times to retry (default: 3) initialDelay: 2, // First retry after 2 seconds (default: 2) backoffMultiplier: 2, // Double the delay each time (delays: 2s, 4s, 8s) }, });
Version 1.20.2
[1.20.2] - 2025-06-27
Fixed
- Fixed settings fetch failure on Serverless environment by improving network request handling and compatibility
Version 1.20.1
[1.20.1] - 2025-06-20
Fixed
- Enhanced security for browser storage by implementing Base64 encoding for SDK key stored in localStorage.
Version 1.20.0
[1.20.0] - 2025-06-18
Added
-
Enhanced storage configuration options for browser environments with new features:
- Added custom
ttl
(Time To Live) option to control how long settings remain valid in storage - Added
alwaysUseCachedSettings
option to always use cached settings regardless of TTL - Default TTL remains 2 hours if not specified
const vwoClient = await init({ accountId: '123456', sdkKey: '32-alpha-numeric-sdk-key', clientStorage: { key: 'vwo_data', // defaults to vwo_fme_settings provider: sessionStorage, // defaults to localStorage isDisabled: false, // defaults to false alwaysUseCachedSettings: true, // defaults to false ttl: 3600000, // 1 hour in milliseconds, defaults to 2 hours }, });
These new options provide more control over how settings are cached and refreshed:
- When
alwaysUseCachedSettings
is true, the SDK will always use cached settings if available, regardless of TTL - Custom
ttl
allows you to control how frequently settings are refreshed from the server - Settings are still updated in the background to keep the cache fresh
Read more here
- Added custom
Version 1.19.0
[1.19.0] - 2025-05-29
Added
-
Enhanced browser environment support by enabling direct communication with VWO's DACDN when no
VWO Gateway Service
is configured to reduce network latency and improves performance by eliminating the need for seting up an intermediate service for browser-based environments. -
Added built-in persistent storage functionality for browser environments. The JavaScript SDK automatically stores feature flag decisions in
localStorage
to ensure consistent user experiences across sessions and optimize performance by avoiding re-evaluating users. You can customize or disable this behavior using theclientStorage
option while initializing the JavaScript SDK:const vwoClient = await init({ accountId: '123456', sdkKey: '32-alpha-numeric-sdk-key', clientStorage: { key: 'vwo_data', // defaults to vwo_fme_data provider: sessionStorage, // defaults to localStorage isDisabled: false, // defaults to false, set to true to disable storage }, });
Version 1.18.0
[1.18.0] - 2025-05-19
Changed
-
Merged #3 by @thomasdbock
-
Exported interfaces
IVWOClient
,IVWOOptions
,IVWOContextModel
, andFlag
to provide better TypeScript support and enable type checking for SDK configuration and usageimport { init, IVWOClient, IVWOOptions, Flag } from 'vwo-fme-node-sdk'; // Example of using IVWOOptions for type-safe configuration const options: IVWOOptions = { accountId: '123456', sdkKey: '32-alpha-numeric-sdk-key', }; // Example of using IVWOClient for type-safe client usage const vwoClient: IVWOClient = await init(options); // Example of using Flag interface for type-safe flag handling const flag: Flag = await vwoClient.getFlag('feature-key', { id: 'user-123' }); const isEnabled: boolean = flag.isEnabled(); const stringVariable: string = flag.getVariable('variable_key', 'default_value'); const booleanVariable: boolean = flag.getVariable('variable_key', true); const numberVariable: number = flag.getVariable('variable_key', 10);
Version 1.17.1
Added a feature to track and collect usage statistics