@atproto/ozone 0.1.74 → 0.1.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/bin/migration-create.ts +2 -2
  3. package/dist/api/chat/getActorMetadata.d.ts +1 -1
  4. package/dist/api/chat/getActorMetadata.d.ts.map +1 -1
  5. package/dist/api/chat/getActorMetadata.js.map +1 -1
  6. package/dist/api/chat/getMessageContext.d.ts +1 -1
  7. package/dist/api/chat/getMessageContext.d.ts.map +1 -1
  8. package/dist/api/chat/getMessageContext.js.map +1 -1
  9. package/dist/api/chat/index.d.ts +1 -1
  10. package/dist/api/chat/index.d.ts.map +1 -1
  11. package/dist/api/communication/createTemplate.d.ts +1 -1
  12. package/dist/api/communication/createTemplate.d.ts.map +1 -1
  13. package/dist/api/communication/createTemplate.js.map +1 -1
  14. package/dist/api/communication/deleteTemplate.d.ts +1 -1
  15. package/dist/api/communication/deleteTemplate.d.ts.map +1 -1
  16. package/dist/api/communication/listTemplates.d.ts +1 -1
  17. package/dist/api/communication/listTemplates.d.ts.map +1 -1
  18. package/dist/api/communication/updateTemplate.d.ts +1 -1
  19. package/dist/api/communication/updateTemplate.d.ts.map +1 -1
  20. package/dist/api/communication/updateTemplate.js.map +1 -1
  21. package/dist/api/health.d.ts +3 -3
  22. package/dist/api/health.d.ts.map +1 -1
  23. package/dist/api/health.js +2 -5
  24. package/dist/api/health.js.map +1 -1
  25. package/dist/api/index.d.ts +1 -1
  26. package/dist/api/index.d.ts.map +1 -1
  27. package/dist/api/index.js +20 -20
  28. package/dist/api/index.js.map +1 -1
  29. package/dist/api/label/fetchLabels.d.ts +1 -1
  30. package/dist/api/label/fetchLabels.d.ts.map +1 -1
  31. package/dist/api/label/queryLabels.d.ts +1 -1
  32. package/dist/api/label/queryLabels.d.ts.map +1 -1
  33. package/dist/api/label/queryLabels.js +1 -1
  34. package/dist/api/label/queryLabels.js.map +1 -1
  35. package/dist/api/label/subscribeLabels.d.ts +1 -1
  36. package/dist/api/label/subscribeLabels.d.ts.map +1 -1
  37. package/dist/api/label/subscribeLabels.js +2 -5
  38. package/dist/api/label/subscribeLabels.js.map +1 -1
  39. package/dist/api/moderation/emitEvent.d.ts +1 -1
  40. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  41. package/dist/api/moderation/emitEvent.js +5 -5
  42. package/dist/api/moderation/emitEvent.js.map +1 -1
  43. package/dist/api/moderation/getEvent.d.ts +1 -1
  44. package/dist/api/moderation/getEvent.d.ts.map +1 -1
  45. package/dist/api/moderation/getRecord.d.ts +1 -1
  46. package/dist/api/moderation/getRecord.d.ts.map +1 -1
  47. package/dist/api/moderation/getRecord.js +1 -1
  48. package/dist/api/moderation/getRecord.js.map +1 -1
  49. package/dist/api/moderation/getRecords.d.ts +1 -1
  50. package/dist/api/moderation/getRecords.d.ts.map +1 -1
  51. package/dist/api/moderation/getRecords.js +1 -1
  52. package/dist/api/moderation/getRecords.js.map +1 -1
  53. package/dist/api/moderation/getRepo.d.ts +1 -1
  54. package/dist/api/moderation/getRepo.d.ts.map +1 -1
  55. package/dist/api/moderation/getRepos.d.ts +1 -1
  56. package/dist/api/moderation/getRepos.d.ts.map +1 -1
  57. package/dist/api/moderation/queryEvents.d.ts +1 -1
  58. package/dist/api/moderation/queryEvents.d.ts.map +1 -1
  59. package/dist/api/moderation/queryStatuses.d.ts +1 -1
  60. package/dist/api/moderation/queryStatuses.d.ts.map +1 -1
  61. package/dist/api/moderation/searchRepos.d.ts +1 -1
  62. package/dist/api/moderation/searchRepos.d.ts.map +1 -1
  63. package/dist/api/moderation/searchRepos.js.map +1 -1
  64. package/dist/api/proxied.d.ts +1 -1
  65. package/dist/api/proxied.d.ts.map +1 -1
  66. package/dist/api/report/createReport.d.ts +1 -1
  67. package/dist/api/report/createReport.d.ts.map +1 -1
  68. package/dist/api/report/createReport.js +6 -6
  69. package/dist/api/report/createReport.js.map +1 -1
  70. package/dist/api/server/getConfig.d.ts +1 -1
  71. package/dist/api/server/getConfig.d.ts.map +1 -1
  72. package/dist/api/server/getConfig.js.map +1 -1
  73. package/dist/api/set/addValues.d.ts +1 -1
  74. package/dist/api/set/addValues.d.ts.map +1 -1
  75. package/dist/api/set/deleteSet.d.ts +1 -1
  76. package/dist/api/set/deleteSet.d.ts.map +1 -1
  77. package/dist/api/set/deleteValues.d.ts +1 -1
  78. package/dist/api/set/deleteValues.d.ts.map +1 -1
  79. package/dist/api/set/getValues.d.ts +1 -1
  80. package/dist/api/set/getValues.d.ts.map +1 -1
  81. package/dist/api/set/querySets.d.ts +1 -1
  82. package/dist/api/set/querySets.d.ts.map +1 -1
  83. package/dist/api/set/upsertSet.d.ts +1 -1
  84. package/dist/api/set/upsertSet.d.ts.map +1 -1
  85. package/dist/api/setting/listOptions.d.ts +1 -1
  86. package/dist/api/setting/listOptions.d.ts.map +1 -1
  87. package/dist/api/setting/removeOptions.d.ts +1 -1
  88. package/dist/api/setting/removeOptions.d.ts.map +1 -1
  89. package/dist/api/setting/upsertOption.d.ts +1 -1
  90. package/dist/api/setting/upsertOption.d.ts.map +1 -1
  91. package/dist/api/setting/upsertOption.js +2 -2
  92. package/dist/api/setting/upsertOption.js.map +1 -1
  93. package/dist/api/team/addMember.d.ts +1 -1
  94. package/dist/api/team/addMember.d.ts.map +1 -1
  95. package/dist/api/team/deleteMember.d.ts +1 -1
  96. package/dist/api/team/deleteMember.d.ts.map +1 -1
  97. package/dist/api/team/listMembers.d.ts +1 -1
  98. package/dist/api/team/listMembers.d.ts.map +1 -1
  99. package/dist/api/team/updateMember.d.ts +1 -1
  100. package/dist/api/team/updateMember.d.ts.map +1 -1
  101. package/dist/api/util.d.ts +4 -4
  102. package/dist/api/util.d.ts.map +1 -1
  103. package/dist/api/util.js +1 -1
  104. package/dist/api/util.js.map +1 -1
  105. package/dist/api/well-known.d.ts +3 -3
  106. package/dist/api/well-known.d.ts.map +1 -1
  107. package/dist/api/well-known.js +2 -5
  108. package/dist/api/well-known.js.map +1 -1
  109. package/dist/communication-service/template.d.ts +1 -1
  110. package/dist/communication-service/template.d.ts.map +1 -1
  111. package/dist/config/config.d.ts.map +1 -1
  112. package/dist/config/config.js.map +1 -1
  113. package/dist/config/secrets.js +3 -3
  114. package/dist/config/secrets.js.map +1 -1
  115. package/dist/context.d.ts +9 -10
  116. package/dist/context.d.ts.map +1 -1
  117. package/dist/context.js +11 -12
  118. package/dist/context.js.map +1 -1
  119. package/dist/daemon/blob-diverter.d.ts +2 -2
  120. package/dist/daemon/blob-diverter.d.ts.map +1 -1
  121. package/dist/daemon/blob-diverter.js +3 -3
  122. package/dist/daemon/blob-diverter.js.map +1 -1
  123. package/dist/daemon/context.d.ts +1 -2
  124. package/dist/daemon/context.d.ts.map +1 -1
  125. package/dist/daemon/context.js +6 -7
  126. package/dist/daemon/context.js.map +1 -1
  127. package/dist/daemon/event-pusher.d.ts +3 -3
  128. package/dist/daemon/event-pusher.d.ts.map +1 -1
  129. package/dist/daemon/event-pusher.js +2 -2
  130. package/dist/daemon/event-pusher.js.map +1 -1
  131. package/dist/daemon/event-reverser.d.ts +1 -1
  132. package/dist/daemon/event-reverser.d.ts.map +1 -1
  133. package/dist/daemon/event-reverser.js.map +1 -1
  134. package/dist/daemon/index.d.ts +1 -1
  135. package/dist/daemon/index.d.ts.map +1 -1
  136. package/dist/daemon/index.js +2 -5
  137. package/dist/daemon/index.js.map +1 -1
  138. package/dist/daemon/materialized-view-refresher.js +1 -1
  139. package/dist/daemon/materialized-view-refresher.js.map +1 -1
  140. package/dist/db/index.d.ts +2 -2
  141. package/dist/db/index.d.ts.map +1 -1
  142. package/dist/db/index.js +5 -5
  143. package/dist/db/index.js.map +1 -1
  144. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.d.ts.map +1 -1
  145. package/dist/db/migrations/20241220T144630860Z-stats-materialized-views.js.map +1 -1
  146. package/dist/db/schema/index.d.ts +11 -11
  147. package/dist/db/schema/index.d.ts.map +1 -1
  148. package/dist/db/schema/moderation_subject_status.d.ts +1 -1
  149. package/dist/db/schema/moderation_subject_status.d.ts.map +1 -1
  150. package/dist/db/types.d.ts +1 -1
  151. package/dist/db/types.d.ts.map +1 -1
  152. package/dist/db/types.js.map +1 -1
  153. package/dist/error.d.ts.map +1 -1
  154. package/dist/error.js.map +1 -1
  155. package/dist/index.d.ts +3 -3
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +9 -9
  158. package/dist/index.js.map +1 -1
  159. package/dist/lexicon/lexicons.d.ts +56 -2
  160. package/dist/lexicon/lexicons.d.ts.map +1 -1
  161. package/dist/lexicon/lexicons.js +32 -0
  162. package/dist/lexicon/lexicons.js.map +1 -1
  163. package/dist/lexicon/types/app/bsky/actor/defs.d.ts +19 -1
  164. package/dist/lexicon/types/app/bsky/actor/defs.d.ts.map +1 -1
  165. package/dist/lexicon/types/app/bsky/actor/defs.js +10 -0
  166. package/dist/lexicon/types/app/bsky/actor/defs.js.map +1 -1
  167. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +1 -0
  168. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -1
  169. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -1
  170. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +1 -0
  171. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
  172. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  173. package/dist/logger.js +2 -25
  174. package/dist/logger.js.map +1 -1
  175. package/dist/mod-service/index.d.ts +31 -31
  176. package/dist/mod-service/index.d.ts.map +1 -1
  177. package/dist/mod-service/index.js +14 -14
  178. package/dist/mod-service/index.js.map +1 -1
  179. package/dist/mod-service/status.d.ts +24 -24
  180. package/dist/mod-service/status.d.ts.map +1 -1
  181. package/dist/mod-service/subject.d.ts +3 -3
  182. package/dist/mod-service/subject.d.ts.map +1 -1
  183. package/dist/mod-service/subject.js.map +1 -1
  184. package/dist/mod-service/types.d.ts +2 -2
  185. package/dist/mod-service/types.d.ts.map +1 -1
  186. package/dist/mod-service/views.d.ts +6 -6
  187. package/dist/mod-service/views.d.ts.map +1 -1
  188. package/dist/mod-service/views.js +6 -7
  189. package/dist/mod-service/views.js.map +1 -1
  190. package/dist/sequencer/outbox.d.ts +1 -2
  191. package/dist/sequencer/outbox.d.ts.map +1 -1
  192. package/dist/sequencer/outbox.js +0 -1
  193. package/dist/sequencer/outbox.js.map +1 -1
  194. package/dist/sequencer/sequencer.d.ts +3 -4
  195. package/dist/sequencer/sequencer.d.ts.map +1 -1
  196. package/dist/sequencer/sequencer.js +3 -4
  197. package/dist/sequencer/sequencer.js.map +1 -1
  198. package/dist/set/service.d.ts +2 -2
  199. package/dist/set/service.d.ts.map +1 -1
  200. package/dist/set/service.js.map +1 -1
  201. package/dist/setting/service.d.ts +3 -3
  202. package/dist/setting/service.d.ts.map +1 -1
  203. package/dist/setting/service.js.map +1 -1
  204. package/dist/setting/validators.d.ts.map +1 -1
  205. package/dist/setting/validators.js +1 -1
  206. package/dist/setting/validators.js.map +1 -1
  207. package/dist/tag-service/embed-tagger.d.ts.map +1 -1
  208. package/dist/tag-service/embed-tagger.js +1 -1
  209. package/dist/tag-service/embed-tagger.js.map +1 -1
  210. package/dist/tag-service/index.d.ts.map +1 -1
  211. package/dist/tag-service/index.js +1 -1
  212. package/dist/tag-service/index.js.map +1 -1
  213. package/dist/tag-service/language-tagger.d.ts.map +1 -1
  214. package/dist/tag-service/language-tagger.js +1 -1
  215. package/dist/tag-service/language-tagger.js.map +1 -1
  216. package/dist/team/index.d.ts +3 -3
  217. package/dist/team/index.d.ts.map +1 -1
  218. package/dist/team/index.js +2 -2
  219. package/dist/team/index.js.map +1 -1
  220. package/dist/util.d.ts +1 -1
  221. package/dist/util.d.ts.map +1 -1
  222. package/dist/util.js +1 -1
  223. package/dist/util.js.map +1 -1
  224. package/package.json +14 -11
  225. package/src/api/chat/getActorMetadata.ts +2 -2
  226. package/src/api/chat/getMessageContext.ts +2 -2
  227. package/src/api/chat/index.ts +1 -1
  228. package/src/api/communication/createTemplate.ts +2 -2
  229. package/src/api/communication/deleteTemplate.ts +1 -1
  230. package/src/api/communication/listTemplates.ts +1 -1
  231. package/src/api/communication/updateTemplate.ts +2 -2
  232. package/src/api/health.ts +4 -4
  233. package/src/api/index.ts +21 -21
  234. package/src/api/label/fetchLabels.ts +1 -1
  235. package/src/api/label/queryLabels.ts +3 -3
  236. package/src/api/label/subscribeLabels.ts +3 -3
  237. package/src/api/moderation/emitEvent.ts +6 -6
  238. package/src/api/moderation/getEvent.ts +1 -1
  239. package/src/api/moderation/getRecord.ts +2 -2
  240. package/src/api/moderation/getRecords.ts +2 -2
  241. package/src/api/moderation/getRepo.ts +1 -1
  242. package/src/api/moderation/getRepos.ts +1 -1
  243. package/src/api/moderation/queryEvents.ts +1 -1
  244. package/src/api/moderation/queryStatuses.ts +1 -1
  245. package/src/api/moderation/searchRepos.ts +2 -2
  246. package/src/api/proxied.ts +1 -1
  247. package/src/api/report/createReport.ts +5 -5
  248. package/src/api/server/getConfig.ts +1 -1
  249. package/src/api/set/addValues.ts +1 -1
  250. package/src/api/set/deleteSet.ts +1 -1
  251. package/src/api/set/deleteValues.ts +1 -1
  252. package/src/api/set/getValues.ts +1 -1
  253. package/src/api/set/querySets.ts +1 -1
  254. package/src/api/set/upsertSet.ts +1 -1
  255. package/src/api/setting/listOptions.ts +1 -1
  256. package/src/api/setting/removeOptions.ts +2 -2
  257. package/src/api/setting/upsertOption.ts +5 -5
  258. package/src/api/team/addMember.ts +1 -1
  259. package/src/api/team/deleteMember.ts +1 -1
  260. package/src/api/team/listMembers.ts +1 -1
  261. package/src/api/team/updateMember.ts +1 -1
  262. package/src/api/util.ts +11 -11
  263. package/src/api/well-known.ts +4 -4
  264. package/src/communication-service/template.ts +1 -1
  265. package/src/config/config.ts +1 -1
  266. package/src/config/secrets.ts +1 -1
  267. package/src/context.ts +13 -14
  268. package/src/daemon/blob-diverter.ts +7 -8
  269. package/src/daemon/context.ts +6 -8
  270. package/src/daemon/event-pusher.ts +6 -6
  271. package/src/daemon/event-reverser.ts +1 -1
  272. package/src/daemon/index.ts +1 -1
  273. package/src/daemon/materialized-view-refresher.ts +1 -1
  274. package/src/db/index.ts +8 -8
  275. package/src/db/migrations/20241220T144630860Z-stats-materialized-views.ts +1 -3
  276. package/src/db/pagination.ts +1 -1
  277. package/src/db/schema/index.ts +11 -12
  278. package/src/db/schema/moderation_subject_status.ts +1 -1
  279. package/src/db/types.ts +1 -1
  280. package/src/error.ts +1 -1
  281. package/src/index.ts +11 -11
  282. package/src/lexicon/lexicons.ts +37 -0
  283. package/src/lexicon/types/app/bsky/actor/defs.ts +36 -0
  284. package/src/lexicon/types/app/bsky/feed/postgate.ts +1 -0
  285. package/src/lexicon/types/app/bsky/feed/threadgate.ts +1 -0
  286. package/src/logger.ts +1 -1
  287. package/src/mod-service/index.ts +33 -33
  288. package/src/mod-service/status.ts +1 -1
  289. package/src/mod-service/subject.ts +4 -4
  290. package/src/mod-service/types.ts +2 -2
  291. package/src/mod-service/views.ts +16 -17
  292. package/src/sequencer/outbox.ts +1 -3
  293. package/src/sequencer/sequencer.ts +5 -7
  294. package/src/set/service.ts +2 -2
  295. package/src/setting/service.ts +5 -5
  296. package/src/setting/validators.ts +1 -1
  297. package/src/tag-service/embed-tagger.ts +3 -3
  298. package/src/tag-service/index.ts +3 -3
  299. package/src/tag-service/language-tagger.ts +1 -2
  300. package/src/team/index.ts +6 -6
  301. package/src/util.ts +2 -2
  302. package/tests/3p-labeler.test.ts +5 -5
  303. package/tests/_util.ts +4 -4
  304. package/tests/ack-all-subjects-of-account.test.ts +4 -4
  305. package/tests/blob-divert.test.ts +1 -1
  306. package/tests/communication-templates.test.ts +1 -1
  307. package/tests/content-tagger.test.ts +1 -1
  308. package/tests/get-config.test.ts +1 -1
  309. package/tests/get-lists.test.ts +4 -4
  310. package/tests/get-profiles.test.ts +2 -3
  311. package/tests/get-record.test.ts +4 -4
  312. package/tests/get-records.test.ts +4 -4
  313. package/tests/get-repo.test.ts +3 -3
  314. package/tests/get-repos.test.ts +3 -3
  315. package/tests/get-starter-pack.test.ts +5 -5
  316. package/tests/moderation-appeals.test.ts +6 -6
  317. package/tests/moderation-events.test.ts +4 -4
  318. package/tests/moderation-status-tags.test.ts +2 -2
  319. package/tests/moderation-statuses.test.ts +8 -8
  320. package/tests/moderation.test.ts +9 -9
  321. package/tests/protected-tags.test.ts +3 -3
  322. package/tests/query-labels.test.ts +3 -3
  323. package/tests/record-and-account-events.test.ts +8 -7
  324. package/tests/repo-search.test.ts +2 -2
  325. package/tests/report-muting.test.ts +6 -6
  326. package/tests/sequencer.test.ts +3 -3
  327. package/tests/server.test.ts +1 -1
  328. package/tests/sets.test.ts +2 -2
  329. package/tests/settings.test.ts +2 -2
  330. package/tests/takedown.test.ts +3 -12
  331. package/tests/team.test.ts +1 -1
@@ -1,6 +1,6 @@
1
- import { Server } from '../../lexicon'
2
- import AppContext from '../../context'
3
1
  import { mapDefined } from '@atproto/common'
2
+ import { AppContext } from '../../context'
3
+ import { Server } from '../../lexicon'
4
4
  import { ids } from '../../lexicon/lexicons'
5
5
 
6
6
  export default function (server: Server, ctx: AppContext) {
@@ -1,5 +1,5 @@
1
+ import { AppContext } from '../context'
1
2
  import { Server } from '../lexicon'
2
- import AppContext from '../context'
3
3
  import { ids } from '../lexicon/lexicons'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
@@ -1,15 +1,15 @@
1
+ import { ForbiddenError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
1
3
  import { Server } from '../../lexicon'
2
- import AppContext from '../../context'
3
- import { getReasonType } from '../util'
4
- import { subjectFromInput } from '../../mod-service/subject'
5
4
  import {
6
5
  REASONAPPEAL,
7
6
  ReasonType,
8
7
  } from '../../lexicon/types/com/atproto/moderation/defs'
9
- import { ForbiddenError } from '@atproto/xrpc-server'
10
- import { TagService } from '../../tag-service'
11
8
  import { ModerationService } from '../../mod-service'
9
+ import { subjectFromInput } from '../../mod-service/subject'
10
+ import { TagService } from '../../tag-service'
12
11
  import { getTagForReport } from '../../tag-service/util'
12
+ import { getReasonType } from '../util'
13
13
 
14
14
  export default function (server: Server, ctx: AppContext) {
15
15
  server.com.atproto.moderation.createReport({
@@ -1,5 +1,5 @@
1
+ import { AppContext } from '../../context'
1
2
  import { Server, TOOLS_OZONE_TEAM } from '../../lexicon'
2
- import AppContext from '../../context'
3
3
 
4
4
  export default function (server: Server, ctx: AppContext) {
5
5
  server.tools.ozone.server.getConfig({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.addValues({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.deleteSet({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.deleteValues({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.getValues({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.querySets({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.set.upsertSet({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.setting.listOptions({
@@ -1,7 +1,7 @@
1
1
  import { AuthRequiredError } from '@atproto/xrpc-server'
2
- import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
2
+ import { AppContext } from '../../context'
4
3
  import { Member } from '../../db/schema/member'
4
+ import { Server } from '../../lexicon'
5
5
 
6
6
  export default function (server: Server, ctx: AppContext) {
7
7
  server.tools.ozone.setting.removeOptions({
@@ -1,11 +1,11 @@
1
+ import assert from 'node:assert'
2
+ import { ToolsOzoneTeamDefs } from '@atproto/api'
1
3
  import { AuthRequiredError } from '@atproto/xrpc-server'
2
- import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
  import { AdminTokenOutput, ModeratorOutput } from '../../auth-verifier'
5
- import { SettingService } from '../../setting/service'
5
+ import { AppContext } from '../../context'
6
6
  import { Member } from '../../db/schema/member'
7
- import { ToolsOzoneTeamDefs } from '@atproto/api'
8
- import assert from 'node:assert'
7
+ import { Server } from '../../lexicon'
8
+ import { SettingService } from '../../setting/service'
9
9
  import { settingValidators } from '../../setting/validators'
10
10
 
11
11
  export default function (server: Server, ctx: AppContext) {
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
  import { getMemberRole } from '../util'
5
5
 
6
6
  export default function (server: Server, ctx: AppContext) {
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
 
5
5
  export default function (server: Server, ctx: AppContext) {
6
6
  server.tools.ozone.team.deleteMember({
@@ -1,5 +1,5 @@
1
+ import { AppContext } from '../../context'
1
2
  import { Server } from '../../lexicon'
2
- import AppContext from '../../context'
3
3
 
4
4
  export default function (server: Server, ctx: AppContext) {
5
5
  server.tools.ozone.team.listMembers({
@@ -1,6 +1,6 @@
1
1
  import { AuthRequiredError, InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../../context'
2
3
  import { Server } from '../../lexicon'
3
- import AppContext from '../../context'
4
4
  import { getMemberRole } from '../util'
5
5
 
6
6
  export default function (server: Server, ctx: AppContext) {
package/src/api/util.ts CHANGED
@@ -1,32 +1,32 @@
1
1
  import { InvalidRequestError } from '@atproto/xrpc-server'
2
+ import { AppContext } from '../context'
3
+ import { Member } from '../db/schema/member'
4
+ import { ModerationEvent } from '../db/schema/moderation_event'
5
+ import { ids } from '../lexicon/lexicons'
6
+ import { AccountView } from '../lexicon/types/com/atproto/admin/defs'
2
7
  import { InputSchema as ReportInput } from '../lexicon/types/com/atproto/moderation/createReport'
3
8
  import {
4
- REASONOTHER,
5
- REASONSPAM,
9
+ REASONAPPEAL,
6
10
  REASONMISLEADING,
11
+ REASONOTHER,
7
12
  REASONRUDE,
8
13
  REASONSEXUAL,
14
+ REASONSPAM,
9
15
  REASONVIOLATION,
10
- REASONAPPEAL,
11
16
  } from '../lexicon/types/com/atproto/moderation/defs'
12
- import { AccountView } from '../lexicon/types/com/atproto/admin/defs'
13
17
  import {
14
- RepoView,
15
- RepoViewDetail,
16
18
  REVIEWCLOSED,
17
19
  REVIEWESCALATED,
18
20
  REVIEWOPEN,
21
+ RepoView,
22
+ RepoViewDetail,
19
23
  } from '../lexicon/types/tools/ozone/moderation/defs'
20
- import { ModerationEvent } from '../db/schema/moderation_event'
21
- import { ModerationSubjectStatusRow } from '../mod-service/types'
22
- import AppContext from '../context'
23
- import { Member } from '../db/schema/member'
24
24
  import {
25
25
  ROLEADMIN,
26
26
  ROLEMODERATOR,
27
27
  ROLETRIAGE,
28
28
  } from '../lexicon/types/tools/ozone/team/defs'
29
- import { ids } from '../lexicon/lexicons'
29
+ import { ModerationSubjectStatusRow } from '../mod-service/types'
30
30
 
31
31
  export const getPdsAccountInfos = async (
32
32
  ctx: AppContext,
@@ -1,8 +1,8 @@
1
- import express from 'express'
2
- import AppContext from '../context'
1
+ import { Router } from 'express'
2
+ import { AppContext } from '../context'
3
3
 
4
- export const createRouter = (ctx: AppContext): express.Router => {
5
- const router = express.Router()
4
+ export const createRouter = (ctx: AppContext): Router => {
5
+ const router = Router()
6
6
 
7
7
  router.get('/.well-known/did.json', (_req, res) => {
8
8
  const hostname =
@@ -1,5 +1,5 @@
1
- import Database from '../db'
2
1
  import { Selectable } from 'kysely'
2
+ import { Database } from '../db'
3
3
  import { CommunicationTemplate } from '../db/schema/communication_template'
4
4
  import { TemplateView } from '../lexicon/types/tools/ozone/communication/defs'
5
5
 
@@ -1,6 +1,6 @@
1
1
  import assert from 'node:assert'
2
- import { OzoneEnvironment } from './env'
3
2
  import { DAY, HOUR } from '@atproto/common'
3
+ import { OzoneEnvironment } from './env'
4
4
 
5
5
  // off-config but still from env:
6
6
  // logging: LOG_LEVEL, LOG_SYSTEMS, LOG_ENABLED, LOG_DESTINATION
@@ -1,4 +1,4 @@
1
- import assert from 'assert'
1
+ import assert from 'node:assert'
2
2
  import { OzoneEnvironment } from './env'
3
3
 
4
4
  export const envToSecrets = (env: OzoneEnvironment): OzoneSecrets => {
package/src/context.ts CHANGED
@@ -1,33 +1,33 @@
1
- import express from 'express'
1
+ import assert from 'node:assert'
2
2
  import * as plc from '@did-plc/lib'
3
- import { DidCache, IdResolver, MemoryCache } from '@atproto/identity'
3
+ import express from 'express'
4
4
  import { AtpAgent } from '@atproto/api'
5
5
  import { Keypair, Secp256k1Keypair } from '@atproto/crypto'
6
+ import { DidCache, IdResolver, MemoryCache } from '@atproto/identity'
6
7
  import { createServiceAuthHeaders } from '@atproto/xrpc-server'
7
- import { Database } from './db'
8
- import { OzoneConfig, OzoneSecrets } from './config'
9
- import { ModerationService, ModerationServiceCreator } from './mod-service'
8
+ import { AuthVerifier } from './auth-verifier'
10
9
  import { BackgroundQueue } from './background'
11
- import assert from 'assert'
12
- import { EventPusher } from './daemon'
13
- import Sequencer from './sequencer/sequencer'
14
10
  import {
15
11
  CommunicationTemplateService,
16
12
  CommunicationTemplateServiceCreator,
17
13
  } from './communication-service/template'
14
+ import { OzoneConfig, OzoneSecrets } from './config'
15
+ import { EventPusher } from './daemon'
18
16
  import { BlobDiverter } from './daemon/blob-diverter'
19
- import { AuthVerifier } from './auth-verifier'
17
+ import { Database } from './db'
20
18
  import { ImageInvalidator } from './image-invalidator'
19
+ import { ModerationService, ModerationServiceCreator } from './mod-service'
20
+ import { Sequencer } from './sequencer/sequencer'
21
+ import { SetService, SetServiceCreator } from './set/service'
22
+ import { SettingService, SettingServiceCreator } from './setting/service'
21
23
  import { TeamService, TeamServiceCreator } from './team'
22
24
  import {
23
- defaultLabelerHeader,
24
- getSigningKeyId,
25
25
  LABELER_HEADER_NAME,
26
26
  ParsedLabelers,
27
+ defaultLabelerHeader,
28
+ getSigningKeyId,
27
29
  parseLabelerHeader,
28
30
  } from './util'
29
- import { SetService, SetServiceCreator } from './set/service'
30
- import { SettingService, SettingServiceCreator } from './setting/service'
31
31
 
32
32
  export type AppContextOptions = {
33
33
  db: Database
@@ -289,4 +289,3 @@ export class AppContext {
289
289
  return parsed
290
290
  }
291
291
  }
292
- export default AppContext
@@ -1,18 +1,17 @@
1
+ import { Readable } from 'node:stream'
2
+ import { finished, pipeline } from 'node:stream/promises'
3
+ import { CID } from 'multiformats/cid'
4
+ import * as undici from 'undici'
1
5
  import {
2
- createDecoders,
3
- getPdsEndpoint,
4
6
  VerifyCidTransform,
5
7
  allFulfilled,
8
+ createDecoders,
9
+ getPdsEndpoint,
6
10
  } from '@atproto/common'
7
11
  import { IdResolver } from '@atproto/identity'
8
12
  import { ResponseType, XRPCError } from '@atproto/xrpc'
9
- import { CID } from 'multiformats/cid'
10
- import { Readable } from 'node:stream'
11
- import { finished, pipeline } from 'node:stream/promises'
12
- import * as undici from 'undici'
13
-
14
13
  import { BlobDivertConfig } from '../config'
15
- import Database from '../db'
14
+ import { Database } from '../db'
16
15
  import { retryHttp } from '../util'
17
16
 
18
17
  export class BlobDiverter {
@@ -1,16 +1,16 @@
1
+ import { AtpAgent } from '@atproto/api'
2
+ import { allFulfilled } from '@atproto/common'
1
3
  import { Keypair, Secp256k1Keypair } from '@atproto/crypto'
2
- import { createServiceAuthHeaders } from '@atproto/xrpc-server'
3
4
  import { IdResolver } from '@atproto/identity'
4
- import { AtpAgent } from '@atproto/api'
5
+ import { createServiceAuthHeaders } from '@atproto/xrpc-server'
6
+ import { BackgroundQueue } from '../background'
5
7
  import { OzoneConfig, OzoneSecrets } from '../config'
6
8
  import { Database } from '../db'
7
- import { EventPusher } from './event-pusher'
8
- import { EventReverser } from './event-reverser'
9
9
  import { ModerationService } from '../mod-service'
10
- import { BackgroundQueue } from '../background'
11
10
  import { getSigningKeyId } from '../util'
11
+ import { EventPusher } from './event-pusher'
12
+ import { EventReverser } from './event-reverser'
12
13
  import { MaterializedViewRefresher } from './materialized-view-refresher'
13
- import { allFulfilled } from '@atproto/common'
14
14
 
15
15
  export type DaemonContextOptions = {
16
16
  db: Database
@@ -136,5 +136,3 @@ export class DaemonContext {
136
136
  }
137
137
  }
138
138
  }
139
-
140
- export default DaemonContext
@@ -1,14 +1,14 @@
1
1
  import assert from 'node:assert'
2
+ import { Insertable, Selectable } from 'kysely'
2
3
  import { AtpAgent } from '@atproto/api'
3
4
  import { SECOND } from '@atproto/common'
4
- import Database from '../db'
5
- import { RepoPushEventType } from '../db/schema/repo_push_event'
6
- import { retryHttp } from '../util'
7
- import { dbLogger } from '../logger'
8
- import { InputSchema } from '../lexicon/types/com/atproto/admin/updateSubjectStatus'
5
+ import { Database } from '../db'
9
6
  import { BlobPushEvent } from '../db/schema/blob_push_event'
10
- import { Insertable, Selectable } from 'kysely'
7
+ import { RepoPushEventType } from '../db/schema/repo_push_event'
11
8
  import { ids } from '../lexicon/lexicons'
9
+ import { InputSchema } from '../lexicon/types/com/atproto/admin/updateSubjectStatus'
10
+ import { dbLogger } from '../logger'
11
+ import { retryHttp } from '../util'
12
12
 
13
13
  type EventSubject = InputSchema['subject']
14
14
 
@@ -1,7 +1,7 @@
1
1
  import { MINUTE } from '@atproto/common'
2
+ import { Database } from '../db'
2
3
  import { dbLogger } from '../logger'
3
4
  import { ModerationServiceCreator, ReversalSubject } from '../mod-service'
4
- import Database from '../db'
5
5
 
6
6
  export class EventReverser {
7
7
  destroyed = false
@@ -1,6 +1,6 @@
1
1
  import { OzoneConfig, OzoneSecrets } from '../config'
2
- import DaemonContext from './context'
3
2
  import { AppContextOptions } from '../context'
3
+ import { DaemonContext } from './context'
4
4
 
5
5
  export { EventPusher } from './event-pusher'
6
6
  export { BlobDiverter } from './blob-diverter'
@@ -1,5 +1,5 @@
1
- import { MINUTE } from '@atproto/common'
2
1
  import { sql } from 'kysely'
2
+ import { MINUTE } from '@atproto/common'
3
3
  import { BackgroundQueue, PeriodicBackgroundTask } from '../background'
4
4
 
5
5
  export class MaterializedViewRefresher extends PeriodicBackgroundTask {
package/src/db/index.ts CHANGED
@@ -1,23 +1,23 @@
1
- import assert from 'assert'
1
+ import assert from 'node:assert'
2
+ import { EventEmitter } from 'node:stream'
2
3
  import {
3
4
  Kysely,
4
- PostgresDialect,
5
- Migrator,
6
5
  KyselyPlugin,
6
+ Migrator,
7
7
  PluginTransformQueryArgs,
8
8
  PluginTransformResultArgs,
9
- RootOperationNode,
9
+ PostgresDialect,
10
10
  QueryResult,
11
+ RootOperationNode,
11
12
  UnknownRow,
12
13
  } from 'kysely'
13
- import TypedEmitter from 'typed-emitter'
14
14
  import { Pool as PgPool, types as pgTypes } from 'pg'
15
- import DatabaseSchema, { DatabaseSchemaType } from './schema'
16
- import { PgOptions } from './types'
15
+ import TypedEmitter from 'typed-emitter'
17
16
  import { dbLogger } from '../logger'
18
- import { EventEmitter } from 'stream'
19
17
  import * as migrations from './migrations'
20
18
  import { CtxMigrationProvider } from './migrations/provider'
19
+ import { DatabaseSchema, DatabaseSchemaType } from './schema'
20
+ import { PgOptions } from './types'
21
21
 
22
22
  export class Database {
23
23
  pool: PgPool
@@ -1,12 +1,10 @@
1
1
  import { Kysely, sql } from 'kysely'
2
-
3
2
  import { REASONAPPEAL } from '../../lexicon/types/com/atproto/moderation/defs'
4
- import { DatabaseSchemaType } from '../schema'
5
-
6
3
  import {
7
4
  REVIEWESCALATED,
8
5
  REVIEWOPEN,
9
6
  } from '../../lexicon/types/tools/ozone/moderation/defs'
7
+ import { DatabaseSchemaType } from '../schema'
10
8
  import * as modEvent from '../schema/moderation_event'
11
9
  import * as modStatus from '../schema/moderation_subject_status'
12
10
  import * as recordEventsStats from '../schema/record_events_stats'
@@ -1,4 +1,4 @@
1
- import { sql, DynamicModule } from 'kysely'
1
+ import { DynamicModule, sql } from 'kysely'
2
2
  import { InvalidRequestError } from '@atproto/xrpc-server'
3
3
  import { AnyQb, DbRef } from './types'
4
4
 
@@ -1,20 +1,19 @@
1
1
  import { Kysely } from 'kysely'
2
- import * as modEvent from './moderation_event'
3
- import * as modSubjectStatus from './moderation_subject_status'
4
- import * as repoPushEvent from './repo_push_event'
5
- import * as recordPushEvent from './record_push_event'
2
+ import * as accountEventsStats from './account_events_stats'
3
+ import * as accountRecordEventsStats from './account_record_events_stats'
4
+ import * as accountRecordStatusStats from './account_record_status_stats'
6
5
  import * as blobPushEvent from './blob_push_event'
7
- import * as label from './label'
8
- import * as signingKey from './signing_key'
9
6
  import * as communicationTemplate from './communication_template'
10
- import * as set from './ozone_set'
7
+ import * as label from './label'
11
8
  import * as member from './member'
12
- import * as setting from './setting'
13
-
9
+ import * as modEvent from './moderation_event'
10
+ import * as modSubjectStatus from './moderation_subject_status'
11
+ import * as set from './ozone_set'
14
12
  import * as recordEventsStats from './record_events_stats'
15
- import * as accountEventsStats from './account_events_stats'
16
- import * as accountRecordEventsStats from './account_record_events_stats'
17
- import * as accountRecordStatusStats from './account_record_status_stats'
13
+ import * as recordPushEvent from './record_push_event'
14
+ import * as repoPushEvent from './repo_push_event'
15
+ import * as setting from './setting'
16
+ import * as signingKey from './signing_key'
18
17
 
19
18
  export type DatabaseSchemaType = modEvent.PartialDB &
20
19
  modSubjectStatus.PartialDB &
@@ -1,9 +1,9 @@
1
1
  import { Generated } from 'kysely'
2
2
  import {
3
3
  REVIEWCLOSED,
4
- REVIEWOPEN,
5
4
  REVIEWESCALATED,
6
5
  REVIEWNONE,
6
+ REVIEWOPEN,
7
7
  } from '../../lexicon/types/tools/ozone/moderation/defs'
8
8
 
9
9
  export const subjectStatusTableName = 'moderation_subject_status'
package/src/db/types.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Pool as PgPool } from 'pg'
2
1
  import { DynamicModule, RawBuilder, SelectQueryBuilder, sql } from 'kysely'
2
+ import { Pool as PgPool } from 'pg'
3
3
 
4
4
  export type DbRef = RawBuilder | ReturnType<DynamicModule['ref']>
5
5
 
package/src/error.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { XRPCError } from '@atproto/xrpc-server'
2
1
  import { ErrorRequestHandler } from 'express'
2
+ import { XRPCError } from '@atproto/xrpc-server'
3
3
  import { httpLogger as log } from './logger'
4
4
 
5
5
  export const handler: ErrorRequestHandler = (err, _req, res, next) => {
package/src/index.ts CHANGED
@@ -1,23 +1,23 @@
1
- import express from 'express'
2
- import http from 'http'
3
- import { AddressInfo } from 'net'
4
- import events from 'events'
5
- import { createHttpTerminator, HttpTerminator } from 'http-terminator'
6
- import cors from 'cors'
1
+ import events from 'node:events'
2
+ import http from 'node:http'
3
+ import { AddressInfo } from 'node:net'
7
4
  import compression from 'compression'
5
+ import cors from 'cors'
6
+ import express from 'express'
7
+ import { HttpTerminator, createHttpTerminator } from 'http-terminator'
8
8
  import { DAY, SECOND } from '@atproto/common'
9
9
  import API, { health, wellKnown } from './api'
10
- import * as error from './error'
11
- import { dbLogger, loggerMiddleware } from './logger'
12
10
  import { OzoneConfig, OzoneSecrets } from './config'
13
- import { createServer } from './lexicon'
14
- import AppContext, { AppContextOptions } from './context'
11
+ import { AppContext, AppContextOptions } from './context'
15
12
  import { Member } from './db/schema/member'
13
+ import * as error from './error'
14
+ import { createServer } from './lexicon'
15
+ import { dbLogger, loggerMiddleware } from './logger'
16
16
 
17
17
  export * from './config'
18
18
  export { type ImageInvalidator } from './image-invalidator'
19
19
  export { Database } from './db'
20
- export { OzoneDaemon, EventPusher, EventReverser } from './daemon'
20
+ export { EventPusher, EventReverser, OzoneDaemon } from './daemon'
21
21
  export { AppContext } from './context'
22
22
  export { httpLogger } from './logger'
23
23
 
@@ -4381,6 +4381,7 @@ export const schemaDict = {
4381
4381
  'lex:app.bsky.actor.defs#hiddenPostsPref',
4382
4382
  'lex:app.bsky.actor.defs#bskyAppStatePref',
4383
4383
  'lex:app.bsky.actor.defs#labelersPref',
4384
+ 'lex:app.bsky.actor.defs#postInteractionSettingsPref',
4384
4385
  ],
4385
4386
  },
4386
4387
  },
@@ -4714,6 +4715,38 @@ export const schemaDict = {
4714
4715
  },
4715
4716
  },
4716
4717
  },
4718
+ postInteractionSettingsPref: {
4719
+ type: 'object',
4720
+ description:
4721
+ 'Default post interaction settings for the account. These values should be applied as default values when creating new posts. These refs should mirror the threadgate and postgate records exactly.',
4722
+ required: [],
4723
+ properties: {
4724
+ threadgateAllowRules: {
4725
+ description:
4726
+ 'Matches threadgate record. List of rules defining who can reply to this users posts. If value is an empty array, no one can reply. If value is undefined, anyone can reply.',
4727
+ type: 'array',
4728
+ maxLength: 5,
4729
+ items: {
4730
+ type: 'union',
4731
+ refs: [
4732
+ 'lex:app.bsky.feed.threadgate#mentionRule',
4733
+ 'lex:app.bsky.feed.threadgate#followingRule',
4734
+ 'lex:app.bsky.feed.threadgate#listRule',
4735
+ ],
4736
+ },
4737
+ },
4738
+ postgateEmbeddingRules: {
4739
+ description:
4740
+ 'Matches postgate record. List of rules defining who can embed this users posts. If value is an empty array or is undefined, no particular rules apply and anyone can embed.',
4741
+ type: 'array',
4742
+ maxLength: 5,
4743
+ items: {
4744
+ type: 'union',
4745
+ refs: ['lex:app.bsky.feed.postgate#disableRule'],
4746
+ },
4747
+ },
4748
+ },
4749
+ },
4717
4750
  },
4718
4751
  },
4719
4752
  AppBskyActorGetPreferences: {
@@ -7120,6 +7153,8 @@ export const schemaDict = {
7120
7153
  'List of AT-URIs embedding this post that the author has detached from.',
7121
7154
  },
7122
7155
  embeddingRules: {
7156
+ description:
7157
+ 'List of rules defining who can embed this post. If value is an empty array or is undefined, no particular rules apply and anyone can embed.',
7123
7158
  type: 'array',
7124
7159
  maxLength: 5,
7125
7160
  items: {
@@ -7333,6 +7368,8 @@ export const schemaDict = {
7333
7368
  description: 'Reference (AT-URI) to the post record.',
7334
7369
  },
7335
7370
  allow: {
7371
+ description:
7372
+ 'List of rules defining who can reply to this post. If value is an empty array, no one can reply. If value is undefined, anyone can reply.',
7336
7373
  type: 'array',
7337
7374
  maxLength: 5,
7338
7375
  items: {