What changed in each release of the npm packages, newest first. The script tag and the WordPress plugin load the current tracker from invisit on every page, so they are always on the latest release and have nothing to update.
When a site runs a release that has fallen behind, its dashboard says so on the Overview. A release below the oldest one we still recommend gets a yellow notice until the site updates. A newer release gets a quiet one that can be dismissed.
@invisitdev/web
The browser tracker as an ES module, for apps built with a bundler. Reference · npm
0.6.1Latest
Changed
- Heartbeats stop after 5 minutes without input, so a tab left open no longer counts as an online visitor.
- A visitor who comes back after the visit lapsed starts a new visit with a page view of the page in front of them.
- Web vitals and other end-of-page measurements are timed at the visitor's last activity, not when the tab finally closes.
Fixed
- FCP and LCP leave out paints that happen after the page was first hidden, so tabs opened in the background no longer report huge load times.
- Pages that never shift now report a CLS of 0 instead of no CLS at all.
- Referrers from Android apps (
android-app://) are kept instead of being counted as direct traffic, with only the app package recorded. - Script loads aborted by leaving the page are no longer reported as errors.
0.6.0
Added
errorsoption ininit()reports the page's uncaught errors and unhandled rejections; off unless set.captureError(error)export andtracker.captureError()report an error your own code caught, such as one stopped by an error boundary; needserrors: true.
0.5.0
Added
- Debug sessions: opening the site from a dashboard debug link shows an in-page panel listing each event and why any was refused, without the events reaching your reports.
Changed
- With
debug: true, every delivery is logged to the console along with the reason the collector refused anything.
0.4.1
Added
visitId()export andtracker.visitId()return the current visit's id, to pass into a checkout asinvisit_visit_idmetadata for revenue attribution.
Changed
- The short link click parameter
ivcis removed from the address bar once the landing page view is sent.
0.4.0
Changed
- Events wait up to 3 seconds for the site's settings before going out, so a host the site does not allow sends nothing.
Fixed
sdk_versionandtracker.versionreport the npm package's own version instead of the script tag tracker's.
0.3.1
Added
pageUrloption ininit()rewrites each page address before it is recorded, for example turning/orders/8121into/orders/:id.
Fixed
- Pages whose path
pageUrlrewrites no longer collect click heatmap data.
0.3.0
Changed
- Client-side page views wait up to 2 seconds for the router to set the new page title, so they carry the right title.
- Links to the site's own subdomains, parent domain or allowed domains are no longer counted as outbound.
- Browsers driven by automation (
navigator.webdriver) send nothing unlessdebugis on.
Fixed
- LCP, FCP and TTFB on prerendered pages are measured from when the page was shown, not from when it was prerendered.
0.2.1
Changed
- Packaging only: the repository field points at the public SDK repository.
0.2.0
Breaking
- The
keyoption ininit()is renamed tositeand takes the site id.
0.1.4
Changed
- The package exports with the
defaultcondition, sorequire()resolves it. - Option and function docs are JSDoc and show up in editors from
index.d.ts.
Fixed
- The feedback widget's Send button now disables while sending, so a message is no longer sent twice.
- Storage changes in other tabs only restart the tracker when they touch invisit's own keys.
0.1.3
Changed
- The default
baseUrlis nowhttps://api.invisit.dev.
0.1.2
Changed
- Packaging only: published with npm provenance.
0.1.1
Changed
- Documentation only: framework guides in the README.
0.1.0
Added
- First release of the invisit browser tracker as an ES module, with
init,track,identify,consent,feedback,sendFeedbackandflush.
@invisitdev/server
The first-party proxy, crawler reads and server-side events. Reference · npm
0.4.1Latest
Added
- Sends its version with every request, so the dashboard can tell you when an update matters.
0.4.0
Added
respectGpcoption increateInvisitleaves out events from visitors whose browser sends Global Privacy Control.
0.3.0
Added
track()accepts avisitorobject (ip,userAgent,language,gpc) instead ofrequest, for work that runs without the visitor's request, such as queue consumers.TrackVisitortype export.
Fixed
- Collector request timeouts work on runtimes without
AbortSignal.timeout.
0.2.1
Changed
- Packaging only: the repository field points at the public SDK repository.
0.2.0
Breaking
keymust be an API key with the ingest scope (invisit_sk_); server keys (invisit_ik_) are rejected.
0.1.4
Changed
- Calls to the collector time out after 10 seconds.
- The proxy answers 413 to request bodies over 1 MiB.
- Crawler detection uses the
isbotpackage, now a dependency, instead of a bundled copy. - Both entry points export with the
defaultcondition, sorequire()resolves them.
0.1.3
Changed
- The default
baseUrlis nowhttps://api.invisit.dev.
0.1.2
Changed
- Packaging only: published with npm provenance.
0.1.1
Added
ipoption onproxy(),handle()andtrack()passes the visitor's address for servers with no edge proxy in front.
Changed
createInvisitthrows a clear error whenkeyis empty, which usually means the environment variable is not set.onErroris told once when a proxied visitor arrives without an address.crawlers()records only GET and HEAD page reads, skipping static assets, RSC and prefetch requests and non-document fetches.crawlers()never reads the hostname fromX-Forwarded-Host, and the Node adapter dropsX-Forwarded-HostandX-Forwarded-Protounless the proxy is trusted.track()rejects withUSER_AGENT_MISSINGwhen the request has no User-Agent.
Fixed
- IPv4 visitors on dual-stack sockets (
::ffff:a.b.c.d) are recognised as the same address. - The Node
middlewareawaitsnext, so anextthat returns a promise works. - The Node
middlewarefails withBODY_CONSUMEDwhen a body parser read the tracker request first, instead of silently forwarding an empty event. - Logged errors are named
InvisitErrorinstead of a bundler-renamed class name.
0.1.0
Added
- First release, with
createInvisitprovidingproxy,handle,crawlersandtrack, and a Node adapter at@invisitdev/server/node.