Skip to content

Releases: wingify/vwo-fme-node-sdk

Version 1.24.0

05 Aug 10:47
Compare
Choose a tag to compare

Added support for sending a one-time initialization event to the server to verify correct SDK setup.

Version 1.23.1

24 Jul 09:54
Compare
Choose a tag to compare

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

18 Jul 10:41
Compare
Choose a tag to compare

[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,
    });

Version 1.21.0

03 Jul 07:19
Compare
Choose a tag to compare

[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 the network 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

27 Jun 13:03
Compare
Choose a tag to compare

[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

20 Jun 08:32
Compare
Choose a tag to compare

[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

18 Jun 13:08
Compare
Choose a tag to compare

[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

Version 1.19.0

29 May 11:57
Compare
Choose a tag to compare

[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 the clientStorage 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

19 May 13:17
Compare
Choose a tag to compare

[1.18.0] - 2025-05-19

Changed

  • Merged #3 by @thomasdbock

  • Exported interfaces IVWOClient, IVWOOptions, IVWOContextModel, and Flag to provide better TypeScript support and enable type checking for SDK configuration and usage

    import { 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

13 May 16:55
Compare
Choose a tag to compare

Added a feature to track and collect usage statistics