@atproto/ozone 0.0.16 → 0.0.17-next.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 (157) hide show
  1. package/dist/api/util.d.ts +10 -0
  2. package/dist/auth-verifier.d.ts +8 -12
  3. package/dist/communication-service/template.d.ts +2 -2
  4. package/dist/config/config.d.ts +6 -0
  5. package/dist/config/env.d.ts +3 -2
  6. package/dist/config/secrets.d.ts +0 -2
  7. package/dist/context.d.ts +6 -0
  8. package/dist/daemon/blob-diverter.d.ts +26 -0
  9. package/dist/daemon/event-pusher.d.ts +6 -0
  10. package/dist/daemon/index.d.ts +1 -0
  11. package/dist/db/index.js +21 -1
  12. package/dist/db/index.js.map +3 -3
  13. package/dist/db/migrations/20240228T003647759Z-add-label-sigs.d.ts +3 -0
  14. package/dist/db/migrations/index.d.ts +1 -0
  15. package/dist/db/schema/index.d.ts +2 -1
  16. package/dist/db/schema/label.d.ts +4 -0
  17. package/dist/db/schema/moderation_event.d.ts +1 -1
  18. package/dist/db/schema/moderation_subject_status.d.ts +2 -2
  19. package/dist/db/schema/signing_key.d.ts +9 -0
  20. package/dist/index.js +10400 -10313
  21. package/dist/index.js.map +3 -3
  22. package/dist/lexicon/index.d.ts +55 -27
  23. package/dist/lexicon/lexicons.d.ts +5046 -4757
  24. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +23 -1
  25. package/dist/lexicon/types/app/bsky/embed/record.d.ts +2 -1
  26. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +1 -0
  27. package/dist/lexicon/types/app/bsky/graph/defs.d.ts +3 -0
  28. package/dist/lexicon/types/app/bsky/labeler/defs.d.ts +41 -0
  29. package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts +36 -0
  30. package/dist/lexicon/types/app/bsky/labeler/service.d.ts +14 -0
  31. package/dist/lexicon/types/com/atproto/admin/defs.d.ts +0 -304
  32. package/dist/lexicon/types/com/atproto/label/defs.d.ts +23 -0
  33. package/dist/lexicon/types/{com/atproto/admin/createCommunicationTemplate.d.ts → tools/ozone/communication/createTemplate.d.ts} +2 -2
  34. package/dist/lexicon/types/tools/ozone/communication/defs.d.ts +14 -0
  35. package/dist/lexicon/types/{com/atproto/admin/listCommunicationTemplates.d.ts → tools/ozone/communication/listTemplates.d.ts} +2 -2
  36. package/dist/lexicon/types/{com/atproto/admin/updateCommunicationTemplate.d.ts → tools/ozone/communication/updateTemplate.d.ts} +2 -2
  37. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +269 -0
  38. package/dist/lexicon/types/{com/atproto/admin/emitModerationEvent.d.ts → tools/ozone/moderation/emitEvent.d.ts} +5 -4
  39. package/dist/lexicon/types/{com/atproto/admin/getModerationEvent.d.ts → tools/ozone/moderation/getEvent.d.ts} +2 -2
  40. package/dist/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/getRecord.d.ts +2 -2
  41. package/dist/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/getRepo.d.ts +2 -2
  42. package/dist/lexicon/types/{com/atproto/admin/queryModerationEvents.d.ts → tools/ozone/moderation/queryEvents.d.ts} +2 -2
  43. package/dist/lexicon/types/{com/atproto/admin/queryModerationStatuses.d.ts → tools/ozone/moderation/queryStatuses.d.ts} +2 -2
  44. package/dist/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/searchRepos.d.ts +2 -2
  45. package/dist/mod-service/index.d.ts +16 -15
  46. package/dist/mod-service/subject.d.ts +1 -1
  47. package/dist/mod-service/types.d.ts +2 -2
  48. package/dist/mod-service/util.d.ts +6 -0
  49. package/dist/mod-service/views.d.ts +9 -3
  50. package/dist/sequencer/sequencer.d.ts +6 -4
  51. package/dist/util.d.ts +2 -0
  52. package/package.json +9 -8
  53. package/src/api/{admin/createCommunicationTemplate.ts → communication/createTemplate.ts} +2 -2
  54. package/src/api/{admin/deleteCommunicationTemplate.ts → communication/deleteTemplate.ts} +2 -2
  55. package/src/api/{admin/listCommunicationTemplates.ts → communication/listTemplates.ts} +2 -2
  56. package/src/api/{admin/updateCommunicationTemplate.ts → communication/updateTemplate.ts} +2 -2
  57. package/src/api/index.ts +21 -21
  58. package/src/api/{temp → label}/fetchLabels.ts +5 -3
  59. package/src/api/label/queryLabels.ts +4 -2
  60. package/src/api/moderation/emitEvent.ts +218 -0
  61. package/src/api/{admin/getModerationEvent.ts → moderation/getEvent.ts} +2 -2
  62. package/src/api/{admin → moderation}/getRecord.ts +3 -3
  63. package/src/api/{admin → moderation}/getRepo.ts +3 -3
  64. package/src/api/{admin/queryModerationEvents.ts → moderation/queryEvents.ts} +3 -3
  65. package/src/api/{admin/queryModerationStatuses.ts → moderation/queryStatuses.ts} +3 -3
  66. package/src/api/{admin → moderation}/searchRepos.ts +2 -2
  67. package/src/api/proxied.ts +8 -8
  68. package/src/api/{moderation → report}/createReport.ts +2 -3
  69. package/src/api/util.ts +119 -0
  70. package/src/auth-verifier.ts +20 -30
  71. package/src/communication-service/template.ts +2 -2
  72. package/src/config/config.ts +24 -7
  73. package/src/config/env.ts +6 -4
  74. package/src/config/secrets.ts +0 -6
  75. package/src/context.ts +36 -12
  76. package/src/daemon/blob-diverter.ts +150 -0
  77. package/src/daemon/context.ts +11 -7
  78. package/src/daemon/event-pusher.ts +58 -15
  79. package/src/daemon/index.ts +1 -0
  80. package/src/db/migrations/20240228T003647759Z-add-label-sigs.ts +25 -0
  81. package/src/db/migrations/index.ts +1 -0
  82. package/src/db/schema/index.ts +2 -0
  83. package/src/db/schema/label.ts +3 -0
  84. package/src/db/schema/moderation_event.ts +11 -11
  85. package/src/db/schema/moderation_subject_status.ts +7 -2
  86. package/src/db/schema/signing_key.ts +10 -0
  87. package/src/lexicon/index.ts +200 -137
  88. package/src/lexicon/lexicons.ts +6310 -6012
  89. package/src/lexicon/types/app/bsky/actor/defs.ts +57 -1
  90. package/src/lexicon/types/app/bsky/embed/record.ts +2 -0
  91. package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
  92. package/src/lexicon/types/app/bsky/graph/defs.ts +3 -0
  93. package/src/lexicon/types/app/bsky/labeler/defs.ts +93 -0
  94. package/src/lexicon/types/app/bsky/labeler/getServices.ts +51 -0
  95. package/src/lexicon/types/app/bsky/labeler/service.ts +31 -0
  96. package/src/lexicon/types/com/atproto/admin/defs.ts +0 -694
  97. package/src/lexicon/types/com/atproto/label/defs.ts +78 -0
  98. package/src/lexicon/types/{com/atproto/admin/createCommunicationTemplate.ts → tools/ozone/communication/createTemplate.ts} +2 -2
  99. package/src/lexicon/types/tools/ozone/communication/defs.ts +35 -0
  100. package/src/lexicon/types/{com/atproto/admin/listCommunicationTemplates.ts → tools/ozone/communication/listTemplates.ts} +2 -2
  101. package/src/lexicon/types/{com/atproto/admin/updateCommunicationTemplate.ts → tools/ozone/communication/updateTemplate.ts} +2 -2
  102. package/src/lexicon/types/tools/ozone/moderation/defs.ts +641 -0
  103. package/src/lexicon/types/{com/atproto/admin/emitModerationEvent.ts → tools/ozone/moderation/emitEvent.ts} +15 -14
  104. package/src/lexicon/types/{com/atproto/admin/getModerationEvent.ts → tools/ozone/moderation/getEvent.ts} +2 -2
  105. package/src/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/getRecord.ts +2 -2
  106. package/src/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/getRepo.ts +2 -2
  107. package/src/lexicon/types/{com/atproto/admin/queryModerationEvents.ts → tools/ozone/moderation/queryEvents.ts} +3 -3
  108. package/src/lexicon/types/{com/atproto/admin/queryModerationStatuses.ts → tools/ozone/moderation/queryStatuses.ts} +2 -2
  109. package/src/lexicon/types/{com/atproto/admin → tools/ozone/moderation}/searchRepos.ts +2 -2
  110. package/src/mod-service/index.ts +46 -50
  111. package/src/mod-service/lang.ts +1 -1
  112. package/src/mod-service/status.ts +60 -41
  113. package/src/mod-service/subject.ts +1 -1
  114. package/src/mod-service/types.ts +10 -10
  115. package/src/mod-service/util.ts +49 -5
  116. package/src/mod-service/views.ts +45 -18
  117. package/src/sequencer/sequencer.ts +12 -11
  118. package/src/util.ts +21 -0
  119. package/tests/__snapshots__/blob-divert.test.ts.snap +22 -0
  120. package/tests/__snapshots__/get-record.test.ts.snap +14 -6
  121. package/tests/__snapshots__/get-repo.test.ts.snap +7 -3
  122. package/tests/__snapshots__/moderation-events.test.ts.snap +8 -8
  123. package/tests/__snapshots__/moderation-statuses.test.ts.snap +6 -6
  124. package/tests/_util.ts +5 -0
  125. package/tests/blob-divert.test.ts +87 -0
  126. package/tests/communication-templates.test.ts +33 -37
  127. package/tests/db.test.ts +6 -6
  128. package/tests/get-record.test.ts +22 -12
  129. package/tests/get-repo.test.ts +33 -21
  130. package/tests/moderation-appeals.test.ts +39 -67
  131. package/tests/moderation-events.test.ts +99 -142
  132. package/tests/moderation-status-tags.test.ts +20 -37
  133. package/tests/moderation-statuses.test.ts +132 -65
  134. package/tests/moderation.test.ts +147 -301
  135. package/tests/query-labels.test.ts +86 -10
  136. package/tests/repo-search.test.ts +18 -11
  137. package/tests/sequencer.test.ts +6 -3
  138. package/dist/api/admin/util.d.ts +0 -5
  139. package/dist/api/moderation/util.d.ts +0 -4
  140. package/src/api/admin/emitModerationEvent.ts +0 -170
  141. package/src/api/admin/util.ts +0 -54
  142. package/src/api/moderation/util.ts +0 -67
  143. /package/dist/api/{admin/createCommunicationTemplate.d.ts → communication/createTemplate.d.ts} +0 -0
  144. /package/dist/api/{admin/deleteCommunicationTemplate.d.ts → communication/deleteTemplate.d.ts} +0 -0
  145. /package/dist/api/{admin/emitModerationEvent.d.ts → communication/listTemplates.d.ts} +0 -0
  146. /package/dist/api/{admin/getModerationEvent.d.ts → communication/updateTemplate.d.ts} +0 -0
  147. /package/dist/api/{temp → label}/fetchLabels.d.ts +0 -0
  148. /package/dist/api/{admin/getRecord.d.ts → moderation/emitEvent.d.ts} +0 -0
  149. /package/dist/api/{admin/getRepo.d.ts → moderation/getEvent.d.ts} +0 -0
  150. /package/dist/api/{admin/listCommunicationTemplates.d.ts → moderation/getRecord.d.ts} +0 -0
  151. /package/dist/api/{admin/queryModerationEvents.d.ts → moderation/getRepo.d.ts} +0 -0
  152. /package/dist/api/{admin/queryModerationStatuses.d.ts → moderation/queryEvents.d.ts} +0 -0
  153. /package/dist/api/{admin/searchRepos.d.ts → moderation/queryStatuses.d.ts} +0 -0
  154. /package/dist/api/{admin/updateCommunicationTemplate.d.ts → moderation/searchRepos.d.ts} +0 -0
  155. /package/dist/api/{moderation → report}/createReport.d.ts +0 -0
  156. /package/dist/lexicon/types/{com/atproto/admin/deleteCommunicationTemplate.d.ts → tools/ozone/communication/deleteTemplate.d.ts} +0 -0
  157. /package/src/lexicon/types/{com/atproto/admin/deleteCommunicationTemplate.ts → tools/ozone/communication/deleteTemplate.ts} +0 -0
@@ -0,0 +1,10 @@
1
+ import { InputSchema as ReportInput } from '../lexicon/types/com/atproto/moderation/createReport';
2
+ import { AccountView } from '../lexicon/types/com/atproto/admin/defs';
3
+ import { RepoView, RepoViewDetail } from '../lexicon/types/tools/ozone/moderation/defs';
4
+ import AppContext from '../context';
5
+ export declare const getPdsAccountInfo: (ctx: AppContext, did: string) => Promise<AccountView | null>;
6
+ export declare const addAccountInfoToRepoViewDetail: (repoView: RepoViewDetail, accountInfo: AccountView | null, includeEmail?: boolean) => RepoViewDetail;
7
+ export declare const addAccountInfoToRepoView: (repoView: RepoView, accountInfo: AccountView | null, includeEmail?: boolean) => RepoView;
8
+ export declare const getReasonType: (reasonType: ReportInput['reasonType']) => string | boolean;
9
+ export declare const getEventType: (type: string) => "tools.ozone.moderation.defs#modEventTakedown" | "tools.ozone.moderation.defs#modEventAcknowledge" | "tools.ozone.moderation.defs#modEventEscalate" | "tools.ozone.moderation.defs#modEventComment" | "tools.ozone.moderation.defs#modEventLabel" | "tools.ozone.moderation.defs#modEventReport" | "tools.ozone.moderation.defs#modEventMute" | "tools.ozone.moderation.defs#modEventReverseTakedown" | "tools.ozone.moderation.defs#modEventEmail" | "tools.ozone.moderation.defs#modEventResolveAppeal" | "tools.ozone.moderation.defs#modEventTag";
10
+ export declare const getReviewState: (reviewState?: string) => "tools.ozone.moderation.defs#reviewOpen" | "tools.ozone.moderation.defs#reviewEscalated" | "tools.ozone.moderation.defs#reviewClosed" | "tools.ozone.moderation.defs#reviewNone" | undefined;
@@ -3,15 +3,15 @@ import { IdResolver } from '@atproto/identity';
3
3
  type ReqCtx = {
4
4
  req: express.Request;
5
5
  };
6
- type RoleOutput = {
6
+ export type AdminTokenOutput = {
7
7
  credentials: {
8
- type: 'role';
9
- isAdmin: boolean;
10
- isModerator: boolean;
8
+ type: 'admin_token';
9
+ isAdmin: true;
10
+ isModerator: true;
11
11
  isTriage: true;
12
12
  };
13
13
  };
14
- type ModeratorOutput = {
14
+ export type ModeratorOutput = {
15
15
  credentials: {
16
16
  type: 'moderator';
17
17
  aud: string;
@@ -43,8 +43,6 @@ export type AuthVerifierOpts = {
43
43
  moderators: string[];
44
44
  triage: string[];
45
45
  adminPassword: string;
46
- moderatorPassword: string;
47
- triagePassword: string;
48
46
  };
49
47
  export declare class AuthVerifier {
50
48
  idResolver: IdResolver;
@@ -53,15 +51,13 @@ export declare class AuthVerifier {
53
51
  moderators: string[];
54
52
  triage: string[];
55
53
  private adminPassword;
56
- private moderatorPassword;
57
- private triagePassword;
58
54
  constructor(idResolver: IdResolver, opts: AuthVerifierOpts);
59
- modOrRole: (reqCtx: ReqCtx) => Promise<ModeratorOutput | RoleOutput>;
55
+ modOrAdminToken: (reqCtx: ReqCtx) => Promise<ModeratorOutput | AdminTokenOutput>;
60
56
  moderator: (reqCtx: ReqCtx) => Promise<ModeratorOutput>;
61
57
  standard: (reqCtx: ReqCtx) => Promise<StandardOutput>;
62
58
  standardOptional: (reqCtx: ReqCtx) => Promise<StandardOutput | NullOutput>;
63
- standardOptionalOrRole: (reqCtx: ReqCtx) => Promise<StandardOutput | RoleOutput | NullOutput>;
64
- role: (reqCtx: ReqCtx) => Promise<RoleOutput>;
59
+ standardOptionalOrAdminToken: (reqCtx: ReqCtx) => Promise<StandardOutput | AdminTokenOutput | NullOutput>;
60
+ adminToken: (reqCtx: ReqCtx) => Promise<AdminTokenOutput>;
65
61
  nullCreds(): NullOutput;
66
62
  }
67
63
  export declare const getJwtStrFromReq: (req: express.Request) => string | null;
@@ -1,7 +1,7 @@
1
1
  import Database from '../db';
2
2
  import { Selectable } from 'kysely';
3
3
  import { CommunicationTemplate } from '../db/schema/communication_template';
4
- import { CommunicationTemplateView } from '../lexicon/types/com/atproto/admin/defs';
4
+ import { TemplateView } from '../lexicon/types/tools/ozone/communication/defs';
5
5
  export type CommunicationTemplateServiceCreator = (db: Database) => CommunicationTemplateService;
6
6
  export declare class CommunicationTemplateService {
7
7
  db: Database;
@@ -14,5 +14,5 @@ export declare class CommunicationTemplateService {
14
14
  }): Promise<Selectable<CommunicationTemplate>>;
15
15
  update(id: number, { name, contentMarkdown, subject, disabled, updatedAt, lastUpdatedBy, }: Partial<Omit<Selectable<CommunicationTemplate>, 'id' | 'createdAt'>>): Promise<Selectable<CommunicationTemplate>>;
16
16
  delete(id: number): Promise<void>;
17
- view(template: Selectable<CommunicationTemplate>): CommunicationTemplateView;
17
+ view(template: Selectable<CommunicationTemplate>): TemplateView;
18
18
  }
@@ -7,6 +7,7 @@ export type OzoneConfig = {
7
7
  pds: PdsConfig | null;
8
8
  cdn: CdnConfig;
9
9
  identity: IdentityConfig;
10
+ blobDivert: BlobDivertConfig | null;
10
11
  access: AccessConfig;
11
12
  };
12
13
  export type ServiceConfig = {
@@ -16,6 +17,10 @@ export type ServiceConfig = {
16
17
  version?: string;
17
18
  devMode?: boolean;
18
19
  };
20
+ export type BlobDivertConfig = {
21
+ url: string;
22
+ adminPassword: string;
23
+ };
19
24
  export type DatabaseConfig = {
20
25
  postgresUrl: string;
21
26
  postgresSchema?: string;
@@ -26,6 +31,7 @@ export type DatabaseConfig = {
26
31
  export type AppviewConfig = {
27
32
  url: string;
28
33
  did: string;
34
+ pushEvents: boolean;
29
35
  };
30
36
  export type PdsConfig = {
31
37
  url: string;
@@ -8,6 +8,7 @@ export type OzoneEnvironment = {
8
8
  serverDid?: string;
9
9
  appviewUrl?: string;
10
10
  appviewDid?: string;
11
+ appviewPushEvents?: boolean;
11
12
  pdsUrl?: string;
12
13
  pdsDid?: string;
13
14
  dbPostgresUrl?: string;
@@ -21,7 +22,7 @@ export type OzoneEnvironment = {
21
22
  moderatorDids: string[];
22
23
  triageDids: string[];
23
24
  adminPassword?: string;
24
- moderatorPassword?: string;
25
- triagePassword?: string;
26
25
  signingKeyHex?: string;
26
+ blobDivertUrl?: string;
27
+ blobDivertAdminPassword?: string;
27
28
  };
@@ -2,7 +2,5 @@ import { OzoneEnvironment } from './env';
2
2
  export declare const envToSecrets: (env: OzoneEnvironment) => OzoneSecrets;
3
3
  export type OzoneSecrets = {
4
4
  adminPassword: string;
5
- moderatorPassword: string;
6
- triagePassword: string;
7
5
  signingKeyHex: string;
8
6
  };
package/dist/context.d.ts CHANGED
@@ -8,6 +8,7 @@ import { ModerationServiceCreator } from './mod-service';
8
8
  import { BackgroundQueue } from './background';
9
9
  import Sequencer from './sequencer/sequencer';
10
10
  import { CommunicationTemplateServiceCreator } from './communication-service/template';
11
+ import { BlobDiverter } from './daemon/blob-diverter';
11
12
  import { AuthVerifier } from './auth-verifier';
12
13
  import { ImageInvalidator } from './image-invalidator';
13
14
  export type AppContextOptions = {
@@ -17,7 +18,9 @@ export type AppContextOptions = {
17
18
  communicationTemplateService: CommunicationTemplateServiceCreator;
18
19
  appviewAgent: AtpAgent;
19
20
  pdsAgent: AtpAgent | undefined;
21
+ blobDiverter?: BlobDiverter;
20
22
  signingKey: Keypair;
23
+ signingKeyId: number;
21
24
  idResolver: IdResolver;
22
25
  imgInvalidator?: ImageInvalidator;
23
26
  backgroundQueue: BackgroundQueue;
@@ -33,10 +36,12 @@ export declare class AppContext {
33
36
  get db(): Database;
34
37
  get cfg(): OzoneConfig;
35
38
  get modService(): ModerationServiceCreator;
39
+ get blobDiverter(): BlobDiverter | undefined;
36
40
  get communicationTemplateService(): CommunicationTemplateServiceCreator;
37
41
  get appviewAgent(): AtpAgent;
38
42
  get pdsAgent(): AtpAgent | undefined;
39
43
  get signingKey(): Keypair;
44
+ get signingKeyId(): number;
40
45
  get plcClient(): plc.Client;
41
46
  get idResolver(): IdResolver;
42
47
  get backgroundQueue(): BackgroundQueue;
@@ -57,5 +62,6 @@ export declare class AppContext {
57
62
  authorization: string;
58
63
  };
59
64
  }>;
65
+ devOverride(overrides: Partial<AppContextOptions>): void;
60
66
  }
61
67
  export default AppContext;
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import { IdResolver } from '@atproto/identity';
3
+ import { Readable } from 'stream';
4
+ import Database from '../db';
5
+ import { BlobDivertConfig } from '../config';
6
+ export declare class BlobDiverter {
7
+ db: Database;
8
+ serviceConfig: BlobDivertConfig;
9
+ idResolver: IdResolver;
10
+ constructor(db: Database, services: {
11
+ idResolver: IdResolver;
12
+ serviceConfig: BlobDivertConfig;
13
+ });
14
+ private getBlob;
15
+ sendImage({ url, imageStream, contentType, }: {
16
+ url: string;
17
+ imageStream: Readable;
18
+ contentType: string;
19
+ }): Promise<boolean>;
20
+ private uploadBlob;
21
+ uploadBlobOnService({ subjectDid, subjectUri, subjectBlobCids, }: {
22
+ subjectDid: string;
23
+ subjectUri: string;
24
+ subjectBlobCids: string[];
25
+ }): Promise<boolean>;
26
+ }
@@ -1,6 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import AtpAgent from '@atproto/api';
3
3
  import Database from '../db';
4
+ import { RepoPushEventType } from '../db/schema/repo_push_event';
5
+ import { BlobPushEvent } from '../db/schema/blob_push_event';
6
+ import { Insertable, Selectable } from 'kysely';
4
7
  type PollState = {
5
8
  timer?: NodeJS.Timer;
6
9
  promise: Promise<void>;
@@ -34,6 +37,7 @@ export declare class EventPusher {
34
37
  };
35
38
  });
36
39
  start(): void;
40
+ get takedowns(): RepoPushEventType[];
37
41
  poll(state: PollState, fn: () => Promise<void>): void;
38
42
  processAll(): Promise<void>;
39
43
  destroy(): Promise<void>;
@@ -44,5 +48,7 @@ export declare class EventPusher {
44
48
  attemptRepoEvent(id: number): Promise<void>;
45
49
  attemptRecordEvent(id: number): Promise<void>;
46
50
  attemptBlobEvent(id: number): Promise<void>;
51
+ markBlobEventAttempt(dbTxn: Database, event: Selectable<BlobPushEvent>, succeeded: boolean): Promise<void>;
52
+ logBlobPushEvent(blobValues: Insertable<BlobPushEvent>[], takedownRef?: string | null): Promise<import("kysely").Selection<import("../db/schema").DatabaseSchemaType, "blob_push_event", "id" | "subjectDid" | "subjectUri" | "eventType" | "subjectBlobCid">[]>;
47
53
  }
48
54
  export {};
@@ -2,6 +2,7 @@ import { OzoneConfig, OzoneSecrets } from '../config';
2
2
  import DaemonContext from './context';
3
3
  import { AppContextOptions } from '../context';
4
4
  export { EventPusher } from './event-pusher';
5
+ export { BlobDiverter } from './blob-diverter';
5
6
  export { EventReverser } from './event-reverser';
6
7
  export declare class OzoneDaemon {
7
8
  ctx: DaemonContext;
package/dist/db/index.js CHANGED
@@ -33784,7 +33784,8 @@ __export(migrations_exports, {
33784
33784
  _20231219T205730722Z: () => T205730722Z_init_exports,
33785
33785
  _20240116T085607200Z: () => T085607200Z_communication_template_exports,
33786
33786
  _20240201T051104136Z: () => T051104136Z_mod_event_blobs_exports,
33787
- _20240208T213404429Z: () => T213404429Z_add_tags_column_to_moderation_subject_exports
33787
+ _20240208T213404429Z: () => T213404429Z_add_tags_column_to_moderation_subject_exports,
33788
+ _20240228T003647759Z: () => T003647759Z_add_label_sigs_exports
33788
33789
  });
33789
33790
 
33790
33791
  // src/db/migrations/20231219T205730722Z-init.ts
@@ -33873,6 +33874,25 @@ async function down4(db) {
33873
33874
  await db.schema.alterTable("moderation_subject_status").dropColumn("tags").execute();
33874
33875
  }
33875
33876
 
33877
+ // src/db/migrations/20240228T003647759Z-add-label-sigs.ts
33878
+ var T003647759Z_add_label_sigs_exports = {};
33879
+ __export(T003647759Z_add_label_sigs_exports, {
33880
+ down: () => down5,
33881
+ up: () => up5
33882
+ });
33883
+ async function up5(db) {
33884
+ await db.schema.alterTable("label").addColumn("exp", "varchar").execute();
33885
+ await db.schema.alterTable("label").addColumn("sig", sql`bytea`).execute();
33886
+ await db.schema.alterTable("label").addColumn("signingKeyId", "integer").execute();
33887
+ await db.schema.createTable("signing_key").addColumn("id", "serial", (col) => col.primaryKey()).addColumn("key", "varchar", (col) => col.notNull().unique()).execute();
33888
+ }
33889
+ async function down5(db) {
33890
+ await db.schema.dropTable("signing_key");
33891
+ await db.schema.alterTable("label").dropColumn("exp").execute();
33892
+ await db.schema.alterTable("label").dropColumn("sig").execute();
33893
+ await db.schema.alterTable("label").dropColumn("signingKey").execute();
33894
+ }
33895
+
33876
33896
  // src/db/migrations/provider.ts
33877
33897
  var CtxMigrationProvider = class {
33878
33898
  constructor(migrations, ctx) {