diff --git a/package.json b/package.json index 2f488e2b66..15b3a52bd5 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "@appwrite.io/pink-legacy": "^1.0.3", "@appwrite.io/pink-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-svelte@46a4901", "@faker-js/faker": "^9.9.0", + "@plausible-analytics/tracker": "^0.4.4", "@popperjs/core": "^2.11.8", "@sentry/sveltekit": "^10.25.0", "@stripe/stripe-js": "^3.5.0", @@ -42,7 +43,6 @@ "ignore": "^6.0.2", "nanoid": "^5.1.6", "nanotar": "^0.1.1", - "plausible-tracker": "^0.3.9", "pretty-bytes": "^6.1.1", "prismjs": "^1.30.0", "react": "^19.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 980902897f..5b47edfc0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: '@faker-js/faker': specifier: ^9.9.0 version: 9.9.0 + '@plausible-analytics/tracker': + specifier: ^0.4.4 + version: 0.4.4 '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -71,9 +74,6 @@ importers: nanotar: specifier: ^0.1.1 version: 0.1.1 - plausible-tracker: - specifier: ^0.3.9 - version: 0.3.9 pretty-bytes: specifier: ^6.1.1 version: 6.1.1 @@ -966,6 +966,9 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@plausible-analytics/tracker@0.4.4': + resolution: {integrity: sha512-fz0NOYUEYXtg1TBaPEEvtcBq3FfmLFuTe1VZw4M8sTWX129br5dguu3M15+plOQnc181ShYe67RfwhKgK89VnA==} + '@playwright/test@1.57.0': resolution: {integrity: sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==} engines: {node: '>=18'} @@ -2786,11 +2789,6 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - plausible-tracker@0.3.9: - resolution: {integrity: sha512-hMhneYm3GCPyQon88SZrVJx+LlqhM1kZFQbuAgXPoh/Az2YvO1B6bitT9qlhpiTdJlsT5lsr3gPmzoVjb5CDXA==} - engines: {node: '>=10'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - playwright-core@1.57.0: resolution: {integrity: sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==} engines: {node: '>=18'} @@ -4395,6 +4393,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@plausible-analytics/tracker@0.4.4': {} + '@playwright/test@1.57.0': dependencies: playwright: 1.57.0 @@ -6369,8 +6369,6 @@ snapshots: picomatch@4.0.3: {} - plausible-tracker@0.3.9: {} - playwright-core@1.57.0: {} playwright@1.57.0: diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index 5d0b0384df..1c86fb0f16 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -1,5 +1,5 @@ import Analytics, { type AnalyticsPlugin } from 'analytics'; -import Plausible from 'plausible-tracker'; +import { init, track } from '@plausible-analytics/tracker'; import { get } from 'svelte/store'; import { page } from '$app/state'; import { user } from '$lib/stores/user'; @@ -12,30 +12,30 @@ import { resolvedProfile } from '$lib/profiles/index.svelte'; function plausible(domain: string): AnalyticsPlugin { if (!browser) return { name: 'analytics-plugin-plausible' }; - const instance = Plausible({ - domain + init({ + domain, + autoCapturePageviews: false }); return { name: 'analytics-plugin-plausible', page: ({ payload }) => { - instance.trackPageview({ + track('pageview', { url: payload.properties.path, - referrer: payload.properties.referrer, - deviceWidth: payload.properties.width + props: { + referrer: payload.properties.referrer, + deviceWidth: String(payload.properties.width) + } }); }, track: ({ payload }) => { - instance.trackEvent( - payload.event, - { - props: payload.properties - }, - { - url: payload.properties.path, - deviceWidth: payload.properties.width + track(payload.event, { + url: payload.properties.path, + props: { + ...payload.properties, + deviceWidth: String(payload.properties.width) } - ); + }); }, loaded: () => true };