Skip to content

Releases: ostr-io/ostrio-analytics

v2.0.1

Choose a tag to compare

@dr-dimitru dr-dimitru released this 12 Aug 21:47
b02414f

Summary: Hardens tracking-ID validation, error-handler teardown, and transport fallbacks. Adds the agent skill and export/type tests.

Changes

  • 🔧 tracking ID must be 17 alphanumeric chars (A–Z, a–z, 0–9)
  • 🔧 error reports use the same URL scrubbing as pageviews
  • 🔧 cap cached global errors at 256; clear on destroy()
  • 🔧 restore chained window.onerror when trackers are destroyed out of order
  • 🔧 skip reports from destroyed error handlers
  • 🔧 same-origin check for error source URLs (no query-string spoof)
  • 🔧 beacon fallback when sendBeacon is missing or returns false
  • 🔧 CJS/ESM/UMD exports and types aligned
  • 🔧 rollup --forceExit; drop source maps from the npm tarball
  • 🧪 export and TypeScript consumer tests; CI runs build + exports + types
  • 🚛 Moved to ostr-io org
  • ☝️ LICENSE year

✨ New

  • Agent skill: npx skills add ostr-io/ostrio-analytics -g --skill ostrio-analytics
  • analytics comparison doc

📦 Dependencies (Development):

  • tslib (UMD downlevel helpers)

v2.0.0

Choose a tag to compare

@dr-dimitru dr-dimitru released this 01 Dec 20:37
77e27da

Brief: Ground-up TypeScript rewrite with multi-format builds, smarter URL filtering, hardened transports, and stronger runtime validation.

New methods

  • setTransport(Transport) — switch between fetch, beacon, and img at runtime (auto-fallback to img if fetch is unavailable).
  • applySettings({...}) — update runtime flags (trackHash, trackQuery, transport, serviceUrl) without reinstantiating.
  • ignoreQuery(key) / ignoreQueries(keys[]) — case-insensitive removal of noisy query/search params from navigation detection and payloads.
  • destroy() — unbind all listeners and clear internal timers (SPA teardown/HMR friendly).

Major changes

  • TypeScript port with strict types and generated declarations.
  • Smarter URL controls: trackHash, trackQuery, ignoredQueries, ignoredPaths (supports exact, prefix /*, and RegExp). Internals now use Set for performance and dedupe.
  • Transport hardening: default fetch with credentials: 'include', mode: 'no-cors', cache: 'no-store'; beacon when available; legacy img pixel fallback.
  • Global error capture: adds unhandledrejection reporting and de-dupes identical [Global Error] payloads.
  • Validation: constructing with an invalid 17-char tracking ID now throws an error.
  • Service URL normalization: trailing slash enforced.
  • Distribution artifacts: ESM (dist/index.js), CJS (dist/index.cjs), UMD (dist/ostrio-analytics.umd.js), UMD minified (dist/ostrio-analytics.min.js), and types (dist/index.d.ts).
  • Package exports map aligned for modern bundlers; UMD/minified builds only attach the global window.OstrioTrackerClass for <script> usage (modules do not pollute globals).

Breaking changes

  • Invalid tracking ID throws at construction.
  • Global attach limited to script builds: ESM/CJS no longer define globals.

Full Changelog: 1.3.0...2.0.0

v1.3.0

Choose a tag to compare

@dr-dimitru dr-dimitru released this 01 Dec 20:31
a271ecc

v1.2.1

Choose a tag to compare

@dr-dimitru dr-dimitru released this 03 Mar 07:50
73f0bf6
  • 📦 NPM: v1.2.1
  • ☄️ Meteor: v1.3.1

New:

  • 📡 Add support for Beacon API
  • 📋 Docs: Google Analytics integration
  • 📋 Docs: Google Tag Manager integration
  • 📋 Docs: Mention support of Beacon API

Changed:

  • 👨‍💻 Codebase: Minor overall optimizations
  • 📋 Docs: Overall fixes and enhancements

v1.2.0 (Meteor: v1.3.0)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 03 Oct 10:33
ebb18e7

v1.1.9 (Meteor: v1.2.9)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 19 Aug 11:17
8f85cca
  • 👨‍💻 Remove click listener on anchor elements, it's not necessary in 2019 and should slightly reduce JS footprint of the library
  • 📋 Documentations update

v1.1.8 (Meteor: v1.2.8)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 26 Apr 09:50
a0cea57
  • 📦 Internal Meteor dependencies update
  • 🤝 Compatibility with meteor@1.8.1
  • 👷‍♂️ Maintenance release

v1.1.7 (Meteor: v1.2.7)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 12 Jan 05:07
310127d
  • 🔥 Hot fixes over codebase, update is highly recommended
  • 📦 [Meteor ☄️] Internal dependencies update
  • 🤝 [Meteor ☄️] Compatibility with meteor@1.8.0.2
  • 📄 License year bump

v1.1.6 (Meteor: v1.2.6)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 17 Sep 00:58
e7427ab
  • 🔥 Hot fix over latest release

v1.1.5 (Meteor: v1.2.5)

Choose a tag to compare

@dr-dimitru dr-dimitru released this 17 Sep 00:51
f6742c2
  • 📄 Docs update
  • 👨‍💻 Minor code refactoring
  • 👷‍♂️ Encode "Custom Event" data