fix(javascript-sdk): collect timezone independently of orientation
@hackler/javascript-sdk@12.1.0
Date: August 25, 2026
feature: support asynchronous WebView bridge invocations
@hackler/javascript-sdk@12.0.0
Date: August 5, 2026
Breaking Changes
variation() and variationDetail() no longer accept the third defaultVariation argument.
// before hackleClient.variation(42, user, "B") // after hackleClient.variation(42, user)
This is not only a type change. When a variation cannot be decided, the SDK now always returns the control variation "A". Code that relied on a custom fallback will behave differently after it compiles.
HackleClient.getExperiment() has been removed.
HackleExperiment.variations has been removed, so variationDetail(...).experiment no longer carries the variation list.
The defaultVariation removal also applies to the WebView bridge and the HTML in-app message bridge.
Behavior Changes
These apply after upgrading, with no code change on your side.
In-app message impressions are now recorded only when the message is actually presented. Previously an impression was recorded even when the presentation was skipped or failed, which consumed the frequency cap. Messages that failed to display may now be shown again.
Target event day windows (within N days) now exclude the boundary timestamp, so events dated exactly N days ago are no longer counted.
A target whose conditions all fail to parse is now ignored instead of matching every user. This affects workspaces that use targeting condition types the SDK does not recognize.
Added
Remote evaluation mode. Set evaluationMode: "remote" in the config to have the server evaluate experiments, feature flags, remote config and in-app messages instead of evaluating on the device.
support browserProperties in web-app integration mode.
change api endpoint #571
@hackler/javascript-sdk@11.45.2
Date: July 24, 2025
allow setUserId(null) to unset userId
web-app-client can send null to app during setUserId
@hackler/javascript-sdk@11.45.1
Date: July 3, 2025
support rendering newline in-app-message on [MODAL+TEXT+BUTTON] layout. in PR
@hackler/javascript-sdk@11.45.0
Date: July 1, 2025
add hideUserExplorer in webview bridge
add crm message subscription
@hackler/javascript-sdk@11.44.0
Date: May 9, 2025
just version up
@hackler/javascript-sdk@11.43.0
Date: April 29, 2025
Node.js
support http/https compression (gzip, br, deflate)
Browser
refactor in-app message experiment structure
@hackler/javascript-sdk@11.42.0
Date: April 18, 2025
New method for controlling user's phone number (This is useful if you use KakaoTalk biz message to send notifications or advertisements to your customers.)
setPhoneNumber: sets user's phone number. This value is unique for each UserId.
unsetPhoneNumber: resets user's phone number to be an empty value.
@hackler/javascript-sdk@11.41.0
Date: March 27, 2025
New operator for targeting: user property's existence
@hackler/javascript-sdk@11.40.0
Date: March 24, 2025
Added HackleClient.getExperiment method. This method can be used to retrieve A/B test setting information.
@hackler/javascript-sdk@11.39.0
Date: February 17, 2025
add event target evaluation
@hackler/javascript-sdk@11.38.1
Date: January 14, 2025
convert string to boolean for matching comparison
@hackler/javascript-sdk@11.38.0
Date: January 12, 2025
Supports multiple images in in-app messages
@hackler/javascript-sdk@11.37.1
Date: October 2, 2024
Fixed NOT_MATCH operation return false even though the user was not included in any cohort
@hackler/javascript-sdk@11.37.0
Date: September 9, 2024
feat: added InAppMessage Listener
fix: CloseButton(X_button) will be considered as ActionInteraction > CloseAction not CloseInteraction
@hackler/javascript-sdk@11.36.0
Date: August 9, 2024
feat: added new in-app message layout (bottom sheet).
fix: prevent in-app-message IMAGE layout modal from getting out of focus while message is open.
@hackler/javascript-sdk@11.35.0
Date: July 15, 2024
feat: Supports unexposed control group for in-app message A/B testing
@hackler/javascript-sdk@11.34.2
Date: July 5, 2024
Synchronize cohorts only when identifiers are updated
Use setInterval when scheduling in node
@hackler/javascript-sdk@11.34.1
Date: June 18, 2024
feat: Added User Engagement
@hackler/javascript-sdk@11.34.0
Date: June 18, 2024
Released with the same build version as @hackler/javascript-sdk@11.33.1. Saved for history