JavaScript Change Log

5.4.1

  • Switch load priorities between two device vendors
  • Defect fix for window unlaod event binding

5.4.0

  • Add support for sending events to multiple customers

5.3.15

  • Update internal dependencies
  • Update some advanced device calls to send data sooner

5.3.14

  • Fix process not defined error for non-advanced builds
  • Relaxed collectorEndpoint validation to accept any valid URL
  • Update webpack build devtools to hidden-source-map

5.3.13

  • Dependency updates
  • Commands to support expanded advanced device
  • getIdentityId() command

5.3.12

  • Test coverage

5.3.11

  • Ensures advanced device request id ttl is applied correctly
  • Supports additional advanced device endpoint configuration options

5.3.10

  • Ensures clientId is set before any advanced device requests are made

5.3.9

  • Improve reporting of advanced device request id cache hits/misses

5.3.8

  • Improve latency reporting of advanced device signal retrieval

5.3.7

  • Adjusted advanced device implementation to decrease latency

5.3.6

  • Support reading advanced device endpoint key from nidConfig when available

5.3.5

  • Flush event queue after device vendor api call

5.3.4

  • Ensures device vendor api call is made only once per session

5.3.3

  • Remove error logging to log endpoint
  • Only collect javaEnabled if it's available

5.3.2

  • Adds support for nidIdCookie boolean nid config option.
    When set to true, the nid generated sessionId will be stored in cookie instead of the default sessionStorage

5.3.1

  • Retriggers ADDITIONAL_CLIENT_METADATA and ADVANCED_DEVICE_REQUEST on linked site id update.
  • Adds support for autoIdentify nid config option.

5.3.0

  • Adds support for start command to generate sessionId with callback function as third argument
  • Adds setLinkedSiteId command for setting linkedSiteId without necessitating a snippet change.

5.2.9

  • Only set sessionId when it is explicitly passed in the start function object.

5.2.8

  • Removes mandatory check for linkedSiteId on multi sites

5.2.7

  • Update start command to accept linkedSiteId in provided start object.
  • Replace finder call with determineUniqueSelector for target selectors.

5.2.6

  • Adds support for collection throttling using the new sampleRate nidConfig property
  • Persists salted hash value across tabs

5.2.5

  • Fixes an error which is breaking touch event collection on sites with jQuery
  • Resets first focus tracker to false to enable advanced device requests cross-forms
  • Validates attemptedLogin only when ID is provided

5.2.4

  • Improve latency reporting of various server calls
  • Add support for linked sites
  • Validate attempted login

5.2.3

  • Improve error logging.
  • Adds new event for device vendor api call failures
  • Sets variable for build type (adv vs regular) on start

5.2.2

  • Tracking will begin before advance device lookup.

5.2.1

  • clearSession will also clear in memory data.
  • Captures MEDIA DEVCIE related signals
  • Captures INTERNET CONNECTION signals.
  • Adds support to detect additional automation frameworks

5.2.0

  • Will generate and return a sessionId to be used to query the profiles endpoint, if none is provided at start.
  • Exposes new function setRegisteredUserId to be called with the id associated to a registered user in the system.

5.1.12

  • Enables new config option advancedDeviceEndpoint, a proxied endpoint for advanced device requests
  • Enables new config option advancedDeviceKeyEndpoint, an endpoint to retrieve api key for advanced requests.

5.1.11

  • Enables advanced device signal capturing.
  • Config option to call advanced device signals on FIRST_FOCUS vs START
  • Caches advanced device request id in cookie.
  • Config option for cookie expiry time with a default value of 24 hours
  • Exposes nid('attemptedLogin') and nid('successfulLogin') events.

5.1.10

  • Flush queue on FORM_SUBMIT event.
  • Bug fixes for mobile browser device signals

5.1.9

  • EVENT_PROPAGATION_STOPPED event error bug fix

5.1.8

  • Captures new device signals and adds a new event ADDITIONAL_CLIENT_METADATA
  • Bug fix to handle undefined/null for device motion acceleration

5.1.7

  • Enable retries of early POSTs to be more resilient to network connection race conditions.

5.1.6

  • Remove usage of eval() function from build to avoid CSP violations

5.1.5

  • Captures extended properties on touch events: pageX, pageY, radiusX, radiusY, rotationAngle, screenX, screenY and force
  • Captures extended properties on mouse and click events: pageX, pageY, screenX, screenY
  • New configuration option eventCapturing for adding event listeners in capturing phase

5.1.4

  • Send sample of all targets on STATE_CHANGE.

5.1.3

  • Handle undefined or null value inputs for getChangeSet method.
  • Remove queue flush on BLUR event.

5.1.2

  • Emit a CLIENT_METADATA event on page load.
  • Include additional metadata on REGISTER_TARGET events about element visibility.
  • New configuration options for retrying the POST of early event packets. Disabled by default.

5.1.1

  • Minor bug fixes

5.1.0

  • Updates the setUserId function with additional validation on a provided UserId.
    This validation requires the id must be a string, alphanumeric (dashes/underscores accepted), and have at least 3 characters.
    Developers will see a warning displayed to console when invalid ids are passed to this function.
  • Captures keycodes during combo events.

5.0.3

  • Defaults to auto starting the tracking client.
  • Sets target selector on CLICK, MOUSE_DOWN, and MOUSE_UP events anywhere on the page.
  • Handles cases where device orientation is unknown.
  • Removes optional key logging.
  • Additional cleaning on REGISTER_TARGET attributes.
  • Additional logging when required config options are not available

5.0.2

  • Small adjustment to prevent intermittent page manipulation.
  • Updates default collector endpoint.

5.0.1

  • Detects if another version of TrackJs is running before loading, and prevents multiple loads from occuring.

5.0.0

  • Autostart configuration to enable tracking on page load.
  • Uses web event listeners to capture events. Events are queued in a simple event structure.
  • Tracks nidId as a unique target identifier.
    • Targets are mapped on the page, either at page load or when events occur.
  • Sends events to the collection service
    • Packet struture is a simple json object
    • form_key used as a path parameter.
    • Event structures validated against Nid Event Schema
  • Tracks unique TabId
  • Queues new event DeregisterTargetEvent when a target is removed from the DOM.
  • Cleaned up existing events and listeners, adding additional validation.
  • Captures a salted hash of the value of RegisterTargetEvent, ChangeEvent, and InputEvent.
  • Capturing keyUp, keyDown, and ChangeEvent on password fields.
  • Captures new metadata on keyEvents
  • Captures new events:
    • contextMenu
    • doubleClickEvent
    • mouseDown
    • mouseUp
    • mouseEnter
    • mouseLeave
    • scroll
    • selectStart
    • touchStart
    • touchMove
    • touchEnd
    • wheel

New Api Commands

  • identify - Assign customer known Id to session. Will also invoke setUserId.
  • closeSession - Signal to API to automatically close a session.
  • deregisterTarget - Deregister a target that is removed from the DOM.
  • deregisterTargets - Deregister all targets as a list that are removed from the DOM.
  • startExternalFields - Functionality to track VGS fields. (Was in 4.x.x Libraries)