@atproto/ozone 0.1.14 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/api/chat/getActorMetadata.d.ts +4 -0
  3. package/dist/api/chat/getActorMetadata.d.ts.map +1 -0
  4. package/dist/api/chat/getActorMetadata.js +20 -0
  5. package/dist/api/chat/getActorMetadata.js.map +1 -0
  6. package/dist/api/chat/getMessageContext.d.ts +4 -0
  7. package/dist/api/chat/getMessageContext.d.ts.map +1 -0
  8. package/dist/api/chat/getMessageContext.js +34 -0
  9. package/dist/api/chat/getMessageContext.js.map +1 -0
  10. package/dist/api/chat/index.d.ts +4 -0
  11. package/dist/api/chat/index.d.ts.map +1 -0
  12. package/dist/api/chat/index.js +14 -0
  13. package/dist/api/chat/index.js.map +1 -0
  14. package/dist/api/index.d.ts.map +1 -1
  15. package/dist/api/index.js +2 -0
  16. package/dist/api/index.js.map +1 -1
  17. package/dist/api/moderation/emitEvent.d.ts.map +1 -1
  18. package/dist/api/moderation/emitEvent.js +22 -0
  19. package/dist/api/moderation/emitEvent.js.map +1 -1
  20. package/dist/api/moderation/getRecord.d.ts.map +1 -1
  21. package/dist/api/moderation/getRecord.js +3 -2
  22. package/dist/api/moderation/getRecord.js.map +1 -1
  23. package/dist/api/moderation/getRepo.d.ts.map +1 -1
  24. package/dist/api/moderation/getRepo.js +3 -2
  25. package/dist/api/moderation/getRepo.js.map +1 -1
  26. package/dist/api/proxied.d.ts.map +1 -1
  27. package/dist/api/proxied.js +10 -0
  28. package/dist/api/proxied.js.map +1 -1
  29. package/dist/api/util.js +1 -0
  30. package/dist/api/util.js.map +1 -1
  31. package/dist/config/config.d.ts +5 -0
  32. package/dist/config/config.d.ts.map +1 -1
  33. package/dist/config/config.js +9 -0
  34. package/dist/config/config.js.map +1 -1
  35. package/dist/config/env.d.ts +2 -0
  36. package/dist/config/env.d.ts.map +1 -1
  37. package/dist/config/env.js +2 -0
  38. package/dist/config/env.js.map +1 -1
  39. package/dist/context.d.ts +10 -0
  40. package/dist/context.d.ts.map +1 -1
  41. package/dist/context.js +26 -0
  42. package/dist/context.js.map +1 -1
  43. package/dist/db/migrations/20240506T225055595Z-message-subject.d.ts +4 -0
  44. package/dist/db/migrations/20240506T225055595Z-message-subject.d.ts.map +1 -0
  45. package/dist/db/migrations/20240506T225055595Z-message-subject.js +24 -0
  46. package/dist/db/migrations/20240506T225055595Z-message-subject.js.map +1 -0
  47. package/dist/db/migrations/index.d.ts +1 -0
  48. package/dist/db/migrations/index.d.ts.map +1 -1
  49. package/dist/db/migrations/index.js +2 -1
  50. package/dist/db/migrations/index.js.map +1 -1
  51. package/dist/db/schema/moderation_event.d.ts +2 -1
  52. package/dist/db/schema/moderation_event.d.ts.map +1 -1
  53. package/dist/lexicon/index.d.ts +59 -0
  54. package/dist/lexicon/index.d.ts.map +1 -1
  55. package/dist/lexicon/index.js +164 -1
  56. package/dist/lexicon/index.js.map +1 -1
  57. package/dist/lexicon/lexicons.d.ts +898 -0
  58. package/dist/lexicon/lexicons.d.ts.map +1 -1
  59. package/dist/lexicon/lexicons.js +924 -0
  60. package/dist/lexicon/lexicons.js.map +1 -1
  61. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts +11 -0
  62. package/dist/lexicon/types/chat/bsky/actor/declaration.d.ts.map +1 -0
  63. package/dist/lexicon/types/chat/bsky/actor/declaration.js +17 -0
  64. package/dist/lexicon/types/chat/bsky/actor/declaration.js.map +1 -0
  65. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts +21 -0
  66. package/dist/lexicon/types/chat/bsky/actor/defs.d.ts.map +1 -0
  67. package/dist/lexicon/types/chat/bsky/actor/defs.js +16 -0
  68. package/dist/lexicon/types/chat/bsky/actor/defs.js.map +1 -0
  69. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts +33 -0
  70. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.d.ts.map +1 -0
  71. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js +3 -0
  72. package/dist/lexicon/types/chat/bsky/actor/deleteAccount.js.map +1 -0
  73. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts +32 -0
  74. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.d.ts.map +1 -0
  75. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js +3 -0
  76. package/dist/lexicon/types/chat/bsky/actor/exportAccountData.js.map +1 -0
  77. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +109 -0
  78. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -0
  79. package/dist/lexicon/types/chat/bsky/convo/defs.js +106 -0
  80. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -0
  81. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts +39 -0
  82. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.d.ts.map +1 -0
  83. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js +3 -0
  84. package/dist/lexicon/types/chat/bsky/convo/deleteMessageForSelf.js.map +1 -0
  85. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts +36 -0
  86. package/dist/lexicon/types/chat/bsky/convo/getConvo.d.ts.map +1 -0
  87. package/dist/lexicon/types/chat/bsky/convo/getConvo.js +3 -0
  88. package/dist/lexicon/types/chat/bsky/convo/getConvo.js.map +1 -0
  89. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts +36 -0
  90. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.d.ts.map +1 -0
  91. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js +3 -0
  92. package/dist/lexicon/types/chat/bsky/convo/getConvoForMembers.js.map +1 -0
  93. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts +40 -0
  94. package/dist/lexicon/types/chat/bsky/convo/getLog.d.ts.map +1 -0
  95. package/dist/lexicon/types/chat/bsky/convo/getLog.js +3 -0
  96. package/dist/lexicon/types/chat/bsky/convo/getLog.js.map +1 -0
  97. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts +42 -0
  98. package/dist/lexicon/types/chat/bsky/convo/getMessages.d.ts.map +1 -0
  99. package/dist/lexicon/types/chat/bsky/convo/getMessages.js +3 -0
  100. package/dist/lexicon/types/chat/bsky/convo/getMessages.js.map +1 -0
  101. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts +41 -0
  102. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.d.ts.map +1 -0
  103. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js +3 -0
  104. package/dist/lexicon/types/chat/bsky/convo/leaveConvo.js.map +1 -0
  105. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts +38 -0
  106. package/dist/lexicon/types/chat/bsky/convo/listConvos.d.ts.map +1 -0
  107. package/dist/lexicon/types/chat/bsky/convo/listConvos.js +3 -0
  108. package/dist/lexicon/types/chat/bsky/convo/listConvos.js.map +1 -0
  109. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts +41 -0
  110. package/dist/lexicon/types/chat/bsky/convo/muteConvo.d.ts.map +1 -0
  111. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js +3 -0
  112. package/dist/lexicon/types/chat/bsky/convo/muteConvo.js.map +1 -0
  113. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts +39 -0
  114. package/dist/lexicon/types/chat/bsky/convo/sendMessage.d.ts.map +1 -0
  115. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js +3 -0
  116. package/dist/lexicon/types/chat/bsky/convo/sendMessage.js.map +1 -0
  117. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts +49 -0
  118. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.d.ts.map +1 -0
  119. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js +16 -0
  120. package/dist/lexicon/types/chat/bsky/convo/sendMessageBatch.js.map +1 -0
  121. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts +41 -0
  122. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.d.ts.map +1 -0
  123. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js +3 -0
  124. package/dist/lexicon/types/chat/bsky/convo/unmuteConvo.js.map +1 -0
  125. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts +42 -0
  126. package/dist/lexicon/types/chat/bsky/convo/updateRead.d.ts.map +1 -0
  127. package/dist/lexicon/types/chat/bsky/convo/updateRead.js +3 -0
  128. package/dist/lexicon/types/chat/bsky/convo/updateRead.js.map +1 -0
  129. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts +47 -0
  130. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.d.ts.map +1 -0
  131. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js +16 -0
  132. package/dist/lexicon/types/chat/bsky/moderation/getActorMetadata.js.map +1 -0
  133. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts +43 -0
  134. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.d.ts.map +1 -0
  135. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js +3 -0
  136. package/dist/lexicon/types/chat/bsky/moderation/getMessageContext.js.map +1 -0
  137. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts +31 -0
  138. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.d.ts.map +1 -0
  139. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js +3 -0
  140. package/dist/lexicon/types/chat/bsky/moderation/updateActorAccess.js.map +1 -0
  141. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +2 -1
  142. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  143. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  144. package/dist/mod-service/index.d.ts +2 -1
  145. package/dist/mod-service/index.d.ts.map +1 -1
  146. package/dist/mod-service/index.js +10 -2
  147. package/dist/mod-service/index.js.map +1 -1
  148. package/dist/mod-service/subject.d.ts +35 -2
  149. package/dist/mod-service/subject.d.ts.map +1 -1
  150. package/dist/mod-service/subject.js +85 -1
  151. package/dist/mod-service/subject.js.map +1 -1
  152. package/dist/mod-service/views.d.ts +5 -2
  153. package/dist/mod-service/views.d.ts.map +1 -1
  154. package/dist/mod-service/views.js +17 -6
  155. package/dist/mod-service/views.js.map +1 -1
  156. package/dist/util.d.ts +8 -0
  157. package/dist/util.d.ts.map +1 -1
  158. package/dist/util.js +41 -1
  159. package/dist/util.js.map +1 -1
  160. package/package.json +5 -4
  161. package/src/api/chat/getActorMetadata.ts +22 -0
  162. package/src/api/chat/getMessageContext.ts +39 -0
  163. package/src/api/chat/index.ts +10 -0
  164. package/src/api/index.ts +2 -0
  165. package/src/api/moderation/emitEvent.ts +31 -0
  166. package/src/api/moderation/getRecord.ts +3 -2
  167. package/src/api/moderation/getRepo.ts +3 -2
  168. package/src/api/proxied.ts +14 -0
  169. package/src/api/util.ts +1 -0
  170. package/src/config/config.ts +16 -0
  171. package/src/config/env.ts +4 -0
  172. package/src/context.ts +36 -1
  173. package/src/db/migrations/20240506T225055595Z-message-subject.ts +21 -0
  174. package/src/db/migrations/index.ts +1 -0
  175. package/src/db/schema/moderation_event.ts +5 -1
  176. package/src/lexicon/index.ts +254 -0
  177. package/src/lexicon/lexicons.ts +926 -0
  178. package/src/lexicon/types/chat/bsky/actor/declaration.ts +25 -0
  179. package/src/lexicon/types/chat/bsky/actor/defs.ts +34 -0
  180. package/src/lexicon/types/chat/bsky/actor/deleteAccount.ts +42 -0
  181. package/src/lexicon/types/chat/bsky/actor/exportAccountData.ts +38 -0
  182. package/src/lexicon/types/chat/bsky/convo/defs.ts +215 -0
  183. package/src/lexicon/types/chat/bsky/convo/deleteMessageForSelf.ts +48 -0
  184. package/src/lexicon/types/chat/bsky/convo/getConvo.ts +46 -0
  185. package/src/lexicon/types/chat/bsky/convo/getConvoForMembers.ts +46 -0
  186. package/src/lexicon/types/chat/bsky/convo/getLog.ts +53 -0
  187. package/src/lexicon/types/chat/bsky/convo/getMessages.ts +53 -0
  188. package/src/lexicon/types/chat/bsky/convo/leaveConvo.ts +50 -0
  189. package/src/lexicon/types/chat/bsky/convo/listConvos.ts +48 -0
  190. package/src/lexicon/types/chat/bsky/convo/muteConvo.ts +50 -0
  191. package/src/lexicon/types/chat/bsky/convo/sendMessage.ts +48 -0
  192. package/src/lexicon/types/chat/bsky/convo/sendMessageBatch.ts +68 -0
  193. package/src/lexicon/types/chat/bsky/convo/unmuteConvo.ts +50 -0
  194. package/src/lexicon/types/chat/bsky/convo/updateRead.ts +51 -0
  195. package/src/lexicon/types/chat/bsky/moderation/getActorMetadata.ts +67 -0
  196. package/src/lexicon/types/chat/bsky/moderation/getMessageContext.ts +54 -0
  197. package/src/lexicon/types/chat/bsky/moderation/updateActorAccess.ts +40 -0
  198. package/src/lexicon/types/tools/ozone/moderation/defs.ts +2 -0
  199. package/src/mod-service/index.ts +10 -3
  200. package/src/mod-service/subject.ts +73 -2
  201. package/src/mod-service/views.ts +30 -5
  202. package/src/util.ts +50 -0
  203. package/tests/3p-labeler.test.ts +271 -0
  204. package/tests/__snapshots__/moderation.test.ts.snap +30 -0
  205. package/tests/get-lists.test.ts +109 -0
  206. package/tests/moderation.test.ts +39 -0
@@ -182,10 +182,11 @@ class ModerationViews {
182
182
  subjectBlobs,
183
183
  };
184
184
  }
185
- async repoDetail(did) {
186
- const [repos, labels] = await Promise.all([
185
+ async repoDetail(did, labelers) {
186
+ const [repos, localLabels, externalLabels] = await Promise.all([
187
187
  this.repos([did]),
188
188
  this.labels(did),
189
+ this.getExternalLabels([did], labelers),
189
190
  ]);
190
191
  const repo = repos.get(did);
191
192
  if (!repo)
@@ -195,7 +196,7 @@ class ModerationViews {
195
196
  moderation: {
196
197
  ...repo.moderation,
197
198
  },
198
- labels,
199
+ labels: [...localLabels, ...externalLabels],
199
200
  };
200
201
  }
201
202
  async fetchRecords(subjects) {
@@ -256,7 +257,7 @@ class ModerationViews {
256
257
  });
257
258
  }, new Map());
258
259
  }
259
- async recordDetail(subject) {
260
+ async recordDetail(subject, labelers) {
260
261
  const [records, subjectStatusesResult] = await Promise.all([
261
262
  this.records([subject]),
262
263
  this.getSubjectStatus([subject.uri]),
@@ -265,9 +266,10 @@ class ModerationViews {
265
266
  if (!record)
266
267
  return undefined;
267
268
  const status = subjectStatusesResult.get(subject.uri);
268
- const [blobs, labels, subjectStatus] = await Promise.all([
269
+ const [blobs, labels, externalLabels, subjectStatus] = await Promise.all([
269
270
  this.blob(findBlobRefs(record.value)),
270
271
  this.labels(record.uri),
272
+ this.getExternalLabels([record.uri], labelers),
271
273
  status ? this.formatSubjectStatus(status) : Promise.resolve(undefined),
272
274
  ]);
273
275
  const selfLabels = getSelfLabels({
@@ -282,9 +284,18 @@ class ModerationViews {
282
284
  ...record.moderation,
283
285
  subjectStatus,
284
286
  },
285
- labels: [...labels, ...selfLabels],
287
+ labels: [...labels, ...selfLabels, ...externalLabels],
286
288
  };
287
289
  }
290
+ async getExternalLabels(subjects, labelers) {
291
+ if (!labelers?.dids.length && !labelers?.redact.size)
292
+ return [];
293
+ const { data: { labels }, } = await this.appviewAgent.api.com.atproto.label.queryLabels({
294
+ uriPatterns: subjects,
295
+ sources: labelers.dids,
296
+ });
297
+ return labels;
298
+ }
288
299
  formatReport(report) {
289
300
  return {
290
301
  id: report.id,
@@ -1 +1 @@
1
- {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/mod-service/views.ts"],"names":[],"mappings":";;;AAAA,mCAA4B;AAC5B,4CAAgF;AAEhF,4CAA4C;AAC5C,8CAA0C;AAe1C,kEAA6E;AAK7E,uEAA0E;AAC1E,uCAAqE;AACrE,iCAA+C;AAE/C,sCAAoC;AACpC,sCAAsC;AAUtC,MAAa,eAAe;IAC1B,YACU,EAAY,EACZ,UAAmB,EACnB,YAAoB,EACpB,YAAsB,EACtB,WAAuC;QAJ/C;;;;mBAAQ,EAAE;WAAU;QACpB;;;;mBAAQ,UAAU;WAAS;QAC3B;;;;mBAAQ,YAAY;WAAQ;QAC5B;;;;mBAAQ,YAAY;WAAU;QAC9B;;;;mBAAQ,WAAW;WAA4B;IAC9C,CAAC;IAEJ,KAAK,CAAC,mBAAmB,CAAC,IAAc;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CACvE;gBACE,IAAI,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC;aACvB,EACD,IAAI,CACL,CAAA;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACxC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAC9B,CAAC,EAAE,IAAI,GAAG,EAAuB,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAU,CAAC,KAAK,CACd,EAAE,GAAG,EAAE,IAAI,EAAE,EACb,8CAA8C,CAC/C,CAAA;YACD,OAAO,IAAI,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAc;QACxB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QACvC,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC3B,IAAI,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAA;YACrB,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE;gBAClB,qCAAqC;gBACrC,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE;oBACV,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACrE;aACF,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,GAAG,EAAoB,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,KAAmC;QAC7C,MAAM,SAAS,GAAiB;YAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;aACpC;YACD,OAAO,EAAE,IAAA,6BAAmB,EAAC,KAAK,CAAC,CAAC,GAAG,EAAE;YACzC,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;YAC5C,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;YAC/C,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;SAChD,CAAA;QAED,IACE;YACE,kDAAkD;YAClD,8CAA8C;YAC9C,0CAA0C;SAC3C,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACxB,CAAC;YACD,SAAS,CAAC,KAAK,GAAG;gBAChB,GAAG,SAAS,CAAC,KAAK;gBAClB,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,SAAS;aACpD,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,2CAA2C,EAAE,CAAC;YACjE,SAAS,CAAC,KAAK,GAAG;gBAChB,GAAG,SAAS,CAAC,KAAK;gBAClB,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM;oBAC5C,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClC,CAAC,CAAC,EAAE;gBACN,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,MAAM;oBAC5C,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;oBAClC,CAAC,CAAC,EAAE;aACP,CAAA;QACH,CAAC;QAED,iGAAiG;QACjG,IACE;YACE,iDAAiD;YACjD,8CAA8C;YAC9C,8CAA8C;SAC/C,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EACxB,CAAC;YACD,IAAI,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,GAAG;oBAChB,GAAG,SAAS,CAAC,KAAK;oBAClB,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;iBAClD,CAAA;YACH,CAAC;YAED,IAAI,KAAK,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAClC,SAAS,CAAC,KAAK,GAAG;oBAChB,GAAG,SAAS,CAAC,KAAK;oBAClB,eAAe,EAAE,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC;iBAClD,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,4CAA4C,EAAE,CAAC;YAClE,SAAS,CAAC,KAAK,GAAG;gBAChB,GAAG,SAAS,CAAC,KAAK;gBAClB,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,IAAI,SAAS;gBAC/C,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe;aAC/C,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,2CAA2C,EAAE,CAAC;YACjE,SAAS,CAAC,KAAK,GAAG;gBAChB,GAAG,SAAS,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE;gBAC1C,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO;aAC7B,CAAA;QACH,CAAC;QAED,IACE,KAAK,CAAC,MAAM,KAAK,6CAA6C;YAC9D,KAAK,CAAC,IAAI,EAAE,MAAM,EAClB,CAAC;YACD,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAA;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,yCAAyC,EAAE,CAAC;YAC/D,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAA;YAC3C,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAA;QAClD,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAoC;QAEpC,MAAM,SAAS,GACb,MAAM,CAAC,WAAW,KAAK,gCAAgC;YACrD,CAAC,CAAC,MAAM,CAAC,UAAU;YACnB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAA;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,gBAAgB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAClC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CACxD,CACF,CAAA;QACD,OAAO;YACL,GAAG,SAAS;YACZ,OAAO;YACP,YAAY;SACb,CAAA;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAW,EACX,QAAyB;QAEzB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7D,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;SACxC,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE;gBACV,GAAG,IAAI,CAAC,UAAU;aACnB;YACD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC;SAC5C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAyB;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,GAAG,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,GAAG,IAAI,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CACnE;oBACE,IAAI,EAAE,GAAG,CAAC,QAAQ;oBAClB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,GAAG,EAAE,OAAO,CAAC,GAAG;iBACjB,EACD,IAAI,CACL,CAAA;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC,CAAC,CACH,CAAA;QACD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjC,IAAI,CAAC,GAAG;gBAAE,OAAO,GAAG,CAAA;YACpB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;YACrB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;QACvE,CAAC,EAAE,IAAI,GAAG,EAAsB,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAyB;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,cAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAExC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;SAC5B,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACpC,IAAI,CAAC,IAAI;gBAAE,OAAO,GAAG,CAAA;YACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC1C,IAAI,CAAC,MAAM;gBAAE,OAAO,GAAG,CAAA;YACvB,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzD,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC7B,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;gBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACvE,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI;gBACJ,UAAU,EAAE;oBACV,aAAa,EAAE,aAAa;wBAC1B,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC;wBACzC,CAAC,CAAC,SAAS;iBACd;aACF,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,GAAG,EAAsB,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAsB,EACtB,QAAyB;QAEzB,MAAM,CAAC,OAAO,EAAE,qBAAqB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SACrC,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAA;QAE7B,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAErD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;YAC9C,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;SACvE,CAAC,CAAA;QACF,MAAM,UAAU,GAAG,aAAa,CAAC;YAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,MAAM,EAAE,MAAM,CAAC,KAAK;SACrB,CAAC,CAAA;QAEF,OAAO;YACL,GAAG,MAAM;YACT,KAAK;YACL,UAAU,EAAE;gBACV,GAAG,MAAM,CAAC,UAAU;gBACpB,aAAa;aACd;YACD,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,cAAc,CAAC;SACtD,CAAA;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAkB,EAClB,QAAyB;QAEzB,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QAE/D,MAAM,EACJ,IAAI,EAAE,EAAE,MAAM,EAAE,GACjB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YAC5D,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE,QAAQ,CAAC,IAAI;SACvB,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAED,YAAY,CAAC,MAAoC;QAC/C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,sGAAsG;YACtG,sGAAsG;YACtG,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU;gBACjC,CAAC,CAAE,MAAM,CAAC,IAAI,EAAE,UAAqB;gBACrC,CAAC,CAAC,kBAAW;YACf,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;YACnC,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,OAAO,EAAE,IAAA,6BAAmB,EAAC,MAAM,CAAC,CAAC,GAAG,EAAE;SAC3C,CAAA;IACH,CAAC;IACD,4BAA4B;IAE5B,KAAK,CAAC,OAAO,CAAC,OAAe;QAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO;oBACL,KAAK,EAAE,iCAAiC;oBACxC,GAAG,IAAI;iBACR,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,KAAK,EAAE,yCAAyC;oBAChD,GAAG,EAAE,OAAO;iBACb,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,mCAAmC;oBAC1C,GAAG,MAAM;iBACV,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,KAAK,EAAE,2CAA2C;oBAClD,GAAG,EAAE,OAAO;iBACb,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,yBAAyB;IAEzB,KAAK,CAAC,IAAI,CAAC,KAAgB;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,CAAA;QAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAA;QAClC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE;aACtC,UAAU,CAAC,2BAA2B,CAAC;aACvC,KAAK,CACJ,IAAA,YAAG,EAAQ,GAAG,GAAG,CACf,oCAAoC,CACrC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CACnE;aACA,SAAS,EAAE;aACX,gBAAgB,EAAE,CAAA;QACrB,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,MAAM,CAC5D,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAC7D,EAAE,CACH,CAAA;QACD,2EAA2E;QAC3E,kFAAkF;QAClF,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC/B,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC;gBACpC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC,SAAS,CAAA;YACb,OAAO;gBACL,GAAG;gBACH,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE;oBACV,aAAa;iBACd;aACF,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,UAAoB;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE;aACzB,UAAU,CAAC,OAAO,CAAC;aACnB,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC;aAChC,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;aACpD,SAAS,EAAE;aACX,OAAO,EAAE,CAAA;QACZ,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,GAAa;QACzC,MAAM,SAAS,GAAG,IAAA,kBAAW,EAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACxD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAS,EAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC1D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE;iBACb,WAAW,CAAC,OAAO,CAAC;iBACpB,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;iBACtE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;iBACxB,OAAO,EAAE,CAAA;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iBAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAA;QACxE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAkB;QAElB,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QACzE,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,UAAmB,EAAE,EAAE;YAC5D,OAAO,CAAC,MAAW,EAAE,EAAE;gBACrB,MAAM,GAAG,MAAM;qBACZ,KAAK,CAAC,+BAA+B,EAAE,GAAG,EAAE,GAAG,CAAC;qBAChD,KAAK,CAAC,sCAAsC,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE,CAAC,CAAA;gBACvE,OAAO,MAAM,CAAA;YACf,CAAC,CAAA;YACD,6BAA6B;QAC/B,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE;aACvB,UAAU,CAAC,2BAA2B,CAAC;aACvC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE;YAChB,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBACpC,MAAM,kBAAkB,GAAG,gBAAgB,CACzC,OAAO,CAAC,GAAG,EACX,OAAO,CAAC,UAAU,CACnB,CAAA;gBACD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBAC3C,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC,CAAC;aACD,SAAS,EAAE,CAAA;QAEd,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,OAAO,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAC,CAAA;QAEF,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU;gBAC5B,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC;gBAC1C,CAAC,CAAC,GAAG,CAAC,GAAG,CAAA;YACX,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;YACjD,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE;gBACtB,GAAG,GAAG;gBACN,MAAM,EAAE,MAAM,IAAI,uBAAc;aACjC,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,GAAG,EAAgD,CAAC,CAAA;IAC7D,CAAC;IAED,mBAAmB,CACjB,MAA4C;QAE5C,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;YACpC,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS;YAClD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS;YAClD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS;YAClD,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,SAAS;YAClD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;YACxC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,SAAS;YAC1D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YAC9C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;YACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;YACtC,iBAAiB,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YAC7C,eAAe,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YACtC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,OAAO,EAAE,IAAA,8BAAoB,EAAC,MAAM,CAAC,CAAC,GAAG,EAAE;SAC5C,CAAA;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;QACrC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,GACf,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;QAE5E,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAhgBD,0CAggBC;AAeD,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;IACzB,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,cAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAA;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,UAAmB;IACvD,OAAO,UAAU,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,OAAkB,EAAE;IACxD,IAAI,KAAK,YAAY,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAgB,aAAa,CAAC,OAI7B;IACC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IACtC,IAAI,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAA;IAC3C,MAAM,GAAG,GAAG,IAAI,cAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA,CAAC,iBAAiB;IACjD,MAAM,GAAG,GACP,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAClC,CAAC,CAAC,IAAA,gCAAuB,EAAC,MAAM,CAAC,SAAS,CAAC;QAC3C,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;QAC1C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC;AAhBD,sCAgBC"}
package/dist/util.d.ts CHANGED
@@ -3,4 +3,12 @@ import Database from './db';
3
3
  export declare const getSigningKeyId: (db: Database, signingKey: string) => Promise<number>;
4
4
  export declare function retryHttp<T>(fn: () => Promise<T>, opts?: RetryOptions): Promise<T>;
5
5
  export declare function retryableHttp(err: unknown): boolean;
6
+ export type ParsedLabelers = {
7
+ dids: string[];
8
+ redact: Set<string>;
9
+ };
10
+ export declare const LABELER_HEADER_NAME = "atproto-accept-labelers";
11
+ export declare const parseLabelerHeader: (header: string | undefined, ignoreDid?: string) => ParsedLabelers | null;
12
+ export declare const defaultLabelerHeader: (dids: string[]) => ParsedLabelers;
13
+ export declare const formatLabelerHeader: (parsed: ParsedLabelers) => string;
6
14
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAS,MAAM,iBAAiB,CAAA;AACrD,OAAO,QAAQ,MAAM,MAAM,CAAA;AAE3B,eAAO,MAAM,eAAe,OACtB,QAAQ,cACA,MAAM,KACjB,QAAQ,MAAM,CAehB,CAAA;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,WAUzC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAS,MAAM,iBAAiB,CAAA;AACrD,OAAO,QAAQ,MAAM,MAAM,CAAA;AAE3B,eAAO,MAAM,eAAe,OACtB,QAAQ,cACA,MAAM,KACjB,QAAQ,MAAM,CAehB,CAAA;AAED,wBAAsB,SAAS,CAAC,CAAC,EAC/B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,GAAE,YAAiB,GACtB,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,WAUzC;AAMD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,mBAAmB,4BAA4B,CAAA;AAE5D,eAAO,MAAM,kBAAkB,WACrB,MAAM,GAAG,SAAS,cACd,MAAM,KACjB,cAAc,GAAG,IAuBnB,CAAA;AAED,eAAO,MAAM,oBAAoB,SAAU,MAAM,EAAE,KAAG,cAKrD,CAAA;AAED,eAAO,MAAM,mBAAmB,WAAY,cAAc,KAAG,MAK5D,CAAA"}
package/dist/util.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retryableHttp = exports.retryHttp = exports.getSigningKeyId = void 0;
3
+ exports.formatLabelerHeader = exports.defaultLabelerHeader = exports.parseLabelerHeader = exports.LABELER_HEADER_NAME = exports.retryableHttp = exports.retryHttp = exports.getSigningKeyId = void 0;
4
4
  const axios_1 = require("axios");
5
+ const structured_headers_1 = require("structured-headers");
5
6
  const xrpc_1 = require("@atproto/xrpc");
6
7
  const common_1 = require("@atproto/common");
7
8
  const getSigningKeyId = async (db, signingKey) => {
@@ -42,4 +43,43 @@ exports.retryableHttp = retryableHttp;
42
43
  const retryableHttpStatusCodes = new Set([
43
44
  408, 425, 429, 500, 502, 503, 504, 522, 524,
44
45
  ]);
46
+ exports.LABELER_HEADER_NAME = 'atproto-accept-labelers';
47
+ const parseLabelerHeader = (header, ignoreDid) => {
48
+ if (!header)
49
+ return null;
50
+ const labelerDids = new Set();
51
+ const redactDids = new Set();
52
+ const parsed = (0, structured_headers_1.parseList)(header);
53
+ for (const item of parsed) {
54
+ const did = item[0].toString();
55
+ if (!did) {
56
+ return null;
57
+ }
58
+ if (did === ignoreDid) {
59
+ continue;
60
+ }
61
+ labelerDids.add(did);
62
+ const redact = item[1].get('redact')?.valueOf();
63
+ if (redact === true) {
64
+ redactDids.add(did);
65
+ }
66
+ }
67
+ return {
68
+ dids: [...labelerDids],
69
+ redact: redactDids,
70
+ };
71
+ };
72
+ exports.parseLabelerHeader = parseLabelerHeader;
73
+ const defaultLabelerHeader = (dids) => {
74
+ return {
75
+ dids,
76
+ redact: new Set(dids),
77
+ };
78
+ };
79
+ exports.defaultLabelerHeader = defaultLabelerHeader;
80
+ const formatLabelerHeader = (parsed) => {
81
+ const parts = parsed.dids.map((did) => parsed.redact.has(did) ? `${did};redact` : did);
82
+ return parts.join(',');
83
+ };
84
+ exports.formatLabelerHeader = formatLabelerHeader;
45
85
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,wCAAuD;AACvD,4CAAqD;AAG9C,MAAM,eAAe,GAAG,KAAK,EAClC,EAAY,EACZ,UAAkB,EACD,EAAE;IACnB,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,EAAE;SAC1B,UAAU,CAAC,aAAa,CAAC;SACzB,SAAS,EAAE;SACX,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC;SAC7B,gBAAgB,EAAE,CAAA;IACrB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC,EAAE,CAAA;IACrB,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,EAAE;SAC1B,UAAU,CAAC,aAAa,CAAC;SACzB,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;SAC3B,YAAY,EAAE;SACd,uBAAuB,EAAE,CAAA;IAC5B,OAAO,SAAS,CAAC,EAAE,CAAA;AACrB,CAAC,CAAA;AAlBY,QAAA,eAAe,mBAkB3B;AAEM,KAAK,UAAU,SAAS,CAC7B,EAAoB,EACpB,OAAqB,EAAE;IAEvB,OAAO,IAAA,cAAK,EAAC,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;AACzD,CAAC;AALD,8BAKC;AAED,SAAgB,aAAa,CAAC,GAAY;IACxC,IAAI,GAAG,YAAY,gBAAS,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,mBAAY,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QACpD,OAAO,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,GAAG,YAAY,kBAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC9B,OAAO,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC1D,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAVD,sCAUC;AAED,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAC5C,CAAC,CAAA"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -29,9 +29,10 @@
29
29
  "p-queue": "^6.6.2",
30
30
  "pg": "^8.10.0",
31
31
  "pino-http": "^8.2.1",
32
+ "structured-headers": "^1.0.1",
32
33
  "typed-emitter": "^2.1.0",
33
34
  "uint8arrays": "3.0.0",
34
- "@atproto/api": "^0.12.10",
35
+ "@atproto/api": "^0.12.12",
35
36
  "@atproto/common": "^0.4.0",
36
37
  "@atproto/crypto": "^0.4.0",
37
38
  "@atproto/identity": "^0.4.0",
@@ -51,10 +52,10 @@
51
52
  "jest": "^28.1.2",
52
53
  "ts-node": "^10.8.2",
53
54
  "@atproto/lex-cli": "^0.4.0",
54
- "@atproto/pds": "^0.4.22"
55
+ "@atproto/pds": "^0.4.24"
55
56
  },
56
57
  "scripts": {
57
- "codegen": "lex gen-server ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/tools/ozone/*/*",
58
+ "codegen": "lex gen-server ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
58
59
  "build": "tsc --build tsconfig.build.json",
59
60
  "start": "node --enable-source-maps dist/bin.js",
60
61
  "test": "../dev-infra/with-test-redis-and-db.sh jest",
@@ -0,0 +1,22 @@
1
+ import { Server } from '../../lexicon'
2
+ import AppContext from '../../context'
3
+ import { InvalidRequestError } from '@atproto/xrpc-server'
4
+
5
+ export default function (server: Server, ctx: AppContext) {
6
+ server.chat.bsky.moderation.getActorMetadata({
7
+ auth: ctx.authVerifier.modOrAdminToken,
8
+ handler: async ({ params }) => {
9
+ if (!ctx.chatAgent) {
10
+ throw new InvalidRequestError('No chat agent configured')
11
+ }
12
+ const res = await ctx.chatAgent.api.chat.bsky.moderation.getActorMetadata(
13
+ params,
14
+ await ctx.chatAuth(),
15
+ )
16
+ return {
17
+ encoding: 'application/json',
18
+ body: res.data,
19
+ }
20
+ },
21
+ })
22
+ }
@@ -0,0 +1,39 @@
1
+ import { Server } from '../../lexicon'
2
+ import AppContext from '../../context'
3
+ import { InvalidRequestError } from '@atproto/xrpc-server'
4
+
5
+ export default function (server: Server, ctx: AppContext) {
6
+ server.chat.bsky.moderation.getMessageContext({
7
+ auth: ctx.authVerifier.modOrAdminToken,
8
+ handler: async ({ params, auth }) => {
9
+ if (!ctx.chatAgent) {
10
+ throw new InvalidRequestError('No chat agent configured')
11
+ }
12
+ const maxWindowSize = auth.credentials.isModerator ? 5 : 0
13
+ const before = Math.min(maxWindowSize, params.before)
14
+ const after = Math.min(maxWindowSize, params.after)
15
+
16
+ // Ensure that the requested message was actually reported to prevent arbitrary lookups
17
+ const found = await ctx.db.db
18
+ .selectFrom('moderation_event')
19
+ .select('id')
20
+ .where('subjectMessageId', '=', params.messageId)
21
+ .where('action', '=', 'tools.ozone.moderation.defs#modEventReport')
22
+ .limit(1)
23
+ .executeTakeFirst()
24
+ if (!found) {
25
+ throw new InvalidRequestError('No report for requested message')
26
+ }
27
+
28
+ const res =
29
+ await ctx.chatAgent.api.chat.bsky.moderation.getMessageContext(
30
+ { ...params, before, after },
31
+ await ctx.chatAuth(),
32
+ )
33
+ return {
34
+ encoding: 'application/json',
35
+ body: res.data,
36
+ }
37
+ },
38
+ })
39
+ }
@@ -0,0 +1,10 @@
1
+ import { Server } from '../../lexicon'
2
+ import AppContext from '../../context'
3
+ import getActorMetadata from './getActorMetadata'
4
+ import getMessageContext from './getMessageContext'
5
+
6
+ export default function (server: Server, ctx: AppContext) {
7
+ getActorMetadata(server, ctx)
8
+ getMessageContext(server, ctx)
9
+ return server
10
+ }
package/src/api/index.ts CHANGED
@@ -15,6 +15,7 @@ import createTemplate from './communication/createTemplate'
15
15
  import updateTemplate from './communication/updateTemplate'
16
16
  import deleteTemplate from './communication/deleteTemplate'
17
17
  import listTemplates from './communication/listTemplates'
18
+ import chat from './chat'
18
19
  import proxied from './proxied'
19
20
 
20
21
  export * as health from './health'
@@ -37,6 +38,7 @@ export default function (server: Server, ctx: AppContext) {
37
38
  createTemplate(server, ctx)
38
39
  updateTemplate(server, ctx)
39
40
  deleteTemplate(server, ctx)
41
+ chat(server, ctx)
40
42
  proxied(server, ctx)
41
43
  return server
42
44
  }
@@ -7,8 +7,10 @@ import {
7
7
  isModEventLabel,
8
8
  isModEventMuteReporter,
9
9
  isModEventReverseTakedown,
10
+ isModEventTag,
10
11
  isModEventTakedown,
11
12
  isModEventUnmuteReporter,
13
+ ModEventTag,
12
14
  } from '../../lexicon/types/tools/ozone/moderation/defs'
13
15
  import { HandlerInput } from '../../lexicon/types/tools/ozone/moderation/emitEvent'
14
16
  import { subjectFromInput } from '../../mod-service/subject'
@@ -122,6 +124,10 @@ const handleModerationEvent = async ({
122
124
  throw new InvalidRequestError('Subject must be a repo when muting reporter')
123
125
  }
124
126
 
127
+ if (isModEventTag(event)) {
128
+ assertTagAuth(event, auth)
129
+ }
130
+
125
131
  const moderationEvent = await db.transaction(async (dbTxn) => {
126
132
  const moderationTxn = ctx.modService(dbTxn)
127
133
 
@@ -214,6 +220,31 @@ export default function (server: Server, ctx: AppContext) {
214
220
  })
215
221
  }
216
222
 
223
+ const TAG_AUTH: Record<string, 'triage' | 'moderator' | 'admin'> = {
224
+ 'chat-disabled': 'moderator',
225
+ }
226
+
227
+ const assertTagAuth = (
228
+ event: ModEventTag,
229
+ auth: ModeratorOutput | AdminTokenOutput,
230
+ ) => {
231
+ // admins can add/remove any tag
232
+ if (auth.credentials.isAdmin) return
233
+
234
+ for (const tag of Object.keys(TAG_AUTH)) {
235
+ if (event.add.includes(tag) || event.remove.includes(tag)) {
236
+ if (TAG_AUTH[tag] === 'admin' && !auth.credentials.isAdmin) {
237
+ throw new Error(`Must be an admin to add tag: ${tag}`)
238
+ } else if (
239
+ TAG_AUTH[tag] === 'moderator' &&
240
+ !auth.credentials.isModerator
241
+ ) {
242
+ throw new Error(`Must be a full moderator to add tag: ${tag}`)
243
+ }
244
+ }
245
+ }
246
+ }
247
+
217
248
  const validateLabels = (labels: string[]) => {
218
249
  for (const label of labels) {
219
250
  for (const char of badChars) {
@@ -7,11 +7,12 @@ import { AtUri } from '@atproto/syntax'
7
7
  export default function (server: Server, ctx: AppContext) {
8
8
  server.tools.ozone.moderation.getRecord({
9
9
  auth: ctx.authVerifier.modOrAdminToken,
10
- handler: async ({ params, auth }) => {
10
+ handler: async ({ params, auth, req }) => {
11
11
  const db = ctx.db
12
+ const labelers = ctx.reqLabelers(req)
12
13
 
13
14
  const [record, accountInfo] = await Promise.all([
14
- ctx.modService(db).views.recordDetail(params),
15
+ ctx.modService(db).views.recordDetail(params, labelers),
15
16
  getPdsAccountInfo(ctx, new AtUri(params.uri).hostname),
16
17
  ])
17
18
 
@@ -6,11 +6,12 @@ import { addAccountInfoToRepoViewDetail, getPdsAccountInfo } from '../util'
6
6
  export default function (server: Server, ctx: AppContext) {
7
7
  server.tools.ozone.moderation.getRepo({
8
8
  auth: ctx.authVerifier.modOrAdminToken,
9
- handler: async ({ params, auth }) => {
9
+ handler: async ({ params, auth, req }) => {
10
10
  const { did } = params
11
11
  const db = ctx.db
12
+ const labelers = ctx.reqLabelers(req)
12
13
  const [partialRepo, accountInfo] = await Promise.all([
13
- ctx.modService(db).views.repoDetail(did),
14
+ ctx.modService(db).views.repoDetail(did, labelers),
14
15
  getPdsAccountInfo(ctx, did),
15
16
  ])
16
17
  if (!partialRepo) {
@@ -127,4 +127,18 @@ export default function (server: Server, ctx: AppContext) {
127
127
  }
128
128
  },
129
129
  })
130
+
131
+ server.app.bsky.graph.getLists({
132
+ auth: ctx.authVerifier.moderator,
133
+ handler: async (request) => {
134
+ const res = await ctx.appviewAgent.api.app.bsky.graph.getLists(
135
+ request.params,
136
+ await ctx.appviewAuth(),
137
+ )
138
+ return {
139
+ encoding: 'application/json',
140
+ body: res.data,
141
+ }
142
+ },
143
+ })
130
144
  }
package/src/api/util.ts CHANGED
@@ -118,4 +118,5 @@ const eventTypes = new Set([
118
118
  'tools.ozone.moderation.defs#modEventEmail',
119
119
  'tools.ozone.moderation.defs#modEventResolveAppeal',
120
120
  'tools.ozone.moderation.defs#modEventTag',
121
+ 'tools.ozone.moderation.defs#modEventDivert',
121
122
  ])
@@ -41,6 +41,15 @@ export const envToCfg = (env: OzoneEnvironment): OzoneConfig => {
41
41
  }
42
42
  }
43
43
 
44
+ let chatCfg: OzoneConfig['chat'] = null
45
+ if (env.chatUrl || env.chatDid) {
46
+ assert(env.chatUrl && env.chatDid)
47
+ chatCfg = {
48
+ url: env.chatUrl,
49
+ did: env.chatDid,
50
+ }
51
+ }
52
+
44
53
  const cdnCfg: OzoneConfig['cdn'] = {
45
54
  paths: env.cdnPaths,
46
55
  }
@@ -68,6 +77,7 @@ export const envToCfg = (env: OzoneEnvironment): OzoneConfig => {
68
77
  db: dbCfg,
69
78
  appview: appviewCfg,
70
79
  pds: pdsCfg,
80
+ chat: chatCfg,
71
81
  cdn: cdnCfg,
72
82
  identity: identityCfg,
73
83
  blobDivert: blobDivertServiceCfg,
@@ -80,6 +90,7 @@ export type OzoneConfig = {
80
90
  db: DatabaseConfig
81
91
  appview: AppviewConfig
82
92
  pds: PdsConfig | null
93
+ chat: ChatConfig | null
83
94
  cdn: CdnConfig
84
95
  identity: IdentityConfig
85
96
  blobDivert: BlobDivertConfig | null
@@ -118,6 +129,11 @@ export type PdsConfig = {
118
129
  did: string
119
130
  }
120
131
 
132
+ export type ChatConfig = {
133
+ url: string
134
+ did: string
135
+ }
136
+
121
137
  export type CdnConfig = {
122
138
  paths?: string[]
123
139
  }
package/src/config/env.ts CHANGED
@@ -13,6 +13,8 @@ export const readEnv = (): OzoneEnvironment => {
13
13
  appviewPushEvents: envBool('OZONE_APPVIEW_PUSH_EVENTS'),
14
14
  pdsUrl: envStr('OZONE_PDS_URL'),
15
15
  pdsDid: envStr('OZONE_PDS_DID'),
16
+ chatUrl: envStr('OZONE_CHAT_URL'),
17
+ chatDid: envStr('OZONE_CHAT_DID'),
16
18
  dbPostgresUrl: envStr('OZONE_DB_POSTGRES_URL'),
17
19
  dbPostgresSchema: envStr('OZONE_DB_POSTGRES_SCHEMA'),
18
20
  dbPoolSize: envInt('OZONE_DB_POOL_SIZE'),
@@ -42,6 +44,8 @@ export type OzoneEnvironment = {
42
44
  appviewPushEvents?: boolean
43
45
  pdsUrl?: string
44
46
  pdsDid?: string
47
+ chatUrl?: string
48
+ chatDid?: string
45
49
  dbPostgresUrl?: string
46
50
  dbPostgresSchema?: string
47
51
  dbPoolSize?: number
package/src/context.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import express from 'express'
1
2
  import * as plc from '@did-plc/lib'
2
3
  import { IdResolver } from '@atproto/identity'
3
4
  import { AtpAgent } from '@atproto/api'
@@ -17,7 +18,13 @@ import {
17
18
  import { BlobDiverter } from './daemon/blob-diverter'
18
19
  import { AuthVerifier } from './auth-verifier'
19
20
  import { ImageInvalidator } from './image-invalidator'
20
- import { getSigningKeyId } from './util'
21
+ import {
22
+ defaultLabelerHeader,
23
+ getSigningKeyId,
24
+ LABELER_HEADER_NAME,
25
+ ParsedLabelers,
26
+ parseLabelerHeader,
27
+ } from './util'
21
28
 
22
29
  export type AppContextOptions = {
23
30
  db: Database
@@ -26,6 +33,7 @@ export type AppContextOptions = {
26
33
  communicationTemplateService: CommunicationTemplateServiceCreator
27
34
  appviewAgent: AtpAgent
28
35
  pdsAgent: AtpAgent | undefined
36
+ chatAgent: AtpAgent | undefined
29
37
  blobDiverter?: BlobDiverter
30
38
  signingKey: Keypair
31
39
  signingKeyId: number
@@ -60,6 +68,9 @@ export class AppContext {
60
68
  const pdsAgent = cfg.pds
61
69
  ? new AtpAgent({ service: cfg.pds.url })
62
70
  : undefined
71
+ const chatAgent = cfg.chat
72
+ ? new AtpAgent({ service: cfg.chat.url })
73
+ : undefined
63
74
 
64
75
  const idResolver = new IdResolver({
65
76
  plcUrl: cfg.identity.plcUrl,
@@ -115,6 +126,7 @@ export class AppContext {
115
126
  communicationTemplateService,
116
127
  appviewAgent,
117
128
  pdsAgent,
129
+ chatAgent,
118
130
  signingKey,
119
131
  signingKeyId,
120
132
  idResolver,
@@ -164,6 +176,10 @@ export class AppContext {
164
176
  return this.opts.pdsAgent
165
177
  }
166
178
 
179
+ get chatAgent(): AtpAgent | undefined {
180
+ return this.opts.chatAgent
181
+ }
182
+
167
183
  get signingKey(): Keypair {
168
184
  return this.opts.signingKey
169
185
  }
@@ -212,11 +228,30 @@ export class AppContext {
212
228
  return this.serviceAuthHeaders(this.cfg.appview.did)
213
229
  }
214
230
 
231
+ async chatAuth() {
232
+ if (!this.cfg.chat) {
233
+ throw new Error('No chat service configured')
234
+ }
235
+ return this.serviceAuthHeaders(this.cfg.chat.did)
236
+ }
237
+
215
238
  devOverride(overrides: Partial<AppContextOptions>) {
216
239
  this.opts = {
217
240
  ...this.opts,
218
241
  ...overrides,
219
242
  }
220
243
  }
244
+
245
+ reqLabelers(req: express.Request): ParsedLabelers {
246
+ const val = req.header(LABELER_HEADER_NAME)
247
+ let parsed: ParsedLabelers | null
248
+ try {
249
+ parsed = parseLabelerHeader(val, this.cfg.service.did)
250
+ } catch (err) {
251
+ parsed = null
252
+ }
253
+ if (!parsed) return defaultLabelerHeader([])
254
+ return parsed
255
+ }
221
256
  }
222
257
  export default AppContext
@@ -0,0 +1,21 @@
1
+ import { Kysely } from 'kysely'
2
+
3
+ export async function up(db: Kysely<unknown>): Promise<void> {
4
+ await db.schema
5
+ .alterTable('moderation_event')
6
+ .addColumn('subjectMessageId', 'varchar')
7
+ .execute()
8
+ // support lookup for chat.bsky.moderation.getMessageContext
9
+ await db.schema
10
+ .createIndex('moderation_event_message_id_index')
11
+ .on('moderation_event')
12
+ .column('subjectMessageId')
13
+ .execute()
14
+ }
15
+
16
+ export async function down(db: Kysely<unknown>): Promise<void> {
17
+ await db.schema
18
+ .alterTable('moderation_event')
19
+ .dropColumn('subjectMessageId')
20
+ .execute()
21
+ }
@@ -8,3 +8,4 @@ export * as _20240201T051104136Z from './20240201T051104136Z-mod-event-blobs'
8
8
  export * as _20240208T213404429Z from './20240208T213404429Z-add-tags-column-to-moderation-subject'
9
9
  export * as _20240228T003647759Z from './20240228T003647759Z-add-label-sigs'
10
10
  export * as _20240408T192432676Z from './20240408T192432676Z-mute-reporting'
11
+ export * as _20240506T225055595Z from './20240506T225055595Z-message-subject'