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

@@ -14,4 +14,4 @@
## Defined in
[src/parser/generator.ts:82](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L82)
[src/parser/generator.ts:82](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L82)

View File

@@ -28,4 +28,4 @@ Class based on the key info extending YTNode
## Defined in
[src/parser/generator.ts:411](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L411)
[src/parser/generator.ts:411](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L411)

View File

@@ -28,4 +28,4 @@ Class based on the example classdata extending YTNode
## Defined in
[src/parser/generator.ts:474](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L474)
[src/parser/generator.ts:474](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L474)

View File

@@ -24,4 +24,4 @@ Typescript class file
## Defined in
[src/parser/generator.ts:495](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L495)
[src/parser/generator.ts:495](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L495)

View File

@@ -24,4 +24,4 @@ The inferred type
## Defined in
[src/parser/generator.ts:92](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L92)
[src/parser/generator.ts:92](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L92)

View File

@@ -28,4 +28,4 @@ The key info and any unimplemented dependencies
## Defined in
[src/parser/generator.ts:376](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L376)
[src/parser/generator.ts:376](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L376)

View File

@@ -20,4 +20,4 @@ If it is an array, return the InferenceType. Otherwise, return false.
## Defined in
[src/parser/generator.ts:222](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L222)
[src/parser/generator.ts:222](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L222)

View File

@@ -20,4 +20,4 @@ Whether or not the key is ignored
## Defined in
[src/parser/generator.ts:400](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L400)
[src/parser/generator.ts:400](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L400)

View File

@@ -24,4 +24,4 @@ If it is a misc type, return the InferenceType. Otherwise, return false.
## Defined in
[src/parser/generator.ts:163](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L163)
[src/parser/generator.ts:163](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L163)

View File

@@ -20,4 +20,4 @@ If it is a renderer, return the class name. Otherwise, return false.
## Defined in
[src/parser/generator.ts:202](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L202)
[src/parser/generator.ts:202](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L202)

View File

@@ -21,4 +21,4 @@ Otherwise, return false.
## Defined in
[src/parser/generator.ts:141](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L141)
[src/parser/generator.ts:141](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L141)

View File

@@ -32,4 +32,4 @@ The merged key info
## Defined in
[src/parser/generator.ts:734](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L734)
[src/parser/generator.ts:734](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L734)

View File

@@ -32,4 +32,4 @@ The parsed value
## Defined in
[src/parser/generator.ts:681](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L681)
[src/parser/generator.ts:681](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L681)

View File

@@ -32,4 +32,4 @@ Statement to parse the given key
## Defined in
[src/parser/generator.ts:578](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L578)
[src/parser/generator.ts:578](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L578)

View File

@@ -24,4 +24,4 @@ Typescript type declaration
## Defined in
[src/parser/generator.ts:520](https://github.com/LuanRT/YouTube.js/blob/4ae0cc5c523a2080e68d6c0c1437c78fe318ea30/src/parser/generator.ts#L520)
[src/parser/generator.ts:520](https://github.com/LuanRT/YouTube.js/blob/af92984523f90200a18314b94478a2697c9deab0/src/parser/generator.ts#L520)