@atproto/bsky 0.0.15 → 0.0.16

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 (170) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/api/com/atproto/moderation/util.d.ts +4 -3
  3. package/dist/context.d.ts +15 -0
  4. package/dist/db/index.js +26 -1
  5. package/dist/db/index.js.map +3 -3
  6. package/dist/db/migrations/20231003T202833377Z-create-moderation-subject-status.d.ts +3 -0
  7. package/dist/db/migrations/index.d.ts +1 -0
  8. package/dist/db/pagination.d.ts +2 -1
  9. package/dist/db/{periodic-moderation-action-reversal.d.ts → periodic-moderation-event-reversal.d.ts} +3 -5
  10. package/dist/db/tables/moderation.d.ts +24 -34
  11. package/dist/feed-gen/types.d.ts +1 -1
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.js +2750 -2121
  14. package/dist/index.js.map +3 -3
  15. package/dist/lexicon/index.d.ts +11 -18
  16. package/dist/lexicon/lexicons.d.ts +414 -399
  17. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +1 -7
  18. package/dist/lexicon/types/app/bsky/graph/defs.d.ts +1 -0
  19. package/dist/lexicon/types/com/atproto/admin/defs.d.ts +114 -48
  20. package/dist/lexicon/types/com/atproto/admin/{takeModerationAction.d.ts → emitModerationEvent.d.ts} +5 -6
  21. package/dist/lexicon/types/com/atproto/admin/{getModerationAction.d.ts → getModerationEvent.d.ts} +1 -1
  22. package/dist/lexicon/types/com/atproto/admin/{getModerationActions.d.ts → queryModerationEvents.d.ts} +5 -1
  23. package/dist/lexicon/types/com/atproto/admin/{getModerationReports.d.ts → queryModerationStatuses.d.ts} +12 -6
  24. package/dist/lexicon/types/com/atproto/admin/sendEmail.d.ts +1 -0
  25. package/dist/migrate-moderation-data.d.ts +1 -0
  26. package/dist/services/actor/views.d.ts +2 -5
  27. package/dist/services/feed/index.d.ts +1 -0
  28. package/dist/services/feed/util.d.ts +9 -1
  29. package/dist/services/feed/views.d.ts +6 -17
  30. package/dist/services/graph/index.d.ts +5 -29
  31. package/dist/services/graph/types.d.ts +1 -0
  32. package/dist/services/moderation/index.d.ts +135 -72
  33. package/dist/services/moderation/pagination.d.ts +36 -0
  34. package/dist/services/moderation/status.d.ts +13 -0
  35. package/dist/services/moderation/types.d.ts +35 -0
  36. package/dist/services/moderation/views.d.ts +18 -14
  37. package/dist/util/debug.d.ts +1 -1
  38. package/package.json +11 -11
  39. package/src/api/app/bsky/feed/getActorFeeds.ts +2 -1
  40. package/src/api/app/bsky/feed/getActorLikes.ts +1 -3
  41. package/src/api/app/bsky/feed/getAuthorFeed.ts +1 -3
  42. package/src/api/app/bsky/feed/getFeed.ts +9 -9
  43. package/src/api/app/bsky/feed/getFeedGenerator.ts +3 -0
  44. package/src/api/app/bsky/feed/getFeedGenerators.ts +2 -1
  45. package/src/api/app/bsky/feed/getListFeed.ts +1 -3
  46. package/src/api/app/bsky/feed/getPostThread.ts +15 -54
  47. package/src/api/app/bsky/feed/getPosts.ts +21 -18
  48. package/src/api/app/bsky/feed/getSuggestedFeeds.ts +2 -1
  49. package/src/api/app/bsky/feed/getTimeline.ts +1 -3
  50. package/src/api/app/bsky/feed/searchPosts.ts +20 -17
  51. package/src/api/app/bsky/graph/getList.ts +6 -3
  52. package/src/api/app/bsky/graph/getListBlocks.ts +3 -2
  53. package/src/api/app/bsky/graph/getListMutes.ts +2 -1
  54. package/src/api/app/bsky/graph/getLists.ts +2 -1
  55. package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +3 -1
  56. package/src/api/blob-resolver.ts +6 -11
  57. package/src/api/com/atproto/admin/emitModerationEvent.ts +220 -0
  58. package/src/api/com/atproto/admin/{getModerationActions.ts → getModerationEvent.ts} +5 -11
  59. package/src/api/com/atproto/admin/getRecord.ts +1 -0
  60. package/src/api/com/atproto/admin/{getModerationReports.ts → queryModerationEvents.ts} +13 -16
  61. package/src/api/com/atproto/admin/queryModerationStatuses.ts +55 -0
  62. package/src/api/com/atproto/moderation/createReport.ts +9 -7
  63. package/src/api/com/atproto/moderation/util.ts +38 -20
  64. package/src/api/index.ts +8 -14
  65. package/src/auth.ts +29 -21
  66. package/src/auto-moderator/index.ts +26 -19
  67. package/src/context.ts +4 -0
  68. package/src/db/migrations/20231003T202833377Z-create-moderation-subject-status.ts +123 -0
  69. package/src/db/migrations/index.ts +1 -0
  70. package/src/db/pagination.ts +26 -3
  71. package/src/db/{periodic-moderation-action-reversal.ts → periodic-moderation-event-reversal.ts} +50 -46
  72. package/src/db/tables/moderation.ts +35 -52
  73. package/src/feed-gen/best-of-follows.ts +6 -3
  74. package/src/feed-gen/bsky-team.ts +1 -1
  75. package/src/feed-gen/hot-classic.ts +1 -1
  76. package/src/feed-gen/mutuals.ts +6 -2
  77. package/src/feed-gen/types.ts +1 -1
  78. package/src/feed-gen/whats-hot.ts +1 -1
  79. package/src/feed-gen/with-friends.ts +7 -3
  80. package/src/index.ts +2 -1
  81. package/src/lexicon/index.ts +30 -67
  82. package/src/lexicon/lexicons.ts +526 -491
  83. package/src/lexicon/types/app/bsky/feed/defs.ts +1 -18
  84. package/src/lexicon/types/app/bsky/graph/defs.ts +1 -0
  85. package/src/lexicon/types/com/atproto/admin/defs.ts +276 -84
  86. package/src/lexicon/types/com/atproto/admin/{takeModerationAction.ts → emitModerationEvent.ts} +13 -11
  87. package/src/lexicon/types/com/atproto/admin/{getModerationReport.ts → getModerationEvent.ts} +1 -1
  88. package/src/lexicon/types/com/atproto/admin/{getModerationActions.ts → queryModerationEvents.ts} +8 -1
  89. package/src/lexicon/types/com/atproto/admin/{getModerationReports.ts → queryModerationStatuses.ts} +21 -14
  90. package/src/lexicon/types/com/atproto/admin/sendEmail.ts +1 -0
  91. package/src/migrate-moderation-data.ts +414 -0
  92. package/src/services/actor/views.ts +5 -14
  93. package/src/services/feed/index.ts +26 -7
  94. package/src/services/feed/util.ts +47 -19
  95. package/src/services/feed/views.ts +68 -4
  96. package/src/services/graph/index.ts +21 -3
  97. package/src/services/graph/types.ts +1 -0
  98. package/src/services/indexing/plugins/block.ts +2 -3
  99. package/src/services/indexing/plugins/feed-generator.ts +2 -3
  100. package/src/services/indexing/plugins/follow.ts +2 -3
  101. package/src/services/indexing/plugins/like.ts +2 -3
  102. package/src/services/indexing/plugins/list-block.ts +2 -3
  103. package/src/services/indexing/plugins/list-item.ts +2 -3
  104. package/src/services/indexing/plugins/list.ts +2 -3
  105. package/src/services/indexing/plugins/post.ts +3 -4
  106. package/src/services/indexing/plugins/repost.ts +2 -3
  107. package/src/services/indexing/plugins/thread-gate.ts +2 -3
  108. package/src/services/label/index.ts +2 -3
  109. package/src/services/moderation/index.ts +380 -395
  110. package/src/services/moderation/pagination.ts +96 -0
  111. package/src/services/moderation/status.ts +244 -0
  112. package/src/services/moderation/types.ts +49 -0
  113. package/src/services/moderation/views.ts +278 -329
  114. package/src/util/debug.ts +2 -2
  115. package/tests/__snapshots__/feed-generation.test.ts.snap +322 -6
  116. package/tests/__snapshots__/indexing.test.ts.snap +0 -6
  117. package/tests/admin/__snapshots__/get-record.test.ts.snap +30 -132
  118. package/tests/admin/__snapshots__/get-repo.test.ts.snap +14 -60
  119. package/tests/admin/__snapshots__/moderation-events.test.ts.snap +146 -0
  120. package/tests/admin/__snapshots__/moderation-statuses.test.ts.snap +64 -0
  121. package/tests/admin/__snapshots__/moderation.test.ts.snap +0 -125
  122. package/tests/admin/get-record.test.ts +5 -9
  123. package/tests/admin/get-repo.test.ts +5 -9
  124. package/tests/admin/moderation-events.test.ts +221 -0
  125. package/tests/admin/moderation-statuses.test.ts +145 -0
  126. package/tests/admin/moderation.test.ts +512 -860
  127. package/tests/admin/repo-search.test.ts +2 -3
  128. package/tests/auto-moderator/fuzzy-matcher.test.ts +2 -1
  129. package/tests/auto-moderator/takedowns.test.ts +45 -18
  130. package/tests/feed-generation.test.ts +57 -9
  131. package/tests/views/__snapshots__/block-lists.test.ts.snap +3 -9
  132. package/tests/views/__snapshots__/blocks.test.ts.snap +0 -9
  133. package/tests/views/__snapshots__/mute-lists.test.ts.snap +5 -5
  134. package/tests/views/__snapshots__/mutes.test.ts.snap +0 -3
  135. package/tests/views/__snapshots__/thread.test.ts.snap +0 -30
  136. package/tests/views/actor-search.test.ts +2 -3
  137. package/tests/views/author-feed.test.ts +42 -36
  138. package/tests/views/follows.test.ts +40 -35
  139. package/tests/views/list-feed.test.ts +17 -9
  140. package/tests/views/notifications.test.ts +13 -9
  141. package/tests/views/profile.test.ts +20 -18
  142. package/tests/views/thread.test.ts +54 -26
  143. package/tests/views/threadgating.test.ts +51 -19
  144. package/tests/views/timeline.test.ts +21 -13
  145. package/dist/api/com/atproto/admin/resolveModerationReports.d.ts +0 -3
  146. package/dist/api/com/atproto/admin/reverseModerationAction.d.ts +0 -3
  147. package/dist/api/com/atproto/admin/takeModerationAction.d.ts +0 -3
  148. package/dist/lexicon/types/com/atproto/admin/getModerationReport.d.ts +0 -29
  149. package/dist/lexicon/types/com/atproto/admin/resolveModerationReports.d.ts +0 -36
  150. package/dist/lexicon/types/com/atproto/admin/reverseModerationAction.d.ts +0 -36
  151. package/src/api/com/atproto/admin/getModerationAction.ts +0 -44
  152. package/src/api/com/atproto/admin/getModerationReport.ts +0 -43
  153. package/src/api/com/atproto/admin/resolveModerationReports.ts +0 -24
  154. package/src/api/com/atproto/admin/reverseModerationAction.ts +0 -115
  155. package/src/api/com/atproto/admin/takeModerationAction.ts +0 -156
  156. package/src/lexicon/types/com/atproto/admin/getModerationAction.ts +0 -41
  157. package/src/lexicon/types/com/atproto/admin/resolveModerationReports.ts +0 -49
  158. package/src/lexicon/types/com/atproto/admin/reverseModerationAction.ts +0 -49
  159. package/tests/admin/__snapshots__/get-moderation-action.test.ts.snap +0 -172
  160. package/tests/admin/__snapshots__/get-moderation-actions.test.ts.snap +0 -178
  161. package/tests/admin/__snapshots__/get-moderation-report.test.ts.snap +0 -177
  162. package/tests/admin/__snapshots__/get-moderation-reports.test.ts.snap +0 -307
  163. package/tests/admin/get-moderation-action.test.ts +0 -100
  164. package/tests/admin/get-moderation-actions.test.ts +0 -164
  165. package/tests/admin/get-moderation-report.test.ts +0 -100
  166. package/tests/admin/get-moderation-reports.test.ts +0 -332
  167. /package/dist/api/com/atproto/admin/{getModerationAction.d.ts → emitModerationEvent.d.ts} +0 -0
  168. /package/dist/api/com/atproto/admin/{getModerationActions.d.ts → getModerationEvent.d.ts} +0 -0
  169. /package/dist/api/com/atproto/admin/{getModerationReport.d.ts → queryModerationEvents.d.ts} +0 -0
  170. /package/dist/api/com/atproto/admin/{getModerationReports.d.ts → queryModerationStatuses.d.ts} +0 -0
@@ -0,0 +1,3 @@
1
+ import { Kysely } from 'kysely';
2
+ export declare function up(db: Kysely<unknown>): Promise<void>;
3
+ export declare function down(db: Kysely<unknown>): Promise<void>;
@@ -26,3 +26,4 @@ export * as _20230904T211011773Z from './20230904T211011773Z-block-lists';
26
26
  export * as _20230906T222220386Z from './20230906T222220386Z-thread-gating';
27
27
  export * as _20230920T213858047Z from './20230920T213858047Z-add-tags-to-post';
28
28
  export * as _20230929T192920807Z from './20230929T192920807Z-record-cursor-indexes';
29
+ export * as _20231003T202833377Z from './20231003T202833377Z-create-moderation-subject-status';
@@ -40,8 +40,9 @@ export declare class TimeCidKeyset<TimeCidResult = SortAtCidResult> extends Gene
40
40
  export declare const paginate: <QB extends AnyQb, K extends GenericKeyset<unknown, any>>(qb: QB, opts: {
41
41
  limit?: number | undefined;
42
42
  cursor?: string | undefined;
43
- direction?: "asc" | "desc" | undefined;
43
+ direction?: "desc" | "asc" | undefined;
44
44
  keyset: K;
45
45
  tryIndex?: boolean | undefined;
46
+ nullsLast?: boolean | undefined;
46
47
  }) => QB;
47
48
  export {};
@@ -1,17 +1,15 @@
1
1
  import { Leader } from './leader';
2
2
  import AppContext from '../context';
3
+ import { ModerationSubjectStatusRow } from '../services/moderation/types';
3
4
  import AtpAgent from '@atproto/api';
4
- import { LabelService } from '../services/label';
5
- import { ModerationActionRow } from '../services/moderation';
6
5
  export declare const MODERATION_ACTION_REVERSAL_ID = 1011;
7
- export declare class PeriodicModerationActionReversal {
6
+ export declare class PeriodicModerationEventReversal {
8
7
  private appContext;
9
8
  leader: Leader;
10
9
  destroyed: boolean;
11
10
  pushAgent?: AtpAgent;
12
11
  constructor(appContext: AppContext);
13
- reverseLabels(labelTxn: LabelService, actionRow: ModerationActionRow): Promise<void>;
14
- revertAction(actionRow: ModerationActionRow): Promise<void>;
12
+ revertState(eventRow: ModerationSubjectStatusRow): Promise<void>;
15
13
  findAndRevertDueActions(): Promise<void>;
16
14
  run(): Promise<void>;
17
15
  destroy(): void;
@@ -1,52 +1,42 @@
1
1
  import { Generated } from 'kysely';
2
- import { ACKNOWLEDGE, FLAG, TAKEDOWN, ESCALATE } from '../../lexicon/types/com/atproto/admin/defs';
3
- import { REASONOTHER, REASONSPAM, REASONMISLEADING, REASONRUDE, REASONSEXUAL, REASONVIOLATION } from '../../lexicon/types/com/atproto/moderation/defs';
4
- export declare const actionTableName = "moderation_action";
5
- export declare const actionSubjectBlobTableName = "moderation_action_subject_blob";
6
- export declare const reportTableName = "moderation_report";
7
- export declare const reportResolutionTableName = "moderation_report_resolution";
8
- export interface ModerationAction {
2
+ import { REVIEWCLOSED, REVIEWOPEN, REVIEWESCALATED } from '../../lexicon/types/com/atproto/admin/defs';
3
+ export declare const eventTableName = "moderation_event";
4
+ export declare const subjectStatusTableName = "moderation_subject_status";
5
+ export interface ModerationEvent {
9
6
  id: Generated<number>;
10
- action: typeof TAKEDOWN | typeof FLAG | typeof ACKNOWLEDGE | typeof ESCALATE;
7
+ action: 'com.atproto.admin.defs#modEventTakedown' | 'com.atproto.admin.defs#modEventAcknowledge' | 'com.atproto.admin.defs#modEventEscalate' | 'com.atproto.admin.defs#modEventComment' | 'com.atproto.admin.defs#modEventLabel' | 'com.atproto.admin.defs#modEventReport' | 'com.atproto.admin.defs#modEventMute' | 'com.atproto.admin.defs#modEventReverseTakedown' | 'com.atproto.admin.defs#modEventEmail';
11
8
  subjectType: 'com.atproto.admin.defs#repoRef' | 'com.atproto.repo.strongRef';
12
9
  subjectDid: string;
13
10
  subjectUri: string | null;
14
11
  subjectCid: string | null;
15
12
  createLabelVals: string | null;
16
13
  negateLabelVals: string | null;
17
- reason: string;
14
+ comment: string | null;
18
15
  createdAt: string;
19
16
  createdBy: string;
20
- reversedAt: string | null;
21
- reversedBy: string | null;
22
- reversedReason: string | null;
23
17
  durationInHours: number | null;
24
18
  expiresAt: string | null;
19
+ meta: Record<string, string | boolean> | null;
20
+ legacyRefId: number | null;
25
21
  }
26
- export interface ModerationActionSubjectBlob {
27
- actionId: number;
28
- cid: string;
29
- }
30
- export interface ModerationReport {
22
+ export interface ModerationSubjectStatus {
31
23
  id: Generated<number>;
32
- subjectType: 'com.atproto.admin.defs#repoRef' | 'com.atproto.repo.strongRef';
33
- subjectDid: string;
34
- subjectUri: string | null;
35
- subjectCid: string | null;
36
- reasonType: typeof REASONSPAM | typeof REASONOTHER | typeof REASONMISLEADING | typeof REASONRUDE | typeof REASONSEXUAL | typeof REASONVIOLATION;
37
- reason: string | null;
38
- reportedByDid: string;
39
- createdAt: string;
40
- }
41
- export interface ModerationReportResolution {
42
- reportId: number;
43
- actionId: number;
24
+ did: string;
25
+ recordPath: string;
26
+ recordCid: string | null;
27
+ blobCids: string[] | null;
28
+ reviewState: typeof REVIEWCLOSED | typeof REVIEWOPEN | typeof REVIEWESCALATED;
44
29
  createdAt: string;
45
- createdBy: string;
30
+ updatedAt: string;
31
+ lastReviewedBy: string | null;
32
+ lastReviewedAt: string | null;
33
+ lastReportedAt: string | null;
34
+ muteUntil: string | null;
35
+ suspendUntil: string | null;
36
+ takendown: boolean;
37
+ comment: string | null;
46
38
  }
47
39
  export declare type PartialDB = {
48
- [actionTableName]: ModerationAction;
49
- [actionSubjectBlobTableName]: ModerationActionSubjectBlob;
50
- [reportTableName]: ModerationReport;
51
- [reportResolutionTableName]: ModerationReportResolution;
40
+ [eventTableName]: ModerationEvent;
41
+ [subjectStatusTableName]: ModerationSubjectStatus;
52
42
  };
@@ -6,7 +6,7 @@ export declare type AlgoResponse = {
6
6
  feedItems: FeedRow[];
7
7
  cursor?: string;
8
8
  };
9
- export declare type AlgoHandler = (ctx: AppContext, params: SkeletonParams, requester: string) => Promise<AlgoResponse>;
9
+ export declare type AlgoHandler = (ctx: AppContext, params: SkeletonParams, viewer: string | null) => Promise<AlgoResponse>;
10
10
  export declare type MountedAlgos = Record<string, AlgoHandler>;
11
11
  export declare const toSkeletonItem: (feedItem: {
12
12
  uri: string;
package/dist/index.d.ts CHANGED
@@ -11,13 +11,14 @@ export type { ServerConfigValues } from './config';
11
11
  export type { MountedAlgos } from './feed-gen/types';
12
12
  export { ServerConfig } from './config';
13
13
  export { Database, PrimaryDatabase, DatabaseCoordinator } from './db';
14
- export { PeriodicModerationActionReversal } from './db/periodic-moderation-action-reversal';
14
+ export { PeriodicModerationEventReversal } from './db/periodic-moderation-event-reversal';
15
15
  export { Redis } from './redis';
16
16
  export { ViewMaintainer } from './db/views';
17
17
  export { AppContext } from './context';
18
18
  export { makeAlgos } from './feed-gen';
19
19
  export * from './indexer';
20
20
  export * from './ingester';
21
+ export { MigrateModerationData } from './migrate-moderation-data';
21
22
  export declare class BskyAppView {
22
23
  ctx: AppContext;
23
24
  app: express.Application;