saltfish 0.3.76 → 0.3.78
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/core/SaltfishPlayer.d.ts +4 -1
- package/dist/core/SaltfishPlayer.d.ts.map +1 -1
- package/dist/core/services/PlayerInitializationService.d.ts +27 -0
- package/dist/core/services/PlayerInitializationService.d.ts.map +1 -1
- package/dist/managers/ABTestManager.d.ts +10 -0
- package/dist/managers/ABTestManager.d.ts.map +1 -1
- package/dist/player.js +2 -2
- package/dist/player.min.js +2 -2
- package/dist/saltfish-playlist-player.es.js +217 -14
- package/dist/saltfish-playlist-player.umd.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ export declare class SaltfishPlayer {
|
|
|
17
17
|
private managerOrchestrator;
|
|
18
18
|
private managerFactory;
|
|
19
19
|
private isInitialized;
|
|
20
|
+
private initializationPromise;
|
|
20
21
|
private constructor();
|
|
21
22
|
/**
|
|
22
23
|
* Gets the singleton instance of the Saltfish playlist Player
|
|
@@ -36,10 +37,12 @@ export declare class SaltfishPlayer {
|
|
|
36
37
|
initialize(config: SaltfishConfig): Promise<void>;
|
|
37
38
|
/**
|
|
38
39
|
* Identify a user with ID and optional data
|
|
40
|
+
* Waits for initialization to complete before identifying to ensure A/B tests are properly configured
|
|
39
41
|
*/
|
|
40
|
-
identifyUser(userId: string, userData?: Record<string, unknown>): void
|
|
42
|
+
identifyUser(userId: string, userData?: Record<string, unknown>): Promise<void>;
|
|
41
43
|
/**
|
|
42
44
|
* Identify user anonymously with optional data
|
|
45
|
+
* Waits for initialization to complete before identifying to ensure A/B tests are properly configured
|
|
43
46
|
*/
|
|
44
47
|
identifyAnonymous(userData?: Record<string, unknown>): Promise<void>;
|
|
45
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SaltfishPlayer.d.ts","sourceRoot":"","sources":["../../src/core/SaltfishPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAKrE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAGtD,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,aAAa,CAAS;
|
|
1
|
+
{"version":3,"file":"SaltfishPlayer.d.ts","sourceRoot":"","sources":["../../src/core/SaltfishPlayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAKhE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAKrE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAGtD,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAA8B;IAE3D,OAAO;IAsCP;;OAEG;WACW,WAAW,IAAI,cAAc;IAO3C;;OAEG;IACI,YAAY,IAAI,MAAM;IAK7B;;OAEG;IACI,QAAQ,IAAI,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC9D;;;OAGG;IACU,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5F;;;OAGG;IACU,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF;;OAEG;IACU,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF;;OAEG;IACI,aAAa,IAAI,IAAI;IAI5B;;OAEG;IACI,OAAO,IAAI,IAAI;IAsBtB;;OAEG;IACI,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAKrF;;OAEG;IACI,GAAG,CAAC,CAAC,SAAS,iBAAiB,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO;IAQzF;;OAEG;IACH,IAAW,YAAY,oDAGtB;IAED;;OAEG;IACI,WAAW;IAIlB;;OAEG;IACI,WAAW;;;;;;;CASnB"}
|
|
@@ -9,6 +9,11 @@ export declare class PlayerInitializationService implements IPlayerInitializatio
|
|
|
9
9
|
private playlistOrchestrator?;
|
|
10
10
|
private shareLinkService;
|
|
11
11
|
private lastConfig;
|
|
12
|
+
private boundVisibilityHandler;
|
|
13
|
+
private lastUserDataFetchTimestamp;
|
|
14
|
+
private currentUserId;
|
|
15
|
+
private currentUserData;
|
|
16
|
+
private isAnonymousUser;
|
|
12
17
|
constructor(managers: ManagedManagers);
|
|
13
18
|
/**
|
|
14
19
|
* Set the user management service for dependency
|
|
@@ -56,6 +61,28 @@ export declare class PlayerInitializationService implements IPlayerInitializatio
|
|
|
56
61
|
* Get or create persistent anonymous user ID
|
|
57
62
|
*/
|
|
58
63
|
getOrCreateAnonymousUserId(): string;
|
|
64
|
+
/**
|
|
65
|
+
* Set up visibility change listener to re-fetch user data and re-evaluate triggers
|
|
66
|
+
* when the user returns to the tab
|
|
67
|
+
*/
|
|
68
|
+
private setupVisibilityChangeListener;
|
|
69
|
+
/**
|
|
70
|
+
* Remove visibility change listener
|
|
71
|
+
*/
|
|
72
|
+
private removeVisibilityChangeListener;
|
|
73
|
+
/**
|
|
74
|
+
* Handle visibility change event - re-fetch user data and re-evaluate triggers
|
|
75
|
+
* when the tab becomes visible again
|
|
76
|
+
*/
|
|
77
|
+
private handleVisibilityChange;
|
|
78
|
+
/**
|
|
79
|
+
* Refresh user data for identified users and re-evaluate triggers
|
|
80
|
+
*/
|
|
81
|
+
private refreshIdentifiedUserData;
|
|
82
|
+
/**
|
|
83
|
+
* Refresh user data for anonymous users and re-evaluate triggers
|
|
84
|
+
*/
|
|
85
|
+
private refreshAnonymousUserData;
|
|
59
86
|
destroy(): void;
|
|
60
87
|
}
|
|
61
88
|
//# sourceMappingURL=PlayerInitializationService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerInitializationService.d.ts","sourceRoot":"","sources":["../../../src/core/services/PlayerInitializationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"PlayerInitializationService.d.ts","sourceRoot":"","sources":["../../../src/core/services/PlayerInitializationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAcpE;;GAEG;AACH,qBAAa,2BAA4B,YAAW,4BAA4B;IAC9E,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,qBAAqB,CAAC,CAAyB;IACvD,OAAO,CAAC,oBAAoB,CAAC,CAAwB;IACrD,OAAO,CAAC,gBAAgB,CAAmB;IAG3C,OAAO,CAAC,UAAU,CAA+B;IAGjD,OAAO,CAAC,sBAAsB,CAA6B;IAC3D,OAAO,CAAC,0BAA0B,CAAa;IAC/C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,eAAe,CAAkD;IACzE,OAAO,CAAC,eAAe,CAAkB;gBAE7B,QAAQ,EAAE,eAAe;IAKrC;;OAEG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAItE;;OAEG;IACI,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,GAAG,IAAI;IAIzE;;OAEG;IACI,aAAa,IAAI,cAAc,GAAG,IAAI;IAI7C;;OAEG;IACU,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkG9D;;OAEG;IACU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAoI7F;;OAEG;IACU,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiHrG;;OAEG;IACU,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2DnG;;;;;OAKG;YACW,mCAAmC;IA8CjD;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACI,0BAA0B,IAAI,MAAM;IA8B3C;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAarC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAQtC;;;OAGG;YACW,sBAAsB;IA4CpC;;OAEG;YACW,yBAAyB;IAiDvC;;OAEG;YACW,wBAAwB;IA6B/B,OAAO,IAAI,IAAI;CAQvB"}
|
|
@@ -27,6 +27,7 @@ export declare class ABTestManager extends EventSubscriberManager {
|
|
|
27
27
|
initializeTests(abTests: ABTestConfig[]): void;
|
|
28
28
|
/**
|
|
29
29
|
* Assign a user to A/B tests based on their ID and test percentages
|
|
30
|
+
* Uses a two-pass approach: first assign non-linked tests, then linked tests
|
|
30
31
|
* @param userId - User ID for consistent assignment
|
|
31
32
|
* @param existingAssignments - Existing assignments from backend (for identified users)
|
|
32
33
|
* @param userListAssignments - Assignments from backend for user list tests
|
|
@@ -40,6 +41,15 @@ export declare class ABTestManager extends EventSubscriberManager {
|
|
|
40
41
|
* @returns true if user should be in test
|
|
41
42
|
*/
|
|
42
43
|
private isUserInTest;
|
|
44
|
+
/**
|
|
45
|
+
* Determine if a user should be included in a linked test using parent's test ID
|
|
46
|
+
* This ensures linked tests use the same user cohort as their parent test
|
|
47
|
+
* @param userId - User ID
|
|
48
|
+
* @param parentTestId - Parent test ID to use for hashing
|
|
49
|
+
* @param percentage - Percentage threshold from parent test
|
|
50
|
+
* @returns true if user should be in test
|
|
51
|
+
*/
|
|
52
|
+
private isUserInTestWithParentId;
|
|
43
53
|
/**
|
|
44
54
|
* Get playlists that the user should see based on A/B test assignments
|
|
45
55
|
* @param allPlaylists - All available playlists
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ABTestManager.d.ts","sourceRoot":"","sources":["../../src/managers/ABTestManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,sBAAsB;IACvD;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IASnC;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAOrD
|
|
1
|
+
{"version":3,"file":"ABTestManager.d.ts","sourceRoot":"","sources":["../../src/managers/ABTestManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,sBAAsB;IACvD;;;OAGG;gBACS,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IASnC;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI;IAOrD;;;;;;;OAOG;IACI,iBAAiB,CACtB,MAAM,EAAE,MAAM,EACd,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACtD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IA+FnC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;;OAIG;IACI,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE;IAmCjF;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA2B9B;;;OAGG;IACI,wBAAwB,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAKnE;;;;OAIG;IACI,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAgBvD;;;OAGG;IACI,iBAAiB,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;CAY7G"}
|