@rudderstack/analytics-js 3.8.0 → 3.9.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [3.9.0](https://github.com/rudderlabs/rudder-sdk-js/compare/@rudderstack/analytics-js@3.8.0...@rudderstack/analytics-js@3.9.0) (2024-10-25)
6
+
7
+ ### Dependency Updates
8
+
9
+ * `@rudderstack/analytics-js-cookies` updated to version `0.3.13`
10
+ * `@rudderstack/analytics-js-common` updated to version `3.11.0`
11
+ * `@rudderstack/analytics-js-plugins` updated to version `3.5.1`
12
+
13
+ ### Features
14
+
15
+ * gainsight PX destination ([#1852](https://github.com/rudderlabs/rudder-sdk-js/issues/1852)) ([#1889](https://github.com/rudderlabs/rudder-sdk-js/issues/1889)) ([3a705f0](https://github.com/rudderlabs/rudder-sdk-js/commit/3a705f063bcae99c7964495ff83ad9ce8d4eb5a3))
16
+ * track time spent on a page ([#1876](https://github.com/rudderlabs/rudder-sdk-js/issues/1876)) ([5590af7](https://github.com/rudderlabs/rudder-sdk-js/commit/5590af712dd951ce9182c06d8042794c4fe6df2f))
17
+
5
18
  ## [3.8.0](https://github.com/rudderlabs/rudder-sdk-js/compare/@rudderstack/analytics-js@3.7.19...@rudderstack/analytics-js@3.8.0) (2024-10-21)
6
19
 
7
20
  ### Dependency Updates
@@ -226,6 +226,20 @@ type PreConsentOptions = {
226
226
  storage?: PreConsentStorageOptions;
227
227
  events?: PreConsentEventsOptions;
228
228
  };
229
+ declare enum PageLifecycleEvents {
230
+ LOADED = "Page Loaded",
231
+ UNLOADED = "Page Unloaded"
232
+ }
233
+ type PageLifecycleOptions = {
234
+ enabled: boolean;
235
+ events?: PageLifecycleEvents[];
236
+ options?: ApiOptions;
237
+ };
238
+ type AutoTrackOptions = {
239
+ enabled?: boolean;
240
+ options?: ApiOptions;
241
+ pageLifecycle?: PageLifecycleOptions;
242
+ };
229
243
  /**
230
244
  * Represents the options parameter in the load API
231
245
  */
@@ -266,6 +280,7 @@ type LoadOptions = {
266
280
  externalAnonymousIdCookieName?: string;
267
281
  useServerSideCookies?: boolean;
268
282
  dataServiceEndpoint?: string;
283
+ autoTrack?: AutoTrackOptions;
269
284
  };
270
285
  type ConsentOptions = {
271
286
  storage?: StorageOpts;
@@ -495,6 +510,11 @@ interface IRudderAnalytics<T = any> {
495
510
  consent(options?: ConsentOptions): void;
496
511
  }
497
512
 
513
+ type PreloadedEventCall = Array<string | any>;
514
+ type RudderAnalyticsPreloader = {
515
+ [index: string]: (...args: any[]) => any;
516
+ };
517
+
498
518
  /**
499
519
  * A buffer queue to serve as a store for any type of data
500
520
  */
@@ -794,11 +814,6 @@ interface ICapabilitiesManager {
794
814
  onReady(): void;
795
815
  }
796
816
 
797
- type PreloadedEventCall = Array<string | any>;
798
- type RudderAnalyticsPreloader = {
799
- [index: string]: (...args: any[]) => any;
800
- };
801
-
802
817
  interface IAnalytics {
803
818
  preloadBuffer: BufferQueue<PreloadedEventCall>;
804
819
  initialized: boolean;
@@ -968,6 +983,32 @@ declare class RudderAnalytics implements IRudderAnalytics<IAnalytics> {
968
983
  * Create new analytics instance and trigger application lifecycle start
969
984
  */
970
985
  load(writeKey: string, dataPlaneUrl: string, loadOptions?: Partial<LoadOptions>): void;
986
+ /**
987
+ * A function to get preloaded events array from global object
988
+ * @returns preloaded events array
989
+ */
990
+ getPreloadedEvents(): PreloadedEventCall[];
991
+ /**
992
+ * A function to track page lifecycle events like page loaded and page unloaded
993
+ * @param preloadedEventsArray
994
+ * @param loadOptions
995
+ * @returns
996
+ */
997
+ trackPageLifecycleEvents(preloadedEventsArray: PreloadedEventCall[], loadOptions?: Partial<LoadOptions>): void;
998
+ /**
999
+ * Buffer the page loaded event in the preloaded events array
1000
+ * @param events
1001
+ * @param options
1002
+ * @param preloadedEventsArray
1003
+ */
1004
+ private trackPageLoadedEvent;
1005
+ /**
1006
+ * Setup page unload tracking if enabled
1007
+ * @param events
1008
+ * @param useBeacon
1009
+ * @param options
1010
+ */
1011
+ private setupPageUnloadTracking;
971
1012
  /**
972
1013
  * Trigger load event in buffer queue if exists and stores the
973
1014
  * remaining preloaded events array in global object
@@ -226,6 +226,20 @@ type PreConsentOptions = {
226
226
  storage?: PreConsentStorageOptions;
227
227
  events?: PreConsentEventsOptions;
228
228
  };
229
+ declare enum PageLifecycleEvents {
230
+ LOADED = "Page Loaded",
231
+ UNLOADED = "Page Unloaded"
232
+ }
233
+ type PageLifecycleOptions = {
234
+ enabled: boolean;
235
+ events?: PageLifecycleEvents[];
236
+ options?: ApiOptions;
237
+ };
238
+ type AutoTrackOptions = {
239
+ enabled?: boolean;
240
+ options?: ApiOptions;
241
+ pageLifecycle?: PageLifecycleOptions;
242
+ };
229
243
  /**
230
244
  * Represents the options parameter in the load API
231
245
  */
@@ -266,6 +280,7 @@ type LoadOptions = {
266
280
  externalAnonymousIdCookieName?: string;
267
281
  useServerSideCookies?: boolean;
268
282
  dataServiceEndpoint?: string;
283
+ autoTrack?: AutoTrackOptions;
269
284
  };
270
285
  type ConsentOptions = {
271
286
  storage?: StorageOpts;
@@ -495,6 +510,11 @@ interface IRudderAnalytics<T = any> {
495
510
  consent(options?: ConsentOptions): void;
496
511
  }
497
512
 
513
+ type PreloadedEventCall = Array<string | any>;
514
+ type RudderAnalyticsPreloader = {
515
+ [index: string]: (...args: any[]) => any;
516
+ };
517
+
498
518
  /**
499
519
  * A buffer queue to serve as a store for any type of data
500
520
  */
@@ -794,11 +814,6 @@ interface ICapabilitiesManager {
794
814
  onReady(): void;
795
815
  }
796
816
 
797
- type PreloadedEventCall = Array<string | any>;
798
- type RudderAnalyticsPreloader = {
799
- [index: string]: (...args: any[]) => any;
800
- };
801
-
802
817
  interface IAnalytics {
803
818
  preloadBuffer: BufferQueue<PreloadedEventCall>;
804
819
  initialized: boolean;
@@ -968,6 +983,32 @@ declare class RudderAnalytics implements IRudderAnalytics<IAnalytics> {
968
983
  * Create new analytics instance and trigger application lifecycle start
969
984
  */
970
985
  load(writeKey: string, dataPlaneUrl: string, loadOptions?: Partial<LoadOptions>): void;
986
+ /**
987
+ * A function to get preloaded events array from global object
988
+ * @returns preloaded events array
989
+ */
990
+ getPreloadedEvents(): PreloadedEventCall[];
991
+ /**
992
+ * A function to track page lifecycle events like page loaded and page unloaded
993
+ * @param preloadedEventsArray
994
+ * @param loadOptions
995
+ * @returns
996
+ */
997
+ trackPageLifecycleEvents(preloadedEventsArray: PreloadedEventCall[], loadOptions?: Partial<LoadOptions>): void;
998
+ /**
999
+ * Buffer the page loaded event in the preloaded events array
1000
+ * @param events
1001
+ * @param options
1002
+ * @param preloadedEventsArray
1003
+ */
1004
+ private trackPageLoadedEvent;
1005
+ /**
1006
+ * Setup page unload tracking if enabled
1007
+ * @param events
1008
+ * @param useBeacon
1009
+ * @param options
1010
+ */
1011
+ private setupPageUnloadTracking;
971
1012
  /**
972
1013
  * Trigger load event in buffer queue if exists and stores the
973
1014
  * remaining preloaded events array in global object