scrapebadger 0.8.1 → 0.10.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.
Files changed (3) hide show
  1. package/dist/index.d.cts +326 -221
  2. package/dist/index.d.ts +326 -221
  3. package/package.json +1 -1
package/dist/index.d.cts CHANGED
@@ -1984,45 +1984,32 @@ declare class GoogleClient {
1984
1984
  * TypeScript types for Reddit API responses.
1985
1985
  *
1986
1986
  * This module contains all the data types used by the Reddit API client.
1987
+ *
1988
+ * Fields mirror what Reddit's authenticated `.json` API returns for each entity.
1989
+ * Per-viewer-session fields (tied to the scraping account) and moderator-only
1990
+ * fields are deliberately omitted, as are flair richtext arrays (in favour of
1991
+ * the resolved scalar flair fields).
1987
1992
  */
1988
1993
  /**
1989
- * A preview image with dimensions.
1990
- */
1991
- interface RedditPreviewImage {
1992
- /** Image URL */
1993
- url: string;
1994
- /** Image width in pixels */
1995
- width: number;
1996
- /** Image height in pixels */
1997
- height: number;
1998
- }
1999
- /**
2000
- * Embedded media attached to a post.
2001
- */
2002
- interface RedditMedia {
2003
- /** Media type identifier */
2004
- type: string | null;
2005
- /** Direct media URL */
2006
- url: string | null;
2007
- /** Thumbnail URL */
2008
- thumbnail_url: string | null;
2009
- /** Media width in pixels */
2010
- width: number | null;
2011
- /** Media height in pixels */
2012
- height: number | null;
2013
- }
2014
- /**
2015
- * An award given to a post or comment.
1994
+ * An award attached to a post/comment (element of `all_awardings`).
2016
1995
  */
2017
1996
  interface RedditAward {
2018
- /** Award ID */
1997
+ /** Award identifier */
2019
1998
  id: string | null;
2020
1999
  /** Award name */
2021
2000
  name: string;
2022
- /** Number of this award given */
2001
+ /** Number of times this award was given */
2023
2002
  count: number;
2003
+ /** Coin price of the award */
2004
+ coin_price: number;
2005
+ /** Coin reward granted by the award */
2006
+ coin_reward: number;
2007
+ /** Award description */
2008
+ description: string | null;
2024
2009
  /** Award icon URL */
2025
2010
  icon_url: string | null;
2011
+ /** Award type */
2012
+ award_type: string | null;
2026
2013
  }
2027
2014
  /**
2028
2015
  * A Reddit post (link or self post).
@@ -2034,6 +2021,10 @@ interface RedditPost {
2034
2021
  fullname: string;
2035
2022
  /** Post title */
2036
2023
  title: string;
2024
+ /** Author username */
2025
+ author: string;
2026
+ /** Author fullname (t2_ prefixed) */
2027
+ author_fullname: string | null;
2037
2028
  /** Self post text body */
2038
2029
  selftext: string;
2039
2030
  /** Self post text as HTML */
@@ -2044,16 +2035,6 @@ interface RedditPost {
2044
2035
  permalink: string;
2045
2036
  /** Post domain */
2046
2037
  domain: string;
2047
- /** Author username */
2048
- author: string;
2049
- /** Author fullname (t2_ prefixed) */
2050
- author_fullname: string | null;
2051
- /** Author flair text */
2052
- author_flair_text: string | null;
2053
- /** Author flair type (text or richtext) */
2054
- author_flair_type: string | null;
2055
- /** Author flair template ID */
2056
- author_flair_template_id: string | null;
2057
2038
  /** Subreddit name (without r/ prefix) */
2058
2039
  subreddit: string;
2059
2040
  /** Subreddit fullname (t5_ prefixed) */
@@ -2062,104 +2043,128 @@ interface RedditPost {
2062
2043
  subreddit_name_prefixed: string | null;
2063
2044
  /** Subreddit type (public, private, restricted, etc.) */
2064
2045
  subreddit_type: string | null;
2065
- /** Number of subscribers in the subreddit */
2066
- subreddit_subscribers: number | null;
2046
+ /** Subreddit subscriber count */
2047
+ subreddit_subscribers: number;
2067
2048
  /** Post score (upvotes minus downvotes) */
2068
2049
  score: number;
2069
- /** Raw upvotes */
2050
+ /** Number of upvotes */
2070
2051
  ups: number;
2071
- /** Raw downvotes */
2052
+ /** Number of downvotes */
2072
2053
  downs: number;
2073
- /** Upvote ratio as a decimal (e.g. 0.95) */
2074
- upvote_ratio: number | null;
2054
+ /** Ratio of upvotes to total votes */
2055
+ upvote_ratio: number;
2075
2056
  /** Number of comments */
2076
2057
  num_comments: number;
2077
2058
  /** Number of crossposts */
2078
2059
  num_crossposts: number;
2079
- /** Number of duplicate submissions */
2080
- num_duplicates: number | null;
2081
- /** View count (null if not available) */
2060
+ /** Total number of awards received */
2061
+ total_awards_received: number;
2062
+ /** View count (null if unavailable) */
2082
2063
  view_count: number | null;
2064
+ /** Number of gildings */
2065
+ gilded: number;
2083
2066
  /** Post creation timestamp (Unix) */
2084
2067
  created_utc: number;
2085
2068
  /** Post creation time as ISO 8601 UTC string */
2086
2069
  created_at: string | null;
2087
- /** Edited timestamp as float, false if not edited, or null */
2088
- edited: number | boolean | null;
2089
- /** Edit time as ISO 8601 UTC string (null if not edited) */
2090
- edited_at: string | null;
2070
+ /** Edit timestamp (Unix) if edited, otherwise false */
2071
+ edited: boolean | number;
2091
2072
  /** Whether the post is a self (text) post */
2092
2073
  is_self: boolean;
2093
2074
  /** Whether the post is a video */
2094
2075
  is_video: boolean;
2095
2076
  /** Whether the post is a gallery */
2096
2077
  is_gallery: boolean;
2078
+ /** Whether the post is a meta post */
2079
+ is_meta: boolean;
2080
+ /** Whether the post is original content */
2081
+ is_original_content: boolean;
2082
+ /** Whether the post is indexable by robots */
2083
+ is_robot_indexable: boolean;
2084
+ /** Whether the post can be crossposted */
2085
+ is_crosspostable: boolean;
2086
+ /** Whether the post links to a Reddit media domain */
2087
+ is_reddit_media_domain: boolean;
2088
+ /** Whether the post is media only */
2089
+ media_only: boolean;
2097
2090
  /** Whether the post is marked NSFW */
2098
2091
  is_nsfw: boolean;
2099
2092
  /** Whether the post is marked as a spoiler */
2100
2093
  is_spoiler: boolean;
2101
- /** Whether the post is locked */
2102
- is_locked: boolean;
2103
2094
  /** Whether the post is stickied */
2104
2095
  is_stickied: boolean;
2096
+ /** Whether the post is locked */
2097
+ locked: boolean;
2105
2098
  /** Whether the post is archived */
2106
- is_archived: boolean;
2099
+ archived: boolean;
2107
2100
  /** Whether the post is pinned */
2108
- is_pinned: boolean;
2109
- /** Whether the post is original content */
2110
- is_original_content: boolean;
2111
- /** Whether the post is robot-indexable */
2112
- is_robot_indexable: boolean;
2113
- /** Whether the post is a meta post */
2114
- is_meta: boolean;
2115
- /** Whether the post can be crossposted */
2116
- is_crosspostable: boolean;
2117
- /** Whether to send reply notifications */
2101
+ pinned: boolean;
2102
+ /** Whether the post is quarantined */
2103
+ quarantine: boolean;
2104
+ /** Whether the score is hidden */
2105
+ hide_score: boolean;
2106
+ /** Whether the post is in contest mode */
2107
+ contest_mode: boolean;
2108
+ /** Whether live comments are allowed */
2109
+ allow_live_comments: boolean;
2110
+ /** Whether reply notifications are enabled */
2118
2111
  send_replies: boolean;
2112
+ /** Distinguished status (moderator, admin, etc.) */
2113
+ distinguished: string | null;
2114
+ /** Category the post was removed by, if any */
2115
+ removed_by_category: string | null;
2116
+ /** Suggested sort for comments */
2117
+ suggested_sort: string | null;
2118
+ /** Discussion type */
2119
+ discussion_type: string | null;
2120
+ /** Top awarded type */
2121
+ top_awarded_type: string | null;
2119
2122
  /** Post flair text (null if no flair) */
2120
2123
  link_flair_text: string | null;
2124
+ /** Post flair type */
2125
+ link_flair_type: string | null;
2126
+ /** Post flair CSS class */
2127
+ link_flair_css_class: string | null;
2128
+ /** Post flair template ID */
2129
+ link_flair_template_id: string | null;
2121
2130
  /** Post flair background color */
2122
2131
  link_flair_background_color: string | null;
2123
2132
  /** Post flair text color */
2124
2133
  link_flair_text_color: string | null;
2125
- /** Post flair template ID */
2126
- link_flair_template_id: string | null;
2127
- /** Post flair type (text or richtext) */
2128
- link_flair_type: string | null;
2129
- /** Post flair CSS class */
2130
- link_flair_css_class: string | null;
2131
- /** Distinguished status (moderator, admin, or null) */
2132
- distinguished: string | null;
2133
- /** Post thumbnail URL (may be "self", "default", or "nsfw") */
2134
+ /** Author flair text */
2135
+ author_flair_text: string | null;
2136
+ /** Author flair type */
2137
+ author_flair_type: string | null;
2138
+ /** Author flair CSS class */
2139
+ author_flair_css_class: string | null;
2140
+ /** Author flair template ID */
2141
+ author_flair_template_id: string | null;
2142
+ /** Author flair background color */
2143
+ author_flair_background_color: string | null;
2144
+ /** Author flair text color */
2145
+ author_flair_text_color: string | null;
2146
+ /** Whether the author has Reddit Premium */
2147
+ author_premium: boolean;
2148
+ /** Whether the author has Patreon flair */
2149
+ author_patreon_flair: boolean;
2150
+ /** Thumbnail URL */
2134
2151
  thumbnail: string | null;
2135
2152
  /** Thumbnail width in pixels */
2136
2153
  thumbnail_width: number | null;
2137
2154
  /** Thumbnail height in pixels */
2138
2155
  thumbnail_height: number | null;
2139
- /** Post hint (image, video, link, self, etc.) */
2140
- post_hint: string | null;
2141
- /** Preview images */
2142
- preview_images: RedditPreviewImage[];
2143
- /** Embedded media metadata */
2144
- media: RedditMedia | null;
2145
- /** Gallery item data */
2146
- gallery_data: Record<string, unknown>[] | null;
2147
- /** Parent post fullname if this is a crosspost */
2148
- crosspost_parent: string | null;
2149
- /** Suggested sort for comments (null if default) */
2150
- suggested_sort: string | null;
2151
- /** Total awards received */
2152
- total_awards: number;
2153
- /** Award details */
2154
- awards: RedditAward[];
2155
- /** Number of gildings */
2156
- gilded: number;
2157
- /** Content categories */
2158
- content_categories: string[] | null;
2159
- /** Removal category (null if not removed) */
2160
- removed_by_category: string | null;
2161
- /** Treatment tags */
2162
- treatment_tags: string[];
2156
+ /** Media metadata */
2157
+ media: Record<string, unknown> | null;
2158
+ /** Media embed metadata */
2159
+ media_embed: Record<string, unknown> | null;
2160
+ /** Secure media metadata */
2161
+ secure_media: Record<string, unknown> | null;
2162
+ /** Secure media embed metadata */
2163
+ secure_media_embed: Record<string, unknown> | null;
2164
+ /** All awards received by the post */
2165
+ all_awardings: RedditAward[];
2166
+ /** Gildings metadata */
2167
+ gildings: Record<string, unknown>;
2163
2168
  }
2164
2169
  /**
2165
2170
  * A Reddit comment.
@@ -2177,10 +2182,6 @@ interface RedditComment {
2177
2182
  author: string;
2178
2183
  /** Author fullname (t2_ prefixed) */
2179
2184
  author_fullname: string | null;
2180
- /** Author flair text */
2181
- author_flair_text: string | null;
2182
- /** Author flair type (text or richtext) */
2183
- author_flair_type: string | null;
2184
2185
  /** Subreddit name (without r/ prefix) */
2185
2186
  subreddit: string;
2186
2187
  /** Subreddit fullname (t5_ prefixed) */
@@ -2189,48 +2190,70 @@ interface RedditComment {
2189
2190
  subreddit_name_prefixed: string | null;
2190
2191
  /** Subreddit type (public, private, restricted, etc.) */
2191
2192
  subreddit_type: string | null;
2192
- /** Post ID this comment belongs to */
2193
+ /** Post ID this comment belongs to (link_id) */
2193
2194
  post_id: string | null;
2194
- /** Title of the parent post */
2195
- post_title: string | null;
2196
- /** Parent ID (t3_ for top-level, t1_ for reply) */
2195
+ /** Parent fullname this comment replies to */
2197
2196
  parent_id: string | null;
2198
2197
  /** Permalink to comment */
2199
2198
  permalink: string;
2200
2199
  /** Comment score (upvotes minus downvotes) */
2201
2200
  score: number;
2202
- /** Raw upvotes */
2201
+ /** Number of upvotes */
2203
2202
  ups: number;
2204
- /** Raw downvotes */
2203
+ /** Number of downvotes */
2205
2204
  downs: number;
2206
2205
  /** Controversiality score */
2207
2206
  controversiality: number;
2207
+ /** Total number of awards received */
2208
+ total_awards_received: number;
2209
+ /** Number of gildings */
2210
+ gilded: number;
2211
+ /** Whether the score is hidden */
2212
+ score_hidden: boolean;
2208
2213
  /** Depth level (0 for top-level comments) */
2209
2214
  depth: number;
2210
2215
  /** Comment creation timestamp (Unix) */
2211
2216
  created_utc: number;
2212
2217
  /** Comment creation time as ISO 8601 UTC string */
2213
2218
  created_at: string | null;
2214
- /** Edited timestamp as float, false if not edited, or null */
2215
- edited: number | boolean | null;
2216
- /** Edit time as ISO 8601 UTC string (null if not edited) */
2217
- edited_at: string | null;
2218
- /** Whether the author is the post submitter */
2219
+ /** Edit timestamp (Unix) if edited, otherwise false */
2220
+ edited: boolean | number;
2221
+ /** Whether the comment author is the post submitter */
2219
2222
  is_submitter: boolean;
2220
2223
  /** Whether the comment is stickied */
2221
2224
  is_stickied: boolean;
2222
2225
  /** Whether the comment is locked */
2223
- is_locked: boolean;
2224
- /** Whether the comment score is hidden */
2225
- is_score_hidden: boolean;
2226
- /** Whether to send reply notifications */
2226
+ locked: boolean;
2227
+ /** Whether the comment is archived */
2228
+ archived: boolean;
2229
+ /** Whether the comment is collapsed */
2230
+ collapsed: boolean;
2231
+ /** Reason the comment was collapsed */
2232
+ collapsed_reason: string | null;
2233
+ /** Whether reply notifications are enabled */
2227
2234
  send_replies: boolean;
2228
- /** Distinguished status (moderator, admin, or null) */
2235
+ /** Distinguished status (moderator, admin, etc.) */
2229
2236
  distinguished: string | null;
2230
- /** Total awards received */
2231
- total_awards: number;
2232
- /** Number of gildings */
2233
- gilded: number;
2237
+ /** Comment type */
2238
+ comment_type: string | null;
2239
+ /** Author flair text */
2240
+ author_flair_text: string | null;
2241
+ /** Author flair type */
2242
+ author_flair_type: string | null;
2243
+ /** Author flair CSS class */
2244
+ author_flair_css_class: string | null;
2245
+ /** Author flair template ID */
2246
+ author_flair_template_id: string | null;
2247
+ /** Author flair background color */
2248
+ author_flair_background_color: string | null;
2249
+ /** Author flair text color */
2250
+ author_flair_text_color: string | null;
2251
+ /** Whether the author has Reddit Premium */
2252
+ author_premium: boolean;
2253
+ /** All awards received by the comment */
2254
+ all_awardings: RedditAward[];
2255
+ /** Gildings metadata */
2256
+ gildings: Record<string, unknown>;
2234
2257
  /** Nested replies (empty array if none) */
2235
2258
  replies: RedditComment[];
2236
2259
  }
@@ -2242,7 +2265,7 @@ interface RedditSubreddit {
2242
2265
  id: string;
2243
2266
  /** Fullname with t5_ prefix */
2244
2267
  fullname: string;
2245
- /** Subreddit name (without r/ prefix) */
2268
+ /** Subreddit name (display_name, without r/ prefix) */
2246
2269
  name: string;
2247
2270
  /** Subreddit with r/ prefix */
2248
2271
  display_name_prefixed: string | null;
@@ -2256,116 +2279,135 @@ interface RedditSubreddit {
2256
2279
  public_description: string;
2257
2280
  /** Short public description as HTML */
2258
2281
  public_description_html: string | null;
2259
- /** Text shown when submitting a new post */
2260
- submit_text: string;
2261
- /** Submit text as HTML */
2262
- submit_text_html: string | null;
2263
- /** Header title text */
2264
- header_title: string | null;
2265
2282
  /** Subreddit URL path */
2266
2283
  url: string;
2267
- /** Subreddit type (public, private, restricted, etc.) */
2268
- type: string;
2269
- /** Allowed submission type (any, link, self) */
2270
- submission_type: string | null;
2271
- /** Number of subscribers */
2284
+ /** Subscriber count */
2272
2285
  subscribers: number;
2273
- /** Number of users currently online */
2274
- active_users: number | null;
2275
2286
  /** Creation timestamp (Unix) */
2276
2287
  created_utc: number;
2277
2288
  /** Creation time as ISO 8601 UTC string */
2278
2289
  created_at: string | null;
2290
+ /** Subreddit type (public, private, restricted, etc.) */
2291
+ subreddit_type: string | null;
2292
+ /** Primary language */
2293
+ lang: string | null;
2279
2294
  /** Whether the subreddit is marked NSFW */
2280
2295
  is_nsfw: boolean;
2281
2296
  /** Whether the subreddit is quarantined */
2282
- is_quarantined: boolean;
2283
- /** Whether the subreddit is advertiser-friendly */
2284
- is_advertiser_friendly: boolean;
2285
- /** Advertiser category */
2286
- advertiser_category: string | null;
2287
- /** Subreddit language code */
2288
- language: string | null;
2289
- /** Subreddit icon URL */
2290
- icon_url: string | null;
2291
- /** Header image URL */
2292
- header_url: string | null;
2293
- /** Banner image URL */
2294
- banner_url: string | null;
2295
- /** Banner background color (hex) */
2296
- banner_background_color: string | null;
2297
- /** Primary theme color (hex) */
2298
- primary_color: string | null;
2299
- /** Key theme color (hex) */
2300
- key_color: string | null;
2297
+ quarantine: boolean;
2301
2298
  /** Whether the wiki is enabled */
2302
2299
  wiki_enabled: boolean;
2303
- /** Whether image posts are allowed */
2300
+ /** Whether the subreddit is over 18 */
2301
+ over18: boolean;
2302
+ /** Allowed submission type */
2303
+ submission_type: string | null;
2304
+ /** Submission guidelines text */
2305
+ submit_text: string;
2306
+ /** Submission guidelines text as HTML */
2307
+ submit_text_html: string | null;
2308
+ /** Label for the submit text button */
2309
+ submit_text_label: string | null;
2310
+ /** Label for the submit link button */
2311
+ submit_link_label: string | null;
2312
+ /** Whether image submissions are allowed */
2304
2313
  allow_images: boolean;
2305
- /** Whether video posts are allowed */
2314
+ /** Whether video submissions are allowed */
2306
2315
  allow_videos: boolean;
2307
- /** Whether gallery posts are allowed */
2316
+ /** Whether gallery submissions are allowed */
2308
2317
  allow_galleries: boolean;
2309
- /** Whether polls are allowed */
2318
+ /** Whether poll submissions are allowed */
2310
2319
  allow_polls: boolean;
2311
- /** Whether the subreddit appears in discovery feeds */
2312
- allow_discovery: boolean;
2313
- /** Whether spoiler tags are enabled */
2320
+ /** Whether spoiler tagging is enabled */
2314
2321
  spoilers_enabled: boolean;
2315
- /** Whether custom emojis are enabled */
2316
- emojis_enabled: boolean;
2317
- /** Whether free-form reports are enabled */
2318
- free_form_reports: boolean;
2319
- /** Whether the subreddit accepts followers */
2320
- accept_followers: boolean;
2322
+ /** Whether the original content tag is enabled */
2323
+ original_content_tag_enabled: boolean;
2324
+ /** Whether all content is original content */
2325
+ all_original_content: boolean;
2321
2326
  /** Whether posting is restricted */
2322
2327
  restrict_posting: boolean;
2323
- /** Whether link flairs are enabled */
2328
+ /** Whether commenting is restricted */
2329
+ restrict_commenting: boolean;
2330
+ /** Whether free-form reports are allowed */
2331
+ free_form_reports: boolean;
2332
+ /** Whether media is shown */
2333
+ show_media: boolean;
2334
+ /** Whether followers are accepted */
2335
+ accept_followers: boolean;
2336
+ /** Whether link flair is enabled */
2324
2337
  link_flair_enabled: boolean;
2325
- /** Position of link flair (left, right, or null) */
2338
+ /** Link flair position */
2326
2339
  link_flair_position: string | null;
2327
- /** Whether user flairs are enabled */
2328
- user_flair_enabled: boolean;
2329
- /** Position of user flair (left, right, or null) */
2330
- user_flair_position: string | null;
2331
- /** Minutes before comment scores are shown */
2340
+ /** Minutes for which comment scores are hidden */
2332
2341
  comment_score_hide_mins: number;
2333
- /** Whether posts are automatically archived */
2334
- should_archive_posts: boolean;
2335
- /** Media types allowed in comments */
2336
- allowed_media_in_comments: string[];
2342
+ /** Suggested comment sort */
2343
+ suggested_comment_sort: string | null;
2344
+ /** Advertiser category */
2345
+ advertiser_category: string | null;
2346
+ /** Community icon URL */
2347
+ community_icon: string | null;
2348
+ /** Icon image URL */
2349
+ icon_img: string | null;
2350
+ /** Banner image URL */
2351
+ banner_img: string | null;
2352
+ /** Banner background image URL */
2353
+ banner_background_image: string | null;
2354
+ /** Header image URL */
2355
+ header_img: string | null;
2356
+ /** Header title */
2357
+ header_title: string | null;
2358
+ /** Primary color */
2359
+ primary_color: string | null;
2360
+ /** Key color */
2361
+ key_color: string | null;
2362
+ /** Banner background color */
2363
+ banner_background_color: string | null;
2364
+ }
2365
+ /**
2366
+ * The profile subreddit (u/<name>) embedded in a user's `about` payload.
2367
+ */
2368
+ interface RedditUserSubreddit {
2369
+ /** Display name */
2370
+ display_name: string;
2371
+ /** Display name with prefix */
2372
+ display_name_prefixed: string | null;
2373
+ /** Title */
2374
+ title: string;
2375
+ /** Short public description */
2376
+ public_description: string;
2377
+ /** Subscriber count */
2378
+ subscribers: number;
2379
+ /** URL path */
2380
+ url: string;
2381
+ /** Subreddit type */
2382
+ subreddit_type: string | null;
2383
+ /** Whether the profile subreddit is over 18 */
2384
+ over_18: boolean;
2385
+ /** Icon image URL */
2386
+ icon_img: string | null;
2387
+ /** Banner image URL */
2388
+ banner_img: string | null;
2389
+ /** Community icon URL */
2390
+ community_icon: string | null;
2391
+ /** Primary color */
2392
+ primary_color: string | null;
2337
2393
  }
2338
2394
  /**
2339
2395
  * A Reddit user profile.
2340
2396
  */
2341
2397
  interface RedditUser {
2342
- /** Unique user identifier */
2343
- id: string;
2344
- /** Fullname with t2_ prefix */
2345
- fullname: string | null;
2398
+ /** User identifier (without t2_ prefix) */
2399
+ id: string | null;
2346
2400
  /** Username (without u/ prefix) */
2347
2401
  name: string;
2348
2402
  /** Username with u/ prefix */
2349
2403
  display_name_prefixed: string | null;
2350
- /** Avatar/profile icon URL */
2351
- icon_url: string | null;
2352
- /** Snoovatar image URL */
2353
- snoovatar_url: string | null;
2354
- /** Profile banner URL */
2355
- banner_url: string | null;
2356
- /** Profile title/tagline */
2357
- profile_title: string | null;
2358
- /** Profile page URL */
2359
- profile_url: string | null;
2360
- /** User description / about text */
2361
- description: string;
2362
2404
  /** Post karma */
2363
2405
  link_karma: number;
2364
2406
  /** Comment karma */
2365
2407
  comment_karma: number;
2366
- /** Karma from received awards */
2408
+ /** Awardee karma */
2367
2409
  awardee_karma: number;
2368
- /** Karma from given awards */
2410
+ /** Awarder karma */
2369
2411
  awarder_karma: number;
2370
2412
  /** Combined total karma */
2371
2413
  total_karma: number;
@@ -2373,26 +2415,28 @@ interface RedditUser {
2373
2415
  created_utc: number;
2374
2416
  /** Account creation time as ISO 8601 UTC string */
2375
2417
  created_at: string | null;
2376
- /** Whether the account email is verified */
2377
- has_verified_email: boolean;
2378
- /** Whether the account is verified */
2379
- verified: boolean;
2380
- /** Whether the account accepts followers */
2381
- accepts_followers: boolean;
2382
- /** Whether the account has subscribed to Reddit */
2383
- has_subscribed: boolean;
2384
- /** Whether the account is a Reddit employee */
2385
- is_employee: boolean;
2386
- /** Whether the account is a moderator somewhere */
2387
- is_mod: boolean;
2388
2418
  /** Whether the account has Reddit Premium */
2389
2419
  is_gold: boolean;
2390
- /** Whether the account is suspended */
2391
- is_suspended: boolean;
2392
- /** Whether the profile is NSFW */
2393
- is_nsfw: boolean;
2394
- /** Whether the snoovatar is shown in comments */
2395
- pref_show_snoovatar: boolean;
2420
+ /** Whether the user is a Reddit employee */
2421
+ is_employee: boolean;
2422
+ /** Whether the user is a moderator */
2423
+ is_mod: boolean;
2424
+ /** Whether the user is a friend */
2425
+ is_friend: boolean;
2426
+ /** Whether the account is verified */
2427
+ verified: boolean;
2428
+ /** Whether the account has a verified email */
2429
+ has_verified_email: boolean;
2430
+ /** Whether the profile is hidden from robots */
2431
+ hide_from_robots: boolean;
2432
+ /** Whether the user accepts followers */
2433
+ accept_followers: boolean;
2434
+ /** Avatar icon URL */
2435
+ icon_img: string | null;
2436
+ /** Snoovatar image URL */
2437
+ snoovatar_img: string | null;
2438
+ /** The user's profile subreddit */
2439
+ subreddit: RedditUserSubreddit | null;
2396
2440
  }
2397
2441
  /**
2398
2442
  * A subreddit rule.
@@ -2406,10 +2450,12 @@ interface RedditRule {
2406
2450
  description: string;
2407
2451
  /** Full rule description as HTML */
2408
2452
  description_html: string | null;
2409
- /** What the rule applies to (link, comment, all) */
2410
- kind: "link" | "comment" | "all" | string;
2411
- /** Violation reason label */
2453
+ /** Violation reason */
2412
2454
  violation_reason: string | null;
2455
+ /** Rule creation timestamp (Unix) */
2456
+ created_utc: number;
2457
+ /** Rule kind */
2458
+ kind: string | null;
2413
2459
  }
2414
2460
  /**
2415
2461
  * A subreddit wiki page.
@@ -2425,19 +2471,76 @@ interface RedditWikiPage {
2425
2471
  revision_by: string | null;
2426
2472
  /** Revision timestamp (Unix), null if unknown */
2427
2473
  revision_date: number | null;
2474
+ /** Revision identifier */
2475
+ revision_id: string | null;
2476
+ /** Whether the page may be revised */
2477
+ may_revise: boolean;
2478
+ /** Reason associated with the page */
2479
+ reason: string | null;
2428
2480
  }
2429
2481
  /**
2430
2482
  * A Reddit user trophy.
2431
2483
  */
2432
2484
  interface RedditTrophy {
2485
+ /** Trophy identifier */
2486
+ id: string | null;
2487
+ /** Award identifier */
2488
+ award_id: string | null;
2433
2489
  /** Trophy name */
2434
2490
  name: string;
2435
2491
  /** Trophy description */
2436
2492
  description: string | null;
2437
- /** Trophy icon URL */
2493
+ /** Trophy icon URL (icon_70) */
2438
2494
  icon_url: string | null;
2495
+ /** 40px icon URL */
2496
+ icon_40: string | null;
2497
+ /** 70px icon URL */
2498
+ icon_70: string | null;
2439
2499
  /** URL associated with the trophy */
2440
2500
  url: string | null;
2501
+ /** Timestamp the trophy was granted (Unix) */
2502
+ granted_at: number | null;
2503
+ }
2504
+ /**
2505
+ * A subreddit a user moderates (from `/user/{u}/moderated_subreddits`).
2506
+ */
2507
+ interface RedditModeratedSubreddit {
2508
+ /** Subreddit fullname (t5_ prefixed) */
2509
+ fullname: string | null;
2510
+ /** Subreddit id */
2511
+ sr: string | null;
2512
+ /** Subreddit display name */
2513
+ name: string;
2514
+ /** Subreddit with r/ prefix */
2515
+ display_name_prefixed: string | null;
2516
+ /** Subreddit display name with r/ prefix (from sr field) */
2517
+ sr_display_name_prefixed: string | null;
2518
+ /** Subreddit title */
2519
+ title: string;
2520
+ /** Subreddit URL path */
2521
+ url: string;
2522
+ /** Subscriber count */
2523
+ subscribers: number;
2524
+ /** Subreddit type */
2525
+ subreddit_type: string | null;
2526
+ /** Whether the subreddit is over 18 */
2527
+ over_18: boolean;
2528
+ /** Community icon URL */
2529
+ community_icon: string | null;
2530
+ /** Icon image URL */
2531
+ icon_img: string | null;
2532
+ /** Banner image URL */
2533
+ banner_img: string | null;
2534
+ /** Primary color */
2535
+ primary_color: string | null;
2536
+ /** Key color */
2537
+ key_color: string | null;
2538
+ /** Creation timestamp (Unix) */
2539
+ created_utc: number;
2540
+ /** Creation time as ISO 8601 UTC string */
2541
+ created_at: string | null;
2542
+ /** Moderator permissions held by the user */
2543
+ mod_permissions: string[];
2441
2544
  }
2442
2545
  /**
2443
2546
  * Pagination metadata for list responses.
@@ -2522,6 +2625,8 @@ interface SubredditRulesResponse {
2522
2625
  rules: RedditRule[];
2523
2626
  /** Subreddit name */
2524
2627
  subreddit: string;
2628
+ /** Site-wide rules */
2629
+ site_rules: string[];
2525
2630
  }
2526
2631
  /**
2527
2632
  * Response from the subreddit wiki pages list endpoint.
@@ -2575,7 +2680,7 @@ interface UserCommentsResponse {
2575
2680
  */
2576
2681
  interface UserModeratedResponse {
2577
2682
  /** Subreddits moderated by the user */
2578
- subreddits: RedditSubreddit[];
2683
+ subreddits: RedditModeratedSubreddit[];
2579
2684
  /** Username */
2580
2685
  username: string;
2581
2686
  }
@@ -3370,4 +3475,4 @@ declare class ScrapeBadger {
3370
3475
  constructor(config?: Partial<ScrapeBadgerConfig>);
3371
3476
  }
3372
3477
 
3373
- export { type AiModeSearchParams, type AutocompleteParams, type DetectOptions, type DetectResult, type DomainPostsResponse, type FinanceQuoteParams, type FlightsSearchParams, type FlightsStopsFilter, type FlightsTravelClass, type FlightsTripType, AiModeClient as GoogleAiModeClient, AutocompleteClient as GoogleAutocompleteClient, GoogleClient, FinanceClient as GoogleFinanceClient, FlightsClient as GoogleFlightsClient, HotelsClient as GoogleHotelsClient, ImagesClient as GoogleImagesClient, JobsClient as GoogleJobsClient, LensClient as GoogleLensClient, MapsClient as GoogleMapsClient, NewsClient as GoogleNewsClient, PatentsClient as GooglePatentsClient, ProductsClient as GoogleProductsClient, type GoogleResponse, ScholarClient as GoogleScholarClient, SearchClient$1 as GoogleSearchClient, type GoogleSearchParams, ShoppingClient as GoogleShoppingClient, ShortsClient as GoogleShortsClient, TrendsClient as GoogleTrendsClient, VideosClient as GoogleVideosClient, type HotelsDetailsParams, type HotelsSearchParams, type ImagesSearchParams, type JobsSearchParams, type LensSearchParams, type MapsPhotosParams, type MapsPlaceParams, type MapsPostsParams, type MapsReviewsParams, type MapsSearchParams, type NewsSearchParams, type NewsTopicsParams, type NewsTrendingParams, type PatentsDetailParams, type PatentsSearchParams, type PopularSubredditsResponse, type PostCommentsResponse, type PostDetailResponse, type PostDuplicatesResponse, type ProductsDetailParams, RedditClient, type RedditComment, type RedditPagination, type RedditPost, PostsClient as RedditPostsClient, type RedditRule, SearchClient as RedditSearchClient, type RedditSubreddit, SubredditsClient as RedditSubredditsClient, type RedditTrophy, type RedditUser, type UserProfileResponse as RedditUserProfileResponse, UsersClient as RedditUsersClient, type RedditWikiPage, type ScholarAuthorCitationParams, type ScholarAuthorParams, type ScholarCiteParams, type ScholarProfilesParams, type ScholarSearchParams, ScrapeBadger, ScrapeBadgerConfig, type ScrapeOptions, type ScrapeResult, type SearchPostsResponse, type SearchSubredditsResponse, type SearchUsersResponse, type ShoppingClickParams, type ShoppingProductParams, type ShoppingSearchParams, type ShortsSearchParams, type SubredditDetailResponse, type SubredditPostsResponse, type SubredditRulesResponse, type SubredditWikiPagesResponse, type TrendingPostsResponse, type TrendsAutocompleteParams, type TrendsInterestParams, type TrendsRegionsParams, type TrendsRelatedParams, type TrendsTrendingParams, TwitterClient, type UserCommentsResponse, type UserModeratedResponse, type UserPostsResponse, type UserTrophiesResponse, type VideosSearchParams, type VintedBrand, type BrandsResponse as VintedBrandsResponse, VintedClient, type VintedColor, type ColorsResponse as VintedColorsResponse, type VintedItemDetail, type ItemDetailResponse as VintedItemDetailResponse, type VintedItemSummary, ItemsClient as VintedItemsClient, type VintedMarket, type MarketsResponse as VintedMarketsResponse, type VintedPagination, type VintedPhoto, type VintedPrice, ReferenceClient as VintedReferenceClient, SearchClient$2 as VintedSearchClient, type VintedSearchParams, type SearchResponse as VintedSearchResponse, type VintedSellerSummary, type VintedStatus, type StatusesResponse as VintedStatusesResponse, type UserItemsResponse as VintedUserItemsResponse, type VintedUserProfile, type UserProfileResponse$1 as VintedUserProfileResponse, type VintedUserSummary, UsersClient$1 as VintedUsersClient, WebClient, type WikiPageResponse };
3478
+ export { type AiModeSearchParams, type AutocompleteParams, type DetectOptions, type DetectResult, type DomainPostsResponse, type FinanceQuoteParams, type FlightsSearchParams, type FlightsStopsFilter, type FlightsTravelClass, type FlightsTripType, AiModeClient as GoogleAiModeClient, AutocompleteClient as GoogleAutocompleteClient, GoogleClient, FinanceClient as GoogleFinanceClient, FlightsClient as GoogleFlightsClient, HotelsClient as GoogleHotelsClient, ImagesClient as GoogleImagesClient, JobsClient as GoogleJobsClient, LensClient as GoogleLensClient, MapsClient as GoogleMapsClient, NewsClient as GoogleNewsClient, PatentsClient as GooglePatentsClient, ProductsClient as GoogleProductsClient, type GoogleResponse, ScholarClient as GoogleScholarClient, SearchClient$1 as GoogleSearchClient, type GoogleSearchParams, ShoppingClient as GoogleShoppingClient, ShortsClient as GoogleShortsClient, TrendsClient as GoogleTrendsClient, VideosClient as GoogleVideosClient, type HotelsDetailsParams, type HotelsSearchParams, type ImagesSearchParams, type JobsSearchParams, type LensSearchParams, type MapsPhotosParams, type MapsPlaceParams, type MapsPostsParams, type MapsReviewsParams, type MapsSearchParams, type NewsSearchParams, type NewsTopicsParams, type NewsTrendingParams, type PatentsDetailParams, type PatentsSearchParams, type PopularSubredditsResponse, type PostCommentsResponse, type PostDetailResponse, type PostDuplicatesResponse, type ProductsDetailParams, type RedditAward, RedditClient, type RedditComment, type RedditModeratedSubreddit, type RedditPagination, type RedditPost, PostsClient as RedditPostsClient, type RedditRule, SearchClient as RedditSearchClient, type RedditSubreddit, SubredditsClient as RedditSubredditsClient, type RedditTrophy, type RedditUser, type UserProfileResponse as RedditUserProfileResponse, type RedditUserSubreddit, UsersClient as RedditUsersClient, type RedditWikiPage, type ScholarAuthorCitationParams, type ScholarAuthorParams, type ScholarCiteParams, type ScholarProfilesParams, type ScholarSearchParams, ScrapeBadger, ScrapeBadgerConfig, type ScrapeOptions, type ScrapeResult, type SearchPostsResponse, type SearchSubredditsResponse, type SearchUsersResponse, type ShoppingClickParams, type ShoppingProductParams, type ShoppingSearchParams, type ShortsSearchParams, type SubredditDetailResponse, type SubredditPostsResponse, type SubredditRulesResponse, type SubredditWikiPagesResponse, type TrendingPostsResponse, type TrendsAutocompleteParams, type TrendsInterestParams, type TrendsRegionsParams, type TrendsRelatedParams, type TrendsTrendingParams, TwitterClient, type UserCommentsResponse, type UserModeratedResponse, type UserPostsResponse, type UserTrophiesResponse, type VideosSearchParams, type VintedBrand, type BrandsResponse as VintedBrandsResponse, VintedClient, type VintedColor, type ColorsResponse as VintedColorsResponse, type VintedItemDetail, type ItemDetailResponse as VintedItemDetailResponse, type VintedItemSummary, ItemsClient as VintedItemsClient, type VintedMarket, type MarketsResponse as VintedMarketsResponse, type VintedPagination, type VintedPhoto, type VintedPrice, ReferenceClient as VintedReferenceClient, SearchClient$2 as VintedSearchClient, type VintedSearchParams, type SearchResponse as VintedSearchResponse, type VintedSellerSummary, type VintedStatus, type StatusesResponse as VintedStatusesResponse, type UserItemsResponse as VintedUserItemsResponse, type VintedUserProfile, type UserProfileResponse$1 as VintedUserProfileResponse, type VintedUserSummary, UsersClient$1 as VintedUsersClient, WebClient, type WikiPageResponse };