[Snyk] Upgrade mixpanel-browser from 2.41.0 to 2.53.0 #2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Snyk has created this PR to upgrade mixpanel-browser from 2.41.0 to 2.53.0.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 13 versions ahead of your current version.
The recommended version was released on 2 months ago.
Issues fixed by the recommended upgrade:
SNYK-JS-NANOID-2332193
Release notes
Package name: mixpanel-browser
This release reverts the UTM param persistence change introduced in v2.51.0, to minimize disruption for older implementations. UTM parameters will be persisted by default in super property storage when the SDK finds them on pageload. To opt in to the recommended modern behavior, use initialization option
{stop_utm_persistence: true}
.{stop_utm_persistence: false}
.record_block_class
,record_block_selector
, andrecord_mask_text_class
offer finer-grained control over elements to block in session recording, and provide stricter defaults.mixpanel.get_session_recording_properties()
exposes Replay ID property for tagging events controlled by other client-side SDKs such as Segment or mParticle.No content.
This release updates capabilities related to web/marketing/attribution analytics.
The
track_pageview
init option now accepts three string values to support SPA pageview tracking:"url-with-path"
: fire pageview events only when main url path changes (https://example.com/foo
->https://example.com/bar
but nothttps://example.com/foo?bar=1
->https://example.com/foo?bar=2
)"url-with-path-and-query-string"
: fire pageview events only when main url path or query string changes (https://example.com/foo?bar=1
->https://example.com/foo?bar=2
but nothttps://example.com/foo?bar=1#baz
->https://example.com/foo?bar=1#qux
)"full-url"
: fire pageview events when anything on the URL changesExample:
Profile properties storing referrer info (
$initial_referrer
and$initial_referring_domain
) are now saved withset_once
instead ofset
, to prevent overwriting.Persistence of UTM parameters can now be turned off with the init option
{stop_utm_persistence: true}
. This is opt-in today but will be the default setting in a future release. Thestop_utm_persistence
option will also override thestore_google
option, which is responsible persisting UTM parameters today. Ifstore_google
andstop_utm_persistence
are bothtrue
, any persisted UTM parameters will be cleared from storage.Visits from AhrefsSiteAudit crawler are now ignored.
This update patches a discrepancy between the minified and unminified versions of the packaged SDK. Campaign parameters will now be stored as super properties persistently in all versions.
API endpoint routes can now be configured individually, so you can rename /track, /engage, and /groups HTTP endpoints arbitrarily. Configure with the
api_routes
option:In the above example, event-tracking requests will go to
https://my-proxy.example.com/foo/
, user profile updates tohttps://my-proxy.example.com/bar/
, etc.Other fixes:
mixpanel.track()
will no longer be mutatedadd_group()
when adding a new group to an existing listNew default event properties are now captured with each event, holding campaign data present on the URL at the time of tracking. These include UTM parameters (in the format
utm_source
,utm_campaign
, etc.) and Click Identifiers (e.g.,gclid
,fbclid
, etc.). This functionality can be disabled with the initialization setting{track_marketing: false}
.UTM parameter properties are no longer persisted across pageloads as superproperties. They will be present only on events tracked on the same pageload where they were present initially.(2023-09-13) Correction: UTM parameter properties still persist across pageloads as superproperties. Persistence will be removed in a future release.For better first-touch attribution, UTM parameters present on the URL on pageload will be "set once" as profile properties (meaning that a new value will not overwrite any existing value on the profile property). These property names take the format
initial_utm_source
,initial_utm_campaign
, etc. This functionality can be disabled with the initialization setting{skip_first_touch_marketing: true}
.Support for automatic page-view tracking has been restored. With the init option
{track_pageview: true}
, an event named$mp_web_page_view
will be tracked on pageload, containing properties identifying the current page (current_page_title
,current_url_path
, etc.) as well as any UTM parameters and Click Identifiers. Pageview events with these properties can also be triggered manually:mixpanel.track_pageview();
// track pageview with additional properties
mixpanel.track_pageview({'Test variant': 'control'});
Automatic page-view tracking may be turned on by default in a future release.
Miscellaneous updates:
performance.now()
when available as part of its time-based entropy algorithmmixpanel.com
(looser than previous host checks)The
mixpanel.identify()
implementation has been updated for compatibility with Mixpanel's new identity management system (v3). From this version, we will prefix randomly-generated device-specific distinct_ids with "$device:". The prefix is applied the next time a new random ID is generated; any IDs generated by previous SDK versions and persisted in the browser will continue to be used as-is until reset is called to generate a new ID. This does not change the value sent for the$device_id
property, which will continue to be the randomly-generated ID without a prefix. Mixpanel's $identify endpoint has been updated to accept UUIDs with this prefix to coordinate with this change.This release also contains more aggressive client-side deduplication in the event-batching system, to reduce superfluous network sends in edge cases where parts of the queue/batch system fail. Related to this update, events now include a property
mp_sent_by_lib_version
which can distinguish the version of the library that actually sent an event over the network vs the version that originally queued the event.All code relating to in-app notifications has been removed, as the "Messages & Experiments" product is now entirely inactive after a 1.5 year deprecation cycle. The only noticeable changes should be:
/decide
API endpoint.There is now also support for surfacing SDK errors/warnings via the
error_reporter
configuration option. Exceptions and error messages which the SDK catches and handles will be passed to your handler function if supplied, e.g.:The
err
argument is anError
object preserving the stack. Note that errors that make it to the user-configured reporter are generally already handled by the SDK and should be used just for informational/debugging/monitoring purposes (e.g., "Error; retry in 10000 ms" is the batch/retry system responding to a network failure). Some errors are informative for uncovering implementation issues, e.g. "No event name provided to mixpanel.track".Several fixes are included in this release:
var
declarations were missing for the asynchronous HTML "snippet" loader (#215)localStorage
becomes unusable after an event has already been queued).Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: