refactor(Player)!: Use AST-based JS extraction with side-effect safe code emission (#1052)

* chore(deps): Add `meriyah`

* feat(utils): Implement AST-based JS extractors

* chore(utils): Remove old ast walker code

* fix(Player): Migrate js extraction logic

* chore(JsExtractor): Fix typo in tsdoc

* perf(JsAnalyzer): Simplify main AST analysis logic

* fix(JsAnalyzer): Change `break` to `return` in AST matching logic

* chore: Update docs

* chore: Don't export `PlayerInitializationOptions`

* chore(evaluate): Update error message to include doc link

* perf: Use a `for-loop` to find iife
This commit is contained in:
Luan
2025-10-12 09:08:51 -03:00
committed by GitHub
parent bffa92d96e
commit 25d0876b91
873 changed files with 10992 additions and 8345 deletions

View File

@@ -18,7 +18,7 @@
#### Defined in
[src/core/managers/AccountManager.ts:13](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/AccountManager.ts#L13)
[src/core/managers/AccountManager.ts:13](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/AccountManager.ts#L13)
## Methods
@@ -40,7 +40,7 @@ Retrieves the list of channels belonging to the signed-in account. Only useful w
##### Defined in
[src/core/managers/AccountManager.ts:20](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/AccountManager.ts#L20)
[src/core/managers/AccountManager.ts:20](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/AccountManager.ts#L20)
#### getInfo(all)
@@ -58,7 +58,7 @@ Retrieves the active channel info for the signed-in account. Throws error if `on
##### Defined in
[src/core/managers/AccountManager.ts:24](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/AccountManager.ts#L24)
[src/core/managers/AccountManager.ts:24](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/AccountManager.ts#L24)
***
@@ -74,4 +74,4 @@ Gets YouTube settings.
#### Defined in
[src/core/managers/AccountManager.ts:50](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/AccountManager.ts#L50)
[src/core/managers/AccountManager.ts:50](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/AccountManager.ts#L50)

View File

@@ -18,7 +18,7 @@
#### Defined in
[src/core/managers/InteractionManager.ts:10](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L10)
[src/core/managers/InteractionManager.ts:10](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L10)
## Methods
@@ -44,7 +44,7 @@ The comment text
#### Defined in
[src/core/managers/InteractionManager.ts:119](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L119)
[src/core/managers/InteractionManager.ts:119](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L119)
***
@@ -66,7 +66,7 @@ The video ID
#### Defined in
[src/core/managers/InteractionManager.ts:38](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L38)
[src/core/managers/InteractionManager.ts:38](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L38)
***
@@ -88,7 +88,7 @@ The video ID
#### Defined in
[src/core/managers/InteractionManager.ts:18](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L18)
[src/core/managers/InteractionManager.ts:18](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L18)
***
@@ -110,7 +110,7 @@ The video ID
#### Defined in
[src/core/managers/InteractionManager.ts:58](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L58)
[src/core/managers/InteractionManager.ts:58](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L58)
***
@@ -137,7 +137,7 @@ The notification type.
#### Defined in
[src/core/managers/InteractionManager.ts:174](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L174)
[src/core/managers/InteractionManager.ts:174](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L174)
***
@@ -159,7 +159,7 @@ The channel ID
#### Defined in
[src/core/managers/InteractionManager.ts:78](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L78)
[src/core/managers/InteractionManager.ts:78](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L78)
***
@@ -209,7 +209,7 @@ optional arguments
#### Defined in
[src/core/managers/InteractionManager.ts:151](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L151)
[src/core/managers/InteractionManager.ts:151](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L151)
***
@@ -231,4 +231,4 @@ The channel ID
#### Defined in
[src/core/managers/InteractionManager.ts:98](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/InteractionManager.ts#L98)
[src/core/managers/InteractionManager.ts:98](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/InteractionManager.ts#L98)

View File

@@ -18,7 +18,7 @@
#### Defined in
[src/core/managers/PlaylistManager.ts:11](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L11)
[src/core/managers/PlaylistManager.ts:11](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L11)
## Methods
@@ -40,7 +40,7 @@ The playlist ID.
#### Defined in
[src/core/managers/PlaylistManager.ts:73](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L73)
[src/core/managers/PlaylistManager.ts:73](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L73)
***
@@ -74,7 +74,7 @@ An array of video IDs to add to the playlist.
#### Defined in
[src/core/managers/PlaylistManager.ts:114](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L114)
[src/core/managers/PlaylistManager.ts:114](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L114)
***
@@ -116,7 +116,7 @@ An array of video IDs to add to the playlist.
#### Defined in
[src/core/managers/PlaylistManager.ts:20](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L20)
[src/core/managers/PlaylistManager.ts:20](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L20)
***
@@ -154,7 +154,7 @@ The playlist ID.
#### Defined in
[src/core/managers/PlaylistManager.ts:47](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L47)
[src/core/managers/PlaylistManager.ts:47](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L47)
***
@@ -192,7 +192,7 @@ The video ID to move the moved video before.
#### Defined in
[src/core/managers/PlaylistManager.ts:194](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L194)
[src/core/managers/PlaylistManager.ts:194](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L194)
***
@@ -214,7 +214,7 @@ The playlist ID.
#### Defined in
[src/core/managers/PlaylistManager.ts:93](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L93)
[src/core/managers/PlaylistManager.ts:93](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L93)
***
@@ -252,7 +252,7 @@ Option to remove videos using set video IDs.
#### Defined in
[src/core/managers/PlaylistManager.ts:144](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L144)
[src/core/managers/PlaylistManager.ts:144](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L144)
***
@@ -286,7 +286,7 @@ The description to use for the playlist.
#### Defined in
[src/core/managers/PlaylistManager.ts:282](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L282)
[src/core/managers/PlaylistManager.ts:282](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L282)
***
@@ -320,4 +320,4 @@ The name / title to use for the playlist.
#### Defined in
[src/core/managers/PlaylistManager.ts:255](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/managers/PlaylistManager.ts#L255)
[src/core/managers/PlaylistManager.ts:255](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/managers/PlaylistManager.ts#L255)