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/clients/Kids.ts:12](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L12)
[src/core/clients/Kids.ts:12](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L12)
## Methods
@@ -43,7 +43,7 @@ A list of API responses.
#### Defined in
[src/core/clients/Kids.ts:79](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L79)
[src/core/clients/Kids.ts:79](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L79)
***
@@ -61,7 +61,7 @@ A list of API responses.
#### Defined in
[src/core/clients/Kids.ts:61](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L61)
[src/core/clients/Kids.ts:61](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L61)
***
@@ -75,7 +75,7 @@ A list of API responses.
#### Defined in
[src/core/clients/Kids.ts:67](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L67)
[src/core/clients/Kids.ts:67](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L67)
***
@@ -95,7 +95,7 @@ A list of API responses.
#### Defined in
[src/core/clients/Kids.ts:22](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L22)
[src/core/clients/Kids.ts:22](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L22)
***
@@ -113,4 +113,4 @@ A list of API responses.
#### Defined in
[src/core/clients/Kids.ts:16](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Kids.ts#L16)
[src/core/clients/Kids.ts:16](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Kids.ts#L16)

View File

@@ -18,7 +18,7 @@
#### Defined in
[src/core/clients/Music.ts:37](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L37)
[src/core/clients/Music.ts:37](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L37)
## Methods
@@ -36,7 +36,7 @@
#### Defined in
[src/core/clients/Music.ts:186](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L186)
[src/core/clients/Music.ts:186](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L186)
***
@@ -54,7 +54,7 @@
#### Defined in
[src/core/clients/Music.ts:176](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L176)
[src/core/clients/Music.ts:176](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L176)
***
@@ -68,7 +68,7 @@
#### Defined in
[src/core/clients/Music.ts:163](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L163)
[src/core/clients/Music.ts:163](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L163)
***
@@ -82,7 +82,7 @@
#### Defined in
[src/core/clients/Music.ts:157](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L157)
[src/core/clients/Music.ts:157](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L157)
***
@@ -108,7 +108,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:47](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L47)
[src/core/clients/Music.ts:47](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L47)
***
@@ -122,7 +122,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:170](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L170)
[src/core/clients/Music.ts:170](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L170)
***
@@ -140,7 +140,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:267](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L267)
[src/core/clients/Music.ts:267](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L267)
***
@@ -158,7 +158,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:196](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L196)
[src/core/clients/Music.ts:196](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L196)
***
@@ -172,7 +172,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:293](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L293)
[src/core/clients/Music.ts:293](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L293)
***
@@ -190,7 +190,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:246](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L246)
[src/core/clients/Music.ts:246](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L246)
***
@@ -208,7 +208,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:299](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L299)
[src/core/clients/Music.ts:299](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L299)
***
@@ -228,7 +228,7 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:206](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L206)
[src/core/clients/Music.ts:206](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L206)
***
@@ -248,4 +248,4 @@ Options for fetching video info.
#### Defined in
[src/core/clients/Music.ts:135](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Music.ts#L135)
[src/core/clients/Music.ts:135](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Music.ts#L135)

View File

@@ -18,7 +18,7 @@
#### Defined in
[src/core/clients/Studio.ts:25](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Studio.ts#L25)
[src/core/clients/Studio.ts:25](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Studio.ts#L25)
## Methods
@@ -57,7 +57,7 @@ const response = await yt.studio.updateVideoMetadata(videoId, {
#### Defined in
[src/core/clients/Studio.ts:47](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Studio.ts#L47)
[src/core/clients/Studio.ts:47](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Studio.ts#L47)
***
@@ -86,4 +86,4 @@ const response = await yt.studio.upload(file.buffer, { title: 'Wow!' });
#### Defined in
[src/core/clients/Studio.ts:150](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/core/clients/Studio.ts#L150)
[src/core/clients/Studio.ts:150](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/core/clients/Studio.ts#L150)