@datalyr/web 1.7.8 → 1.7.9

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.
@@ -52,6 +52,10 @@ export interface PixelConfig {
52
52
  enabled: boolean;
53
53
  pixel_id: string;
54
54
  };
55
+ whop?: {
56
+ enabled: boolean;
57
+ company_id: string;
58
+ };
55
59
  }
56
60
  export declare class ContainerManager {
57
61
  private scripts;
@@ -130,10 +134,10 @@ export declare class ContainerManager {
130
134
  * Load tracking pixel
131
135
  */
132
136
  private loadPixel;
133
- /**
134
- * Initialize third-party pixels (Meta, Google, TikTok)
135
- */
137
+ /** Initialize configured third-party pixels in the merchant's page context. */
136
138
  private initializePixels;
139
+ /** Initialize Whop's official first-party attribution pixel. */
140
+ private initializeWhopPixel;
137
141
  /**
138
142
  * Initialize Meta (Facebook) Pixel
139
143
  *
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=container.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.test.d.ts","sourceRoot":"","sources":["../src/container.test.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @datalyr/web v1.7.8
2
+ * @datalyr/web v1.7.9
3
3
  * Datalyr Web SDK - Modern attribution tracking for web applications
4
4
  * (c) 2026 Datalyr Inc.
5
5
  * Released under the MIT License
@@ -3691,12 +3691,10 @@ class ContainerManager {
3691
3691
  img.dataset.datalyrPixel = script.id;
3692
3692
  document.body.appendChild(img);
3693
3693
  }
3694
- /**
3695
- * Initialize third-party pixels (Meta, Google, TikTok)
3696
- */
3694
+ /** Initialize configured third-party pixels in the merchant's page context. */
3697
3695
  initializePixels() {
3698
3696
  return __awaiter(this, void 0, void 0, function* () {
3699
- var _a, _b, _c;
3697
+ var _a, _b, _c, _e;
3700
3698
  if (!this.pixels)
3701
3699
  return;
3702
3700
  // Initialize Meta Pixel
@@ -3711,8 +3709,58 @@ class ContainerManager {
3711
3709
  if (((_c = this.pixels.tiktok) === null || _c === void 0 ? void 0 : _c.enabled) && this.pixels.tiktok.pixel_id) {
3712
3710
  this.initializeTikTokPixel(this.pixels.tiktok);
3713
3711
  }
3712
+ // The Whop Pixel needs only the merchant's public company ID. Loading it
3713
+ // here lets Whop link this external-site visitor to a later hosted or
3714
+ // embedded Whop checkout without a Datalyr visitor_id in checkout metadata.
3715
+ if (((_e = this.pixels.whop) === null || _e === void 0 ? void 0 : _e.enabled) && this.pixels.whop.company_id) {
3716
+ this.initializeWhopPixel(this.pixels.whop);
3717
+ }
3714
3718
  });
3715
3719
  }
3720
+ /** Initialize Whop's official first-party attribution pixel. */
3721
+ initializeWhopPixel(config) {
3722
+ var _a, _b;
3723
+ try {
3724
+ const host = window;
3725
+ if (!host.whop) {
3726
+ const queue = host.whop = {
3727
+ q: [],
3728
+ t: Date.now(),
3729
+ s: [],
3730
+ o: 'https://t.whop.tw',
3731
+ track: function (...args) {
3732
+ queue.q.push([Date.now(), ...args]);
3733
+ },
3734
+ setScope: function (...args) {
3735
+ queue.s = args.filter((value) => typeof value === 'string');
3736
+ queue.q.push([Date.now(), 'setScope', ...queue.s]);
3737
+ },
3738
+ scope: function (...scope) {
3739
+ return {
3740
+ track: function (...args) {
3741
+ queue.q.push([Date.now(), ...args, { __scope: scope }]);
3742
+ },
3743
+ };
3744
+ },
3745
+ };
3746
+ const script = document.createElement('script');
3747
+ script.async = true;
3748
+ script.src = 'https://t.whop.tw/s.js';
3749
+ const firstScript = document.getElementsByTagName('script')[0];
3750
+ (_a = firstScript === null || firstScript === void 0 ? void 0 : firstScript.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(script, firstScript);
3751
+ if (!firstScript)
3752
+ document.head.appendChild(script);
3753
+ }
3754
+ if (typeof ((_b = host.whop) === null || _b === void 0 ? void 0 : _b.setScope) !== 'function') {
3755
+ throw new Error('Existing window.whop does not expose setScope');
3756
+ }
3757
+ host.whop.setScope(config.company_id);
3758
+ this.log('Whop Pixel initialized:', config.company_id);
3759
+ }
3760
+ catch (error) {
3761
+ this.log('Error initializing Whop Pixel:', error);
3762
+ }
3763
+ }
3716
3764
  /**
3717
3765
  * Initialize Meta (Facebook) Pixel
3718
3766
  *
@@ -3868,7 +3916,7 @@ class ContainerManager {
3868
3916
  * Track event to all initialized pixels
3869
3917
  */
3870
3918
  trackToPixels(eventName, properties = {}, eventId) {
3871
- var _a, _b, _c, _e, _f, _g, _h, _j, _k, _l;
3919
+ var _a, _b, _c, _e, _f, _g, _h, _j, _k, _l, _m, _p;
3872
3920
  // Datalyr-internal events ($identify, $group, $alias, $auto_identify,
3873
3921
  // $app_download_click, …) are not conversions — never forward them to ad
3874
3922
  // pixels. (Previously they fired as noise custom events with the $ stripped.)
@@ -3965,6 +4013,18 @@ class ContainerManager {
3965
4013
  this.log('Error tracking TikTok Pixel event:', error);
3966
4014
  }
3967
4015
  }
4016
+ // Whop records checkout and payment events server-side. Datalyr only sends
4017
+ // page views here, including SPA navigations, so purchases are never doubled.
4018
+ if (((_p = (_m = this.pixels) === null || _m === void 0 ? void 0 : _m.whop) === null || _p === void 0 ? void 0 : _p.enabled) &&
4019
+ window.whop &&
4020
+ (eventName === 'pageview' || eventName === 'page_view')) {
4021
+ try {
4022
+ window.whop.track('page');
4023
+ }
4024
+ catch (error) {
4025
+ this.log('Error tracking Whop Pixel page:', error);
4026
+ }
4027
+ }
3968
4028
  }
3969
4029
  /**
3970
4030
  * Manually trigger a custom script
@@ -6431,7 +6491,7 @@ class Datalyr {
6431
6491
  // drift from the package again (it sat at 1.7.4 across the 1.7.5 release). The
6432
6492
  // build guard (scripts/check-bundle.js, run by build:check) still verifies the
6433
6493
  // deployable bundles carry the package.json version. (FSR-103)
6434
- sdk_version: '1.7.8',
6494
+ sdk_version: '1.7.9',
6435
6495
  sdk_name: 'datalyr-web-sdk',
6436
6496
  // A3-25: versioned-envelope stamp. Every SDK emits schema_version so the ingest/contract
6437
6497
  // layer can key on ONE canonical envelope version (snake_case fields, event_name/event_data