@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
package/common.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export declare const RunAs: {
2
+ readonly APP: 0;
3
+ readonly USER: 1;
4
+ readonly UNSPECIFIED: 2;
5
+ };
6
+ export type UserGeneratedContent = {
7
+ text: string;
8
+ imageUrls?: string[];
9
+ };
10
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;CAIR,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC"}
package/common.js ADDED
@@ -0,0 +1,5 @@
1
+ export const RunAs = {
2
+ APP: 0,
3
+ USER: 1,
4
+ UNSPECIFIED: 2,
5
+ };
package/getReddit.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import { RedditClient } from './RedditClient.js';
2
+ export declare function getReddit(): RedditClient;
3
+ //# sourceMappingURL=getReddit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getReddit.d.ts","sourceRoot":"","sources":["../src/getReddit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,wBAAgB,SAAS,IAAI,YAAY,CAKxC"}
package/getReddit.js ADDED
@@ -0,0 +1,8 @@
1
+ import { RedditClient } from './RedditClient.js';
2
+ let redditClient;
3
+ export function getReddit() {
4
+ if (!redditClient) {
5
+ redditClient = new RedditClient();
6
+ }
7
+ return redditClient;
8
+ }
@@ -0,0 +1,23 @@
1
+ import { type Flair, type GraphQL, type LinksAndComments, type Listings, type Moderation, type ModNote, type NewModmail, type PrivateMessages, type Subreddits, type Users, type Widgets, type Wiki } from '@devvit/protos';
2
+ /**
3
+ * @internal
4
+ */
5
+ export type RedditApiPluginClient = {
6
+ Flair: Flair;
7
+ GraphQL: GraphQL;
8
+ LinksAndComments: LinksAndComments;
9
+ Listings: Listings;
10
+ ModNote: ModNote;
11
+ Moderation: Moderation;
12
+ NewModmail: NewModmail;
13
+ PrivateMessages: PrivateMessages;
14
+ Subreddits: Subreddits;
15
+ Users: Users;
16
+ Widgets: Widgets;
17
+ Wiki: Wiki;
18
+ };
19
+ /**
20
+ * @internal
21
+ */
22
+ export declare function getRedditApiPlugins(): RedditApiPluginClient;
23
+ //# sourceMappingURL=getRedditApiPlugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRedditApiPlugins.d.ts","sourceRoot":"","sources":["../src/getRedditApiPlugins.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,OAAO,EAEZ,KAAK,gBAAgB,EAErB,KAAK,QAAQ,EAEb,KAAK,UAAU,EAEf,KAAK,OAAO,EAEZ,KAAK,UAAU,EAEf,KAAK,eAAe,EAEpB,KAAK,UAAU,EAEf,KAAK,KAAK,EAEV,KAAK,OAAO,EAEZ,KAAK,IAAI,EAEV,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAIF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,qBAAqB,CAkB3D"}
@@ -0,0 +1,25 @@
1
+ import { FlairDefinition, GraphQLDefinition, LinksAndCommentsDefinition, ListingsDefinition, ModerationDefinition, ModNoteDefinition, NewModmailDefinition, PrivateMessagesDefinition, SubredditsDefinition, UsersDefinition, WidgetsDefinition, WikiDefinition, } from '@devvit/protos';
2
+ import { getDevvitConfig } from '@devvit/server/get-devvit-config.js';
3
+ let redditApiPlugin;
4
+ /**
5
+ * @internal
6
+ */
7
+ export function getRedditApiPlugins() {
8
+ if (!redditApiPlugin) {
9
+ redditApiPlugin = {
10
+ Flair: getDevvitConfig().use(FlairDefinition),
11
+ GraphQL: getDevvitConfig().use(GraphQLDefinition),
12
+ LinksAndComments: getDevvitConfig().use(LinksAndCommentsDefinition),
13
+ Listings: getDevvitConfig().use(ListingsDefinition),
14
+ ModNote: getDevvitConfig().use(ModNoteDefinition),
15
+ Moderation: getDevvitConfig().use(ModerationDefinition),
16
+ NewModmail: getDevvitConfig().use(NewModmailDefinition),
17
+ PrivateMessages: getDevvitConfig().use(PrivateMessagesDefinition),
18
+ Subreddits: getDevvitConfig().use(SubredditsDefinition),
19
+ Users: getDevvitConfig().use(UsersDefinition),
20
+ Widgets: getDevvitConfig().use(WidgetsDefinition),
21
+ Wiki: getDevvitConfig().use(WikiDefinition),
22
+ };
23
+ }
24
+ return redditApiPlugin;
25
+ }
@@ -0,0 +1,6 @@
1
+ import { type UserActions } from '@devvit/protos';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare function getUserActionsPlugin(): UserActions;
6
+ //# sourceMappingURL=getUserActionsPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUserActionsPlugin.d.ts","sourceRoot":"","sources":["../src/getUserActionsPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,gBAAgB,CAAC;AAKzE;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAKlD"}
@@ -0,0 +1,12 @@
1
+ import { UserActionsDefinition } from '@devvit/protos';
2
+ import { getDevvitConfig } from '@devvit/server/get-devvit-config.js';
3
+ let userActionsPlugin;
4
+ /**
5
+ * @internal
6
+ */
7
+ export function getUserActionsPlugin() {
8
+ if (!userActionsPlugin) {
9
+ userActionsPlugin = getDevvitConfig().use(UserActionsDefinition);
10
+ }
11
+ return userActionsPlugin;
12
+ }
@@ -0,0 +1,10 @@
1
+ import type { QueryResponse } from '@devvit/protos';
2
+ import type { JSONObject } from '@devvit/shared-types/json.js';
3
+ export declare class GraphQL {
4
+ #private;
5
+ /** @internal */
6
+ static queryWithQueryString(q: string): Promise<QueryResponse>;
7
+ /** @internal */
8
+ static query(operationName: string, id: string, variables: JSONObject): Promise<QueryResponse>;
9
+ }
10
+ //# sourceMappingURL=GraphQL.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQL.d.ts","sourceRoot":"","sources":["../../src/graphql/GraphQL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,qBAAa,OAAO;;IAClB,gBAAgB;IAChB,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAS9D,gBAAgB;IAChB,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;CAc/F"}
@@ -0,0 +1,27 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _a, _GraphQL_metadata_get;
7
+ import { getContext } from '@devvit/server';
8
+ import { getRedditApiPlugins } from '../getRedditApiPlugins.js';
9
+ export class GraphQL {
10
+ /** @internal */
11
+ static queryWithQueryString(q) {
12
+ return getRedditApiPlugins().GraphQL.Query({
13
+ query: q,
14
+ }, __classPrivateFieldGet(this, _a, "a", _GraphQL_metadata_get));
15
+ }
16
+ /** @internal */
17
+ static query(operationName, id, variables) {
18
+ return getRedditApiPlugins().GraphQL.PersistedQuery({
19
+ operationName,
20
+ id,
21
+ variables,
22
+ }, __classPrivateFieldGet(this, _a, "a", _GraphQL_metadata_get));
23
+ }
24
+ }
25
+ _a = GraphQL, _GraphQL_metadata_get = function _GraphQL_metadata_get() {
26
+ return getContext().debug.metadata;
27
+ };
@@ -0,0 +1,2 @@
1
+ export declare function makeGettersEnumerable(obj: object): void;
2
+ //# sourceMappingURL=makeGettersEnumerable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeGettersEnumerable.d.ts","sourceRoot":"","sources":["../../src/helpers/makeGettersEnumerable.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAkBvD"}
@@ -0,0 +1,19 @@
1
+ export function makeGettersEnumerable(obj) {
2
+ // Get a list of all the properties on this class's constructor.
3
+ const descriptors = Object.getOwnPropertyDescriptors(obj.constructor.prototype);
4
+ // For each property on the constructor...
5
+ for (const [key, descriptor] of Object.entries(descriptors)) {
6
+ // If it's a getter...
7
+ if (descriptor.get) {
8
+ // Create a property **on this object directly** that mirrors the one on the prototype, except it's
9
+ // enumerable. It has to be on the object directly for things like Object.keys() to find it. For details,
10
+ // see the MSDN documentation on how this works:
11
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties#traversing_object_properties
12
+ // This feels silly to me, but it's the only way that actually works.
13
+ Object.defineProperty(obj, key, {
14
+ ...descriptor,
15
+ enumerable: true,
16
+ });
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,6 @@
1
+ import type { ModeratorPermission } from '../models/User.js';
2
+ export declare const MODERATOR_PERMISSIONS: ModeratorPermission[];
3
+ export declare function formatPermissions(permissions: string[], allPermissions: string[]): string;
4
+ export declare function formatModeratorPermissions(permissions: string[]): string;
5
+ export declare function validModPermissions(permissions: string[]): ModeratorPermission[];
6
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/helpers/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,eAAO,MAAM,qBAAqB,EAAE,mBAAmB,EAYtD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAIzF;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAExE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAIhF"}
@@ -0,0 +1,24 @@
1
+ export const MODERATOR_PERMISSIONS = [
2
+ 'all',
3
+ 'wiki',
4
+ 'posts',
5
+ 'access',
6
+ 'mail',
7
+ 'config',
8
+ 'flair',
9
+ 'channels',
10
+ 'chat_config',
11
+ 'chat_operator',
12
+ 'community_chat',
13
+ ];
14
+ export function formatPermissions(permissions, allPermissions) {
15
+ return allPermissions
16
+ .map((permission) => (permissions.includes(permission) ? '+' : '-') + permission)
17
+ .join(',');
18
+ }
19
+ export function formatModeratorPermissions(permissions) {
20
+ return formatPermissions(permissions, MODERATOR_PERMISSIONS);
21
+ }
22
+ export function validModPermissions(permissions) {
23
+ return permissions.filter((permission) => MODERATOR_PERMISSIONS.includes(permission));
24
+ }
@@ -0,0 +1,3 @@
1
+ import { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.js';
2
+ export declare function richtextToString(richtext: RichTextBuilder | object | string): string;
3
+ //# sourceMappingURL=richtextToString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richtextToString.d.ts","sourceRoot":"","sources":["../../src/helpers/richtextToString.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AAEnF,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAYpF"}
@@ -0,0 +1,14 @@
1
+ import { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.js';
2
+ export function richtextToString(richtext) {
3
+ let richtextString;
4
+ if (richtext instanceof RichTextBuilder) {
5
+ richtextString = richtext.build();
6
+ }
7
+ else if (typeof richtext === 'object') {
8
+ richtextString = JSON.stringify(richtext);
9
+ }
10
+ else {
11
+ richtextString = richtext;
12
+ }
13
+ return richtextString;
14
+ }
@@ -0,0 +1,4 @@
1
+ import type { CustomPostTextFallbackOptions } from '../models/Post.js';
2
+ /** @internal */
3
+ export declare const getCustomPostRichTextFallback: (textFallbackOptions: CustomPostTextFallbackOptions) => string;
4
+ //# sourceMappingURL=textFallbackToRichtext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textFallbackToRichtext.d.ts","sourceRoot":"","sources":["../../src/helpers/textFallbackToRichtext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA8B,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAEnG,gBAAgB;AAChB,eAAO,MAAM,6BAA6B,GACxC,qBAAqB,6BAA6B,KACjD,MAG6D,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.js';
2
+ /** @internal */
3
+ export const getCustomPostRichTextFallback = (textFallbackOptions) => 'text' in textFallbackOptions
4
+ ? textFallbackOptions.text
5
+ : richTextToTextFallbackString(textFallbackOptions.richtext);
6
+ const richTextToTextFallbackString = (textFallback) => {
7
+ if (textFallback instanceof RichTextBuilder) {
8
+ return textFallback.build();
9
+ }
10
+ else if (typeof textFallback === 'object') {
11
+ return JSON.stringify(textFallback);
12
+ }
13
+ return textFallback;
14
+ };
package/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { getReddit } from './getReddit.js';
2
+ export type { RedditClient } from './RedditClient.js';
3
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
package/index.js ADDED
@@ -0,0 +1 @@
1
+ export { getReddit } from './getReddit.js';
@@ -0,0 +1,138 @@
1
+ import type { Comment as CommentProto, RedditObject } from '@devvit/protos';
2
+ import type { RichTextBuilder } from '@devvit/shared-types/richtext/RichTextBuilder.js';
3
+ import type { T1ID, T2ID, T3ID, T5ID } from '@devvit/shared-types/tid.js';
4
+ import { Listing } from './Listing.js';
5
+ import { User } from './User.js';
6
+ export type CommentSort = 'confidence' | 'top' | 'new' | 'controversial' | 'old' | 'random' | 'qa' | 'live';
7
+ export type GetCommentsOptions = {
8
+ postId: string;
9
+ commentId?: string | undefined;
10
+ depth?: number;
11
+ pageSize?: number;
12
+ limit?: number;
13
+ sort?: CommentSort;
14
+ };
15
+ export type CommentSubmissionOptions = {
16
+ text: string;
17
+ runAs?: 'USER' | 'APP';
18
+ } | {
19
+ richtext: object | RichTextBuilder;
20
+ runAs?: 'USER' | 'APP';
21
+ };
22
+ export type EditCommentOptions = CommentSubmissionOptions;
23
+ export type ReplyToCommentOptions = CommentSubmissionOptions;
24
+ export type GetCommentsByUserOptions = {
25
+ username: string;
26
+ sort?: 'hot' | 'new' | 'top' | 'controversial';
27
+ timeframe?: 'hour' | 'day' | 'week' | 'month' | 'year' | 'all';
28
+ pageSize?: number;
29
+ limit?: number;
30
+ after?: string;
31
+ before?: string;
32
+ };
33
+ export declare class Comment {
34
+ #private;
35
+ /**
36
+ * @internal
37
+ */
38
+ constructor(data: RedditObject | CommentProto);
39
+ get id(): T1ID;
40
+ get authorId(): T2ID | undefined;
41
+ get authorName(): string;
42
+ get subredditId(): T5ID;
43
+ get subredditName(): string;
44
+ get body(): string;
45
+ get createdAt(): Date;
46
+ get parentId(): T1ID | T3ID;
47
+ get postId(): T3ID;
48
+ get replies(): Listing<Comment>;
49
+ get distinguishedBy(): string | undefined;
50
+ get locked(): boolean;
51
+ get stickied(): boolean;
52
+ get removed(): boolean;
53
+ get approved(): boolean;
54
+ get approvedAtUtc(): number;
55
+ get bannedAtUtc(): number;
56
+ get spam(): boolean;
57
+ get edited(): boolean;
58
+ get numReports(): number;
59
+ get collapsedBecauseCrowdControl(): boolean;
60
+ get score(): number;
61
+ get permalink(): string;
62
+ get userReportReasons(): string[];
63
+ get modReportReasons(): string[];
64
+ get url(): string;
65
+ get ignoringReports(): boolean;
66
+ toJSON(): Pick<Comment, 'id' | 'authorName' | 'subredditId' | 'subredditName' | 'body' | 'createdAt' | 'parentId' | 'postId' | 'replies' | 'approved' | 'locked' | 'removed' | 'stickied' | 'spam' | 'edited' | 'distinguishedBy' | 'numReports' | 'collapsedBecauseCrowdControl' | 'score' | 'permalink' | 'userReportReasons' | 'modReportReasons' | 'url' | 'ignoringReports'>;
67
+ isLocked(): boolean;
68
+ isApproved(): boolean;
69
+ isRemoved(): boolean;
70
+ isSpam(): boolean;
71
+ isStickied(): boolean;
72
+ isDistinguished(): boolean;
73
+ isEdited(): boolean;
74
+ isIgnoringReports(): boolean;
75
+ delete(): Promise<void>;
76
+ edit(options: EditCommentOptions): Promise<this>;
77
+ approve(): Promise<void>;
78
+ remove(isSpam?: boolean): Promise<void>;
79
+ lock(): Promise<void>;
80
+ unlock(): Promise<void>;
81
+ reply(options: ReplyToCommentOptions): Promise<Comment>;
82
+ getAuthor(): Promise<User | undefined>;
83
+ distinguish(makeSticky?: boolean): Promise<void>;
84
+ distinguishAsAdmin(makeSticky?: boolean): Promise<void>;
85
+ undistinguish(): Promise<void>;
86
+ ignoreReports(): Promise<void>;
87
+ unignoreReports(): Promise<void>;
88
+ /**
89
+ * Add a mod note for why the comment was removed
90
+ *
91
+ * @param options.reasonId id of a Removal Reason - you can leave this as an empty string if you don't have one
92
+ * @param options.modNote the reason for removal (maximum 100 characters) (optional)
93
+ * @returns
94
+ */
95
+ addRemovalNote(options: {
96
+ reasonId: string;
97
+ modNote?: string;
98
+ }): Promise<void>;
99
+ /** @internal */
100
+ static getById(id: T1ID): Promise<Comment>;
101
+ /** @internal */
102
+ static getComments(options: GetCommentsOptions): Listing<Comment>;
103
+ /** @internal */
104
+ static edit(options: CommentSubmissionOptions & {
105
+ id: T1ID;
106
+ }): Promise<Comment>;
107
+ /** @internal */
108
+ static delete(id: T1ID): Promise<void>;
109
+ /** @internal */
110
+ static approve(id: T1ID): Promise<void>;
111
+ /** @internal */
112
+ static remove(id: T1ID, isSpam?: boolean): Promise<void>;
113
+ /** @internal */
114
+ static lock(id: T1ID): Promise<void>;
115
+ /** @internal */
116
+ static unlock(id: T1ID): Promise<void>;
117
+ /** @internal */
118
+ static submit(options: CommentSubmissionOptions & {
119
+ id: T1ID | T3ID;
120
+ }): Promise<Comment>;
121
+ /** @internal */
122
+ static distinguish(id: T1ID, sticky: boolean, asAdmin: boolean): Promise<{
123
+ distinguishedBy: string | undefined;
124
+ stickied: boolean;
125
+ }>;
126
+ /** @internal */
127
+ static undistinguish(id: T1ID): Promise<{
128
+ distinguishedBy: string | undefined;
129
+ stickied: boolean;
130
+ }>;
131
+ /** @internal */
132
+ static getCommentsByUser(options: GetCommentsByUserOptions): Listing<Comment>;
133
+ /** @internal */
134
+ static ignoreReports(id: T1ID): Promise<void>;
135
+ /** @internal */
136
+ static unignoreReports(id: T1ID): Promise<void>;
137
+ }
138
+ //# sourceMappingURL=Comment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Comment.d.ts","sourceRoot":"","sources":["../../src/models/Comment.ts"],"names":[],"mappings":"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"}