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

@@ -26,7 +26,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:42](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L42)
[src/parser/classes/MusicTwoRowItem.ts:42](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L42)
## Properties
@@ -36,7 +36,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:26](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L26)
[src/parser/classes/MusicTwoRowItem.ts:26](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L26)
***
@@ -58,7 +58,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:32](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L32)
[src/parser/classes/MusicTwoRowItem.ts:32](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L32)
***
@@ -68,7 +68,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:19](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L19)
[src/parser/classes/MusicTwoRowItem.ts:19](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L19)
***
@@ -78,7 +78,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:16](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L16)
[src/parser/classes/MusicTwoRowItem.ts:16](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L16)
***
@@ -88,7 +88,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:17](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L17)
[src/parser/classes/MusicTwoRowItem.ts:17](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L17)
***
@@ -98,7 +98,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:22](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L22)
[src/parser/classes/MusicTwoRowItem.ts:22](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L22)
***
@@ -108,7 +108,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:20](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L20)
[src/parser/classes/MusicTwoRowItem.ts:20](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L20)
***
@@ -118,7 +118,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:40](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L40)
[src/parser/classes/MusicTwoRowItem.ts:40](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L40)
***
@@ -128,7 +128,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:21](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L21)
[src/parser/classes/MusicTwoRowItem.ts:21](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L21)
***
@@ -138,7 +138,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:18](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L18)
[src/parser/classes/MusicTwoRowItem.ts:18](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L18)
***
@@ -148,7 +148,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:38](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L38)
[src/parser/classes/MusicTwoRowItem.ts:38](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L38)
***
@@ -158,7 +158,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:39](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L39)
[src/parser/classes/MusicTwoRowItem.ts:39](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L39)
***
@@ -168,7 +168,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:15](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L15)
[src/parser/classes/MusicTwoRowItem.ts:15](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L15)
***
@@ -182,7 +182,7 @@
#### Defined in
[src/parser/helpers.ts:8](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/helpers.ts#L8)
[src/parser/helpers.ts:8](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/helpers.ts#L8)
***
@@ -192,7 +192,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:24](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L24)
[src/parser/classes/MusicTwoRowItem.ts:24](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L24)
***
@@ -202,7 +202,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:23](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L23)
[src/parser/classes/MusicTwoRowItem.ts:23](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L23)
***
@@ -216,7 +216,7 @@
#### Defined in
[src/parser/classes/MusicTwoRowItem.ts:13](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/classes/MusicTwoRowItem.ts#L13)
[src/parser/classes/MusicTwoRowItem.ts:13](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/classes/MusicTwoRowItem.ts#L13)
## Methods
@@ -254,7 +254,7 @@ If the node is not of the given type
#### Defined in
[src/parser/helpers.ts:29](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/helpers.ts#L29)
[src/parser/helpers.ts:29](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/helpers.ts#L29)
***
@@ -288,7 +288,7 @@ Whether the node has the key
#### Defined in
[src/parser/helpers.ts:41](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/helpers.ts#L41)
[src/parser/helpers.ts:41](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/helpers.ts#L41)
***
@@ -322,7 +322,7 @@ whether the node is of the given type
#### Defined in
[src/parser/helpers.ts:19](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/helpers.ts#L19)
[src/parser/helpers.ts:19](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/helpers.ts#L19)
***
@@ -360,4 +360,4 @@ If the node does not have the key
#### Defined in
[src/parser/helpers.ts:51](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/helpers.ts#L51)
[src/parser/helpers.ts:51](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/helpers.ts#L51)