lemmy-js-client 0.20.0-modlog-combined.1 → 0.20.0-move-community-hidden.1

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 (134) hide show
  1. package/README.md +13 -4
  2. package/dist/http.d.ts +189 -466
  3. package/dist/http.js +1109 -418
  4. package/dist/index.d.ts +23 -25
  5. package/dist/other_types.d.ts +81 -0
  6. package/dist/types/Comment.d.ts +9 -0
  7. package/dist/types/CommentReplyView.d.ts +5 -3
  8. package/dist/types/CommentReport.d.ts +1 -0
  9. package/dist/types/CommentReportView.d.ts +4 -3
  10. package/dist/types/CommentSlimView.d.ts +22 -0
  11. package/dist/types/CommentView.d.ts +5 -3
  12. package/dist/types/Community.d.ts +24 -6
  13. package/dist/types/CommunityReportView.d.ts +0 -2
  14. package/dist/types/CommunitySortType.d.ts +1 -1
  15. package/dist/types/CommunityView.d.ts +1 -2
  16. package/dist/types/CommunityVisibility.d.ts +1 -1
  17. package/dist/types/CreateCommentReport.d.ts +1 -0
  18. package/dist/types/CreatePostReport.d.ts +1 -0
  19. package/dist/types/CreateSite.d.ts +3 -0
  20. package/dist/types/DeleteImageParams.d.ts +0 -1
  21. package/dist/types/EditSite.d.ts +13 -0
  22. package/dist/types/FederationError.d.ts +1 -1
  23. package/dist/types/GetComments.d.ts +5 -0
  24. package/dist/types/GetCommentsSlimResponse.d.ts +7 -0
  25. package/dist/types/GetModlog.d.ts +26 -2
  26. package/dist/types/GetModlogResponse.d.ts +5 -0
  27. package/dist/types/GetPostResponse.d.ts +0 -2
  28. package/dist/types/GetPosts.d.ts +12 -2
  29. package/dist/types/GetPostsResponse.d.ts +2 -2
  30. package/dist/types/GetRandomCommunity.d.ts +1 -0
  31. package/dist/types/GetSiteResponse.d.ts +2 -2
  32. package/dist/types/GetUnreadCountResponse.d.ts +2 -4
  33. package/dist/types/ImageDetails.d.ts +1 -0
  34. package/dist/types/InboxCombinedView.d.ts +13 -0
  35. package/dist/types/InboxDataType.d.ts +4 -0
  36. package/dist/types/LemmyErrorType.d.ts +5 -5
  37. package/dist/types/ListCommunities.d.ts +5 -0
  38. package/dist/types/ListInbox.d.ts +11 -0
  39. package/dist/types/ListInboxResponse.d.ts +12 -0
  40. package/dist/types/ListPersonContent.d.ts +2 -2
  41. package/dist/types/ListPersonContentResponse.d.ts +5 -0
  42. package/dist/types/ListPersonSaved.d.ts +2 -2
  43. package/dist/types/ListPersonSavedResponse.d.ts +7 -2
  44. package/dist/types/ListReports.d.ts +20 -2
  45. package/dist/types/ListReportsResponse.d.ts +5 -0
  46. package/dist/types/LocalImage.d.ts +0 -1
  47. package/dist/types/LocalSite.d.ts +33 -0
  48. package/dist/types/LocalUser.d.ts +17 -0
  49. package/dist/types/LocalUserView.d.ts +0 -4
  50. package/dist/types/MarkPersonCommentMentionAsRead.d.ts +8 -0
  51. package/dist/types/MarkPersonPostMentionAsRead.d.ts +8 -0
  52. package/dist/types/ModChangeCommunityVisibility.d.ts +12 -0
  53. package/dist/types/ModChangeCommunityVisibilityId.d.ts +1 -0
  54. package/dist/types/ModChangeCommunityVisibilityView.d.ts +11 -0
  55. package/dist/types/ModlogActionType.d.ts +1 -1
  56. package/dist/types/ModlogCombinedView.d.ts +3 -3
  57. package/dist/types/PaginationCursor.d.ts +1 -4
  58. package/dist/types/Person.d.ts +4 -2
  59. package/dist/types/{PersonMention.d.ts → PersonCommentMention.d.ts} +3 -3
  60. package/dist/types/PersonCommentMentionId.d.ts +4 -0
  61. package/dist/types/{PersonMentionView.d.ts → PersonCommentMentionView.d.ts} +9 -7
  62. package/dist/types/PersonContentType.d.ts +1 -1
  63. package/dist/types/PersonPostMention.d.ts +13 -0
  64. package/dist/types/PersonPostMentionId.d.ts +4 -0
  65. package/dist/types/PersonPostMentionView.d.ts +34 -0
  66. package/dist/types/PersonSavedCombinedView.d.ts +7 -0
  67. package/dist/types/PersonView.d.ts +0 -2
  68. package/dist/types/Post.d.ts +10 -0
  69. package/dist/types/PostPaginationCursor.d.ts +7 -0
  70. package/dist/types/PostReport.d.ts +1 -0
  71. package/dist/types/PostReportView.d.ts +4 -3
  72. package/dist/types/PostSortType.d.ts +1 -1
  73. package/dist/types/PostView.d.ts +5 -3
  74. package/dist/types/PrivateMessage.d.ts +1 -0
  75. package/dist/types/ReportType.d.ts +4 -0
  76. package/dist/types/ResendVerificationEmail.d.ts +7 -0
  77. package/dist/types/SaveUserSettings.d.ts +8 -0
  78. package/dist/types/Search.d.ts +12 -6
  79. package/dist/types/SearchCombinedView.d.ts +13 -0
  80. package/dist/types/SearchResponse.d.ts +7 -10
  81. package/dist/types/SearchSortType.d.ts +4 -0
  82. package/dist/types/Site.d.ts +2 -2
  83. package/dist/types/SiteView.d.ts +0 -2
  84. package/dist/types/SuccessResponse.d.ts +1 -1
  85. package/dist/types/UploadImageResponse.d.ts +0 -1
  86. package/package.json +9 -4
  87. package/dist/types/CommentAggregates.d.ts +0 -17
  88. package/dist/types/CommentReplyResponse.d.ts +0 -7
  89. package/dist/types/CommunityAggregates.d.ts +0 -30
  90. package/dist/types/GetPersonMentions.d.ts +0 -10
  91. package/dist/types/GetPersonMentionsResponse.d.ts +0 -7
  92. package/dist/types/GetPrivateMessages.d.ts +0 -10
  93. package/dist/types/GetReplies.d.ts +0 -10
  94. package/dist/types/GetRepliesResponse.d.ts +0 -7
  95. package/dist/types/LocalUserVoteDisplayMode.d.ts +0 -9
  96. package/dist/types/MarkPersonMentionAsRead.d.ts +0 -8
  97. package/dist/types/ModHideCommunity.d.ts +0 -14
  98. package/dist/types/ModHideCommunityId.d.ts +0 -1
  99. package/dist/types/ModHideCommunityView.d.ts +0 -11
  100. package/dist/types/ModlogCombinedPaginationCursor.d.ts +0 -4
  101. package/dist/types/PersonAggregates.d.ts +0 -9
  102. package/dist/types/PersonContentCombinedPaginationCursor.d.ts +0 -4
  103. package/dist/types/PersonMentionId.d.ts +0 -4
  104. package/dist/types/PersonMentionResponse.d.ts +0 -7
  105. package/dist/types/PersonSavedCombinedPaginationCursor.d.ts +0 -4
  106. package/dist/types/PostAggregates.d.ts +0 -18
  107. package/dist/types/PrivateMessagesResponse.d.ts +0 -7
  108. package/dist/types/PrivateMessagesResponse.js +0 -2
  109. package/dist/types/ReportCombinedPaginationCursor.d.ts +0 -4
  110. package/dist/types/SiteAggregates.d.ts +0 -27
  111. package/dist/types/SiteAggregates.js +0 -2
  112. /package/dist/types/{CommentAggregates.js → CommentSlimView.js} +0 -0
  113. /package/dist/types/{CommentReplyResponse.js → GetCommentsSlimResponse.js} +0 -0
  114. /package/dist/types/{CommunityAggregates.js → InboxCombinedView.js} +0 -0
  115. /package/dist/types/{LocalUserVoteDisplayMode.js → InboxDataType.js} +0 -0
  116. /package/dist/types/{GetPersonMentions.js → ListInbox.js} +0 -0
  117. /package/dist/types/{GetPersonMentionsResponse.js → ListInboxResponse.js} +0 -0
  118. /package/dist/types/{GetPrivateMessages.js → MarkPersonCommentMentionAsRead.js} +0 -0
  119. /package/dist/types/{GetReplies.js → MarkPersonPostMentionAsRead.js} +0 -0
  120. /package/dist/types/{GetRepliesResponse.js → ModChangeCommunityVisibility.js} +0 -0
  121. /package/dist/types/{ModHideCommunityId.js → ModChangeCommunityVisibilityId.js} +0 -0
  122. /package/dist/types/{MarkPersonMentionAsRead.js → ModChangeCommunityVisibilityView.js} +0 -0
  123. /package/dist/types/{ModHideCommunity.js → PersonCommentMention.js} +0 -0
  124. /package/dist/types/{ModlogCombinedPaginationCursor.js → PersonCommentMentionId.js} +0 -0
  125. /package/dist/types/{ModHideCommunityView.js → PersonCommentMentionView.js} +0 -0
  126. /package/dist/types/{PersonAggregates.js → PersonPostMention.js} +0 -0
  127. /package/dist/types/{PersonContentCombinedPaginationCursor.js → PersonPostMentionId.js} +0 -0
  128. /package/dist/types/{PersonMention.js → PersonPostMentionView.js} +0 -0
  129. /package/dist/types/{PersonMentionResponse.js → PersonSavedCombinedView.js} +0 -0
  130. /package/dist/types/{PersonMentionId.js → PostPaginationCursor.js} +0 -0
  131. /package/dist/types/{PersonSavedCombinedPaginationCursor.js → ReportType.js} +0 -0
  132. /package/dist/types/{PersonMentionView.js → ResendVerificationEmail.js} +0 -0
  133. /package/dist/types/{PostAggregates.js → SearchCombinedView.js} +0 -0
  134. /package/dist/types/{ReportCombinedPaginationCursor.js → SearchSortType.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { CommunityId } from "./CommunityId";
2
2
  import type { ListingType } from "./ListingType";
3
- import type { PaginationCursor } from "./PaginationCursor";
3
+ import type { PostPaginationCursor } from "./PostPaginationCursor";
4
4
  import type { PostSortType } from "./PostSortType";
5
5
  /**
6
6
  * Get a list of posts.
@@ -8,6 +8,12 @@ import type { PostSortType } from "./PostSortType";
8
8
  export type GetPosts = {
9
9
  type_?: ListingType;
10
10
  sort?: PostSortType;
11
+ /**
12
+ * Filter to within a given time range, in seconds.
13
+ * IE 60 would give results for the past minute.
14
+ * Use Zero to override the local_site and local_user time_range.
15
+ */
16
+ time_range_seconds?: number;
11
17
  /**
12
18
  * DEPRECATED, use page_cursor
13
19
  */
@@ -28,6 +34,10 @@ export type GetPosts = {
28
34
  * If true, then show the nsfw posts (even if your user setting is to hide them)
29
35
  */
30
36
  show_nsfw?: boolean;
37
+ /**
38
+ * If false, then show posts with media attached (even if your user setting is to hide them)
39
+ */
40
+ hide_media?: boolean;
31
41
  /**
32
42
  * Whether to automatically mark fetched posts as read.
33
43
  */
@@ -36,6 +46,6 @@ export type GetPosts = {
36
46
  * If true, then only show posts with no comments
37
47
  */
38
48
  no_comments_only?: boolean;
39
- page_cursor?: PaginationCursor;
49
+ page_cursor?: PostPaginationCursor;
40
50
  page_back?: boolean;
41
51
  };
@@ -1,4 +1,4 @@
1
- import type { PaginationCursor } from "./PaginationCursor";
1
+ import type { PostPaginationCursor } from "./PostPaginationCursor";
2
2
  import type { PostView } from "./PostView";
3
3
  /**
4
4
  * The post list response.
@@ -8,5 +8,5 @@ export type GetPostsResponse = {
8
8
  /**
9
9
  * the pagination cursor to use to fetch the next page
10
10
  */
11
- next_page?: PaginationCursor;
11
+ next_page?: PostPaginationCursor;
12
12
  };
@@ -4,4 +4,5 @@ import type { ListingType } from "./ListingType";
4
4
  */
5
5
  export type GetRandomCommunity = {
6
6
  type_?: ListingType;
7
+ show_nsfw?: boolean;
7
8
  };
@@ -22,8 +22,8 @@ export type GetSiteResponse = {
22
22
  /**
23
23
  * A list of external auth methods your site supports.
24
24
  */
25
- oauth_providers?: Array<PublicOAuthProvider>;
26
- admin_oauth_providers?: Array<OAuthProvider>;
25
+ oauth_providers: Array<PublicOAuthProvider>;
26
+ admin_oauth_providers: Array<OAuthProvider>;
27
27
  blocked_urls: Array<LocalSiteUrlBlocklist>;
28
28
  image_upload_disabled: boolean;
29
29
  };
@@ -1,8 +1,6 @@
1
1
  /**
2
- * A response containing counts for your notifications.
2
+ * A response containing a count of unread notifications.
3
3
  */
4
4
  export type GetUnreadCountResponse = {
5
- replies: number;
6
- mentions: number;
7
- private_messages: number;
5
+ count: number;
8
6
  };
@@ -4,4 +4,5 @@ export type ImageDetails = {
4
4
  width: number;
5
5
  height: number;
6
6
  content_type: string;
7
+ blurhash?: string;
7
8
  };
@@ -0,0 +1,13 @@
1
+ import type { CommentReplyView } from "./CommentReplyView";
2
+ import type { PersonCommentMentionView } from "./PersonCommentMentionView";
3
+ import type { PersonPostMentionView } from "./PersonPostMentionView";
4
+ import type { PrivateMessageView } from "./PrivateMessageView";
5
+ export type InboxCombinedView = ({
6
+ type_: "CommentReply";
7
+ } & CommentReplyView) | ({
8
+ type_: "CommentMention";
9
+ } & PersonCommentMentionView) | ({
10
+ type_: "PostMention";
11
+ } & PersonPostMentionView) | ({
12
+ type_: "PrivateMessage";
13
+ } & PrivateMessageView);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * A list of possible types for the inbox.
3
+ */
4
+ export type InboxDataType = "All" | "CommentReply" | "CommentMention" | "PostMention" | "PrivateMessage";
@@ -95,6 +95,8 @@ export type LemmyErrorType = {
95
95
  error: "couldnt_update_post";
96
96
  } | {
97
97
  error: "no_post_edit_allowed";
98
+ } | {
99
+ error: "nsfw_not_allowed";
98
100
  } | {
99
101
  error: "edit_private_message_not_allowed";
100
102
  } | {
@@ -125,8 +127,6 @@ export type LemmyErrorType = {
125
127
  error: "no_email_setup";
126
128
  } | {
127
129
  error: "local_site_not_setup";
128
- } | {
129
- error: "email_smtp_server_needs_a_port";
130
130
  } | {
131
131
  error: "invalid_email_address";
132
132
  message: string;
@@ -176,8 +176,6 @@ export type LemmyErrorType = {
176
176
  error: "community_block_already_exists";
177
177
  } | {
178
178
  error: "community_follower_already_exists";
179
- } | {
180
- error: "couldnt_update_community_hidden_status";
181
179
  } | {
182
180
  error: "person_block_already_exists";
183
181
  } | {
@@ -195,7 +193,7 @@ export type LemmyErrorType = {
195
193
  } | {
196
194
  error: "couldnt_update_replies";
197
195
  } | {
198
- error: "couldnt_update_person_mentions";
196
+ error: "couldnt_update_person_comment_mentions";
199
197
  } | {
200
198
  error: "couldnt_create_post";
201
199
  } | {
@@ -285,4 +283,6 @@ export type LemmyErrorType = {
285
283
  message: {
286
284
  error?: FederationError;
287
285
  };
286
+ } | {
287
+ error: "couldnt_parse_pagination_token";
288
288
  };
@@ -6,6 +6,11 @@ import type { ListingType } from "./ListingType";
6
6
  export type ListCommunities = {
7
7
  type_?: ListingType;
8
8
  sort?: CommunitySortType;
9
+ /**
10
+ * Filter to within a given time range, in seconds.
11
+ * IE 60 would give results for the past minute.
12
+ */
13
+ time_range_seconds?: number;
9
14
  show_nsfw?: boolean;
10
15
  page?: number;
11
16
  limit?: number;
@@ -0,0 +1,11 @@
1
+ import type { InboxDataType } from "./InboxDataType";
2
+ import type { PaginationCursor } from "./PaginationCursor";
3
+ /**
4
+ * Get your inbox (replies, comment mentions, post mentions, and messages)
5
+ */
6
+ export type ListInbox = {
7
+ type_?: InboxDataType;
8
+ unread_only?: boolean;
9
+ page_cursor?: PaginationCursor;
10
+ page_back?: boolean;
11
+ };
@@ -0,0 +1,12 @@
1
+ import type { InboxCombinedView } from "./InboxCombinedView";
2
+ import type { PaginationCursor } from "./PaginationCursor";
3
+ /**
4
+ * Get your inbox (replies, comment mentions, post mentions, and messages)
5
+ */
6
+ export type ListInboxResponse = {
7
+ inbox: Array<InboxCombinedView>;
8
+ /**
9
+ * the pagination cursor to use to fetch the next page
10
+ */
11
+ next_page?: PaginationCursor;
12
+ };
@@ -1,4 +1,4 @@
1
- import type { PersonContentCombinedPaginationCursor } from "./PersonContentCombinedPaginationCursor";
1
+ import type { PaginationCursor } from "./PaginationCursor";
2
2
  import type { PersonContentType } from "./PersonContentType";
3
3
  import type { PersonId } from "./PersonId";
4
4
  /**
@@ -13,6 +13,6 @@ export type ListPersonContent = {
13
13
  * Example: dessalines , or dessalines@xyz.tld
14
14
  */
15
15
  username?: string;
16
- page_cursor?: PersonContentCombinedPaginationCursor;
16
+ page_cursor?: PaginationCursor;
17
17
  page_back?: boolean;
18
18
  };
@@ -1,7 +1,12 @@
1
+ import type { PaginationCursor } from "./PaginationCursor";
1
2
  import type { PersonContentCombinedView } from "./PersonContentCombinedView";
2
3
  /**
3
4
  * A person's content response.
4
5
  */
5
6
  export type ListPersonContentResponse = {
6
7
  content: Array<PersonContentCombinedView>;
8
+ /**
9
+ * the pagination cursor to use to fetch the next page
10
+ */
11
+ next_page?: PaginationCursor;
7
12
  };
@@ -1,10 +1,10 @@
1
+ import type { PaginationCursor } from "./PaginationCursor";
1
2
  import type { PersonContentType } from "./PersonContentType";
2
- import type { PersonSavedCombinedPaginationCursor } from "./PersonSavedCombinedPaginationCursor";
3
3
  /**
4
4
  * Gets your saved posts and comments
5
5
  */
6
6
  export type ListPersonSaved = {
7
7
  type_?: PersonContentType;
8
- page_cursor?: PersonSavedCombinedPaginationCursor;
8
+ page_cursor?: PaginationCursor;
9
9
  page_back?: boolean;
10
10
  };
@@ -1,7 +1,12 @@
1
- import type { PersonContentCombinedView } from "./PersonContentCombinedView";
1
+ import type { PaginationCursor } from "./PaginationCursor";
2
+ import type { PersonSavedCombinedView } from "./PersonSavedCombinedView";
2
3
  /**
3
4
  * A person's saved content response.
4
5
  */
5
6
  export type ListPersonSavedResponse = {
6
- saved: Array<PersonContentCombinedView>;
7
+ saved: Array<PersonSavedCombinedView>;
8
+ /**
9
+ * the pagination cursor to use to fetch the next page
10
+ */
11
+ next_page?: PaginationCursor;
7
12
  };
@@ -1,5 +1,7 @@
1
1
  import type { CommunityId } from "./CommunityId";
2
- import type { ReportCombinedPaginationCursor } from "./ReportCombinedPaginationCursor";
2
+ import type { PaginationCursor } from "./PaginationCursor";
3
+ import type { PostId } from "./PostId";
4
+ import type { ReportType } from "./ReportType";
3
5
  /**
4
6
  * List reports.
5
7
  */
@@ -8,10 +10,26 @@ export type ListReports = {
8
10
  * Only shows the unresolved reports
9
11
  */
10
12
  unresolved_only?: boolean;
13
+ /**
14
+ * Filter the type of report.
15
+ */
16
+ type_?: ReportType;
17
+ /**
18
+ * Filter by the post id. Can return either comment or post reports.
19
+ */
20
+ post_id?: PostId;
11
21
  /**
12
22
  * if no community is given, it returns reports for all communities moderated by the auth user
13
23
  */
14
24
  community_id?: CommunityId;
15
- page_cursor?: ReportCombinedPaginationCursor;
25
+ page_cursor?: PaginationCursor;
16
26
  page_back?: boolean;
27
+ /**
28
+ * Only for admins: also show reports with `violates_instance_rules=false`
29
+ */
30
+ show_community_rule_violations?: boolean;
31
+ /**
32
+ * If true, view all your created reports. Works for non-admins/mods also.
33
+ */
34
+ my_reports_only?: boolean;
17
35
  };
@@ -1,7 +1,12 @@
1
+ import type { PaginationCursor } from "./PaginationCursor";
1
2
  import type { ReportCombinedView } from "./ReportCombinedView";
2
3
  /**
3
4
  * The post reports response.
4
5
  */
5
6
  export type ListReportsResponse = {
6
7
  reports: Array<ReportCombinedView>;
8
+ /**
9
+ * the pagination cursor to use to fetch the next page
10
+ */
11
+ next_page?: PaginationCursor;
7
12
  };
@@ -2,6 +2,5 @@ import type { LocalUserId } from "./LocalUserId";
2
2
  export type LocalImage = {
3
3
  local_user_id?: LocalUserId;
4
4
  pictrs_alias: string;
5
- pictrs_delete_token: string;
6
5
  published: string;
7
6
  };
@@ -113,4 +113,37 @@ export type LocalSite = {
113
113
  * What kind of comment downvotes your site allows.
114
114
  */
115
115
  comment_downvotes: FederationMode;
116
+ /**
117
+ * If this is true, users will never see the dialog asking to support Lemmy development with
118
+ * donations.
119
+ */
120
+ disable_donation_dialog: boolean;
121
+ /**
122
+ * A default time range limit to apply to post sorts, in seconds.
123
+ */
124
+ default_post_time_range_seconds?: number;
125
+ users: number;
126
+ posts: number;
127
+ comments: number;
128
+ communities: number;
129
+ /**
130
+ * The number of users with any activity in the last day.
131
+ */
132
+ users_active_day: number;
133
+ /**
134
+ * The number of users with any activity in the last week.
135
+ */
136
+ users_active_week: number;
137
+ /**
138
+ * The number of users with any activity in the last month.
139
+ */
140
+ users_active_month: number;
141
+ /**
142
+ * The number of users with any activity in the last half year.
143
+ */
144
+ users_active_half_year: number;
145
+ /**
146
+ * Block NSFW content being created
147
+ */
148
+ disallow_nsfw_content: boolean;
116
149
  };
@@ -84,4 +84,21 @@ export type LocalUser = {
84
84
  * Whether to automatically mark fetched posts as read.
85
85
  */
86
86
  auto_mark_fetched_posts_as_read: boolean;
87
+ /**
88
+ * The last time a donation request was shown to this user. If this is more than a year ago,
89
+ * a new notification request should be shown.
90
+ */
91
+ last_donation_notification: string;
92
+ /**
93
+ * Whether to hide posts containing images/videos
94
+ */
95
+ hide_media: boolean;
96
+ /**
97
+ * A default time range limit to apply to post sorts, in seconds.
98
+ */
99
+ default_post_time_range_seconds?: number;
100
+ show_score: boolean;
101
+ show_upvotes: boolean;
102
+ show_downvotes: boolean;
103
+ show_upvote_percentage: boolean;
87
104
  };
@@ -1,13 +1,9 @@
1
1
  import type { LocalUser } from "./LocalUser";
2
- import type { LocalUserVoteDisplayMode } from "./LocalUserVoteDisplayMode";
3
2
  import type { Person } from "./Person";
4
- import type { PersonAggregates } from "./PersonAggregates";
5
3
  /**
6
4
  * A local user view.
7
5
  */
8
6
  export type LocalUserView = {
9
7
  local_user: LocalUser;
10
- local_user_vote_display_mode: LocalUserVoteDisplayMode;
11
8
  person: Person;
12
- counts: PersonAggregates;
13
9
  };
@@ -0,0 +1,8 @@
1
+ import type { PersonCommentMentionId } from "./PersonCommentMentionId";
2
+ /**
3
+ * Mark a person mention as read.
4
+ */
5
+ export type MarkPersonCommentMentionAsRead = {
6
+ person_comment_mention_id: PersonCommentMentionId;
7
+ read: boolean;
8
+ };
@@ -0,0 +1,8 @@
1
+ import type { PersonPostMentionId } from "./PersonPostMentionId";
2
+ /**
3
+ * Mark a person mention as read.
4
+ */
5
+ export type MarkPersonPostMentionAsRead = {
6
+ person_post_mention_id: PersonPostMentionId;
7
+ read: boolean;
8
+ };
@@ -0,0 +1,12 @@
1
+ import type { CommunityId } from "./CommunityId";
2
+ import type { CommunityVisibility } from "./CommunityVisibility";
3
+ import type { ModChangeCommunityVisibilityId } from "./ModChangeCommunityVisibilityId";
4
+ import type { PersonId } from "./PersonId";
5
+ export type ModChangeCommunityVisibility = {
6
+ id: ModChangeCommunityVisibilityId;
7
+ community_id: CommunityId;
8
+ mod_person_id: PersonId;
9
+ published: string;
10
+ reason?: string;
11
+ new_visibility: CommunityVisibility;
12
+ };
@@ -0,0 +1 @@
1
+ export type ModChangeCommunityVisibilityId = number;
@@ -0,0 +1,11 @@
1
+ import type { Community } from "./Community";
2
+ import type { ModChangeCommunityVisibility } from "./ModChangeCommunityVisibility";
3
+ import type { Person } from "./Person";
4
+ /**
5
+ * When the visibility of a community is changed
6
+ */
7
+ export type ModChangeCommunityVisibilityView = {
8
+ mod_change_community_visibility: ModChangeCommunityVisibility;
9
+ moderator?: Person;
10
+ community: Community;
11
+ };
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * A list of possible types for the various modlog actions.
3
3
  */
4
- export type ModlogActionType = "All" | "ModRemovePost" | "ModLockPost" | "ModFeaturePost" | "ModRemoveComment" | "ModRemoveCommunity" | "ModBanFromCommunity" | "ModAddCommunity" | "ModTransferCommunity" | "ModAdd" | "ModBan" | "ModHideCommunity" | "AdminPurgePerson" | "AdminPurgeCommunity" | "AdminPurgePost" | "AdminPurgeComment" | "AdminBlockInstance" | "AdminAllowInstance";
4
+ export type ModlogActionType = "All" | "ModRemovePost" | "ModLockPost" | "ModFeaturePost" | "ModRemoveComment" | "ModRemoveCommunity" | "ModBanFromCommunity" | "ModAddCommunity" | "ModTransferCommunity" | "ModAdd" | "ModBan" | "ModChangeCommunityVisibility" | "AdminPurgePerson" | "AdminPurgeCommunity" | "AdminPurgePost" | "AdminPurgeComment" | "AdminBlockInstance" | "AdminAllowInstance";
@@ -8,8 +8,8 @@ import type { ModAddCommunityView } from "./ModAddCommunityView";
8
8
  import type { ModAddView } from "./ModAddView";
9
9
  import type { ModBanFromCommunityView } from "./ModBanFromCommunityView";
10
10
  import type { ModBanView } from "./ModBanView";
11
+ import type { ModChangeCommunityVisibilityView } from "./ModChangeCommunityVisibilityView";
11
12
  import type { ModFeaturePostView } from "./ModFeaturePostView";
12
- import type { ModHideCommunityView } from "./ModHideCommunityView";
13
13
  import type { ModLockPostView } from "./ModLockPostView";
14
14
  import type { ModRemoveCommentView } from "./ModRemoveCommentView";
15
15
  import type { ModRemoveCommunityView } from "./ModRemoveCommunityView";
@@ -38,8 +38,8 @@ export type ModlogCombinedView = ({
38
38
  } & ModBanFromCommunityView) | ({
39
39
  type_: "ModFeaturePost";
40
40
  } & ModFeaturePostView) | ({
41
- type_: "ModHideCommunity";
42
- } & ModHideCommunityView) | ({
41
+ type_: "ModChangeCommunityVisibility";
42
+ } & ModChangeCommunityVisibilityView) | ({
43
43
  type_: "ModLockPost";
44
44
  } & ModLockPostView) | ({
45
45
  type_: "ModRemoveComment";
@@ -1,7 +1,4 @@
1
1
  /**
2
- * currently this is just a wrapper around post id, but should be seen as opaque from the client's
3
- * perspective. stringified since we might want to use arbitrary info later, with a P prepended to
4
- * prevent ossification (api users love to make assumptions (e.g. parse stuff that looks like
5
- * numbers as numbers) about apis that aren't part of the spec
2
+ * A pagination cursor
6
3
  */
7
4
  export type PaginationCursor = string;
@@ -22,9 +22,9 @@ export type Person = {
22
22
  published: string;
23
23
  updated?: string;
24
24
  /**
25
- * The federated actor_id.
25
+ * The federated ap_id.
26
26
  */
27
- actor_id: DbUrl;
27
+ ap_id: DbUrl;
28
28
  /**
29
29
  * An optional bio, in markdown.
30
30
  */
@@ -54,4 +54,6 @@ export type Person = {
54
54
  */
55
55
  ban_expires?: string;
56
56
  instance_id: InstanceId;
57
+ post_count: number;
58
+ comment_count: number;
57
59
  };
@@ -1,11 +1,11 @@
1
1
  import type { CommentId } from "./CommentId";
2
+ import type { PersonCommentMentionId } from "./PersonCommentMentionId";
2
3
  import type { PersonId } from "./PersonId";
3
- import type { PersonMentionId } from "./PersonMentionId";
4
4
  /**
5
5
  * A person mention.
6
6
  */
7
- export type PersonMention = {
8
- id: PersonMentionId;
7
+ export type PersonCommentMention = {
8
+ id: PersonCommentMentionId;
9
9
  recipient_id: PersonId;
10
10
  comment_id: CommentId;
11
11
  read: boolean;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * The person comment mention id.
3
+ */
4
+ export type PersonCommentMentionId = number;
@@ -1,27 +1,29 @@
1
1
  import type { Comment } from "./Comment";
2
- import type { CommentAggregates } from "./CommentAggregates";
3
2
  import type { Community } from "./Community";
4
3
  import type { Person } from "./Person";
5
- import type { PersonMention } from "./PersonMention";
4
+ import type { PersonCommentMention } from "./PersonCommentMention";
6
5
  import type { Post } from "./Post";
7
6
  import type { SubscribedType } from "./SubscribedType";
8
7
  /**
9
- * A person mention view.
8
+ * A person comment mention view.
10
9
  */
11
- export type PersonMentionView = {
12
- person_mention: PersonMention;
10
+ export type PersonCommentMentionView = {
11
+ person_comment_mention: PersonCommentMention;
13
12
  comment: Comment;
14
13
  creator: Person;
15
14
  post: Post;
16
15
  community: Community;
17
16
  recipient: Person;
18
- counts: CommentAggregates;
19
17
  creator_banned_from_community: boolean;
20
18
  banned_from_community: boolean;
21
19
  creator_is_moderator: boolean;
22
20
  creator_is_admin: boolean;
23
21
  subscribed: SubscribedType;
24
- saved: boolean;
22
+ /**
23
+ * The time when the comment was saved.
24
+ */
25
+ saved?: string;
25
26
  creator_blocked: boolean;
26
27
  my_vote?: number;
28
+ can_mod: boolean;
27
29
  };
@@ -1,4 +1,4 @@
1
1
  /**
2
- * A list of possible types for the various modlog actions.
2
+ * A list of possible types for a person's content.
3
3
  */
4
4
  export type PersonContentType = "All" | "Comments" | "Posts";
@@ -0,0 +1,13 @@
1
+ import type { PersonId } from "./PersonId";
2
+ import type { PersonPostMentionId } from "./PersonPostMentionId";
3
+ import type { PostId } from "./PostId";
4
+ /**
5
+ * A person mention.
6
+ */
7
+ export type PersonPostMention = {
8
+ id: PersonPostMentionId;
9
+ recipient_id: PersonId;
10
+ post_id: PostId;
11
+ read: boolean;
12
+ published: string;
13
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * The person post mention id.
3
+ */
4
+ export type PersonPostMentionId = number;
@@ -0,0 +1,34 @@
1
+ import type { Community } from "./Community";
2
+ import type { ImageDetails } from "./ImageDetails";
3
+ import type { Person } from "./Person";
4
+ import type { PersonPostMention } from "./PersonPostMention";
5
+ import type { Post } from "./Post";
6
+ import type { PostTags } from "./PostTags";
7
+ import type { SubscribedType } from "./SubscribedType";
8
+ /**
9
+ * A person post mention view.
10
+ */
11
+ export type PersonPostMentionView = {
12
+ person_post_mention: PersonPostMention;
13
+ post: Post;
14
+ creator: Person;
15
+ community: Community;
16
+ image_details?: ImageDetails;
17
+ recipient: Person;
18
+ creator_banned_from_community: boolean;
19
+ banned_from_community: boolean;
20
+ creator_is_moderator: boolean;
21
+ creator_is_admin: boolean;
22
+ subscribed: SubscribedType;
23
+ /**
24
+ * The time when the post was saved.
25
+ */
26
+ saved?: string;
27
+ read: boolean;
28
+ hidden: boolean;
29
+ creator_blocked: boolean;
30
+ my_vote?: number;
31
+ unread_comments: number;
32
+ post_tags: PostTags;
33
+ can_mod: boolean;
34
+ };
@@ -0,0 +1,7 @@
1
+ import type { CommentView } from "./CommentView";
2
+ import type { PostView } from "./PostView";
3
+ export type PersonSavedCombinedView = ({
4
+ type_: "Post";
5
+ } & PostView) | ({
6
+ type_: "Comment";
7
+ } & CommentView);
@@ -1,10 +1,8 @@
1
1
  import type { Person } from "./Person";
2
- import type { PersonAggregates } from "./PersonAggregates";
3
2
  /**
4
3
  * A person view.
5
4
  */
6
5
  export type PersonView = {
7
6
  person: Person;
8
- counts: PersonAggregates;
9
7
  is_admin: boolean;
10
8
  };
@@ -79,4 +79,14 @@ export type Post = {
79
79
  * Time at which the post will be published. None means publish immediately.
80
80
  */
81
81
  scheduled_publish_time?: string;
82
+ comments: number;
83
+ score: number;
84
+ upvotes: number;
85
+ downvotes: number;
86
+ /**
87
+ * The time of the newest comment in the post.
88
+ */
89
+ newest_comment_time: string;
90
+ report_count: number;
91
+ unresolved_report_count: number;
82
92
  };