saltfish 0.3.61 → 0.3.63
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/services/PlayerInitializationService.d.ts +14 -0
- package/dist/core/services/PlayerInitializationService.d.ts.map +1 -1
- package/dist/loaders/PlaylistLoader.d.ts +15 -0
- package/dist/loaders/PlaylistLoader.d.ts.map +1 -1
- package/dist/managers/StorageManager.d.ts +17 -1
- package/dist/managers/StorageManager.d.ts.map +1 -1
- package/dist/managers/TransitionManager.d.ts +19 -0
- package/dist/managers/TransitionManager.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 +243 -42
- package/dist/saltfish-playlist-player.umd.js +1 -1
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -38,6 +38,20 @@ export declare class PlayerInitializationService implements IPlayerInitializatio
|
|
|
38
38
|
* Check for in-progress playlists and resume them
|
|
39
39
|
*/
|
|
40
40
|
checkAndResumeInProgressPlaylist(watchedPlaylists: WatchedPlaylists): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Check for pending navigation from cross-page URL transitions and auto-start the playlist
|
|
43
|
+
* This handles the case where user navigated to a new page (hard refresh)
|
|
44
|
+
* and we need to resume from the step that was waiting for that URL
|
|
45
|
+
* @returns true if a playlist was started from pending navigation
|
|
46
|
+
*/
|
|
47
|
+
private checkAndResumeFromPendingNavigation;
|
|
48
|
+
/**
|
|
49
|
+
* Checks if the current URL path matches a pattern
|
|
50
|
+
* Uses the same logic as TransitionManager for consistency
|
|
51
|
+
* @param pattern - The URL pattern to match (supports wildcards)
|
|
52
|
+
* @returns true if the current URL matches the pattern
|
|
53
|
+
*/
|
|
54
|
+
private isURLPathMatch;
|
|
41
55
|
/**
|
|
42
56
|
* Get or create persistent anonymous user ID
|
|
43
57
|
*/
|
|
@@ -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;AAUpE;;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;gBAErC,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;IA2H7F;;OAEG;IACU,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwGrG;;OAEG;IACU,gCAAgC,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2DnG;;;;;OAKG;YACW,mCAAmC;IA8CjD;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACI,0BAA0B,IAAI,MAAM;IA8BpC,OAAO,IAAI,IAAI;CAGvB"}
|
|
@@ -39,5 +39,20 @@ export declare class PlaylistLoader {
|
|
|
39
39
|
* @returns The step ID to start from
|
|
40
40
|
*/
|
|
41
41
|
private determineStartStep;
|
|
42
|
+
/**
|
|
43
|
+
* Checks for pending navigation from a cross-page URL transition
|
|
44
|
+
* This handles the case where user navigated to a new page (hard refresh)
|
|
45
|
+
* and we need to resume from the step that was waiting for that URL
|
|
46
|
+
* @param manifest - The loaded playlist manifest
|
|
47
|
+
* @returns The pending navigation data if valid, null otherwise
|
|
48
|
+
*/
|
|
49
|
+
private checkPendingNavigation;
|
|
50
|
+
/**
|
|
51
|
+
* Checks if the current URL path matches a pattern
|
|
52
|
+
* Uses the same logic as TransitionManager for consistency
|
|
53
|
+
* @param pattern - The URL pattern to match (supports wildcards)
|
|
54
|
+
* @returns true if the current URL matches the pattern
|
|
55
|
+
*/
|
|
56
|
+
private isURLPathMatch;
|
|
42
57
|
}
|
|
43
58
|
//# sourceMappingURL=PlaylistLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaylistLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/PlaylistLoader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlaylistLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/PlaylistLoader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAqB,MAAM,UAAU,CAAC;AAErF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD;AAED;;;GAGG;AACH,qBAAa,cAAc;IAEzB;;;;OAIG;IACU,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2BpF;;;;OAIG;YACW,aAAa;IA+B3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAyDxB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IA+E1B;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAkBvB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnonymousUserData } from '../types';
|
|
1
|
+
import type { AnonymousUserData, PendingNavigation } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Interface for stored session data
|
|
4
4
|
*/
|
|
@@ -111,6 +111,22 @@ export declare class StorageManager {
|
|
|
111
111
|
* Clear anonymous user data
|
|
112
112
|
*/
|
|
113
113
|
clearAnonymousUserData(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Get pending navigation data for cross-page URL transitions
|
|
116
|
+
* Used when a step has a url-path transition and user navigates causing hard refresh
|
|
117
|
+
*/
|
|
118
|
+
getPendingNavigation(): PendingNavigation | null;
|
|
119
|
+
/**
|
|
120
|
+
* Set pending navigation data
|
|
121
|
+
* Called when setting up a url-path transition to enable resuming after hard refresh
|
|
122
|
+
* @param data - The pending navigation data to save
|
|
123
|
+
*/
|
|
124
|
+
setPendingNavigation(data: PendingNavigation): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Clear pending navigation data
|
|
127
|
+
* Called after successful transition or when navigation is no longer valid
|
|
128
|
+
*/
|
|
129
|
+
clearPendingNavigation(): void;
|
|
114
130
|
/**
|
|
115
131
|
* Clear all storage data
|
|
116
132
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/managers/StorageManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"StorageManager.d.ts","sourceRoot":"","sources":["../../src/managers/StorageManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGrE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC;CACzB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,uBAAuB,CAAU;IAEzC,OAAO;IAQP;;;OAGG;WACW,WAAW,IAAI,cAAc;IAO3C;;;OAGG;WACW,aAAa,IAAI,IAAI;IAInC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAgBrC;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAgBjD;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAQ7D;;OAEG;IACH,aAAa,IAAI,IAAI;IAQrB;;OAEG;IACH,UAAU,IAAI,aAAa,GAAG,IAAI;IAIlC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO;IAI3C;;OAEG;IACH,YAAY,IAAI,IAAI;IAQpB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIhD;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAItD;;OAEG;IACH,sBAAsB,IAAI,IAAI;IAQ9B;;;OAGG;IACH,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIhD;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IAKtD;;;OAGG;IACH,sBAAsB,IAAI,IAAI;IAS9B;;OAEG;IACH,QAAQ,IAAI,IAAI;CAOjB"}
|
|
@@ -9,6 +9,7 @@ export declare class TransitionManager implements ResettableManager {
|
|
|
9
9
|
private waitingForInteraction;
|
|
10
10
|
private isStateMachineValidating;
|
|
11
11
|
private triggerManager;
|
|
12
|
+
private beforeUnloadHandler;
|
|
12
13
|
constructor();
|
|
13
14
|
/**
|
|
14
15
|
* Sets the TriggerManager reference for coordinating playlist triggers
|
|
@@ -46,6 +47,24 @@ export declare class TransitionManager implements ResettableManager {
|
|
|
46
47
|
* @param transition - The transition configuration
|
|
47
48
|
*/
|
|
48
49
|
private setupURLPathTransition;
|
|
50
|
+
/**
|
|
51
|
+
* Saves pending navigation data for cross-page URL transitions
|
|
52
|
+
* This enables resuming from the correct step after a hard page refresh
|
|
53
|
+
* @param urlPattern - The URL pattern to match
|
|
54
|
+
* @param nextStepId - The step ID to navigate to
|
|
55
|
+
*/
|
|
56
|
+
private savePendingNavigation;
|
|
57
|
+
/**
|
|
58
|
+
* Sets up beforeunload handler as backup for cross-page URL transitions
|
|
59
|
+
* This ensures pending navigation is saved even if the page unloads unexpectedly
|
|
60
|
+
* @param urlPattern - The URL pattern to match
|
|
61
|
+
* @param nextStepId - The step ID to navigate to
|
|
62
|
+
*/
|
|
63
|
+
private setupBeforeUnloadHandler;
|
|
64
|
+
/**
|
|
65
|
+
* Removes the beforeunload handler if it exists
|
|
66
|
+
*/
|
|
67
|
+
private removeBeforeUnloadHandler;
|
|
49
68
|
/**
|
|
50
69
|
* Checks if the current URL path matches a pattern
|
|
51
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionManager.d.ts","sourceRoot":"","sources":["../../src/managers/TransitionManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAuB,iBAAiB,EAAkB,MAAM,UAAU,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"TransitionManager.d.ts","sourceRoot":"","sources":["../../src/managers/TransitionManager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAuB,iBAAiB,EAAkB,MAAM,UAAU,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IAEzD,OAAO,CAAC,iBAAiB,CAQV;IAGf,OAAO,CAAC,qBAAqB,CAAkB;IAG/C,OAAO,CAAC,wBAAwB,CAAkB;IAGlD,OAAO,CAAC,cAAc,CAA+B;IAGrD,OAAO,CAAC,mBAAmB,CAA6B;;IAgBxD;;;OAGG;IACI,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAK9D;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,eAAe,CAqDrB;IAEF;;;;;OAKG;IACI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAE,OAAe,EAAE,YAAY,GAAE,OAAe,GAAG,IAAI;IA6B7G;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAoJ/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IA4C9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyG9B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAkBnC;;;;OAIG;IACI,sBAAsB,IAAI,OAAO;IA0BxC;;;OAGG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA2ClD;;;;OAIG;YACW,6BAA6B;IAwC3C;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAYjC;;;OAGG;IACI,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAKzD;;;OAGG;IACI,uBAAuB,IAAI,OAAO;IAIzC;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;;OAGG;IACI,2BAA2B,IAAI,IAAI;IAK1C;;OAEG;IACI,yBAAyB,IAAI,IAAI;IAKxC;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;;OAGG;IACH,OAAO,CAAC,gCAAgC;IA4KxC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAoCvB;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAyD7B"}
|