@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.
Files changed (41) hide show
  1. package/dist/base.provider-AfFL5W_P.js +19 -0
  2. package/dist/client-RZPcOfAk.js +86 -0
  3. package/dist/client.d.ts +68 -2
  4. package/dist/client.js +576 -10
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +1 -14
  7. package/dist/providers/client.js +6 -0
  8. package/dist/{src/providers/index.d.ts → providers/server.d.ts} +0 -2
  9. package/dist/providers/server.js +6 -0
  10. package/dist/{providers.js → server-CMRw9K0d.js} +2 -5
  11. package/dist/server.d.ts +38 -2
  12. package/dist/server.js +18 -14
  13. package/package.json +8 -4
  14. package/readme.md +11 -5
  15. package/dist/client-CyvENC-f.js +0 -577
  16. package/dist/client-MwIAm9fk.js +0 -96
  17. package/dist/environment-Bnc8FqHv.js +0 -6
  18. package/dist/providers.d.ts +0 -2
  19. package/dist/src/client.d.ts +0 -68
  20. package/dist/src/index.d.ts +0 -5
  21. package/dist/src/server.d.ts +0 -38
  22. package/dist/test/base-provider.test.d.ts +0 -1
  23. package/dist/test/client-analytics.test.d.ts +0 -1
  24. package/dist/test/events.test.d.ts +0 -1
  25. package/dist/test/index.test.d.ts +0 -1
  26. package/dist/test/mock-provider.d.ts +0 -34
  27. package/dist/test/providers.test.d.ts +0 -1
  28. package/dist/test/server-analytics.test.d.ts +0 -1
  29. package/dist/test/server.test.d.ts +0 -1
  30. package/dist/test/utils.test.d.ts +0 -1
  31. /package/dist/{src/adapters → adapters}/client/browser-analytics.d.ts +0 -0
  32. /package/dist/{src/adapters → adapters}/server/server-analytics.d.ts +0 -0
  33. /package/dist/{src/client → client}/index.d.ts +0 -0
  34. /package/dist/{src/core → core}/events/index.d.ts +0 -0
  35. /package/dist/{src/core → core}/events/types.d.ts +0 -0
  36. /package/dist/{src/providers → providers}/base.provider.d.ts +0 -0
  37. /package/dist/{src/providers → providers}/client.d.ts +0 -0
  38. /package/dist/{src/providers → providers}/posthog/client.d.ts +0 -0
  39. /package/dist/{src/providers → providers}/posthog/server.d.ts +0 -0
  40. /package/dist/{src/server → server}/index.d.ts +0 -0
  41. /package/dist/{src/utils → utils}/environment.d.ts +0 -0
package/dist/server.js CHANGED
@@ -1,6 +1,8 @@
1
- var o = Object.defineProperty;
2
- var f = (r, e, t) => e in r ? o(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
3
- var n = (r, e, t) => f(r, typeof e != "symbol" ? e + "" : e, t);
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
- n(this, "providers", []);
37
- n(this, "config");
38
- n(this, "initialized", !1);
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
- }, d = this.providers.map(async (s) => {
239
+ }, o = this.providers.map(async (n) => {
238
240
  try {
239
- await s.track(a, c);
240
- } catch (l) {
241
+ await n.track(a, c);
242
+ } catch (d) {
241
243
  console.error(
242
- `[Analytics] Provider ${s.name} failed to track event:`,
243
- l
244
+ `[Analytics] Provider ${n.name} failed to track event:`,
245
+ d
244
246
  );
245
247
  }
246
248
  });
247
- await Promise.all(d);
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 v(r) {
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
- v as createServerAnalytics
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",
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/posthog';
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/posthog';
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/posthog';
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/posthog';
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/posthog';
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';