@devvit/reddit 0.11.17-next-2025-05-28-417d95f5a.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 (97) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +5 -0
  3. package/RedditClient.d.ts +1155 -0
  4. package/RedditClient.d.ts.map +1 -0
  5. package/RedditClient.js +1417 -0
  6. package/common.d.ts +10 -0
  7. package/common.d.ts.map +1 -0
  8. package/common.js +5 -0
  9. package/getReddit.d.ts +3 -0
  10. package/getReddit.d.ts.map +1 -0
  11. package/getReddit.js +8 -0
  12. package/getRedditApiPlugins.d.ts +23 -0
  13. package/getRedditApiPlugins.d.ts.map +1 -0
  14. package/getRedditApiPlugins.js +25 -0
  15. package/getUserActionsPlugin.d.ts +6 -0
  16. package/getUserActionsPlugin.d.ts.map +1 -0
  17. package/getUserActionsPlugin.js +12 -0
  18. package/graphql/GraphQL.d.ts +10 -0
  19. package/graphql/GraphQL.d.ts.map +1 -0
  20. package/graphql/GraphQL.js +27 -0
  21. package/helpers/makeGettersEnumerable.d.ts +2 -0
  22. package/helpers/makeGettersEnumerable.d.ts.map +1 -0
  23. package/helpers/makeGettersEnumerable.js +19 -0
  24. package/helpers/permissions.d.ts +6 -0
  25. package/helpers/permissions.d.ts.map +1 -0
  26. package/helpers/permissions.js +24 -0
  27. package/helpers/richtextToString.d.ts +3 -0
  28. package/helpers/richtextToString.d.ts.map +1 -0
  29. package/helpers/richtextToString.js +14 -0
  30. package/helpers/textFallbackToRichtext.d.ts +4 -0
  31. package/helpers/textFallbackToRichtext.d.ts.map +1 -0
  32. package/helpers/textFallbackToRichtext.js +14 -0
  33. package/index.d.ts +3 -0
  34. package/index.d.ts.map +1 -0
  35. package/index.js +1 -0
  36. package/models/Comment.d.ts +138 -0
  37. package/models/Comment.d.ts.map +1 -0
  38. package/models/Comment.js +597 -0
  39. package/models/Flair.d.ts +171 -0
  40. package/models/Flair.d.ts.map +1 -0
  41. package/models/Flair.js +293 -0
  42. package/models/Listing.d.ts +53 -0
  43. package/models/Listing.d.ts.map +1 -0
  44. package/models/Listing.js +101 -0
  45. package/models/ModAction.d.ts +32 -0
  46. package/models/ModAction.d.ts.map +1 -0
  47. package/models/ModAction.js +70 -0
  48. package/models/ModMail.d.ts +655 -0
  49. package/models/ModMail.d.ts.map +1 -0
  50. package/models/ModMail.js +723 -0
  51. package/models/ModNote.d.ts +57 -0
  52. package/models/ModNote.d.ts.map +1 -0
  53. package/models/ModNote.js +103 -0
  54. package/models/Post.d.ts +491 -0
  55. package/models/Post.d.ts.map +1 -0
  56. package/models/Post.js +1022 -0
  57. package/models/PrivateMessage.d.ts +52 -0
  58. package/models/PrivateMessage.d.ts.map +1 -0
  59. package/models/PrivateMessage.js +126 -0
  60. package/models/Subreddit.d.ts +606 -0
  61. package/models/Subreddit.d.ts.map +1 -0
  62. package/models/Subreddit.js +750 -0
  63. package/models/User.d.ts +238 -0
  64. package/models/User.d.ts.map +1 -0
  65. package/models/User.js +458 -0
  66. package/models/Vault.d.ts +32 -0
  67. package/models/Vault.d.ts.map +1 -0
  68. package/models/Vault.js +25 -0
  69. package/models/Widget.d.ts +133 -0
  70. package/models/Widget.d.ts.map +1 -0
  71. package/models/Widget.js +467 -0
  72. package/models/WikiPage.d.ts +137 -0
  73. package/models/WikiPage.d.ts.map +1 -0
  74. package/models/WikiPage.js +329 -0
  75. package/models/index.d.ts +14 -0
  76. package/models/index.d.ts.map +1 -0
  77. package/models/index.js +13 -0
  78. package/package.json +46 -0
  79. package/tests/comment.api.test.d.ts.map +1 -0
  80. package/tests/flair.api.test.d.ts.map +1 -0
  81. package/tests/modmail.api.test.d.ts.map +1 -0
  82. package/tests/modnote.api.test.d.ts.map +1 -0
  83. package/tests/post.api.test.d.ts.map +1 -0
  84. package/tests/subreddit.api.test.d.ts.map +1 -0
  85. package/tests/user.api.test.d.ts.map +1 -0
  86. package/tests/utils/createTestPreview.d.ts +2 -0
  87. package/tests/utils/createTestPreview.d.ts.map +1 -0
  88. package/tests/utils/createTestPreview.js +5 -0
  89. package/tests/utils/redditApiPluginsMock.d.ts +203 -0
  90. package/tests/utils/redditApiPluginsMock.d.ts.map +1 -0
  91. package/tests/utils/redditApiPluginsMock.js +202 -0
  92. package/tests/utils/runWithTestContext.d.ts +4 -0
  93. package/tests/utils/runWithTestContext.d.ts.map +1 -0
  94. package/tests/utils/runWithTestContext.js +12 -0
  95. package/tests/utils/userActionsPluginMock.d.ts +6 -0
  96. package/tests/utils/userActionsPluginMock.d.ts.map +1 -0
  97. package/tests/utils/userActionsPluginMock.js +5 -0
@@ -0,0 +1,238 @@
1
+ import type { User as UserProto } from '@devvit/protos';
2
+ import type { T2ID } from '@devvit/shared-types/tid.js';
3
+ import type { GetCommentsByUserOptions } from './Comment.js';
4
+ import { Comment } from './Comment.js';
5
+ import type { UserFlair } from './Flair.js';
6
+ import type { ListingFetchOptions } from './Listing.js';
7
+ import { Listing } from './Listing.js';
8
+ import type { GetPostsByUserOptions } from './Post.js';
9
+ import { Post } from './Post.js';
10
+ export type GetSubredditUsersByTypeOptions = ListingFetchOptions & {
11
+ subredditName: string;
12
+ type: 'banned' | 'muted' | 'wikibanned' | 'contributors' | 'wikicontributors' | 'moderators';
13
+ username?: string;
14
+ };
15
+ export type RelationshipType = 'moderator_invite' | 'contributor' | 'banned' | 'muted' | 'wikibanned' | 'wikicontributor';
16
+ export type ModeratorPermission = 'all' | 'wiki' | 'posts' | 'access' | 'mail' | 'config' | 'flair' | 'chat_operator' | 'chat_config' | 'channels' | 'community_chat';
17
+ export type CreateRelationshipOptions = {
18
+ subredditName: string;
19
+ username: string;
20
+ type: RelationshipType;
21
+ /** The ID of the post or comment that caused the ban. */
22
+ banContext?: string | undefined;
23
+ banMessage?: string | undefined;
24
+ banReason?: string | undefined;
25
+ duration?: number | undefined;
26
+ note?: string | undefined;
27
+ permissions?: ModeratorPermission[];
28
+ };
29
+ export type RemoveRelationshipOptions = {
30
+ subredditName: string;
31
+ username: string;
32
+ type: RelationshipType | 'moderator';
33
+ };
34
+ export type BanUserOptions = {
35
+ username: string;
36
+ subredditName: string;
37
+ context?: string;
38
+ message?: string;
39
+ reason?: string;
40
+ duration?: number;
41
+ note?: string;
42
+ };
43
+ export type BanWikiContributorOptions = {
44
+ username: string;
45
+ subredditName: string;
46
+ reason?: string;
47
+ duration?: number;
48
+ note?: string;
49
+ };
50
+ export type GetUserOverviewOptions = {
51
+ username: string;
52
+ sort?: 'hot' | 'new' | 'top' | 'controversial';
53
+ timeframe?: 'hour' | 'day' | 'week' | 'month' | 'year' | 'all';
54
+ pageSize?: number;
55
+ limit?: number;
56
+ after?: string;
57
+ before?: string;
58
+ };
59
+ export declare const enum SocialLinkType {
60
+ Custom = "CUSTOM",
61
+ Reddit = "REDDIT",
62
+ Instagram = "INSTAGRAM",
63
+ Twitter = "TWITTER",
64
+ Tiktok = "TIKTOK",
65
+ Twitch = "TWITCH",
66
+ Facebook = "FACEBOOK",
67
+ Youtube = "YOUTUBE",
68
+ Tumblr = "TUMBLR",
69
+ Spotify = "SPOTIFY",
70
+ Soundcloud = "SOUNDCLOUD",
71
+ Beacons = "BEACONS",
72
+ Linktree = "LINKTREE",
73
+ Discord = "DISCORD",
74
+ Venmo = "VENMO",
75
+ CashApp = "CASH_APP",
76
+ Patreon = "PATREON",
77
+ Kofi = "KOFI",
78
+ Paypal = "PAYPAL",
79
+ Cameo = "CAMEO",
80
+ Onlyfans = "ONLYFANS",
81
+ Substack = "SUBSTACK",
82
+ Kickstarter = "KICKSTARTER",
83
+ Indiegogo = "INDIEGOGO",
84
+ BuyMeACoffee = "BUY_ME_A_COFFEE",
85
+ Shopify = "SHOPIFY"
86
+ }
87
+ /**
88
+ * @field id: ID of the social link.
89
+ *
90
+ * @field handle: Display name of social media link.
91
+ *
92
+ * @field outboundUrl: Outbound url of social media link.
93
+ *
94
+ * @field type: Type of social media link i.e. Instagram, YouTube.
95
+ *
96
+ * @field title: Title or name of social media link.
97
+ */
98
+ export type UserSocialLink = {
99
+ id: string;
100
+ handle?: string;
101
+ outboundUrl: string;
102
+ type: SocialLinkType;
103
+ title: string;
104
+ };
105
+ /**
106
+ * A class representing a user.
107
+ */
108
+ export declare class User {
109
+ #private;
110
+ /**
111
+ * @internal
112
+ */
113
+ constructor(data: UserProto & {
114
+ modPermissions?: {
115
+ [subredditName: string]: string[];
116
+ };
117
+ });
118
+ /**
119
+ * The ID (starting with t2_) of the user to retrieve.
120
+ * @example 't2_1w72'
121
+ */
122
+ get id(): T2ID;
123
+ /**
124
+ * The username of the user omitting the u/.
125
+ * @example 'spez'
126
+ */
127
+ get username(): string;
128
+ /**
129
+ * The date the user was created.
130
+ */
131
+ get createdAt(): Date;
132
+ /**
133
+ * The amount of link karma the user has.
134
+ */
135
+ get linkKarma(): number;
136
+ /**
137
+ * The amount of comment karma the user has.
138
+ */
139
+ get commentKarma(): number;
140
+ /**
141
+ * Whether the user's profile is marked as NSFW (Not Safe For Work).
142
+ */
143
+ get nsfw(): boolean;
144
+ /**
145
+ * Whether the user is admin.
146
+ */
147
+ get isAdmin(): boolean;
148
+ /**
149
+ * The permissions the user has on the subreddit.
150
+ */
151
+ get modPermissions(): Map<string, ModeratorPermission[]>;
152
+ /**
153
+ * Returns the HTTP URL for the user
154
+ */
155
+ get url(): string;
156
+ /**
157
+ * Returns a permalink path relative to https://www.reddit.com
158
+ */
159
+ get permalink(): string;
160
+ /**
161
+ * Indicates whether or not the user has verified their email address.
162
+ */
163
+ get hasVerifiedEmail(): boolean;
164
+ toJSON(): Pick<User, 'id' | 'username' | 'createdAt' | 'linkKarma' | 'commentKarma' | 'nsfw'> & {
165
+ modPermissionsBySubreddit: Record<string, ModeratorPermission[]>;
166
+ };
167
+ /**
168
+ * Get the mod permissions the user has on the subreddit if they are a moderator.
169
+ *
170
+ * @param subredditName - name of the subreddit
171
+ * @returns the moderator permissions the user has on the subreddit
172
+ */
173
+ getModPermissionsForSubreddit(subredditName: string): Promise<ModeratorPermission[]>;
174
+ /**
175
+ * Get the user's comments.
176
+ *
177
+ * @param options - Options for the request
178
+ * @param options.sort - The sort order of the comments. e.g. 'new'
179
+ * @param options.timeframe - The timeframe of the comments. e.g. 'all'
180
+ * @param options.limit - The maximum number of comments to return. e.g. 1000
181
+ * @param options.pageSize - The number of comments to return per request. e.g. 100
182
+ * @returns A Listing of Comment objects.
183
+ */
184
+ getComments(options: Omit<GetCommentsByUserOptions, 'username'>): Listing<Comment>;
185
+ /**
186
+ * Get the user's posts.
187
+ *
188
+ * @param options - Options for the request
189
+ * @param options.sort - The sort order of the posts. e.g. 'new'
190
+ * @param options.timeframe - The timeframe of the posts. e.g. 'all'
191
+ * @param options.limit - The maximum number of posts to return. e.g. 1000
192
+ * @param options.pageSize - The number of posts to return per request. e.g. 100
193
+ * @returns A Listing of Post objects.
194
+ */
195
+ getPosts(options: Omit<GetPostsByUserOptions, 'username'>): Listing<Post>;
196
+ /**
197
+ * Retrieve the user's flair for the subreddit.
198
+ *
199
+ * @param subreddit - The name of the subreddit associated with the user's flair.
200
+ *
201
+ * @example
202
+ * ```ts
203
+ * const username = "badapple"
204
+ * const subredditName = "mysubreddit"
205
+ * const user = await reddit.getUserByUsername(username);
206
+ * const userFlair = await user.getUserFlairBySubreddit(subredditName);
207
+ * ```
208
+ */
209
+ getUserFlairBySubreddit(subreddit: string): Promise<UserFlair | undefined>;
210
+ getSnoovatarUrl(): Promise<string | undefined>;
211
+ /**
212
+ * Gets social links of the user
213
+ *
214
+ * @returns A Promise that resolves an Array of UserSocialLink objects
215
+ * @example
216
+ * ```ts
217
+ * const socialLinks = await user.getSocialLinks();
218
+ * ```
219
+ */
220
+ getSocialLinks(): Promise<UserSocialLink[]>;
221
+ /** @internal */
222
+ static getById(id: T2ID): Promise<User | undefined>;
223
+ /** @internal */
224
+ static getByUsername(username: string): Promise<User | undefined>;
225
+ /** @internal */
226
+ static getSubredditUsersByType(options: GetSubredditUsersByTypeOptions): Listing<User>;
227
+ /** @internal */
228
+ static createRelationship(options: CreateRelationshipOptions): Promise<void>;
229
+ /** @internal */
230
+ static removeRelationship(options: RemoveRelationshipOptions): Promise<void>;
231
+ /** @internal */
232
+ static setModeratorPermissions(username: string, subredditName: string, permissions: ModeratorPermission[]): Promise<void>;
233
+ /** @internal */
234
+ static getSnoovatarUrl(username: string): Promise<string | undefined>;
235
+ /** @internal */
236
+ static getOverview(options: GetUserOverviewOptions): Listing<Post | Comment>;
237
+ }
238
+ //# sourceMappingURL=User.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"User.d.ts","sourceRoot":"","sources":["../../src/models/User.ts"],"names":[],"mappings":"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"}