Add support for extracting rich content from X's long-form tweets,
including embedded code snippets, markdown blocks, quoted tweets,
and other structured content that was previously lost.
Changes:
- Add fieldToggles with withArticleRichContentState to TweetDetail API request
- Implement Draft.js content_state parser (renderContentState) that converts
blocks and entities to readable markdown format
- Add content_state type definition to GraphqlTweetResult
Supported content:
- Block types: paragraphs, headers, ordered/unordered lists, blockquotes
- Entity types: MARKDOWN (code blocks), DIVIDER, TWEET, LINK, IMAGE
No impact on regular tweets - rich content only adds payload when present.
Includes 20 unit tests for the parser and an opt-in live smoke test.
Co-authored-by: Christian Catalan <[email protected]>