@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.
- package/LICENSE +26 -0
- package/README.md +5 -0
- package/RedditClient.d.ts +1155 -0
- package/RedditClient.d.ts.map +1 -0
- package/RedditClient.js +1417 -0
- package/common.d.ts +10 -0
- package/common.d.ts.map +1 -0
- package/common.js +5 -0
- package/getReddit.d.ts +3 -0
- package/getReddit.d.ts.map +1 -0
- package/getReddit.js +8 -0
- package/getRedditApiPlugins.d.ts +23 -0
- package/getRedditApiPlugins.d.ts.map +1 -0
- package/getRedditApiPlugins.js +25 -0
- package/getUserActionsPlugin.d.ts +6 -0
- package/getUserActionsPlugin.d.ts.map +1 -0
- package/getUserActionsPlugin.js +12 -0
- package/graphql/GraphQL.d.ts +10 -0
- package/graphql/GraphQL.d.ts.map +1 -0
- package/graphql/GraphQL.js +27 -0
- package/helpers/makeGettersEnumerable.d.ts +2 -0
- package/helpers/makeGettersEnumerable.d.ts.map +1 -0
- package/helpers/makeGettersEnumerable.js +19 -0
- package/helpers/permissions.d.ts +6 -0
- package/helpers/permissions.d.ts.map +1 -0
- package/helpers/permissions.js +24 -0
- package/helpers/richtextToString.d.ts +3 -0
- package/helpers/richtextToString.d.ts.map +1 -0
- package/helpers/richtextToString.js +14 -0
- package/helpers/textFallbackToRichtext.d.ts +4 -0
- package/helpers/textFallbackToRichtext.d.ts.map +1 -0
- package/helpers/textFallbackToRichtext.js +14 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +1 -0
- package/models/Comment.d.ts +138 -0
- package/models/Comment.d.ts.map +1 -0
- package/models/Comment.js +597 -0
- package/models/Flair.d.ts +171 -0
- package/models/Flair.d.ts.map +1 -0
- package/models/Flair.js +293 -0
- package/models/Listing.d.ts +53 -0
- package/models/Listing.d.ts.map +1 -0
- package/models/Listing.js +101 -0
- package/models/ModAction.d.ts +32 -0
- package/models/ModAction.d.ts.map +1 -0
- package/models/ModAction.js +70 -0
- package/models/ModMail.d.ts +655 -0
- package/models/ModMail.d.ts.map +1 -0
- package/models/ModMail.js +723 -0
- package/models/ModNote.d.ts +57 -0
- package/models/ModNote.d.ts.map +1 -0
- package/models/ModNote.js +103 -0
- package/models/Post.d.ts +491 -0
- package/models/Post.d.ts.map +1 -0
- package/models/Post.js +1022 -0
- package/models/PrivateMessage.d.ts +52 -0
- package/models/PrivateMessage.d.ts.map +1 -0
- package/models/PrivateMessage.js +126 -0
- package/models/Subreddit.d.ts +606 -0
- package/models/Subreddit.d.ts.map +1 -0
- package/models/Subreddit.js +750 -0
- package/models/User.d.ts +238 -0
- package/models/User.d.ts.map +1 -0
- package/models/User.js +458 -0
- package/models/Vault.d.ts +32 -0
- package/models/Vault.d.ts.map +1 -0
- package/models/Vault.js +25 -0
- package/models/Widget.d.ts +133 -0
- package/models/Widget.d.ts.map +1 -0
- package/models/Widget.js +467 -0
- package/models/WikiPage.d.ts +137 -0
- package/models/WikiPage.d.ts.map +1 -0
- package/models/WikiPage.js +329 -0
- package/models/index.d.ts +14 -0
- package/models/index.d.ts.map +1 -0
- package/models/index.js +13 -0
- package/package.json +46 -0
- package/tests/comment.api.test.d.ts.map +1 -0
- package/tests/flair.api.test.d.ts.map +1 -0
- package/tests/modmail.api.test.d.ts.map +1 -0
- package/tests/modnote.api.test.d.ts.map +1 -0
- package/tests/post.api.test.d.ts.map +1 -0
- package/tests/subreddit.api.test.d.ts.map +1 -0
- package/tests/user.api.test.d.ts.map +1 -0
- package/tests/utils/createTestPreview.d.ts +2 -0
- package/tests/utils/createTestPreview.d.ts.map +1 -0
- package/tests/utils/createTestPreview.js +5 -0
- package/tests/utils/redditApiPluginsMock.d.ts +203 -0
- package/tests/utils/redditApiPluginsMock.d.ts.map +1 -0
- package/tests/utils/redditApiPluginsMock.js +202 -0
- package/tests/utils/runWithTestContext.d.ts +4 -0
- package/tests/utils/runWithTestContext.d.ts.map +1 -0
- package/tests/utils/runWithTestContext.js +12 -0
- package/tests/utils/userActionsPluginMock.d.ts +6 -0
- package/tests/utils/userActionsPluginMock.d.ts.map +1 -0
- package/tests/utils/userActionsPluginMock.js +5 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { RedditObject } from '@devvit/protos';
|
|
2
|
+
import type { Prettify } from '@devvit/shared-types/Prettify.js';
|
|
3
|
+
import type { T2ID, T5ID, TID } from '@devvit/shared-types/tid.js';
|
|
4
|
+
import type { ListingFetchOptions } from './Listing.js';
|
|
5
|
+
import { Listing } from './Listing.js';
|
|
6
|
+
import type { Subreddit } from './Subreddit.js';
|
|
7
|
+
import type { User } from './User.js';
|
|
8
|
+
export type SendPrivateMessageOptions = {
|
|
9
|
+
/** Recipient username (without the leading u/), or /r/name for that subreddit's moderators. */
|
|
10
|
+
to: string;
|
|
11
|
+
/** The subject of the message. */
|
|
12
|
+
subject: string;
|
|
13
|
+
/** The body of the message in Markdown text format. */
|
|
14
|
+
text: string;
|
|
15
|
+
};
|
|
16
|
+
export type SendPrivateMessageAsSubredditOptions = SendPrivateMessageOptions & {
|
|
17
|
+
/** The name of the subreddit the message is being sent from (without the leading r/) */
|
|
18
|
+
fromSubredditName: string;
|
|
19
|
+
};
|
|
20
|
+
export type GetPrivateMessagesOptions = Prettify<{
|
|
21
|
+
type?: 'inbox' | 'unread' | 'sent';
|
|
22
|
+
} & ListingFetchOptions>;
|
|
23
|
+
type PrivateMessageAuthor = (Pick<User, 'username'> & {
|
|
24
|
+
type: 'user';
|
|
25
|
+
id?: T2ID | undefined;
|
|
26
|
+
}) | (Pick<Subreddit, 'name'> & {
|
|
27
|
+
type: 'subreddit';
|
|
28
|
+
id?: T5ID | undefined;
|
|
29
|
+
});
|
|
30
|
+
export declare class PrivateMessage {
|
|
31
|
+
#private;
|
|
32
|
+
/** @internal */
|
|
33
|
+
static getMessages(options: GetPrivateMessagesOptions): Promise<Listing<PrivateMessage>>;
|
|
34
|
+
/** @internal */
|
|
35
|
+
static send({ to, subject, text }: SendPrivateMessageOptions): Promise<void>;
|
|
36
|
+
/** @internal */
|
|
37
|
+
static sendAsSubreddit({ to, fromSubredditName, subject, text, }: SendPrivateMessageAsSubredditOptions): Promise<void>;
|
|
38
|
+
/** @internal */
|
|
39
|
+
static markAllAsRead(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* @internal
|
|
42
|
+
*/
|
|
43
|
+
constructor(data: RedditObject);
|
|
44
|
+
get id(): TID;
|
|
45
|
+
get from(): PrivateMessageAuthor;
|
|
46
|
+
get body(): string;
|
|
47
|
+
get bodyHtml(): string;
|
|
48
|
+
get created(): Date;
|
|
49
|
+
markAsRead(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=PrivateMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrivateMessage.d.ts","sourceRoot":"","sources":["../../src/models/PrivateMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAKnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,yBAAyB,GAAG;IACtC,+FAA+F;IAC/F,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,yBAAyB,GAAG;IAC7E,wFAAwF;IACxF,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C;IACE,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC,GAAG,mBAAmB,CACxB,CAAC;AAEF,KAAK,oBAAoB,GACrB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,CAAC,GAClE,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,CAAC,CAAC;AAE7E,qBAAa,cAAc;;IAOzB,gBAAgB;WACH,WAAW,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAyB9F,gBAAgB;WACH,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,gBAAgB;WACH,eAAe,CAAC,EAC3B,EAAE,EACF,iBAAiB,EACjB,OAAO,EACP,IAAI,GACL,EAAE,oCAAoC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvD,gBAAgB;WACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3C;;OAEG;gBACS,IAAI,EAAE,YAAY;IAiC9B,IAAI,EAAE,IAAI,GAAG,CAEZ;IAED,IAAI,IAAI,IAAI,oBAAoB,CAE/B;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,OAAO,IAAI,IAAI,CAElB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAQlC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
+
};
|
|
12
|
+
var _a, _PrivateMessage_id, _PrivateMessage_from, _PrivateMessage_body, _PrivateMessage_bodyHtml, _PrivateMessage_created, _PrivateMessage_metadata_get;
|
|
13
|
+
import { getContext } from '@devvit/server';
|
|
14
|
+
import { assertNonNull } from '@devvit/shared-types/NonNull.js';
|
|
15
|
+
import { asT2ID, asT5ID, asTID } from '@devvit/shared-types/tid.js';
|
|
16
|
+
import { getRedditApiPlugins } from '../getRedditApiPlugins.js';
|
|
17
|
+
import { makeGettersEnumerable } from '../helpers/makeGettersEnumerable.js';
|
|
18
|
+
import { Listing } from './Listing.js';
|
|
19
|
+
export class PrivateMessage {
|
|
20
|
+
/** @internal */
|
|
21
|
+
static async getMessages(options) {
|
|
22
|
+
const client = getRedditApiPlugins().PrivateMessages;
|
|
23
|
+
return new Listing({
|
|
24
|
+
...options,
|
|
25
|
+
fetch: async (fetchOpts) => {
|
|
26
|
+
const listing = await client.MessageWhere({
|
|
27
|
+
...fetchOpts,
|
|
28
|
+
where: options.type ?? 'inbox',
|
|
29
|
+
}, __classPrivateFieldGet(this, _a, "a", _PrivateMessage_metadata_get));
|
|
30
|
+
return {
|
|
31
|
+
after: listing.data?.after,
|
|
32
|
+
before: listing.data?.before,
|
|
33
|
+
children: (listing.data?.children
|
|
34
|
+
?.map((child) => {
|
|
35
|
+
return new _a(child.data);
|
|
36
|
+
})
|
|
37
|
+
.filter(Boolean) || []),
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/** @internal */
|
|
43
|
+
static async send({ to, subject, text }) {
|
|
44
|
+
const client = getRedditApiPlugins().PrivateMessages;
|
|
45
|
+
await client.Compose({
|
|
46
|
+
to,
|
|
47
|
+
subject,
|
|
48
|
+
text,
|
|
49
|
+
fromSr: '',
|
|
50
|
+
}, __classPrivateFieldGet(this, _a, "a", _PrivateMessage_metadata_get));
|
|
51
|
+
}
|
|
52
|
+
/** @internal */
|
|
53
|
+
static async sendAsSubreddit({ to, fromSubredditName, subject, text, }) {
|
|
54
|
+
const client = getRedditApiPlugins().PrivateMessages;
|
|
55
|
+
await client.Compose({
|
|
56
|
+
to,
|
|
57
|
+
fromSr: fromSubredditName,
|
|
58
|
+
subject,
|
|
59
|
+
text,
|
|
60
|
+
}, __classPrivateFieldGet(this, _a, "a", _PrivateMessage_metadata_get));
|
|
61
|
+
}
|
|
62
|
+
/** @internal */
|
|
63
|
+
static async markAllAsRead() {
|
|
64
|
+
const client = getRedditApiPlugins().PrivateMessages;
|
|
65
|
+
await client.ReadAllMessages({ filterTypes: '' }, __classPrivateFieldGet(this, _a, "a", _PrivateMessage_metadata_get));
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @internal
|
|
69
|
+
*/
|
|
70
|
+
constructor(data) {
|
|
71
|
+
_PrivateMessage_id.set(this, void 0);
|
|
72
|
+
_PrivateMessage_from.set(this, void 0);
|
|
73
|
+
_PrivateMessage_body.set(this, void 0);
|
|
74
|
+
_PrivateMessage_bodyHtml.set(this, void 0);
|
|
75
|
+
_PrivateMessage_created.set(this, void 0);
|
|
76
|
+
makeGettersEnumerable(this);
|
|
77
|
+
assertNonNull(data.id, 'PrivateMessage: Invalid data, no id');
|
|
78
|
+
assertNonNull(data.name, 'PrivateMessage: Invalid data, no name');
|
|
79
|
+
assertNonNull(data.created, 'PrivateMessage: Invalid data, no created date');
|
|
80
|
+
__classPrivateFieldSet(this, _PrivateMessage_id, asTID(data.name), "f");
|
|
81
|
+
if (data.author != null) {
|
|
82
|
+
__classPrivateFieldSet(this, _PrivateMessage_from, {
|
|
83
|
+
type: 'user',
|
|
84
|
+
username: data.author,
|
|
85
|
+
id: data.authorFullname ? asT2ID(data.authorFullname) : undefined,
|
|
86
|
+
}, "f");
|
|
87
|
+
}
|
|
88
|
+
else if (data.subreddit != null) {
|
|
89
|
+
__classPrivateFieldSet(this, _PrivateMessage_from, {
|
|
90
|
+
type: 'subreddit',
|
|
91
|
+
name: data.subreddit,
|
|
92
|
+
id: data.subredditId ? asT5ID(data.subredditId) : undefined,
|
|
93
|
+
}, "f");
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
throw new Error('PrivateMessage: Invalid data, no author or subreddit');
|
|
97
|
+
}
|
|
98
|
+
__classPrivateFieldSet(this, _PrivateMessage_body, data.body ?? '', "f");
|
|
99
|
+
__classPrivateFieldSet(this, _PrivateMessage_bodyHtml, data.bodyHtml ?? '', "f");
|
|
100
|
+
const created = new Date(0);
|
|
101
|
+
created.setUTCSeconds(data.createdUtc);
|
|
102
|
+
__classPrivateFieldSet(this, _PrivateMessage_created, created, "f");
|
|
103
|
+
}
|
|
104
|
+
get id() {
|
|
105
|
+
return __classPrivateFieldGet(this, _PrivateMessage_id, "f");
|
|
106
|
+
}
|
|
107
|
+
get from() {
|
|
108
|
+
return __classPrivateFieldGet(this, _PrivateMessage_from, "f");
|
|
109
|
+
}
|
|
110
|
+
get body() {
|
|
111
|
+
return __classPrivateFieldGet(this, _PrivateMessage_body, "f");
|
|
112
|
+
}
|
|
113
|
+
get bodyHtml() {
|
|
114
|
+
return __classPrivateFieldGet(this, _PrivateMessage_bodyHtml, "f");
|
|
115
|
+
}
|
|
116
|
+
get created() {
|
|
117
|
+
return __classPrivateFieldGet(this, _PrivateMessage_created, "f");
|
|
118
|
+
}
|
|
119
|
+
async markAsRead() {
|
|
120
|
+
const client = getRedditApiPlugins().PrivateMessages;
|
|
121
|
+
await client.ReadMessage({ id: __classPrivateFieldGet(this, _PrivateMessage_id, "f") }, getContext().debug.metadata);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
_a = PrivateMessage, _PrivateMessage_id = new WeakMap(), _PrivateMessage_from = new WeakMap(), _PrivateMessage_body = new WeakMap(), _PrivateMessage_bodyHtml = new WeakMap(), _PrivateMessage_created = new WeakMap(), _PrivateMessage_metadata_get = function _PrivateMessage_metadata_get() {
|
|
125
|
+
return getContext().debug.metadata;
|
|
126
|
+
};
|