x-twitter-scraper 0.12.3 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -2
- package/README.md +66 -51
- package/client.d.mts +18 -15
- package/client.d.mts.map +1 -1
- package/client.d.ts +18 -15
- package/client.d.ts.map +1 -1
- package/client.js +3 -3
- package/client.js.map +1 -1
- package/client.mjs +4 -4
- package/client.mjs.map +1 -1
- package/core/streaming.d.mts +33 -0
- package/core/streaming.d.mts.map +1 -0
- package/core/streaming.d.ts +33 -0
- package/core/streaming.d.ts.map +1 -0
- package/core/streaming.js +270 -0
- package/core/streaming.js.map +1 -0
- package/core/streaming.mjs +265 -0
- package/core/streaming.mjs.map +1 -0
- package/internal/decoders/line.d.mts +17 -0
- package/internal/decoders/line.d.mts.map +1 -0
- package/internal/decoders/line.d.ts +17 -0
- package/internal/decoders/line.d.ts.map +1 -0
- package/internal/decoders/line.js +116 -0
- package/internal/decoders/line.js.map +1 -0
- package/internal/decoders/line.mjs +111 -0
- package/internal/decoders/line.mjs.map +1 -0
- package/internal/parse.d.mts.map +1 -1
- package/internal/parse.d.ts.map +1 -1
- package/internal/parse.js +7 -0
- package/internal/parse.js.map +1 -1
- package/internal/parse.mjs +7 -0
- package/internal/parse.mjs.map +1 -1
- package/internal/tslib.js +18 -18
- package/package.json +23 -5
- package/resources/account.d.mts +35 -12
- package/resources/account.d.mts.map +1 -1
- package/resources/account.d.ts +35 -12
- package/resources/account.d.ts.map +1 -1
- package/resources/account.js +4 -3
- package/resources/account.js.map +1 -1
- package/resources/account.mjs +4 -3
- package/resources/account.mjs.map +1 -1
- package/resources/compose.d.mts +77 -21
- package/resources/compose.d.mts.map +1 -1
- package/resources/compose.d.ts +77 -21
- package/resources/compose.d.ts.map +1 -1
- package/resources/compose.js +3 -4
- package/resources/compose.js.map +1 -1
- package/resources/compose.mjs +3 -4
- package/resources/compose.mjs.map +1 -1
- package/resources/credits.d.mts +18 -10
- package/resources/credits.d.mts.map +1 -1
- package/resources/credits.d.ts +18 -10
- package/resources/credits.d.ts.map +1 -1
- package/resources/credits.js +5 -4
- package/resources/credits.js.map +1 -1
- package/resources/credits.mjs +5 -4
- package/resources/credits.mjs.map +1 -1
- package/resources/drafts.d.mts +13 -17
- package/resources/drafts.d.mts.map +1 -1
- package/resources/drafts.d.ts +13 -17
- package/resources/drafts.d.ts.map +1 -1
- package/resources/drafts.js +4 -4
- package/resources/drafts.mjs +4 -4
- package/resources/draws.d.mts +84 -28
- package/resources/draws.d.mts.map +1 -1
- package/resources/draws.d.ts +84 -28
- package/resources/draws.d.ts.map +1 -1
- package/resources/draws.js +24 -9
- package/resources/draws.js.map +1 -1
- package/resources/draws.mjs +24 -9
- package/resources/draws.mjs.map +1 -1
- package/resources/events.d.mts +2564 -21
- package/resources/events.d.mts.map +1 -1
- package/resources/events.d.ts +2564 -21
- package/resources/events.d.ts.map +1 -1
- package/resources/events.js +34 -2
- package/resources/events.js.map +1 -1
- package/resources/events.mjs +34 -2
- package/resources/events.mjs.map +1 -1
- package/resources/extractions.d.mts +410 -128
- package/resources/extractions.d.mts.map +1 -1
- package/resources/extractions.d.ts +410 -128
- package/resources/extractions.d.ts.map +1 -1
- package/resources/extractions.js +74 -12
- package/resources/extractions.js.map +1 -1
- package/resources/extractions.mjs +74 -12
- package/resources/extractions.mjs.map +1 -1
- package/resources/guest-wallets.d.mts +6 -5
- package/resources/guest-wallets.d.mts.map +1 -1
- package/resources/guest-wallets.d.ts +6 -5
- package/resources/guest-wallets.d.ts.map +1 -1
- package/resources/guest-wallets.js +2 -1
- package/resources/guest-wallets.js.map +1 -1
- package/resources/guest-wallets.mjs +2 -1
- package/resources/guest-wallets.mjs.map +1 -1
- package/resources/index.d.mts +6 -6
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +6 -6
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -1
- package/resources/index.mjs.map +1 -1
- package/resources/monitors/index.d.mts +2 -2
- package/resources/monitors/index.d.mts.map +1 -1
- package/resources/monitors/index.d.ts +2 -2
- package/resources/monitors/index.d.ts.map +1 -1
- package/resources/monitors/index.js.map +1 -1
- package/resources/monitors/index.mjs.map +1 -1
- package/resources/monitors/keywords.d.mts +66 -14
- package/resources/monitors/keywords.d.mts.map +1 -1
- package/resources/monitors/keywords.d.ts +66 -14
- package/resources/monitors/keywords.d.ts.map +1 -1
- package/resources/monitors/keywords.js +16 -10
- package/resources/monitors/keywords.js.map +1 -1
- package/resources/monitors/keywords.mjs +16 -10
- package/resources/monitors/keywords.mjs.map +1 -1
- package/resources/monitors/monitors.d.mts +53 -16
- package/resources/monitors/monitors.d.mts.map +1 -1
- package/resources/monitors/monitors.d.ts +53 -16
- package/resources/monitors/monitors.d.ts.map +1 -1
- package/resources/monitors/monitors.js +12 -10
- package/resources/monitors/monitors.js.map +1 -1
- package/resources/monitors/monitors.mjs +12 -10
- package/resources/monitors/monitors.mjs.map +1 -1
- package/resources/radar.d.mts +32 -36
- package/resources/radar.d.mts.map +1 -1
- package/resources/radar.d.ts +32 -36
- package/resources/radar.d.ts.map +1 -1
- package/resources/radar.js +1 -1
- package/resources/radar.mjs +1 -1
- package/resources/shared.d.mts +1726 -233
- package/resources/shared.d.mts.map +1 -1
- package/resources/shared.d.ts +1726 -233
- package/resources/shared.d.ts.map +1 -1
- package/resources/styles.d.mts +34 -23
- package/resources/styles.d.mts.map +1 -1
- package/resources/styles.d.ts +34 -23
- package/resources/styles.d.ts.map +1 -1
- package/resources/styles.js +11 -13
- package/resources/styles.js.map +1 -1
- package/resources/styles.mjs +11 -13
- package/resources/styles.mjs.map +1 -1
- package/resources/subscribe.d.mts +1 -1
- package/resources/subscribe.d.ts +1 -1
- package/resources/subscribe.js +1 -1
- package/resources/subscribe.mjs +1 -1
- package/resources/support/index.d.mts +1 -1
- package/resources/support/index.d.mts.map +1 -1
- package/resources/support/index.d.ts +1 -1
- package/resources/support/index.d.ts.map +1 -1
- package/resources/support/index.js.map +1 -1
- package/resources/support/index.mjs.map +1 -1
- package/resources/support/support.d.mts +2 -2
- package/resources/support/support.d.mts.map +1 -1
- package/resources/support/support.d.ts +2 -2
- package/resources/support/support.d.ts.map +1 -1
- package/resources/support/support.js.map +1 -1
- package/resources/support/support.mjs.map +1 -1
- package/resources/support/tickets.d.mts +30 -10
- package/resources/support/tickets.d.mts.map +1 -1
- package/resources/support/tickets.d.ts +30 -10
- package/resources/support/tickets.d.ts.map +1 -1
- package/resources/support/tickets.js +7 -7
- package/resources/support/tickets.js.map +1 -1
- package/resources/support/tickets.mjs +7 -7
- package/resources/support/tickets.mjs.map +1 -1
- package/resources/trends.d.mts +21 -5
- package/resources/trends.d.mts.map +1 -1
- package/resources/trends.d.ts +21 -5
- package/resources/trends.d.ts.map +1 -1
- package/resources/trends.js +2 -1
- package/resources/trends.js.map +1 -1
- package/resources/trends.mjs +2 -1
- package/resources/trends.mjs.map +1 -1
- package/resources/webhooks.d.mts +80 -14
- package/resources/webhooks.d.mts.map +1 -1
- package/resources/webhooks.d.ts +80 -14
- package/resources/webhooks.d.ts.map +1 -1
- package/resources/webhooks.js +30 -11
- package/resources/webhooks.js.map +1 -1
- package/resources/webhooks.mjs +30 -11
- package/resources/webhooks.mjs.map +1 -1
- package/resources/x/account-connection-attempts.d.mts +1 -1
- package/resources/x/account-connection-attempts.d.ts +1 -1
- package/resources/x/account-connection-attempts.js +1 -1
- package/resources/x/account-connection-attempts.mjs +1 -1
- package/resources/x/account-connection-challenges.d.mts +30 -11
- package/resources/x/account-connection-challenges.d.mts.map +1 -1
- package/resources/x/account-connection-challenges.d.ts +30 -11
- package/resources/x/account-connection-challenges.d.ts.map +1 -1
- package/resources/x/account-connection-challenges.js +5 -4
- package/resources/x/account-connection-challenges.js.map +1 -1
- package/resources/x/account-connection-challenges.mjs +5 -4
- package/resources/x/account-connection-challenges.mjs.map +1 -1
- package/resources/x/accounts.d.mts +38 -10
- package/resources/x/accounts.d.mts.map +1 -1
- package/resources/x/accounts.d.ts +38 -10
- package/resources/x/accounts.d.ts.map +1 -1
- package/resources/x/accounts.js +8 -7
- package/resources/x/accounts.js.map +1 -1
- package/resources/x/accounts.mjs +8 -7
- package/resources/x/accounts.mjs.map +1 -1
- package/resources/x/analysis.d.mts +3274 -0
- package/resources/x/analysis.d.mts.map +1 -0
- package/resources/x/analysis.d.ts +3274 -0
- package/resources/x/analysis.d.ts.map +1 -0
- package/resources/x/analysis.js +132 -0
- package/resources/x/analysis.js.map +1 -0
- package/resources/x/analysis.mjs +128 -0
- package/resources/x/analysis.mjs.map +1 -0
- package/resources/x/bookmarks.d.mts +84 -9
- package/resources/x/bookmarks.d.mts.map +1 -1
- package/resources/x/bookmarks.d.ts +84 -9
- package/resources/x/bookmarks.d.ts.map +1 -1
- package/resources/x/bookmarks.js +6 -4
- package/resources/x/bookmarks.js.map +1 -1
- package/resources/x/bookmarks.mjs +6 -4
- package/resources/x/bookmarks.mjs.map +1 -1
- package/resources/x/broadcasts.d.mts +176 -0
- package/resources/x/broadcasts.d.mts.map +1 -0
- package/resources/x/broadcasts.d.ts +176 -0
- package/resources/x/broadcasts.d.ts.map +1 -0
- package/resources/x/broadcasts.js +29 -0
- package/resources/x/broadcasts.js.map +1 -0
- package/resources/x/broadcasts.mjs +25 -0
- package/resources/x/broadcasts.mjs.map +1 -0
- package/resources/x/communities/communities.d.mts +612 -128
- package/resources/x/communities/communities.d.mts.map +1 -1
- package/resources/x/communities/communities.d.ts +612 -128
- package/resources/x/communities/communities.d.ts.map +1 -1
- package/resources/x/communities/communities.js +96 -17
- package/resources/x/communities/communities.js.map +1 -1
- package/resources/x/communities/communities.mjs +96 -17
- package/resources/x/communities/communities.mjs.map +1 -1
- package/resources/x/communities/index.d.mts +2 -1
- package/resources/x/communities/index.d.mts.map +1 -1
- package/resources/x/communities/index.d.ts +2 -1
- package/resources/x/communities/index.d.ts.map +1 -1
- package/resources/x/communities/index.js +3 -1
- package/resources/x/communities/index.js.map +1 -1
- package/resources/x/communities/index.mjs +1 -0
- package/resources/x/communities/index.mjs.map +1 -1
- package/resources/x/communities/join.d.mts +46 -25
- package/resources/x/communities/join.d.mts.map +1 -1
- package/resources/x/communities/join.d.ts +46 -25
- package/resources/x/communities/join.d.ts.map +1 -1
- package/resources/x/communities/join.js +10 -7
- package/resources/x/communities/join.js.map +1 -1
- package/resources/x/communities/join.mjs +10 -7
- package/resources/x/communities/join.mjs.map +1 -1
- package/resources/x/communities/media.d.mts +197 -0
- package/resources/x/communities/media.d.mts.map +1 -0
- package/resources/x/communities/media.d.ts +197 -0
- package/resources/x/communities/media.d.ts.map +1 -0
- package/resources/x/communities/media.js +29 -0
- package/resources/x/communities/media.js.map +1 -0
- package/resources/x/communities/media.mjs +25 -0
- package/resources/x/communities/media.mjs.map +1 -0
- package/resources/x/communities/tweets.d.mts +350 -20
- package/resources/x/communities/tweets.d.mts.map +1 -1
- package/resources/x/communities/tweets.d.ts +350 -20
- package/resources/x/communities/tweets.d.ts.map +1 -1
- package/resources/x/communities/tweets.js +8 -7
- package/resources/x/communities/tweets.js.map +1 -1
- package/resources/x/communities/tweets.mjs +8 -7
- package/resources/x/communities/tweets.mjs.map +1 -1
- package/resources/x/dm.d.mts +245 -13
- package/resources/x/dm.d.mts.map +1 -1
- package/resources/x/dm.d.ts +245 -13
- package/resources/x/dm.d.ts.map +1 -1
- package/resources/x/dm.js +29 -2
- package/resources/x/dm.js.map +1 -1
- package/resources/x/dm.mjs +29 -2
- package/resources/x/dm.mjs.map +1 -1
- package/resources/x/followers.d.mts +31 -3
- package/resources/x/followers.d.mts.map +1 -1
- package/resources/x/followers.d.ts +31 -3
- package/resources/x/followers.d.ts.map +1 -1
- package/resources/x/followers.js +2 -1
- package/resources/x/followers.js.map +1 -1
- package/resources/x/followers.mjs +2 -1
- package/resources/x/followers.mjs.map +1 -1
- package/resources/x/index.d.mts +12 -8
- package/resources/x/index.d.mts.map +1 -1
- package/resources/x/index.d.ts +12 -8
- package/resources/x/index.d.ts.map +1 -1
- package/resources/x/index.js +9 -1
- package/resources/x/index.js.map +1 -1
- package/resources/x/index.mjs +5 -1
- package/resources/x/index.mjs.map +1 -1
- package/resources/x/jobs.d.mts +506 -0
- package/resources/x/jobs.d.mts.map +1 -0
- package/resources/x/jobs.d.ts +506 -0
- package/resources/x/jobs.d.ts.map +1 -0
- package/resources/x/jobs.js +60 -0
- package/resources/x/jobs.js.map +1 -0
- package/resources/x/jobs.mjs +56 -0
- package/resources/x/jobs.mjs.map +1 -0
- package/resources/x/lists.d.mts +1058 -27
- package/resources/x/lists.d.mts.map +1 -1
- package/resources/x/lists.d.ts +1058 -27
- package/resources/x/lists.d.ts.map +1 -1
- package/resources/x/lists.js +39 -9
- package/resources/x/lists.js.map +1 -1
- package/resources/x/lists.mjs +39 -9
- package/resources/x/lists.mjs.map +1 -1
- package/resources/x/media.d.mts +24 -13
- package/resources/x/media.d.mts.map +1 -1
- package/resources/x/media.d.ts +24 -13
- package/resources/x/media.d.ts.map +1 -1
- package/resources/x/media.js +2 -2
- package/resources/x/media.mjs +2 -2
- package/resources/x/profile.d.mts +60 -33
- package/resources/x/profile.d.mts.map +1 -1
- package/resources/x/profile.d.ts +60 -33
- package/resources/x/profile.d.ts.map +1 -1
- package/resources/x/profile.js +3 -3
- package/resources/x/profile.mjs +3 -3
- package/resources/x/spaces.d.mts +857 -0
- package/resources/x/spaces.d.mts.map +1 -0
- package/resources/x/spaces.d.ts +857 -0
- package/resources/x/spaces.d.ts.map +1 -0
- package/resources/x/spaces.js +58 -0
- package/resources/x/spaces.js.map +1 -0
- package/resources/x/spaces.mjs +54 -0
- package/resources/x/spaces.mjs.map +1 -0
- package/resources/x/tweets/index.d.mts +1 -1
- package/resources/x/tweets/index.d.mts.map +1 -1
- package/resources/x/tweets/index.d.ts +1 -1
- package/resources/x/tweets/index.d.ts.map +1 -1
- package/resources/x/tweets/index.js.map +1 -1
- package/resources/x/tweets/index.mjs.map +1 -1
- package/resources/x/tweets/like.d.mts +38 -20
- package/resources/x/tweets/like.d.mts.map +1 -1
- package/resources/x/tweets/like.d.ts +38 -20
- package/resources/x/tweets/like.d.ts.map +1 -1
- package/resources/x/tweets/like.js +2 -2
- package/resources/x/tweets/like.mjs +2 -2
- package/resources/x/tweets/retweet.d.mts +38 -20
- package/resources/x/tweets/retweet.d.mts.map +1 -1
- package/resources/x/tweets/retweet.d.ts +38 -20
- package/resources/x/tweets/retweet.d.ts.map +1 -1
- package/resources/x/tweets/retweet.js +2 -2
- package/resources/x/tweets/retweet.mjs +2 -2
- package/resources/x/tweets/tweets.d.mts +2639 -326
- package/resources/x/tweets/tweets.d.mts.map +1 -1
- package/resources/x/tweets/tweets.d.ts +2639 -326
- package/resources/x/tweets/tweets.d.ts.map +1 -1
- package/resources/x/tweets/tweets.js +147 -21
- package/resources/x/tweets/tweets.js.map +1 -1
- package/resources/x/tweets/tweets.mjs +147 -21
- package/resources/x/tweets/tweets.mjs.map +1 -1
- package/resources/x/users/follow.d.mts +38 -20
- package/resources/x/users/follow.d.mts.map +1 -1
- package/resources/x/users/follow.d.ts +38 -20
- package/resources/x/users/follow.d.ts.map +1 -1
- package/resources/x/users/follow.js +2 -2
- package/resources/x/users/follow.mjs +2 -2
- package/resources/x/users/index.d.mts +1 -1
- package/resources/x/users/index.d.mts.map +1 -1
- package/resources/x/users/index.d.ts +1 -1
- package/resources/x/users/index.d.ts.map +1 -1
- package/resources/x/users/index.js.map +1 -1
- package/resources/x/users/index.mjs.map +1 -1
- package/resources/x/users/users.d.mts +3068 -457
- package/resources/x/users/users.d.mts.map +1 -1
- package/resources/x/users/users.d.ts +3068 -457
- package/resources/x/users/users.d.ts.map +1 -1
- package/resources/x/users/users.js +205 -22
- package/resources/x/users/users.js.map +1 -1
- package/resources/x/users/users.mjs +205 -22
- package/resources/x/users/users.mjs.map +1 -1
- package/resources/x/write-actions.d.mts +13 -6
- package/resources/x/write-actions.d.mts.map +1 -1
- package/resources/x/write-actions.d.ts +13 -6
- package/resources/x/write-actions.d.ts.map +1 -1
- package/resources/x/write-actions.js +1 -1
- package/resources/x/write-actions.mjs +1 -1
- package/resources/x/x.d.mts +864 -27
- package/resources/x/x.d.mts.map +1 -1
- package/resources/x/x.d.ts +864 -27
- package/resources/x/x.d.ts.map +1 -1
- package/resources/x/x.js +78 -5
- package/resources/x/x.js.map +1 -1
- package/resources/x/x.mjs +80 -7
- package/resources/x/x.mjs.map +1 -1
- package/skills/x-twitter-scraper/SKILL.md +97 -350
- package/skills/x-twitter-scraper/metadata.json +3 -9
- package/skills/x-twitter-scraper/references/draws.md +24 -24
- package/skills/x-twitter-scraper/references/extractions.md +71 -62
- package/skills/x-twitter-scraper/references/mcp-setup.md +36 -39
- package/skills/x-twitter-scraper/references/mcp-tools.md +105 -166
- package/skills/x-twitter-scraper/references/python-examples.md +5 -5
- package/skills/x-twitter-scraper/references/security.md +8 -8
- package/skills/x-twitter-scraper/references/types-mcp-output-schemas.md +4 -4
- package/skills/x-twitter-scraper/references/types.md +0 -1
- package/skills/x-twitter-scraper/references/usage.md +5 -5
- package/skills/x-twitter-scraper/references/webhooks.md +28 -31
- package/skills/x-twitter-scraper/references/workflows.md +70 -71
- package/skills/x-twitter-scraper/skill-card.md +13 -14
- package/skills/x-twitter-scraper/skillspector-report.md +8 -5
- package/skills/xquik-account-automation/LICENSE +21 -0
- package/skills/xquik-account-automation/SKILL.md +91 -0
- package/skills/xquik-social-research/SKILL.md +49 -56
- package/src/client.ts +47 -4
- package/src/core/streaming.ts +328 -0
- package/src/internal/decoders/line.ts +140 -0
- package/src/internal/parse.ts +9 -0
- package/src/resources/account.ts +41 -12
- package/src/resources/compose.ts +77 -21
- package/src/resources/credits.ts +19 -10
- package/src/resources/drafts.ts +13 -22
- package/src/resources/draws.ts +94 -36
- package/src/resources/events.ts +3225 -68
- package/src/resources/extractions.ts +512 -125
- package/src/resources/guest-wallets.ts +6 -5
- package/src/resources/index.ts +24 -1
- package/src/resources/monitors/index.ts +2 -0
- package/src/resources/monitors/keywords.ts +82 -14
- package/src/resources/monitors/monitors.ts +66 -14
- package/src/resources/radar.ts +32 -36
- package/src/resources/shared.ts +2227 -351
- package/src/resources/styles.ts +43 -27
- package/src/resources/subscribe.ts +1 -1
- package/src/resources/support/index.ts +1 -0
- package/src/resources/support/support.ts +2 -0
- package/src/resources/support/tickets.ts +38 -10
- package/src/resources/trends.ts +23 -5
- package/src/resources/webhooks.ts +109 -15
- package/src/resources/x/account-connection-attempts.ts +1 -1
- package/src/resources/x/account-connection-challenges.ts +39 -11
- package/src/resources/x/accounts.ts +46 -10
- package/src/resources/x/analysis.ts +3947 -0
- package/src/resources/x/bookmarks.ts +103 -9
- package/src/resources/x/broadcasts.ts +225 -0
- package/src/resources/x/communities/communities.ts +743 -141
- package/src/resources/x/communities/index.ts +9 -0
- package/src/resources/x/communities/join.ts +46 -23
- package/src/resources/x/communities/media.ts +251 -0
- package/src/resources/x/communities/tweets.ts +427 -20
- package/src/resources/x/dm.ts +334 -11
- package/src/resources/x/followers.ts +35 -3
- package/src/resources/x/index.ts +106 -1
- package/src/resources/x/jobs.ts +627 -0
- package/src/resources/x/lists.ts +1307 -28
- package/src/resources/x/media.ts +24 -12
- package/src/resources/x/profile.ts +60 -30
- package/src/resources/x/spaces.ts +1076 -0
- package/src/resources/x/tweets/index.ts +18 -0
- package/src/resources/x/tweets/like.ts +38 -18
- package/src/resources/x/tweets/retweet.ts +38 -18
- package/src/resources/x/tweets/tweets.ts +3695 -843
- package/src/resources/x/users/follow.ts +38 -18
- package/src/resources/x/users/index.ts +22 -0
- package/src/resources/x/users/users.ts +3687 -465
- package/src/resources/x/write-actions.ts +13 -5
- package/src/resources/x/x.ts +1227 -15
- package/src/streaming.ts +6 -0
- package/src/version.ts +1 -1
- package/streaming.d.mts +3 -0
- package/streaming.d.mts.map +1 -0
- package/streaming.d.ts +3 -0
- package/streaming.d.ts.map +1 -0
- package/streaming.js +9 -0
- package/streaming.js.map +1 -0
- package/streaming.mjs +6 -0
- package/streaming.mjs.map +1 -0
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/skills/x-twitter-scraper/references/types-rest-api-vs-mcp-field-naming.md +0 -15
package/src/resources/events.ts
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
import { APIResource } from '../core/resource';
|
|
8
8
|
import * as Shared from './shared';
|
|
9
9
|
import { APIPromise } from '../core/api-promise';
|
|
10
|
+
import { Stream } from '../core/streaming';
|
|
11
|
+
import { buildHeaders } from '../internal/headers';
|
|
10
12
|
import { RequestOptions } from '../internal/request-options';
|
|
11
13
|
import { path } from '../internal/utils/path';
|
|
12
14
|
|
|
@@ -15,14 +17,14 @@ import { path } from '../internal/utils/path';
|
|
|
15
17
|
*/
|
|
16
18
|
export class Events extends APIResource {
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
20
|
+
* Returns one monitor event owned by the account.
|
|
19
21
|
*/
|
|
20
22
|
retrieve(id: string, options?: RequestOptions): APIPromise<EventDetail> {
|
|
21
23
|
return this._client.get(path`/events/${id}`, options);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
|
-
*
|
|
27
|
+
* Returns monitor events with cursor pagination and filters.
|
|
26
28
|
*/
|
|
27
29
|
list(
|
|
28
30
|
query: EventListParams | null | undefined = {},
|
|
@@ -30,6 +32,41 @@ export class Events extends APIResource {
|
|
|
30
32
|
): APIPromise<EventListResponse> {
|
|
31
33
|
return this._client.get('/events', { query, ...options });
|
|
32
34
|
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Streams the account's monitor events as server-sent events, each named by its
|
|
38
|
+
* event type and numbered by its event ID. A reconnect that sends Last-Event-ID
|
|
39
|
+
* first gets every event after that one from the last 30 days, then each new
|
|
40
|
+
* event. A connection lasts up to 30 minutes and sends a comment every 15 seconds
|
|
41
|
+
* while idle. Keep up to 5 streams open per account. Events and streams cost no
|
|
42
|
+
* credits.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* const stream = await client.events.stream();
|
|
47
|
+
*
|
|
48
|
+
* for await (const event of stream) {
|
|
49
|
+
* console.log(event);
|
|
50
|
+
* }
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
stream(
|
|
54
|
+
params: EventStreamParams | null | undefined = {},
|
|
55
|
+
options?: RequestOptions,
|
|
56
|
+
): APIPromise<Stream<Event>> {
|
|
57
|
+
const { 'Last-Event-ID': lastEventID } = params ?? {};
|
|
58
|
+
return this._client.get('/events/stream', {
|
|
59
|
+
...options,
|
|
60
|
+
headers: buildHeaders([
|
|
61
|
+
{
|
|
62
|
+
Accept: 'text/event-stream',
|
|
63
|
+
...(lastEventID != null ? { 'Last-Event-ID': lastEventID } : undefined),
|
|
64
|
+
},
|
|
65
|
+
options?.headers,
|
|
66
|
+
]),
|
|
67
|
+
stream: true,
|
|
68
|
+
}) as APIPromise<Stream<Event>>;
|
|
69
|
+
}
|
|
33
70
|
}
|
|
34
71
|
|
|
35
72
|
/**
|
|
@@ -38,7 +75,10 @@ export class Events extends APIResource {
|
|
|
38
75
|
export interface Event {
|
|
39
76
|
id: string;
|
|
40
77
|
|
|
41
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Post fields match REST. Legacy fields remain available.
|
|
80
|
+
*/
|
|
81
|
+
data: Event.MonitorPost | Event.MonitorProfileChange | Event.MonitorLegacyPost;
|
|
42
82
|
|
|
43
83
|
/**
|
|
44
84
|
* Account monitor ID for account events, or keyword monitor ID for keyword events.
|
|
@@ -53,7 +93,13 @@ export interface Event {
|
|
|
53
93
|
occurredAt: string;
|
|
54
94
|
|
|
55
95
|
/**
|
|
56
|
-
* Type of monitor event fired when account activity occurs.
|
|
96
|
+
* Type of monitor event fired when account activity occurs. tweet.deleted fires
|
|
97
|
+
* once X confirms the account deleted a post the monitor saw. Its data is the post
|
|
98
|
+
* as last seen. broadcast.started & space.started fire when the account posts its
|
|
99
|
+
* running live video or Space. Their data is that post. A live the account does
|
|
100
|
+
* not post is not seen. following.added & following.removed fire when the account
|
|
101
|
+
* follows or unfollows someone, with that account's profile. Keyword monitors take
|
|
102
|
+
* the 10 post types only.
|
|
57
103
|
*/
|
|
58
104
|
type: Shared.EventType;
|
|
59
105
|
|
|
@@ -62,99 +108,3209 @@ export interface Event {
|
|
|
62
108
|
*/
|
|
63
109
|
keywordMonitorId?: string;
|
|
64
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Your monitor label when Xquik created the event, present when set. A rename
|
|
113
|
+
* leaves the event's label unchanged.
|
|
114
|
+
*/
|
|
115
|
+
monitorName?: string;
|
|
116
|
+
|
|
65
117
|
/**
|
|
66
118
|
* Keyword query, present for keyword monitor events.
|
|
67
119
|
*/
|
|
68
120
|
query?: string;
|
|
69
121
|
|
|
70
122
|
/**
|
|
71
|
-
*
|
|
123
|
+
* Current account username, present for account monitor events.
|
|
72
124
|
*/
|
|
73
125
|
username?: string;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Full monitor event including payload data and optional X event ID.
|
|
78
|
-
*/
|
|
79
|
-
export interface EventDetail {
|
|
80
|
-
id: string;
|
|
81
126
|
|
|
82
127
|
/**
|
|
83
|
-
*
|
|
128
|
+
* Permanent X user ID of the monitored account, present for account monitor
|
|
129
|
+
* events. It stays the same after a username change.
|
|
84
130
|
*/
|
|
85
|
-
|
|
131
|
+
xUserId?: string;
|
|
132
|
+
}
|
|
86
133
|
|
|
134
|
+
export namespace Event {
|
|
87
135
|
/**
|
|
88
|
-
*
|
|
136
|
+
* Monitored post with public fields and retained legacy fields.
|
|
89
137
|
*/
|
|
90
|
-
|
|
138
|
+
export interface MonitorPost {
|
|
139
|
+
id: string;
|
|
91
140
|
|
|
92
|
-
|
|
93
|
-
* Source monitor type for this detailed event.
|
|
94
|
-
*/
|
|
95
|
-
monitorType: 'account' | 'keyword';
|
|
141
|
+
bookmarkCount: number;
|
|
96
142
|
|
|
97
|
-
|
|
143
|
+
likeCount: number;
|
|
98
144
|
|
|
99
|
-
|
|
100
|
-
* Type of monitor event fired when account activity occurs.
|
|
101
|
-
*/
|
|
102
|
-
type: Shared.EventType;
|
|
145
|
+
quoteCount: number;
|
|
103
146
|
|
|
104
|
-
|
|
105
|
-
* Keyword monitor ID included on detailed keyword events.
|
|
106
|
-
*/
|
|
107
|
-
keywordMonitorId?: string;
|
|
147
|
+
replyCount: number;
|
|
108
148
|
|
|
109
|
-
|
|
110
|
-
* Keyword query for this detailed monitor event.
|
|
111
|
-
*/
|
|
112
|
-
query?: string;
|
|
149
|
+
retweetCount: number;
|
|
113
150
|
|
|
114
|
-
|
|
115
|
-
* Account username for this detailed monitor event.
|
|
116
|
-
*/
|
|
117
|
-
username?: string;
|
|
151
|
+
text: string;
|
|
118
152
|
|
|
119
|
-
|
|
120
|
-
}
|
|
153
|
+
viewCount: number;
|
|
121
154
|
|
|
122
|
-
|
|
123
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Describes an X Article preview and its lifecycle metadata.
|
|
157
|
+
*/
|
|
158
|
+
article?: MonitorPost.Article;
|
|
124
159
|
|
|
125
|
-
|
|
160
|
+
/**
|
|
161
|
+
* Public profile with retained legacy monitor fields.
|
|
162
|
+
*/
|
|
163
|
+
author?: MonitorPost.Author;
|
|
126
164
|
|
|
127
|
-
|
|
128
|
-
|
|
165
|
+
/**
|
|
166
|
+
* Why the tweet has no author. X serves a suspended or deleted account as an
|
|
167
|
+
* unavailable user with a reason such as Suspended or NotFound. Omitted when the
|
|
168
|
+
* author is available.
|
|
169
|
+
*/
|
|
170
|
+
authorUnavailable?: MonitorPost.AuthorUnavailable;
|
|
129
171
|
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Previous nextCursor.
|
|
133
|
-
*/
|
|
134
|
-
cursor?: string;
|
|
172
|
+
card?: MonitorPost.Card;
|
|
135
173
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
174
|
+
/**
|
|
175
|
+
* Price charts the author attached under the post, 1 per cashtag. Absent when the
|
|
176
|
+
* post has none. X may send a cashtag without a chart window.
|
|
177
|
+
*/
|
|
178
|
+
cashtagAttachments?: Array<MonitorPost.CashtagAttachment>;
|
|
140
179
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
180
|
+
/**
|
|
181
|
+
* Community ID.
|
|
182
|
+
*/
|
|
183
|
+
communityId?: string;
|
|
145
184
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
* 402 insufficient_credits.
|
|
151
|
-
*/
|
|
152
|
-
limit?: number;
|
|
185
|
+
/**
|
|
186
|
+
* Community name. Present when X sends it with the post.
|
|
187
|
+
*/
|
|
188
|
+
communityName?: string;
|
|
153
189
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Community Note presentation metadata returned by X.
|
|
192
|
+
*/
|
|
193
|
+
communityNote?: MonitorPost.CommunityNote;
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Content disclosure metadata shown by X when a tweet is labeled as paid
|
|
197
|
+
* partnership content or AI-generated media.
|
|
198
|
+
*/
|
|
199
|
+
contentDisclosure?: Shared.ContentDisclosure;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Reply policy & conversation owner.
|
|
203
|
+
*/
|
|
204
|
+
conversationControl?: MonitorPost.ConversationControl;
|
|
205
|
+
|
|
206
|
+
conversationId?: string;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Author-published point, with longitude before latitude.
|
|
210
|
+
*/
|
|
211
|
+
coordinates?: MonitorPost.Coordinates;
|
|
212
|
+
|
|
213
|
+
createdAt?: string;
|
|
214
|
+
|
|
215
|
+
displayTextRange?: Array<number>;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Lists edit-chain identifiers and the remaining edit window.
|
|
219
|
+
*/
|
|
220
|
+
edit?: MonitorPost.Edit;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
224
|
+
*/
|
|
225
|
+
entities?: MonitorPost.Entities;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Marks a subscriber-only post with the creator whose subscription unlocks it.
|
|
229
|
+
* Non-subscribers get the preview text & the subscribe link. Omitted on public
|
|
230
|
+
* posts.
|
|
231
|
+
*/
|
|
232
|
+
exclusiveContent?: MonitorPost.ExclusiveContent;
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Author-published point, with latitude before longitude.
|
|
236
|
+
*/
|
|
237
|
+
geo?: MonitorPost.Geo;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Public metadata whose fields are defined by X.
|
|
241
|
+
*/
|
|
242
|
+
grokShareAttachment?: { [key: string]: unknown };
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Grok's translation of the post, as X shows it.
|
|
246
|
+
*/
|
|
247
|
+
grokTranslatedPost?: { [key: string]: unknown };
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Whether X holds Community Notes on the post, shown or not.
|
|
251
|
+
*/
|
|
252
|
+
hasCommunityNotes?: boolean;
|
|
253
|
+
|
|
254
|
+
inReplyToId?: string;
|
|
255
|
+
|
|
256
|
+
inReplyToUserId?: string;
|
|
257
|
+
|
|
258
|
+
inReplyToUsername?: string;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* The notice x.com covers the post with until the reader views it, such as X's
|
|
262
|
+
* public interest notice on a post that broke its rules but stays up.
|
|
263
|
+
*/
|
|
264
|
+
interstitial?: MonitorPost.Interstitial;
|
|
265
|
+
|
|
266
|
+
isLimitedReply?: boolean;
|
|
267
|
+
|
|
268
|
+
isNoteTweet?: boolean;
|
|
269
|
+
|
|
270
|
+
isPinned?: boolean;
|
|
271
|
+
|
|
272
|
+
isQuoteStatus?: boolean;
|
|
273
|
+
|
|
274
|
+
isReply?: boolean;
|
|
275
|
+
|
|
276
|
+
isRetweet?: boolean;
|
|
277
|
+
|
|
278
|
+
isTranslatable?: boolean;
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Public metadata whose fields are defined by X.
|
|
282
|
+
*/
|
|
283
|
+
jetfuelAttachment?: { [key: string]: unknown };
|
|
284
|
+
|
|
285
|
+
lang?: string;
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Public restrictions & prompts.
|
|
289
|
+
*/
|
|
290
|
+
limitedActions?: Array<MonitorPost.LimitedAction>;
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Media, omitted when unavailable.
|
|
294
|
+
*/
|
|
295
|
+
media?: Array<Shared.TweetMedia>;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
299
|
+
*/
|
|
300
|
+
noteTweet?: MonitorPost.NoteTweet;
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* A parent, quoted or retweeted tweet. It has the TweetPublicData fields and an
|
|
304
|
+
* author. Nesting stops after 4 levels.
|
|
305
|
+
*/
|
|
306
|
+
parentTweet?: Shared.EmbeddedTweet;
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Describes public place metadata on a geotagged tweet.
|
|
310
|
+
*/
|
|
311
|
+
place?: MonitorPost.Place;
|
|
312
|
+
|
|
313
|
+
possiblySensitive?: boolean;
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Public metadata whose fields are defined by X.
|
|
317
|
+
*/
|
|
318
|
+
postCta?: { [key: string]: unknown };
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Engagement counts retained from a prior tweet edit.
|
|
322
|
+
*/
|
|
323
|
+
previousCounts?: MonitorPost.PreviousCounts;
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
327
|
+
*/
|
|
328
|
+
quoted_tweet?: MonitorPost.QuotedTweet;
|
|
329
|
+
|
|
330
|
+
quotedTweetId?: string;
|
|
331
|
+
|
|
332
|
+
/**
|
|
333
|
+
* The quoted post's link, kept when X withholds that post.
|
|
334
|
+
*/
|
|
335
|
+
quotedTweetPermalink?: MonitorPost.QuotedTweetPermalink;
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Why X shows no quoted post. Omitted when X names no reason, as its legacy
|
|
339
|
+
* answers never do.
|
|
340
|
+
*/
|
|
341
|
+
quotedTweetUnavailable?: MonitorPost.QuotedTweetUnavailable;
|
|
342
|
+
|
|
343
|
+
reactionContext?: MonitorPost.ReactionContext;
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
347
|
+
*/
|
|
348
|
+
retweeted_tweet?: MonitorPost.RetweetedTweet;
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Repost event time in UTC. Null when unavailable; omitted for other posts.
|
|
352
|
+
*/
|
|
353
|
+
retweetedAt?: string | null;
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Public metadata whose fields are defined by X.
|
|
357
|
+
*/
|
|
358
|
+
scopes?: { [key: string]: unknown };
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* The app the post was sent from, as X labels it. X sends it for some posts only.
|
|
362
|
+
*/
|
|
363
|
+
source?: string;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Game metadata attached to this post.
|
|
367
|
+
*/
|
|
368
|
+
sportsContext?: MonitorPost.SportsContext;
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* The Subscriber badge X shows on a reply. The reply's author subscribes to the
|
|
372
|
+
* creator who started the conversation. Omitted on a post without the badge.
|
|
373
|
+
*/
|
|
374
|
+
subscriberBadge?: MonitorPost.SubscriberBadge;
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Where `text` matches the search, on each row a search read. Offsets count code
|
|
378
|
+
* points of `text`, as `displayTextRange` does. Empty when X marks nothing in the
|
|
379
|
+
* post. X marks matches only in a post's first 280 characters.
|
|
380
|
+
*/
|
|
381
|
+
textHighlights?: Array<MonitorPost.TextHighlight>;
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Public visibility notice attached to an available tweet.
|
|
385
|
+
*/
|
|
386
|
+
tombstone?: MonitorPost.Tombstone;
|
|
387
|
+
|
|
388
|
+
type?: string;
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* The author's ID when X withholds the author's profile.
|
|
392
|
+
*/
|
|
393
|
+
unavailableAuthorId?: string;
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* User IDs that left this conversation.
|
|
397
|
+
*/
|
|
398
|
+
unmentionedUserIds?: Array<string>;
|
|
399
|
+
|
|
400
|
+
url?: string;
|
|
401
|
+
|
|
402
|
+
viewState?: string;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export namespace MonitorPost {
|
|
406
|
+
/**
|
|
407
|
+
* Describes an X Article preview and its lifecycle metadata.
|
|
408
|
+
*/
|
|
409
|
+
export interface Article {
|
|
410
|
+
id?: string;
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
* Public metadata whose fields are defined by X.
|
|
414
|
+
*/
|
|
415
|
+
coverMedia?: { [key: string]: unknown };
|
|
416
|
+
|
|
417
|
+
coverMediaUrl?: string;
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Public metadata whose fields are defined by X.
|
|
421
|
+
*/
|
|
422
|
+
lifecycleState?: { [key: string]: unknown };
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Public metadata whose fields are defined by X.
|
|
426
|
+
*/
|
|
427
|
+
metadata?: { [key: string]: unknown };
|
|
428
|
+
|
|
429
|
+
previewText?: string;
|
|
430
|
+
|
|
431
|
+
title?: string;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* Public profile with retained legacy monitor fields.
|
|
436
|
+
*/
|
|
437
|
+
export interface Author extends Shared.UserProfile {
|
|
438
|
+
/**
|
|
439
|
+
* Original X flag. Read verified for the displayed badge.
|
|
440
|
+
*
|
|
441
|
+
* @deprecated
|
|
442
|
+
*/
|
|
443
|
+
rawVerified?: boolean;
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Legacy username alias. Read username instead.
|
|
447
|
+
*
|
|
448
|
+
* @deprecated
|
|
449
|
+
*/
|
|
450
|
+
userName?: string;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Why the tweet has no author. X serves a suspended or deleted account as an
|
|
455
|
+
* unavailable user with a reason such as Suspended or NotFound. Omitted when the
|
|
456
|
+
* author is available.
|
|
457
|
+
*/
|
|
458
|
+
export interface AuthorUnavailable {
|
|
459
|
+
/**
|
|
460
|
+
* X's reason code.
|
|
461
|
+
*/
|
|
462
|
+
reason: string;
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* X's notice text for the reason.
|
|
466
|
+
*/
|
|
467
|
+
message?: string;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
export interface Card {
|
|
471
|
+
id?: string;
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Public metadata whose fields are defined by X.
|
|
475
|
+
*/
|
|
476
|
+
bindingValues?: { [key: string]: unknown };
|
|
477
|
+
|
|
478
|
+
name?: string;
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Public metadata whose fields are defined by X.
|
|
482
|
+
*/
|
|
483
|
+
platform?: { [key: string]: unknown };
|
|
484
|
+
|
|
485
|
+
url?: string;
|
|
486
|
+
|
|
487
|
+
/**
|
|
488
|
+
* Unresolved card user references.
|
|
489
|
+
*/
|
|
490
|
+
userReferenceErrors?: Array<Card.UserReferenceError>;
|
|
491
|
+
|
|
492
|
+
userReferences?: Array<Card.UserReference>;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export namespace Card {
|
|
496
|
+
export interface UserReferenceError {
|
|
497
|
+
message?: string;
|
|
498
|
+
|
|
499
|
+
reason?: string;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/**
|
|
503
|
+
* Public profile with retained legacy monitor fields.
|
|
504
|
+
*/
|
|
505
|
+
export interface UserReference extends Shared.UserProfile {
|
|
506
|
+
/**
|
|
507
|
+
* Original X flag. Read verified for the displayed badge.
|
|
508
|
+
*
|
|
509
|
+
* @deprecated
|
|
510
|
+
*/
|
|
511
|
+
rawVerified?: boolean;
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Legacy username alias. Read username instead.
|
|
515
|
+
*
|
|
516
|
+
* @deprecated
|
|
517
|
+
*/
|
|
518
|
+
userName?: string;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
export interface CashtagAttachment {
|
|
523
|
+
/**
|
|
524
|
+
* The cashtag with its `$`.
|
|
525
|
+
*/
|
|
526
|
+
cashtag: string;
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Span of each candle.
|
|
530
|
+
*/
|
|
531
|
+
candleSize?: string;
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* Time of the chart's last price.
|
|
535
|
+
*/
|
|
536
|
+
endTime?: string;
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* X's size for the chart.
|
|
540
|
+
*/
|
|
541
|
+
sizeVariant?: number;
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Time of the chart's first candle.
|
|
545
|
+
*/
|
|
546
|
+
startTime?: string;
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Span the chart covers.
|
|
550
|
+
*/
|
|
551
|
+
timeframe?: string;
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/**
|
|
555
|
+
* Community Note presentation metadata returned by X.
|
|
556
|
+
*/
|
|
557
|
+
export interface CommunityNote {
|
|
558
|
+
id?: string;
|
|
559
|
+
|
|
560
|
+
destinationUrl?: string;
|
|
561
|
+
|
|
562
|
+
footer?: string;
|
|
563
|
+
|
|
564
|
+
footerIconType?: string;
|
|
565
|
+
|
|
566
|
+
iconType?: string;
|
|
567
|
+
|
|
568
|
+
/**
|
|
569
|
+
* Public metadata whose fields are defined by X.
|
|
570
|
+
*/
|
|
571
|
+
metadata?: { [key: string]: unknown };
|
|
572
|
+
|
|
573
|
+
shortTitle?: string;
|
|
574
|
+
|
|
575
|
+
subtitle?: string;
|
|
576
|
+
|
|
577
|
+
title?: string;
|
|
578
|
+
|
|
579
|
+
visualStyle?: string;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Reply policy & conversation owner.
|
|
584
|
+
*/
|
|
585
|
+
export interface ConversationControl {
|
|
586
|
+
/**
|
|
587
|
+
* Regions whose accounts may reply, as country codes. Sent with the
|
|
588
|
+
* `country_of_origin` mode.
|
|
589
|
+
*/
|
|
590
|
+
allowedCountryCodes?: Array<string>;
|
|
591
|
+
|
|
592
|
+
inviteViaMention?: boolean;
|
|
593
|
+
|
|
594
|
+
/**
|
|
595
|
+
* Reply policy from X's newer field, such as `my_network`, `premium` or
|
|
596
|
+
* `country_of_origin`. Omitted when X sends none.
|
|
597
|
+
*/
|
|
598
|
+
mode?: string;
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* The conversation owner's account ID.
|
|
602
|
+
*/
|
|
603
|
+
ownerId?: string;
|
|
604
|
+
|
|
605
|
+
ownerUsername?: string;
|
|
606
|
+
|
|
607
|
+
policy?: string;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* Author-published point, with longitude before latitude.
|
|
612
|
+
*/
|
|
613
|
+
export interface Coordinates {
|
|
614
|
+
coordinates: Array<number>;
|
|
615
|
+
|
|
616
|
+
type: 'Point';
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
/**
|
|
620
|
+
* Lists edit-chain identifiers and the remaining edit window.
|
|
621
|
+
*/
|
|
622
|
+
export interface Edit {
|
|
623
|
+
editableUntilMsecs?: string;
|
|
624
|
+
|
|
625
|
+
editTweetIds?: Array<string>;
|
|
626
|
+
|
|
627
|
+
initialTweetId?: string;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
632
|
+
*/
|
|
633
|
+
export interface Entities {
|
|
634
|
+
hashtags?: Array<Entities.Hashtag>;
|
|
635
|
+
|
|
636
|
+
smarttags?: Array<Entities.Smarttag>;
|
|
637
|
+
|
|
638
|
+
symbols?: Array<Entities.Symbol>;
|
|
639
|
+
|
|
640
|
+
timestamps?: Array<Entities.Timestamp>;
|
|
641
|
+
|
|
642
|
+
urls?: Array<Entities.URL>;
|
|
643
|
+
|
|
644
|
+
user_mentions?: Array<Entities.UserMention>;
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
export namespace Entities {
|
|
648
|
+
/**
|
|
649
|
+
* Provides hashtag text and source offsets within a tweet.
|
|
650
|
+
*/
|
|
651
|
+
export interface Hashtag {
|
|
652
|
+
text: string;
|
|
653
|
+
|
|
654
|
+
indices?: Array<number>;
|
|
655
|
+
|
|
656
|
+
/**
|
|
657
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
658
|
+
* platforms, which differ by reader.
|
|
659
|
+
*/
|
|
660
|
+
tag?: Hashtag.Tag;
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
export namespace Hashtag {
|
|
664
|
+
/**
|
|
665
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
666
|
+
* platforms, which differ by reader.
|
|
667
|
+
*/
|
|
668
|
+
export interface Tag {
|
|
669
|
+
/**
|
|
670
|
+
* X's ID for the SmartTag.
|
|
671
|
+
*/
|
|
672
|
+
id?: string;
|
|
673
|
+
|
|
674
|
+
info?: Tag.Info;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
export namespace Tag {
|
|
678
|
+
export interface Info {
|
|
679
|
+
info?: Info.Info;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
export namespace Info {
|
|
683
|
+
export interface Info {
|
|
684
|
+
/**
|
|
685
|
+
* Whether X marks the SmartTag active.
|
|
686
|
+
*/
|
|
687
|
+
active?: boolean;
|
|
688
|
+
|
|
689
|
+
name?: string;
|
|
690
|
+
|
|
691
|
+
ticker?: string;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
/**
|
|
698
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
699
|
+
*/
|
|
700
|
+
export interface Smarttag {
|
|
701
|
+
indices?: Array<number>;
|
|
702
|
+
|
|
703
|
+
seconds?: number;
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
707
|
+
* platforms, which differ by reader.
|
|
708
|
+
*/
|
|
709
|
+
tag?: Smarttag.Tag;
|
|
710
|
+
|
|
711
|
+
text?: string;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
export namespace Smarttag {
|
|
715
|
+
/**
|
|
716
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
717
|
+
* platforms, which differ by reader.
|
|
718
|
+
*/
|
|
719
|
+
export interface Tag {
|
|
720
|
+
/**
|
|
721
|
+
* X's ID for the SmartTag.
|
|
722
|
+
*/
|
|
723
|
+
id?: string;
|
|
724
|
+
|
|
725
|
+
info?: Tag.Info;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
export namespace Tag {
|
|
729
|
+
export interface Info {
|
|
730
|
+
info?: Info.Info;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
export namespace Info {
|
|
734
|
+
export interface Info {
|
|
735
|
+
/**
|
|
736
|
+
* Whether X marks the SmartTag active.
|
|
737
|
+
*/
|
|
738
|
+
active?: boolean;
|
|
739
|
+
|
|
740
|
+
name?: string;
|
|
741
|
+
|
|
742
|
+
ticker?: string;
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
750
|
+
*/
|
|
751
|
+
export interface Symbol {
|
|
752
|
+
indices?: Array<number>;
|
|
753
|
+
|
|
754
|
+
seconds?: number;
|
|
755
|
+
|
|
756
|
+
/**
|
|
757
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
758
|
+
* platforms, which differ by reader.
|
|
759
|
+
*/
|
|
760
|
+
tag?: Symbol.Tag;
|
|
761
|
+
|
|
762
|
+
text?: string;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
export namespace Symbol {
|
|
766
|
+
/**
|
|
767
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
768
|
+
* platforms, which differ by reader.
|
|
769
|
+
*/
|
|
770
|
+
export interface Tag {
|
|
771
|
+
/**
|
|
772
|
+
* X's ID for the SmartTag.
|
|
773
|
+
*/
|
|
774
|
+
id?: string;
|
|
775
|
+
|
|
776
|
+
info?: Tag.Info;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
export namespace Tag {
|
|
780
|
+
export interface Info {
|
|
781
|
+
info?: Info.Info;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
export namespace Info {
|
|
785
|
+
export interface Info {
|
|
786
|
+
/**
|
|
787
|
+
* Whether X marks the SmartTag active.
|
|
788
|
+
*/
|
|
789
|
+
active?: boolean;
|
|
790
|
+
|
|
791
|
+
name?: string;
|
|
792
|
+
|
|
793
|
+
ticker?: string;
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
801
|
+
*/
|
|
802
|
+
export interface Timestamp {
|
|
803
|
+
indices?: Array<number>;
|
|
804
|
+
|
|
805
|
+
seconds?: number;
|
|
806
|
+
|
|
807
|
+
/**
|
|
808
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
809
|
+
* platforms, which differ by reader.
|
|
810
|
+
*/
|
|
811
|
+
tag?: Timestamp.Tag;
|
|
812
|
+
|
|
813
|
+
text?: string;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
export namespace Timestamp {
|
|
817
|
+
/**
|
|
818
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
819
|
+
* platforms, which differ by reader.
|
|
820
|
+
*/
|
|
821
|
+
export interface Tag {
|
|
822
|
+
/**
|
|
823
|
+
* X's ID for the SmartTag.
|
|
824
|
+
*/
|
|
825
|
+
id?: string;
|
|
826
|
+
|
|
827
|
+
info?: Tag.Info;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
export namespace Tag {
|
|
831
|
+
export interface Info {
|
|
832
|
+
info?: Info.Info;
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
export namespace Info {
|
|
836
|
+
export interface Info {
|
|
837
|
+
/**
|
|
838
|
+
* Whether X marks the SmartTag active.
|
|
839
|
+
*/
|
|
840
|
+
active?: boolean;
|
|
841
|
+
|
|
842
|
+
name?: string;
|
|
843
|
+
|
|
844
|
+
ticker?: string;
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/**
|
|
851
|
+
* Provides shortened, display, and expanded URLs from tweet text.
|
|
852
|
+
*/
|
|
853
|
+
export interface URL {
|
|
854
|
+
display_url?: string;
|
|
855
|
+
|
|
856
|
+
expanded_url?: string;
|
|
857
|
+
|
|
858
|
+
indices?: Array<number>;
|
|
859
|
+
|
|
860
|
+
url?: string;
|
|
861
|
+
}
|
|
862
|
+
|
|
863
|
+
/**
|
|
864
|
+
* Provides profile identity and source offsets for a mention.
|
|
865
|
+
*/
|
|
866
|
+
export interface UserMention {
|
|
867
|
+
screen_name: string;
|
|
868
|
+
|
|
869
|
+
id_str?: string;
|
|
870
|
+
|
|
871
|
+
indices?: Array<number>;
|
|
872
|
+
|
|
873
|
+
name?: string;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
/**
|
|
878
|
+
* Marks a subscriber-only post with the creator whose subscription unlocks it.
|
|
879
|
+
* Non-subscribers get the preview text & the subscribe link. Omitted on public
|
|
880
|
+
* posts.
|
|
881
|
+
*/
|
|
882
|
+
export interface ExclusiveContent {
|
|
883
|
+
/**
|
|
884
|
+
* Username of the creator whose subscription unlocks the post.
|
|
885
|
+
*/
|
|
886
|
+
creatorUserName: string;
|
|
887
|
+
|
|
888
|
+
/**
|
|
889
|
+
* Subscribe link X shows non-subscribers. Omitted when X serves the full post.
|
|
890
|
+
*/
|
|
891
|
+
subscribeUrl?: string;
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
/**
|
|
895
|
+
* Author-published point, with latitude before longitude.
|
|
896
|
+
*/
|
|
897
|
+
export interface Geo {
|
|
898
|
+
coordinates: Array<number>;
|
|
899
|
+
|
|
900
|
+
type: 'Point';
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
/**
|
|
904
|
+
* The notice x.com covers the post with until the reader views it, such as X's
|
|
905
|
+
* public interest notice on a post that broke its rules but stays up.
|
|
906
|
+
*/
|
|
907
|
+
export interface Interstitial {
|
|
908
|
+
/**
|
|
909
|
+
* How x.com shows the notice. `NonCompliant` marks a post that broke X's rules.
|
|
910
|
+
*/
|
|
911
|
+
displayType?: string;
|
|
912
|
+
|
|
913
|
+
text?: Interstitial.Text;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
export namespace Interstitial {
|
|
917
|
+
export interface Text {
|
|
918
|
+
/**
|
|
919
|
+
* Links inside the notice, by character range.
|
|
920
|
+
*/
|
|
921
|
+
entities?: Array<Text.Entity>;
|
|
922
|
+
|
|
923
|
+
/**
|
|
924
|
+
* Whether X writes it right to left.
|
|
925
|
+
*/
|
|
926
|
+
rtl?: boolean;
|
|
927
|
+
|
|
928
|
+
/**
|
|
929
|
+
* The notice's text.
|
|
930
|
+
*/
|
|
931
|
+
text?: string;
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
export namespace Text {
|
|
935
|
+
export interface Entity {
|
|
936
|
+
/**
|
|
937
|
+
* Whole number from 0.
|
|
938
|
+
*/
|
|
939
|
+
fromIndex?: number;
|
|
940
|
+
|
|
941
|
+
ref?: Entity.Ref;
|
|
942
|
+
|
|
943
|
+
/**
|
|
944
|
+
* Whole number from 0.
|
|
945
|
+
*/
|
|
946
|
+
toIndex?: number;
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
export namespace Entity {
|
|
950
|
+
export interface Ref {
|
|
951
|
+
type?: string;
|
|
952
|
+
|
|
953
|
+
url?: string;
|
|
954
|
+
|
|
955
|
+
urlType?: string;
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
export interface LimitedAction {
|
|
962
|
+
action?: string;
|
|
963
|
+
|
|
964
|
+
prompt?: LimitedAction.Prompt;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
export namespace LimitedAction {
|
|
968
|
+
export interface Prompt {
|
|
969
|
+
ctaType?: string;
|
|
970
|
+
|
|
971
|
+
headline?: string;
|
|
972
|
+
|
|
973
|
+
/**
|
|
974
|
+
* Public metadata whose fields are defined by X.
|
|
975
|
+
*/
|
|
976
|
+
metadata?: { [key: string]: unknown };
|
|
977
|
+
|
|
978
|
+
subtext?: string;
|
|
979
|
+
}
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
/**
|
|
983
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
984
|
+
*/
|
|
985
|
+
export interface NoteTweet {
|
|
986
|
+
text: string;
|
|
987
|
+
|
|
988
|
+
/**
|
|
989
|
+
* X's global ID of the Note, base64 of `NoteTweet:<noteId>`.
|
|
990
|
+
*/
|
|
991
|
+
id?: string;
|
|
992
|
+
|
|
993
|
+
/**
|
|
994
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
995
|
+
*/
|
|
996
|
+
entities?: NoteTweet.Entities;
|
|
997
|
+
|
|
998
|
+
/**
|
|
999
|
+
* Inline media positions in the Note Tweet text.
|
|
1000
|
+
*/
|
|
1001
|
+
inlineMedia?: Array<NoteTweet.InlineMedia>;
|
|
1002
|
+
|
|
1003
|
+
isExpandable?: boolean;
|
|
1004
|
+
|
|
1005
|
+
/**
|
|
1006
|
+
* The Note's own ID, apart from the post's.
|
|
1007
|
+
*/
|
|
1008
|
+
noteId?: string;
|
|
1009
|
+
|
|
1010
|
+
richtextTags?: Array<NoteTweet.RichtextTag>;
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
export namespace NoteTweet {
|
|
1014
|
+
/**
|
|
1015
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
1016
|
+
*/
|
|
1017
|
+
export interface Entities {
|
|
1018
|
+
hashtags?: Array<Entities.Hashtag>;
|
|
1019
|
+
|
|
1020
|
+
smarttags?: Array<Entities.Smarttag>;
|
|
1021
|
+
|
|
1022
|
+
symbols?: Array<Entities.Symbol>;
|
|
1023
|
+
|
|
1024
|
+
timestamps?: Array<Entities.Timestamp>;
|
|
1025
|
+
|
|
1026
|
+
urls?: Array<Entities.URL>;
|
|
1027
|
+
|
|
1028
|
+
user_mentions?: Array<Entities.UserMention>;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
export namespace Entities {
|
|
1032
|
+
/**
|
|
1033
|
+
* Provides hashtag text and source offsets within a tweet.
|
|
1034
|
+
*/
|
|
1035
|
+
export interface Hashtag {
|
|
1036
|
+
text: string;
|
|
1037
|
+
|
|
1038
|
+
indices?: Array<number>;
|
|
1039
|
+
|
|
1040
|
+
/**
|
|
1041
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1042
|
+
* platforms, which differ by reader.
|
|
1043
|
+
*/
|
|
1044
|
+
tag?: Hashtag.Tag;
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
export namespace Hashtag {
|
|
1048
|
+
/**
|
|
1049
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1050
|
+
* platforms, which differ by reader.
|
|
1051
|
+
*/
|
|
1052
|
+
export interface Tag {
|
|
1053
|
+
/**
|
|
1054
|
+
* X's ID for the SmartTag.
|
|
1055
|
+
*/
|
|
1056
|
+
id?: string;
|
|
1057
|
+
|
|
1058
|
+
info?: Tag.Info;
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
export namespace Tag {
|
|
1062
|
+
export interface Info {
|
|
1063
|
+
info?: Info.Info;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
export namespace Info {
|
|
1067
|
+
export interface Info {
|
|
1068
|
+
/**
|
|
1069
|
+
* Whether X marks the SmartTag active.
|
|
1070
|
+
*/
|
|
1071
|
+
active?: boolean;
|
|
1072
|
+
|
|
1073
|
+
name?: string;
|
|
1074
|
+
|
|
1075
|
+
ticker?: string;
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
1083
|
+
*/
|
|
1084
|
+
export interface Smarttag {
|
|
1085
|
+
indices?: Array<number>;
|
|
1086
|
+
|
|
1087
|
+
seconds?: number;
|
|
1088
|
+
|
|
1089
|
+
/**
|
|
1090
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1091
|
+
* platforms, which differ by reader.
|
|
1092
|
+
*/
|
|
1093
|
+
tag?: Smarttag.Tag;
|
|
1094
|
+
|
|
1095
|
+
text?: string;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
export namespace Smarttag {
|
|
1099
|
+
/**
|
|
1100
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1101
|
+
* platforms, which differ by reader.
|
|
1102
|
+
*/
|
|
1103
|
+
export interface Tag {
|
|
1104
|
+
/**
|
|
1105
|
+
* X's ID for the SmartTag.
|
|
1106
|
+
*/
|
|
1107
|
+
id?: string;
|
|
1108
|
+
|
|
1109
|
+
info?: Tag.Info;
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
export namespace Tag {
|
|
1113
|
+
export interface Info {
|
|
1114
|
+
info?: Info.Info;
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
export namespace Info {
|
|
1118
|
+
export interface Info {
|
|
1119
|
+
/**
|
|
1120
|
+
* Whether X marks the SmartTag active.
|
|
1121
|
+
*/
|
|
1122
|
+
active?: boolean;
|
|
1123
|
+
|
|
1124
|
+
name?: string;
|
|
1125
|
+
|
|
1126
|
+
ticker?: string;
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
|
|
1132
|
+
/**
|
|
1133
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
1134
|
+
*/
|
|
1135
|
+
export interface Symbol {
|
|
1136
|
+
indices?: Array<number>;
|
|
1137
|
+
|
|
1138
|
+
seconds?: number;
|
|
1139
|
+
|
|
1140
|
+
/**
|
|
1141
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1142
|
+
* platforms, which differ by reader.
|
|
1143
|
+
*/
|
|
1144
|
+
tag?: Symbol.Tag;
|
|
1145
|
+
|
|
1146
|
+
text?: string;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
export namespace Symbol {
|
|
1150
|
+
/**
|
|
1151
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1152
|
+
* platforms, which differ by reader.
|
|
1153
|
+
*/
|
|
1154
|
+
export interface Tag {
|
|
1155
|
+
/**
|
|
1156
|
+
* X's ID for the SmartTag.
|
|
1157
|
+
*/
|
|
1158
|
+
id?: string;
|
|
1159
|
+
|
|
1160
|
+
info?: Tag.Info;
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
export namespace Tag {
|
|
1164
|
+
export interface Info {
|
|
1165
|
+
info?: Info.Info;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
export namespace Info {
|
|
1169
|
+
export interface Info {
|
|
1170
|
+
/**
|
|
1171
|
+
* Whether X marks the SmartTag active.
|
|
1172
|
+
*/
|
|
1173
|
+
active?: boolean;
|
|
1174
|
+
|
|
1175
|
+
name?: string;
|
|
1176
|
+
|
|
1177
|
+
ticker?: string;
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
1185
|
+
*/
|
|
1186
|
+
export interface Timestamp {
|
|
1187
|
+
indices?: Array<number>;
|
|
1188
|
+
|
|
1189
|
+
seconds?: number;
|
|
1190
|
+
|
|
1191
|
+
/**
|
|
1192
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1193
|
+
* platforms, which differ by reader.
|
|
1194
|
+
*/
|
|
1195
|
+
tag?: Timestamp.Tag;
|
|
1196
|
+
|
|
1197
|
+
text?: string;
|
|
1198
|
+
}
|
|
1199
|
+
|
|
1200
|
+
export namespace Timestamp {
|
|
1201
|
+
/**
|
|
1202
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
1203
|
+
* platforms, which differ by reader.
|
|
1204
|
+
*/
|
|
1205
|
+
export interface Tag {
|
|
1206
|
+
/**
|
|
1207
|
+
* X's ID for the SmartTag.
|
|
1208
|
+
*/
|
|
1209
|
+
id?: string;
|
|
1210
|
+
|
|
1211
|
+
info?: Tag.Info;
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
export namespace Tag {
|
|
1215
|
+
export interface Info {
|
|
1216
|
+
info?: Info.Info;
|
|
1217
|
+
}
|
|
1218
|
+
|
|
1219
|
+
export namespace Info {
|
|
1220
|
+
export interface Info {
|
|
1221
|
+
/**
|
|
1222
|
+
* Whether X marks the SmartTag active.
|
|
1223
|
+
*/
|
|
1224
|
+
active?: boolean;
|
|
1225
|
+
|
|
1226
|
+
name?: string;
|
|
1227
|
+
|
|
1228
|
+
ticker?: string;
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
/**
|
|
1235
|
+
* Provides shortened, display, and expanded URLs from tweet text.
|
|
1236
|
+
*/
|
|
1237
|
+
export interface URL {
|
|
1238
|
+
display_url?: string;
|
|
1239
|
+
|
|
1240
|
+
expanded_url?: string;
|
|
1241
|
+
|
|
1242
|
+
indices?: Array<number>;
|
|
1243
|
+
|
|
1244
|
+
url?: string;
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
/**
|
|
1248
|
+
* Provides profile identity and source offsets for a mention.
|
|
1249
|
+
*/
|
|
1250
|
+
export interface UserMention {
|
|
1251
|
+
screen_name: string;
|
|
1252
|
+
|
|
1253
|
+
id_str?: string;
|
|
1254
|
+
|
|
1255
|
+
indices?: Array<number>;
|
|
1256
|
+
|
|
1257
|
+
name?: string;
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
export interface InlineMedia {
|
|
1262
|
+
/**
|
|
1263
|
+
* Whole number from 0.
|
|
1264
|
+
*/
|
|
1265
|
+
index: number;
|
|
1266
|
+
|
|
1267
|
+
mediaId: string;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
export interface RichtextTag {
|
|
1271
|
+
/**
|
|
1272
|
+
* Whole number from 0.
|
|
1273
|
+
*/
|
|
1274
|
+
fromIndex: number;
|
|
1275
|
+
|
|
1276
|
+
/**
|
|
1277
|
+
* Whole number from 0.
|
|
1278
|
+
*/
|
|
1279
|
+
toIndex: number;
|
|
1280
|
+
|
|
1281
|
+
types: Array<string>;
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
/**
|
|
1286
|
+
* Describes public place metadata on a geotagged tweet.
|
|
1287
|
+
*/
|
|
1288
|
+
export interface Place {
|
|
1289
|
+
id?: string;
|
|
1290
|
+
|
|
1291
|
+
/**
|
|
1292
|
+
* Public metadata whose fields are defined by X.
|
|
1293
|
+
*/
|
|
1294
|
+
boundingBox?: { [key: string]: unknown };
|
|
1295
|
+
|
|
1296
|
+
country?: string;
|
|
1297
|
+
|
|
1298
|
+
countryCode?: string;
|
|
1299
|
+
|
|
1300
|
+
fullName?: string;
|
|
1301
|
+
|
|
1302
|
+
name?: string;
|
|
1303
|
+
|
|
1304
|
+
placeType?: string;
|
|
1305
|
+
|
|
1306
|
+
url?: string;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
/**
|
|
1310
|
+
* Engagement counts retained from a prior tweet edit.
|
|
1311
|
+
*/
|
|
1312
|
+
export interface PreviousCounts {
|
|
1313
|
+
/**
|
|
1314
|
+
* Whole number from 0.
|
|
1315
|
+
*/
|
|
1316
|
+
bookmarkCount?: number;
|
|
1317
|
+
|
|
1318
|
+
/**
|
|
1319
|
+
* Whole number from 0.
|
|
1320
|
+
*/
|
|
1321
|
+
likeCount?: number;
|
|
1322
|
+
|
|
1323
|
+
/**
|
|
1324
|
+
* Whole number from 0.
|
|
1325
|
+
*/
|
|
1326
|
+
quoteCount?: number;
|
|
1327
|
+
|
|
1328
|
+
/**
|
|
1329
|
+
* Whole number from 0.
|
|
1330
|
+
*/
|
|
1331
|
+
replyCount?: number;
|
|
1332
|
+
|
|
1333
|
+
/**
|
|
1334
|
+
* Whole number from 0.
|
|
1335
|
+
*/
|
|
1336
|
+
retweetCount?: number;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
/**
|
|
1340
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
1341
|
+
*/
|
|
1342
|
+
export interface QuotedTweet extends Omit<Shared.EmbeddedTweet, 'author'> {
|
|
1343
|
+
/**
|
|
1344
|
+
* Public profile with retained legacy monitor fields.
|
|
1345
|
+
*/
|
|
1346
|
+
author?: QuotedTweet.Author;
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
export namespace QuotedTweet {
|
|
1350
|
+
/**
|
|
1351
|
+
* Public profile with retained legacy monitor fields.
|
|
1352
|
+
*/
|
|
1353
|
+
export interface Author extends Shared.UserProfile {
|
|
1354
|
+
/**
|
|
1355
|
+
* Original X flag. Read verified for the displayed badge.
|
|
1356
|
+
*
|
|
1357
|
+
* @deprecated
|
|
1358
|
+
*/
|
|
1359
|
+
rawVerified?: boolean;
|
|
1360
|
+
|
|
1361
|
+
/**
|
|
1362
|
+
* Legacy username alias. Read username instead.
|
|
1363
|
+
*
|
|
1364
|
+
* @deprecated
|
|
1365
|
+
*/
|
|
1366
|
+
userName?: string;
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
/**
|
|
1371
|
+
* The quoted post's link, kept when X withholds that post.
|
|
1372
|
+
*/
|
|
1373
|
+
export interface QuotedTweetPermalink {
|
|
1374
|
+
displayUrl?: string;
|
|
1375
|
+
|
|
1376
|
+
expandedUrl?: string;
|
|
1377
|
+
|
|
1378
|
+
url?: string;
|
|
1379
|
+
}
|
|
1380
|
+
|
|
1381
|
+
/**
|
|
1382
|
+
* Why X shows no quoted post. Omitted when X names no reason, as its legacy
|
|
1383
|
+
* answers never do.
|
|
1384
|
+
*/
|
|
1385
|
+
export interface QuotedTweetUnavailable {
|
|
1386
|
+
/**
|
|
1387
|
+
* X's reason, such as `Suspended` for a suspended author or `Protected` for an
|
|
1388
|
+
* author who protects their posts.
|
|
1389
|
+
*/
|
|
1390
|
+
reason: string;
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1393
|
+
export interface ReactionContext {
|
|
1394
|
+
reactedToPostId?: string;
|
|
1395
|
+
|
|
1396
|
+
/**
|
|
1397
|
+
* Public profile with retained legacy monitor fields.
|
|
1398
|
+
*/
|
|
1399
|
+
reactedToUser?: ReactionContext.ReactedToUser;
|
|
1400
|
+
}
|
|
1401
|
+
|
|
1402
|
+
export namespace ReactionContext {
|
|
1403
|
+
/**
|
|
1404
|
+
* Public profile with retained legacy monitor fields.
|
|
1405
|
+
*/
|
|
1406
|
+
export interface ReactedToUser extends Shared.UserProfile {
|
|
1407
|
+
/**
|
|
1408
|
+
* Original X flag. Read verified for the displayed badge.
|
|
1409
|
+
*
|
|
1410
|
+
* @deprecated
|
|
1411
|
+
*/
|
|
1412
|
+
rawVerified?: boolean;
|
|
1413
|
+
|
|
1414
|
+
/**
|
|
1415
|
+
* Legacy username alias. Read username instead.
|
|
1416
|
+
*
|
|
1417
|
+
* @deprecated
|
|
1418
|
+
*/
|
|
1419
|
+
userName?: string;
|
|
1420
|
+
}
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
/**
|
|
1424
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
1425
|
+
*/
|
|
1426
|
+
export interface RetweetedTweet extends Omit<Shared.EmbeddedTweet, 'author'> {
|
|
1427
|
+
/**
|
|
1428
|
+
* Public profile with retained legacy monitor fields.
|
|
1429
|
+
*/
|
|
1430
|
+
author?: RetweetedTweet.Author;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
export namespace RetweetedTweet {
|
|
1434
|
+
/**
|
|
1435
|
+
* Public profile with retained legacy monitor fields.
|
|
1436
|
+
*/
|
|
1437
|
+
export interface Author extends Shared.UserProfile {
|
|
1438
|
+
/**
|
|
1439
|
+
* Original X flag. Read verified for the displayed badge.
|
|
1440
|
+
*
|
|
1441
|
+
* @deprecated
|
|
1442
|
+
*/
|
|
1443
|
+
rawVerified?: boolean;
|
|
1444
|
+
|
|
1445
|
+
/**
|
|
1446
|
+
* Legacy username alias. Read username instead.
|
|
1447
|
+
*
|
|
1448
|
+
* @deprecated
|
|
1449
|
+
*/
|
|
1450
|
+
userName?: string;
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
/**
|
|
1455
|
+
* Game metadata attached to this post.
|
|
1456
|
+
*/
|
|
1457
|
+
export interface SportsContext {
|
|
1458
|
+
/**
|
|
1459
|
+
* Teams & reported scores.
|
|
1460
|
+
*/
|
|
1461
|
+
competitors?: Array<SportsContext.Competitor>;
|
|
1462
|
+
|
|
1463
|
+
/**
|
|
1464
|
+
* Game ID.
|
|
1465
|
+
*/
|
|
1466
|
+
gameId?: string;
|
|
1467
|
+
|
|
1468
|
+
/**
|
|
1469
|
+
* League ID.
|
|
1470
|
+
*/
|
|
1471
|
+
league?: string;
|
|
1472
|
+
|
|
1473
|
+
/**
|
|
1474
|
+
* Scheduled Unix milliseconds, retaining the source type.
|
|
1475
|
+
*/
|
|
1476
|
+
scheduledAtMs?: number | string;
|
|
1477
|
+
|
|
1478
|
+
/**
|
|
1479
|
+
* Reported game state.
|
|
1480
|
+
*/
|
|
1481
|
+
state?: string;
|
|
1482
|
+
|
|
1483
|
+
/**
|
|
1484
|
+
* Game progress text.
|
|
1485
|
+
*/
|
|
1486
|
+
statusText?: string;
|
|
1487
|
+
|
|
1488
|
+
/**
|
|
1489
|
+
* Game title.
|
|
1490
|
+
*/
|
|
1491
|
+
title?: string;
|
|
1492
|
+
|
|
1493
|
+
/**
|
|
1494
|
+
* Game link.
|
|
1495
|
+
*/
|
|
1496
|
+
url?: string;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
export namespace SportsContext {
|
|
1500
|
+
export interface Competitor {
|
|
1501
|
+
/**
|
|
1502
|
+
* Team abbreviation.
|
|
1503
|
+
*/
|
|
1504
|
+
abbreviation?: string;
|
|
1505
|
+
|
|
1506
|
+
/**
|
|
1507
|
+
* Team display color.
|
|
1508
|
+
*/
|
|
1509
|
+
color?: string;
|
|
1510
|
+
|
|
1511
|
+
/**
|
|
1512
|
+
* Logo for dark backgrounds.
|
|
1513
|
+
*/
|
|
1514
|
+
darkLogoUrl?: string;
|
|
1515
|
+
|
|
1516
|
+
/**
|
|
1517
|
+
* Active competitor.
|
|
1518
|
+
*/
|
|
1519
|
+
isActive?: boolean;
|
|
1520
|
+
|
|
1521
|
+
/**
|
|
1522
|
+
* Winning competitor.
|
|
1523
|
+
*/
|
|
1524
|
+
isWinner?: boolean;
|
|
1525
|
+
|
|
1526
|
+
/**
|
|
1527
|
+
* Logo for light backgrounds.
|
|
1528
|
+
*/
|
|
1529
|
+
logoUrl?: string;
|
|
1530
|
+
|
|
1531
|
+
/**
|
|
1532
|
+
* Team name.
|
|
1533
|
+
*/
|
|
1534
|
+
name?: string;
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* Score display text.
|
|
1538
|
+
*/
|
|
1539
|
+
score?: string;
|
|
1540
|
+
|
|
1541
|
+
/**
|
|
1542
|
+
* Team ID.
|
|
1543
|
+
*/
|
|
1544
|
+
teamId?: string;
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
|
|
1548
|
+
/**
|
|
1549
|
+
* The Subscriber badge X shows on a reply. The reply's author subscribes to the
|
|
1550
|
+
* creator who started the conversation. Omitted on a post without the badge.
|
|
1551
|
+
*/
|
|
1552
|
+
export interface SubscriberBadge {
|
|
1553
|
+
/**
|
|
1554
|
+
* Account ID of the creator the author subscribes to.
|
|
1555
|
+
*/
|
|
1556
|
+
creatorId: string;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
export interface TextHighlight {
|
|
1560
|
+
/**
|
|
1561
|
+
* The first code point after the match.
|
|
1562
|
+
*/
|
|
1563
|
+
endIndex: number;
|
|
1564
|
+
|
|
1565
|
+
/**
|
|
1566
|
+
* The first code point of the match.
|
|
1567
|
+
*/
|
|
1568
|
+
startIndex: number;
|
|
1569
|
+
}
|
|
1570
|
+
|
|
1571
|
+
/**
|
|
1572
|
+
* Public visibility notice attached to an available tweet.
|
|
1573
|
+
*/
|
|
1574
|
+
export interface Tombstone {
|
|
1575
|
+
text?: Tombstone.Text;
|
|
1576
|
+
|
|
1577
|
+
/**
|
|
1578
|
+
* Visibility notice type.
|
|
1579
|
+
*/
|
|
1580
|
+
type?: string;
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
export namespace Tombstone {
|
|
1584
|
+
export interface Text {
|
|
1585
|
+
entities?: Array<Text.Entity>;
|
|
1586
|
+
|
|
1587
|
+
/**
|
|
1588
|
+
* Right-to-left text direction.
|
|
1589
|
+
*/
|
|
1590
|
+
rtl?: boolean;
|
|
1591
|
+
|
|
1592
|
+
/**
|
|
1593
|
+
* Human-readable notice text.
|
|
1594
|
+
*/
|
|
1595
|
+
text?: string;
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
export namespace Text {
|
|
1599
|
+
export interface Entity {
|
|
1600
|
+
/**
|
|
1601
|
+
* Whole number from 0.
|
|
1602
|
+
*/
|
|
1603
|
+
fromIndex?: number;
|
|
1604
|
+
|
|
1605
|
+
ref?: Entity.Ref;
|
|
1606
|
+
|
|
1607
|
+
/**
|
|
1608
|
+
* Whole number from 0.
|
|
1609
|
+
*/
|
|
1610
|
+
toIndex?: number;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
export namespace Entity {
|
|
1614
|
+
export interface Ref {
|
|
1615
|
+
type?: string;
|
|
1616
|
+
|
|
1617
|
+
url?: string;
|
|
1618
|
+
|
|
1619
|
+
urlType?: string;
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
/**
|
|
1627
|
+
* Changed profile field with its previous and current values.
|
|
1628
|
+
*/
|
|
1629
|
+
export interface MonitorProfileChange {
|
|
1630
|
+
field: string;
|
|
1631
|
+
|
|
1632
|
+
/**
|
|
1633
|
+
* Permanent X user ID.
|
|
1634
|
+
*/
|
|
1635
|
+
userId: string;
|
|
1636
|
+
|
|
1637
|
+
/**
|
|
1638
|
+
* Username observed for this change.
|
|
1639
|
+
*/
|
|
1640
|
+
username: string;
|
|
1641
|
+
|
|
1642
|
+
/**
|
|
1643
|
+
* Profile text, flag, or pinned post IDs. Missing values are omitted.
|
|
1644
|
+
*/
|
|
1645
|
+
current?: string | boolean | Array<string>;
|
|
1646
|
+
|
|
1647
|
+
/**
|
|
1648
|
+
* Profile text, flag, or pinned post IDs. Missing values are omitted.
|
|
1649
|
+
*/
|
|
1650
|
+
previous?: string | boolean | Array<string>;
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
/**
|
|
1654
|
+
* Older stored posts remain readable. Fields can be missing or null.
|
|
1655
|
+
*/
|
|
1656
|
+
export interface MonitorLegacyPost {
|
|
1657
|
+
id?: string;
|
|
1658
|
+
|
|
1659
|
+
author?: { [key: string]: unknown } | null;
|
|
1660
|
+
|
|
1661
|
+
quoted_tweet?: { [key: string]: unknown } | null;
|
|
1662
|
+
|
|
1663
|
+
retweeted_tweet?: { [key: string]: unknown } | null;
|
|
1664
|
+
|
|
1665
|
+
text?: string;
|
|
1666
|
+
|
|
1667
|
+
[k: string]: unknown;
|
|
1668
|
+
}
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
/**
|
|
1672
|
+
* Full monitor event including payload data and optional X event ID.
|
|
1673
|
+
*/
|
|
1674
|
+
export interface EventDetail {
|
|
1675
|
+
id: string;
|
|
1676
|
+
|
|
1677
|
+
/**
|
|
1678
|
+
* Post or profile-change payload for the event type.
|
|
1679
|
+
*/
|
|
1680
|
+
data: EventDetail.MonitorPost | EventDetail.MonitorProfileChange | EventDetail.MonitorLegacyPost;
|
|
1681
|
+
|
|
1682
|
+
/**
|
|
1683
|
+
* Monitor ID associated with this detailed event payload.
|
|
1684
|
+
*/
|
|
1685
|
+
monitorId: string;
|
|
1686
|
+
|
|
1687
|
+
/**
|
|
1688
|
+
* Source monitor type for this detailed event.
|
|
1689
|
+
*/
|
|
1690
|
+
monitorType: 'account' | 'keyword';
|
|
1691
|
+
|
|
1692
|
+
occurredAt: string;
|
|
1693
|
+
|
|
1694
|
+
/**
|
|
1695
|
+
* Type of monitor event fired when account activity occurs. tweet.deleted fires
|
|
1696
|
+
* once X confirms the account deleted a post the monitor saw. Its data is the post
|
|
1697
|
+
* as last seen. broadcast.started & space.started fire when the account posts its
|
|
1698
|
+
* running live video or Space. Their data is that post. A live the account does
|
|
1699
|
+
* not post is not seen. following.added & following.removed fire when the account
|
|
1700
|
+
* follows or unfollows someone, with that account's profile. Keyword monitors take
|
|
1701
|
+
* the 10 post types only.
|
|
1702
|
+
*/
|
|
1703
|
+
type: Shared.EventType;
|
|
1704
|
+
|
|
1705
|
+
/**
|
|
1706
|
+
* Keyword monitor ID included on detailed keyword events.
|
|
1707
|
+
*/
|
|
1708
|
+
keywordMonitorId?: string;
|
|
1709
|
+
|
|
1710
|
+
/**
|
|
1711
|
+
* Your monitor label when Xquik created this event, present when set. A rename
|
|
1712
|
+
* leaves the event's label unchanged.
|
|
1713
|
+
*/
|
|
1714
|
+
monitorName?: string;
|
|
1715
|
+
|
|
1716
|
+
/**
|
|
1717
|
+
* Keyword query for this detailed monitor event.
|
|
1718
|
+
*/
|
|
1719
|
+
query?: string;
|
|
1720
|
+
|
|
1721
|
+
/**
|
|
1722
|
+
* Current account username for this detailed event.
|
|
1723
|
+
*/
|
|
1724
|
+
username?: string;
|
|
1725
|
+
|
|
1726
|
+
xEventId?: string;
|
|
1727
|
+
|
|
1728
|
+
/**
|
|
1729
|
+
* Permanent X user ID of the monitored account on account events. It stays the
|
|
1730
|
+
* same after a username change.
|
|
1731
|
+
*/
|
|
1732
|
+
xUserId?: string;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
export namespace EventDetail {
|
|
1736
|
+
/**
|
|
1737
|
+
* Monitored post with public fields and retained legacy fields.
|
|
1738
|
+
*/
|
|
1739
|
+
export interface MonitorPost {
|
|
1740
|
+
id: string;
|
|
1741
|
+
|
|
1742
|
+
bookmarkCount: number;
|
|
1743
|
+
|
|
1744
|
+
likeCount: number;
|
|
1745
|
+
|
|
1746
|
+
quoteCount: number;
|
|
1747
|
+
|
|
1748
|
+
replyCount: number;
|
|
1749
|
+
|
|
1750
|
+
retweetCount: number;
|
|
1751
|
+
|
|
1752
|
+
text: string;
|
|
1753
|
+
|
|
1754
|
+
viewCount: number;
|
|
1755
|
+
|
|
1756
|
+
/**
|
|
1757
|
+
* Describes an X Article preview and its lifecycle metadata.
|
|
1758
|
+
*/
|
|
1759
|
+
article?: MonitorPost.Article;
|
|
1760
|
+
|
|
1761
|
+
/**
|
|
1762
|
+
* Public profile with retained legacy monitor fields.
|
|
1763
|
+
*/
|
|
1764
|
+
author?: MonitorPost.Author;
|
|
1765
|
+
|
|
1766
|
+
/**
|
|
1767
|
+
* Why the tweet has no author. X serves a suspended or deleted account as an
|
|
1768
|
+
* unavailable user with a reason such as Suspended or NotFound. Omitted when the
|
|
1769
|
+
* author is available.
|
|
1770
|
+
*/
|
|
1771
|
+
authorUnavailable?: MonitorPost.AuthorUnavailable;
|
|
1772
|
+
|
|
1773
|
+
card?: MonitorPost.Card;
|
|
1774
|
+
|
|
1775
|
+
/**
|
|
1776
|
+
* Price charts the author attached under the post, 1 per cashtag. Absent when the
|
|
1777
|
+
* post has none. X may send a cashtag without a chart window.
|
|
1778
|
+
*/
|
|
1779
|
+
cashtagAttachments?: Array<MonitorPost.CashtagAttachment>;
|
|
1780
|
+
|
|
1781
|
+
/**
|
|
1782
|
+
* Community ID.
|
|
1783
|
+
*/
|
|
1784
|
+
communityId?: string;
|
|
1785
|
+
|
|
1786
|
+
/**
|
|
1787
|
+
* Community name. Present when X sends it with the post.
|
|
1788
|
+
*/
|
|
1789
|
+
communityName?: string;
|
|
1790
|
+
|
|
1791
|
+
/**
|
|
1792
|
+
* Community Note presentation metadata returned by X.
|
|
1793
|
+
*/
|
|
1794
|
+
communityNote?: MonitorPost.CommunityNote;
|
|
1795
|
+
|
|
1796
|
+
/**
|
|
1797
|
+
* Content disclosure metadata shown by X when a tweet is labeled as paid
|
|
1798
|
+
* partnership content or AI-generated media.
|
|
1799
|
+
*/
|
|
1800
|
+
contentDisclosure?: Shared.ContentDisclosure;
|
|
1801
|
+
|
|
1802
|
+
/**
|
|
1803
|
+
* Reply policy & conversation owner.
|
|
1804
|
+
*/
|
|
1805
|
+
conversationControl?: MonitorPost.ConversationControl;
|
|
1806
|
+
|
|
1807
|
+
conversationId?: string;
|
|
1808
|
+
|
|
1809
|
+
/**
|
|
1810
|
+
* Author-published point, with longitude before latitude.
|
|
1811
|
+
*/
|
|
1812
|
+
coordinates?: MonitorPost.Coordinates;
|
|
1813
|
+
|
|
1814
|
+
createdAt?: string;
|
|
1815
|
+
|
|
1816
|
+
displayTextRange?: Array<number>;
|
|
1817
|
+
|
|
1818
|
+
/**
|
|
1819
|
+
* Lists edit-chain identifiers and the remaining edit window.
|
|
1820
|
+
*/
|
|
1821
|
+
edit?: MonitorPost.Edit;
|
|
1822
|
+
|
|
1823
|
+
/**
|
|
1824
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
1825
|
+
*/
|
|
1826
|
+
entities?: MonitorPost.Entities;
|
|
1827
|
+
|
|
1828
|
+
/**
|
|
1829
|
+
* Marks a subscriber-only post with the creator whose subscription unlocks it.
|
|
1830
|
+
* Non-subscribers get the preview text & the subscribe link. Omitted on public
|
|
1831
|
+
* posts.
|
|
1832
|
+
*/
|
|
1833
|
+
exclusiveContent?: MonitorPost.ExclusiveContent;
|
|
1834
|
+
|
|
1835
|
+
/**
|
|
1836
|
+
* Author-published point, with latitude before longitude.
|
|
1837
|
+
*/
|
|
1838
|
+
geo?: MonitorPost.Geo;
|
|
1839
|
+
|
|
1840
|
+
/**
|
|
1841
|
+
* Public metadata whose fields are defined by X.
|
|
1842
|
+
*/
|
|
1843
|
+
grokShareAttachment?: { [key: string]: unknown };
|
|
1844
|
+
|
|
1845
|
+
/**
|
|
1846
|
+
* Grok's translation of the post, as X shows it.
|
|
1847
|
+
*/
|
|
1848
|
+
grokTranslatedPost?: { [key: string]: unknown };
|
|
1849
|
+
|
|
1850
|
+
/**
|
|
1851
|
+
* Whether X holds Community Notes on the post, shown or not.
|
|
1852
|
+
*/
|
|
1853
|
+
hasCommunityNotes?: boolean;
|
|
1854
|
+
|
|
1855
|
+
inReplyToId?: string;
|
|
1856
|
+
|
|
1857
|
+
inReplyToUserId?: string;
|
|
1858
|
+
|
|
1859
|
+
inReplyToUsername?: string;
|
|
1860
|
+
|
|
1861
|
+
/**
|
|
1862
|
+
* The notice x.com covers the post with until the reader views it, such as X's
|
|
1863
|
+
* public interest notice on a post that broke its rules but stays up.
|
|
1864
|
+
*/
|
|
1865
|
+
interstitial?: MonitorPost.Interstitial;
|
|
1866
|
+
|
|
1867
|
+
isLimitedReply?: boolean;
|
|
1868
|
+
|
|
1869
|
+
isNoteTweet?: boolean;
|
|
1870
|
+
|
|
1871
|
+
isPinned?: boolean;
|
|
1872
|
+
|
|
1873
|
+
isQuoteStatus?: boolean;
|
|
1874
|
+
|
|
1875
|
+
isReply?: boolean;
|
|
1876
|
+
|
|
1877
|
+
isRetweet?: boolean;
|
|
1878
|
+
|
|
1879
|
+
isTranslatable?: boolean;
|
|
1880
|
+
|
|
1881
|
+
/**
|
|
1882
|
+
* Public metadata whose fields are defined by X.
|
|
1883
|
+
*/
|
|
1884
|
+
jetfuelAttachment?: { [key: string]: unknown };
|
|
1885
|
+
|
|
1886
|
+
lang?: string;
|
|
1887
|
+
|
|
1888
|
+
/**
|
|
1889
|
+
* Public restrictions & prompts.
|
|
1890
|
+
*/
|
|
1891
|
+
limitedActions?: Array<MonitorPost.LimitedAction>;
|
|
1892
|
+
|
|
1893
|
+
/**
|
|
1894
|
+
* Media, omitted when unavailable.
|
|
1895
|
+
*/
|
|
1896
|
+
media?: Array<Shared.TweetMedia>;
|
|
1897
|
+
|
|
1898
|
+
/**
|
|
1899
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
1900
|
+
*/
|
|
1901
|
+
noteTweet?: MonitorPost.NoteTweet;
|
|
1902
|
+
|
|
1903
|
+
/**
|
|
1904
|
+
* A parent, quoted or retweeted tweet. It has the TweetPublicData fields and an
|
|
1905
|
+
* author. Nesting stops after 4 levels.
|
|
1906
|
+
*/
|
|
1907
|
+
parentTweet?: Shared.EmbeddedTweet;
|
|
1908
|
+
|
|
1909
|
+
/**
|
|
1910
|
+
* Describes public place metadata on a geotagged tweet.
|
|
1911
|
+
*/
|
|
1912
|
+
place?: MonitorPost.Place;
|
|
1913
|
+
|
|
1914
|
+
possiblySensitive?: boolean;
|
|
1915
|
+
|
|
1916
|
+
/**
|
|
1917
|
+
* Public metadata whose fields are defined by X.
|
|
1918
|
+
*/
|
|
1919
|
+
postCta?: { [key: string]: unknown };
|
|
1920
|
+
|
|
1921
|
+
/**
|
|
1922
|
+
* Engagement counts retained from a prior tweet edit.
|
|
1923
|
+
*/
|
|
1924
|
+
previousCounts?: MonitorPost.PreviousCounts;
|
|
1925
|
+
|
|
1926
|
+
/**
|
|
1927
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
1928
|
+
*/
|
|
1929
|
+
quoted_tweet?: MonitorPost.QuotedTweet;
|
|
1930
|
+
|
|
1931
|
+
quotedTweetId?: string;
|
|
1932
|
+
|
|
1933
|
+
/**
|
|
1934
|
+
* The quoted post's link, kept when X withholds that post.
|
|
1935
|
+
*/
|
|
1936
|
+
quotedTweetPermalink?: MonitorPost.QuotedTweetPermalink;
|
|
1937
|
+
|
|
1938
|
+
/**
|
|
1939
|
+
* Why X shows no quoted post. Omitted when X names no reason, as its legacy
|
|
1940
|
+
* answers never do.
|
|
1941
|
+
*/
|
|
1942
|
+
quotedTweetUnavailable?: MonitorPost.QuotedTweetUnavailable;
|
|
1943
|
+
|
|
1944
|
+
reactionContext?: MonitorPost.ReactionContext;
|
|
1945
|
+
|
|
1946
|
+
/**
|
|
1947
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
1948
|
+
*/
|
|
1949
|
+
retweeted_tweet?: MonitorPost.RetweetedTweet;
|
|
1950
|
+
|
|
1951
|
+
/**
|
|
1952
|
+
* Repost event time in UTC. Null when unavailable; omitted for other posts.
|
|
1953
|
+
*/
|
|
1954
|
+
retweetedAt?: string | null;
|
|
1955
|
+
|
|
1956
|
+
/**
|
|
1957
|
+
* Public metadata whose fields are defined by X.
|
|
1958
|
+
*/
|
|
1959
|
+
scopes?: { [key: string]: unknown };
|
|
1960
|
+
|
|
1961
|
+
/**
|
|
1962
|
+
* The app the post was sent from, as X labels it. X sends it for some posts only.
|
|
1963
|
+
*/
|
|
1964
|
+
source?: string;
|
|
1965
|
+
|
|
1966
|
+
/**
|
|
1967
|
+
* Game metadata attached to this post.
|
|
1968
|
+
*/
|
|
1969
|
+
sportsContext?: MonitorPost.SportsContext;
|
|
1970
|
+
|
|
1971
|
+
/**
|
|
1972
|
+
* The Subscriber badge X shows on a reply. The reply's author subscribes to the
|
|
1973
|
+
* creator who started the conversation. Omitted on a post without the badge.
|
|
1974
|
+
*/
|
|
1975
|
+
subscriberBadge?: MonitorPost.SubscriberBadge;
|
|
1976
|
+
|
|
1977
|
+
/**
|
|
1978
|
+
* Where `text` matches the search, on each row a search read. Offsets count code
|
|
1979
|
+
* points of `text`, as `displayTextRange` does. Empty when X marks nothing in the
|
|
1980
|
+
* post. X marks matches only in a post's first 280 characters.
|
|
1981
|
+
*/
|
|
1982
|
+
textHighlights?: Array<MonitorPost.TextHighlight>;
|
|
1983
|
+
|
|
1984
|
+
/**
|
|
1985
|
+
* Public visibility notice attached to an available tweet.
|
|
1986
|
+
*/
|
|
1987
|
+
tombstone?: MonitorPost.Tombstone;
|
|
1988
|
+
|
|
1989
|
+
type?: string;
|
|
1990
|
+
|
|
1991
|
+
/**
|
|
1992
|
+
* The author's ID when X withholds the author's profile.
|
|
1993
|
+
*/
|
|
1994
|
+
unavailableAuthorId?: string;
|
|
1995
|
+
|
|
1996
|
+
/**
|
|
1997
|
+
* User IDs that left this conversation.
|
|
1998
|
+
*/
|
|
1999
|
+
unmentionedUserIds?: Array<string>;
|
|
2000
|
+
|
|
2001
|
+
url?: string;
|
|
2002
|
+
|
|
2003
|
+
viewState?: string;
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
export namespace MonitorPost {
|
|
2007
|
+
/**
|
|
2008
|
+
* Describes an X Article preview and its lifecycle metadata.
|
|
2009
|
+
*/
|
|
2010
|
+
export interface Article {
|
|
2011
|
+
id?: string;
|
|
2012
|
+
|
|
2013
|
+
/**
|
|
2014
|
+
* Public metadata whose fields are defined by X.
|
|
2015
|
+
*/
|
|
2016
|
+
coverMedia?: { [key: string]: unknown };
|
|
2017
|
+
|
|
2018
|
+
coverMediaUrl?: string;
|
|
2019
|
+
|
|
2020
|
+
/**
|
|
2021
|
+
* Public metadata whose fields are defined by X.
|
|
2022
|
+
*/
|
|
2023
|
+
lifecycleState?: { [key: string]: unknown };
|
|
2024
|
+
|
|
2025
|
+
/**
|
|
2026
|
+
* Public metadata whose fields are defined by X.
|
|
2027
|
+
*/
|
|
2028
|
+
metadata?: { [key: string]: unknown };
|
|
2029
|
+
|
|
2030
|
+
previewText?: string;
|
|
2031
|
+
|
|
2032
|
+
title?: string;
|
|
2033
|
+
}
|
|
2034
|
+
|
|
2035
|
+
/**
|
|
2036
|
+
* Public profile with retained legacy monitor fields.
|
|
2037
|
+
*/
|
|
2038
|
+
export interface Author extends Shared.UserProfile {
|
|
2039
|
+
/**
|
|
2040
|
+
* Original X flag. Read verified for the displayed badge.
|
|
2041
|
+
*
|
|
2042
|
+
* @deprecated
|
|
2043
|
+
*/
|
|
2044
|
+
rawVerified?: boolean;
|
|
2045
|
+
|
|
2046
|
+
/**
|
|
2047
|
+
* Legacy username alias. Read username instead.
|
|
2048
|
+
*
|
|
2049
|
+
* @deprecated
|
|
2050
|
+
*/
|
|
2051
|
+
userName?: string;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
/**
|
|
2055
|
+
* Why the tweet has no author. X serves a suspended or deleted account as an
|
|
2056
|
+
* unavailable user with a reason such as Suspended or NotFound. Omitted when the
|
|
2057
|
+
* author is available.
|
|
2058
|
+
*/
|
|
2059
|
+
export interface AuthorUnavailable {
|
|
2060
|
+
/**
|
|
2061
|
+
* X's reason code.
|
|
2062
|
+
*/
|
|
2063
|
+
reason: string;
|
|
2064
|
+
|
|
2065
|
+
/**
|
|
2066
|
+
* X's notice text for the reason.
|
|
2067
|
+
*/
|
|
2068
|
+
message?: string;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
export interface Card {
|
|
2072
|
+
id?: string;
|
|
2073
|
+
|
|
2074
|
+
/**
|
|
2075
|
+
* Public metadata whose fields are defined by X.
|
|
2076
|
+
*/
|
|
2077
|
+
bindingValues?: { [key: string]: unknown };
|
|
2078
|
+
|
|
2079
|
+
name?: string;
|
|
2080
|
+
|
|
2081
|
+
/**
|
|
2082
|
+
* Public metadata whose fields are defined by X.
|
|
2083
|
+
*/
|
|
2084
|
+
platform?: { [key: string]: unknown };
|
|
2085
|
+
|
|
2086
|
+
url?: string;
|
|
2087
|
+
|
|
2088
|
+
/**
|
|
2089
|
+
* Unresolved card user references.
|
|
2090
|
+
*/
|
|
2091
|
+
userReferenceErrors?: Array<Card.UserReferenceError>;
|
|
2092
|
+
|
|
2093
|
+
userReferences?: Array<Card.UserReference>;
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
export namespace Card {
|
|
2097
|
+
export interface UserReferenceError {
|
|
2098
|
+
message?: string;
|
|
2099
|
+
|
|
2100
|
+
reason?: string;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
/**
|
|
2104
|
+
* Public profile with retained legacy monitor fields.
|
|
2105
|
+
*/
|
|
2106
|
+
export interface UserReference extends Shared.UserProfile {
|
|
2107
|
+
/**
|
|
2108
|
+
* Original X flag. Read verified for the displayed badge.
|
|
2109
|
+
*
|
|
2110
|
+
* @deprecated
|
|
2111
|
+
*/
|
|
2112
|
+
rawVerified?: boolean;
|
|
2113
|
+
|
|
2114
|
+
/**
|
|
2115
|
+
* Legacy username alias. Read username instead.
|
|
2116
|
+
*
|
|
2117
|
+
* @deprecated
|
|
2118
|
+
*/
|
|
2119
|
+
userName?: string;
|
|
2120
|
+
}
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
export interface CashtagAttachment {
|
|
2124
|
+
/**
|
|
2125
|
+
* The cashtag with its `$`.
|
|
2126
|
+
*/
|
|
2127
|
+
cashtag: string;
|
|
2128
|
+
|
|
2129
|
+
/**
|
|
2130
|
+
* Span of each candle.
|
|
2131
|
+
*/
|
|
2132
|
+
candleSize?: string;
|
|
2133
|
+
|
|
2134
|
+
/**
|
|
2135
|
+
* Time of the chart's last price.
|
|
2136
|
+
*/
|
|
2137
|
+
endTime?: string;
|
|
2138
|
+
|
|
2139
|
+
/**
|
|
2140
|
+
* X's size for the chart.
|
|
2141
|
+
*/
|
|
2142
|
+
sizeVariant?: number;
|
|
2143
|
+
|
|
2144
|
+
/**
|
|
2145
|
+
* Time of the chart's first candle.
|
|
2146
|
+
*/
|
|
2147
|
+
startTime?: string;
|
|
2148
|
+
|
|
2149
|
+
/**
|
|
2150
|
+
* Span the chart covers.
|
|
2151
|
+
*/
|
|
2152
|
+
timeframe?: string;
|
|
2153
|
+
}
|
|
2154
|
+
|
|
2155
|
+
/**
|
|
2156
|
+
* Community Note presentation metadata returned by X.
|
|
2157
|
+
*/
|
|
2158
|
+
export interface CommunityNote {
|
|
2159
|
+
id?: string;
|
|
2160
|
+
|
|
2161
|
+
destinationUrl?: string;
|
|
2162
|
+
|
|
2163
|
+
footer?: string;
|
|
2164
|
+
|
|
2165
|
+
footerIconType?: string;
|
|
2166
|
+
|
|
2167
|
+
iconType?: string;
|
|
2168
|
+
|
|
2169
|
+
/**
|
|
2170
|
+
* Public metadata whose fields are defined by X.
|
|
2171
|
+
*/
|
|
2172
|
+
metadata?: { [key: string]: unknown };
|
|
2173
|
+
|
|
2174
|
+
shortTitle?: string;
|
|
2175
|
+
|
|
2176
|
+
subtitle?: string;
|
|
2177
|
+
|
|
2178
|
+
title?: string;
|
|
2179
|
+
|
|
2180
|
+
visualStyle?: string;
|
|
2181
|
+
}
|
|
2182
|
+
|
|
2183
|
+
/**
|
|
2184
|
+
* Reply policy & conversation owner.
|
|
2185
|
+
*/
|
|
2186
|
+
export interface ConversationControl {
|
|
2187
|
+
/**
|
|
2188
|
+
* Regions whose accounts may reply, as country codes. Sent with the
|
|
2189
|
+
* `country_of_origin` mode.
|
|
2190
|
+
*/
|
|
2191
|
+
allowedCountryCodes?: Array<string>;
|
|
2192
|
+
|
|
2193
|
+
inviteViaMention?: boolean;
|
|
2194
|
+
|
|
2195
|
+
/**
|
|
2196
|
+
* Reply policy from X's newer field, such as `my_network`, `premium` or
|
|
2197
|
+
* `country_of_origin`. Omitted when X sends none.
|
|
2198
|
+
*/
|
|
2199
|
+
mode?: string;
|
|
2200
|
+
|
|
2201
|
+
/**
|
|
2202
|
+
* The conversation owner's account ID.
|
|
2203
|
+
*/
|
|
2204
|
+
ownerId?: string;
|
|
2205
|
+
|
|
2206
|
+
ownerUsername?: string;
|
|
2207
|
+
|
|
2208
|
+
policy?: string;
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
/**
|
|
2212
|
+
* Author-published point, with longitude before latitude.
|
|
2213
|
+
*/
|
|
2214
|
+
export interface Coordinates {
|
|
2215
|
+
coordinates: Array<number>;
|
|
2216
|
+
|
|
2217
|
+
type: 'Point';
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
/**
|
|
2221
|
+
* Lists edit-chain identifiers and the remaining edit window.
|
|
2222
|
+
*/
|
|
2223
|
+
export interface Edit {
|
|
2224
|
+
editableUntilMsecs?: string;
|
|
2225
|
+
|
|
2226
|
+
editTweetIds?: Array<string>;
|
|
2227
|
+
|
|
2228
|
+
initialTweetId?: string;
|
|
2229
|
+
}
|
|
2230
|
+
|
|
2231
|
+
/**
|
|
2232
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
2233
|
+
*/
|
|
2234
|
+
export interface Entities {
|
|
2235
|
+
hashtags?: Array<Entities.Hashtag>;
|
|
2236
|
+
|
|
2237
|
+
smarttags?: Array<Entities.Smarttag>;
|
|
2238
|
+
|
|
2239
|
+
symbols?: Array<Entities.Symbol>;
|
|
2240
|
+
|
|
2241
|
+
timestamps?: Array<Entities.Timestamp>;
|
|
2242
|
+
|
|
2243
|
+
urls?: Array<Entities.URL>;
|
|
2244
|
+
|
|
2245
|
+
user_mentions?: Array<Entities.UserMention>;
|
|
2246
|
+
}
|
|
2247
|
+
|
|
2248
|
+
export namespace Entities {
|
|
2249
|
+
/**
|
|
2250
|
+
* Provides hashtag text and source offsets within a tweet.
|
|
2251
|
+
*/
|
|
2252
|
+
export interface Hashtag {
|
|
2253
|
+
text: string;
|
|
2254
|
+
|
|
2255
|
+
indices?: Array<number>;
|
|
2256
|
+
|
|
2257
|
+
/**
|
|
2258
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2259
|
+
* platforms, which differ by reader.
|
|
2260
|
+
*/
|
|
2261
|
+
tag?: Hashtag.Tag;
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
export namespace Hashtag {
|
|
2265
|
+
/**
|
|
2266
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2267
|
+
* platforms, which differ by reader.
|
|
2268
|
+
*/
|
|
2269
|
+
export interface Tag {
|
|
2270
|
+
/**
|
|
2271
|
+
* X's ID for the SmartTag.
|
|
2272
|
+
*/
|
|
2273
|
+
id?: string;
|
|
2274
|
+
|
|
2275
|
+
info?: Tag.Info;
|
|
2276
|
+
}
|
|
2277
|
+
|
|
2278
|
+
export namespace Tag {
|
|
2279
|
+
export interface Info {
|
|
2280
|
+
info?: Info.Info;
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
export namespace Info {
|
|
2284
|
+
export interface Info {
|
|
2285
|
+
/**
|
|
2286
|
+
* Whether X marks the SmartTag active.
|
|
2287
|
+
*/
|
|
2288
|
+
active?: boolean;
|
|
2289
|
+
|
|
2290
|
+
name?: string;
|
|
2291
|
+
|
|
2292
|
+
ticker?: string;
|
|
2293
|
+
}
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2296
|
+
}
|
|
2297
|
+
|
|
2298
|
+
/**
|
|
2299
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2300
|
+
*/
|
|
2301
|
+
export interface Smarttag {
|
|
2302
|
+
indices?: Array<number>;
|
|
2303
|
+
|
|
2304
|
+
seconds?: number;
|
|
2305
|
+
|
|
2306
|
+
/**
|
|
2307
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2308
|
+
* platforms, which differ by reader.
|
|
2309
|
+
*/
|
|
2310
|
+
tag?: Smarttag.Tag;
|
|
2311
|
+
|
|
2312
|
+
text?: string;
|
|
2313
|
+
}
|
|
2314
|
+
|
|
2315
|
+
export namespace Smarttag {
|
|
2316
|
+
/**
|
|
2317
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2318
|
+
* platforms, which differ by reader.
|
|
2319
|
+
*/
|
|
2320
|
+
export interface Tag {
|
|
2321
|
+
/**
|
|
2322
|
+
* X's ID for the SmartTag.
|
|
2323
|
+
*/
|
|
2324
|
+
id?: string;
|
|
2325
|
+
|
|
2326
|
+
info?: Tag.Info;
|
|
2327
|
+
}
|
|
2328
|
+
|
|
2329
|
+
export namespace Tag {
|
|
2330
|
+
export interface Info {
|
|
2331
|
+
info?: Info.Info;
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
export namespace Info {
|
|
2335
|
+
export interface Info {
|
|
2336
|
+
/**
|
|
2337
|
+
* Whether X marks the SmartTag active.
|
|
2338
|
+
*/
|
|
2339
|
+
active?: boolean;
|
|
2340
|
+
|
|
2341
|
+
name?: string;
|
|
2342
|
+
|
|
2343
|
+
ticker?: string;
|
|
2344
|
+
}
|
|
2345
|
+
}
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
|
|
2349
|
+
/**
|
|
2350
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2351
|
+
*/
|
|
2352
|
+
export interface Symbol {
|
|
2353
|
+
indices?: Array<number>;
|
|
2354
|
+
|
|
2355
|
+
seconds?: number;
|
|
2356
|
+
|
|
2357
|
+
/**
|
|
2358
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2359
|
+
* platforms, which differ by reader.
|
|
2360
|
+
*/
|
|
2361
|
+
tag?: Symbol.Tag;
|
|
2362
|
+
|
|
2363
|
+
text?: string;
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
export namespace Symbol {
|
|
2367
|
+
/**
|
|
2368
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2369
|
+
* platforms, which differ by reader.
|
|
2370
|
+
*/
|
|
2371
|
+
export interface Tag {
|
|
2372
|
+
/**
|
|
2373
|
+
* X's ID for the SmartTag.
|
|
2374
|
+
*/
|
|
2375
|
+
id?: string;
|
|
2376
|
+
|
|
2377
|
+
info?: Tag.Info;
|
|
2378
|
+
}
|
|
2379
|
+
|
|
2380
|
+
export namespace Tag {
|
|
2381
|
+
export interface Info {
|
|
2382
|
+
info?: Info.Info;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
export namespace Info {
|
|
2386
|
+
export interface Info {
|
|
2387
|
+
/**
|
|
2388
|
+
* Whether X marks the SmartTag active.
|
|
2389
|
+
*/
|
|
2390
|
+
active?: boolean;
|
|
2391
|
+
|
|
2392
|
+
name?: string;
|
|
2393
|
+
|
|
2394
|
+
ticker?: string;
|
|
2395
|
+
}
|
|
2396
|
+
}
|
|
2397
|
+
}
|
|
2398
|
+
}
|
|
2399
|
+
|
|
2400
|
+
/**
|
|
2401
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2402
|
+
*/
|
|
2403
|
+
export interface Timestamp {
|
|
2404
|
+
indices?: Array<number>;
|
|
2405
|
+
|
|
2406
|
+
seconds?: number;
|
|
2407
|
+
|
|
2408
|
+
/**
|
|
2409
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2410
|
+
* platforms, which differ by reader.
|
|
2411
|
+
*/
|
|
2412
|
+
tag?: Timestamp.Tag;
|
|
2413
|
+
|
|
2414
|
+
text?: string;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
export namespace Timestamp {
|
|
2418
|
+
/**
|
|
2419
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2420
|
+
* platforms, which differ by reader.
|
|
2421
|
+
*/
|
|
2422
|
+
export interface Tag {
|
|
2423
|
+
/**
|
|
2424
|
+
* X's ID for the SmartTag.
|
|
2425
|
+
*/
|
|
2426
|
+
id?: string;
|
|
2427
|
+
|
|
2428
|
+
info?: Tag.Info;
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
export namespace Tag {
|
|
2432
|
+
export interface Info {
|
|
2433
|
+
info?: Info.Info;
|
|
2434
|
+
}
|
|
2435
|
+
|
|
2436
|
+
export namespace Info {
|
|
2437
|
+
export interface Info {
|
|
2438
|
+
/**
|
|
2439
|
+
* Whether X marks the SmartTag active.
|
|
2440
|
+
*/
|
|
2441
|
+
active?: boolean;
|
|
2442
|
+
|
|
2443
|
+
name?: string;
|
|
2444
|
+
|
|
2445
|
+
ticker?: string;
|
|
2446
|
+
}
|
|
2447
|
+
}
|
|
2448
|
+
}
|
|
2449
|
+
}
|
|
2450
|
+
|
|
2451
|
+
/**
|
|
2452
|
+
* Provides shortened, display, and expanded URLs from tweet text.
|
|
2453
|
+
*/
|
|
2454
|
+
export interface URL {
|
|
2455
|
+
display_url?: string;
|
|
2456
|
+
|
|
2457
|
+
expanded_url?: string;
|
|
2458
|
+
|
|
2459
|
+
indices?: Array<number>;
|
|
2460
|
+
|
|
2461
|
+
url?: string;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
/**
|
|
2465
|
+
* Provides profile identity and source offsets for a mention.
|
|
2466
|
+
*/
|
|
2467
|
+
export interface UserMention {
|
|
2468
|
+
screen_name: string;
|
|
2469
|
+
|
|
2470
|
+
id_str?: string;
|
|
2471
|
+
|
|
2472
|
+
indices?: Array<number>;
|
|
2473
|
+
|
|
2474
|
+
name?: string;
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
/**
|
|
2479
|
+
* Marks a subscriber-only post with the creator whose subscription unlocks it.
|
|
2480
|
+
* Non-subscribers get the preview text & the subscribe link. Omitted on public
|
|
2481
|
+
* posts.
|
|
2482
|
+
*/
|
|
2483
|
+
export interface ExclusiveContent {
|
|
2484
|
+
/**
|
|
2485
|
+
* Username of the creator whose subscription unlocks the post.
|
|
2486
|
+
*/
|
|
2487
|
+
creatorUserName: string;
|
|
2488
|
+
|
|
2489
|
+
/**
|
|
2490
|
+
* Subscribe link X shows non-subscribers. Omitted when X serves the full post.
|
|
2491
|
+
*/
|
|
2492
|
+
subscribeUrl?: string;
|
|
2493
|
+
}
|
|
2494
|
+
|
|
2495
|
+
/**
|
|
2496
|
+
* Author-published point, with latitude before longitude.
|
|
2497
|
+
*/
|
|
2498
|
+
export interface Geo {
|
|
2499
|
+
coordinates: Array<number>;
|
|
2500
|
+
|
|
2501
|
+
type: 'Point';
|
|
2502
|
+
}
|
|
2503
|
+
|
|
2504
|
+
/**
|
|
2505
|
+
* The notice x.com covers the post with until the reader views it, such as X's
|
|
2506
|
+
* public interest notice on a post that broke its rules but stays up.
|
|
2507
|
+
*/
|
|
2508
|
+
export interface Interstitial {
|
|
2509
|
+
/**
|
|
2510
|
+
* How x.com shows the notice. `NonCompliant` marks a post that broke X's rules.
|
|
2511
|
+
*/
|
|
2512
|
+
displayType?: string;
|
|
2513
|
+
|
|
2514
|
+
text?: Interstitial.Text;
|
|
2515
|
+
}
|
|
2516
|
+
|
|
2517
|
+
export namespace Interstitial {
|
|
2518
|
+
export interface Text {
|
|
2519
|
+
/**
|
|
2520
|
+
* Links inside the notice, by character range.
|
|
2521
|
+
*/
|
|
2522
|
+
entities?: Array<Text.Entity>;
|
|
2523
|
+
|
|
2524
|
+
/**
|
|
2525
|
+
* Whether X writes it right to left.
|
|
2526
|
+
*/
|
|
2527
|
+
rtl?: boolean;
|
|
2528
|
+
|
|
2529
|
+
/**
|
|
2530
|
+
* The notice's text.
|
|
2531
|
+
*/
|
|
2532
|
+
text?: string;
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2535
|
+
export namespace Text {
|
|
2536
|
+
export interface Entity {
|
|
2537
|
+
/**
|
|
2538
|
+
* Whole number from 0.
|
|
2539
|
+
*/
|
|
2540
|
+
fromIndex?: number;
|
|
2541
|
+
|
|
2542
|
+
ref?: Entity.Ref;
|
|
2543
|
+
|
|
2544
|
+
/**
|
|
2545
|
+
* Whole number from 0.
|
|
2546
|
+
*/
|
|
2547
|
+
toIndex?: number;
|
|
2548
|
+
}
|
|
2549
|
+
|
|
2550
|
+
export namespace Entity {
|
|
2551
|
+
export interface Ref {
|
|
2552
|
+
type?: string;
|
|
2553
|
+
|
|
2554
|
+
url?: string;
|
|
2555
|
+
|
|
2556
|
+
urlType?: string;
|
|
2557
|
+
}
|
|
2558
|
+
}
|
|
2559
|
+
}
|
|
2560
|
+
}
|
|
2561
|
+
|
|
2562
|
+
export interface LimitedAction {
|
|
2563
|
+
action?: string;
|
|
2564
|
+
|
|
2565
|
+
prompt?: LimitedAction.Prompt;
|
|
2566
|
+
}
|
|
2567
|
+
|
|
2568
|
+
export namespace LimitedAction {
|
|
2569
|
+
export interface Prompt {
|
|
2570
|
+
ctaType?: string;
|
|
2571
|
+
|
|
2572
|
+
headline?: string;
|
|
2573
|
+
|
|
2574
|
+
/**
|
|
2575
|
+
* Public metadata whose fields are defined by X.
|
|
2576
|
+
*/
|
|
2577
|
+
metadata?: { [key: string]: unknown };
|
|
2578
|
+
|
|
2579
|
+
subtext?: string;
|
|
2580
|
+
}
|
|
2581
|
+
}
|
|
2582
|
+
|
|
2583
|
+
/**
|
|
2584
|
+
* Complete Note Tweet content and rich-text metadata.
|
|
2585
|
+
*/
|
|
2586
|
+
export interface NoteTweet {
|
|
2587
|
+
text: string;
|
|
2588
|
+
|
|
2589
|
+
/**
|
|
2590
|
+
* X's global ID of the Note, base64 of `NoteTweet:<noteId>`.
|
|
2591
|
+
*/
|
|
2592
|
+
id?: string;
|
|
2593
|
+
|
|
2594
|
+
/**
|
|
2595
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
2596
|
+
*/
|
|
2597
|
+
entities?: NoteTweet.Entities;
|
|
2598
|
+
|
|
2599
|
+
/**
|
|
2600
|
+
* Inline media positions in the Note Tweet text.
|
|
2601
|
+
*/
|
|
2602
|
+
inlineMedia?: Array<NoteTweet.InlineMedia>;
|
|
2603
|
+
|
|
2604
|
+
isExpandable?: boolean;
|
|
2605
|
+
|
|
2606
|
+
/**
|
|
2607
|
+
* The Note's own ID, apart from the post's.
|
|
2608
|
+
*/
|
|
2609
|
+
noteId?: string;
|
|
2610
|
+
|
|
2611
|
+
richtextTags?: Array<NoteTweet.RichtextTag>;
|
|
2612
|
+
}
|
|
2613
|
+
|
|
2614
|
+
export namespace NoteTweet {
|
|
2615
|
+
/**
|
|
2616
|
+
* Lists hashtags, symbols, links, and mentions from tweet text.
|
|
2617
|
+
*/
|
|
2618
|
+
export interface Entities {
|
|
2619
|
+
hashtags?: Array<Entities.Hashtag>;
|
|
2620
|
+
|
|
2621
|
+
smarttags?: Array<Entities.Smarttag>;
|
|
2622
|
+
|
|
2623
|
+
symbols?: Array<Entities.Symbol>;
|
|
2624
|
+
|
|
2625
|
+
timestamps?: Array<Entities.Timestamp>;
|
|
2626
|
+
|
|
2627
|
+
urls?: Array<Entities.URL>;
|
|
2628
|
+
|
|
2629
|
+
user_mentions?: Array<Entities.UserMention>;
|
|
2630
|
+
}
|
|
2631
|
+
|
|
2632
|
+
export namespace Entities {
|
|
2633
|
+
/**
|
|
2634
|
+
* Provides hashtag text and source offsets within a tweet.
|
|
2635
|
+
*/
|
|
2636
|
+
export interface Hashtag {
|
|
2637
|
+
text: string;
|
|
2638
|
+
|
|
2639
|
+
indices?: Array<number>;
|
|
2640
|
+
|
|
2641
|
+
/**
|
|
2642
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2643
|
+
* platforms, which differ by reader.
|
|
2644
|
+
*/
|
|
2645
|
+
tag?: Hashtag.Tag;
|
|
2646
|
+
}
|
|
2647
|
+
|
|
2648
|
+
export namespace Hashtag {
|
|
2649
|
+
/**
|
|
2650
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2651
|
+
* platforms, which differ by reader.
|
|
2652
|
+
*/
|
|
2653
|
+
export interface Tag {
|
|
2654
|
+
/**
|
|
2655
|
+
* X's ID for the SmartTag.
|
|
2656
|
+
*/
|
|
2657
|
+
id?: string;
|
|
2658
|
+
|
|
2659
|
+
info?: Tag.Info;
|
|
2660
|
+
}
|
|
2661
|
+
|
|
2662
|
+
export namespace Tag {
|
|
2663
|
+
export interface Info {
|
|
2664
|
+
info?: Info.Info;
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2667
|
+
export namespace Info {
|
|
2668
|
+
export interface Info {
|
|
2669
|
+
/**
|
|
2670
|
+
* Whether X marks the SmartTag active.
|
|
2671
|
+
*/
|
|
2672
|
+
active?: boolean;
|
|
2673
|
+
|
|
2674
|
+
name?: string;
|
|
2675
|
+
|
|
2676
|
+
ticker?: string;
|
|
2677
|
+
}
|
|
2678
|
+
}
|
|
2679
|
+
}
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2682
|
+
/**
|
|
2683
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2684
|
+
*/
|
|
2685
|
+
export interface Smarttag {
|
|
2686
|
+
indices?: Array<number>;
|
|
2687
|
+
|
|
2688
|
+
seconds?: number;
|
|
2689
|
+
|
|
2690
|
+
/**
|
|
2691
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2692
|
+
* platforms, which differ by reader.
|
|
2693
|
+
*/
|
|
2694
|
+
tag?: Smarttag.Tag;
|
|
2695
|
+
|
|
2696
|
+
text?: string;
|
|
2697
|
+
}
|
|
2698
|
+
|
|
2699
|
+
export namespace Smarttag {
|
|
2700
|
+
/**
|
|
2701
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2702
|
+
* platforms, which differ by reader.
|
|
2703
|
+
*/
|
|
2704
|
+
export interface Tag {
|
|
2705
|
+
/**
|
|
2706
|
+
* X's ID for the SmartTag.
|
|
2707
|
+
*/
|
|
2708
|
+
id?: string;
|
|
2709
|
+
|
|
2710
|
+
info?: Tag.Info;
|
|
2711
|
+
}
|
|
2712
|
+
|
|
2713
|
+
export namespace Tag {
|
|
2714
|
+
export interface Info {
|
|
2715
|
+
info?: Info.Info;
|
|
2716
|
+
}
|
|
2717
|
+
|
|
2718
|
+
export namespace Info {
|
|
2719
|
+
export interface Info {
|
|
2720
|
+
/**
|
|
2721
|
+
* Whether X marks the SmartTag active.
|
|
2722
|
+
*/
|
|
2723
|
+
active?: boolean;
|
|
2724
|
+
|
|
2725
|
+
name?: string;
|
|
2726
|
+
|
|
2727
|
+
ticker?: string;
|
|
2728
|
+
}
|
|
2729
|
+
}
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
|
|
2733
|
+
/**
|
|
2734
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2735
|
+
*/
|
|
2736
|
+
export interface Symbol {
|
|
2737
|
+
indices?: Array<number>;
|
|
2738
|
+
|
|
2739
|
+
seconds?: number;
|
|
2740
|
+
|
|
2741
|
+
/**
|
|
2742
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2743
|
+
* platforms, which differ by reader.
|
|
2744
|
+
*/
|
|
2745
|
+
tag?: Symbol.Tag;
|
|
2746
|
+
|
|
2747
|
+
text?: string;
|
|
2748
|
+
}
|
|
2749
|
+
|
|
2750
|
+
export namespace Symbol {
|
|
2751
|
+
/**
|
|
2752
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2753
|
+
* platforms, which differ by reader.
|
|
2754
|
+
*/
|
|
2755
|
+
export interface Tag {
|
|
2756
|
+
/**
|
|
2757
|
+
* X's ID for the SmartTag.
|
|
2758
|
+
*/
|
|
2759
|
+
id?: string;
|
|
2760
|
+
|
|
2761
|
+
info?: Tag.Info;
|
|
2762
|
+
}
|
|
2763
|
+
|
|
2764
|
+
export namespace Tag {
|
|
2765
|
+
export interface Info {
|
|
2766
|
+
info?: Info.Info;
|
|
2767
|
+
}
|
|
2768
|
+
|
|
2769
|
+
export namespace Info {
|
|
2770
|
+
export interface Info {
|
|
2771
|
+
/**
|
|
2772
|
+
* Whether X marks the SmartTag active.
|
|
2773
|
+
*/
|
|
2774
|
+
active?: boolean;
|
|
2775
|
+
|
|
2776
|
+
name?: string;
|
|
2777
|
+
|
|
2778
|
+
ticker?: string;
|
|
2779
|
+
}
|
|
2780
|
+
}
|
|
2781
|
+
}
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2784
|
+
/**
|
|
2785
|
+
* Indexed smart-tag, cashtag, or video timestamp metadata.
|
|
2786
|
+
*/
|
|
2787
|
+
export interface Timestamp {
|
|
2788
|
+
indices?: Array<number>;
|
|
2789
|
+
|
|
2790
|
+
seconds?: number;
|
|
2791
|
+
|
|
2792
|
+
/**
|
|
2793
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2794
|
+
* platforms, which differ by reader.
|
|
2795
|
+
*/
|
|
2796
|
+
tag?: Timestamp.Tag;
|
|
2797
|
+
|
|
2798
|
+
text?: string;
|
|
2799
|
+
}
|
|
2800
|
+
|
|
2801
|
+
export namespace Timestamp {
|
|
2802
|
+
/**
|
|
2803
|
+
* X's SmartTag for a cashtag, smarttag or hashtag. Xquik leaves out X's trading
|
|
2804
|
+
* platforms, which differ by reader.
|
|
2805
|
+
*/
|
|
2806
|
+
export interface Tag {
|
|
2807
|
+
/**
|
|
2808
|
+
* X's ID for the SmartTag.
|
|
2809
|
+
*/
|
|
2810
|
+
id?: string;
|
|
2811
|
+
|
|
2812
|
+
info?: Tag.Info;
|
|
2813
|
+
}
|
|
2814
|
+
|
|
2815
|
+
export namespace Tag {
|
|
2816
|
+
export interface Info {
|
|
2817
|
+
info?: Info.Info;
|
|
2818
|
+
}
|
|
2819
|
+
|
|
2820
|
+
export namespace Info {
|
|
2821
|
+
export interface Info {
|
|
2822
|
+
/**
|
|
2823
|
+
* Whether X marks the SmartTag active.
|
|
2824
|
+
*/
|
|
2825
|
+
active?: boolean;
|
|
2826
|
+
|
|
2827
|
+
name?: string;
|
|
2828
|
+
|
|
2829
|
+
ticker?: string;
|
|
2830
|
+
}
|
|
2831
|
+
}
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2835
|
+
/**
|
|
2836
|
+
* Provides shortened, display, and expanded URLs from tweet text.
|
|
2837
|
+
*/
|
|
2838
|
+
export interface URL {
|
|
2839
|
+
display_url?: string;
|
|
2840
|
+
|
|
2841
|
+
expanded_url?: string;
|
|
2842
|
+
|
|
2843
|
+
indices?: Array<number>;
|
|
2844
|
+
|
|
2845
|
+
url?: string;
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
/**
|
|
2849
|
+
* Provides profile identity and source offsets for a mention.
|
|
2850
|
+
*/
|
|
2851
|
+
export interface UserMention {
|
|
2852
|
+
screen_name: string;
|
|
2853
|
+
|
|
2854
|
+
id_str?: string;
|
|
2855
|
+
|
|
2856
|
+
indices?: Array<number>;
|
|
2857
|
+
|
|
2858
|
+
name?: string;
|
|
2859
|
+
}
|
|
2860
|
+
}
|
|
2861
|
+
|
|
2862
|
+
export interface InlineMedia {
|
|
2863
|
+
/**
|
|
2864
|
+
* Whole number from 0.
|
|
2865
|
+
*/
|
|
2866
|
+
index: number;
|
|
2867
|
+
|
|
2868
|
+
mediaId: string;
|
|
2869
|
+
}
|
|
2870
|
+
|
|
2871
|
+
export interface RichtextTag {
|
|
2872
|
+
/**
|
|
2873
|
+
* Whole number from 0.
|
|
2874
|
+
*/
|
|
2875
|
+
fromIndex: number;
|
|
2876
|
+
|
|
2877
|
+
/**
|
|
2878
|
+
* Whole number from 0.
|
|
2879
|
+
*/
|
|
2880
|
+
toIndex: number;
|
|
2881
|
+
|
|
2882
|
+
types: Array<string>;
|
|
2883
|
+
}
|
|
2884
|
+
}
|
|
2885
|
+
|
|
2886
|
+
/**
|
|
2887
|
+
* Describes public place metadata on a geotagged tweet.
|
|
2888
|
+
*/
|
|
2889
|
+
export interface Place {
|
|
2890
|
+
id?: string;
|
|
2891
|
+
|
|
2892
|
+
/**
|
|
2893
|
+
* Public metadata whose fields are defined by X.
|
|
2894
|
+
*/
|
|
2895
|
+
boundingBox?: { [key: string]: unknown };
|
|
2896
|
+
|
|
2897
|
+
country?: string;
|
|
2898
|
+
|
|
2899
|
+
countryCode?: string;
|
|
2900
|
+
|
|
2901
|
+
fullName?: string;
|
|
2902
|
+
|
|
2903
|
+
name?: string;
|
|
2904
|
+
|
|
2905
|
+
placeType?: string;
|
|
2906
|
+
|
|
2907
|
+
url?: string;
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
/**
|
|
2911
|
+
* Engagement counts retained from a prior tweet edit.
|
|
2912
|
+
*/
|
|
2913
|
+
export interface PreviousCounts {
|
|
2914
|
+
/**
|
|
2915
|
+
* Whole number from 0.
|
|
2916
|
+
*/
|
|
2917
|
+
bookmarkCount?: number;
|
|
2918
|
+
|
|
2919
|
+
/**
|
|
2920
|
+
* Whole number from 0.
|
|
2921
|
+
*/
|
|
2922
|
+
likeCount?: number;
|
|
2923
|
+
|
|
2924
|
+
/**
|
|
2925
|
+
* Whole number from 0.
|
|
2926
|
+
*/
|
|
2927
|
+
quoteCount?: number;
|
|
2928
|
+
|
|
2929
|
+
/**
|
|
2930
|
+
* Whole number from 0.
|
|
2931
|
+
*/
|
|
2932
|
+
replyCount?: number;
|
|
2933
|
+
|
|
2934
|
+
/**
|
|
2935
|
+
* Whole number from 0.
|
|
2936
|
+
*/
|
|
2937
|
+
retweetCount?: number;
|
|
2938
|
+
}
|
|
2939
|
+
|
|
2940
|
+
/**
|
|
2941
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
2942
|
+
*/
|
|
2943
|
+
export interface QuotedTweet extends Omit<Shared.EmbeddedTweet, 'author'> {
|
|
2944
|
+
/**
|
|
2945
|
+
* Public profile with retained legacy monitor fields.
|
|
2946
|
+
*/
|
|
2947
|
+
author?: QuotedTweet.Author;
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
export namespace QuotedTweet {
|
|
2951
|
+
/**
|
|
2952
|
+
* Public profile with retained legacy monitor fields.
|
|
2953
|
+
*/
|
|
2954
|
+
export interface Author extends Shared.UserProfile {
|
|
2955
|
+
/**
|
|
2956
|
+
* Original X flag. Read verified for the displayed badge.
|
|
2957
|
+
*
|
|
2958
|
+
* @deprecated
|
|
2959
|
+
*/
|
|
2960
|
+
rawVerified?: boolean;
|
|
2961
|
+
|
|
2962
|
+
/**
|
|
2963
|
+
* Legacy username alias. Read username instead.
|
|
2964
|
+
*
|
|
2965
|
+
* @deprecated
|
|
2966
|
+
*/
|
|
2967
|
+
userName?: string;
|
|
2968
|
+
}
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
/**
|
|
2972
|
+
* The quoted post's link, kept when X withholds that post.
|
|
2973
|
+
*/
|
|
2974
|
+
export interface QuotedTweetPermalink {
|
|
2975
|
+
displayUrl?: string;
|
|
2976
|
+
|
|
2977
|
+
expandedUrl?: string;
|
|
2978
|
+
|
|
2979
|
+
url?: string;
|
|
2980
|
+
}
|
|
2981
|
+
|
|
2982
|
+
/**
|
|
2983
|
+
* Why X shows no quoted post. Omitted when X names no reason, as its legacy
|
|
2984
|
+
* answers never do.
|
|
2985
|
+
*/
|
|
2986
|
+
export interface QuotedTweetUnavailable {
|
|
2987
|
+
/**
|
|
2988
|
+
* X's reason, such as `Suspended` for a suspended author or `Protected` for an
|
|
2989
|
+
* author who protects their posts.
|
|
2990
|
+
*/
|
|
2991
|
+
reason: string;
|
|
2992
|
+
}
|
|
2993
|
+
|
|
2994
|
+
export interface ReactionContext {
|
|
2995
|
+
reactedToPostId?: string;
|
|
2996
|
+
|
|
2997
|
+
/**
|
|
2998
|
+
* Public profile with retained legacy monitor fields.
|
|
2999
|
+
*/
|
|
3000
|
+
reactedToUser?: ReactionContext.ReactedToUser;
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
export namespace ReactionContext {
|
|
3004
|
+
/**
|
|
3005
|
+
* Public profile with retained legacy monitor fields.
|
|
3006
|
+
*/
|
|
3007
|
+
export interface ReactedToUser extends Shared.UserProfile {
|
|
3008
|
+
/**
|
|
3009
|
+
* Original X flag. Read verified for the displayed badge.
|
|
3010
|
+
*
|
|
3011
|
+
* @deprecated
|
|
3012
|
+
*/
|
|
3013
|
+
rawVerified?: boolean;
|
|
3014
|
+
|
|
3015
|
+
/**
|
|
3016
|
+
* Legacy username alias. Read username instead.
|
|
3017
|
+
*
|
|
3018
|
+
* @deprecated
|
|
3019
|
+
*/
|
|
3020
|
+
userName?: string;
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
3023
|
+
|
|
3024
|
+
/**
|
|
3025
|
+
* Embedded post with public fields and legacy profile aliases.
|
|
3026
|
+
*/
|
|
3027
|
+
export interface RetweetedTweet extends Omit<Shared.EmbeddedTweet, 'author'> {
|
|
3028
|
+
/**
|
|
3029
|
+
* Public profile with retained legacy monitor fields.
|
|
3030
|
+
*/
|
|
3031
|
+
author?: RetweetedTweet.Author;
|
|
3032
|
+
}
|
|
3033
|
+
|
|
3034
|
+
export namespace RetweetedTweet {
|
|
3035
|
+
/**
|
|
3036
|
+
* Public profile with retained legacy monitor fields.
|
|
3037
|
+
*/
|
|
3038
|
+
export interface Author extends Shared.UserProfile {
|
|
3039
|
+
/**
|
|
3040
|
+
* Original X flag. Read verified for the displayed badge.
|
|
3041
|
+
*
|
|
3042
|
+
* @deprecated
|
|
3043
|
+
*/
|
|
3044
|
+
rawVerified?: boolean;
|
|
3045
|
+
|
|
3046
|
+
/**
|
|
3047
|
+
* Legacy username alias. Read username instead.
|
|
3048
|
+
*
|
|
3049
|
+
* @deprecated
|
|
3050
|
+
*/
|
|
3051
|
+
userName?: string;
|
|
3052
|
+
}
|
|
3053
|
+
}
|
|
3054
|
+
|
|
3055
|
+
/**
|
|
3056
|
+
* Game metadata attached to this post.
|
|
3057
|
+
*/
|
|
3058
|
+
export interface SportsContext {
|
|
3059
|
+
/**
|
|
3060
|
+
* Teams & reported scores.
|
|
3061
|
+
*/
|
|
3062
|
+
competitors?: Array<SportsContext.Competitor>;
|
|
3063
|
+
|
|
3064
|
+
/**
|
|
3065
|
+
* Game ID.
|
|
3066
|
+
*/
|
|
3067
|
+
gameId?: string;
|
|
3068
|
+
|
|
3069
|
+
/**
|
|
3070
|
+
* League ID.
|
|
3071
|
+
*/
|
|
3072
|
+
league?: string;
|
|
3073
|
+
|
|
3074
|
+
/**
|
|
3075
|
+
* Scheduled Unix milliseconds, retaining the source type.
|
|
3076
|
+
*/
|
|
3077
|
+
scheduledAtMs?: number | string;
|
|
3078
|
+
|
|
3079
|
+
/**
|
|
3080
|
+
* Reported game state.
|
|
3081
|
+
*/
|
|
3082
|
+
state?: string;
|
|
3083
|
+
|
|
3084
|
+
/**
|
|
3085
|
+
* Game progress text.
|
|
3086
|
+
*/
|
|
3087
|
+
statusText?: string;
|
|
3088
|
+
|
|
3089
|
+
/**
|
|
3090
|
+
* Game title.
|
|
3091
|
+
*/
|
|
3092
|
+
title?: string;
|
|
3093
|
+
|
|
3094
|
+
/**
|
|
3095
|
+
* Game link.
|
|
3096
|
+
*/
|
|
3097
|
+
url?: string;
|
|
3098
|
+
}
|
|
3099
|
+
|
|
3100
|
+
export namespace SportsContext {
|
|
3101
|
+
export interface Competitor {
|
|
3102
|
+
/**
|
|
3103
|
+
* Team abbreviation.
|
|
3104
|
+
*/
|
|
3105
|
+
abbreviation?: string;
|
|
3106
|
+
|
|
3107
|
+
/**
|
|
3108
|
+
* Team display color.
|
|
3109
|
+
*/
|
|
3110
|
+
color?: string;
|
|
3111
|
+
|
|
3112
|
+
/**
|
|
3113
|
+
* Logo for dark backgrounds.
|
|
3114
|
+
*/
|
|
3115
|
+
darkLogoUrl?: string;
|
|
3116
|
+
|
|
3117
|
+
/**
|
|
3118
|
+
* Active competitor.
|
|
3119
|
+
*/
|
|
3120
|
+
isActive?: boolean;
|
|
3121
|
+
|
|
3122
|
+
/**
|
|
3123
|
+
* Winning competitor.
|
|
3124
|
+
*/
|
|
3125
|
+
isWinner?: boolean;
|
|
3126
|
+
|
|
3127
|
+
/**
|
|
3128
|
+
* Logo for light backgrounds.
|
|
3129
|
+
*/
|
|
3130
|
+
logoUrl?: string;
|
|
3131
|
+
|
|
3132
|
+
/**
|
|
3133
|
+
* Team name.
|
|
3134
|
+
*/
|
|
3135
|
+
name?: string;
|
|
3136
|
+
|
|
3137
|
+
/**
|
|
3138
|
+
* Score display text.
|
|
3139
|
+
*/
|
|
3140
|
+
score?: string;
|
|
3141
|
+
|
|
3142
|
+
/**
|
|
3143
|
+
* Team ID.
|
|
3144
|
+
*/
|
|
3145
|
+
teamId?: string;
|
|
3146
|
+
}
|
|
3147
|
+
}
|
|
3148
|
+
|
|
3149
|
+
/**
|
|
3150
|
+
* The Subscriber badge X shows on a reply. The reply's author subscribes to the
|
|
3151
|
+
* creator who started the conversation. Omitted on a post without the badge.
|
|
3152
|
+
*/
|
|
3153
|
+
export interface SubscriberBadge {
|
|
3154
|
+
/**
|
|
3155
|
+
* Account ID of the creator the author subscribes to.
|
|
3156
|
+
*/
|
|
3157
|
+
creatorId: string;
|
|
3158
|
+
}
|
|
3159
|
+
|
|
3160
|
+
export interface TextHighlight {
|
|
3161
|
+
/**
|
|
3162
|
+
* The first code point after the match.
|
|
3163
|
+
*/
|
|
3164
|
+
endIndex: number;
|
|
3165
|
+
|
|
3166
|
+
/**
|
|
3167
|
+
* The first code point of the match.
|
|
3168
|
+
*/
|
|
3169
|
+
startIndex: number;
|
|
3170
|
+
}
|
|
3171
|
+
|
|
3172
|
+
/**
|
|
3173
|
+
* Public visibility notice attached to an available tweet.
|
|
3174
|
+
*/
|
|
3175
|
+
export interface Tombstone {
|
|
3176
|
+
text?: Tombstone.Text;
|
|
3177
|
+
|
|
3178
|
+
/**
|
|
3179
|
+
* Visibility notice type.
|
|
3180
|
+
*/
|
|
3181
|
+
type?: string;
|
|
3182
|
+
}
|
|
3183
|
+
|
|
3184
|
+
export namespace Tombstone {
|
|
3185
|
+
export interface Text {
|
|
3186
|
+
entities?: Array<Text.Entity>;
|
|
3187
|
+
|
|
3188
|
+
/**
|
|
3189
|
+
* Right-to-left text direction.
|
|
3190
|
+
*/
|
|
3191
|
+
rtl?: boolean;
|
|
3192
|
+
|
|
3193
|
+
/**
|
|
3194
|
+
* Human-readable notice text.
|
|
3195
|
+
*/
|
|
3196
|
+
text?: string;
|
|
3197
|
+
}
|
|
3198
|
+
|
|
3199
|
+
export namespace Text {
|
|
3200
|
+
export interface Entity {
|
|
3201
|
+
/**
|
|
3202
|
+
* Whole number from 0.
|
|
3203
|
+
*/
|
|
3204
|
+
fromIndex?: number;
|
|
3205
|
+
|
|
3206
|
+
ref?: Entity.Ref;
|
|
3207
|
+
|
|
3208
|
+
/**
|
|
3209
|
+
* Whole number from 0.
|
|
3210
|
+
*/
|
|
3211
|
+
toIndex?: number;
|
|
3212
|
+
}
|
|
3213
|
+
|
|
3214
|
+
export namespace Entity {
|
|
3215
|
+
export interface Ref {
|
|
3216
|
+
type?: string;
|
|
3217
|
+
|
|
3218
|
+
url?: string;
|
|
3219
|
+
|
|
3220
|
+
urlType?: string;
|
|
3221
|
+
}
|
|
3222
|
+
}
|
|
3223
|
+
}
|
|
3224
|
+
}
|
|
3225
|
+
}
|
|
3226
|
+
|
|
3227
|
+
/**
|
|
3228
|
+
* Changed profile field with its previous and current values.
|
|
3229
|
+
*/
|
|
3230
|
+
export interface MonitorProfileChange {
|
|
3231
|
+
field: string;
|
|
3232
|
+
|
|
3233
|
+
/**
|
|
3234
|
+
* Permanent X user ID.
|
|
3235
|
+
*/
|
|
3236
|
+
userId: string;
|
|
3237
|
+
|
|
3238
|
+
/**
|
|
3239
|
+
* Username observed for this change.
|
|
3240
|
+
*/
|
|
3241
|
+
username: string;
|
|
3242
|
+
|
|
3243
|
+
/**
|
|
3244
|
+
* Profile text, flag, or pinned post IDs. Missing values are omitted.
|
|
3245
|
+
*/
|
|
3246
|
+
current?: string | boolean | Array<string>;
|
|
3247
|
+
|
|
3248
|
+
/**
|
|
3249
|
+
* Profile text, flag, or pinned post IDs. Missing values are omitted.
|
|
3250
|
+
*/
|
|
3251
|
+
previous?: string | boolean | Array<string>;
|
|
3252
|
+
}
|
|
3253
|
+
|
|
3254
|
+
/**
|
|
3255
|
+
* Older stored posts remain readable. Fields can be missing or null.
|
|
3256
|
+
*/
|
|
3257
|
+
export interface MonitorLegacyPost {
|
|
3258
|
+
id?: string;
|
|
3259
|
+
|
|
3260
|
+
author?: { [key: string]: unknown } | null;
|
|
3261
|
+
|
|
3262
|
+
quoted_tweet?: { [key: string]: unknown } | null;
|
|
3263
|
+
|
|
3264
|
+
retweeted_tweet?: { [key: string]: unknown } | null;
|
|
3265
|
+
|
|
3266
|
+
text?: string;
|
|
3267
|
+
|
|
3268
|
+
[k: string]: unknown;
|
|
3269
|
+
}
|
|
3270
|
+
}
|
|
3271
|
+
|
|
3272
|
+
export interface EventListResponse {
|
|
3273
|
+
events: Array<Event>;
|
|
3274
|
+
|
|
3275
|
+
hasMore: boolean;
|
|
3276
|
+
|
|
3277
|
+
nextCursor?: string;
|
|
3278
|
+
}
|
|
3279
|
+
|
|
3280
|
+
export interface EventListParams {
|
|
3281
|
+
/**
|
|
3282
|
+
* Previous nextCursor. The after alias also works. Offset pagination is not
|
|
3283
|
+
* supported.
|
|
3284
|
+
*/
|
|
3285
|
+
cursor?: string;
|
|
3286
|
+
|
|
3287
|
+
/**
|
|
3288
|
+
* Filter events by type
|
|
3289
|
+
*/
|
|
3290
|
+
eventType?: Shared.EventType;
|
|
3291
|
+
|
|
3292
|
+
/**
|
|
3293
|
+
* Keyword monitor ID. The keyword_monitor_id alias also works.
|
|
3294
|
+
*/
|
|
3295
|
+
keywordMonitorId?: string;
|
|
3296
|
+
|
|
3297
|
+
/**
|
|
3298
|
+
* Maximum items per page: 1 to 100, default 50. Credits can reduce paid results.
|
|
3299
|
+
* With none affordable, it returns 402 insufficient_credits.
|
|
3300
|
+
*/
|
|
3301
|
+
limit?: number;
|
|
3302
|
+
|
|
3303
|
+
/**
|
|
3304
|
+
* Account monitor ID. The monitor_id alias also works.
|
|
3305
|
+
*/
|
|
3306
|
+
monitorId?: string;
|
|
3307
|
+
}
|
|
3308
|
+
|
|
3309
|
+
export interface EventStreamParams {
|
|
3310
|
+
/**
|
|
3311
|
+
* The last event ID the client got. The stream first sends every event after it.
|
|
3312
|
+
*/
|
|
3313
|
+
'Last-Event-ID'?: string;
|
|
158
3314
|
}
|
|
159
3315
|
|
|
160
3316
|
export declare namespace Events {
|
|
@@ -163,5 +3319,6 @@ export declare namespace Events {
|
|
|
163
3319
|
type EventDetail as EventDetail,
|
|
164
3320
|
type EventListResponse as EventListResponse,
|
|
165
3321
|
type EventListParams as EventListParams,
|
|
3322
|
+
type EventStreamParams as EventStreamParams,
|
|
166
3323
|
};
|
|
167
3324
|
}
|