@stacksee/analytics 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base.provider-AfFL5W_P.js +19 -0
- package/dist/client-RZPcOfAk.js +86 -0
- package/dist/client.d.ts +68 -2
- package/dist/client.js +576 -10
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -14
- package/dist/providers/client.js +6 -0
- package/dist/{src/providers/index.d.ts → providers/server.d.ts} +0 -2
- package/dist/providers/server.js +6 -0
- package/dist/{providers.js → server-CMRw9K0d.js} +2 -5
- package/dist/server.d.ts +38 -2
- package/dist/server.js +18 -14
- package/package.json +8 -4
- package/readme.md +11 -5
- package/dist/client-CyvENC-f.js +0 -577
- package/dist/client-MwIAm9fk.js +0 -96
- package/dist/environment-Bnc8FqHv.js +0 -6
- package/dist/providers.d.ts +0 -2
- package/dist/src/client.d.ts +0 -68
- package/dist/src/index.d.ts +0 -5
- package/dist/src/server.d.ts +0 -38
- package/dist/test/base-provider.test.d.ts +0 -1
- package/dist/test/client-analytics.test.d.ts +0 -1
- package/dist/test/events.test.d.ts +0 -1
- package/dist/test/index.test.d.ts +0 -1
- package/dist/test/mock-provider.d.ts +0 -34
- package/dist/test/providers.test.d.ts +0 -1
- package/dist/test/server-analytics.test.d.ts +0 -1
- package/dist/test/server.test.d.ts +0 -1
- package/dist/test/utils.test.d.ts +0 -1
- /package/dist/{src/adapters → adapters}/client/browser-analytics.d.ts +0 -0
- /package/dist/{src/adapters → adapters}/server/server-analytics.d.ts +0 -0
- /package/dist/{src/client → client}/index.d.ts +0 -0
- /package/dist/{src/core → core}/events/index.d.ts +0 -0
- /package/dist/{src/core → core}/events/types.d.ts +0 -0
- /package/dist/{src/providers → providers}/base.provider.d.ts +0 -0
- /package/dist/{src/providers → providers}/client.d.ts +0 -0
- /package/dist/{src/providers → providers}/posthog/client.d.ts +0 -0
- /package/dist/{src/providers → providers}/posthog/server.d.ts +0 -0
- /package/dist/{src/server → server}/index.d.ts +0 -0
- /package/dist/{src/utils → utils}/environment.d.ts +0 -0
package/dist/server.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
var
|
|
2
|
-
var f = (r, e, t) => e in r ?
|
|
3
|
-
var
|
|
1
|
+
var l = Object.defineProperty;
|
|
2
|
+
var f = (r, e, t) => e in r ? l(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
+
var s = (r, e, t) => f(r, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
import { P as m } from "./server-CMRw9K0d.js";
|
|
5
|
+
import { B as x } from "./base.provider-AfFL5W_P.js";
|
|
4
6
|
class u {
|
|
5
7
|
/**
|
|
6
8
|
* Creates a new ServerAnalytics instance for server-side event tracking.
|
|
@@ -33,9 +35,9 @@ class u {
|
|
|
33
35
|
* ```
|
|
34
36
|
*/
|
|
35
37
|
constructor(e) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
s(this, "providers", []);
|
|
39
|
+
s(this, "config");
|
|
40
|
+
s(this, "initialized", !1);
|
|
39
41
|
this.config = e, this.providers = e.providers;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
@@ -234,17 +236,17 @@ class u {
|
|
|
234
236
|
}, c = {
|
|
235
237
|
...this.config.defaultContext,
|
|
236
238
|
...i == null ? void 0 : i.context
|
|
237
|
-
},
|
|
239
|
+
}, o = this.providers.map(async (n) => {
|
|
238
240
|
try {
|
|
239
|
-
await
|
|
240
|
-
} catch (
|
|
241
|
+
await n.track(a, c);
|
|
242
|
+
} catch (d) {
|
|
241
243
|
console.error(
|
|
242
|
-
`[Analytics] Provider ${
|
|
243
|
-
|
|
244
|
+
`[Analytics] Provider ${n.name} failed to track event:`,
|
|
245
|
+
d
|
|
244
246
|
);
|
|
245
247
|
}
|
|
246
248
|
});
|
|
247
|
-
await Promise.all(
|
|
249
|
+
await Promise.all(o);
|
|
248
250
|
}
|
|
249
251
|
/**
|
|
250
252
|
* Tracks a page view event from the server side.
|
|
@@ -476,7 +478,7 @@ class u {
|
|
|
476
478
|
return t.length > 1 && t[0] ? t[0] : "engagement";
|
|
477
479
|
}
|
|
478
480
|
}
|
|
479
|
-
function
|
|
481
|
+
function h(r) {
|
|
480
482
|
const e = {
|
|
481
483
|
providers: r.providers || [],
|
|
482
484
|
debug: r.debug,
|
|
@@ -487,6 +489,8 @@ function v(r) {
|
|
|
487
489
|
return t.initialize(), t;
|
|
488
490
|
}
|
|
489
491
|
export {
|
|
492
|
+
x as BaseAnalyticsProvider,
|
|
493
|
+
m as PostHogServerProvider,
|
|
490
494
|
u as ServerAnalytics,
|
|
491
|
-
|
|
495
|
+
h as createServerAnalytics
|
|
492
496
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stacksee/analytics",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "A highly typed, provider-agnostic analytics library for TypeScript applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -16,9 +16,13 @@
|
|
|
16
16
|
"types": "./dist/server.d.ts",
|
|
17
17
|
"import": "./dist/server.js"
|
|
18
18
|
},
|
|
19
|
-
"./providers": {
|
|
20
|
-
"types": "./dist/providers.d.ts",
|
|
21
|
-
"import": "./dist/providers.js"
|
|
19
|
+
"./providers/client": {
|
|
20
|
+
"types": "./dist/providers/client.d.ts",
|
|
21
|
+
"import": "./dist/providers/client.js"
|
|
22
|
+
},
|
|
23
|
+
"./providers/server": {
|
|
24
|
+
"types": "./dist/providers/server.d.ts",
|
|
25
|
+
"import": "./dist/providers/server.js"
|
|
22
26
|
}
|
|
23
27
|
},
|
|
24
28
|
"main": "./dist/index.js",
|
package/readme.md
CHANGED
|
@@ -97,7 +97,7 @@ Tip: If you have a lot of events, you can also divide your events into multiple
|
|
|
97
97
|
|
|
98
98
|
```typescript
|
|
99
99
|
import { createClientAnalytics } from '@stacksee/analytics/client';
|
|
100
|
-
import { PostHogClientProvider } from '@stacksee/analytics/providers/
|
|
100
|
+
import { PostHogClientProvider } from '@stacksee/analytics/providers/client';
|
|
101
101
|
import type { AppEvents } from './events';
|
|
102
102
|
|
|
103
103
|
// Initialize analytics with providers as plugins
|
|
@@ -138,7 +138,7 @@ analytics.identify('user-123', {
|
|
|
138
138
|
|
|
139
139
|
```typescript
|
|
140
140
|
import { createServerAnalytics } from '@stacksee/analytics/server';
|
|
141
|
-
import { PostHogServerProvider } from '@stacksee/analytics/providers/
|
|
141
|
+
import { PostHogServerProvider } from '@stacksee/analytics/providers/server';
|
|
142
142
|
import type { AppEvents } from './events';
|
|
143
143
|
|
|
144
144
|
// Create analytics instance with providers as plugins
|
|
@@ -268,7 +268,7 @@ Here's a complete example using Svelte 5 that demonstrates both client and serve
|
|
|
268
268
|
```typescript
|
|
269
269
|
// src/lib/config/analytics.ts
|
|
270
270
|
import { createClientAnalytics } from '@stacksee/analytics/client';
|
|
271
|
-
import { PostHogClientProvider } from '@stacksee/analytics/providers/
|
|
271
|
+
import { PostHogClientProvider } from '@stacksee/analytics/providers/client';
|
|
272
272
|
import { PUBLIC_POSTHOG_API_KEY, PUBLIC_POSTHOG_HOST } from '$env/static/public';
|
|
273
273
|
|
|
274
274
|
// Define your events for the waitlist
|
|
@@ -306,7 +306,7 @@ export const clientAnalytics = createClientAnalytics<AppEvents>({
|
|
|
306
306
|
```typescript
|
|
307
307
|
// src/lib/server/analytics.ts
|
|
308
308
|
import { createServerAnalytics } from '@stacksee/analytics/server';
|
|
309
|
-
import { PostHogServerProvider } from '@stacksee/analytics/providers/
|
|
309
|
+
import { PostHogServerProvider } from '@stacksee/analytics/providers/server';
|
|
310
310
|
import { AppEvents } from '$lib/config/analytics'; // Import AppEvents
|
|
311
311
|
import { PUBLIC_POSTHOG_API_KEY, PUBLIC_POSTHOG_HOST } from '$env/static/public';
|
|
312
312
|
|
|
@@ -564,6 +564,12 @@ const analytics = await createClientAnalytics<typeof AppEvents>({
|
|
|
564
564
|
|
|
565
565
|
### Client-Only and Server-Only Providers
|
|
566
566
|
|
|
567
|
+
**Important**: To avoid bundling Node.js dependencies in your client code, always use the environment-specific provider imports:
|
|
568
|
+
|
|
569
|
+
- **Client-side**: `@stacksee/analytics/providers/client` - Only includes browser-compatible providers
|
|
570
|
+
- **Server-side**: `@stacksee/analytics/providers/server` - Only includes Node.js providers
|
|
571
|
+
- **Both**: `@stacksee/analytics/providers` - Includes all providers (may cause bundling issues in browsers)
|
|
572
|
+
|
|
567
573
|
Some analytics libraries are designed to work only in specific environments. For example:
|
|
568
574
|
- **Client-only**: Google Analytics (gtag.js), Hotjar, FullStory
|
|
569
575
|
- **Server-only**: Some enterprise analytics APIs that require secret keys
|
|
@@ -638,7 +644,7 @@ The plugin architecture makes it easy to send events to multiple analytics servi
|
|
|
638
644
|
|
|
639
645
|
```typescript
|
|
640
646
|
import { createClientAnalytics } from '@stacksee/analytics/client';
|
|
641
|
-
import { PostHogClientProvider } from '@stacksee/analytics/providers/
|
|
647
|
+
import { PostHogClientProvider } from '@stacksee/analytics/providers/client';
|
|
642
648
|
// Import your custom providers
|
|
643
649
|
import { GoogleAnalyticsProvider } from './providers/google-analytics';
|
|
644
650
|
import { MixpanelProvider } from './providers/mixpanel';
|