* fix(VideoInfo.ts): reimplement `get music_tracks`
- Add parser classes to parse needed data
- Add `CarouselLockup`
- Add `EngagementPanelSectionList`
- Add `InfoRow`
- Add `StructuredDescriptionContent`
- Add `VideoDescriptionMusicSection`
- Add `VideoDescriptionHeader`
- Add `Factoid`
- Add `ExpandableVideoDescriptionBody`
- Add `AdsEngagementPanelContent`
- Add `engagement_panels` to raw and parsed next responses
- Add `engagement_panels` parsing code to `parser.ts`
* Check for song inside of video_lockup first before checking info_rows
* Add support for pulling artist ids out of music_tracks
- Add support for WRITERS InfoRow
- Check for video id inside of naviagation endpoint on info_row metadata
* Add `AdsEngagementPanelContent` to ignore list
* Switch `map => parseItem` to `parseArray`
* Use `Text` && `NavigationEndpoint`
* Replace `String` with `Text` in `ExpandableVideoDescriptionBody`
* tests: improve coverage
* refactor: clean up nodes
* chore: lint
* feat(parser): ignore `BrandVideoShelf`
Seems to be used for ads.
* feat(parser): ignore `BrandVideoSingleton` too
* refactor: move common info into MediaInfo
* refactor: better inference on Memo
* refactor: improved typesafety in parser methods
* refactor: remove PlaylistAuthor in favor of Author
* refactor: cleanup live chat parsers
- Replace non standard author type with Author class
- Remove redundant code
* fix: new errors due to changes
* fix: pass actions to FormatUtils#toDash
* refactor!: merge NavigatableText and Text into single class
* refactor!: cleanup platform support
* chore: lint
* fix: web platform
* feat: provide UniversalCache
Provide UniversalCache as a wrapper around Platform.shim.Cache.
* fix: invalid import
* refactor: remove isolated-vm support
* fix: type info
* refactor: cleanup exports
* fix: mark jintr as external dependency
In the bundled CJS node build, mark jintr as external.
* chore: add additional exports
web exports provide a way to select web implementation manually without
relying on the bundler to select it correctly from the "exports" field
web points to src/platform/web.js
web.bundle points to bundle/browser.js
web.bundle.browser points to bundle/browser.min.js
agnostic exports provide users of the library to provide their own
platform implementation without first importing the default one.
agnostic points to src/platform/lib.ts
* fix: toDash on web
* revert: eval is synchronous
* fix: use serializeDOM in FormatUtils
* ci: automate releases with `release-please`
* chore: clean up workflow files
* ci: fix NPM publish action
---------
Co-authored-by: LuanRT <luan.lrt4@gmail.com>