Update `LiveChatTextMessage` to extend `YTNode` rather than
`LiveChatMessageBase` to better align with the latest data
provided by Innertube.
- Add `timestamp_usec` property
- Add `timestamp_text` property
- Add `context_menu_accessibility_label` property
- Add `before_content_buttons` property
Update `LiveChatViewerEngagementMessage` to extend `YTNode` rather than
`LiveChatMessageBase` to better align with the latest data provided by
Innertube.
The `LiveChatTickerPaidStickerItem` class has been updated to extend
`YTNode` instead of `LiveChatTickerPaidMessageItem` to better align with
the latest data provided by InnerTube
* feat(LiveChatPaidMessage): Parse `headerOverlayImage` and `lowerBumper`
When a viewer donates for the 1st, 3rd, 5th, 10th, or 20th time,
there will be a special type of `LiveChatPaidMessage` that includes an
animated image in the header, followed by a bumper text message.
* chore: npm run build:parser-map
* Change `duration_sec` property type from `string` to `number`
* Change `full_duration_sec` property type from `string` to `number`
* Handle the scenario where the author's name is represented as `authUsername`
* Mark `amount` property as optional
* Add `start_background_color` property
* Add `amount_text_color` property
* Add `end_background_color` property
* Add `animation_origin` property
* Add `open_engagement_panel_command` property
* feat(parser): Add `LiveChatSponsorshipsGiftPurchaseAnnouncement` and `LiveChatSponsorshipsHeader` nodes
* refactor: flatten nested field
* refactor: attempt to replace `author_*` fields with a single `Author` class
* fix: add back `author_*` fields in `LiveChatSponsorshipsHeader`
* fix: use `parseArray` to parse author_badges data
* refactor: revert `Author` logic
---------
Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Other changes:
- Renamed "getShortsWatchItem" to "getShortsVideoInfo".
- Fixed `ShortFormVideoInfo`. This never worked for me ever since it was introduced. Turned out it was just implemented incorrectly.
- Moved `basic_info` extraction to `MediaInfo`. Less of a pain to maintain as we only have to modify one file.
- Removed unneeded tsdoc comments.
- Fixed `Innertube#getStreamingData()`. Now it actually returns a deciphered format.
- Simplified some types.
* 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
* replaced YTNode's data arg as RawNode
* updated documentation
* removed unused import
---- Note that there are still many nodes that need to be updated, hence the WIP status.
* 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>