js-ssr-sdk

ConfigCat SDK for JavaScript Server Side Rendered applications like NuxtJS. ConfigCat is a hosted feature flag service: https://configcat.com. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.

MIT License

Downloads
57K
Stars
7
Committers
13

Bot releases are hidden (Show)

js-ssr-sdk - v8.4.0 Latest Release

Published by adams85 7 months ago

Improvements:

  • Make naming of UserComparator members consistent. (https://github.com/configcat/common-js/pull/102)
  • Make line terminator character sequence configurable in log messages.
  • Adjust the terminology used in JSDoc comments to the main documentation.
  • Minor performance improvements.

Bug fixes:

  • Align evaluation logging and evaluator error reporting in some edge cases where the config JSON contains errors.
  • Correct grammar mistakes in error messages.

Breaking changes:

  • Change the name of some UserComparator members: Is(Not)OneOf -> TextIs(Not)OneOf, SensitiveIs(Not)OneOf -> SensitiveTextIs(Not)OneOf, (Not)ContainsAnyOf -> Text(Not)ContainsAnyOf. (Low impact expected.)
js-ssr-sdk - v8.3.0

Published by adams85 9 months ago

New features/improvements:

  • Add an optional parameter named watchChanges to createFlagOverridesFromMap which controls whether the client should detect changes to the flag override map after client initialization. (https://github.com/configcat/common-js/pull/101)

Bug fixes:

js-ssr-sdk - v8.2.0

Published by adams85 9 months ago

Improvements:

  • Upgrade to configcat-common v9.1.0.
  • Send ETag as a query string parameter when running in browser (because browsers don't send it automatically in every case).
  • Upon client initialization test for the availability of the local storage and use LocalStorageCache only if it's available. Otherwise, use the default (in-memory) cache implementation.
  • Don't swallow exceptions which are thrown in the LocalStorageCache.get/set methods so the outer exception handlers can catch and log them.
js-ssr-sdk - v7.1.2

Published by endret 9 months ago

Improvements:

  • Upgrade TypeScript version to 4.8.4

Security:

  • Upgrade axios library to 1.6.2
js-ssr-sdk - v8.1.0

Published by laliconfigcat 10 months ago

Fixed a cache issue with non Latin 1 characters in the config.json.

js-ssr-sdk - v8.0.0

Published by adams85 11 months ago

New features and improvements:

  • Add support for the new Config JSON v6 format: update the config model and implement new features in setting evaluation logic. (https://github.com/configcat/common-js/pull/96)
  • Overhaul setting evaluation-related logging and make it consistent across SDKs.
  • Performance improvements to setting evaluation (building of evaluation log is expensive, so it is skipped when info level logging is turned off).

Bug fixes:

  • Hook event handlers which close over the client instance should not prevent the client from being collected by the GC when user has no more references to the client instance. (https://github.com/configcat/common-js/pull/97)
  • Prevent potential issues with weak references when awaiting IConfigCatClient.waitForReady. Also, make observable if the initial cache sync-up fails.

Breaking changes (listed in the order of expected impact):

  • Rename the matchedEvaluationRule property to matchedTargetingRule and the matchedEvaluationPercentageRule property to matchedPercentageOption in IEvaluationDetails.
  • Throw Error when the SDK key passed to ConfigCatClient.get is in invalid format (unless the client is set up to use local-only flag override behavior).
  • Remove the deprecated ClientReadyState enum (it was renamed to ClientCacheState).
  • Change config model (IConfig and related interfaces/enums).
  • Slightly change the behavior of the ClientReady hook in Auto Poll mode to fire after the completion of the first fetch operation - regardless of success or failure - to make the behavior consistent with other SDKs. (https://github.com/configcat/common-js/pull/94)
js-ssr-sdk - v7.1.1

Published by adams85 about 1 year ago

Improvements:

  • For better compatibility, restrict the TypeScript language features used to those which are available in v4.0 by downgrading the TypeScript compiler version.
js-ssr-sdk - v7.1.0

Published by adams85 about 1 year ago

New features and improvements:

  • Provide a way to synchronously evaluate of feature flags/settings: consumers can create a snapshot of the client by IConfigCatClient.snapshot(), which captures the client's state (including the latest config fetched), then, using the returned object, they can execute synchronous evaluation operations.
  • Add a state parameter to the clientReady hook, by means of which consumers can get information about the initialization state of the client.
  • Minor performance improvements.

Bug fixes:

  • Fix error logging of getValueAsync/getValueDetailsAsync calls.
  • Fix JSDoc documentation of Comparator.Contains/NotContains.
js-ssr-sdk - v7.0.2

Published by z4kn4fein over 1 year ago

js-ssr-sdk - v7.0.1

Published by adams85 over 1 year ago

Bug fixes:

  • Fix return value of getAllValues when one or more settings evaluate with error.
js-ssr-sdk - v7.0.0

Published by adams85 over 1 year ago

Please note that this version comes with several breaking changes, so you may need to adjust your code when upgrading, especially if you're using deprecated APIs or a custom logger and/or cache implementation. You can find the detailed list of breaking changes below.

New features and improvements:

  • Complete overhaul of SDK logging:
    • Simplify the logger interface (IConfigCatLogger) to make it easier to write custom implementations/adapters to logger frameworks.
    • Enable structured logging.
    • Include event IDs in log messages to make identification of log events easier.
    • Revise log messages and make them consistent across the ConfigCat SDKs.
  • Revise caching of downloaded config data:
    • Change the cache interface (IConfigCatCache, formerly ICache) to get and set the cache payload as a plain string to make it easier to write custom implementations by removing the burden of data serialization from implementers.
    • Use a standardized config cache key generation algorithm and cache payload format to allow shared caches to be used by SDKs of different platforms.
  • Revise JSDoc documentation.
  • Improve the performance of the "IS (NOT) ONE OF (sensitive)" operators by hashing the value once (https://github.com/configcat/common-js/pull/80).

Bug fixes:

  • Fix checks which ensure that IAutoPollOptions.pollIntervalSeconds, IAutoPollOptions.maxInitWaitTimeSeconds and ILazyLoadingOptions.cacheTimeToLiveSeconds settings are in the valid range. (Also, make infinite init wait possible in the case of Auto Polling.)
  • Fix ... is not a function bug which can occur in Auto Polling mode, when IAutoPollOptions.maxInitWaitTimeSeconds is set to 0.

Breaking changes (listed in the order of expected impact):

  • Remove the createClient, createClientWithAutoPoll, createClientWithManualPoll and createClientWithLazyLoad factory functions. Alternative: getClient.
  • Remove all callback-style evaluation methods (e.g. getValue, getValueDetails, etc.) from IConfigCatClient. Alternative: get*Async(...).then(result => ...)
  • Remove the callback-style forceRefresh method from IConfigCatClient. Alternative: forceRefreshAsync(...).then(result => ...)
  • Remove the IAutoPollOptions.configChanged callback. Alternative: options.setupHooks = hooks => hooks.on("configChanged", ...).
  • Changes the type of the newConfig argument from ProjectConfig to IConfig in the configChanged hook.
  • Remove the debug, info, warn and error methods from IConfigCatLogger and change the signature of the log method, which is now the single method that needs to be implemented for custom logging.
  • Remove the ICache interface. Alternative: IConfigCatCache.
  • Remove the getVariationIdAsync and getAllVariationIdsAsync methods from IConfigCatClient/ConfigCatClient. Alternative: getValueDetailsAsync and getAllValueDetailsAsync.
  • Slightly change the behavior of flag overrides so default value is returned instead of an unsupported value.
  • Slightly change the behavior of getValuesAsync and getValuesDetailsAsync to fail early with exception when these methods are called with invalid parameters:
    • Error when key is empty.
    • TypeError when defaultValue is not of an allowed type (string, boolean, number, null and undefined).
  • Remove the IOverrideDataSource interface and the FlagOverrides and MapOverrideDataSource classes from the public API.
  • Remove the ProjectConfig, RolloutRule and RolloutPercentageItem classes from the public API.
  • Change the type of the MatchedEvaluationRule to ITargetingRule and MatchedEvaluationPercentageRule to IPercentageOption in IEvaluationDetails.
  • Change the algorithm used to generate the config cache key and the format of the cache payload.
js-ssr-sdk - v6.0.1

Published by adams85 over 1 year ago

Fix client setup in getClient to use the correct cache implementation. (Potentially, this will reduce the number of necessary config JSON downloads, so it's highly recommended to upgrade to this version in case you've started to use the new getClient API).

js-ssr-sdk - v6.0.0

Published by adams85 almost 2 years ago

  • Update library to the new major version (v7.0) of configcat-common. You can find the detailed list of changes here.
  • Re-export all public API types from configcat-common.
js-ssr-sdk - v5.6.1

Published by z4kn4fein almost 2 years ago

Fixed

  • When the flagOverrides was set, the { [name: string]: Setting } map transformation of the remote settings didn't work properly.
js-ssr-sdk - v5.6.0

Published by z4kn4fein almost 2 years ago

  • Add the If-None-Match header back to the request headers when the SDK is not running in browser.
js-ssr-sdk - v5.5.0

Published by z4kn4fein over 2 years ago

  • Move SDK version to query parameter.
  • Let the browser send the If-None-Match and If-Modified-Since headers.
js-ssr-sdk - v5.4.0

Published by laliconfigcat over 2 years ago

Adding polyfill for Object.fromEntries to support older browsers.
Adding tests for multiple browsers with different versions.

js-ssr-sdk - v5.3.0

Published by laliconfigcat over 2 years ago

Passing the real SDK version to common-js instead of using common-js version.
I had to increase the version of this package with 2 major versions as it has to be greater than the current common-js version.

js-ssr-sdk - v3.10.0

Published by z4kn4fein over 2 years ago

  • Export factory function for flag overrides.
js-ssr-sdk - v3.9.1

Published by sigewuzhere over 2 years ago

Updating configcat-common and axios deps to latest.