* deps: update linkedom
* refactor!: remove YTNodeGenerator in favour of namespaced pure functions
BREAKING CHANGES:
- Removes `YTNodeGenerator` from `import('youtubei.js').Generator` and exposes its functions directly in `import('youtubei.js').Generator`
* refactor!: replace Parser class with pure functions
- Remove Parser class in favour of pure functions
- Merge duplicate classes `AppendContinuationItemsAction` into a single class
- Move continuation parsers into a seperate file
- Add better custom logging support to parser methods as per issue #460
* refactor!: replace Proto class with pure functions
* chore: update package-lock.json
* refactor!: replace FormatUtils with pure functions and JSX components
- Replace linkedom DASH manifest generation with a dependency free JSX implementation
- Remove FormatUtils class in favour of pure functions
- Remove DOMParser requirement
- Remove duplicate types
* refactor: implement changes from #462
* chore: lint
* fix: deno support
* fix: render valid xml document
* fix: wrong function call in DashUtils
* fix: typo in parser
Co-authored-by: LuanRT <luan.lrt4@gmail.com>
* refactor!: move streaming info logic into seperate function
This allows users to access the same data available in the dash manifest while also simplifying the manifest generation
* chore: lint
* refactor: readability improvements & fixes
Remove redundant getAudioTrackGroups
General readability improvements in StreamingInfo.ts
Share response object between `getBitrate` and `getMimeType` as to not make duplicate requests
* build: remove unnecessary step in deno build
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* refactor: move types to `types` directory
* docs: add back comments lost during refactor
* chore: lint
---------
Co-authored-by: LuanRT <luan.lrt4@gmail.com>
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
* 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>
* feat: add `ConfirmDialog`
This usually appears in the `playability_status` object.
* fix(PlayerErrorMessage): check if `iconType` exists before parsing
* chore(parser): fix a few inconsistencies
* feat(ytmusic): add `MetadataScreen`
TODO: Check TrackInfo, YouTube Music is probably getting some minor UI updates.
* feat: add MusicEditablePlaylistDetailHeader parser
* feat: more info in `DropdownItem`
* fix: empty `year` value in `MusicDetailHeader`
* fix(ytmusic#Playlist): header err w/ own playlists
* feat: include reload continuation in `MusicShelf`
* feat(ytmusic): add getSuggestions() to Playlist
* feat: add support for protobuf payloads to `Actions#execute()`
* chore: compile proto definitions file
* feat(wip): add `Studio` class and implement `Studio#setThumbnail()` method
* fix: check if parameters are missing