@atproto/api 0.19.12 → 0.19.14
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/CHANGELOG.md +14 -0
- package/definitions/labels.json +20 -4
- package/dist/client/lexicons.d.ts +56 -0
- package/dist/client/lexicons.d.ts.map +1 -1
- package/dist/client/lexicons.js +28 -0
- package/dist/client/lexicons.js.map +1 -1
- package/dist/client/types/chat/bsky/convo/defs.d.ts +6 -0
- package/dist/client/types/chat/bsky/convo/defs.d.ts.map +1 -1
- package/dist/client/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/client/types/tools/ozone/moderation/defs.d.ts +2 -0
- package/dist/client/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/client/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/moderation/const/labels.d.ts.map +1 -1
- package/dist/moderation/const/labels.js +21 -0
- package/dist/moderation/const/labels.js.map +1 -1
- package/package.json +3 -3
- package/src/client/lexicons.ts +32 -0
- package/src/client/types/chat/bsky/convo/defs.ts +6 -0
- package/src/client/types/tools/ozone/moderation/defs.ts +2 -0
- package/tests/moderation-behaviors.test.ts +26 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/client/types/tools/ozone/moderation/defs.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ComAtprotoAdminDefs from '../../../com/atproto/admin/defs.js'\nimport type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'\nimport type * as ChatBskyConvoDefs from '../../../chat/bsky/convo/defs.js'\nimport type * as ComAtprotoModerationDefs from '../../../com/atproto/moderation/defs.js'\nimport type * as AppBskyAgeassuranceDefs from '../../../app/bsky/ageassurance/defs.js'\nimport type * as ComAtprotoServerDefs from '../../../com/atproto/server/defs.js'\nimport type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.moderation.defs'\n\nexport interface ModEventView {\n $type?: 'tools.ozone.moderation.defs#modEventView'\n id: number\n event:\n | $Typed<ModEventTakedown>\n | $Typed<ModEventReverseTakedown>\n | $Typed<ModEventComment>\n | $Typed<ModEventReport>\n | $Typed<ModEventLabel>\n | $Typed<ModEventAcknowledge>\n | $Typed<ModEventEscalate>\n | $Typed<ModEventMute>\n | $Typed<ModEventUnmute>\n | $Typed<ModEventMuteReporter>\n | $Typed<ModEventUnmuteReporter>\n | $Typed<ModEventEmail>\n | $Typed<ModEventResolveAppeal>\n | $Typed<ModEventDivert>\n | $Typed<ModEventTag>\n | $Typed<AccountEvent>\n | $Typed<IdentityEvent>\n | $Typed<RecordEvent>\n | $Typed<ModEventPriorityScore>\n | $Typed<AgeAssuranceEvent>\n | $Typed<AgeAssuranceOverrideEvent>\n | $Typed<AgeAssurancePurgeEvent>\n | $Typed<RevokeAccountCredentialsEvent>\n | $Typed<ScheduleTakedownEvent>\n | $Typed<CancelScheduledTakedownEvent>\n | { $type: string }\n subject:\n | $Typed<ComAtprotoAdminDefs.RepoRef>\n | $Typed<ComAtprotoRepoStrongRef.Main>\n | $Typed<ChatBskyConvoDefs.MessageRef>\n | { $type: string }\n subjectBlobCids: string[]\n createdBy: string\n createdAt: string\n creatorHandle?: string\n subjectHandle?: string\n modTool?: ModTool\n}\n\nconst hashModEventView = 'modEventView'\n\nexport function isModEventView<V>(v: V) {\n return is$typed(v, id, hashModEventView)\n}\n\nexport function validateModEventView<V>(v: V) {\n return validate<ModEventView & V>(v, id, hashModEventView)\n}\n\nexport interface ModEventViewDetail {\n $type?: 'tools.ozone.moderation.defs#modEventViewDetail'\n id: number\n event:\n | $Typed<ModEventTakedown>\n | $Typed<ModEventReverseTakedown>\n | $Typed<ModEventComment>\n | $Typed<ModEventReport>\n | $Typed<ModEventLabel>\n | $Typed<ModEventAcknowledge>\n | $Typed<ModEventEscalate>\n | $Typed<ModEventMute>\n | $Typed<ModEventUnmute>\n | $Typed<ModEventMuteReporter>\n | $Typed<ModEventUnmuteReporter>\n | $Typed<ModEventEmail>\n | $Typed<ModEventResolveAppeal>\n | $Typed<ModEventDivert>\n | $Typed<ModEventTag>\n | $Typed<AccountEvent>\n | $Typed<IdentityEvent>\n | $Typed<RecordEvent>\n | $Typed<ModEventPriorityScore>\n | $Typed<AgeAssuranceEvent>\n | $Typed<AgeAssuranceOverrideEvent>\n | $Typed<AgeAssurancePurgeEvent>\n | $Typed<RevokeAccountCredentialsEvent>\n | $Typed<ScheduleTakedownEvent>\n | $Typed<CancelScheduledTakedownEvent>\n | { $type: string }\n subject:\n | $Typed<RepoView>\n | $Typed<RepoViewNotFound>\n | $Typed<RecordView>\n | $Typed<RecordViewNotFound>\n | { $type: string }\n subjectBlobs: BlobView[]\n createdBy: string\n createdAt: string\n modTool?: ModTool\n}\n\nconst hashModEventViewDetail = 'modEventViewDetail'\n\nexport function isModEventViewDetail<V>(v: V) {\n return is$typed(v, id, hashModEventViewDetail)\n}\n\nexport function validateModEventViewDetail<V>(v: V) {\n return validate<ModEventViewDetail & V>(v, id, hashModEventViewDetail)\n}\n\nexport interface SubjectStatusView {\n $type?: 'tools.ozone.moderation.defs#subjectStatusView'\n id: number\n subject:\n | $Typed<ComAtprotoAdminDefs.RepoRef>\n | $Typed<ComAtprotoRepoStrongRef.Main>\n | $Typed<ChatBskyConvoDefs.MessageRef>\n | { $type: string }\n hosting?: $Typed<AccountHosting> | $Typed<RecordHosting> | { $type: string }\n subjectBlobCids?: string[]\n subjectRepoHandle?: string\n /** Timestamp referencing when the last update was made to the moderation status of the subject */\n updatedAt: string\n /** Timestamp referencing the first moderation status impacting event was emitted on the subject */\n createdAt: string\n reviewState: SubjectReviewState\n /** Sticky comment on the subject. */\n comment?: string\n /** Numeric value representing the level of priority. Higher score means higher priority. */\n priorityScore?: number\n muteUntil?: string\n muteReportingUntil?: string\n lastReviewedBy?: string\n lastReviewedAt?: string\n lastReportedAt?: string\n /** Timestamp referencing when the author of the subject appealed a moderation action */\n lastAppealedAt?: string\n takendown?: boolean\n /** True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators. */\n appealed?: boolean\n suspendUntil?: string\n tags?: string[]\n accountStats?: AccountStats\n recordsStats?: RecordsStats\n accountStrike?: AccountStrike\n /** Current age assurance state of the subject. */\n ageAssuranceState?:\n | 'pending'\n | 'assured'\n | 'unknown'\n | 'reset'\n | 'blocked'\n | (string & {})\n /** Whether or not the last successful update to age assurance was made by the user or admin. */\n ageAssuranceUpdatedBy?: 'admin' | 'user' | (string & {})\n}\n\nconst hashSubjectStatusView = 'subjectStatusView'\n\nexport function isSubjectStatusView<V>(v: V) {\n return is$typed(v, id, hashSubjectStatusView)\n}\n\nexport function validateSubjectStatusView<V>(v: V) {\n return validate<SubjectStatusView & V>(v, id, hashSubjectStatusView)\n}\n\n/** Detailed view of a subject. For record subjects, the author's repo and profile will be returned. */\nexport interface SubjectView {\n $type?: 'tools.ozone.moderation.defs#subjectView'\n type: ComAtprotoModerationDefs.SubjectType\n subject: string\n status?: SubjectStatusView\n repo?: RepoViewDetail\n profile?: { $type: string }\n record?: RecordViewDetail\n}\n\nconst hashSubjectView = 'subjectView'\n\nexport function isSubjectView<V>(v: V) {\n return is$typed(v, id, hashSubjectView)\n}\n\nexport function validateSubjectView<V>(v: V) {\n return validate<SubjectView & V>(v, id, hashSubjectView)\n}\n\n/** Statistics about a particular account subject */\nexport interface AccountStats {\n $type?: 'tools.ozone.moderation.defs#accountStats'\n /** Total number of reports on the account */\n reportCount?: number\n /** Total number of appeals against a moderation action on the account */\n appealCount?: number\n /** Number of times the account was suspended */\n suspendCount?: number\n /** Number of times the account was escalated */\n escalateCount?: number\n /** Number of times the account was taken down */\n takedownCount?: number\n}\n\nconst hashAccountStats = 'accountStats'\n\nexport function isAccountStats<V>(v: V) {\n return is$typed(v, id, hashAccountStats)\n}\n\nexport function validateAccountStats<V>(v: V) {\n return validate<AccountStats & V>(v, id, hashAccountStats)\n}\n\n/** Statistics about a set of record subject items */\nexport interface RecordsStats {\n $type?: 'tools.ozone.moderation.defs#recordsStats'\n /** Cumulative sum of the number of reports on the items in the set */\n totalReports?: number\n /** Number of items that were reported at least once */\n reportedCount?: number\n /** Number of items that were escalated at least once */\n escalatedCount?: number\n /** Number of items that were appealed at least once */\n appealedCount?: number\n /** Total number of item in the set */\n subjectCount?: number\n /** Number of item currently in \"reviewOpen\" or \"reviewEscalated\" state */\n pendingCount?: number\n /** Number of item currently in \"reviewNone\" or \"reviewClosed\" state */\n processedCount?: number\n /** Number of item currently taken down */\n takendownCount?: number\n}\n\nconst hashRecordsStats = 'recordsStats'\n\nexport function isRecordsStats<V>(v: V) {\n return is$typed(v, id, hashRecordsStats)\n}\n\nexport function validateRecordsStats<V>(v: V) {\n return validate<RecordsStats & V>(v, id, hashRecordsStats)\n}\n\n/** Strike information for an account */\nexport interface AccountStrike {\n $type?: 'tools.ozone.moderation.defs#accountStrike'\n /** Current number of active strikes (excluding expired strikes) */\n activeStrikeCount?: number\n /** Total number of strikes ever received (including expired strikes) */\n totalStrikeCount?: number\n /** Timestamp of the first strike received */\n firstStrikeAt?: string\n /** Timestamp of the most recent strike received */\n lastStrikeAt?: string\n}\n\nconst hashAccountStrike = 'accountStrike'\n\nexport function isAccountStrike<V>(v: V) {\n return is$typed(v, id, hashAccountStrike)\n}\n\nexport function validateAccountStrike<V>(v: V) {\n return validate<AccountStrike & V>(v, id, hashAccountStrike)\n}\n\nexport type SubjectReviewState =\n | 'tools.ozone.moderation.defs#reviewOpen'\n | 'tools.ozone.moderation.defs#reviewEscalated'\n | 'tools.ozone.moderation.defs#reviewClosed'\n | 'tools.ozone.moderation.defs#reviewNone'\n | (string & {})\n\n/** Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator */\nexport const REVIEWOPEN = `${id}#reviewOpen`\n/** Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator */\nexport const REVIEWESCALATED = `${id}#reviewEscalated`\n/** Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator */\nexport const REVIEWCLOSED = `${id}#reviewClosed`\n/** Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it */\nexport const REVIEWNONE = `${id}#reviewNone`\n\n/** Take down a subject permanently or temporarily */\nexport interface ModEventTakedown {\n $type?: 'tools.ozone.moderation.defs#modEventTakedown'\n comment?: string\n /** Indicates how long the takedown should be in effect before automatically expiring. */\n durationInHours?: number\n /** If true, all other reports on content authored by this account will be resolved (acknowledged). */\n acknowledgeAccountSubjects?: boolean\n /** Names/Keywords of the policies that drove the decision. */\n policies?: string[]\n /** Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.). */\n severityLevel?: string\n /** List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services. */\n targetServices?: ('appview' | 'pds' | (string & {}))[]\n /** Number of strikes to assign to the user for this violation. */\n strikeCount?: number\n /** When the strike should expire. If not provided, the strike never expires. */\n strikeExpiresAt?: string\n}\n\nconst hashModEventTakedown = 'modEventTakedown'\n\nexport function isModEventTakedown<V>(v: V) {\n return is$typed(v, id, hashModEventTakedown)\n}\n\nexport function validateModEventTakedown<V>(v: V) {\n return validate<ModEventTakedown & V>(v, id, hashModEventTakedown)\n}\n\n/** Revert take down action on a subject */\nexport interface ModEventReverseTakedown {\n $type?: 'tools.ozone.moderation.defs#modEventReverseTakedown'\n /** Describe reasoning behind the reversal. */\n comment?: string\n /** Names/Keywords of the policy infraction for which takedown is being reversed. */\n policies?: string[]\n /** Severity level of the violation. Usually set from the last policy infraction's severity. */\n severityLevel?: string\n /** Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity. */\n strikeCount?: number\n}\n\nconst hashModEventReverseTakedown = 'modEventReverseTakedown'\n\nexport function isModEventReverseTakedown<V>(v: V) {\n return is$typed(v, id, hashModEventReverseTakedown)\n}\n\nexport function validateModEventReverseTakedown<V>(v: V) {\n return validate<ModEventReverseTakedown & V>(\n v,\n id,\n hashModEventReverseTakedown,\n )\n}\n\n/** Resolve appeal on a subject */\nexport interface ModEventResolveAppeal {\n $type?: 'tools.ozone.moderation.defs#modEventResolveAppeal'\n /** Describe resolution. */\n comment?: string\n}\n\nconst hashModEventResolveAppeal = 'modEventResolveAppeal'\n\nexport function isModEventResolveAppeal<V>(v: V) {\n return is$typed(v, id, hashModEventResolveAppeal)\n}\n\nexport function validateModEventResolveAppeal<V>(v: V) {\n return validate<ModEventResolveAppeal & V>(v, id, hashModEventResolveAppeal)\n}\n\n/** Add a comment to a subject. An empty comment will clear any previously set sticky comment. */\nexport interface ModEventComment {\n $type?: 'tools.ozone.moderation.defs#modEventComment'\n comment?: string\n /** Make the comment persistent on the subject */\n sticky?: boolean\n}\n\nconst hashModEventComment = 'modEventComment'\n\nexport function isModEventComment<V>(v: V) {\n return is$typed(v, id, hashModEventComment)\n}\n\nexport function validateModEventComment<V>(v: V) {\n return validate<ModEventComment & V>(v, id, hashModEventComment)\n}\n\n/** Report a subject */\nexport interface ModEventReport {\n $type?: 'tools.ozone.moderation.defs#modEventReport'\n comment?: string\n /** Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. */\n isReporterMuted?: boolean\n reportType: ComAtprotoModerationDefs.ReasonType\n}\n\nconst hashModEventReport = 'modEventReport'\n\nexport function isModEventReport<V>(v: V) {\n return is$typed(v, id, hashModEventReport)\n}\n\nexport function validateModEventReport<V>(v: V) {\n return validate<ModEventReport & V>(v, id, hashModEventReport)\n}\n\n/** Apply/Negate labels on a subject */\nexport interface ModEventLabel {\n $type?: 'tools.ozone.moderation.defs#modEventLabel'\n comment?: string\n createLabelVals: string[]\n negateLabelVals: string[]\n /** Indicates how long the label will remain on the subject. Only applies on labels that are being added. */\n durationInHours?: number\n}\n\nconst hashModEventLabel = 'modEventLabel'\n\nexport function isModEventLabel<V>(v: V) {\n return is$typed(v, id, hashModEventLabel)\n}\n\nexport function validateModEventLabel<V>(v: V) {\n return validate<ModEventLabel & V>(v, id, hashModEventLabel)\n}\n\n/** Set priority score of the subject. Higher score means higher priority. */\nexport interface ModEventPriorityScore {\n $type?: 'tools.ozone.moderation.defs#modEventPriorityScore'\n comment?: string\n score: number\n}\n\nconst hashModEventPriorityScore = 'modEventPriorityScore'\n\nexport function isModEventPriorityScore<V>(v: V) {\n return is$typed(v, id, hashModEventPriorityScore)\n}\n\nexport function validateModEventPriorityScore<V>(v: V) {\n return validate<ModEventPriorityScore & V>(v, id, hashModEventPriorityScore)\n}\n\n/** Age assurance info coming directly from users. Only works on DID subjects. */\nexport interface AgeAssuranceEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssuranceEvent'\n /** The date and time of this write operation. */\n createdAt: string\n /** The unique identifier for this instance of the age assurance flow, in UUID format. */\n attemptId: string\n /** The status of the Age Assurance process. */\n status: 'unknown' | 'pending' | 'assured' | (string & {})\n access?: AppBskyAgeassuranceDefs.Access\n /** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. */\n countryCode?: string\n /** The ISO 3166-2 region code provided when beginning the Age Assurance flow. */\n regionCode?: string\n /** The IP address used when initiating the AA flow. */\n initIp?: string\n /** The user agent used when initiating the AA flow. */\n initUa?: string\n /** The IP address used when completing the AA flow. */\n completeIp?: string\n /** The user agent used when completing the AA flow. */\n completeUa?: string\n}\n\nconst hashAgeAssuranceEvent = 'ageAssuranceEvent'\n\nexport function isAgeAssuranceEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssuranceEvent)\n}\n\nexport function validateAgeAssuranceEvent<V>(v: V) {\n return validate<AgeAssuranceEvent & V>(v, id, hashAgeAssuranceEvent)\n}\n\n/** Age assurance status override by moderators. Only works on DID subjects. */\nexport interface AgeAssuranceOverrideEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent'\n /** The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state. */\n status: 'assured' | 'reset' | 'blocked' | (string & {})\n access?: AppBskyAgeassuranceDefs.Access\n /** Comment describing the reason for the override. */\n comment: string\n}\n\nconst hashAgeAssuranceOverrideEvent = 'ageAssuranceOverrideEvent'\n\nexport function isAgeAssuranceOverrideEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssuranceOverrideEvent)\n}\n\nexport function validateAgeAssuranceOverrideEvent<V>(v: V) {\n return validate<AgeAssuranceOverrideEvent & V>(\n v,\n id,\n hashAgeAssuranceOverrideEvent,\n )\n}\n\n/** Purges all age assurance events for the subject. Only works on DID subjects. Moderator-only. */\nexport interface AgeAssurancePurgeEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssurancePurgeEvent'\n /** Comment describing the reason for the purge. */\n comment: string\n}\n\nconst hashAgeAssurancePurgeEvent = 'ageAssurancePurgeEvent'\n\nexport function isAgeAssurancePurgeEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssurancePurgeEvent)\n}\n\nexport function validateAgeAssurancePurgeEvent<V>(v: V) {\n return validate<AgeAssurancePurgeEvent & V>(v, id, hashAgeAssurancePurgeEvent)\n}\n\n/** Account credentials revocation by moderators. Only works on DID subjects. */\nexport interface RevokeAccountCredentialsEvent {\n $type?: 'tools.ozone.moderation.defs#revokeAccountCredentialsEvent'\n /** Comment describing the reason for the revocation. */\n comment: string\n}\n\nconst hashRevokeAccountCredentialsEvent = 'revokeAccountCredentialsEvent'\n\nexport function isRevokeAccountCredentialsEvent<V>(v: V) {\n return is$typed(v, id, hashRevokeAccountCredentialsEvent)\n}\n\nexport function validateRevokeAccountCredentialsEvent<V>(v: V) {\n return validate<RevokeAccountCredentialsEvent & V>(\n v,\n id,\n hashRevokeAccountCredentialsEvent,\n )\n}\n\nexport interface ModEventAcknowledge {\n $type?: 'tools.ozone.moderation.defs#modEventAcknowledge'\n comment?: string\n /** If true, all other reports on content authored by this account will be resolved (acknowledged). */\n acknowledgeAccountSubjects?: boolean\n}\n\nconst hashModEventAcknowledge = 'modEventAcknowledge'\n\nexport function isModEventAcknowledge<V>(v: V) {\n return is$typed(v, id, hashModEventAcknowledge)\n}\n\nexport function validateModEventAcknowledge<V>(v: V) {\n return validate<ModEventAcknowledge & V>(v, id, hashModEventAcknowledge)\n}\n\nexport interface ModEventEscalate {\n $type?: 'tools.ozone.moderation.defs#modEventEscalate'\n comment?: string\n}\n\nconst hashModEventEscalate = 'modEventEscalate'\n\nexport function isModEventEscalate<V>(v: V) {\n return is$typed(v, id, hashModEventEscalate)\n}\n\nexport function validateModEventEscalate<V>(v: V) {\n return validate<ModEventEscalate & V>(v, id, hashModEventEscalate)\n}\n\n/** Mute incoming reports on a subject */\nexport interface ModEventMute {\n $type?: 'tools.ozone.moderation.defs#modEventMute'\n comment?: string\n /** Indicates how long the subject should remain muted. */\n durationInHours: number\n}\n\nconst hashModEventMute = 'modEventMute'\n\nexport function isModEventMute<V>(v: V) {\n return is$typed(v, id, hashModEventMute)\n}\n\nexport function validateModEventMute<V>(v: V) {\n return validate<ModEventMute & V>(v, id, hashModEventMute)\n}\n\n/** Unmute action on a subject */\nexport interface ModEventUnmute {\n $type?: 'tools.ozone.moderation.defs#modEventUnmute'\n /** Describe reasoning behind the reversal. */\n comment?: string\n}\n\nconst hashModEventUnmute = 'modEventUnmute'\n\nexport function isModEventUnmute<V>(v: V) {\n return is$typed(v, id, hashModEventUnmute)\n}\n\nexport function validateModEventUnmute<V>(v: V) {\n return validate<ModEventUnmute & V>(v, id, hashModEventUnmute)\n}\n\n/** Mute incoming reports from an account */\nexport interface ModEventMuteReporter {\n $type?: 'tools.ozone.moderation.defs#modEventMuteReporter'\n comment?: string\n /** Indicates how long the account should remain muted. Falsy value here means a permanent mute. */\n durationInHours?: number\n}\n\nconst hashModEventMuteReporter = 'modEventMuteReporter'\n\nexport function isModEventMuteReporter<V>(v: V) {\n return is$typed(v, id, hashModEventMuteReporter)\n}\n\nexport function validateModEventMuteReporter<V>(v: V) {\n return validate<ModEventMuteReporter & V>(v, id, hashModEventMuteReporter)\n}\n\n/** Unmute incoming reports from an account */\nexport interface ModEventUnmuteReporter {\n $type?: 'tools.ozone.moderation.defs#modEventUnmuteReporter'\n /** Describe reasoning behind the reversal. */\n comment?: string\n}\n\nconst hashModEventUnmuteReporter = 'modEventUnmuteReporter'\n\nexport function isModEventUnmuteReporter<V>(v: V) {\n return is$typed(v, id, hashModEventUnmuteReporter)\n}\n\nexport function validateModEventUnmuteReporter<V>(v: V) {\n return validate<ModEventUnmuteReporter & V>(v, id, hashModEventUnmuteReporter)\n}\n\n/** Keep a log of outgoing email to a user */\nexport interface ModEventEmail {\n $type?: 'tools.ozone.moderation.defs#modEventEmail'\n /** The subject line of the email sent to the user. */\n subjectLine: string\n /** The content of the email sent to the user. */\n content?: string\n /** Additional comment about the outgoing comm. */\n comment?: string\n /** Names/Keywords of the policies that necessitated the email. */\n policies?: string[]\n /** Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense */\n severityLevel?: string\n /** Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense. */\n strikeCount?: number\n /** When the strike should expire. If not provided, the strike never expires. */\n strikeExpiresAt?: string\n /** Indicates whether the email was successfully delivered to the user's inbox. */\n isDelivered?: boolean\n}\n\nconst hashModEventEmail = 'modEventEmail'\n\nexport function isModEventEmail<V>(v: V) {\n return is$typed(v, id, hashModEventEmail)\n}\n\nexport function validateModEventEmail<V>(v: V) {\n return validate<ModEventEmail & V>(v, id, hashModEventEmail)\n}\n\n/** Divert a record's blobs to a 3rd party service for further scanning/tagging */\nexport interface ModEventDivert {\n $type?: 'tools.ozone.moderation.defs#modEventDivert'\n comment?: string\n}\n\nconst hashModEventDivert = 'modEventDivert'\n\nexport function isModEventDivert<V>(v: V) {\n return is$typed(v, id, hashModEventDivert)\n}\n\nexport function validateModEventDivert<V>(v: V) {\n return validate<ModEventDivert & V>(v, id, hashModEventDivert)\n}\n\n/** Add/Remove a tag on a subject */\nexport interface ModEventTag {\n $type?: 'tools.ozone.moderation.defs#modEventTag'\n /** Tags to be added to the subject. If already exists, won't be duplicated. */\n add: string[]\n /** Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated. */\n remove: string[]\n /** Additional comment about added/removed tags. */\n comment?: string\n}\n\nconst hashModEventTag = 'modEventTag'\n\nexport function isModEventTag<V>(v: V) {\n return is$typed(v, id, hashModEventTag)\n}\n\nexport function validateModEventTag<V>(v: V) {\n return validate<ModEventTag & V>(v, id, hashModEventTag)\n}\n\n/** Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface AccountEvent {\n $type?: 'tools.ozone.moderation.defs#accountEvent'\n comment?: string\n /** Indicates that the account has a repository which can be fetched from the host that emitted this event. */\n active: boolean\n status?:\n | 'unknown'\n | 'deactivated'\n | 'deleted'\n | 'takendown'\n | 'suspended'\n | 'tombstoned'\n | (string & {})\n timestamp: string\n}\n\nconst hashAccountEvent = 'accountEvent'\n\nexport function isAccountEvent<V>(v: V) {\n return is$typed(v, id, hashAccountEvent)\n}\n\nexport function validateAccountEvent<V>(v: V) {\n return validate<AccountEvent & V>(v, id, hashAccountEvent)\n}\n\n/** Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface IdentityEvent {\n $type?: 'tools.ozone.moderation.defs#identityEvent'\n comment?: string\n handle?: string\n pdsHost?: string\n tombstone?: boolean\n timestamp: string\n}\n\nconst hashIdentityEvent = 'identityEvent'\n\nexport function isIdentityEvent<V>(v: V) {\n return is$typed(v, id, hashIdentityEvent)\n}\n\nexport function validateIdentityEvent<V>(v: V) {\n return validate<IdentityEvent & V>(v, id, hashIdentityEvent)\n}\n\n/** Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface RecordEvent {\n $type?: 'tools.ozone.moderation.defs#recordEvent'\n comment?: string\n op: 'create' | 'update' | 'delete' | (string & {})\n cid?: string\n timestamp: string\n}\n\nconst hashRecordEvent = 'recordEvent'\n\nexport function isRecordEvent<V>(v: V) {\n return is$typed(v, id, hashRecordEvent)\n}\n\nexport function validateRecordEvent<V>(v: V) {\n return validate<RecordEvent & V>(v, id, hashRecordEvent)\n}\n\n/** Logs a scheduled takedown action for an account. */\nexport interface ScheduleTakedownEvent {\n $type?: 'tools.ozone.moderation.defs#scheduleTakedownEvent'\n comment?: string\n executeAt?: string\n executeAfter?: string\n executeUntil?: string\n}\n\nconst hashScheduleTakedownEvent = 'scheduleTakedownEvent'\n\nexport function isScheduleTakedownEvent<V>(v: V) {\n return is$typed(v, id, hashScheduleTakedownEvent)\n}\n\nexport function validateScheduleTakedownEvent<V>(v: V) {\n return validate<ScheduleTakedownEvent & V>(v, id, hashScheduleTakedownEvent)\n}\n\n/** Logs cancellation of a scheduled takedown action for an account. */\nexport interface CancelScheduledTakedownEvent {\n $type?: 'tools.ozone.moderation.defs#cancelScheduledTakedownEvent'\n comment?: string\n}\n\nconst hashCancelScheduledTakedownEvent = 'cancelScheduledTakedownEvent'\n\nexport function isCancelScheduledTakedownEvent<V>(v: V) {\n return is$typed(v, id, hashCancelScheduledTakedownEvent)\n}\n\nexport function validateCancelScheduledTakedownEvent<V>(v: V) {\n return validate<CancelScheduledTakedownEvent & V>(\n v,\n id,\n hashCancelScheduledTakedownEvent,\n )\n}\n\nexport interface RepoView {\n $type?: 'tools.ozone.moderation.defs#repoView'\n did: string\n handle: string\n email?: string\n relatedRecords: { [_ in string]: unknown }[]\n indexedAt: string\n moderation: Moderation\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invitesDisabled?: boolean\n inviteNote?: string\n deactivatedAt?: string\n threatSignatures?: ComAtprotoAdminDefs.ThreatSignature[]\n}\n\nconst hashRepoView = 'repoView'\n\nexport function isRepoView<V>(v: V) {\n return is$typed(v, id, hashRepoView)\n}\n\nexport function validateRepoView<V>(v: V) {\n return validate<RepoView & V>(v, id, hashRepoView)\n}\n\nexport interface RepoViewDetail {\n $type?: 'tools.ozone.moderation.defs#repoViewDetail'\n did: string\n handle: string\n email?: string\n relatedRecords: { [_ in string]: unknown }[]\n indexedAt: string\n moderation: ModerationDetail\n labels?: ComAtprotoLabelDefs.Label[]\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invites?: ComAtprotoServerDefs.InviteCode[]\n invitesDisabled?: boolean\n inviteNote?: string\n emailConfirmedAt?: string\n deactivatedAt?: string\n threatSignatures?: ComAtprotoAdminDefs.ThreatSignature[]\n}\n\nconst hashRepoViewDetail = 'repoViewDetail'\n\nexport function isRepoViewDetail<V>(v: V) {\n return is$typed(v, id, hashRepoViewDetail)\n}\n\nexport function validateRepoViewDetail<V>(v: V) {\n return validate<RepoViewDetail & V>(v, id, hashRepoViewDetail)\n}\n\nexport interface RepoViewNotFound {\n $type?: 'tools.ozone.moderation.defs#repoViewNotFound'\n did: string\n}\n\nconst hashRepoViewNotFound = 'repoViewNotFound'\n\nexport function isRepoViewNotFound<V>(v: V) {\n return is$typed(v, id, hashRepoViewNotFound)\n}\n\nexport function validateRepoViewNotFound<V>(v: V) {\n return validate<RepoViewNotFound & V>(v, id, hashRepoViewNotFound)\n}\n\nexport interface RecordView {\n $type?: 'tools.ozone.moderation.defs#recordView'\n uri: string\n cid: string\n value: { [_ in string]: unknown }\n blobCids: string[]\n indexedAt: string\n moderation: Moderation\n repo: RepoView\n}\n\nconst hashRecordView = 'recordView'\n\nexport function isRecordView<V>(v: V) {\n return is$typed(v, id, hashRecordView)\n}\n\nexport function validateRecordView<V>(v: V) {\n return validate<RecordView & V>(v, id, hashRecordView)\n}\n\nexport interface RecordViewDetail {\n $type?: 'tools.ozone.moderation.defs#recordViewDetail'\n uri: string\n cid: string\n value: { [_ in string]: unknown }\n blobs: BlobView[]\n labels?: ComAtprotoLabelDefs.Label[]\n indexedAt: string\n moderation: ModerationDetail\n repo: RepoView\n}\n\nconst hashRecordViewDetail = 'recordViewDetail'\n\nexport function isRecordViewDetail<V>(v: V) {\n return is$typed(v, id, hashRecordViewDetail)\n}\n\nexport function validateRecordViewDetail<V>(v: V) {\n return validate<RecordViewDetail & V>(v, id, hashRecordViewDetail)\n}\n\nexport interface RecordViewNotFound {\n $type?: 'tools.ozone.moderation.defs#recordViewNotFound'\n uri: string\n}\n\nconst hashRecordViewNotFound = 'recordViewNotFound'\n\nexport function isRecordViewNotFound<V>(v: V) {\n return is$typed(v, id, hashRecordViewNotFound)\n}\n\nexport function validateRecordViewNotFound<V>(v: V) {\n return validate<RecordViewNotFound & V>(v, id, hashRecordViewNotFound)\n}\n\nexport interface Moderation {\n $type?: 'tools.ozone.moderation.defs#moderation'\n subjectStatus?: SubjectStatusView\n}\n\nconst hashModeration = 'moderation'\n\nexport function isModeration<V>(v: V) {\n return is$typed(v, id, hashModeration)\n}\n\nexport function validateModeration<V>(v: V) {\n return validate<Moderation & V>(v, id, hashModeration)\n}\n\nexport interface ModerationDetail {\n $type?: 'tools.ozone.moderation.defs#moderationDetail'\n subjectStatus?: SubjectStatusView\n}\n\nconst hashModerationDetail = 'moderationDetail'\n\nexport function isModerationDetail<V>(v: V) {\n return is$typed(v, id, hashModerationDetail)\n}\n\nexport function validateModerationDetail<V>(v: V) {\n return validate<ModerationDetail & V>(v, id, hashModerationDetail)\n}\n\nexport interface BlobView {\n $type?: 'tools.ozone.moderation.defs#blobView'\n cid: string\n mimeType: string\n size: number\n createdAt: string\n details?: $Typed<ImageDetails> | $Typed<VideoDetails> | { $type: string }\n moderation?: Moderation\n}\n\nconst hashBlobView = 'blobView'\n\nexport function isBlobView<V>(v: V) {\n return is$typed(v, id, hashBlobView)\n}\n\nexport function validateBlobView<V>(v: V) {\n return validate<BlobView & V>(v, id, hashBlobView)\n}\n\nexport interface ImageDetails {\n $type?: 'tools.ozone.moderation.defs#imageDetails'\n width: number\n height: number\n}\n\nconst hashImageDetails = 'imageDetails'\n\nexport function isImageDetails<V>(v: V) {\n return is$typed(v, id, hashImageDetails)\n}\n\nexport function validateImageDetails<V>(v: V) {\n return validate<ImageDetails & V>(v, id, hashImageDetails)\n}\n\nexport interface VideoDetails {\n $type?: 'tools.ozone.moderation.defs#videoDetails'\n width: number\n height: number\n length: number\n}\n\nconst hashVideoDetails = 'videoDetails'\n\nexport function isVideoDetails<V>(v: V) {\n return is$typed(v, id, hashVideoDetails)\n}\n\nexport function validateVideoDetails<V>(v: V) {\n return validate<VideoDetails & V>(v, id, hashVideoDetails)\n}\n\nexport interface AccountHosting {\n $type?: 'tools.ozone.moderation.defs#accountHosting'\n status:\n | 'takendown'\n | 'suspended'\n | 'deleted'\n | 'deactivated'\n | 'unknown'\n | (string & {})\n updatedAt?: string\n createdAt?: string\n deletedAt?: string\n deactivatedAt?: string\n reactivatedAt?: string\n}\n\nconst hashAccountHosting = 'accountHosting'\n\nexport function isAccountHosting<V>(v: V) {\n return is$typed(v, id, hashAccountHosting)\n}\n\nexport function validateAccountHosting<V>(v: V) {\n return validate<AccountHosting & V>(v, id, hashAccountHosting)\n}\n\nexport interface RecordHosting {\n $type?: 'tools.ozone.moderation.defs#recordHosting'\n status: 'deleted' | 'unknown' | (string & {})\n updatedAt?: string\n createdAt?: string\n deletedAt?: string\n}\n\nconst hashRecordHosting = 'recordHosting'\n\nexport function isRecordHosting<V>(v: V) {\n return is$typed(v, id, hashRecordHosting)\n}\n\nexport function validateRecordHosting<V>(v: V) {\n return validate<RecordHosting & V>(v, id, hashRecordHosting)\n}\n\nexport interface ReporterStats {\n $type?: 'tools.ozone.moderation.defs#reporterStats'\n did: string\n /** The total number of reports made by the user on accounts. */\n accountReportCount: number\n /** The total number of reports made by the user on records. */\n recordReportCount: number\n /** The total number of accounts reported by the user. */\n reportedAccountCount: number\n /** The total number of records reported by the user. */\n reportedRecordCount: number\n /** The total number of accounts taken down as a result of the user's reports. */\n takendownAccountCount: number\n /** The total number of records taken down as a result of the user's reports. */\n takendownRecordCount: number\n /** The total number of accounts labeled as a result of the user's reports. */\n labeledAccountCount: number\n /** The total number of records labeled as a result of the user's reports. */\n labeledRecordCount: number\n}\n\nconst hashReporterStats = 'reporterStats'\n\nexport function isReporterStats<V>(v: V) {\n return is$typed(v, id, hashReporterStats)\n}\n\nexport function validateReporterStats<V>(v: V) {\n return validate<ReporterStats & V>(v, id, hashReporterStats)\n}\n\n/** Moderation tool information for tracing the source of the action */\nexport interface ModTool {\n $type?: 'tools.ozone.moderation.defs#modTool'\n /** Name/identifier of the source (e.g., 'automod', 'ozone/workspace') */\n name: string\n /** Additional arbitrary metadata about the source */\n meta?: { [_ in string]: unknown }\n}\n\nconst hashModTool = 'modTool'\n\nexport function isModTool<V>(v: V) {\n return is$typed(v, id, hashModTool)\n}\n\nexport function validateModTool<V>(v: V) {\n return validate<ModTool & V>(v, id, hashModTool)\n}\n\n/** Moderation event timeline event for a PLC create operation */\nexport const TIMELINEEVENTPLCCREATE = `${id}#timelineEventPlcCreate`\n/** Moderation event timeline event for generic PLC operation */\nexport const TIMELINEEVENTPLCOPERATION = `${id}#timelineEventPlcOperation`\n/** Moderation event timeline event for a PLC tombstone operation */\nexport const TIMELINEEVENTPLCTOMBSTONE = `${id}#timelineEventPlcTombstone`\n\n/** View of a scheduled moderation action */\nexport interface ScheduledActionView {\n $type?: 'tools.ozone.moderation.defs#scheduledActionView'\n /** Auto-incrementing row ID */\n id: number\n /** Type of action to be executed */\n action: 'takedown' | (string & {})\n /** Serialized event object that will be propagated to the event when performed */\n eventData?: { [_ in string]: unknown }\n /** Subject DID for the action */\n did: string\n /** Exact time to execute the action */\n executeAt?: string\n /** Earliest time to execute the action (for randomized scheduling) */\n executeAfter?: string\n /** Latest time to execute the action (for randomized scheduling) */\n executeUntil?: string\n /** Whether execution time should be randomized within the specified range */\n randomizeExecution?: boolean\n /** DID of the user who created this scheduled action */\n createdBy: string\n /** When the scheduled action was created */\n createdAt: string\n /** When the scheduled action was last updated */\n updatedAt?: string\n /** Current status of the scheduled action */\n status: 'pending' | 'executed' | 'cancelled' | 'failed' | (string & {})\n /** When the action was last attempted to be executed */\n lastExecutedAt?: string\n /** Reason for the last execution failure */\n lastFailureReason?: string\n /** ID of the moderation event created when action was successfully executed */\n executionEventId?: number\n}\n\nconst hashScheduledActionView = 'scheduledActionView'\n\nexport function isScheduledActionView<V>(v: V) {\n return is$typed(v, id, hashScheduledActionView)\n}\n\nexport function validateScheduledActionView<V>(v: V) {\n return validate<ScheduledActionView & V>(v, id, hashScheduledActionView)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../../../../../src/client/types/tools/ozone/moderation/defs.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * GENERATED CODE - DO NOT MODIFY\n */\nimport { type ValidationResult, BlobRef } from '@atproto/lexicon'\nimport { CID } from 'multiformats/cid'\nimport { validate as _validate } from '../../../../lexicons'\nimport {\n type $Typed,\n is$typed as _is$typed,\n type OmitKey,\n} from '../../../../util'\nimport type * as ComAtprotoAdminDefs from '../../../com/atproto/admin/defs.js'\nimport type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js'\nimport type * as ChatBskyConvoDefs from '../../../chat/bsky/convo/defs.js'\nimport type * as ComAtprotoModerationDefs from '../../../com/atproto/moderation/defs.js'\nimport type * as AppBskyAgeassuranceDefs from '../../../app/bsky/ageassurance/defs.js'\nimport type * as ComAtprotoServerDefs from '../../../com/atproto/server/defs.js'\nimport type * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs.js'\n\nconst is$typed = _is$typed,\n validate = _validate\nconst id = 'tools.ozone.moderation.defs'\n\nexport interface ModEventView {\n $type?: 'tools.ozone.moderation.defs#modEventView'\n id: number\n event:\n | $Typed<ModEventTakedown>\n | $Typed<ModEventReverseTakedown>\n | $Typed<ModEventComment>\n | $Typed<ModEventReport>\n | $Typed<ModEventLabel>\n | $Typed<ModEventAcknowledge>\n | $Typed<ModEventEscalate>\n | $Typed<ModEventMute>\n | $Typed<ModEventUnmute>\n | $Typed<ModEventMuteReporter>\n | $Typed<ModEventUnmuteReporter>\n | $Typed<ModEventEmail>\n | $Typed<ModEventResolveAppeal>\n | $Typed<ModEventDivert>\n | $Typed<ModEventTag>\n | $Typed<AccountEvent>\n | $Typed<IdentityEvent>\n | $Typed<RecordEvent>\n | $Typed<ModEventPriorityScore>\n | $Typed<AgeAssuranceEvent>\n | $Typed<AgeAssuranceOverrideEvent>\n | $Typed<AgeAssurancePurgeEvent>\n | $Typed<RevokeAccountCredentialsEvent>\n | $Typed<ScheduleTakedownEvent>\n | $Typed<CancelScheduledTakedownEvent>\n | { $type: string }\n subject:\n | $Typed<ComAtprotoAdminDefs.RepoRef>\n | $Typed<ComAtprotoRepoStrongRef.Main>\n | $Typed<ChatBskyConvoDefs.MessageRef>\n | { $type: string }\n subjectBlobCids: string[]\n createdBy: string\n createdAt: string\n creatorHandle?: string\n subjectHandle?: string\n modTool?: ModTool\n}\n\nconst hashModEventView = 'modEventView'\n\nexport function isModEventView<V>(v: V) {\n return is$typed(v, id, hashModEventView)\n}\n\nexport function validateModEventView<V>(v: V) {\n return validate<ModEventView & V>(v, id, hashModEventView)\n}\n\nexport interface ModEventViewDetail {\n $type?: 'tools.ozone.moderation.defs#modEventViewDetail'\n id: number\n event:\n | $Typed<ModEventTakedown>\n | $Typed<ModEventReverseTakedown>\n | $Typed<ModEventComment>\n | $Typed<ModEventReport>\n | $Typed<ModEventLabel>\n | $Typed<ModEventAcknowledge>\n | $Typed<ModEventEscalate>\n | $Typed<ModEventMute>\n | $Typed<ModEventUnmute>\n | $Typed<ModEventMuteReporter>\n | $Typed<ModEventUnmuteReporter>\n | $Typed<ModEventEmail>\n | $Typed<ModEventResolveAppeal>\n | $Typed<ModEventDivert>\n | $Typed<ModEventTag>\n | $Typed<AccountEvent>\n | $Typed<IdentityEvent>\n | $Typed<RecordEvent>\n | $Typed<ModEventPriorityScore>\n | $Typed<AgeAssuranceEvent>\n | $Typed<AgeAssuranceOverrideEvent>\n | $Typed<AgeAssurancePurgeEvent>\n | $Typed<RevokeAccountCredentialsEvent>\n | $Typed<ScheduleTakedownEvent>\n | $Typed<CancelScheduledTakedownEvent>\n | { $type: string }\n subject:\n | $Typed<RepoView>\n | $Typed<RepoViewNotFound>\n | $Typed<RecordView>\n | $Typed<RecordViewNotFound>\n | { $type: string }\n subjectBlobs: BlobView[]\n createdBy: string\n createdAt: string\n modTool?: ModTool\n}\n\nconst hashModEventViewDetail = 'modEventViewDetail'\n\nexport function isModEventViewDetail<V>(v: V) {\n return is$typed(v, id, hashModEventViewDetail)\n}\n\nexport function validateModEventViewDetail<V>(v: V) {\n return validate<ModEventViewDetail & V>(v, id, hashModEventViewDetail)\n}\n\nexport interface SubjectStatusView {\n $type?: 'tools.ozone.moderation.defs#subjectStatusView'\n id: number\n subject:\n | $Typed<ComAtprotoAdminDefs.RepoRef>\n | $Typed<ComAtprotoRepoStrongRef.Main>\n | $Typed<ChatBskyConvoDefs.MessageRef>\n | { $type: string }\n hosting?: $Typed<AccountHosting> | $Typed<RecordHosting> | { $type: string }\n subjectBlobCids?: string[]\n subjectRepoHandle?: string\n /** Timestamp referencing when the last update was made to the moderation status of the subject */\n updatedAt: string\n /** Timestamp referencing the first moderation status impacting event was emitted on the subject */\n createdAt: string\n reviewState: SubjectReviewState\n /** Sticky comment on the subject. */\n comment?: string\n /** Numeric value representing the level of priority. Higher score means higher priority. */\n priorityScore?: number\n muteUntil?: string\n muteReportingUntil?: string\n lastReviewedBy?: string\n lastReviewedAt?: string\n lastReportedAt?: string\n /** Timestamp referencing when the author of the subject appealed a moderation action */\n lastAppealedAt?: string\n takendown?: boolean\n /** True indicates that the a previously taken moderator action was appealed against, by the author of the content. False indicates last appeal was resolved by moderators. */\n appealed?: boolean\n suspendUntil?: string\n tags?: string[]\n accountStats?: AccountStats\n recordsStats?: RecordsStats\n accountStrike?: AccountStrike\n /** Current age assurance state of the subject. */\n ageAssuranceState?:\n | 'pending'\n | 'assured'\n | 'unknown'\n | 'reset'\n | 'blocked'\n | (string & {})\n /** Whether or not the last successful update to age assurance was made by the user or admin. */\n ageAssuranceUpdatedBy?: 'admin' | 'user' | (string & {})\n}\n\nconst hashSubjectStatusView = 'subjectStatusView'\n\nexport function isSubjectStatusView<V>(v: V) {\n return is$typed(v, id, hashSubjectStatusView)\n}\n\nexport function validateSubjectStatusView<V>(v: V) {\n return validate<SubjectStatusView & V>(v, id, hashSubjectStatusView)\n}\n\n/** Detailed view of a subject. For record subjects, the author's repo and profile will be returned. */\nexport interface SubjectView {\n $type?: 'tools.ozone.moderation.defs#subjectView'\n type: ComAtprotoModerationDefs.SubjectType\n subject: string\n status?: SubjectStatusView\n repo?: RepoViewDetail\n profile?: { $type: string }\n record?: RecordViewDetail\n}\n\nconst hashSubjectView = 'subjectView'\n\nexport function isSubjectView<V>(v: V) {\n return is$typed(v, id, hashSubjectView)\n}\n\nexport function validateSubjectView<V>(v: V) {\n return validate<SubjectView & V>(v, id, hashSubjectView)\n}\n\n/** Statistics about a particular account subject */\nexport interface AccountStats {\n $type?: 'tools.ozone.moderation.defs#accountStats'\n /** Total number of reports on the account */\n reportCount?: number\n /** Total number of appeals against a moderation action on the account */\n appealCount?: number\n /** Number of times the account was suspended */\n suspendCount?: number\n /** Number of times the account was escalated */\n escalateCount?: number\n /** Number of times the account was taken down */\n takedownCount?: number\n}\n\nconst hashAccountStats = 'accountStats'\n\nexport function isAccountStats<V>(v: V) {\n return is$typed(v, id, hashAccountStats)\n}\n\nexport function validateAccountStats<V>(v: V) {\n return validate<AccountStats & V>(v, id, hashAccountStats)\n}\n\n/** Statistics about a set of record subject items */\nexport interface RecordsStats {\n $type?: 'tools.ozone.moderation.defs#recordsStats'\n /** Cumulative sum of the number of reports on the items in the set */\n totalReports?: number\n /** Number of items that were reported at least once */\n reportedCount?: number\n /** Number of items that were escalated at least once */\n escalatedCount?: number\n /** Number of items that were appealed at least once */\n appealedCount?: number\n /** Total number of item in the set */\n subjectCount?: number\n /** Number of item currently in \"reviewOpen\" or \"reviewEscalated\" state */\n pendingCount?: number\n /** Number of item currently in \"reviewNone\" or \"reviewClosed\" state */\n processedCount?: number\n /** Number of item currently taken down */\n takendownCount?: number\n}\n\nconst hashRecordsStats = 'recordsStats'\n\nexport function isRecordsStats<V>(v: V) {\n return is$typed(v, id, hashRecordsStats)\n}\n\nexport function validateRecordsStats<V>(v: V) {\n return validate<RecordsStats & V>(v, id, hashRecordsStats)\n}\n\n/** Strike information for an account */\nexport interface AccountStrike {\n $type?: 'tools.ozone.moderation.defs#accountStrike'\n /** Current number of active strikes (excluding expired strikes) */\n activeStrikeCount?: number\n /** Total number of strikes ever received (including expired strikes) */\n totalStrikeCount?: number\n /** Timestamp of the first strike received */\n firstStrikeAt?: string\n /** Timestamp of the most recent strike received */\n lastStrikeAt?: string\n}\n\nconst hashAccountStrike = 'accountStrike'\n\nexport function isAccountStrike<V>(v: V) {\n return is$typed(v, id, hashAccountStrike)\n}\n\nexport function validateAccountStrike<V>(v: V) {\n return validate<AccountStrike & V>(v, id, hashAccountStrike)\n}\n\nexport type SubjectReviewState =\n | 'tools.ozone.moderation.defs#reviewOpen'\n | 'tools.ozone.moderation.defs#reviewEscalated'\n | 'tools.ozone.moderation.defs#reviewClosed'\n | 'tools.ozone.moderation.defs#reviewNone'\n | (string & {})\n\n/** Moderator review status of a subject: Open. Indicates that the subject needs to be reviewed by a moderator */\nexport const REVIEWOPEN = `${id}#reviewOpen`\n/** Moderator review status of a subject: Escalated. Indicates that the subject was escalated for review by a moderator */\nexport const REVIEWESCALATED = `${id}#reviewEscalated`\n/** Moderator review status of a subject: Closed. Indicates that the subject was already reviewed and resolved by a moderator */\nexport const REVIEWCLOSED = `${id}#reviewClosed`\n/** Moderator review status of a subject: Unnecessary. Indicates that the subject does not need a review at the moment but there is probably some moderation related metadata available for it */\nexport const REVIEWNONE = `${id}#reviewNone`\n\n/** Take down a subject permanently or temporarily */\nexport interface ModEventTakedown {\n $type?: 'tools.ozone.moderation.defs#modEventTakedown'\n comment?: string\n /** Indicates how long the takedown should be in effect before automatically expiring. */\n durationInHours?: number\n /** If true, all other reports on content authored by this account will be resolved (acknowledged). */\n acknowledgeAccountSubjects?: boolean\n /** Names/Keywords of the policies that drove the decision. */\n policies?: string[]\n /** Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.). */\n severityLevel?: string\n /** List of services where the takedown should be applied. If empty or not provided, takedown is applied on all configured services. */\n targetServices?: ('appview' | 'pds' | (string & {}))[]\n /** Number of strikes to assign to the user for this violation. */\n strikeCount?: number\n /** When the strike should expire. If not provided, the strike never expires. */\n strikeExpiresAt?: string\n}\n\nconst hashModEventTakedown = 'modEventTakedown'\n\nexport function isModEventTakedown<V>(v: V) {\n return is$typed(v, id, hashModEventTakedown)\n}\n\nexport function validateModEventTakedown<V>(v: V) {\n return validate<ModEventTakedown & V>(v, id, hashModEventTakedown)\n}\n\n/** Revert take down action on a subject */\nexport interface ModEventReverseTakedown {\n $type?: 'tools.ozone.moderation.defs#modEventReverseTakedown'\n /** Describe reasoning behind the reversal. */\n comment?: string\n /** Names/Keywords of the policy infraction for which takedown is being reversed. */\n policies?: string[]\n /** Severity level of the violation. Usually set from the last policy infraction's severity. */\n severityLevel?: string\n /** Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity. */\n strikeCount?: number\n}\n\nconst hashModEventReverseTakedown = 'modEventReverseTakedown'\n\nexport function isModEventReverseTakedown<V>(v: V) {\n return is$typed(v, id, hashModEventReverseTakedown)\n}\n\nexport function validateModEventReverseTakedown<V>(v: V) {\n return validate<ModEventReverseTakedown & V>(\n v,\n id,\n hashModEventReverseTakedown,\n )\n}\n\n/** Resolve appeal on a subject */\nexport interface ModEventResolveAppeal {\n $type?: 'tools.ozone.moderation.defs#modEventResolveAppeal'\n /** Describe resolution. */\n comment?: string\n}\n\nconst hashModEventResolveAppeal = 'modEventResolveAppeal'\n\nexport function isModEventResolveAppeal<V>(v: V) {\n return is$typed(v, id, hashModEventResolveAppeal)\n}\n\nexport function validateModEventResolveAppeal<V>(v: V) {\n return validate<ModEventResolveAppeal & V>(v, id, hashModEventResolveAppeal)\n}\n\n/** Add a comment to a subject. An empty comment will clear any previously set sticky comment. */\nexport interface ModEventComment {\n $type?: 'tools.ozone.moderation.defs#modEventComment'\n comment?: string\n /** Make the comment persistent on the subject */\n sticky?: boolean\n}\n\nconst hashModEventComment = 'modEventComment'\n\nexport function isModEventComment<V>(v: V) {\n return is$typed(v, id, hashModEventComment)\n}\n\nexport function validateModEventComment<V>(v: V) {\n return validate<ModEventComment & V>(v, id, hashModEventComment)\n}\n\n/** Report a subject */\nexport interface ModEventReport {\n $type?: 'tools.ozone.moderation.defs#modEventReport'\n comment?: string\n /** Set to true if the reporter was muted from reporting at the time of the event. These reports won't impact the reviewState of the subject. */\n isReporterMuted?: boolean\n reportType: ComAtprotoModerationDefs.ReasonType\n}\n\nconst hashModEventReport = 'modEventReport'\n\nexport function isModEventReport<V>(v: V) {\n return is$typed(v, id, hashModEventReport)\n}\n\nexport function validateModEventReport<V>(v: V) {\n return validate<ModEventReport & V>(v, id, hashModEventReport)\n}\n\n/** Apply/Negate labels on a subject */\nexport interface ModEventLabel {\n $type?: 'tools.ozone.moderation.defs#modEventLabel'\n comment?: string\n createLabelVals: string[]\n negateLabelVals: string[]\n /** Indicates how long the label will remain on the subject. Only applies on labels that are being added. */\n durationInHours?: number\n}\n\nconst hashModEventLabel = 'modEventLabel'\n\nexport function isModEventLabel<V>(v: V) {\n return is$typed(v, id, hashModEventLabel)\n}\n\nexport function validateModEventLabel<V>(v: V) {\n return validate<ModEventLabel & V>(v, id, hashModEventLabel)\n}\n\n/** Set priority score of the subject. Higher score means higher priority. */\nexport interface ModEventPriorityScore {\n $type?: 'tools.ozone.moderation.defs#modEventPriorityScore'\n comment?: string\n score: number\n}\n\nconst hashModEventPriorityScore = 'modEventPriorityScore'\n\nexport function isModEventPriorityScore<V>(v: V) {\n return is$typed(v, id, hashModEventPriorityScore)\n}\n\nexport function validateModEventPriorityScore<V>(v: V) {\n return validate<ModEventPriorityScore & V>(v, id, hashModEventPriorityScore)\n}\n\n/** Age assurance info coming directly from users. Only works on DID subjects. */\nexport interface AgeAssuranceEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssuranceEvent'\n /** The date and time of this write operation. */\n createdAt: string\n /** The unique identifier for this instance of the age assurance flow, in UUID format. */\n attemptId: string\n /** The status of the Age Assurance process. */\n status: 'unknown' | 'pending' | 'assured' | (string & {})\n access?: AppBskyAgeassuranceDefs.Access\n /** The ISO 3166-1 alpha-2 country code provided when beginning the Age Assurance flow. */\n countryCode?: string\n /** The ISO 3166-2 region code provided when beginning the Age Assurance flow. */\n regionCode?: string\n /** The IP address used when initiating the AA flow. */\n initIp?: string\n /** The user agent used when initiating the AA flow. */\n initUa?: string\n /** The IP address used when completing the AA flow. */\n completeIp?: string\n /** The user agent used when completing the AA flow. */\n completeUa?: string\n}\n\nconst hashAgeAssuranceEvent = 'ageAssuranceEvent'\n\nexport function isAgeAssuranceEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssuranceEvent)\n}\n\nexport function validateAgeAssuranceEvent<V>(v: V) {\n return validate<AgeAssuranceEvent & V>(v, id, hashAgeAssuranceEvent)\n}\n\n/** Age assurance status override by moderators. Only works on DID subjects. */\nexport interface AgeAssuranceOverrideEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent'\n /** The status to be set for the user decided by a moderator, overriding whatever value the user had previously. Use reset to default to original state. */\n status: 'assured' | 'reset' | 'blocked' | (string & {})\n access?: AppBskyAgeassuranceDefs.Access\n /** Comment describing the reason for the override. */\n comment: string\n}\n\nconst hashAgeAssuranceOverrideEvent = 'ageAssuranceOverrideEvent'\n\nexport function isAgeAssuranceOverrideEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssuranceOverrideEvent)\n}\n\nexport function validateAgeAssuranceOverrideEvent<V>(v: V) {\n return validate<AgeAssuranceOverrideEvent & V>(\n v,\n id,\n hashAgeAssuranceOverrideEvent,\n )\n}\n\n/** Purges all age assurance events for the subject. Only works on DID subjects. Moderator-only. */\nexport interface AgeAssurancePurgeEvent {\n $type?: 'tools.ozone.moderation.defs#ageAssurancePurgeEvent'\n /** Comment describing the reason for the purge. */\n comment: string\n}\n\nconst hashAgeAssurancePurgeEvent = 'ageAssurancePurgeEvent'\n\nexport function isAgeAssurancePurgeEvent<V>(v: V) {\n return is$typed(v, id, hashAgeAssurancePurgeEvent)\n}\n\nexport function validateAgeAssurancePurgeEvent<V>(v: V) {\n return validate<AgeAssurancePurgeEvent & V>(v, id, hashAgeAssurancePurgeEvent)\n}\n\n/** Account credentials revocation by moderators. Only works on DID subjects. */\nexport interface RevokeAccountCredentialsEvent {\n $type?: 'tools.ozone.moderation.defs#revokeAccountCredentialsEvent'\n /** Comment describing the reason for the revocation. */\n comment: string\n}\n\nconst hashRevokeAccountCredentialsEvent = 'revokeAccountCredentialsEvent'\n\nexport function isRevokeAccountCredentialsEvent<V>(v: V) {\n return is$typed(v, id, hashRevokeAccountCredentialsEvent)\n}\n\nexport function validateRevokeAccountCredentialsEvent<V>(v: V) {\n return validate<RevokeAccountCredentialsEvent & V>(\n v,\n id,\n hashRevokeAccountCredentialsEvent,\n )\n}\n\nexport interface ModEventAcknowledge {\n $type?: 'tools.ozone.moderation.defs#modEventAcknowledge'\n comment?: string\n /** If true, all other reports on content authored by this account will be resolved (acknowledged). */\n acknowledgeAccountSubjects?: boolean\n}\n\nconst hashModEventAcknowledge = 'modEventAcknowledge'\n\nexport function isModEventAcknowledge<V>(v: V) {\n return is$typed(v, id, hashModEventAcknowledge)\n}\n\nexport function validateModEventAcknowledge<V>(v: V) {\n return validate<ModEventAcknowledge & V>(v, id, hashModEventAcknowledge)\n}\n\nexport interface ModEventEscalate {\n $type?: 'tools.ozone.moderation.defs#modEventEscalate'\n comment?: string\n}\n\nconst hashModEventEscalate = 'modEventEscalate'\n\nexport function isModEventEscalate<V>(v: V) {\n return is$typed(v, id, hashModEventEscalate)\n}\n\nexport function validateModEventEscalate<V>(v: V) {\n return validate<ModEventEscalate & V>(v, id, hashModEventEscalate)\n}\n\n/** Mute incoming reports on a subject */\nexport interface ModEventMute {\n $type?: 'tools.ozone.moderation.defs#modEventMute'\n comment?: string\n /** Indicates how long the subject should remain muted. */\n durationInHours: number\n}\n\nconst hashModEventMute = 'modEventMute'\n\nexport function isModEventMute<V>(v: V) {\n return is$typed(v, id, hashModEventMute)\n}\n\nexport function validateModEventMute<V>(v: V) {\n return validate<ModEventMute & V>(v, id, hashModEventMute)\n}\n\n/** Unmute action on a subject */\nexport interface ModEventUnmute {\n $type?: 'tools.ozone.moderation.defs#modEventUnmute'\n /** Describe reasoning behind the reversal. */\n comment?: string\n}\n\nconst hashModEventUnmute = 'modEventUnmute'\n\nexport function isModEventUnmute<V>(v: V) {\n return is$typed(v, id, hashModEventUnmute)\n}\n\nexport function validateModEventUnmute<V>(v: V) {\n return validate<ModEventUnmute & V>(v, id, hashModEventUnmute)\n}\n\n/** Mute incoming reports from an account */\nexport interface ModEventMuteReporter {\n $type?: 'tools.ozone.moderation.defs#modEventMuteReporter'\n comment?: string\n /** Indicates how long the account should remain muted. Falsy value here means a permanent mute. */\n durationInHours?: number\n}\n\nconst hashModEventMuteReporter = 'modEventMuteReporter'\n\nexport function isModEventMuteReporter<V>(v: V) {\n return is$typed(v, id, hashModEventMuteReporter)\n}\n\nexport function validateModEventMuteReporter<V>(v: V) {\n return validate<ModEventMuteReporter & V>(v, id, hashModEventMuteReporter)\n}\n\n/** Unmute incoming reports from an account */\nexport interface ModEventUnmuteReporter {\n $type?: 'tools.ozone.moderation.defs#modEventUnmuteReporter'\n /** Describe reasoning behind the reversal. */\n comment?: string\n}\n\nconst hashModEventUnmuteReporter = 'modEventUnmuteReporter'\n\nexport function isModEventUnmuteReporter<V>(v: V) {\n return is$typed(v, id, hashModEventUnmuteReporter)\n}\n\nexport function validateModEventUnmuteReporter<V>(v: V) {\n return validate<ModEventUnmuteReporter & V>(v, id, hashModEventUnmuteReporter)\n}\n\n/** Keep a log of outgoing email to a user */\nexport interface ModEventEmail {\n $type?: 'tools.ozone.moderation.defs#modEventEmail'\n /** The subject line of the email sent to the user. */\n subjectLine: string\n /** The content of the email sent to the user. */\n content?: string\n /** Additional comment about the outgoing comm. */\n comment?: string\n /** Names/Keywords of the policies that necessitated the email. */\n policies?: string[]\n /** Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense */\n severityLevel?: string\n /** Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense. */\n strikeCount?: number\n /** When the strike should expire. If not provided, the strike never expires. */\n strikeExpiresAt?: string\n /** Indicates whether the email was successfully delivered to the user's inbox. */\n isDelivered?: boolean\n}\n\nconst hashModEventEmail = 'modEventEmail'\n\nexport function isModEventEmail<V>(v: V) {\n return is$typed(v, id, hashModEventEmail)\n}\n\nexport function validateModEventEmail<V>(v: V) {\n return validate<ModEventEmail & V>(v, id, hashModEventEmail)\n}\n\n/** Divert a record's blobs to a 3rd party service for further scanning/tagging */\nexport interface ModEventDivert {\n $type?: 'tools.ozone.moderation.defs#modEventDivert'\n comment?: string\n}\n\nconst hashModEventDivert = 'modEventDivert'\n\nexport function isModEventDivert<V>(v: V) {\n return is$typed(v, id, hashModEventDivert)\n}\n\nexport function validateModEventDivert<V>(v: V) {\n return validate<ModEventDivert & V>(v, id, hashModEventDivert)\n}\n\n/** Add/Remove a tag on a subject */\nexport interface ModEventTag {\n $type?: 'tools.ozone.moderation.defs#modEventTag'\n /** Tags to be added to the subject. If already exists, won't be duplicated. */\n add: string[]\n /** Tags to be removed to the subject. Ignores a tag If it doesn't exist, won't be duplicated. */\n remove: string[]\n /** Additional comment about added/removed tags. */\n comment?: string\n /** Indicates how long the tags being added should remain before automatically being removed. Only applies to tags being added. */\n durationInHours?: number\n}\n\nconst hashModEventTag = 'modEventTag'\n\nexport function isModEventTag<V>(v: V) {\n return is$typed(v, id, hashModEventTag)\n}\n\nexport function validateModEventTag<V>(v: V) {\n return validate<ModEventTag & V>(v, id, hashModEventTag)\n}\n\n/** Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface AccountEvent {\n $type?: 'tools.ozone.moderation.defs#accountEvent'\n comment?: string\n /** Indicates that the account has a repository which can be fetched from the host that emitted this event. */\n active: boolean\n status?:\n | 'unknown'\n | 'deactivated'\n | 'deleted'\n | 'takendown'\n | 'suspended'\n | 'tombstoned'\n | (string & {})\n timestamp: string\n}\n\nconst hashAccountEvent = 'accountEvent'\n\nexport function isAccountEvent<V>(v: V) {\n return is$typed(v, id, hashAccountEvent)\n}\n\nexport function validateAccountEvent<V>(v: V) {\n return validate<AccountEvent & V>(v, id, hashAccountEvent)\n}\n\n/** Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface IdentityEvent {\n $type?: 'tools.ozone.moderation.defs#identityEvent'\n comment?: string\n handle?: string\n pdsHost?: string\n tombstone?: boolean\n timestamp: string\n}\n\nconst hashIdentityEvent = 'identityEvent'\n\nexport function isIdentityEvent<V>(v: V) {\n return is$typed(v, id, hashIdentityEvent)\n}\n\nexport function validateIdentityEvent<V>(v: V) {\n return validate<IdentityEvent & V>(v, id, hashIdentityEvent)\n}\n\n/** Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */\nexport interface RecordEvent {\n $type?: 'tools.ozone.moderation.defs#recordEvent'\n comment?: string\n op: 'create' | 'update' | 'delete' | (string & {})\n cid?: string\n timestamp: string\n}\n\nconst hashRecordEvent = 'recordEvent'\n\nexport function isRecordEvent<V>(v: V) {\n return is$typed(v, id, hashRecordEvent)\n}\n\nexport function validateRecordEvent<V>(v: V) {\n return validate<RecordEvent & V>(v, id, hashRecordEvent)\n}\n\n/** Logs a scheduled takedown action for an account. */\nexport interface ScheduleTakedownEvent {\n $type?: 'tools.ozone.moderation.defs#scheduleTakedownEvent'\n comment?: string\n executeAt?: string\n executeAfter?: string\n executeUntil?: string\n}\n\nconst hashScheduleTakedownEvent = 'scheduleTakedownEvent'\n\nexport function isScheduleTakedownEvent<V>(v: V) {\n return is$typed(v, id, hashScheduleTakedownEvent)\n}\n\nexport function validateScheduleTakedownEvent<V>(v: V) {\n return validate<ScheduleTakedownEvent & V>(v, id, hashScheduleTakedownEvent)\n}\n\n/** Logs cancellation of a scheduled takedown action for an account. */\nexport interface CancelScheduledTakedownEvent {\n $type?: 'tools.ozone.moderation.defs#cancelScheduledTakedownEvent'\n comment?: string\n}\n\nconst hashCancelScheduledTakedownEvent = 'cancelScheduledTakedownEvent'\n\nexport function isCancelScheduledTakedownEvent<V>(v: V) {\n return is$typed(v, id, hashCancelScheduledTakedownEvent)\n}\n\nexport function validateCancelScheduledTakedownEvent<V>(v: V) {\n return validate<CancelScheduledTakedownEvent & V>(\n v,\n id,\n hashCancelScheduledTakedownEvent,\n )\n}\n\nexport interface RepoView {\n $type?: 'tools.ozone.moderation.defs#repoView'\n did: string\n handle: string\n email?: string\n relatedRecords: { [_ in string]: unknown }[]\n indexedAt: string\n moderation: Moderation\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invitesDisabled?: boolean\n inviteNote?: string\n deactivatedAt?: string\n threatSignatures?: ComAtprotoAdminDefs.ThreatSignature[]\n}\n\nconst hashRepoView = 'repoView'\n\nexport function isRepoView<V>(v: V) {\n return is$typed(v, id, hashRepoView)\n}\n\nexport function validateRepoView<V>(v: V) {\n return validate<RepoView & V>(v, id, hashRepoView)\n}\n\nexport interface RepoViewDetail {\n $type?: 'tools.ozone.moderation.defs#repoViewDetail'\n did: string\n handle: string\n email?: string\n relatedRecords: { [_ in string]: unknown }[]\n indexedAt: string\n moderation: ModerationDetail\n labels?: ComAtprotoLabelDefs.Label[]\n invitedBy?: ComAtprotoServerDefs.InviteCode\n invites?: ComAtprotoServerDefs.InviteCode[]\n invitesDisabled?: boolean\n inviteNote?: string\n emailConfirmedAt?: string\n deactivatedAt?: string\n threatSignatures?: ComAtprotoAdminDefs.ThreatSignature[]\n}\n\nconst hashRepoViewDetail = 'repoViewDetail'\n\nexport function isRepoViewDetail<V>(v: V) {\n return is$typed(v, id, hashRepoViewDetail)\n}\n\nexport function validateRepoViewDetail<V>(v: V) {\n return validate<RepoViewDetail & V>(v, id, hashRepoViewDetail)\n}\n\nexport interface RepoViewNotFound {\n $type?: 'tools.ozone.moderation.defs#repoViewNotFound'\n did: string\n}\n\nconst hashRepoViewNotFound = 'repoViewNotFound'\n\nexport function isRepoViewNotFound<V>(v: V) {\n return is$typed(v, id, hashRepoViewNotFound)\n}\n\nexport function validateRepoViewNotFound<V>(v: V) {\n return validate<RepoViewNotFound & V>(v, id, hashRepoViewNotFound)\n}\n\nexport interface RecordView {\n $type?: 'tools.ozone.moderation.defs#recordView'\n uri: string\n cid: string\n value: { [_ in string]: unknown }\n blobCids: string[]\n indexedAt: string\n moderation: Moderation\n repo: RepoView\n}\n\nconst hashRecordView = 'recordView'\n\nexport function isRecordView<V>(v: V) {\n return is$typed(v, id, hashRecordView)\n}\n\nexport function validateRecordView<V>(v: V) {\n return validate<RecordView & V>(v, id, hashRecordView)\n}\n\nexport interface RecordViewDetail {\n $type?: 'tools.ozone.moderation.defs#recordViewDetail'\n uri: string\n cid: string\n value: { [_ in string]: unknown }\n blobs: BlobView[]\n labels?: ComAtprotoLabelDefs.Label[]\n indexedAt: string\n moderation: ModerationDetail\n repo: RepoView\n}\n\nconst hashRecordViewDetail = 'recordViewDetail'\n\nexport function isRecordViewDetail<V>(v: V) {\n return is$typed(v, id, hashRecordViewDetail)\n}\n\nexport function validateRecordViewDetail<V>(v: V) {\n return validate<RecordViewDetail & V>(v, id, hashRecordViewDetail)\n}\n\nexport interface RecordViewNotFound {\n $type?: 'tools.ozone.moderation.defs#recordViewNotFound'\n uri: string\n}\n\nconst hashRecordViewNotFound = 'recordViewNotFound'\n\nexport function isRecordViewNotFound<V>(v: V) {\n return is$typed(v, id, hashRecordViewNotFound)\n}\n\nexport function validateRecordViewNotFound<V>(v: V) {\n return validate<RecordViewNotFound & V>(v, id, hashRecordViewNotFound)\n}\n\nexport interface Moderation {\n $type?: 'tools.ozone.moderation.defs#moderation'\n subjectStatus?: SubjectStatusView\n}\n\nconst hashModeration = 'moderation'\n\nexport function isModeration<V>(v: V) {\n return is$typed(v, id, hashModeration)\n}\n\nexport function validateModeration<V>(v: V) {\n return validate<Moderation & V>(v, id, hashModeration)\n}\n\nexport interface ModerationDetail {\n $type?: 'tools.ozone.moderation.defs#moderationDetail'\n subjectStatus?: SubjectStatusView\n}\n\nconst hashModerationDetail = 'moderationDetail'\n\nexport function isModerationDetail<V>(v: V) {\n return is$typed(v, id, hashModerationDetail)\n}\n\nexport function validateModerationDetail<V>(v: V) {\n return validate<ModerationDetail & V>(v, id, hashModerationDetail)\n}\n\nexport interface BlobView {\n $type?: 'tools.ozone.moderation.defs#blobView'\n cid: string\n mimeType: string\n size: number\n createdAt: string\n details?: $Typed<ImageDetails> | $Typed<VideoDetails> | { $type: string }\n moderation?: Moderation\n}\n\nconst hashBlobView = 'blobView'\n\nexport function isBlobView<V>(v: V) {\n return is$typed(v, id, hashBlobView)\n}\n\nexport function validateBlobView<V>(v: V) {\n return validate<BlobView & V>(v, id, hashBlobView)\n}\n\nexport interface ImageDetails {\n $type?: 'tools.ozone.moderation.defs#imageDetails'\n width: number\n height: number\n}\n\nconst hashImageDetails = 'imageDetails'\n\nexport function isImageDetails<V>(v: V) {\n return is$typed(v, id, hashImageDetails)\n}\n\nexport function validateImageDetails<V>(v: V) {\n return validate<ImageDetails & V>(v, id, hashImageDetails)\n}\n\nexport interface VideoDetails {\n $type?: 'tools.ozone.moderation.defs#videoDetails'\n width: number\n height: number\n length: number\n}\n\nconst hashVideoDetails = 'videoDetails'\n\nexport function isVideoDetails<V>(v: V) {\n return is$typed(v, id, hashVideoDetails)\n}\n\nexport function validateVideoDetails<V>(v: V) {\n return validate<VideoDetails & V>(v, id, hashVideoDetails)\n}\n\nexport interface AccountHosting {\n $type?: 'tools.ozone.moderation.defs#accountHosting'\n status:\n | 'takendown'\n | 'suspended'\n | 'deleted'\n | 'deactivated'\n | 'unknown'\n | (string & {})\n updatedAt?: string\n createdAt?: string\n deletedAt?: string\n deactivatedAt?: string\n reactivatedAt?: string\n}\n\nconst hashAccountHosting = 'accountHosting'\n\nexport function isAccountHosting<V>(v: V) {\n return is$typed(v, id, hashAccountHosting)\n}\n\nexport function validateAccountHosting<V>(v: V) {\n return validate<AccountHosting & V>(v, id, hashAccountHosting)\n}\n\nexport interface RecordHosting {\n $type?: 'tools.ozone.moderation.defs#recordHosting'\n status: 'deleted' | 'unknown' | (string & {})\n updatedAt?: string\n createdAt?: string\n deletedAt?: string\n}\n\nconst hashRecordHosting = 'recordHosting'\n\nexport function isRecordHosting<V>(v: V) {\n return is$typed(v, id, hashRecordHosting)\n}\n\nexport function validateRecordHosting<V>(v: V) {\n return validate<RecordHosting & V>(v, id, hashRecordHosting)\n}\n\nexport interface ReporterStats {\n $type?: 'tools.ozone.moderation.defs#reporterStats'\n did: string\n /** The total number of reports made by the user on accounts. */\n accountReportCount: number\n /** The total number of reports made by the user on records. */\n recordReportCount: number\n /** The total number of accounts reported by the user. */\n reportedAccountCount: number\n /** The total number of records reported by the user. */\n reportedRecordCount: number\n /** The total number of accounts taken down as a result of the user's reports. */\n takendownAccountCount: number\n /** The total number of records taken down as a result of the user's reports. */\n takendownRecordCount: number\n /** The total number of accounts labeled as a result of the user's reports. */\n labeledAccountCount: number\n /** The total number of records labeled as a result of the user's reports. */\n labeledRecordCount: number\n}\n\nconst hashReporterStats = 'reporterStats'\n\nexport function isReporterStats<V>(v: V) {\n return is$typed(v, id, hashReporterStats)\n}\n\nexport function validateReporterStats<V>(v: V) {\n return validate<ReporterStats & V>(v, id, hashReporterStats)\n}\n\n/** Moderation tool information for tracing the source of the action */\nexport interface ModTool {\n $type?: 'tools.ozone.moderation.defs#modTool'\n /** Name/identifier of the source (e.g., 'automod', 'ozone/workspace') */\n name: string\n /** Additional arbitrary metadata about the source */\n meta?: { [_ in string]: unknown }\n}\n\nconst hashModTool = 'modTool'\n\nexport function isModTool<V>(v: V) {\n return is$typed(v, id, hashModTool)\n}\n\nexport function validateModTool<V>(v: V) {\n return validate<ModTool & V>(v, id, hashModTool)\n}\n\n/** Moderation event timeline event for a PLC create operation */\nexport const TIMELINEEVENTPLCCREATE = `${id}#timelineEventPlcCreate`\n/** Moderation event timeline event for generic PLC operation */\nexport const TIMELINEEVENTPLCOPERATION = `${id}#timelineEventPlcOperation`\n/** Moderation event timeline event for a PLC tombstone operation */\nexport const TIMELINEEVENTPLCTOMBSTONE = `${id}#timelineEventPlcTombstone`\n\n/** View of a scheduled moderation action */\nexport interface ScheduledActionView {\n $type?: 'tools.ozone.moderation.defs#scheduledActionView'\n /** Auto-incrementing row ID */\n id: number\n /** Type of action to be executed */\n action: 'takedown' | (string & {})\n /** Serialized event object that will be propagated to the event when performed */\n eventData?: { [_ in string]: unknown }\n /** Subject DID for the action */\n did: string\n /** Exact time to execute the action */\n executeAt?: string\n /** Earliest time to execute the action (for randomized scheduling) */\n executeAfter?: string\n /** Latest time to execute the action (for randomized scheduling) */\n executeUntil?: string\n /** Whether execution time should be randomized within the specified range */\n randomizeExecution?: boolean\n /** DID of the user who created this scheduled action */\n createdBy: string\n /** When the scheduled action was created */\n createdAt: string\n /** When the scheduled action was last updated */\n updatedAt?: string\n /** Current status of the scheduled action */\n status: 'pending' | 'executed' | 'cancelled' | 'failed' | (string & {})\n /** When the action was last attempted to be executed */\n lastExecutedAt?: string\n /** Reason for the last execution failure */\n lastFailureReason?: string\n /** ID of the moderation event created when action was successfully executed */\n executionEventId?: number\n}\n\nconst hashScheduledActionView = 'scheduledActionView'\n\nexport function isScheduledActionView<V>(v: V) {\n return is$typed(v, id, hashScheduledActionView)\n}\n\nexport function validateScheduledActionView<V>(v: V) {\n return validate<ScheduledActionView & V>(v, id, hashScheduledActionView)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/moderation/const/labels.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,+BAA+B,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE3E,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,qBAAqB,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,MAAM,CAAA;AAEV,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKlE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../../src/moderation/const/labels.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,+BAA+B,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE3E,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,OAAO,GACP,qBAAqB,GACrB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,MAAM,CAAA;AAEV,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKlE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,+BAA+B,CA4NzE,CAAA"}
|
|
@@ -105,6 +105,11 @@ exports.LABELS = {
|
|
|
105
105
|
account: {
|
|
106
106
|
avatar: 'blur',
|
|
107
107
|
banner: 'blur',
|
|
108
|
+
profileList: 'blur',
|
|
109
|
+
profileView: 'blur',
|
|
110
|
+
contentList: 'blur',
|
|
111
|
+
contentView: 'blur',
|
|
112
|
+
contentMedia: 'blur',
|
|
108
113
|
},
|
|
109
114
|
profile: {
|
|
110
115
|
avatar: 'blur',
|
|
@@ -127,6 +132,11 @@ exports.LABELS = {
|
|
|
127
132
|
account: {
|
|
128
133
|
avatar: 'blur',
|
|
129
134
|
banner: 'blur',
|
|
135
|
+
profileList: 'blur',
|
|
136
|
+
profileView: 'blur',
|
|
137
|
+
contentList: 'blur',
|
|
138
|
+
contentView: 'blur',
|
|
139
|
+
contentMedia: 'blur',
|
|
130
140
|
},
|
|
131
141
|
profile: {
|
|
132
142
|
avatar: 'blur',
|
|
@@ -149,6 +159,7 @@ exports.LABELS = {
|
|
|
149
159
|
account: {
|
|
150
160
|
avatar: 'blur',
|
|
151
161
|
banner: 'blur',
|
|
162
|
+
contentMedia: 'blur',
|
|
152
163
|
},
|
|
153
164
|
profile: {
|
|
154
165
|
avatar: 'blur',
|
|
@@ -171,6 +182,11 @@ exports.LABELS = {
|
|
|
171
182
|
account: {
|
|
172
183
|
avatar: 'blur',
|
|
173
184
|
banner: 'blur',
|
|
185
|
+
profileList: 'blur',
|
|
186
|
+
profileView: 'blur',
|
|
187
|
+
contentList: 'blur',
|
|
188
|
+
contentView: 'blur',
|
|
189
|
+
contentMedia: 'blur',
|
|
174
190
|
},
|
|
175
191
|
profile: {
|
|
176
192
|
avatar: 'blur',
|
|
@@ -194,6 +210,11 @@ exports.LABELS = {
|
|
|
194
210
|
account: {
|
|
195
211
|
avatar: 'blur',
|
|
196
212
|
banner: 'blur',
|
|
213
|
+
profileList: 'blur',
|
|
214
|
+
profileView: 'blur',
|
|
215
|
+
contentList: 'blur',
|
|
216
|
+
contentView: 'blur',
|
|
217
|
+
contentMedia: 'blur',
|
|
197
218
|
},
|
|
198
219
|
profile: {
|
|
199
220
|
avatar: 'blur',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/moderation/const/labels.ts"],"names":[],"mappings":";;;AAaa,QAAA,sBAAsB,GAAoC;IACrE,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,QAAQ;IAChB,eAAe,EAAE,MAAM;CACxB,CAAA;AAEY,QAAA,MAAM,GACjB;IACE,OAAO,EAAE;QACP,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC;QACjC,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;SACF;QACD,OAAO,EAAE,EAAE;KACZ;IACD,OAAO,EAAE;QACP,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,CAAC,SAAS,CAAC;QAClB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;SACF;QACD,OAAO,EAAE,EAAE;KACZ;IACD,qBAAqB,EAAE;QACrB,UAAU,EAAE,qBAAqB;QACjC,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;QAClC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;gBACnB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM;aACpB;YACD,OAAO,EAAE;gBACP,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,MAAM;aACpB;SACF;QACD,OAAO,EAAE,EAAE;KACZ;IACD,IAAI,EAAE;QACJ,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,IAAI;QAClB,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,CAAC,OAAO,CAAC;QAChB,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,OAAO;QACd,SAAS,EAAE;YACT,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../src/moderation/const/labels.ts"],"names":[],"mappings":"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","sourcesContent":["/** this doc is generated by ./scripts/code/labels.mjs **/\nimport { InterpretedLabelValueDefinition, LabelPreference } from '../types'\n\nexport type KnownLabelValue =\n | '!hide'\n | '!warn'\n | '!no-unauthenticated'\n | 'porn'\n | 'sexual'\n | 'nudity'\n | 'graphic-media'\n | 'gore'\n\nexport const DEFAULT_LABEL_SETTINGS: Record<string, LabelPreference> = {\n porn: 'hide',\n sexual: 'warn',\n nudity: 'ignore',\n 'graphic-media': 'warn',\n}\n\nexport const LABELS: Record<KnownLabelValue, InterpretedLabelValueDefinition> =\n {\n '!hide': {\n identifier: '!hide',\n configurable: false,\n defaultSetting: 'hide',\n flags: ['no-override', 'no-self'],\n severity: 'alert',\n blurs: 'content',\n behaviors: {\n account: {\n profileList: 'blur',\n profileView: 'blur',\n avatar: 'blur',\n banner: 'blur',\n displayName: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n displayName: 'blur',\n },\n content: {\n contentList: 'blur',\n contentView: 'blur',\n },\n },\n locales: [],\n },\n '!warn': {\n identifier: '!warn',\n configurable: false,\n defaultSetting: 'warn',\n flags: ['no-self'],\n severity: 'none',\n blurs: 'content',\n behaviors: {\n account: {\n profileList: 'blur',\n profileView: 'blur',\n avatar: 'blur',\n banner: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n displayName: 'blur',\n },\n content: {\n contentList: 'blur',\n contentView: 'blur',\n },\n },\n locales: [],\n },\n '!no-unauthenticated': {\n identifier: '!no-unauthenticated',\n configurable: false,\n defaultSetting: 'hide',\n flags: ['no-override', 'unauthed'],\n severity: 'none',\n blurs: 'content',\n behaviors: {\n account: {\n profileList: 'blur',\n profileView: 'blur',\n avatar: 'blur',\n banner: 'blur',\n displayName: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n displayName: 'blur',\n },\n content: {\n contentList: 'blur',\n contentView: 'blur',\n },\n },\n locales: [],\n },\n porn: {\n identifier: 'porn',\n configurable: true,\n defaultSetting: 'hide',\n flags: ['adult'],\n severity: 'none',\n blurs: 'media',\n behaviors: {\n account: {\n avatar: 'blur',\n banner: 'blur',\n profileList: 'blur',\n profileView: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n contentMedia: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n },\n content: {\n contentMedia: 'blur',\n },\n },\n locales: [],\n },\n sexual: {\n identifier: 'sexual',\n configurable: true,\n defaultSetting: 'warn',\n flags: ['adult'],\n severity: 'none',\n blurs: 'media',\n behaviors: {\n account: {\n avatar: 'blur',\n banner: 'blur',\n profileList: 'blur',\n profileView: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n contentMedia: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n },\n content: {\n contentMedia: 'blur',\n },\n },\n locales: [],\n },\n nudity: {\n identifier: 'nudity',\n configurable: true,\n defaultSetting: 'ignore',\n flags: [],\n severity: 'none',\n blurs: 'media',\n behaviors: {\n account: {\n avatar: 'blur',\n banner: 'blur',\n contentMedia: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n },\n content: {\n contentMedia: 'blur',\n },\n },\n locales: [],\n },\n 'graphic-media': {\n identifier: 'graphic-media',\n flags: ['adult'],\n configurable: true,\n defaultSetting: 'warn',\n severity: 'none',\n blurs: 'media',\n behaviors: {\n account: {\n avatar: 'blur',\n banner: 'blur',\n profileList: 'blur',\n profileView: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n contentMedia: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n },\n content: {\n contentMedia: 'blur',\n },\n },\n locales: [],\n },\n /** @deprecated alias for `graphic-media` */\n gore: {\n identifier: 'gore',\n flags: ['adult'],\n configurable: true,\n defaultSetting: 'warn',\n severity: 'none',\n blurs: 'media',\n behaviors: {\n account: {\n avatar: 'blur',\n banner: 'blur',\n profileList: 'blur',\n profileView: 'blur',\n contentList: 'blur',\n contentView: 'blur',\n contentMedia: 'blur',\n },\n profile: {\n avatar: 'blur',\n banner: 'blur',\n },\n content: {\n contentMedia: 'blur',\n },\n },\n locales: [],\n },\n }\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/api",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.14",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Client library for atproto and Bluesky",
|
|
6
6
|
"keywords": [
|
|
@@ -21,9 +21,9 @@
|
|
|
21
21
|
"multiformats": "^9.9.0",
|
|
22
22
|
"tlds": "^1.234.0",
|
|
23
23
|
"zod": "^3.23.8",
|
|
24
|
-
"@atproto/common-web": "^0.4.21",
|
|
25
|
-
"@atproto/syntax": "^0.5.4",
|
|
26
24
|
"@atproto/lexicon": "^0.6.2",
|
|
25
|
+
"@atproto/syntax": "^0.5.4",
|
|
26
|
+
"@atproto/common-web": "^0.4.21",
|
|
27
27
|
"@atproto/xrpc": "^0.7.7"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
package/src/client/lexicons.ts
CHANGED
|
@@ -10473,6 +10473,15 @@ export const schemaDict = {
|
|
|
10473
10473
|
'lex:chat.bsky.convo.defs#deletedMessageView',
|
|
10474
10474
|
],
|
|
10475
10475
|
},
|
|
10476
|
+
relatedProfiles: {
|
|
10477
|
+
description:
|
|
10478
|
+
"Profiles referred to in the message view. This isn't required for compatibility, because it was added later, but should generally be present.",
|
|
10479
|
+
type: 'array',
|
|
10480
|
+
items: {
|
|
10481
|
+
type: 'ref',
|
|
10482
|
+
ref: 'lex:chat.bsky.actor.defs#profileViewBasic',
|
|
10483
|
+
},
|
|
10484
|
+
},
|
|
10476
10485
|
},
|
|
10477
10486
|
},
|
|
10478
10487
|
logDeleteMessage: {
|
|
@@ -10540,6 +10549,15 @@ export const schemaDict = {
|
|
|
10540
10549
|
type: 'ref',
|
|
10541
10550
|
ref: 'lex:chat.bsky.convo.defs#reactionView',
|
|
10542
10551
|
},
|
|
10552
|
+
relatedProfiles: {
|
|
10553
|
+
description:
|
|
10554
|
+
"Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present.",
|
|
10555
|
+
type: 'array',
|
|
10556
|
+
items: {
|
|
10557
|
+
type: 'ref',
|
|
10558
|
+
ref: 'lex:chat.bsky.actor.defs#profileViewBasic',
|
|
10559
|
+
},
|
|
10560
|
+
},
|
|
10543
10561
|
},
|
|
10544
10562
|
},
|
|
10545
10563
|
logRemoveReaction: {
|
|
@@ -10564,6 +10582,15 @@ export const schemaDict = {
|
|
|
10564
10582
|
type: 'ref',
|
|
10565
10583
|
ref: 'lex:chat.bsky.convo.defs#reactionView',
|
|
10566
10584
|
},
|
|
10585
|
+
relatedProfiles: {
|
|
10586
|
+
description:
|
|
10587
|
+
"Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present.",
|
|
10588
|
+
type: 'array',
|
|
10589
|
+
items: {
|
|
10590
|
+
type: 'ref',
|
|
10591
|
+
ref: 'lex:chat.bsky.actor.defs#profileViewBasic',
|
|
10592
|
+
},
|
|
10593
|
+
},
|
|
10567
10594
|
},
|
|
10568
10595
|
},
|
|
10569
10596
|
logReadConvo: {
|
|
@@ -19076,6 +19103,11 @@ export const schemaDict = {
|
|
|
19076
19103
|
type: 'string',
|
|
19077
19104
|
description: 'Additional comment about added/removed tags.',
|
|
19078
19105
|
},
|
|
19106
|
+
durationInHours: {
|
|
19107
|
+
type: 'integer',
|
|
19108
|
+
description:
|
|
19109
|
+
'Indicates how long the tags being added should remain before automatically being removed. Only applies to tags being added.',
|
|
19110
|
+
},
|
|
19079
19111
|
},
|
|
19080
19112
|
},
|
|
19081
19113
|
accountEvent: {
|
|
@@ -618,6 +618,8 @@ export interface LogCreateMessage {
|
|
|
618
618
|
rev: string
|
|
619
619
|
convoId: string
|
|
620
620
|
message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
|
|
621
|
+
/** Profiles referred to in the message view. This isn't required for compatibility, because it was added later, but should generally be present. */
|
|
622
|
+
relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
|
|
621
623
|
}
|
|
622
624
|
|
|
623
625
|
const hashLogCreateMessage = 'logCreateMessage'
|
|
@@ -677,6 +679,8 @@ export interface LogAddReaction {
|
|
|
677
679
|
convoId: string
|
|
678
680
|
message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
|
|
679
681
|
reaction: ReactionView
|
|
682
|
+
/** Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present. */
|
|
683
|
+
relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
|
|
680
684
|
}
|
|
681
685
|
|
|
682
686
|
const hashLogAddReaction = 'logAddReaction'
|
|
@@ -696,6 +700,8 @@ export interface LogRemoveReaction {
|
|
|
696
700
|
convoId: string
|
|
697
701
|
message: $Typed<MessageView> | $Typed<DeletedMessageView> | { $type: string }
|
|
698
702
|
reaction: ReactionView
|
|
703
|
+
/** Profiles referred in the message and reaction views. This isn't required for compatibility, because it was added later, but should generally be present. */
|
|
704
|
+
relatedProfiles?: ChatBskyActorDefs.ProfileViewBasic[]
|
|
699
705
|
}
|
|
700
706
|
|
|
701
707
|
const hashLogRemoveReaction = 'logRemoveReaction'
|
|
@@ -701,6 +701,8 @@ export interface ModEventTag {
|
|
|
701
701
|
remove: string[]
|
|
702
702
|
/** Additional comment about added/removed tags. */
|
|
703
703
|
comment?: string
|
|
704
|
+
/** Indicates how long the tags being added should remain before automatically being removed. Only applies to tags being added. */
|
|
705
|
+
durationInHours?: number
|
|
704
706
|
}
|
|
705
707
|
|
|
706
708
|
const hashModEventTag = 'modEventTag'
|
|
@@ -339,10 +339,13 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
339
339
|
author: 'alice',
|
|
340
340
|
labels: { account: ['porn'] },
|
|
341
341
|
behaviors: {
|
|
342
|
-
profileList: ['filter'],
|
|
342
|
+
profileList: ['filter', 'blur'],
|
|
343
|
+
profileView: ['blur'],
|
|
343
344
|
avatar: ['blur'],
|
|
344
345
|
banner: ['blur'],
|
|
345
|
-
contentList: ['filter'],
|
|
346
|
+
contentList: ['filter', 'blur'],
|
|
347
|
+
contentView: ['blur'],
|
|
348
|
+
contentMedia: ['blur'],
|
|
346
349
|
},
|
|
347
350
|
},
|
|
348
351
|
"Blur-media label ('porn') on profile (hide)": {
|
|
@@ -381,10 +384,11 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
381
384
|
author: 'alice',
|
|
382
385
|
labels: { account: ['porn'] },
|
|
383
386
|
behaviors: {
|
|
384
|
-
profileList: ['filter'],
|
|
385
387
|
avatar: ['blur'],
|
|
386
388
|
banner: ['blur'],
|
|
387
|
-
contentList: ['filter'],
|
|
389
|
+
contentList: ['filter', 'blur'],
|
|
390
|
+
contentView: ['blur'],
|
|
391
|
+
contentMedia: ['blur'],
|
|
388
392
|
},
|
|
389
393
|
},
|
|
390
394
|
|
|
@@ -394,8 +398,13 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
394
398
|
author: 'alice',
|
|
395
399
|
labels: { account: ['porn'] },
|
|
396
400
|
behaviors: {
|
|
401
|
+
profileList: ['blur'],
|
|
402
|
+
profileView: ['blur'],
|
|
397
403
|
avatar: ['blur'],
|
|
398
404
|
banner: ['blur'],
|
|
405
|
+
contentList: ['blur'],
|
|
406
|
+
contentView: ['blur'],
|
|
407
|
+
contentMedia: ['blur'],
|
|
399
408
|
},
|
|
400
409
|
},
|
|
401
410
|
"Blur-media label ('porn') on profile (warn)": {
|
|
@@ -435,6 +444,9 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
435
444
|
behaviors: {
|
|
436
445
|
avatar: ['blur'],
|
|
437
446
|
banner: ['blur'],
|
|
447
|
+
contentList: ['blur'],
|
|
448
|
+
contentView: ['blur'],
|
|
449
|
+
contentMedia: ['blur'],
|
|
438
450
|
},
|
|
439
451
|
},
|
|
440
452
|
|
|
@@ -480,10 +492,13 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
480
492
|
author: 'alice',
|
|
481
493
|
labels: { account: ['porn'] },
|
|
482
494
|
behaviors: {
|
|
483
|
-
profileList: ['filter'],
|
|
495
|
+
profileList: ['filter', 'blur', 'noOverride'],
|
|
496
|
+
profileView: ['blur', 'noOverride'],
|
|
484
497
|
avatar: ['blur', 'noOverride'],
|
|
485
498
|
banner: ['blur', 'noOverride'],
|
|
486
|
-
contentList: ['filter'],
|
|
499
|
+
contentList: ['filter', 'blur', 'noOverride'],
|
|
500
|
+
contentView: ['blur', 'noOverride'],
|
|
501
|
+
contentMedia: ['blur', 'noOverride'],
|
|
487
502
|
},
|
|
488
503
|
},
|
|
489
504
|
'Adult-only label on profile when adult content is disabled': {
|
|
@@ -527,7 +542,9 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
527
542
|
behaviors: {
|
|
528
543
|
avatar: ['blur', 'noOverride'],
|
|
529
544
|
banner: ['blur', 'noOverride'],
|
|
530
|
-
contentList: ['filter'],
|
|
545
|
+
contentList: ['filter', 'blur', 'noOverride'],
|
|
546
|
+
contentView: ['blur', 'noOverride'],
|
|
547
|
+
contentMedia: ['blur', 'noOverride'],
|
|
531
548
|
},
|
|
532
549
|
},
|
|
533
550
|
|
|
@@ -787,6 +804,7 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
787
804
|
displayName: ['blur', 'noOverride'],
|
|
788
805
|
contentList: ['filter', 'blur', 'noOverride'],
|
|
789
806
|
contentView: ['blur', 'noOverride'],
|
|
807
|
+
contentMedia: ['blur'],
|
|
790
808
|
},
|
|
791
809
|
},
|
|
792
810
|
"Merging: '!warn' and 'porn' labels on account (hide)": {
|
|
@@ -801,6 +819,7 @@ const SCENARIOS: SuiteScenarios = {
|
|
|
801
819
|
banner: ['blur'],
|
|
802
820
|
contentList: ['filter', 'blur'],
|
|
803
821
|
contentView: ['blur'],
|
|
822
|
+
contentMedia: ['blur'],
|
|
804
823
|
},
|
|
805
824
|
},
|
|
806
825
|
'Merging: !hide on account, !warn on profile': {
|