NEW:
- Cookie sharing across subdomains:
client.initAutoTracking({ shareUuidAcrossDomains: true });
(#104 contributed by jmousseau)
FIXED:
- Gracefully handle a tags without hrefs (#105)
- Avoid refreshing window when
href="#"
(#111) - Don't attempt to clone a function attribute in deepExtend (#106)
- Record deferred events loop (#116)
NEW:
- Server-side tracking now respects the
"http"
value forprotocol
option, using thehttp
module. Previously this always usedhttps
, regardless of the configuration value, which can cause issues for internal proxies (#82, via #92 contributed by lukechilds) - Auto-tracking now records
page.time_on_page
(seconds) for all events
FIXED:
- This project now builds and runs correctly in NodeJS v7 and v8 (#95, via #96 contributed by lukechilds)
NEW:
- Ported functionality from the Web Auto Collector into this SDK: The interface and behaviors of this feature are a little different, but the data models produced are backward compatible (#83)
- New helper:
Keen.helpers.getScrollState()
: Return an object of properties profiling the current scroll state, and optionally pass this object back into the helper again to receive a new object with updatedpixel_max
andratio_max
values - New helper:
Keen.helper.getDomNodeProfile(<ELEMENT>)
: Return an object containing properties profiling a given DOM node - New utility:
Keen.utils.serializeForm(<FORM>, OPTIONS)
: Serialize the data of a form, with the option to ignore certain input types by passing in a{ ignoreTypes: ['password'] }
option
FIXED:
- Wrap
JSON.parse()
in atry/catch
block to mitigate error impact when the API returns un-parsable contents (#88)
UPDATED:
- Description meta tag content is now part of the
Keen.helpers.getBrowserProfile()
output when present
FIXED:
- Fixed a queue polling issue (#84) to prevent queue from polling until events are added to the queue, allowing scripts to close properly when queues are not used
- Clear polling loop prior to replacing queue with a new one
FIXED:
- Fixed queue handling (#76) to clear the internal
setInterval
loop and allow scripts using queues to exit properly - Fixed async loader snippet (#77).
UPDATED:
- Updated tests and docs related to deferred event handling and queueing (#76).
- Updated docs about assigning DOM listeners to anchor tags with nested elements (#72).
- Include a UTC Datetime Index example in
docs/helpers.md
(#49, #70).
FIXED:
- Fixed
window.navigator
reference to avoid errors in environments that expose non-standardwindow
objects, such as React Native.
FIXED:
- This update fixes #66, where server usage of
recordEvents()
includes a trailing slash, resulting in aResourceNotFoundError
error.
NEW:
- This patch installs
[email protected]
and removes the internalevents
resource mapping (now in keen-core) to fix an issue with prototype inheritance and state.
FIXED:
- This patch isolates global namespace definition and installs
[email protected]
to fix an issue where prototype methods of other SDKs were blended into this SDK's prototype.
FIXED:
- This library will now coalesce into a shared global
Keen
namespace, rather than colliding and overwriting other modular SDKs. Check out [email protected] for details about this fix.
FIXED:
- Minor update imports [email protected] with
Keen.ready(fn)
handler and an internaldomReady
function (previously part of this library, last bit of functionality to port over to keen-core.js)
CHANGED:
- Cookie values that are strings or JSON can be successfully retreived using the same
.get
function form theKeen.utils.cookie
module. The.get
function now intelligently decides whether to return a Javascript object or a simple string value.
FIXED:
- Event properties with
undefined
values no longer throw an error when used withKeen.utils.extend
.
NEW:
- Move core client functionality to keen-core.js (PR #40).
BREAKING:
- Replaced cookies-js with js-cookie. Cookies are now encoded properly, but will require a workaround (covered here) to fix previous cookie data.
- Removed
client.writePath()
method andwritePath
config option in favor of internal resource mapping and theclient.resources()
method.
CHANGE:
- Publish to bower
CHANGE:
- Reworked
.url()
method to use resource templates, with an internal collection that makes specific API URLS easy to request and customize.
FIXED:
- Define noop func when no callback is provided (fixes #34)
FIXED:
- Fix reference to proper lib file for server usage (#32)
NEW:
- Upgrade internal JSON dep to JSON3 (#33)
FIXED:
- Each
Keen.utils.cookie
instance now returnsnull
for single undefined properties (#30)
NEW:
- Each
Keen.utils.cookie
instance now has an.enabled()
method that returnstrue
orfalse
NEW:
- Synchronous XHR option (#28, ported from keen-js)
BREAKING:
.recordEvent
XHR calls now use POST, mirroring previous keen-js functionality (#27).client.url()
: The previous keen-js implementation ofclient.url()
automatically includedhttps://api.keen.io/3.0/projects/PROJECT_ID
+ apath
argument ('/events/whatever'), which severely limited its value. It now only returnshttps://api.keen.io
+ the path argument.
NEW:
- Everything :)