
Research
/Security News
5 Malicious Rust Crates Posed as Time Utilities to Exfiltrate .env Files
Published late February to early March 2026, these crates impersonate timeapi.io and POST .env secrets to a threat actor-controlled lookalike domain.
@canonical/analytics-events
Advanced tools
Lightweight event-based analytics library for tracking user interactions.
data-analytics-*npm install @canonical/analytics-events
<button data-analytics-click data-analytics-target="signup_btn">
Sign Up
</button>
<div data-analytics-hover data-analytics-target="promo_banner">
Hover me
</div>
<section data-analytics-view data-analytics-target="hero_section">
Track when this section is viewed
</section>
<script type="module">
import { initAnalytics, trackPageView } from '@canonical/analytics-events';
initAnalytics({
appName: 'snapcraft',
endpoint: 'https://marketplace-analytics.canonical.com/analytics/events'
});
// Track a page view immediately (no threshold or observer)
trackPageView('snap_details_page');
</script>
| Attribute | Description |
|---|---|
data-analytics-click | Enable click tracking on element |
data-analytics-hover | Enable hover tracking on element |
data-analytics-view | Enable view tracking on element |
data-analytics-view-threshold | Visibility ratio to trigger view (default: 0.75) |
data-analytics-target | Identifier for the element (required) |
data-analytics-* | Custom attributes included in payload |
initAnalytics(options)Initializes all declarative tracking (click, hover, view) and configures the sender.
| Option | Type | Description |
|---|---|---|
appName | string | Application identifier (e.g. "snapcraft") |
endpoint | string | URL to send event batches to |
trackPageView(target)Fires a page_view event immediately. Use this for tracking page visits where you need every visit counted regardless of how quickly the user navigates away.
| Parameter | Type | Description |
|---|---|---|
target | string | Identifier for the page (e.g. "snap_details_page") |
{
app_name: "snapcraft",
events: [
{
event_type: "click" | "hover" | "view" | "page_view",
session_id: "session_abc123...",
target: "signup_btn",
url: "https://example.com/page",
attributes: {
// custom data-analytics-* attributes
duration_ms: 2500, // hover and view only
visibility_ratio: 0.85 // view only
}
}
]
}
npm install
npm run build # Build for production
npm run lint # Check code
npm run lint:fix # Fix lint issues
A demo page is included in test-app/ to test tracking locally.
npm install
npm run build
npm run dev
Open http://localhost:3000/test-app/ in your browser. Interact with elements and open the Event Log to see captured events.
FAQs
Lightweight analytics event tracking
The npm package @canonical/analytics-events receives a total of 303 weekly downloads. As such, @canonical/analytics-events popularity was classified as not popular.
We found that @canonical/analytics-events demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 25 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Published late February to early March 2026, these crates impersonate timeapi.io and POST .env secrets to a threat actor-controlled lookalike domain.

Security News
A recent burst of security disclosures in the OpenClaw project is drawing attention to how vulnerability information flows across advisory and CVE systems.

Research
/Security News
Mixed-script homoglyphs and a lookalike domain mimic imToken’s import flow to capture mnemonics and private keys.