@atproto/ozone 0.1.174 → 0.1.175
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 +23 -0
- package/bin/migration-create.ts +1 -1
- package/dist/api/chat/getActorMetadata.d.ts +2 -2
- package/dist/api/chat/getActorMetadata.d.ts.map +1 -1
- package/dist/api/chat/getActorMetadata.js +5 -8
- package/dist/api/chat/getActorMetadata.js.map +1 -1
- package/dist/api/chat/getMessageContext.d.ts +2 -2
- package/dist/api/chat/getMessageContext.d.ts.map +1 -1
- package/dist/api/chat/getMessageContext.js +6 -9
- package/dist/api/chat/getMessageContext.js.map +1 -1
- package/dist/api/chat/index.d.ts +2 -2
- package/dist/api/chat/index.d.ts.map +1 -1
- package/dist/api/chat/index.js +5 -11
- package/dist/api/chat/index.js.map +1 -1
- package/dist/api/communication/createTemplate.d.ts +2 -2
- package/dist/api/communication/createTemplate.d.ts.map +1 -1
- package/dist/api/communication/createTemplate.js +7 -10
- package/dist/api/communication/createTemplate.js.map +1 -1
- package/dist/api/communication/deleteTemplate.d.ts +2 -2
- package/dist/api/communication/deleteTemplate.d.ts.map +1 -1
- package/dist/api/communication/deleteTemplate.js +3 -6
- package/dist/api/communication/deleteTemplate.js.map +1 -1
- package/dist/api/communication/listTemplates.d.ts +2 -2
- package/dist/api/communication/listTemplates.d.ts.map +1 -1
- package/dist/api/communication/listTemplates.js +3 -6
- package/dist/api/communication/listTemplates.js.map +1 -1
- package/dist/api/communication/updateTemplate.d.ts +2 -2
- package/dist/api/communication/updateTemplate.d.ts.map +1 -1
- package/dist/api/communication/updateTemplate.js +8 -11
- package/dist/api/communication/updateTemplate.js.map +1 -1
- package/dist/api/health.d.ts +1 -1
- package/dist/api/health.d.ts.map +1 -1
- package/dist/api/health.js +5 -9
- package/dist/api/health.js.map +1 -1
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +137 -177
- package/dist/api/index.js.map +1 -1
- package/dist/api/label/fetchLabels.d.ts +2 -2
- package/dist/api/label/fetchLabels.d.ts.map +1 -1
- package/dist/api/label/fetchLabels.js +1 -4
- package/dist/api/label/fetchLabels.js.map +1 -1
- package/dist/api/label/queryLabels.d.ts +2 -2
- package/dist/api/label/queryLabels.d.ts.map +1 -1
- package/dist/api/label/queryLabels.js +6 -9
- package/dist/api/label/queryLabels.js.map +1 -1
- package/dist/api/label/subscribeLabels.d.ts +2 -2
- package/dist/api/label/subscribeLabels.d.ts.map +1 -1
- package/dist/api/label/subscribeLabels.js +5 -8
- package/dist/api/label/subscribeLabels.js.map +1 -1
- package/dist/api/moderation/cancelScheduledActions.d.ts +2 -2
- package/dist/api/moderation/cancelScheduledActions.d.ts.map +1 -1
- package/dist/api/moderation/cancelScheduledActions.js +8 -11
- package/dist/api/moderation/cancelScheduledActions.js.map +1 -1
- package/dist/api/moderation/emitEvent.d.ts +2 -2
- package/dist/api/moderation/emitEvent.d.ts.map +1 -1
- package/dist/api/moderation/emitEvent.js +62 -66
- package/dist/api/moderation/emitEvent.js.map +1 -1
- package/dist/api/moderation/getAccountTimeline.d.ts +2 -2
- package/dist/api/moderation/getAccountTimeline.d.ts.map +1 -1
- package/dist/api/moderation/getAccountTimeline.js +10 -15
- package/dist/api/moderation/getAccountTimeline.js.map +1 -1
- package/dist/api/moderation/getEvent.d.ts +2 -2
- package/dist/api/moderation/getEvent.d.ts.map +1 -1
- package/dist/api/moderation/getEvent.js +1 -4
- package/dist/api/moderation/getEvent.js.map +1 -1
- package/dist/api/moderation/getRecord.d.ts +2 -2
- package/dist/api/moderation/getRecord.d.ts.map +1 -1
- package/dist/api/moderation/getRecord.js +7 -10
- package/dist/api/moderation/getRecord.js.map +1 -1
- package/dist/api/moderation/getRecords.d.ts +2 -2
- package/dist/api/moderation/getRecords.d.ts.map +1 -1
- package/dist/api/moderation/getRecords.js +5 -8
- package/dist/api/moderation/getRecords.js.map +1 -1
- package/dist/api/moderation/getRepo.d.ts +2 -2
- package/dist/api/moderation/getRepo.d.ts.map +1 -1
- package/dist/api/moderation/getRepo.js +6 -9
- package/dist/api/moderation/getRepo.js.map +1 -1
- package/dist/api/moderation/getReporterStats.d.ts +2 -2
- package/dist/api/moderation/getReporterStats.d.ts.map +1 -1
- package/dist/api/moderation/getReporterStats.js +1 -4
- package/dist/api/moderation/getReporterStats.js.map +1 -1
- package/dist/api/moderation/getRepos.d.ts +2 -2
- package/dist/api/moderation/getRepos.d.ts.map +1 -1
- package/dist/api/moderation/getRepos.js +4 -7
- package/dist/api/moderation/getRepos.js.map +1 -1
- package/dist/api/moderation/getSubjects.d.ts +2 -2
- package/dist/api/moderation/getSubjects.d.ts.map +1 -1
- package/dist/api/moderation/getSubjects.js +7 -10
- package/dist/api/moderation/getSubjects.js.map +1 -1
- package/dist/api/moderation/listScheduledActions.d.ts +2 -2
- package/dist/api/moderation/listScheduledActions.d.ts.map +1 -1
- package/dist/api/moderation/listScheduledActions.js +3 -6
- package/dist/api/moderation/listScheduledActions.js.map +1 -1
- package/dist/api/moderation/queryEvents.d.ts +2 -2
- package/dist/api/moderation/queryEvents.d.ts.map +1 -1
- package/dist/api/moderation/queryEvents.js +3 -6
- package/dist/api/moderation/queryEvents.js.map +1 -1
- package/dist/api/moderation/queryStatuses.d.ts +2 -2
- package/dist/api/moderation/queryStatuses.d.ts.map +1 -1
- package/dist/api/moderation/queryStatuses.js +1 -4
- package/dist/api/moderation/queryStatuses.js.map +1 -1
- package/dist/api/moderation/scheduleAction.d.ts +2 -2
- package/dist/api/moderation/scheduleAction.d.ts.map +1 -1
- package/dist/api/moderation/scheduleAction.js +15 -18
- package/dist/api/moderation/scheduleAction.js.map +1 -1
- package/dist/api/moderation/searchRepos.d.ts +2 -2
- package/dist/api/moderation/searchRepos.d.ts.map +1 -1
- package/dist/api/moderation/searchRepos.js +5 -8
- package/dist/api/moderation/searchRepos.js.map +1 -1
- package/dist/api/moderation/util.d.ts +2 -2
- package/dist/api/moderation/util.d.ts.map +1 -1
- package/dist/api/moderation/util.js +10 -15
- package/dist/api/moderation/util.js.map +1 -1
- package/dist/api/proxied.d.ts +2 -2
- package/dist/api/proxied.d.ts.map +1 -1
- package/dist/api/proxied.js +24 -27
- package/dist/api/proxied.js.map +1 -1
- package/dist/api/queue/assignModerator.d.ts +2 -2
- package/dist/api/queue/assignModerator.d.ts.map +1 -1
- package/dist/api/queue/assignModerator.js +6 -9
- package/dist/api/queue/assignModerator.js.map +1 -1
- package/dist/api/queue/createQueue.d.ts +2 -2
- package/dist/api/queue/createQueue.d.ts.map +1 -1
- package/dist/api/queue/createQueue.js +5 -8
- package/dist/api/queue/createQueue.js.map +1 -1
- package/dist/api/queue/deleteQueue.d.ts +2 -2
- package/dist/api/queue/deleteQueue.d.ts.map +1 -1
- package/dist/api/queue/deleteQueue.js +5 -8
- package/dist/api/queue/deleteQueue.js.map +1 -1
- package/dist/api/queue/getAssignments.d.ts +2 -2
- package/dist/api/queue/getAssignments.d.ts.map +1 -1
- package/dist/api/queue/getAssignments.js +1 -4
- package/dist/api/queue/getAssignments.js.map +1 -1
- package/dist/api/queue/listQueues.d.ts +2 -2
- package/dist/api/queue/listQueues.d.ts.map +1 -1
- package/dist/api/queue/listQueues.js +1 -4
- package/dist/api/queue/listQueues.js.map +1 -1
- package/dist/api/queue/routeReports.d.ts +2 -2
- package/dist/api/queue/routeReports.d.ts.map +1 -1
- package/dist/api/queue/routeReports.js +5 -8
- package/dist/api/queue/routeReports.js.map +1 -1
- package/dist/api/queue/unassignModerator.d.ts +2 -2
- package/dist/api/queue/unassignModerator.d.ts.map +1 -1
- package/dist/api/queue/unassignModerator.js +6 -9
- package/dist/api/queue/unassignModerator.js.map +1 -1
- package/dist/api/queue/updateQueue.d.ts +2 -2
- package/dist/api/queue/updateQueue.d.ts.map +1 -1
- package/dist/api/queue/updateQueue.js +5 -8
- package/dist/api/queue/updateQueue.js.map +1 -1
- package/dist/api/report/assignModerator.d.ts +2 -2
- package/dist/api/report/assignModerator.d.ts.map +1 -1
- package/dist/api/report/assignModerator.js +6 -9
- package/dist/api/report/assignModerator.js.map +1 -1
- package/dist/api/report/createActivity.d.ts +2 -2
- package/dist/api/report/createActivity.d.ts.map +1 -1
- package/dist/api/report/createActivity.js +8 -11
- package/dist/api/report/createActivity.js.map +1 -1
- package/dist/api/report/createReport.d.ts +2 -2
- package/dist/api/report/createReport.d.ts.map +1 -1
- package/dist/api/report/createReport.js +14 -17
- package/dist/api/report/createReport.js.map +1 -1
- package/dist/api/report/getAssignments.d.ts +2 -2
- package/dist/api/report/getAssignments.d.ts.map +1 -1
- package/dist/api/report/getAssignments.js +1 -4
- package/dist/api/report/getAssignments.js.map +1 -1
- package/dist/api/report/getHistoricalStats.d.ts +2 -2
- package/dist/api/report/getHistoricalStats.d.ts.map +1 -1
- package/dist/api/report/getHistoricalStats.js +3 -6
- package/dist/api/report/getHistoricalStats.js.map +1 -1
- package/dist/api/report/getLatestReport.d.ts +2 -2
- package/dist/api/report/getLatestReport.d.ts.map +1 -1
- package/dist/api/report/getLatestReport.js +9 -12
- package/dist/api/report/getLatestReport.js.map +1 -1
- package/dist/api/report/getLiveStats.d.ts +2 -2
- package/dist/api/report/getLiveStats.d.ts.map +1 -1
- package/dist/api/report/getLiveStats.js +3 -6
- package/dist/api/report/getLiveStats.js.map +1 -1
- package/dist/api/report/getReport.d.ts +2 -2
- package/dist/api/report/getReport.d.ts.map +1 -1
- package/dist/api/report/getReport.js +9 -12
- package/dist/api/report/getReport.js.map +1 -1
- package/dist/api/report/listActivities.d.ts +2 -2
- package/dist/api/report/listActivities.d.ts.map +1 -1
- package/dist/api/report/listActivities.js +4 -7
- package/dist/api/report/listActivities.js.map +1 -1
- package/dist/api/report/queryReports.d.ts +2 -2
- package/dist/api/report/queryReports.d.ts.map +1 -1
- package/dist/api/report/queryReports.js +7 -10
- package/dist/api/report/queryReports.js.map +1 -1
- package/dist/api/report/reassignQueue.d.ts +2 -2
- package/dist/api/report/reassignQueue.d.ts.map +1 -1
- package/dist/api/report/reassignQueue.js +12 -15
- package/dist/api/report/reassignQueue.js.map +1 -1
- package/dist/api/report/refreshStats.d.ts +2 -2
- package/dist/api/report/refreshStats.d.ts.map +1 -1
- package/dist/api/report/refreshStats.js +1 -4
- package/dist/api/report/refreshStats.js.map +1 -1
- package/dist/api/report/unassignModerator.d.ts +2 -2
- package/dist/api/report/unassignModerator.d.ts.map +1 -1
- package/dist/api/report/unassignModerator.js +3 -6
- package/dist/api/report/unassignModerator.js.map +1 -1
- package/dist/api/safelink/addRule.d.ts +2 -2
- package/dist/api/safelink/addRule.d.ts.map +1 -1
- package/dist/api/safelink/addRule.js +8 -11
- package/dist/api/safelink/addRule.js.map +1 -1
- package/dist/api/safelink/queryEvents.d.ts +2 -2
- package/dist/api/safelink/queryEvents.d.ts.map +1 -1
- package/dist/api/safelink/queryEvents.js +3 -6
- package/dist/api/safelink/queryEvents.js.map +1 -1
- package/dist/api/safelink/queryRules.d.ts +2 -2
- package/dist/api/safelink/queryRules.d.ts.map +1 -1
- package/dist/api/safelink/queryRules.js +5 -8
- package/dist/api/safelink/queryRules.js.map +1 -1
- package/dist/api/safelink/removeRule.d.ts +2 -2
- package/dist/api/safelink/removeRule.d.ts.map +1 -1
- package/dist/api/safelink/removeRule.js +6 -9
- package/dist/api/safelink/removeRule.js.map +1 -1
- package/dist/api/safelink/updateRule.d.ts +2 -2
- package/dist/api/safelink/updateRule.d.ts.map +1 -1
- package/dist/api/safelink/updateRule.js +8 -11
- package/dist/api/safelink/updateRule.js.map +1 -1
- package/dist/api/server/getConfig.d.ts +2 -2
- package/dist/api/server/getConfig.d.ts.map +1 -1
- package/dist/api/server/getConfig.js +5 -8
- package/dist/api/server/getConfig.js.map +1 -1
- package/dist/api/set/addValues.d.ts +2 -2
- package/dist/api/set/addValues.d.ts.map +1 -1
- package/dist/api/set/addValues.js +4 -7
- package/dist/api/set/addValues.js.map +1 -1
- package/dist/api/set/deleteSet.d.ts +2 -2
- package/dist/api/set/deleteSet.d.ts.map +1 -1
- package/dist/api/set/deleteSet.js +4 -7
- package/dist/api/set/deleteSet.js.map +1 -1
- package/dist/api/set/deleteValues.d.ts +2 -2
- package/dist/api/set/deleteValues.d.ts.map +1 -1
- package/dist/api/set/deleteValues.js +4 -7
- package/dist/api/set/deleteValues.js.map +1 -1
- package/dist/api/set/getValues.d.ts +2 -2
- package/dist/api/set/getValues.d.ts.map +1 -1
- package/dist/api/set/getValues.js +4 -7
- package/dist/api/set/getValues.js.map +1 -1
- package/dist/api/set/querySets.d.ts +2 -2
- package/dist/api/set/querySets.d.ts.map +1 -1
- package/dist/api/set/querySets.js +3 -6
- package/dist/api/set/querySets.js.map +1 -1
- package/dist/api/set/upsertSet.d.ts +2 -2
- package/dist/api/set/upsertSet.d.ts.map +1 -1
- package/dist/api/set/upsertSet.js +4 -7
- package/dist/api/set/upsertSet.js.map +1 -1
- package/dist/api/setting/listOptions.d.ts +2 -2
- package/dist/api/setting/listOptions.d.ts.map +1 -1
- package/dist/api/setting/listOptions.js +3 -6
- package/dist/api/setting/listOptions.js.map +1 -1
- package/dist/api/setting/removeOptions.d.ts +2 -2
- package/dist/api/setting/removeOptions.d.ts.map +1 -1
- package/dist/api/setting/removeOptions.js +3 -6
- package/dist/api/setting/removeOptions.js.map +1 -1
- package/dist/api/setting/upsertOption.d.ts +2 -2
- package/dist/api/setting/upsertOption.d.ts.map +1 -1
- package/dist/api/setting/upsertOption.js +25 -31
- package/dist/api/setting/upsertOption.js.map +1 -1
- package/dist/api/team/addMember.d.ts +2 -2
- package/dist/api/team/addMember.d.ts.map +1 -1
- package/dist/api/team/addMember.js +6 -9
- package/dist/api/team/addMember.js.map +1 -1
- package/dist/api/team/deleteMember.d.ts +2 -2
- package/dist/api/team/deleteMember.d.ts.map +1 -1
- package/dist/api/team/deleteMember.js +4 -7
- package/dist/api/team/deleteMember.js.map +1 -1
- package/dist/api/team/listMembers.d.ts +2 -2
- package/dist/api/team/listMembers.d.ts.map +1 -1
- package/dist/api/team/listMembers.js +1 -4
- package/dist/api/team/listMembers.js.map +1 -1
- package/dist/api/team/updateMember.d.ts +2 -2
- package/dist/api/team/updateMember.d.ts.map +1 -1
- package/dist/api/team/updateMember.js +7 -10
- package/dist/api/team/updateMember.js.map +1 -1
- package/dist/api/util.d.ts +4 -4
- package/dist/api/util.d.ts.map +1 -1
- package/dist/api/util.js +39 -56
- package/dist/api/util.js.map +1 -1
- package/dist/api/verification/grantVerifications.d.ts +2 -2
- package/dist/api/verification/grantVerifications.d.ts.map +1 -1
- package/dist/api/verification/grantVerifications.js +6 -9
- package/dist/api/verification/grantVerifications.js.map +1 -1
- package/dist/api/verification/listVerifications.d.ts +2 -2
- package/dist/api/verification/listVerifications.d.ts.map +1 -1
- package/dist/api/verification/listVerifications.js +3 -6
- package/dist/api/verification/listVerifications.js.map +1 -1
- package/dist/api/verification/revokeVerifications.d.ts +2 -2
- package/dist/api/verification/revokeVerifications.d.ts.map +1 -1
- package/dist/api/verification/revokeVerifications.js +4 -7
- package/dist/api/verification/revokeVerifications.js.map +1 -1
- package/dist/api/well-known.d.ts +1 -1
- package/dist/api/well-known.d.ts.map +1 -1
- package/dist/api/well-known.js +3 -7
- package/dist/api/well-known.js.map +1 -1
- package/dist/assignment/index.d.ts +7 -7
- package/dist/assignment/index.d.ts.map +1 -1
- package/dist/assignment/index.js +23 -47
- package/dist/assignment/index.js.map +1 -1
- package/dist/auth-verifier.d.ts +1 -1
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/auth-verifier.js +82 -174
- package/dist/auth-verifier.js.map +1 -1
- package/dist/background.d.ts +1 -1
- package/dist/background.d.ts.map +1 -1
- package/dist/background.js +17 -74
- package/dist/background.js.map +1 -1
- package/dist/communication-service/template.d.ts +3 -3
- package/dist/communication-service/template.d.ts.map +1 -1
- package/dist/communication-service/template.js +2 -11
- package/dist/communication-service/template.js.map +1 -1
- package/dist/communication-service/util.js +1 -5
- package/dist/communication-service/util.js.map +1 -1
- package/dist/config/config.d.ts +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +18 -25
- package/dist/config/config.js.map +1 -1
- package/dist/config/env.js +42 -46
- package/dist/config/env.js.map +1 -1
- package/dist/config/index.d.ts +3 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -19
- package/dist/config/index.js.map +1 -1
- package/dist/config/secrets.d.ts +1 -1
- package/dist/config/secrets.d.ts.map +1 -1
- package/dist/config/secrets.js +4 -11
- package/dist/config/secrets.js.map +1 -1
- package/dist/context.d.ts +22 -22
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +63 -113
- package/dist/context.js.map +1 -1
- package/dist/daemon/blob-diverter.d.ts +2 -2
- package/dist/daemon/blob-diverter.d.ts.map +1 -1
- package/dist/daemon/blob-diverter.js +18 -72
- package/dist/daemon/blob-diverter.js.map +1 -1
- package/dist/daemon/context.d.ts +12 -12
- package/dist/daemon/context.d.ts.map +1 -1
- package/dist/daemon/context.js +50 -59
- package/dist/daemon/context.js.map +1 -1
- package/dist/daemon/event-pusher.d.ts +4 -4
- package/dist/daemon/event-pusher.d.ts.map +1 -1
- package/dist/daemon/event-pusher.js +29 -78
- package/dist/daemon/event-pusher.js.map +1 -1
- package/dist/daemon/event-reverser.d.ts +2 -2
- package/dist/daemon/event-reverser.d.ts.map +1 -1
- package/dist/daemon/event-reverser.js +14 -44
- package/dist/daemon/event-reverser.js.map +1 -1
- package/dist/daemon/index.d.ts +8 -8
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +9 -23
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/job-cursor.d.ts +1 -1
- package/dist/daemon/job-cursor.d.ts.map +1 -1
- package/dist/daemon/job-cursor.js +3 -8
- package/dist/daemon/job-cursor.js.map +1 -1
- package/dist/daemon/materialized-view-refresher.d.ts +1 -1
- package/dist/daemon/materialized-view-refresher.d.ts.map +1 -1
- package/dist/daemon/materialized-view-refresher.js +9 -13
- package/dist/daemon/materialized-view-refresher.js.map +1 -1
- package/dist/daemon/queue-router.d.ts +2 -2
- package/dist/daemon/queue-router.d.ts.map +1 -1
- package/dist/daemon/queue-router.js +13 -43
- package/dist/daemon/queue-router.js.map +1 -1
- package/dist/daemon/scheduled-action-processor.d.ts +9 -9
- package/dist/daemon/scheduled-action-processor.d.ts.map +1 -1
- package/dist/daemon/scheduled-action-processor.js +23 -68
- package/dist/daemon/scheduled-action-processor.js.map +1 -1
- package/dist/daemon/stats-computer.d.ts +2 -2
- package/dist/daemon/stats-computer.d.ts.map +1 -1
- package/dist/daemon/stats-computer.js +15 -50
- package/dist/daemon/stats-computer.js.map +1 -1
- package/dist/daemon/strike-expiry-processor.d.ts +2 -2
- package/dist/daemon/strike-expiry-processor.d.ts.map +1 -1
- package/dist/daemon/strike-expiry-processor.js +16 -46
- package/dist/daemon/strike-expiry-processor.js.map +1 -1
- package/dist/daemon/team-profile-synchronizer.d.ts +2 -2
- package/dist/daemon/team-profile-synchronizer.d.ts.map +1 -1
- package/dist/daemon/team-profile-synchronizer.js +4 -8
- package/dist/daemon/team-profile-synchronizer.js.map +1 -1
- package/dist/daemon/verification-listener.d.ts +2 -2
- package/dist/daemon/verification-listener.d.ts.map +1 -1
- package/dist/daemon/verification-listener.js +20 -70
- package/dist/daemon/verification-listener.js.map +1 -1
- package/dist/db/index.d.ts +7 -5
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +27 -107
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations/20231219T205730722Z-init.js +2 -6
- package/dist/db/migrations/20231219T205730722Z-init.js.map +1 -1
- package/dist/db/migrations/20240116T085607200Z-communication-template.js +2 -6
- package/dist/db/migrations/20240116T085607200Z-communication-template.js.map +1 -1
- package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.js +2 -6
- package/dist/db/migrations/20240201T051104136Z-mod-event-blobs.js.map +1 -1
- package/dist/db/migrations/20240208T213404429Z-add-tags-column-to-moderation-subject.js +2 -6
- package/dist/db/migrations/20240208T213404429Z-add-tags-column-to-moderation-subject.js.map +1 -1
- package/dist/db/migrations/20240228T003647759Z-add-label-sigs.js +4 -8
- package/dist/db/migrations/20240228T003647759Z-add-label-sigs.js.map +1 -1
- package/dist/db/migrations/20240408T192432676Z-mute-reporting.js +2 -6
- package/dist/db/migrations/20240408T192432676Z-mute-reporting.js.map +1 -1
- package/dist/db/migrations/20240506T225055595Z-message-subject.js +2 -6
- package/dist/db/migrations/20240506T225055595Z-message-subject.js.map +1 -1
- package/dist/db/migrations/20240521T211332580Z-member.js +2 -6
- package/dist/db/migrations/20240521T211332580Z-member.js.map +1 -1
- package/dist/db/migrations/20240814T003647759Z-event-created-at-index.js +2 -6
- package/dist/db/migrations/20240814T003647759Z-event-created-at-index.js.map +1 -1
- package/dist/db/migrations/20240903T205730722Z-add-template-lang.js +2 -6
- package/dist/db/migrations/20240903T205730722Z-add-template-lang.js.map +1 -1
- package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js +2 -6
- package/dist/db/migrations/20240904T205730722Z-add-subject-did-index.js.map +1 -1
- package/dist/db/migrations/20241001T205730722Z-subject-status-review-state-index.js +2 -6
- package/dist/db/migrations/20241001T205730722Z-subject-status-review-state-index.js.map +1 -1
- package/dist/db/migrations/20241008T205730722Z-sets.js +6 -10
- package/dist/db/migrations/20241008T205730722Z-sets.js.map +1 -1
- package/dist/db/migrations/20241018T205730722Z-setting.js +5 -9
- package/dist/db/migrations/20241018T205730722Z-setting.js.map +1 -1
- package/dist/db/migrations/20241026T205730722Z-add-hosting-status-to-subject-status.js +2 -6
- package/dist/db/migrations/20241026T205730722Z-add-hosting-status-to-subject-status.js.map +1 -1
- package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts +1 -1
- package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts.map +1 -1
- package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js +27 -31
- package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js.map +1 -1
- package/dist/db/migrations/20250204T003647759Z-add-subject-priority-score.js +2 -6
- package/dist/db/migrations/20250204T003647759Z-add-subject-priority-score.js.map +1 -1
- package/dist/db/migrations/20250211T003647759Z-add-reporter-stats-index.js +7 -11
- package/dist/db/migrations/20250211T003647759Z-add-reporter-stats-index.js.map +1 -1
- package/dist/db/migrations/20250211T132135150Z-moderation-event-message-partial-idx.js +4 -8
- package/dist/db/migrations/20250211T132135150Z-moderation-event-message-partial-idx.js.map +1 -1
- package/dist/db/migrations/20250221T132135150Z-member-details.js +2 -6
- package/dist/db/migrations/20250221T132135150Z-member-details.js.map +1 -1
- package/dist/db/migrations/20250404T201720309Z-subject-status-sort-idxs.js +5 -9
- package/dist/db/migrations/20250404T201720309Z-subject-status-sort-idxs.js.map +1 -1
- package/dist/db/migrations/20250415T201720309Z-verification.js +4 -8
- package/dist/db/migrations/20250415T201720309Z-verification.js.map +1 -1
- package/dist/db/migrations/20250417T201720309Z-firehose-cursor.js +4 -8
- package/dist/db/migrations/20250417T201720309Z-firehose-cursor.js.map +1 -1
- package/dist/db/migrations/20250609T110704000Z-safelink.js +2 -6
- package/dist/db/migrations/20250609T110704000Z-safelink.js.map +1 -1
- package/dist/db/migrations/20250618T180246000Z-add-mod-tool-to-moderation-event.js +4 -8
- package/dist/db/migrations/20250618T180246000Z-add-mod-tool-to-moderation-event.js.map +1 -1
- package/dist/db/migrations/20250701T000000000Z-add-age-assurance-state.js +2 -6
- package/dist/db/migrations/20250701T000000000Z-add-age-assurance-state.js.map +1 -1
- package/dist/db/migrations/20250715T000000000Z-add-mod-event-external-id.js +2 -6
- package/dist/db/migrations/20250715T000000000Z-add-mod-event-external-id.js.map +1 -1
- package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts +1 -1
- package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.d.ts.map +1 -1
- package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js +37 -41
- package/dist/db/migrations/20250718T150931000Z-update-appeal-reason-stats.js.map +1 -1
- package/dist/db/migrations/20250813T000000000Z-mod-tool-batch-id-index.js +4 -8
- package/dist/db/migrations/20250813T000000000Z-mod-tool-batch-id-index.js.map +1 -1
- package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js +4 -8
- package/dist/db/migrations/20250923T000000000Z-scheduled-actions.js.map +1 -1
- package/dist/db/migrations/20251008T120000000Z-add-strike-system.js +5 -9
- package/dist/db/migrations/20251008T120000000Z-add-strike-system.js.map +1 -1
- package/dist/db/migrations/20260210T154806448Z-mod-event-created-by-indexes.js +2 -6
- package/dist/db/migrations/20260210T154806448Z-mod-event-created-by-indexes.js.map +1 -1
- package/dist/db/migrations/20260219T164523000Z-create-report-table.js +19 -23
- package/dist/db/migrations/20260219T164523000Z-create-report-table.js.map +1 -1
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js +6 -10
- package/dist/db/migrations/20260219T165302248Z-moderator-assignment.js.map +1 -1
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js +5 -9
- package/dist/db/migrations/20260225T000000000Z-add-report-queue-table.js.map +1 -1
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js +4 -8
- package/dist/db/migrations/20260313T000000000Z-add-report-activity-table.js.map +1 -1
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.js +4 -8
- package/dist/db/migrations/20260318T152058935Z-add-report-stat.js.map +1 -1
- package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js +2 -6
- package/dist/db/migrations/20260428T000000000Z-add-expiring-tag-table.js.map +1 -1
- package/dist/db/migrations/index.d.ts +38 -38
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +38 -74
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/migrations/provider.js +3 -17
- package/dist/db/migrations/provider.js.map +1 -1
- package/dist/db/pagination.d.ts +1 -1
- package/dist/db/pagination.d.ts.map +1 -1
- package/dist/db/pagination.js +34 -54
- package/dist/db/pagination.js.map +1 -1
- package/dist/db/schema/account_events_stats.js +1 -4
- package/dist/db/schema/account_events_stats.js.map +1 -1
- package/dist/db/schema/account_record_events_stats.js +1 -4
- package/dist/db/schema/account_record_events_stats.js.map +1 -1
- package/dist/db/schema/account_record_status_stats.js +1 -4
- package/dist/db/schema/account_record_status_stats.js.map +1 -1
- package/dist/db/schema/account_strike.js +1 -4
- package/dist/db/schema/account_strike.js.map +1 -1
- package/dist/db/schema/blob_push_event.js +1 -4
- package/dist/db/schema/blob_push_event.js.map +1 -1
- package/dist/db/schema/communication_template.js +1 -4
- package/dist/db/schema/communication_template.js.map +1 -1
- package/dist/db/schema/expiring_tag.js +1 -4
- package/dist/db/schema/expiring_tag.js.map +1 -1
- package/dist/db/schema/firehose_cursor.js +1 -4
- package/dist/db/schema/firehose_cursor.js.map +1 -1
- package/dist/db/schema/index.d.ts +27 -27
- package/dist/db/schema/index.d.ts.map +1 -1
- package/dist/db/schema/index.js +1 -2
- package/dist/db/schema/index.js.map +1 -1
- package/dist/db/schema/job_cursor.js +1 -4
- package/dist/db/schema/job_cursor.js.map +1 -1
- package/dist/db/schema/label.js +2 -5
- package/dist/db/schema/label.js.map +1 -1
- package/dist/db/schema/member.js +1 -4
- package/dist/db/schema/member.js.map +1 -1
- package/dist/db/schema/moderation_event.js +1 -4
- package/dist/db/schema/moderation_event.js.map +1 -1
- package/dist/db/schema/moderation_subject_status.d.ts +1 -1
- package/dist/db/schema/moderation_subject_status.d.ts.map +1 -1
- package/dist/db/schema/moderation_subject_status.js +1 -4
- package/dist/db/schema/moderation_subject_status.js.map +1 -1
- package/dist/db/schema/moderator_assignment.js +1 -4
- package/dist/db/schema/moderator_assignment.js.map +1 -1
- package/dist/db/schema/ozone_set.js +2 -5
- package/dist/db/schema/ozone_set.js.map +1 -1
- package/dist/db/schema/record_events_stats.js +1 -4
- package/dist/db/schema/record_events_stats.js.map +1 -1
- package/dist/db/schema/record_push_event.js +1 -4
- package/dist/db/schema/record_push_event.js.map +1 -1
- package/dist/db/schema/repo_push_event.js +1 -4
- package/dist/db/schema/repo_push_event.js.map +1 -1
- package/dist/db/schema/report.js +1 -4
- package/dist/db/schema/report.js.map +1 -1
- package/dist/db/schema/report_activity.js +1 -4
- package/dist/db/schema/report_activity.js.map +1 -1
- package/dist/db/schema/report_queue.js +1 -4
- package/dist/db/schema/report_queue.js.map +1 -1
- package/dist/db/schema/report_stat.js +1 -4
- package/dist/db/schema/report_stat.js.map +1 -1
- package/dist/db/schema/safelink.d.ts +1 -1
- package/dist/db/schema/safelink.d.ts.map +1 -1
- package/dist/db/schema/safelink.js +2 -5
- package/dist/db/schema/safelink.js.map +1 -1
- package/dist/db/schema/scheduled-action.js +1 -4
- package/dist/db/schema/scheduled-action.js.map +1 -1
- package/dist/db/schema/setting.d.ts +1 -1
- package/dist/db/schema/setting.d.ts.map +1 -1
- package/dist/db/schema/setting.js +1 -4
- package/dist/db/schema/setting.js.map +1 -1
- package/dist/db/schema/signing_key.js +1 -4
- package/dist/db/schema/signing_key.js.map +1 -1
- package/dist/db/schema/verification.js +1 -4
- package/dist/db/schema/verification.js.map +1 -1
- package/dist/db/types.d.ts +3 -1
- package/dist/db/types.d.ts.map +1 -1
- package/dist/db/types.js +4 -8
- package/dist/db/types.js.map +1 -1
- package/dist/error.js +5 -9
- package/dist/error.js.map +1 -1
- package/dist/image-invalidator.js +1 -2
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -110
- package/dist/index.js.map +1 -1
- package/dist/jetstream/service.d.ts.map +1 -1
- package/dist/jetstream/service.js +4 -26
- package/dist/jetstream/service.js.map +1 -1
- package/dist/lexicon/index.d.ts +2 -2
- package/dist/lexicon/index.js +60 -670
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +992 -28
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +621 -28
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts +34 -34
- package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/defs.js +69 -137
- package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getPreferences.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfile.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/getProfile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getProfiles.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/getProfiles.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/getSuggestions.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/actor/profile.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/profile.js +6 -11
- package/dist/lexicon/types/app/bsky/actor/profile.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/putPreferences.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActors.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js +3 -5
- package/dist/lexicon/types/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/status.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/actor/status.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/actor/status.js +7 -13
- package/dist/lexicon/types/app/bsky/actor/status.js.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/begin.js +3 -5
- package/dist/lexicon/types/app/bsky/ageassurance/begin.js.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts +13 -13
- package/dist/lexicon/types/app/bsky/ageassurance/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/defs.js +27 -53
- package/dist/lexicon/types/app/bsky/ageassurance/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js +3 -5
- package/dist/lexicon/types/app/bsky/ageassurance/getConfig.js.map +1 -1
- package/dist/lexicon/types/app/bsky/ageassurance/getState.js +3 -5
- package/dist/lexicon/types/app/bsky/ageassurance/getState.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js +3 -5
- package/dist/lexicon/types/app/bsky/bookmark/createBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/defs.d.ts +3 -3
- package/dist/lexicon/types/app/bsky/bookmark/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/defs.js +7 -13
- package/dist/lexicon/types/app/bsky/bookmark/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js +3 -5
- package/dist/lexicon/types/app/bsky/bookmark/deleteBookmark.js.map +1 -1
- package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js +3 -5
- package/dist/lexicon/types/app/bsky/bookmark/getBookmarks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts +3 -3
- package/dist/lexicon/types/app/bsky/contact/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/defs.js +9 -17
- package/dist/lexicon/types/app/bsky/contact/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/dismissMatch.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/getMatches.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/getMatches.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/getSyncStatus.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/importContacts.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/importContacts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/removeData.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/removeData.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/sendNotification.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/sendNotification.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/startPhoneVerification.js.map +1 -1
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js +3 -5
- package/dist/lexicon/types/app/bsky/contact/verifyPhone.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/createDraft.js +3 -5
- package/dist/lexicon/types/app/bsky/draft/createDraft.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts +11 -11
- package/dist/lexicon/types/app/bsky/draft/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/defs.js +23 -45
- package/dist/lexicon/types/app/bsky/draft/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.js +3 -5
- package/dist/lexicon/types/app/bsky/draft/deleteDraft.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/getDrafts.js +3 -5
- package/dist/lexicon/types/app/bsky/draft/getDrafts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/draft/updateDraft.js +3 -5
- package/dist/lexicon/types/app/bsky/draft/updateDraft.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/defs.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/embed/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/defs.js +5 -9
- package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.d.ts +6 -5
- package/dist/lexicon/types/app/bsky/embed/external.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/external.js +11 -21
- package/dist/lexicon/types/app/bsky/embed/external.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/images.d.ts +4 -4
- package/dist/lexicon/types/app/bsky/embed/images.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/images.js +11 -21
- package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.d.ts +7 -7
- package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.js +15 -29
- package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts +3 -3
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js +7 -13
- package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/video.d.ts +3 -3
- package/dist/lexicon/types/app/bsky/embed/video.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/video.js +9 -17
- package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts +19 -19
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js +53 -92
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js +7 -13
- package/dist/lexicon/types/app/bsky/feed/describeFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/feed/generator.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.js +6 -11
- package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getActorFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getActorLikes.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getActorLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getAuthorFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeed.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getFeedSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/feed/getLikes.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getLikes.js +5 -9
- package/dist/lexicon/types/app/bsky/feed/getLikes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getListFeed.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPostThread.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPostThread.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getPostThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getPosts.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getQuotes.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getRepostedBy.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/getTimeline.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/like.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/feed/like.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/like.js +6 -11
- package/dist/lexicon/types/app/bsky/feed/like.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/post.d.ts +5 -5
- package/dist/lexicon/types/app/bsky/feed/post.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/post.js +12 -23
- package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +3 -3
- package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/postgate.js +8 -15
- package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/repost.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/feed/repost.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/repost.js +6 -11
- package/dist/lexicon/types/app/bsky/feed/repost.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/searchPosts.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js +3 -5
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +6 -6
- package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/threadgate.js +14 -27
- package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/block.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/block.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/block.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/block.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts +8 -8
- package/dist/lexicon/types/app/bsky/graph/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/defs.js +22 -41
- package/dist/lexicon/types/app/bsky/graph/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/follow.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/follow.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/follow.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/follow.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getActorStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getBlocks.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollowers.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getFollows.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getFollows.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getKnownFollowers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getList.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListBlocks.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getListBlocks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListMutes.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getListMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getLists.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getLists.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js +5 -9
- package/dist/lexicon/types/app/bsky/graph/getListsWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getMutes.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/getRelationships.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getRelationships.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getRelationships.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getStarterPack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js +5 -9
- package/dist/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/list.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/graph/list.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/list.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/list.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listblock.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/listblock.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listblock.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/listblock.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listitem.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/listitem.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/listitem.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/listitem.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActor.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteActorList.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/muteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteThread.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/searchStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/graph/starterpack.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/starterpack.js +8 -15
- package/dist/lexicon/types/app/bsky/graph/starterpack.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActor.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/unmuteActor.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/unmuteActorList.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js +3 -5
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/verification.js +6 -11
- package/dist/lexicon/types/app/bsky/graph/verification.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/defs.d.ts +4 -4
- package/dist/lexicon/types/app/bsky/labeler/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/defs.js +11 -21
- package/dist/lexicon/types/app/bsky/labeler/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/labeler/getServices.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/getServices.js +3 -5
- package/dist/lexicon/types/app/bsky/labeler/getServices.js.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/service.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/labeler/service.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/labeler/service.js +6 -11
- package/dist/lexicon/types/app/bsky/labeler/service.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/declaration.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/notification/declaration.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/declaration.js +6 -11
- package/dist/lexicon/types/app/bsky/notification/declaration.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/defs.d.ts +7 -7
- package/dist/lexicon/types/app/bsky/notification/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/defs.js +17 -33
- package/dist/lexicon/types/app/bsky/notification/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getPreferences.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/getPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/getUnreadCount.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/listActivitySubscriptions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/listNotifications.js +5 -9
- package/dist/lexicon/types/app/bsky/notification/listNotifications.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/putActivitySubscription.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/putPreferences.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/putPreferencesV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/registerPush.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/registerPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/unregisterPush.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/unregisterPush.js.map +1 -1
- package/dist/lexicon/types/app/bsky/notification/updateSeen.js +3 -5
- package/dist/lexicon/types/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/lexicon/types/app/bsky/richtext/facet.d.ts +6 -6
- package/dist/lexicon/types/app/bsky/richtext/facet.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/richtext/facet.js +13 -25
- package/dist/lexicon/types/app/bsky/richtext/facet.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +12 -12
- package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/defs.js +27 -53
- package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.js +5 -9
- package/dist/lexicon/types/app/bsky/unspecced/getConfig.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js +5 -9
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts +2 -2
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js +5 -9
- package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsers.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js +5 -9
- package/dist/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getTrendingTopics.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrends.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getTrends.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/initAgeAssurance.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js +3 -5
- package/dist/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/defs.d.ts +1 -1
- package/dist/lexicon/types/app/bsky/video/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/video/defs.js +5 -9
- package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getJobStatus.js +3 -5
- package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/getUploadLimits.js +3 -5
- package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -1
- package/dist/lexicon/types/app/bsky/video/uploadVideo.js +3 -5
- package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/declaration.js +6 -11
- package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +5 -5
- package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/defs.js +11 -21
- package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js +3 -5
- package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js +3 -5
- package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/acceptConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/addReaction.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/addReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +61 -54
- package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/defs.js +114 -213
- package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getConvoAvailability.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getConvoMembers.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getConvoMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getLog.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/getMessages.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/listConvoRequests.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts +2 -0
- package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/listConvos.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/lockConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/lockConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/muteConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/removeReaction.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/removeReaction.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessage.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js +5 -9
- package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/unlockConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/unlockConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/updateAllRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/convo/updateRead.js +3 -5
- package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/group/addMembers.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/addMembers.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/addMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/approveJoinRequest.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/approveJoinRequest.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/createGroup.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/createGroup.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/createJoinLink.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/createJoinLink.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/defs.d.ts +8 -6
- package/dist/lexicon/types/chat/bsky/group/defs.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/defs.js +12 -20
- package/dist/lexicon/types/chat/bsky/group/defs.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/disableJoinLink.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/disableJoinLink.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/editGroup.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/editGroup.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/editJoinLink.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/editJoinLink.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/enableJoinLink.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/enableJoinLink.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/{getGroupPublicInfo.d.ts → getJoinLinkPreview.d.ts} +2 -2
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.d.ts.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.js +5 -0
- package/dist/lexicon/types/chat/bsky/group/getJoinLinkPreview.js.map +1 -0
- package/dist/lexicon/types/chat/bsky/group/listJoinRequests.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/listJoinRequests.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/rejectJoinRequest.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/rejectJoinRequest.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/removeMembers.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/removeMembers.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/group/requestJoin.js +3 -5
- package/dist/lexicon/types/chat/bsky/group/requestJoin.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js +5 -9
- package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts +6 -2
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js +3 -5
- package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts +209 -3
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.d.ts.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js +68 -9
- package/dist/lexicon/types/chat/bsky/moderation/subscribeModEvents.js.map +1 -1
- package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js +3 -5
- package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/defs.d.ts +5 -5
- package/dist/lexicon/types/com/atproto/admin/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/defs.js +13 -25
- package/dist/lexicon/types/com/atproto/admin/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/deleteAccount.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/disableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/disableInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/enableAccountInvites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/getAccountInfo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/getAccountInfos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/getInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/getSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/searchAccounts.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/searchAccounts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/sendEmail.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/sendEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/updateAccountEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/updateAccountPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/updateAccountSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js +3 -5
- package/dist/lexicon/types/com/atproto/admin/updateSubjectStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/defs.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/identity/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/defs.js +5 -9
- package/dist/lexicon/types/com/atproto/identity/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/refreshIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/requestPlcOperationSignature.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveDid.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/resolveDid.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveHandle.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/resolveHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/resolveIdentity.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/signPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/submitPlcOperation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/identity/updateHandle.js +3 -5
- package/dist/lexicon/types/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/defs.d.ts +5 -5
- package/dist/lexicon/types/com/atproto/label/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/label/defs.js +13 -25
- package/dist/lexicon/types/com/atproto/label/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/queryLabels.js +3 -5
- package/dist/lexicon/types/com/atproto/label/queryLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts +3 -3
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.js +7 -13
- package/dist/lexicon/types/com/atproto/label/subscribeLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/resolveLexicon.js +3 -5
- package/dist/lexicon/types/com/atproto/lexicon/resolveLexicon.js.map +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/schema.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/schema.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/lexicon/schema.js +6 -11
- package/dist/lexicon/types/com/atproto/lexicon/schema.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts +2 -2
- package/dist/lexicon/types/com/atproto/moderation/createReport.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/createReport.js +5 -9
- package/dist/lexicon/types/com/atproto/moderation/createReport.js.map +1 -1
- package/dist/lexicon/types/com/atproto/moderation/defs.js +10 -13
- package/dist/lexicon/types/com/atproto/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts +7 -7
- package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/applyWrites.js +15 -29
- package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/createRecord.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/createRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/defs.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/repo/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/defs.js +5 -9
- package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/deleteRecord.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/deleteRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/describeRepo.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/describeRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/getRecord.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/importRepo.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/importRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js +5 -9
- package/dist/lexicon/types/com/atproto/repo/listMissingBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/repo/listRecords.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/listRecords.js +5 -9
- package/dist/lexicon/types/com/atproto/repo/listRecords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/putRecord.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/strongRef.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/repo/strongRef.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/strongRef.js +5 -9
- package/dist/lexicon/types/com/atproto/repo/strongRef.js.map +1 -1
- package/dist/lexicon/types/com/atproto/repo/uploadBlob.js +3 -5
- package/dist/lexicon/types/com/atproto/repo/uploadBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/activateAccount.js +3 -5
- package/dist/lexicon/types/com/atproto/server/activateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js +3 -5
- package/dist/lexicon/types/com/atproto/server/checkAccountStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/confirmEmail.js +3 -5
- package/dist/lexicon/types/com/atproto/server/confirmEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAccount.js +3 -5
- package/dist/lexicon/types/com/atproto/server/createAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/server/createAppPassword.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createAppPassword.js +5 -9
- package/dist/lexicon/types/com/atproto/server/createAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCode.js +3 -5
- package/dist/lexicon/types/com/atproto/server/createInviteCode.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.js +5 -9
- package/dist/lexicon/types/com/atproto/server/createInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createSession.js +3 -5
- package/dist/lexicon/types/com/atproto/server/createSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deactivateAccount.js +3 -5
- package/dist/lexicon/types/com/atproto/server/deactivateAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/defs.d.ts +2 -2
- package/dist/lexicon/types/com/atproto/server/defs.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/defs.js +7 -13
- package/dist/lexicon/types/com/atproto/server/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteAccount.js +3 -5
- package/dist/lexicon/types/com/atproto/server/deleteAccount.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/deleteSession.js +3 -5
- package/dist/lexicon/types/com/atproto/server/deleteSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +2 -2
- package/dist/lexicon/types/com/atproto/server/describeServer.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/describeServer.js +7 -13
- package/dist/lexicon/types/com/atproto/server/describeServer.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js +3 -5
- package/dist/lexicon/types/com/atproto/server/getAccountInviteCodes.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.js +3 -5
- package/dist/lexicon/types/com/atproto/server/getServiceAuth.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getSession.js +3 -5
- package/dist/lexicon/types/com/atproto/server/getSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.js +5 -9
- package/dist/lexicon/types/com/atproto/server/listAppPasswords.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/refreshSession.js +3 -5
- package/dist/lexicon/types/com/atproto/server/refreshSession.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js +3 -5
- package/dist/lexicon/types/com/atproto/server/requestAccountDelete.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js +3 -5
- package/dist/lexicon/types/com/atproto/server/requestEmailConfirmation.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js +3 -5
- package/dist/lexicon/types/com/atproto/server/requestEmailUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js +3 -5
- package/dist/lexicon/types/com/atproto/server/requestPasswordReset.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js +3 -5
- package/dist/lexicon/types/com/atproto/server/reserveSigningKey.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/resetPassword.js +3 -5
- package/dist/lexicon/types/com/atproto/server/resetPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js +3 -5
- package/dist/lexicon/types/com/atproto/server/revokeAppPassword.js.map +1 -1
- package/dist/lexicon/types/com/atproto/server/updateEmail.js +3 -5
- package/dist/lexicon/types/com/atproto/server/updateEmail.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/defs.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/defs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlob.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getBlob.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getBlocks.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getBlocks.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getCheckout.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getCheckout.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHead.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getHead.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getHostStatus.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getHostStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getLatestCommit.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRecord.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getRecord.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepo.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/getRepoStatus.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listBlobs.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/listBlobs.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/sync/listHosts.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listHosts.js +5 -9
- package/dist/lexicon/types/com/atproto/sync/listHosts.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listRepos.js +5 -9
- package/dist/lexicon/types/com/atproto/sync/listRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts +1 -1
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js +5 -9
- package/dist/lexicon/types/com/atproto/sync/listReposByCollection.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/notifyOfUpdate.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/requestCrawl.js +3 -5
- package/dist/lexicon/types/com/atproto/sync/requestCrawl.js.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts +7 -7
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js +15 -29
- package/dist/lexicon/types/com/atproto/sync/subscribeRepos.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/addReservedHandle.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.d.ts +4 -4
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js +9 -17
- package/dist/lexicon/types/com/atproto/temp/checkHandleAvailability.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/checkSignupQueue.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/dereferenceScope.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/fetchLabels.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/fetchLabels.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/requestPhoneVerification.js.map +1 -1
- package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js +3 -5
- package/dist/lexicon/types/com/atproto/temp/revokeAccountCredentials.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/createTemplate.js +3 -5
- package/dist/lexicon/types/tools/ozone/communication/createTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/defs.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/communication/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/defs.js +5 -9
- package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js +3 -5
- package/dist/lexicon/types/tools/ozone/communication/deleteTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/listTemplates.js +3 -5
- package/dist/lexicon/types/tools/ozone/communication/listTemplates.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js +3 -5
- package/dist/lexicon/types/tools/ozone/communication/updateTemplate.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.d.ts +7 -7
- package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js +15 -29
- package/dist/lexicon/types/tools/ozone/hosting/getAccountHistory.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js +7 -13
- package/dist/lexicon/types/tools/ozone/moderation/cancelScheduledActions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +49 -49
- package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/defs.js +106 -205
- package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js +5 -9
- package/dist/lexicon/types/tools/ozone/moderation/emitEvent.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js +7 -13
- package/dist/lexicon/types/tools/ozone/moderation/getAccountTimeline.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getEvent.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getEvent.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecord.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getRecord.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecords.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecords.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRecords.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getRecords.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepo.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getRepo.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getReporterStats.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepos.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepos.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getRepos.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getRepos.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/getSubjects.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/listScheduledActions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts +5 -5
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js +11 -21
- package/dist/lexicon/types/tools/ozone/moderation/scheduleAction.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js +3 -5
- package/dist/lexicon/types/tools/ozone/moderation/searchRepos.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/assignModerator.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/createQueue.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/createQueue.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/defs.d.ts +3 -3
- package/dist/lexicon/types/tools/ozone/queue/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/defs.js +9 -17
- package/dist/lexicon/types/tools/ozone/queue/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/deleteQueue.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/getAssignments.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/listQueues.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/listQueues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/routeReports.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/routeReports.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/unassignModerator.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.js +3 -5
- package/dist/lexicon/types/tools/ozone/queue/updateQueue.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/assignModerator.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/assignModerator.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/report/createActivity.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/createActivity.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/createActivity.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/defs.d.ts +13 -13
- package/dist/lexicon/types/tools/ozone/report/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/defs.js +67 -94
- package/dist/lexicon/types/tools/ozone/report/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getAssignments.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/getAssignments.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/getHistoricalStats.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/getLatestReport.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/getLiveStats.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/getReport.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/getReport.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/listActivities.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/listActivities.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/queryReports.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/queryReports.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/reassignQueue.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/refreshStats.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/refreshStats.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.js +3 -5
- package/dist/lexicon/types/tools/ozone/report/unassignModerator.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/addRule.js +3 -5
- package/dist/lexicon/types/tools/ozone/safelink/addRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/defs.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/safelink/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/defs.js +7 -13
- package/dist/lexicon/types/tools/ozone/safelink/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js +3 -5
- package/dist/lexicon/types/tools/ozone/safelink/queryEvents.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/queryRules.js +3 -5
- package/dist/lexicon/types/tools/ozone/safelink/queryRules.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/removeRule.js +3 -5
- package/dist/lexicon/types/tools/ozone/safelink/removeRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/safelink/updateRule.js +3 -5
- package/dist/lexicon/types/tools/ozone/safelink/updateRule.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/server/getConfig.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/server/getConfig.js +7 -13
- package/dist/lexicon/types/tools/ozone/server/getConfig.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/addValues.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/addValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/defs.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/set/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/defs.js +7 -13
- package/dist/lexicon/types/tools/ozone/set/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/deleteSet.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/deleteSet.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/deleteValues.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/deleteValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/getValues.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/getValues.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/querySets.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/querySets.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/set/upsertSet.js +3 -5
- package/dist/lexicon/types/tools/ozone/set/upsertSet.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/defs.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/setting/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/defs.js +5 -9
- package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/listOptions.js +3 -5
- package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/removeOptions.js +3 -5
- package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/setting/upsertOption.js +3 -5
- package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/defs.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/signature/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/defs.js +5 -9
- package/dist/lexicon/types/tools/ozone/signature/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js +3 -5
- package/dist/lexicon/types/tools/ozone/signature/findCorrelation.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js +5 -9
- package/dist/lexicon/types/tools/ozone/signature/findRelatedAccounts.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js +3 -5
- package/dist/lexicon/types/tools/ozone/signature/searchAccounts.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/addMember.js +3 -5
- package/dist/lexicon/types/tools/ozone/team/addMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/defs.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/team/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/defs.js +9 -14
- package/dist/lexicon/types/tools/ozone/team/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/deleteMember.js +3 -5
- package/dist/lexicon/types/tools/ozone/team/deleteMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/listMembers.js +3 -5
- package/dist/lexicon/types/tools/ozone/team/listMembers.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/team/updateMember.js +3 -5
- package/dist/lexicon/types/tools/ozone/team/updateMember.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/defs.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/verification/defs.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/defs.js +5 -9
- package/dist/lexicon/types/tools/ozone/verification/defs.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/grantVerifications.d.ts +2 -2
- package/dist/lexicon/types/tools/ozone/verification/grantVerifications.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js +7 -13
- package/dist/lexicon/types/tools/ozone/verification/grantVerifications.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/listVerifications.js +3 -5
- package/dist/lexicon/types/tools/ozone/verification/listVerifications.js.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.d.ts +1 -1
- package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.d.ts.map +1 -1
- package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js +5 -9
- package/dist/lexicon/types/tools/ozone/verification/revokeVerifications.js.map +1 -1
- package/dist/lexicon/util.js +3 -8
- package/dist/lexicon/util.js.map +1 -1
- package/dist/logger.js +11 -14
- package/dist/logger.js.map +1 -1
- package/dist/mod-service/expiring-tags.d.ts +2 -2
- package/dist/mod-service/expiring-tags.d.ts.map +1 -1
- package/dist/mod-service/expiring-tags.js +4 -10
- package/dist/mod-service/expiring-tags.js.map +1 -1
- package/dist/mod-service/index.d.ts +15 -15
- package/dist/mod-service/index.d.ts.map +1 -1
- package/dist/mod-service/index.js +126 -190
- package/dist/mod-service/index.js.map +1 -1
- package/dist/mod-service/profile.d.ts +1 -1
- package/dist/mod-service/profile.d.ts.map +1 -1
- package/dist/mod-service/profile.js +53 -78
- package/dist/mod-service/profile.js.map +1 -1
- package/dist/mod-service/report.d.ts +3 -3
- package/dist/mod-service/report.d.ts.map +1 -1
- package/dist/mod-service/report.js +22 -29
- package/dist/mod-service/report.js.map +1 -1
- package/dist/mod-service/status.d.ts +117 -117
- package/dist/mod-service/status.d.ts.map +1 -1
- package/dist/mod-service/status.js +30 -36
- package/dist/mod-service/status.js.map +1 -1
- package/dist/mod-service/strike.d.ts +1 -1
- package/dist/mod-service/strike.d.ts.map +1 -1
- package/dist/mod-service/strike.js +2 -11
- package/dist/mod-service/strike.js.map +1 -1
- package/dist/mod-service/subject.d.ts +7 -7
- package/dist/mod-service/subject.d.ts.map +1 -1
- package/dist/mod-service/subject.js +30 -145
- package/dist/mod-service/subject.js.map +1 -1
- package/dist/mod-service/types.d.ts +4 -4
- package/dist/mod-service/types.d.ts.map +1 -1
- package/dist/mod-service/types.js +1 -2
- package/dist/mod-service/types.js.map +1 -1
- package/dist/mod-service/util.d.ts +3 -3
- package/dist/mod-service/util.d.ts.map +1 -1
- package/dist/mod-service/util.js +18 -31
- package/dist/mod-service/util.js.map +1 -1
- package/dist/mod-service/views.d.ts +10 -10
- package/dist/mod-service/views.d.ts.map +1 -1
- package/dist/mod-service/views.js +76 -116
- package/dist/mod-service/views.js.map +1 -1
- package/dist/queue/service.d.ts +2 -2
- package/dist/queue/service.d.ts.map +1 -1
- package/dist/queue/service.js +23 -33
- package/dist/queue/service.js.map +1 -1
- package/dist/report/activity.d.ts +3 -3
- package/dist/report/activity.d.ts.map +1 -1
- package/dist/report/activity.js +12 -18
- package/dist/report/activity.js.map +1 -1
- package/dist/report/handle-report-update.js +9 -35
- package/dist/report/handle-report-update.js.map +1 -1
- package/dist/report/reassign.d.ts +2 -2
- package/dist/report/reassign.d.ts.map +1 -1
- package/dist/report/reassign.js +7 -10
- package/dist/report/reassign.js.map +1 -1
- package/dist/report/stats.d.ts +2 -2
- package/dist/report/stats.d.ts.map +1 -1
- package/dist/report/stats.js +41 -50
- package/dist/report/stats.js.map +1 -1
- package/dist/report/views.d.ts +20 -17
- package/dist/report/views.d.ts.map +1 -1
- package/dist/report/views.js +8 -15
- package/dist/report/views.js.map +1 -1
- package/dist/safelink/service.d.ts +3 -3
- package/dist/safelink/service.d.ts.map +1 -1
- package/dist/safelink/service.js +6 -15
- package/dist/safelink/service.js.map +1 -1
- package/dist/scheduled-action/service.d.ts +5 -5
- package/dist/scheduled-action/service.d.ts.map +1 -1
- package/dist/scheduled-action/service.js +7 -16
- package/dist/scheduled-action/service.js.map +1 -1
- package/dist/scheduled-action/types.d.ts +1 -1
- package/dist/scheduled-action/types.d.ts.map +1 -1
- package/dist/scheduled-action/types.js +1 -2
- package/dist/scheduled-action/types.js.map +1 -1
- package/dist/sequencer/index.d.ts +2 -2
- package/dist/sequencer/index.d.ts.map +1 -1
- package/dist/sequencer/index.js +2 -18
- package/dist/sequencer/index.js.map +1 -1
- package/dist/sequencer/outbox.d.ts +1 -1
- package/dist/sequencer/outbox.d.ts.map +1 -1
- package/dist/sequencer/outbox.js +9 -40
- package/dist/sequencer/outbox.js.map +1 -1
- package/dist/sequencer/sequencer.d.ts +9 -8
- package/dist/sequencer/sequencer.d.ts.map +1 -1
- package/dist/sequencer/sequencer.js +11 -56
- package/dist/sequencer/sequencer.js.map +1 -1
- package/dist/set/service.d.ts +4 -4
- package/dist/set/service.d.ts.map +1 -1
- package/dist/set/service.js +5 -14
- package/dist/set/service.js.map +1 -1
- package/dist/setting/constants.js +3 -6
- package/dist/setting/constants.js.map +1 -1
- package/dist/setting/service.d.ts +4 -4
- package/dist/setting/service.d.ts.map +1 -1
- package/dist/setting/service.js +6 -18
- package/dist/setting/service.js.map +1 -1
- package/dist/setting/types.js +1 -2
- package/dist/setting/validators.d.ts +1 -1
- package/dist/setting/validators.d.ts.map +1 -1
- package/dist/setting/validators.js +33 -36
- package/dist/setting/validators.js.map +1 -1
- package/dist/tag-service/content-tagger.d.ts +3 -3
- package/dist/tag-service/content-tagger.d.ts.map +1 -1
- package/dist/tag-service/content-tagger.js +4 -23
- package/dist/tag-service/content-tagger.js.map +1 -1
- package/dist/tag-service/embed-tagger.d.ts +1 -1
- package/dist/tag-service/embed-tagger.d.ts.map +1 -1
- package/dist/tag-service/embed-tagger.js +13 -22
- package/dist/tag-service/embed-tagger.js.map +1 -1
- package/dist/tag-service/index.d.ts +3 -3
- package/dist/tag-service/index.d.ts.map +1 -1
- package/dist/tag-service/index.js +12 -42
- package/dist/tag-service/index.js.map +1 -1
- package/dist/tag-service/language-data.js +4 -8
- package/dist/tag-service/language-data.js.map +1 -1
- package/dist/tag-service/language-tagger.d.ts +1 -1
- package/dist/tag-service/language-tagger.d.ts.map +1 -1
- package/dist/tag-service/language-tagger.js +13 -56
- package/dist/tag-service/language-tagger.js.map +1 -1
- package/dist/tag-service/util.d.ts +1 -1
- package/dist/tag-service/util.d.ts.map +1 -1
- package/dist/tag-service/util.js +1 -5
- package/dist/tag-service/util.js.map +1 -1
- package/dist/team/index.d.ts +5 -5
- package/dist/team/index.d.ts.map +1 -1
- package/dist/team/index.js +13 -37
- package/dist/team/index.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +19 -32
- package/dist/util.js.map +1 -1
- package/dist/verification/issuer.d.ts +2 -2
- package/dist/verification/issuer.d.ts.map +1 -1
- package/dist/verification/issuer.js +6 -25
- package/dist/verification/issuer.js.map +1 -1
- package/dist/verification/service.d.ts +2 -2
- package/dist/verification/service.d.ts.map +1 -1
- package/dist/verification/service.js +7 -16
- package/dist/verification/service.js.map +1 -1
- package/dist/verification/util.d.ts +3 -3
- package/dist/verification/util.d.ts.map +1 -1
- package/dist/verification/util.js +4 -8
- package/dist/verification/util.js.map +1 -1
- package/jest.config.cjs +22 -0
- package/package.json +28 -22
- package/src/api/chat/getActorMetadata.ts +3 -3
- package/src/api/chat/getMessageContext.ts +3 -3
- package/src/api/chat/index.ts +4 -4
- package/src/api/communication/createTemplate.ts +3 -3
- package/src/api/communication/deleteTemplate.ts +2 -2
- package/src/api/communication/listTemplates.ts +2 -2
- package/src/api/communication/updateTemplate.ts +3 -3
- package/src/api/health.ts +1 -1
- package/src/api/index.ts +71 -71
- package/src/api/label/fetchLabels.ts +2 -2
- package/src/api/label/queryLabels.ts +2 -2
- package/src/api/label/subscribeLabels.ts +3 -3
- package/src/api/moderation/cancelScheduledActions.ts +4 -4
- package/src/api/moderation/emitEvent.ts +16 -16
- package/src/api/moderation/getAccountTimeline.ts +4 -4
- package/src/api/moderation/getEvent.ts +2 -2
- package/src/api/moderation/getRecord.ts +3 -3
- package/src/api/moderation/getRecords.ts +3 -3
- package/src/api/moderation/getRepo.ts +3 -3
- package/src/api/moderation/getReporterStats.ts +2 -2
- package/src/api/moderation/getRepos.ts +3 -3
- package/src/api/moderation/getSubjects.ts +4 -4
- package/src/api/moderation/listScheduledActions.ts +3 -3
- package/src/api/moderation/queryEvents.ts +3 -3
- package/src/api/moderation/queryStatuses.ts +2 -2
- package/src/api/moderation/scheduleAction.ts +6 -6
- package/src/api/moderation/searchRepos.ts +3 -3
- package/src/api/moderation/util.ts +3 -3
- package/src/api/proxied.ts +3 -3
- package/src/api/queue/assignModerator.ts +3 -3
- package/src/api/queue/createQueue.ts +2 -2
- package/src/api/queue/deleteQueue.ts +2 -2
- package/src/api/queue/getAssignments.ts +2 -2
- package/src/api/queue/listQueues.ts +2 -2
- package/src/api/queue/routeReports.ts +2 -2
- package/src/api/queue/unassignModerator.ts +3 -3
- package/src/api/queue/updateQueue.ts +2 -2
- package/src/api/report/assignModerator.ts +3 -3
- package/src/api/report/createActivity.ts +4 -4
- package/src/api/report/createReport.ts +8 -8
- package/src/api/report/getAssignments.ts +2 -2
- package/src/api/report/getHistoricalStats.ts +3 -3
- package/src/api/report/getLatestReport.ts +5 -5
- package/src/api/report/getLiveStats.ts +3 -3
- package/src/api/report/getReport.ts +5 -5
- package/src/api/report/listActivities.ts +6 -3
- package/src/api/report/queryReports.ts +5 -5
- package/src/api/report/reassignQueue.ts +6 -6
- package/src/api/report/refreshStats.ts +2 -2
- package/src/api/report/unassignModerator.ts +3 -3
- package/src/api/safelink/addRule.ts +3 -3
- package/src/api/safelink/queryEvents.ts +3 -3
- package/src/api/safelink/queryRules.ts +3 -3
- package/src/api/safelink/removeRule.ts +3 -3
- package/src/api/safelink/updateRule.ts +3 -3
- package/src/api/server/getConfig.ts +2 -2
- package/src/api/set/addValues.ts +2 -2
- package/src/api/set/deleteSet.ts +2 -2
- package/src/api/set/deleteValues.ts +2 -2
- package/src/api/set/getValues.ts +2 -2
- package/src/api/set/querySets.ts +2 -2
- package/src/api/set/upsertSet.ts +2 -2
- package/src/api/setting/listOptions.ts +2 -2
- package/src/api/setting/removeOptions.ts +3 -3
- package/src/api/setting/upsertOption.ts +6 -6
- package/src/api/team/addMember.ts +3 -3
- package/src/api/team/deleteMember.ts +2 -2
- package/src/api/team/listMembers.ts +2 -2
- package/src/api/team/updateMember.ts +3 -3
- package/src/api/util.ts +10 -10
- package/src/api/verification/grantVerifications.ts +4 -4
- package/src/api/verification/listVerifications.ts +3 -3
- package/src/api/verification/revokeVerifications.ts +2 -2
- package/src/api/well-known.ts +1 -1
- package/src/assignment/index.ts +9 -9
- package/src/auth-verifier.ts +1 -1
- package/src/background.ts +9 -5
- package/src/communication-service/template.ts +3 -3
- package/src/config/config.ts +1 -1
- package/src/config/index.ts +3 -3
- package/src/config/secrets.ts +1 -1
- package/src/context.ts +29 -23
- package/src/daemon/blob-diverter.ts +3 -3
- package/src/daemon/context.ts +20 -20
- package/src/daemon/event-pusher.ts +7 -7
- package/src/daemon/event-reverser.ts +8 -5
- package/src/daemon/index.ts +8 -8
- package/src/daemon/job-cursor.ts +1 -1
- package/src/daemon/materialized-view-refresher.ts +2 -2
- package/src/daemon/queue-router.ts +4 -4
- package/src/daemon/scheduled-action-processor.ts +14 -11
- package/src/daemon/stats-computer.ts +3 -3
- package/src/daemon/strike-expiry-processor.ts +4 -4
- package/src/daemon/team-profile-synchronizer.ts +2 -2
- package/src/daemon/verification-listener.ts +5 -5
- package/src/db/index.ts +13 -9
- package/src/db/migrations/20241220T144630860Z-stats-materialized-views.ts +6 -6
- package/src/db/migrations/20250718T150931000Z-update-appeal-reason-stats.ts +5 -5
- package/src/db/migrations/index.ts +38 -38
- package/src/db/pagination.ts +1 -1
- package/src/db/schema/index.ts +27 -27
- package/src/db/schema/moderation_subject_status.ts +1 -1
- package/src/db/schema/safelink.ts +1 -1
- package/src/db/schema/setting.ts +1 -1
- package/src/db/types.ts +3 -1
- package/src/error.ts +1 -1
- package/src/index.ts +19 -15
- package/src/jetstream/service.ts +1 -0
- package/src/lexicon/index.ts +6 -6
- package/src/lexicon/lexicons.ts +638 -14
- package/src/lexicon/types/app/bsky/actor/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/getPreferences.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/getProfile.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/getProfiles.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/getSuggestions.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/profile.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/putPreferences.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/searchActors.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/searchActorsTypeahead.ts +2 -2
- package/src/lexicon/types/app/bsky/actor/status.ts +2 -2
- package/src/lexicon/types/app/bsky/ageassurance/begin.ts +2 -2
- package/src/lexicon/types/app/bsky/ageassurance/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/ageassurance/getConfig.ts +2 -2
- package/src/lexicon/types/app/bsky/ageassurance/getState.ts +2 -2
- package/src/lexicon/types/app/bsky/bookmark/createBookmark.ts +2 -2
- package/src/lexicon/types/app/bsky/bookmark/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/bookmark/deleteBookmark.ts +2 -2
- package/src/lexicon/types/app/bsky/bookmark/getBookmarks.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/dismissMatch.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/getMatches.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/getSyncStatus.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/importContacts.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/removeData.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/sendNotification.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/startPhoneVerification.ts +2 -2
- package/src/lexicon/types/app/bsky/contact/verifyPhone.ts +2 -2
- package/src/lexicon/types/app/bsky/draft/createDraft.ts +2 -2
- package/src/lexicon/types/app/bsky/draft/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/draft/deleteDraft.ts +2 -2
- package/src/lexicon/types/app/bsky/draft/getDrafts.ts +2 -2
- package/src/lexicon/types/app/bsky/draft/updateDraft.ts +2 -2
- package/src/lexicon/types/app/bsky/embed/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/embed/external.ts +4 -3
- package/src/lexicon/types/app/bsky/embed/images.ts +2 -2
- package/src/lexicon/types/app/bsky/embed/record.ts +2 -2
- package/src/lexicon/types/app/bsky/embed/recordWithMedia.ts +2 -2
- package/src/lexicon/types/app/bsky/embed/video.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/describeFeedGenerator.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/generator.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getActorFeeds.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getActorLikes.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getAuthorFeed.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getFeed.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getFeedGenerator.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getFeedGenerators.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getFeedSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getLikes.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getListFeed.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getPostThread.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getPosts.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getQuotes.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getRepostedBy.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getSuggestedFeeds.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/getTimeline.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/like.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/post.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/postgate.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/repost.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/searchPosts.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/sendInteractions.ts +2 -2
- package/src/lexicon/types/app/bsky/feed/threadgate.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/block.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/follow.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getActorStarterPacks.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getBlocks.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getFollowers.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getFollows.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getKnownFollowers.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getList.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getListBlocks.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getListMutes.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getLists.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getListsWithMembership.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getMutes.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getRelationships.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getStarterPack.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getStarterPacks.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getStarterPacksWithMembership.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/getSuggestedFollowsByActor.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/list.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/listblock.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/listitem.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/muteActor.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/muteActorList.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/muteThread.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/searchStarterPacks.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/starterpack.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/unmuteActor.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/unmuteActorList.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/unmuteThread.ts +2 -2
- package/src/lexicon/types/app/bsky/graph/verification.ts +2 -2
- package/src/lexicon/types/app/bsky/labeler/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/labeler/getServices.ts +2 -2
- package/src/lexicon/types/app/bsky/labeler/service.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/declaration.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/getPreferences.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/getUnreadCount.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/listActivitySubscriptions.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/listNotifications.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/putActivitySubscription.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/putPreferences.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/putPreferencesV2.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/registerPush.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/unregisterPush.ts +2 -2
- package/src/lexicon/types/app/bsky/notification/updateSeen.ts +2 -2
- package/src/lexicon/types/app/bsky/richtext/facet.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getAgeAssuranceState.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getConfig.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacks.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedStarterPacksSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getOnboardingSuggestedUsersSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getPostThreadOtherV2.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getPostThreadV2.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeeds.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedFeedsSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedOnboardingUsers.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacks.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedStarterPacksSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsers.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscover.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForDiscoverSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExplore.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForExploreSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMore.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersForSeeMoreSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestedUsersSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getTaggedSuggestions.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getTrendingTopics.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getTrends.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/getTrendsSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/initAgeAssurance.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/unspecced/searchStarterPacksSkeleton.ts +2 -2
- package/src/lexicon/types/app/bsky/video/defs.ts +2 -2
- package/src/lexicon/types/app/bsky/video/getJobStatus.ts +2 -2
- package/src/lexicon/types/app/bsky/video/getUploadLimits.ts +2 -2
- package/src/lexicon/types/app/bsky/video/uploadVideo.ts +2 -2
- package/src/lexicon/types/chat/bsky/actor/declaration.ts +2 -2
- package/src/lexicon/types/chat/bsky/actor/defs.ts +2 -2
- package/src/lexicon/types/chat/bsky/actor/deleteAccount.ts +2 -2
- package/src/lexicon/types/chat/bsky/actor/exportAccountData.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/acceptConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/addReaction.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/defs.ts +19 -3
- package/src/lexicon/types/chat/bsky/convo/deleteMessageForSelf.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getConvoAvailability.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getConvoForMembers.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getConvoMembers.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getLog.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/getMessages.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/leaveConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/listConvoRequests.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/listConvos.ts +4 -2
- package/src/lexicon/types/chat/bsky/convo/lockConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/muteConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/removeReaction.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/sendMessage.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/sendMessageBatch.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/unlockConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/unmuteConvo.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/updateAllRead.ts +2 -2
- package/src/lexicon/types/chat/bsky/convo/updateRead.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/addMembers.ts +3 -3
- package/src/lexicon/types/chat/bsky/group/approveJoinRequest.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/createGroup.ts +3 -3
- package/src/lexicon/types/chat/bsky/group/createJoinLink.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/defs.ts +11 -9
- package/src/lexicon/types/chat/bsky/group/disableJoinLink.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/editGroup.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/editJoinLink.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/enableJoinLink.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/{getGroupPublicInfo.ts → getJoinLinkPreview.ts} +4 -4
- package/src/lexicon/types/chat/bsky/group/listJoinRequests.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/rejectJoinRequest.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/removeMembers.ts +2 -2
- package/src/lexicon/types/chat/bsky/group/requestJoin.ts +2 -2
- package/src/lexicon/types/chat/bsky/moderation/getActorMetadata.ts +2 -2
- package/src/lexicon/types/chat/bsky/moderation/getMessageContext.ts +6 -3
- package/src/lexicon/types/chat/bsky/moderation/subscribeModEvents.ts +342 -3
- package/src/lexicon/types/chat/bsky/moderation/updateActorAccess.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/deleteAccount.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/disableAccountInvites.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/disableInviteCodes.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/enableAccountInvites.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/getAccountInfo.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/getAccountInfos.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/getInviteCodes.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/getSubjectStatus.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/searchAccounts.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/sendEmail.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/updateAccountEmail.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/updateAccountHandle.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/updateAccountPassword.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/updateAccountSigningKey.ts +2 -2
- package/src/lexicon/types/com/atproto/admin/updateSubjectStatus.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/getRecommendedDidCredentials.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/refreshIdentity.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/requestPlcOperationSignature.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/resolveDid.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/resolveHandle.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/resolveIdentity.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/signPlcOperation.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/submitPlcOperation.ts +2 -2
- package/src/lexicon/types/com/atproto/identity/updateHandle.ts +2 -2
- package/src/lexicon/types/com/atproto/label/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/label/queryLabels.ts +2 -2
- package/src/lexicon/types/com/atproto/label/subscribeLabels.ts +2 -2
- package/src/lexicon/types/com/atproto/lexicon/resolveLexicon.ts +2 -2
- package/src/lexicon/types/com/atproto/lexicon/schema.ts +2 -2
- package/src/lexicon/types/com/atproto/moderation/createReport.ts +2 -2
- package/src/lexicon/types/com/atproto/moderation/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/applyWrites.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/createRecord.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/describeRepo.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/getRecord.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/importRepo.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/listMissingBlobs.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/listRecords.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/putRecord.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/strongRef.ts +2 -2
- package/src/lexicon/types/com/atproto/repo/uploadBlob.ts +2 -2
- package/src/lexicon/types/com/atproto/server/activateAccount.ts +2 -2
- package/src/lexicon/types/com/atproto/server/checkAccountStatus.ts +2 -2
- package/src/lexicon/types/com/atproto/server/confirmEmail.ts +2 -2
- package/src/lexicon/types/com/atproto/server/createAccount.ts +2 -2
- package/src/lexicon/types/com/atproto/server/createAppPassword.ts +2 -2
- package/src/lexicon/types/com/atproto/server/createInviteCode.ts +2 -2
- package/src/lexicon/types/com/atproto/server/createInviteCodes.ts +2 -2
- package/src/lexicon/types/com/atproto/server/createSession.ts +2 -2
- package/src/lexicon/types/com/atproto/server/deactivateAccount.ts +2 -2
- package/src/lexicon/types/com/atproto/server/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/server/deleteAccount.ts +2 -2
- package/src/lexicon/types/com/atproto/server/deleteSession.ts +2 -2
- package/src/lexicon/types/com/atproto/server/describeServer.ts +2 -2
- package/src/lexicon/types/com/atproto/server/getAccountInviteCodes.ts +2 -2
- package/src/lexicon/types/com/atproto/server/getServiceAuth.ts +2 -2
- package/src/lexicon/types/com/atproto/server/getSession.ts +2 -2
- package/src/lexicon/types/com/atproto/server/listAppPasswords.ts +2 -2
- package/src/lexicon/types/com/atproto/server/refreshSession.ts +2 -2
- package/src/lexicon/types/com/atproto/server/requestAccountDelete.ts +2 -2
- package/src/lexicon/types/com/atproto/server/requestEmailConfirmation.ts +2 -2
- package/src/lexicon/types/com/atproto/server/requestEmailUpdate.ts +2 -2
- package/src/lexicon/types/com/atproto/server/requestPasswordReset.ts +2 -2
- package/src/lexicon/types/com/atproto/server/reserveSigningKey.ts +2 -2
- package/src/lexicon/types/com/atproto/server/resetPassword.ts +2 -2
- package/src/lexicon/types/com/atproto/server/revokeAppPassword.ts +2 -2
- package/src/lexicon/types/com/atproto/server/updateEmail.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/defs.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getBlob.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getBlocks.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getCheckout.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getHead.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getHostStatus.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getLatestCommit.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getRecord.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getRepo.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/getRepoStatus.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/listBlobs.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/listHosts.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/listRepos.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/listReposByCollection.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/notifyOfUpdate.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/requestCrawl.ts +2 -2
- package/src/lexicon/types/com/atproto/sync/subscribeRepos.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/addReservedHandle.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/checkHandleAvailability.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/checkSignupQueue.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/dereferenceScope.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/fetchLabels.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/requestPhoneVerification.ts +2 -2
- package/src/lexicon/types/com/atproto/temp/revokeAccountCredentials.ts +2 -2
- package/src/lexicon/types/tools/ozone/communication/createTemplate.ts +2 -2
- package/src/lexicon/types/tools/ozone/communication/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/communication/deleteTemplate.ts +2 -2
- package/src/lexicon/types/tools/ozone/communication/listTemplates.ts +2 -2
- package/src/lexicon/types/tools/ozone/communication/updateTemplate.ts +2 -2
- package/src/lexicon/types/tools/ozone/hosting/getAccountHistory.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/cancelScheduledActions.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getAccountTimeline.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getEvent.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getRecord.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getRecords.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getRepo.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getReporterStats.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getRepos.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/getSubjects.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/listScheduledActions.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/queryEvents.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/scheduleAction.ts +2 -2
- package/src/lexicon/types/tools/ozone/moderation/searchRepos.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/assignModerator.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/createQueue.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/deleteQueue.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/getAssignments.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/listQueues.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/routeReports.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/unassignModerator.ts +2 -2
- package/src/lexicon/types/tools/ozone/queue/updateQueue.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/assignModerator.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/createActivity.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/getAssignments.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/getHistoricalStats.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/getLatestReport.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/getLiveStats.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/getReport.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/listActivities.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/queryReports.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/reassignQueue.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/refreshStats.ts +2 -2
- package/src/lexicon/types/tools/ozone/report/unassignModerator.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/addRule.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/queryEvents.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/queryRules.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/removeRule.ts +2 -2
- package/src/lexicon/types/tools/ozone/safelink/updateRule.ts +2 -2
- package/src/lexicon/types/tools/ozone/server/getConfig.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/addValues.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/deleteSet.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/deleteValues.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/getValues.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/querySets.ts +2 -2
- package/src/lexicon/types/tools/ozone/set/upsertSet.ts +2 -2
- package/src/lexicon/types/tools/ozone/setting/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/setting/listOptions.ts +2 -2
- package/src/lexicon/types/tools/ozone/setting/removeOptions.ts +2 -2
- package/src/lexicon/types/tools/ozone/setting/upsertOption.ts +2 -2
- package/src/lexicon/types/tools/ozone/signature/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/signature/findCorrelation.ts +2 -2
- package/src/lexicon/types/tools/ozone/signature/findRelatedAccounts.ts +2 -2
- package/src/lexicon/types/tools/ozone/signature/searchAccounts.ts +2 -2
- package/src/lexicon/types/tools/ozone/team/addMember.ts +2 -2
- package/src/lexicon/types/tools/ozone/team/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/team/deleteMember.ts +2 -2
- package/src/lexicon/types/tools/ozone/team/listMembers.ts +2 -2
- package/src/lexicon/types/tools/ozone/team/updateMember.ts +2 -2
- package/src/lexicon/types/tools/ozone/verification/defs.ts +2 -2
- package/src/lexicon/types/tools/ozone/verification/grantVerifications.ts +2 -2
- package/src/lexicon/types/tools/ozone/verification/listVerifications.ts +2 -2
- package/src/lexicon/types/tools/ozone/verification/revokeVerifications.ts +2 -2
- package/src/mod-service/expiring-tags.ts +2 -2
- package/src/mod-service/index.ts +30 -27
- package/src/mod-service/profile.ts +3 -3
- package/src/mod-service/report.ts +4 -4
- package/src/mod-service/status.ts +6 -6
- package/src/mod-service/strike.ts +1 -1
- package/src/mod-service/subject.ts +7 -7
- package/src/mod-service/types.ts +4 -4
- package/src/mod-service/util.ts +3 -3
- package/src/mod-service/views.ts +16 -16
- package/src/queue/service.ts +7 -7
- package/src/report/activity.ts +3 -3
- package/src/report/reassign.ts +2 -2
- package/src/report/stats.ts +5 -5
- package/src/report/views.ts +11 -13
- package/src/safelink/service.ts +3 -3
- package/src/scheduled-action/service.ts +6 -6
- package/src/scheduled-action/types.ts +1 -1
- package/src/sequencer/index.ts +2 -2
- package/src/sequencer/outbox.ts +1 -1
- package/src/sequencer/sequencer.ts +11 -9
- package/src/set/service.ts +4 -4
- package/src/setting/service.ts +4 -4
- package/src/setting/validators.ts +2 -2
- package/src/tag-service/content-tagger.ts +3 -3
- package/src/tag-service/embed-tagger.ts +3 -3
- package/src/tag-service/index.ts +7 -7
- package/src/tag-service/language-tagger.ts +4 -5
- package/src/tag-service/util.ts +1 -1
- package/src/team/index.ts +7 -7
- package/src/util.ts +1 -1
- package/src/verification/issuer.ts +2 -2
- package/src/verification/service.ts +3 -3
- package/src/verification/util.ts +7 -4
- package/tests/3p-labeler.test.ts +2 -2
- package/tests/__snapshots__/account-strikes.test.ts.snap +36 -36
- package/tests/__snapshots__/age-assurance.test.ts.snap +13 -13
- package/tests/__snapshots__/blob-divert.test.ts.snap +52 -52
- package/tests/__snapshots__/get-account-timeline.test.ts.snap +8 -8
- package/tests/__snapshots__/get-record.test.ts.snap +68 -68
- package/tests/__snapshots__/get-records.test.ts.snap +46 -46
- package/tests/__snapshots__/get-repo.test.ts.snap +22 -22
- package/tests/__snapshots__/get-repos.test.ts.snap +33 -33
- package/tests/__snapshots__/get-starter-pack.test.ts.snap +141 -141
- package/tests/__snapshots__/get-subjects.test.ts.snap +108 -108
- package/tests/__snapshots__/moderation-events.test.ts.snap +79 -79
- package/tests/__snapshots__/moderation-statuses.test.ts.snap +45 -45
- package/tests/__snapshots__/moderation.test.ts.snap +16 -16
- package/tests/__snapshots__/report-reason.test.ts.snap +3 -3
- package/tests/__snapshots__/safelink.test.ts.snap +19 -19
- package/tests/__snapshots__/scheduled-action.test.ts.snap +11 -11
- package/tests/__snapshots__/sets.test.ts.snap +7 -7
- package/tests/__snapshots__/settings.test.ts.snap +10 -10
- package/tests/__snapshots__/team.test.ts.snap +64 -64
- package/tests/__snapshots__/verification-listener.test.ts.snap +35 -35
- package/tests/__snapshots__/verification.test.ts.snap +71 -71
- package/tests/_util.ts +3 -3
- package/tests/account-strikes.test.ts +3 -3
- package/tests/ack-all-subjects-of-account.test.ts +3 -3
- package/tests/age-assurance.test.ts +1 -1
- package/tests/blob-divert.test.ts +2 -1
- package/tests/communication-templates.test.ts +1 -1
- package/tests/content-tagger.test.ts +2 -2
- package/tests/db.test.ts +1 -1
- package/tests/expiring-label.test.ts +1 -1
- package/tests/expiring-tags.test.ts +2 -2
- package/tests/get-account-timeline.test.ts +3 -3
- package/tests/get-config.test.ts +2 -2
- package/tests/get-lists.test.ts +2 -2
- package/tests/get-record.test.ts +3 -3
- package/tests/get-records.test.ts +3 -3
- package/tests/get-repo.test.ts +3 -3
- package/tests/get-report.test.ts +2 -2
- package/tests/get-repos.test.ts +3 -3
- package/tests/get-starter-pack.test.ts +3 -3
- package/tests/get-subjects.test.ts +3 -3
- package/tests/moderation-appeals.test.ts +2 -2
- package/tests/moderation-events.test.ts +4 -4
- package/tests/moderation-status-tags.test.ts +1 -1
- package/tests/moderation-statuses.test.ts +5 -5
- package/tests/moderation.test.ts +7 -7
- package/tests/protected-tags.test.ts +2 -2
- package/tests/query-labels.test.ts +5 -5
- package/tests/query-reports.test.ts +2 -2
- package/tests/queue-assignment.test.ts +1 -1
- package/tests/queue-router.test.ts +1 -1
- package/tests/queues.test.ts +1 -1
- package/tests/record-and-account-events.test.ts +5 -5
- package/tests/repo-search.test.ts +3 -3
- package/tests/report-action.test.ts +1 -1
- package/tests/report-activity.test.ts +2 -2
- package/tests/report-assignment.test.ts +1 -1
- package/tests/report-muting.test.ts +1 -1
- package/tests/report-reason.test.ts +3 -3
- package/tests/report-reassign-queue.test.ts +2 -2
- package/tests/report-routing.test.ts +1 -1
- package/tests/report-stats.test.ts +2 -2
- package/tests/safelink.test.ts +2 -2
- package/tests/scheduled-action-processor.test.ts +3 -3
- package/tests/scheduled-action.test.ts +2 -2
- package/tests/sequencer.test.ts +3 -3
- package/tests/server.test.ts +2 -2
- package/tests/sets.test.ts +2 -2
- package/tests/settings.test.ts +3 -3
- package/tests/strike-expiry-processor.test.ts +2 -2
- package/tests/subject-priority-score.test.ts +1 -1
- package/tests/team.test.ts +1 -1
- package/tests/verification-listener.test.ts +1 -1
- package/tests/verification.test.ts +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.d.ts.map +0 -1
- package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.js +0 -7
- package/dist/lexicon/types/chat/bsky/group/getGroupPublicInfo.js.map +0 -1
- package/jest.config.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduled-action-processor.js","sourceRoot":"","sources":["../../src/daemon/scheduled-action-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Selectable } from 'kysely'\nimport { MINUTE, SECOND } from '@atproto/common'\nimport {\n assertProtectedTagAction,\n getProtectedTags,\n} from '../api/moderation/util'\nimport { Database } from '../db'\nimport { ScheduledAction } from '../db/schema/scheduled-action'\nimport {\n ModEventTakedown,\n ModTool,\n} from '../lexicon/types/tools/ozone/moderation/defs'\nimport { dbLogger } from '../logger'\nimport { ModerationService, ModerationServiceCreator } from '../mod-service'\nimport { RepoSubject } from '../mod-service/subject'\nimport { ModEventType } from '../mod-service/types'\nimport { ScheduledActionServiceCreator } from '../scheduled-action/service'\nimport { SettingService, SettingServiceCreator } from '../setting/service'\nimport { retryHttp } from '../util'\n\nexport class ScheduledActionProcessor {\n destroyed = false\n processingPromise: Promise<void> = Promise.resolve()\n timer?: NodeJS.Timeout\n\n constructor(\n private db: Database,\n private serviceDid: string,\n private settingService: SettingServiceCreator,\n private modService: ModerationServiceCreator,\n private scheduledActionService: ScheduledActionServiceCreator,\n ) {}\n\n start() {\n this.poll()\n }\n\n poll() {\n if (this.destroyed) return\n this.processingPromise = this.findAndExecuteScheduledActions()\n .catch((err) =>\n dbLogger.error({ err }, 'scheduled action processing errored'),\n )\n .finally(() => {\n this.timer = setTimeout(() => this.poll(), getInterval())\n })\n }\n\n async destroy() {\n this.destroyed = true\n if (this.timer) {\n clearTimeout(this.timer)\n this.timer = undefined\n }\n await this.processingPromise\n }\n\n async executeScheduledAction(actionId: number) {\n await this.db.transaction(async (dbTxn) => {\n const settingService = this.settingService(dbTxn)\n const moderationTxn = this.modService(dbTxn)\n const scheduledActionTxn = this.scheduledActionService(dbTxn)\n\n try {\n // maybe overfetching here to get the action again within the transaction to ensure it's still pending\n const action = await dbTxn.db\n .selectFrom('scheduled_action')\n .selectAll()\n .where('id', '=', actionId)\n .where('status', '=', 'pending')\n .executeTakeFirst()\n\n if (!action) {\n // already processed or cancelled\n return\n }\n\n let event: ModEventType\n const email = {\n subject: '',\n content: '',\n }\n let modTool: ModTool | undefined\n\n // Create the appropriate moderation action based on the scheduled action type\n switch (action.action) {\n case 'takedown':\n {\n const eventData = action.eventData as ModEventTakedown & {\n modTool?: ModTool\n emailSubject?: string\n emailContent?: string\n }\n modTool = eventData.modTool\n event = {\n $type: 'tools.ozone.moderation.defs#modEventTakedown',\n comment: `[SCHEDULED_ACTION] ${eventData.comment || 'Scheduled takedown executed'}`,\n durationInHours: eventData.durationInHours,\n acknowledgeAccountSubjects:\n eventData.acknowledgeAccountSubjects,\n policies: eventData.policies,\n severityLevel: eventData.severityLevel,\n strikeCount: eventData.strikeCount,\n }\n\n if (eventData.emailSubject && eventData.emailContent) {\n email.subject = eventData.emailSubject\n email.content = eventData.emailContent\n }\n }\n break\n default:\n throw new Error(\n `Unsupported scheduled action type: ${action.action}`,\n )\n }\n\n const moderationEvent = await this.performTakedown({\n action,\n event,\n modTool,\n moderationTxn,\n settingService,\n email,\n })\n\n // Mark the scheduled action as executed\n await scheduledActionTxn.markActionAsExecuted(\n actionId,\n moderationEvent.event.id,\n )\n\n dbLogger.info(\n {\n did: action.did,\n scheduledActionId: actionId,\n moderationEventId: moderationEvent.event.id,\n },\n 'executed scheduled action',\n )\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Unknown error'\n\n // mark as failed\n await scheduledActionTxn.markActionAsFailed(actionId, errorMessage)\n\n dbLogger.error(\n {\n scheduledActionId: actionId,\n error: errorMessage,\n },\n 'failed to execute scheduled action',\n )\n }\n })\n }\n\n async performTakedown({\n email,\n action,\n event,\n modTool,\n moderationTxn,\n settingService,\n }: {\n email: { subject: string; content: string }\n action: Selectable<ScheduledAction>\n event: ModEventType\n modTool: ModTool | undefined\n\n moderationTxn: ModerationService\n settingService: SettingService\n }) {\n const subject = new RepoSubject(action.did)\n\n const status = await moderationTxn.getStatus(subject)\n\n if (status?.takendown) {\n throw new Error(`Account is already taken down`)\n }\n\n if (status?.tags?.length) {\n const protectedTags = await getProtectedTags(\n settingService,\n this.serviceDid,\n )\n\n if (protectedTags) {\n assertProtectedTagAction({\n protectedTags,\n subjectTags: status.tags,\n actionAuthor: action.createdBy,\n isAdmin: true,\n isModerator: false,\n isTriage: false,\n })\n }\n }\n\n // log the event which also applies the necessary state changes to moderation subject\n const moderationEvent = await moderationTxn.logEvent({\n event,\n subject,\n modTool,\n createdBy: action.createdBy,\n })\n\n // register the takedown in event pusher\n await moderationTxn.takedownRepo(\n subject,\n moderationEvent.event.id,\n new Set(\n moderationEvent.event.meta?.targetServices\n ? `${moderationEvent.event.meta.targetServices}`.split(',')\n : undefined,\n ),\n )\n\n if (email.content && email.subject) {\n let isDelivered = false\n try {\n await retryHttp(() =>\n moderationTxn.sendEmail({\n ...email,\n recipientDid: action.did,\n }),\n )\n isDelivered = true\n } catch (err) {\n dbLogger.error(\n { err, did: action.did },\n 'failed to send takedown email',\n )\n }\n await moderationTxn.logEvent({\n event: {\n content: email.content,\n subjectLine: email.subject,\n $type: 'tools.ozone.moderation.defs#modEventEmail',\n comment: [\n 'Communication attached to scheduled action',\n isDelivered ? '' : 'Email delivery failed',\n ].join('.'),\n isDelivered,\n },\n subject,\n modTool,\n createdBy: action.createdBy,\n })\n }\n\n return moderationEvent\n }\n\n async findAndExecuteScheduledActions() {\n const scheduledActionService = this.scheduledActionService(this.db)\n const now = new Date()\n\n const actionsToExecute =\n await scheduledActionService.getPendingActionsToExecute(now)\n\n for (const action of actionsToExecute) {\n // For randomized execution, check if we should execute now or wait\n if (action.randomizeExecution && action.executeAfter) {\n const executeAfter = new Date(action.executeAfter)\n // Default to a 30 second window for execution\n const executeUntil = action.executeUntil\n ? new Date(action.executeUntil)\n : new Date(executeAfter.getTime() + 30 * SECOND)\n\n // Only execute if we're past the earliest time\n if (now < executeAfter) {\n continue\n }\n\n // For randomized scheduling, randomly decide whether to execute now\n // The probability increases as we get closer to the deadline\n const timeRange = executeUntil.getTime() - executeAfter.getTime()\n const timeElapsed = now.getTime() - executeAfter.getTime()\n const executeProb = Math.min(timeElapsed / timeRange, 1)\n\n // Execute with increasing probability as we approach the deadline\n // Always execute if we're at or past the deadline\n if (now < executeUntil && Math.random() > executeProb * 0.1) {\n continue\n }\n }\n\n await this.executeScheduledAction(action.id)\n }\n }\n}\n\nconst getInterval = (): number => {\n // Process scheduled actions every minute\n const now = Date.now()\n const intervalMs = MINUTE\n const nextIteration = Math.ceil(now / intervalMs)\n return nextIteration * intervalMs - now\n}\n"]}
|
|
1
|
+
{"version":3,"file":"scheduled-action-processor.js","sourceRoot":"","sources":["../../src/daemon/scheduled-action-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EACL,wBAAwB,EACxB,gBAAgB,GACjB,MAAM,2BAA2B,CAAA;AAOlC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAKvC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIvD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,OAAO,wBAAwB;IAKnC,YACU,EAAY,EACZ,UAAkB,EAClB,cAAqC,EACrC,UAAoC,EACpC,sBAAqD;QAJrD,OAAE,GAAF,EAAE,CAAU;QACZ,eAAU,GAAV,UAAU,CAAQ;QAClB,mBAAc,GAAd,cAAc,CAAuB;QACrC,eAAU,GAAV,UAAU,CAA0B;QACpC,2BAAsB,GAAtB,sBAAsB,CAA+B;QAT/D,cAAS,GAAG,KAAK,CAAA;QACjB,sBAAiB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IASjD,CAAC;IAEJ,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,SAAS;YAAE,OAAM;QAC1B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,8BAA8B,EAAE;aAC3D,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CACb,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAC/D;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;QAC3D,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAC3C,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;YACjD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAE7D,IAAI,CAAC;gBACH,sGAAsG;gBACtG,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,EAAE;qBAC1B,UAAU,CAAC,kBAAkB,CAAC;qBAC9B,SAAS,EAAE;qBACX,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC;qBAC1B,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,CAAC;qBAC/B,gBAAgB,EAAE,CAAA;gBAErB,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,iCAAiC;oBACjC,OAAM;gBACR,CAAC;gBAED,IAAI,KAAmB,CAAA;gBACvB,MAAM,KAAK,GAAG;oBACZ,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,EAAE;iBACZ,CAAA;gBACD,IAAI,OAA4B,CAAA;gBAEhC,8EAA8E;gBAC9E,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtB,KAAK,UAAU;wBACb,CAAC;4BACC,MAAM,SAAS,GAAG,MAAM,CAAC,SAIxB,CAAA;4BACD,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;4BAC3B,KAAK,GAAG;gCACN,KAAK,EAAE,8CAA8C;gCACrD,OAAO,EAAE,sBAAsB,SAAS,CAAC,OAAO,IAAI,6BAA6B,EAAE;gCACnF,eAAe,EAAE,SAAS,CAAC,eAAe;gCAC1C,0BAA0B,EACxB,SAAS,CAAC,0BAA0B;gCACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gCAC5B,aAAa,EAAE,SAAS,CAAC,aAAa;gCACtC,WAAW,EAAE,SAAS,CAAC,WAAW;6BACnC,CAAA;4BAED,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gCACrD,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CAAA;gCACtC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,YAAY,CAAA;4BACxC,CAAC;wBACH,CAAC;wBACD,MAAK;oBACP;wBACE,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,MAAM,EAAE,CACtD,CAAA;gBACL,CAAC;gBAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;oBACjD,MAAM;oBACN,KAAK;oBACL,OAAO;oBACP,aAAa;oBACb,cAAc;oBACd,KAAK;iBACN,CAAC,CAAA;gBAEF,wCAAwC;gBACxC,MAAM,kBAAkB,CAAC,oBAAoB,CAC3C,QAAQ,EACR,eAAe,CAAC,KAAK,CAAC,EAAE,CACzB,CAAA;gBAED,QAAQ,CAAC,IAAI,CACX;oBACE,GAAG,EAAE,MAAM,CAAC,GAAG;oBACf,iBAAiB,EAAE,QAAQ;oBAC3B,iBAAiB,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE;iBAC5C,EACD,2BAA2B,CAC5B,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;gBAE1D,iBAAiB;gBACjB,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;gBAEnE,QAAQ,CAAC,KAAK,CACZ;oBACE,iBAAiB,EAAE,QAAQ;oBAC3B,KAAK,EAAE,YAAY;iBACpB,EACD,oCAAoC,CACrC,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EACpB,KAAK,EACL,MAAM,EACN,KAAK,EACL,OAAO,EACP,aAAa,EACb,cAAc,GASf;QACC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAErD,IAAI,MAAM,EAAE,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,cAAc,EACd,IAAI,CAAC,UAAU,CAChB,CAAA;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,wBAAwB,CAAC;oBACvB,aAAa;oBACb,WAAW,EAAE,MAAM,CAAC,IAAI;oBACxB,YAAY,EAAE,MAAM,CAAC,SAAS;oBAC9B,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,qFAAqF;QACrF,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC;YACnD,KAAK;YACL,OAAO;YACP,OAAO;YACP,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;QAEF,wCAAwC;QACxC,MAAM,aAAa,CAAC,YAAY,CAC9B,OAAO,EACP,eAAe,CAAC,KAAK,CAAC,EAAE,EACxB,IAAI,GAAG,CACL,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc;YACxC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3D,CAAC,CAAC,SAAS,CACd,CACF,CAAA;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACnC,IAAI,WAAW,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,GAAG,EAAE,CACnB,aAAa,CAAC,SAAS,CAAC;oBACtB,GAAG,KAAK;oBACR,YAAY,EAAE,MAAM,CAAC,GAAG;iBACzB,CAAC,CACH,CAAA;gBACD,WAAW,GAAG,IAAI,CAAA;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,CACZ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,EACxB,+BAA+B,CAChC,CAAA;YACH,CAAC;YACD,MAAM,aAAa,CAAC,QAAQ,CAAC;gBAC3B,KAAK,EAAE;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,KAAK,CAAC,OAAO;oBAC1B,KAAK,EAAE,2CAA2C;oBAClD,OAAO,EAAE;wBACP,4CAA4C;wBAC5C,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;qBAC3C,CAAC,IAAI,CAAC,GAAG,CAAC;oBACX,WAAW;iBACZ;gBACD,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,8BAA8B;QAClC,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;QAEtB,MAAM,gBAAgB,GACpB,MAAM,sBAAsB,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAA;QAE9D,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,mEAAmE;YACnE,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAClD,8CAA8C;gBAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY;oBACtC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;oBAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAA;gBAElD,+CAA+C;gBAC/C,IAAI,GAAG,GAAG,YAAY,EAAE,CAAC;oBACvB,SAAQ;gBACV,CAAC;gBAED,oEAAoE;gBACpE,6DAA6D;gBAC7D,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;gBACjE,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAA;gBAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC,CAAC,CAAA;gBAExD,kEAAkE;gBAClE,kDAAkD;gBAClD,IAAI,GAAG,GAAG,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;oBAC5D,SAAQ;gBACV,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;CACF;AAED,MAAM,WAAW,GAAG,GAAW,EAAE;IAC/B,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,UAAU,GAAG,MAAM,CAAA;IACzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,CAAA;IACjD,OAAO,aAAa,GAAG,UAAU,GAAG,GAAG,CAAA;AACzC,CAAC,CAAA","sourcesContent":["import { Selectable } from 'kysely'\nimport { MINUTE, SECOND } from '@atproto/common'\nimport {\n assertProtectedTagAction,\n getProtectedTags,\n} from '../api/moderation/util.js'\nimport { Database } from '../db/index.js'\nimport { ScheduledAction } from '../db/schema/scheduled-action.js'\nimport {\n ModEventTakedown,\n ModTool,\n} from '../lexicon/types/tools/ozone/moderation/defs.js'\nimport { dbLogger } from '../logger.js'\nimport {\n ModerationService,\n ModerationServiceCreator,\n} from '../mod-service/index.js'\nimport { RepoSubject } from '../mod-service/subject.js'\nimport { ModEventType } from '../mod-service/types.js'\nimport { ScheduledActionServiceCreator } from '../scheduled-action/service.js'\nimport { SettingService, SettingServiceCreator } from '../setting/service.js'\nimport { retryHttp } from '../util.js'\n\nexport class ScheduledActionProcessor {\n destroyed = false\n processingPromise: Promise<void> = Promise.resolve()\n timer?: NodeJS.Timeout\n\n constructor(\n private db: Database,\n private serviceDid: string,\n private settingService: SettingServiceCreator,\n private modService: ModerationServiceCreator,\n private scheduledActionService: ScheduledActionServiceCreator,\n ) {}\n\n start() {\n this.poll()\n }\n\n poll() {\n if (this.destroyed) return\n this.processingPromise = this.findAndExecuteScheduledActions()\n .catch((err) =>\n dbLogger.error({ err }, 'scheduled action processing errored'),\n )\n .finally(() => {\n this.timer = setTimeout(() => this.poll(), getInterval())\n })\n }\n\n async destroy() {\n this.destroyed = true\n if (this.timer) {\n clearTimeout(this.timer)\n this.timer = undefined\n }\n await this.processingPromise\n }\n\n async executeScheduledAction(actionId: number) {\n await this.db.transaction(async (dbTxn) => {\n const settingService = this.settingService(dbTxn)\n const moderationTxn = this.modService(dbTxn)\n const scheduledActionTxn = this.scheduledActionService(dbTxn)\n\n try {\n // maybe overfetching here to get the action again within the transaction to ensure it's still pending\n const action = await dbTxn.db\n .selectFrom('scheduled_action')\n .selectAll()\n .where('id', '=', actionId)\n .where('status', '=', 'pending')\n .executeTakeFirst()\n\n if (!action) {\n // already processed or cancelled\n return\n }\n\n let event: ModEventType\n const email = {\n subject: '',\n content: '',\n }\n let modTool: ModTool | undefined\n\n // Create the appropriate moderation action based on the scheduled action type\n switch (action.action) {\n case 'takedown':\n {\n const eventData = action.eventData as ModEventTakedown & {\n modTool?: ModTool\n emailSubject?: string\n emailContent?: string\n }\n modTool = eventData.modTool\n event = {\n $type: 'tools.ozone.moderation.defs#modEventTakedown',\n comment: `[SCHEDULED_ACTION] ${eventData.comment || 'Scheduled takedown executed'}`,\n durationInHours: eventData.durationInHours,\n acknowledgeAccountSubjects:\n eventData.acknowledgeAccountSubjects,\n policies: eventData.policies,\n severityLevel: eventData.severityLevel,\n strikeCount: eventData.strikeCount,\n }\n\n if (eventData.emailSubject && eventData.emailContent) {\n email.subject = eventData.emailSubject\n email.content = eventData.emailContent\n }\n }\n break\n default:\n throw new Error(\n `Unsupported scheduled action type: ${action.action}`,\n )\n }\n\n const moderationEvent = await this.performTakedown({\n action,\n event,\n modTool,\n moderationTxn,\n settingService,\n email,\n })\n\n // Mark the scheduled action as executed\n await scheduledActionTxn.markActionAsExecuted(\n actionId,\n moderationEvent.event.id,\n )\n\n dbLogger.info(\n {\n did: action.did,\n scheduledActionId: actionId,\n moderationEventId: moderationEvent.event.id,\n },\n 'executed scheduled action',\n )\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : 'Unknown error'\n\n // mark as failed\n await scheduledActionTxn.markActionAsFailed(actionId, errorMessage)\n\n dbLogger.error(\n {\n scheduledActionId: actionId,\n error: errorMessage,\n },\n 'failed to execute scheduled action',\n )\n }\n })\n }\n\n async performTakedown({\n email,\n action,\n event,\n modTool,\n moderationTxn,\n settingService,\n }: {\n email: { subject: string; content: string }\n action: Selectable<ScheduledAction>\n event: ModEventType\n modTool: ModTool | undefined\n\n moderationTxn: ModerationService\n settingService: SettingService\n }) {\n const subject = new RepoSubject(action.did)\n\n const status = await moderationTxn.getStatus(subject)\n\n if (status?.takendown) {\n throw new Error(`Account is already taken down`)\n }\n\n if (status?.tags?.length) {\n const protectedTags = await getProtectedTags(\n settingService,\n this.serviceDid,\n )\n\n if (protectedTags) {\n assertProtectedTagAction({\n protectedTags,\n subjectTags: status.tags,\n actionAuthor: action.createdBy,\n isAdmin: true,\n isModerator: false,\n isTriage: false,\n })\n }\n }\n\n // log the event which also applies the necessary state changes to moderation subject\n const moderationEvent = await moderationTxn.logEvent({\n event,\n subject,\n modTool,\n createdBy: action.createdBy,\n })\n\n // register the takedown in event pusher\n await moderationTxn.takedownRepo(\n subject,\n moderationEvent.event.id,\n new Set(\n moderationEvent.event.meta?.targetServices\n ? `${moderationEvent.event.meta.targetServices}`.split(',')\n : undefined,\n ),\n )\n\n if (email.content && email.subject) {\n let isDelivered = false\n try {\n await retryHttp(() =>\n moderationTxn.sendEmail({\n ...email,\n recipientDid: action.did,\n }),\n )\n isDelivered = true\n } catch (err) {\n dbLogger.error(\n { err, did: action.did },\n 'failed to send takedown email',\n )\n }\n await moderationTxn.logEvent({\n event: {\n content: email.content,\n subjectLine: email.subject,\n $type: 'tools.ozone.moderation.defs#modEventEmail',\n comment: [\n 'Communication attached to scheduled action',\n isDelivered ? '' : 'Email delivery failed',\n ].join('.'),\n isDelivered,\n },\n subject,\n modTool,\n createdBy: action.createdBy,\n })\n }\n\n return moderationEvent\n }\n\n async findAndExecuteScheduledActions() {\n const scheduledActionService = this.scheduledActionService(this.db)\n const now = new Date()\n\n const actionsToExecute =\n await scheduledActionService.getPendingActionsToExecute(now)\n\n for (const action of actionsToExecute) {\n // For randomized execution, check if we should execute now or wait\n if (action.randomizeExecution && action.executeAfter) {\n const executeAfter = new Date(action.executeAfter)\n // Default to a 30 second window for execution\n const executeUntil = action.executeUntil\n ? new Date(action.executeUntil)\n : new Date(executeAfter.getTime() + 30 * SECOND)\n\n // Only execute if we're past the earliest time\n if (now < executeAfter) {\n continue\n }\n\n // For randomized scheduling, randomly decide whether to execute now\n // The probability increases as we get closer to the deadline\n const timeRange = executeUntil.getTime() - executeAfter.getTime()\n const timeElapsed = now.getTime() - executeAfter.getTime()\n const executeProb = Math.min(timeElapsed / timeRange, 1)\n\n // Execute with increasing probability as we approach the deadline\n // Always execute if we're at or past the deadline\n if (now < executeUntil && Math.random() > executeProb * 0.1) {\n continue\n }\n }\n\n await this.executeScheduledAction(action.id)\n }\n }\n}\n\nconst getInterval = (): number => {\n // Process scheduled actions every minute\n const now = Date.now()\n const intervalMs = MINUTE\n const nextIteration = Math.ceil(now / intervalMs)\n return nextIteration * intervalMs - now\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Database } from '../db';
|
|
2
|
-
import { ReportStatsServiceCreator } from '../report/stats';
|
|
1
|
+
import { Database } from '../db/index.js';
|
|
2
|
+
import { ReportStatsServiceCreator } from '../report/stats.js';
|
|
3
3
|
/**
|
|
4
4
|
* Background daemon that materializes report statistics on an interval (default is 15 minutes).
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-computer.d.ts","sourceRoot":"","sources":["../../src/daemon/stats-computer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"stats-computer.d.ts","sourceRoot":"","sources":["../../src/daemon/stats-computer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAK9D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAa;IAMtB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,yBAAyB;IACjC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAZzB,SAAS,UAAQ;IACjB,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAoB;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;gBAGZ,EAAE,EAAE,QAAQ,EACZ,yBAAyB,EAAE,yBAAyB;IAC5D;;;;OAIG;IACK,eAAe,EAAE,MAAM;IAGjC,IAAI,QAAQ,YAEX;IAED,KAAK;IAIL,IAAI;YAYU,gBAAgB;IAwBxB,OAAO;CAQd"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const kysely_1 = require("kysely");
|
|
5
|
-
const common_1 = require("@atproto/common");
|
|
6
|
-
const logger_1 = require("../logger");
|
|
1
|
+
import { sql } from 'kysely';
|
|
2
|
+
import { MINUTE } from '@atproto/common';
|
|
3
|
+
import { dbLogger } from '../logger.js';
|
|
7
4
|
// Stable lock ID for pg_try_advisory_lock across all instances
|
|
8
|
-
const ADVISORY_LOCK_ID =
|
|
5
|
+
const ADVISORY_LOCK_ID = 7_239_401;
|
|
9
6
|
/**
|
|
10
7
|
* Background daemon that materializes report statistics on an interval (default is 15 minutes).
|
|
11
8
|
*
|
|
@@ -29,7 +26,7 @@ const ADVISORY_LOCK_ID = 7239401;
|
|
|
29
26
|
* unaffected. If another instance already holds the lock, this instance skips the cycle
|
|
30
27
|
* immediately without blocking.
|
|
31
28
|
*/
|
|
32
|
-
class StatsComputer {
|
|
29
|
+
export class StatsComputer {
|
|
33
30
|
constructor(db, reportStatsServiceCreator,
|
|
34
31
|
/**
|
|
35
32
|
* Minutes between stats computer cycles.
|
|
@@ -37,42 +34,11 @@ class StatsComputer {
|
|
|
37
34
|
* Set to -1 to disable the stats computer.
|
|
38
35
|
*/
|
|
39
36
|
intervalMinutes) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
46
|
-
Object.defineProperty(this, "reportStatsServiceCreator", {
|
|
47
|
-
enumerable: true,
|
|
48
|
-
configurable: true,
|
|
49
|
-
writable: true,
|
|
50
|
-
value: reportStatsServiceCreator
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(this, "intervalMinutes", {
|
|
53
|
-
enumerable: true,
|
|
54
|
-
configurable: true,
|
|
55
|
-
writable: true,
|
|
56
|
-
value: intervalMinutes
|
|
57
|
-
});
|
|
58
|
-
Object.defineProperty(this, "destroyed", {
|
|
59
|
-
enumerable: true,
|
|
60
|
-
configurable: true,
|
|
61
|
-
writable: true,
|
|
62
|
-
value: false
|
|
63
|
-
});
|
|
64
|
-
Object.defineProperty(this, "processingPromise", {
|
|
65
|
-
enumerable: true,
|
|
66
|
-
configurable: true,
|
|
67
|
-
writable: true,
|
|
68
|
-
value: Promise.resolve()
|
|
69
|
-
});
|
|
70
|
-
Object.defineProperty(this, "timer", {
|
|
71
|
-
enumerable: true,
|
|
72
|
-
configurable: true,
|
|
73
|
-
writable: true,
|
|
74
|
-
value: void 0
|
|
75
|
-
});
|
|
37
|
+
this.db = db;
|
|
38
|
+
this.reportStatsServiceCreator = reportStatsServiceCreator;
|
|
39
|
+
this.intervalMinutes = intervalMinutes;
|
|
40
|
+
this.destroyed = false;
|
|
41
|
+
this.processingPromise = Promise.resolve();
|
|
76
42
|
}
|
|
77
43
|
get disabled() {
|
|
78
44
|
return this.intervalMinutes < 1;
|
|
@@ -84,16 +50,16 @@ class StatsComputer {
|
|
|
84
50
|
if (this.destroyed || this.disabled)
|
|
85
51
|
return;
|
|
86
52
|
this.processingPromise = this.materializeStats()
|
|
87
|
-
.catch((err) =>
|
|
53
|
+
.catch((err) => dbLogger.error({ err }, 'stats materialization errored'))
|
|
88
54
|
.finally(() => {
|
|
89
|
-
this.timer = setTimeout(() => this.poll(), this.intervalMinutes *
|
|
55
|
+
this.timer = setTimeout(() => this.poll(), this.intervalMinutes * MINUTE);
|
|
90
56
|
});
|
|
91
57
|
}
|
|
92
58
|
async materializeStats() {
|
|
93
|
-
const lockResult = await
|
|
59
|
+
const lockResult = await sql `SELECT pg_try_advisory_lock(${ADVISORY_LOCK_ID}) as locked`.execute(this.db.db);
|
|
94
60
|
const acquired = lockResult.rows[0]?.locked === true;
|
|
95
61
|
if (!acquired) {
|
|
96
|
-
|
|
62
|
+
dbLogger.info('stats materialization skipped, another instance holds lock');
|
|
97
63
|
return;
|
|
98
64
|
}
|
|
99
65
|
try {
|
|
@@ -101,7 +67,7 @@ class StatsComputer {
|
|
|
101
67
|
await statsService.materializeAll();
|
|
102
68
|
}
|
|
103
69
|
finally {
|
|
104
|
-
await
|
|
70
|
+
await sql `SELECT pg_advisory_unlock(${ADVISORY_LOCK_ID})`.execute(this.db.db);
|
|
105
71
|
}
|
|
106
72
|
}
|
|
107
73
|
async destroy() {
|
|
@@ -113,5 +79,4 @@ class StatsComputer {
|
|
|
113
79
|
await this.processingPromise;
|
|
114
80
|
}
|
|
115
81
|
}
|
|
116
|
-
exports.StatsComputer = StatsComputer;
|
|
117
82
|
//# sourceMappingURL=stats-computer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats-computer.js","sourceRoot":"","sources":["../../src/daemon/stats-computer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stats-computer.js","sourceRoot":"","sources":["../../src/daemon/stats-computer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAGvC,+DAA+D;AAC/D,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,aAAa;IAKxB,YACU,EAAY,EACZ,yBAAoD;IAC5D;;;;OAIG;IACK,eAAuB;QAPvB,OAAE,GAAF,EAAE,CAAU;QACZ,8BAAyB,GAAzB,yBAAyB,CAA2B;QAMpD,oBAAe,GAAf,eAAe,CAAQ;QAZjC,cAAS,GAAG,KAAK,CAAA;QACjB,sBAAiB,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAYjD,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,EAAE,CAAA;IACb,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE;aAC7C,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+BAA+B,CAAC,CAAC;aACxE,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,UAAU,CACrB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,eAAe,GAAG,MAAM,CAC9B,CAAA;QACH,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,UAAU,GAAG,MAAM,GAAG,CAE1B,+BAA+B,gBAAgB,aAAa,CAAC,OAAO,CACpE,IAAI,CAAC,EAAE,CAAC,EAAE,CACX,CAAA;QACD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CACX,4DAA4D,CAC7D,CAAA;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC5D,MAAM,YAAY,CAAC,cAAc,EAAE,CAAA;QACrC,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAA,6BAA6B,gBAAgB,GAAG,CAAC,OAAO,CAC/D,IAAI,CAAC,EAAE,CAAC,EAAE,CACX,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,iBAAiB,CAAA;IAC9B,CAAC;CACF","sourcesContent":["import { sql } from 'kysely'\nimport { MINUTE } from '@atproto/common'\nimport { Database } from '../db/index.js'\nimport { dbLogger } from '../logger.js'\nimport { ReportStatsServiceCreator } from '../report/stats.js'\n\n// Stable lock ID for pg_try_advisory_lock across all instances\nconst ADVISORY_LOCK_ID = 7_239_401\n\n/**\n * Background daemon that materializes report statistics on an interval (default is 15 minutes).\n *\n * Each cycle computes calendar-day snapshots: today's stats are recomputed (in-progress day),\n * and yesterday's snapshot is finalized if it wasn't already. Historical snapshots (completed\n * days) are write-once and never recomputed unless explicitly refreshed via the API.\n *\n * Query profile per cycle (assuming ~10K reports/day, 10 queues, 20 moderators, 9 type groups):\n * - 7 batched GROUP BY queries against the report table for today's date window\n * (+ 7 more for yesterday if finalization is needed).\n * Day-window queries scan ~10K rows. Pending-count queries use partial indexes\n * (WHERE status != 'closed') so only scan open reports, not the full table.\n * Expected: ~10-50ms per query, ~100-350ms total report-table time.\n * - ~40 lightweight reads against report_stat for freshness checks (small indexed table).\n * - ~40 lightweight writes to report_stat for upserts.\n *\n * Locking: Uses pg_try_advisory_lock to ensure only one instance materializes at a time\n * when running multiple containers. Advisory locks are cooperative, session-level locks —\n * they do NOT block any table reads, writes, row locks, or transactions from other sessions.\n * Normal application queries (report creation, moderation actions, API reads) are completely\n * unaffected. If another instance already holds the lock, this instance skips the cycle\n * immediately without blocking.\n */\nexport class StatsComputer {\n destroyed = false\n processingPromise: Promise<void> = Promise.resolve()\n timer?: NodeJS.Timeout\n\n constructor(\n private db: Database,\n private reportStatsServiceCreator: ReportStatsServiceCreator,\n /**\n * Minutes between stats computer cycles.\n * Defaults to 15. Minimum is 1.\n * Set to -1 to disable the stats computer.\n */\n private intervalMinutes: number,\n ) {}\n\n get disabled() {\n return this.intervalMinutes < 1\n }\n\n start() {\n this.poll()\n }\n\n poll() {\n if (this.destroyed || this.disabled) return\n this.processingPromise = this.materializeStats()\n .catch((err) => dbLogger.error({ err }, 'stats materialization errored'))\n .finally(() => {\n this.timer = setTimeout(\n () => this.poll(),\n this.intervalMinutes * MINUTE,\n )\n })\n }\n\n private async materializeStats() {\n const lockResult = await sql<{\n locked: boolean\n }>`SELECT pg_try_advisory_lock(${ADVISORY_LOCK_ID}) as locked`.execute(\n this.db.db,\n )\n const acquired = lockResult.rows[0]?.locked === true\n if (!acquired) {\n dbLogger.info(\n 'stats materialization skipped, another instance holds lock',\n )\n return\n }\n\n try {\n const statsService = this.reportStatsServiceCreator(this.db)\n await statsService.materializeAll()\n } finally {\n await sql`SELECT pg_advisory_unlock(${ADVISORY_LOCK_ID})`.execute(\n this.db.db,\n )\n }\n }\n\n async destroy() {\n this.destroyed = true\n if (this.timer) {\n clearTimeout(this.timer)\n this.timer = undefined\n }\n await this.processingPromise\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Database } from '../db';
|
|
2
|
-
import { StrikeServiceCreator } from '../mod-service/strike';
|
|
1
|
+
import { Database } from '../db/index.js';
|
|
2
|
+
import { StrikeServiceCreator } from '../mod-service/strike.js';
|
|
3
3
|
export declare class StrikeExpiryProcessor {
|
|
4
4
|
private db;
|
|
5
5
|
private strikeServiceCreator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strike-expiry-processor.d.ts","sourceRoot":"","sources":["../../src/daemon/strike-expiry-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"strike-expiry-processor.d.ts","sourceRoot":"","sources":["../../src/daemon/strike-expiry-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAK/D,qBAAa,qBAAqB;IAM9B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,oBAAoB;IAN9B,SAAS,UAAQ;IACjB,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAoB;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;gBAGZ,EAAE,EAAE,QAAQ,EACZ,oBAAoB,EAAE,oBAAoB;IAGpD,KAAK;IAIL,IAAI;IAWE,OAAO;IASP,gBAAgB;IAIhB,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,qBAAqB;CAgC5B"}
|
|
@@ -1,42 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const common_1 = require("@atproto/common");
|
|
5
|
-
const logger_1 = require("../logger");
|
|
6
|
-
const job_cursor_1 = require("./job-cursor");
|
|
1
|
+
import { HOUR } from '@atproto/common';
|
|
2
|
+
import { dbLogger } from '../logger.js';
|
|
3
|
+
import { getJobCursor, initJobCursor, updateJobCursor } from './job-cursor.js';
|
|
7
4
|
const JOB_NAME = 'strike_expiry';
|
|
8
|
-
class StrikeExpiryProcessor {
|
|
5
|
+
export class StrikeExpiryProcessor {
|
|
9
6
|
constructor(db, strikeServiceCreator) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
value: db
|
|
15
|
-
});
|
|
16
|
-
Object.defineProperty(this, "strikeServiceCreator", {
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true,
|
|
20
|
-
value: strikeServiceCreator
|
|
21
|
-
});
|
|
22
|
-
Object.defineProperty(this, "destroyed", {
|
|
23
|
-
enumerable: true,
|
|
24
|
-
configurable: true,
|
|
25
|
-
writable: true,
|
|
26
|
-
value: false
|
|
27
|
-
});
|
|
28
|
-
Object.defineProperty(this, "processingPromise", {
|
|
29
|
-
enumerable: true,
|
|
30
|
-
configurable: true,
|
|
31
|
-
writable: true,
|
|
32
|
-
value: Promise.resolve()
|
|
33
|
-
});
|
|
34
|
-
Object.defineProperty(this, "timer", {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
configurable: true,
|
|
37
|
-
writable: true,
|
|
38
|
-
value: void 0
|
|
39
|
-
});
|
|
7
|
+
this.db = db;
|
|
8
|
+
this.strikeServiceCreator = strikeServiceCreator;
|
|
9
|
+
this.destroyed = false;
|
|
10
|
+
this.processingPromise = Promise.resolve();
|
|
40
11
|
}
|
|
41
12
|
start() {
|
|
42
13
|
this.initializeCursor().then(() => this.poll());
|
|
@@ -45,7 +16,7 @@ class StrikeExpiryProcessor {
|
|
|
45
16
|
if (this.destroyed)
|
|
46
17
|
return;
|
|
47
18
|
this.processingPromise = this.processExpiredStrikes()
|
|
48
|
-
.catch((err) =>
|
|
19
|
+
.catch((err) => dbLogger.error({ err }, 'strike expiry processing errored'))
|
|
49
20
|
.finally(() => {
|
|
50
21
|
this.timer = setTimeout(() => this.poll(), getInterval());
|
|
51
22
|
});
|
|
@@ -59,13 +30,13 @@ class StrikeExpiryProcessor {
|
|
|
59
30
|
await this.processingPromise;
|
|
60
31
|
}
|
|
61
32
|
async initializeCursor() {
|
|
62
|
-
await
|
|
33
|
+
await initJobCursor(this.db, JOB_NAME);
|
|
63
34
|
}
|
|
64
35
|
async getCursor() {
|
|
65
|
-
return
|
|
36
|
+
return getJobCursor(this.db, JOB_NAME);
|
|
66
37
|
}
|
|
67
38
|
async updateCursor(cursor) {
|
|
68
|
-
await
|
|
39
|
+
await updateJobCursor(this.db, JOB_NAME, cursor);
|
|
69
40
|
}
|
|
70
41
|
async processExpiredStrikes() {
|
|
71
42
|
const now = new Date();
|
|
@@ -73,23 +44,22 @@ class StrikeExpiryProcessor {
|
|
|
73
44
|
const lastProcessedAt = await this.getCursor();
|
|
74
45
|
const affectedSubjects = await strikeService.getExpiredStrikeSubjects(lastProcessedAt || undefined);
|
|
75
46
|
if (!affectedSubjects.length) {
|
|
76
|
-
|
|
47
|
+
dbLogger.info('no expired strikes to process');
|
|
77
48
|
await this.updateCursor(now.toISOString());
|
|
78
49
|
return;
|
|
79
50
|
}
|
|
80
|
-
|
|
51
|
+
dbLogger.info({ count: affectedSubjects.length }, 'processing subjects with expired strikes');
|
|
81
52
|
await Promise.all(affectedSubjects.map(({ subjectDid }) => {
|
|
82
53
|
return strikeService.updateSubjectStrikeCount(subjectDid);
|
|
83
54
|
}));
|
|
84
55
|
await this.updateCursor(now.toISOString());
|
|
85
|
-
|
|
56
|
+
dbLogger.info({ processed: affectedSubjects.length }, 'strike expiry processing completed');
|
|
86
57
|
}
|
|
87
58
|
}
|
|
88
|
-
exports.StrikeExpiryProcessor = StrikeExpiryProcessor;
|
|
89
59
|
const getInterval = () => {
|
|
90
60
|
// Run every hour, synchronized to the hour boundary
|
|
91
61
|
const now = Date.now();
|
|
92
|
-
const intervalMs =
|
|
62
|
+
const intervalMs = HOUR;
|
|
93
63
|
const nextIteration = Math.ceil(now / intervalMs);
|
|
94
64
|
return nextIteration * intervalMs - now;
|
|
95
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strike-expiry-processor.js","sourceRoot":"","sources":["../../src/daemon/strike-expiry-processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"strike-expiry-processor.js","sourceRoot":"","sources":["../../src/daemon/strike-expiry-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { HOUR } from '@atproto/common'\nimport { Database } from '../db/index.js'\nimport { dbLogger } from '../logger.js'\nimport { StrikeServiceCreator } from '../mod-service/strike.js'\nimport { getJobCursor, initJobCursor, updateJobCursor } from './job-cursor.js'\n\nconst JOB_NAME = 'strike_expiry'\n\nexport class StrikeExpiryProcessor {\n destroyed = false\n processingPromise: Promise<void> = Promise.resolve()\n timer?: NodeJS.Timeout\n\n constructor(\n private db: Database,\n private strikeServiceCreator: StrikeServiceCreator,\n ) {}\n\n start() {\n this.initializeCursor().then(() => this.poll())\n }\n\n poll() {\n if (this.destroyed) return\n this.processingPromise = this.processExpiredStrikes()\n .catch((err) =>\n dbLogger.error({ err }, 'strike expiry processing errored'),\n )\n .finally(() => {\n this.timer = setTimeout(() => this.poll(), getInterval())\n })\n }\n\n async destroy() {\n this.destroyed = true\n if (this.timer) {\n clearTimeout(this.timer)\n this.timer = undefined\n }\n await this.processingPromise\n }\n\n async initializeCursor() {\n await initJobCursor(this.db, JOB_NAME)\n }\n\n async getCursor(): Promise<string | null> {\n return getJobCursor(this.db, JOB_NAME)\n }\n\n async updateCursor(cursor: string): Promise<void> {\n await updateJobCursor(this.db, JOB_NAME, cursor)\n }\n\n async processExpiredStrikes() {\n const now = new Date()\n const strikeService = this.strikeServiceCreator(this.db)\n const lastProcessedAt = await this.getCursor()\n const affectedSubjects = await strikeService.getExpiredStrikeSubjects(\n lastProcessedAt || undefined,\n )\n\n if (!affectedSubjects.length) {\n dbLogger.info('no expired strikes to process')\n await this.updateCursor(now.toISOString())\n return\n }\n\n dbLogger.info(\n { count: affectedSubjects.length },\n 'processing subjects with expired strikes',\n )\n\n await Promise.all(\n affectedSubjects.map(({ subjectDid }) => {\n return strikeService.updateSubjectStrikeCount(subjectDid)\n }),\n )\n\n await this.updateCursor(now.toISOString())\n\n dbLogger.info(\n { processed: affectedSubjects.length },\n 'strike expiry processing completed',\n )\n }\n}\n\nconst getInterval = (): number => {\n // Run every hour, synchronized to the hour boundary\n const now = Date.now()\n const intervalMs = HOUR\n const nextIteration = Math.ceil(now / intervalMs)\n return nextIteration * intervalMs - now\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BackgroundQueue, PeriodicBackgroundTask } from '../background';
|
|
2
|
-
import { TeamService } from '../team';
|
|
1
|
+
import { BackgroundQueue, PeriodicBackgroundTask } from '../background.js';
|
|
2
|
+
import { TeamService } from '../team/index.js';
|
|
3
3
|
export declare class TeamProfileSynchronizer extends PeriodicBackgroundTask {
|
|
4
4
|
constructor(backgroundQueue: BackgroundQueue, teamService: TeamService, interval?: number);
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-profile-synchronizer.d.ts","sourceRoot":"","sources":["../../src/daemon/team-profile-synchronizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"team-profile-synchronizer.d.ts","sourceRoot":"","sources":["../../src/daemon/team-profile-synchronizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,qBAAa,uBAAwB,SAAQ,sBAAsB;gBAE/D,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,QAAQ,SAAY;CAMvB"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const background_1 = require("../background");
|
|
6
|
-
class TeamProfileSynchronizer extends background_1.PeriodicBackgroundTask {
|
|
7
|
-
constructor(backgroundQueue, teamService, interval = 24 * common_1.HOUR) {
|
|
1
|
+
import { HOUR } from '@atproto/common';
|
|
2
|
+
import { PeriodicBackgroundTask } from '../background.js';
|
|
3
|
+
export class TeamProfileSynchronizer extends PeriodicBackgroundTask {
|
|
4
|
+
constructor(backgroundQueue, teamService, interval = 24 * HOUR) {
|
|
8
5
|
super(backgroundQueue, interval, async () => {
|
|
9
6
|
await teamService.syncMemberProfiles();
|
|
10
7
|
});
|
|
11
8
|
}
|
|
12
9
|
}
|
|
13
|
-
exports.TeamProfileSynchronizer = TeamProfileSynchronizer;
|
|
14
10
|
//# sourceMappingURL=team-profile-synchronizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-profile-synchronizer.js","sourceRoot":"","sources":["../../src/daemon/team-profile-synchronizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"team-profile-synchronizer.js","sourceRoot":"","sources":["../../src/daemon/team-profile-synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,EAAmB,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAG1E,MAAM,OAAO,uBAAwB,SAAQ,sBAAsB;IACjE,YACE,eAAgC,EAChC,WAAwB,EACxB,QAAQ,GAAG,EAAE,GAAG,IAAI;QAEpB,KAAK,CAAC,eAAe,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,WAAW,CAAC,kBAAkB,EAAE,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF","sourcesContent":["import { HOUR } from '@atproto/common'\nimport { BackgroundQueue, PeriodicBackgroundTask } from '../background.js'\nimport { TeamService } from '../team/index.js'\n\nexport class TeamProfileSynchronizer extends PeriodicBackgroundTask {\n constructor(\n backgroundQueue: BackgroundQueue,\n teamService: TeamService,\n interval = 24 * HOUR,\n ) {\n super(backgroundQueue, interval, async () => {\n await teamService.syncMemberProfiles()\n })\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-listener.d.ts","sourceRoot":"","sources":["../../src/daemon/verification-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"verification-listener.d.ts","sourceRoot":"","sources":["../../src/daemon/verification-listener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,oBAAoB;IAS7B,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,sBAAsB,CAAC;IAVjC,SAAS,UAAQ;IACjB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAgC;IAC3C,eAAe,kBAAmD;IACzE,OAAO,CAAC,mBAAmB,CAAyC;gBAG1D,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,MAAM,EACpB,sBAAsB,CAAC,EAAE,MAAM,EAAE,YAAA;IAOrC,cAAc;IAYpB,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,MAAM;IAkBhB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAgB/C,SAAS;IAST,YAAY,CAAC,MAAM,EAAE,MAAM;IAe3B,KAAK;IAmDX,IAAI;CAKL"}
|
|
@@ -1,67 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const logger_1 = require("../logger");
|
|
8
|
-
const service_2 = require("../verification/service");
|
|
9
|
-
class VerificationListener {
|
|
1
|
+
import { lexicons } from '@atproto/api';
|
|
2
|
+
import { BackgroundQueue } from '../background.js';
|
|
3
|
+
import { Jetstream } from '../jetstream/service.js';
|
|
4
|
+
import { verificationLogger } from '../logger.js';
|
|
5
|
+
import { VerificationService } from '../verification/service.js';
|
|
6
|
+
export class VerificationListener {
|
|
10
7
|
constructor(db, jetstreamUrl, verifierIssuersToIndex) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true,
|
|
21
|
-
value: jetstreamUrl
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(this, "verifierIssuersToIndex", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
configurable: true,
|
|
26
|
-
writable: true,
|
|
27
|
-
value: verifierIssuersToIndex
|
|
28
|
-
});
|
|
29
|
-
Object.defineProperty(this, "destroyed", {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true,
|
|
32
|
-
writable: true,
|
|
33
|
-
value: false
|
|
34
|
-
});
|
|
35
|
-
Object.defineProperty(this, "cursor", {
|
|
36
|
-
enumerable: true,
|
|
37
|
-
configurable: true,
|
|
38
|
-
writable: true,
|
|
39
|
-
value: void 0
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "jetstream", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: null
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(this, "collection", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: 'app.bsky.graph.verification'
|
|
52
|
-
});
|
|
53
|
-
Object.defineProperty(this, "backgroundQueue", {
|
|
54
|
-
enumerable: true,
|
|
55
|
-
configurable: true,
|
|
56
|
-
writable: true,
|
|
57
|
-
value: new background_1.BackgroundQueue(this.db, { concurrency: 1 })
|
|
58
|
-
});
|
|
59
|
-
Object.defineProperty(this, "verificationService", {
|
|
60
|
-
enumerable: true,
|
|
61
|
-
configurable: true,
|
|
62
|
-
writable: true,
|
|
63
|
-
value: service_2.VerificationService.creator()(this.db)
|
|
64
|
-
});
|
|
8
|
+
this.db = db;
|
|
9
|
+
this.jetstreamUrl = jetstreamUrl;
|
|
10
|
+
this.verifierIssuersToIndex = verifierIssuersToIndex;
|
|
11
|
+
this.destroyed = false;
|
|
12
|
+
this.jetstream = null;
|
|
13
|
+
this.collection = 'app.bsky.graph.verification';
|
|
14
|
+
this.backgroundQueue = new BackgroundQueue(this.db, { concurrency: 1 });
|
|
15
|
+
this.verificationService = VerificationService.creator()(this.db);
|
|
65
16
|
}
|
|
66
17
|
// When the queue has capacity, this method returns true which means we can continue to handle events
|
|
67
18
|
// otherwise, it will close jetstream connection and wait for all previously queued events to be processed first
|
|
@@ -70,7 +21,7 @@ class VerificationListener {
|
|
|
70
21
|
async ensureCoolDown() {
|
|
71
22
|
const { waitingCount, runningCount } = this.backgroundQueue.getStats();
|
|
72
23
|
if (waitingCount > 50 || runningCount > 50) {
|
|
73
|
-
|
|
24
|
+
verificationLogger.warn(`Background queue is full, pausing listener`);
|
|
74
25
|
this.jetstream?.close();
|
|
75
26
|
await this.backgroundQueue.processAll();
|
|
76
27
|
await this.start();
|
|
@@ -88,7 +39,7 @@ class VerificationListener {
|
|
|
88
39
|
await this.updateCursor(cursor);
|
|
89
40
|
}
|
|
90
41
|
catch (err) {
|
|
91
|
-
|
|
42
|
+
verificationLogger.error(err, 'Error handling verification create event');
|
|
92
43
|
}
|
|
93
44
|
});
|
|
94
45
|
}
|
|
@@ -101,7 +52,7 @@ class VerificationListener {
|
|
|
101
52
|
await this.updateCursor(cursor);
|
|
102
53
|
}
|
|
103
54
|
catch (err) {
|
|
104
|
-
|
|
55
|
+
verificationLogger.error(err, 'Error handling verification delete event');
|
|
105
56
|
}
|
|
106
57
|
});
|
|
107
58
|
}
|
|
@@ -126,7 +77,7 @@ class VerificationListener {
|
|
|
126
77
|
}
|
|
127
78
|
async start() {
|
|
128
79
|
await this.getCursor();
|
|
129
|
-
this.jetstream = new
|
|
80
|
+
this.jetstream = new Jetstream({
|
|
130
81
|
endpoint: this.jetstreamUrl,
|
|
131
82
|
cursor: this.cursor || undefined,
|
|
132
83
|
wantedCollections: [this.collection],
|
|
@@ -137,9 +88,9 @@ class VerificationListener {
|
|
|
137
88
|
await this.jetstream.start({
|
|
138
89
|
onCreate: {
|
|
139
90
|
[this.collection]: async (e) => {
|
|
140
|
-
const recordValidity =
|
|
91
|
+
const recordValidity = lexicons.validate(this.collection, e.commit.record);
|
|
141
92
|
if (!recordValidity.success) {
|
|
142
|
-
|
|
93
|
+
verificationLogger.error(recordValidity.error, 'Invalid verification record in the firehose');
|
|
143
94
|
return;
|
|
144
95
|
}
|
|
145
96
|
const hasCapacity = await this.ensureCoolDown();
|
|
@@ -167,5 +118,4 @@ class VerificationListener {
|
|
|
167
118
|
this.destroyed = true;
|
|
168
119
|
}
|
|
169
120
|
}
|
|
170
|
-
exports.VerificationListener = VerificationListener;
|
|
171
121
|
//# sourceMappingURL=verification-listener.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-listener.js","sourceRoot":"","sources":["../../src/daemon/verification-listener.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification-listener.js","sourceRoot":"","sources":["../../src/daemon/verification-listener.ts"],"names":[],"mappings":"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","sourcesContent":["import { lexicons } from '@atproto/api'\nimport { BackgroundQueue } from '../background.js'\nimport { Database } from '../db/index.js'\nimport { CommitCreateEvent, Jetstream } from '../jetstream/service.js'\nimport { verificationLogger } from '../logger.js'\nimport { VerificationService } from '../verification/service.js'\n\ntype VerificationRecord = {\n subject: string\n handle: string\n displayName: string\n createdAt: string\n}\n\nexport class VerificationListener {\n destroyed = false\n private cursor?: number\n private jetstream: Jetstream | null = null\n private collection = 'app.bsky.graph.verification'\n public backgroundQueue = new BackgroundQueue(this.db, { concurrency: 1 })\n private verificationService = VerificationService.creator()(this.db)\n\n constructor(\n private db: Database,\n private jetstreamUrl: string,\n private verifierIssuersToIndex?: string[],\n ) {}\n\n // When the queue has capacity, this method returns true which means we can continue to handle events\n // otherwise, it will close jetstream connection and wait for all previously queued events to be processed first\n // and then start jetstream listener again before returning false. At that point, the previous listeners should\n // have updates the cursor in db to the last processed event and the new listener will start from that cursor\n async ensureCoolDown() {\n const { waitingCount, runningCount } = this.backgroundQueue.getStats()\n if (waitingCount > 50 || runningCount > 50) {\n verificationLogger.warn(`Background queue is full, pausing listener`)\n this.jetstream?.close()\n await this.backgroundQueue.processAll()\n await this.start()\n return false\n }\n return true\n }\n\n handleNewVerification(\n issuer: string,\n uri: string,\n cid: string,\n record: VerificationRecord,\n cursor: number,\n ) {\n this.backgroundQueue.add(async () => {\n try {\n const { subject, handle, displayName, createdAt } = record\n await this.verificationService.create([\n { uri, cid, issuer, subject, handle, displayName, createdAt },\n ])\n await this.updateCursor(cursor)\n } catch (err) {\n verificationLogger.error(\n err,\n 'Error handling verification create event',\n )\n }\n })\n }\n\n handleDeletedVerification(uri: string, cursor: number) {\n this.backgroundQueue.add(async () => {\n try {\n await this.verificationService.markRevoked({\n uris: [uri],\n })\n await this.updateCursor(cursor)\n } catch (err) {\n verificationLogger.error(\n err,\n 'Error handling verification delete event',\n )\n }\n })\n }\n\n async getCursor() {\n await this.verificationService.createFirehoseCursor()\n const cursor = await this.verificationService.getFirehoseCursor()\n if (cursor) {\n this.cursor = cursor\n }\n return this.cursor\n }\n\n async updateCursor(cursor: number) {\n // Assuming cursors are always incremental, if we have processed an event with higher value cursor, let's not update to a lower value\n if (this.cursor && this.cursor >= cursor) {\n return\n }\n\n // This will only update if the cursor is higher than the current one in db\n const updatedCursor =\n await this.verificationService.updateFirehoseCursor(cursor)\n\n if (updatedCursor) {\n this.cursor = updatedCursor\n }\n }\n\n async start() {\n await this.getCursor()\n\n this.jetstream = new Jetstream({\n endpoint: this.jetstreamUrl,\n cursor: this.cursor || undefined,\n wantedCollections: [this.collection],\n wantedDids: this.verifierIssuersToIndex?.length\n ? this.verifierIssuersToIndex\n : undefined,\n })\n\n await this.jetstream.start({\n onCreate: {\n [this.collection]: async (e: CommitCreateEvent<VerificationRecord>) => {\n const recordValidity = lexicons.validate(\n this.collection,\n e.commit.record,\n )\n\n if (!recordValidity.success) {\n verificationLogger.error(\n recordValidity.error,\n 'Invalid verification record in the firehose',\n )\n return\n }\n\n const hasCapacity = await this.ensureCoolDown()\n if (hasCapacity) {\n const issuer = e.did\n const { record, rkey, collection, cid } = e.commit\n const uri = `at://${issuer}/${collection}/${rkey}`\n this.handleNewVerification(issuer, uri, cid, record, e.time_us)\n }\n },\n },\n onDelete: {\n [this.collection]: async (e) => {\n const hasCapacity = await this.ensureCoolDown()\n if (hasCapacity) {\n this.handleDeletedVerification(\n `at://${e.did}/${e.commit.collection}/${e.commit.rkey}`,\n e.time_us,\n )\n }\n },\n },\n })\n }\n\n stop() {\n this.jetstream?.close()\n this.backgroundQueue.destroy()\n this.destroyed = true\n }\n}\n"]}
|