@atproto/bsky 0.0.75 → 0.0.77

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 (268) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/api/app/bsky/actor/getProfiles.d.ts.map +1 -1
  3. package/dist/api/app/bsky/actor/getProfiles.js +9 -1
  4. package/dist/api/app/bsky/actor/getProfiles.js.map +1 -1
  5. package/dist/api/app/bsky/actor/searchActorsTypeahead.js +10 -2
  6. package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
  7. package/dist/api/app/bsky/feed/getActorLikes.js +2 -2
  8. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  9. package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
  10. package/dist/api/app/bsky/feed/getFeed.js +8 -1
  11. package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
  12. package/dist/api/app/bsky/feed/getLikes.js +6 -6
  13. package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
  14. package/dist/api/app/bsky/feed/getPosts.d.ts.map +1 -1
  15. package/dist/api/app/bsky/feed/getPosts.js +12 -5
  16. package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
  17. package/dist/api/app/bsky/feed/getQuotes.d.ts +4 -0
  18. package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -0
  19. package/dist/api/app/bsky/feed/getQuotes.js +67 -0
  20. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -0
  21. package/dist/api/app/bsky/feed/getRepostedBy.js +6 -6
  22. package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
  23. package/dist/api/app/bsky/feed/searchPosts.js +4 -4
  24. package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
  25. package/dist/api/app/bsky/graph/getFollowers.js +8 -8
  26. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  27. package/dist/api/app/bsky/graph/getList.d.ts.map +1 -1
  28. package/dist/api/app/bsky/graph/getList.js +32 -2
  29. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  30. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
  31. package/dist/api/app/bsky/notification/listNotifications.js +29 -8
  32. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  33. package/dist/api/index.d.ts.map +1 -1
  34. package/dist/api/index.js +2 -0
  35. package/dist/api/index.js.map +1 -1
  36. package/dist/auth-verifier.d.ts +8 -3
  37. package/dist/auth-verifier.d.ts.map +1 -1
  38. package/dist/auth-verifier.js +43 -29
  39. package/dist/auth-verifier.js.map +1 -1
  40. package/dist/data-plane/server/db/database-schema.d.ts +4 -2
  41. package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
  42. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts +4 -0
  43. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts.map +1 -0
  44. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js +15 -0
  45. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -0
  46. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts +4 -0
  47. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts.map +1 -0
  48. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js +30 -0
  49. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -0
  50. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts +4 -0
  51. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts.map +1 -0
  52. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js +20 -0
  53. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -0
  54. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts +4 -0
  55. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts.map +1 -0
  56. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js +28 -0
  57. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -0
  58. package/dist/data-plane/server/db/migrations/index.d.ts +4 -0
  59. package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
  60. package/dist/data-plane/server/db/migrations/index.js +5 -1
  61. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  62. package/dist/data-plane/server/db/tables/post-agg.d.ts +1 -0
  63. package/dist/data-plane/server/db/tables/post-agg.d.ts.map +1 -1
  64. package/dist/data-plane/server/db/tables/post-gate.d.ts +14 -0
  65. package/dist/data-plane/server/db/tables/post-gate.d.ts.map +1 -0
  66. package/dist/data-plane/server/db/tables/post-gate.js +4 -0
  67. package/dist/data-plane/server/db/tables/post-gate.js.map +1 -0
  68. package/dist/data-plane/server/db/tables/post.d.ts +3 -0
  69. package/dist/data-plane/server/db/tables/post.d.ts.map +1 -1
  70. package/dist/data-plane/server/db/tables/quote.d.ts +16 -0
  71. package/dist/data-plane/server/db/tables/quote.d.ts.map +1 -0
  72. package/dist/data-plane/server/db/tables/quote.js +4 -0
  73. package/dist/data-plane/server/db/tables/quote.js.map +1 -0
  74. package/dist/data-plane/server/indexing/index.d.ts +2 -0
  75. package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
  76. package/dist/data-plane/server/indexing/index.js +6 -0
  77. package/dist/data-plane/server/indexing/index.js.map +1 -1
  78. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts +10 -0
  79. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts.map +1 -0
  80. package/dist/data-plane/server/indexing/plugins/post-gate.js +101 -0
  81. package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -0
  82. package/dist/data-plane/server/indexing/plugins/post.d.ts +2 -0
  83. package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
  84. package/dist/data-plane/server/indexing/plugins/post.js +122 -15
  85. package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
  86. package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts.map +1 -1
  87. package/dist/data-plane/server/indexing/plugins/thread-gate.js +12 -0
  88. package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
  89. package/dist/data-plane/server/routes/index.d.ts.map +1 -1
  90. package/dist/data-plane/server/routes/index.js +2 -0
  91. package/dist/data-plane/server/routes/index.js.map +1 -1
  92. package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
  93. package/dist/data-plane/server/routes/interactions.js +2 -1
  94. package/dist/data-plane/server/routes/interactions.js.map +1 -1
  95. package/dist/data-plane/server/routes/quotes.d.ts +6 -0
  96. package/dist/data-plane/server/routes/quotes.d.ts.map +1 -0
  97. package/dist/data-plane/server/routes/quotes.js +27 -0
  98. package/dist/data-plane/server/routes/quotes.js.map +1 -0
  99. package/dist/data-plane/server/routes/records.d.ts.map +1 -1
  100. package/dist/data-plane/server/routes/records.js +11 -1
  101. package/dist/data-plane/server/routes/records.js.map +1 -1
  102. package/dist/data-plane/server/util.d.ts +6 -7
  103. package/dist/data-plane/server/util.d.ts.map +1 -1
  104. package/dist/data-plane/server/util.js +1 -9
  105. package/dist/data-plane/server/util.js.map +1 -1
  106. package/dist/hydration/feed.d.ts +10 -0
  107. package/dist/hydration/feed.d.ts.map +1 -1
  108. package/dist/hydration/feed.js +31 -7
  109. package/dist/hydration/feed.js.map +1 -1
  110. package/dist/hydration/hydrator.d.ts +5 -2
  111. package/dist/hydration/hydrator.d.ts.map +1 -1
  112. package/dist/hydration/hydrator.js +102 -38
  113. package/dist/hydration/hydrator.js.map +1 -1
  114. package/dist/hydration/util.d.ts +0 -1
  115. package/dist/hydration/util.d.ts.map +1 -1
  116. package/dist/hydration/util.js +1 -5
  117. package/dist/hydration/util.js.map +1 -1
  118. package/dist/lexicon/index.d.ts +2 -0
  119. package/dist/lexicon/index.d.ts.map +1 -1
  120. package/dist/lexicon/index.js +4 -0
  121. package/dist/lexicon/index.js.map +1 -1
  122. package/dist/lexicon/lexicons.d.ts +141 -0
  123. package/dist/lexicon/lexicons.d.ts.map +1 -1
  124. package/dist/lexicon/lexicons.js +142 -0
  125. package/dist/lexicon/lexicons.js.map +1 -1
  126. package/dist/lexicon/types/app/bsky/embed/record.d.ts +8 -1
  127. package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
  128. package/dist/lexicon/types/app/bsky/embed/record.js +11 -1
  129. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  130. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +2 -0
  131. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  132. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  133. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts +44 -0
  134. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts.map +1 -0
  135. package/dist/lexicon/types/app/bsky/feed/getQuotes.js +3 -0
  136. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -0
  137. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +25 -0
  138. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -0
  139. package/dist/lexicon/types/app/bsky/feed/postgate.js +27 -0
  140. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -0
  141. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +2 -0
  142. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
  143. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  144. package/dist/proto/bsky_connect.d.ts +21 -1
  145. package/dist/proto/bsky_connect.d.ts.map +1 -1
  146. package/dist/proto/bsky_connect.js +20 -0
  147. package/dist/proto/bsky_connect.js.map +1 -1
  148. package/dist/proto/bsky_pb.d.ts +96 -0
  149. package/dist/proto/bsky_pb.d.ts.map +1 -1
  150. package/dist/proto/bsky_pb.js +306 -4
  151. package/dist/proto/bsky_pb.js.map +1 -1
  152. package/dist/util/uris.d.ts +12 -0
  153. package/dist/util/uris.d.ts.map +1 -0
  154. package/dist/util/uris.js +34 -0
  155. package/dist/util/uris.js.map +1 -0
  156. package/dist/views/index.d.ts +8 -2
  157. package/dist/views/index.d.ts.map +1 -1
  158. package/dist/views/index.js +83 -39
  159. package/dist/views/index.js.map +1 -1
  160. package/dist/views/types.d.ts +1 -1
  161. package/dist/views/types.d.ts.map +1 -1
  162. package/dist/views/types.js.map +1 -1
  163. package/dist/views/util.d.ts +11 -1
  164. package/dist/views/util.d.ts.map +1 -1
  165. package/dist/views/util.js +19 -8
  166. package/dist/views/util.js.map +1 -1
  167. package/package.json +6 -6
  168. package/proto/bsky.proto +33 -0
  169. package/src/api/app/bsky/actor/getProfiles.ts +10 -1
  170. package/src/api/app/bsky/actor/searchActorsTypeahead.ts +9 -4
  171. package/src/api/app/bsky/feed/getActorLikes.ts +1 -1
  172. package/src/api/app/bsky/feed/getFeed.ts +12 -1
  173. package/src/api/app/bsky/feed/getLikes.ts +1 -1
  174. package/src/api/app/bsky/feed/getPosts.ts +10 -2
  175. package/src/api/app/bsky/feed/getQuotes.ts +105 -0
  176. package/src/api/app/bsky/feed/getRepostedBy.ts +1 -1
  177. package/src/api/app/bsky/feed/searchPosts.ts +1 -1
  178. package/src/api/app/bsky/graph/getFollowers.ts +1 -1
  179. package/src/api/app/bsky/graph/getList.ts +47 -4
  180. package/src/api/app/bsky/notification/listNotifications.ts +32 -6
  181. package/src/api/index.ts +2 -0
  182. package/src/auth-verifier.ts +78 -51
  183. package/src/data-plane/server/db/database-schema.ts +7 -3
  184. package/src/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.ts +12 -0
  185. package/src/data-plane/server/db/migrations/20240723T220703655Z-quotes.ts +28 -0
  186. package/src/data-plane/server/db/migrations/20240801T193939827Z-post-gate.ts +17 -0
  187. package/src/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.ts +25 -0
  188. package/src/data-plane/server/db/migrations/index.ts +4 -0
  189. package/src/data-plane/server/db/tables/post-agg.ts +1 -0
  190. package/src/data-plane/server/db/tables/post-gate.ts +12 -0
  191. package/src/data-plane/server/db/tables/post.ts +3 -0
  192. package/src/data-plane/server/db/tables/quote.ts +15 -0
  193. package/src/data-plane/server/indexing/index.ts +7 -0
  194. package/src/data-plane/server/indexing/plugins/post-gate.ts +104 -0
  195. package/src/data-plane/server/indexing/plugins/post.ts +151 -16
  196. package/src/data-plane/server/indexing/plugins/thread-gate.ts +12 -0
  197. package/src/data-plane/server/routes/index.ts +2 -0
  198. package/src/data-plane/server/routes/interactions.ts +2 -1
  199. package/src/data-plane/server/routes/quotes.ts +32 -0
  200. package/src/data-plane/server/routes/records.ts +11 -1
  201. package/src/data-plane/server/util.ts +0 -8
  202. package/src/hydration/feed.ts +58 -12
  203. package/src/hydration/hydrator.ts +112 -24
  204. package/src/hydration/util.ts +0 -4
  205. package/src/lexicon/index.ts +12 -0
  206. package/src/lexicon/lexicons.ts +145 -0
  207. package/src/lexicon/types/app/bsky/embed/record.ts +19 -0
  208. package/src/lexicon/types/app/bsky/feed/defs.ts +2 -0
  209. package/src/lexicon/types/app/bsky/feed/getQuotes.ts +54 -0
  210. package/src/lexicon/types/app/bsky/feed/postgate.ts +47 -0
  211. package/src/lexicon/types/app/bsky/feed/threadgate.ts +2 -0
  212. package/src/proto/bsky_connect.ts +24 -0
  213. package/src/proto/bsky_pb.ts +289 -0
  214. package/src/util/uris.ts +31 -0
  215. package/src/views/index.ts +90 -35
  216. package/src/views/types.ts +1 -0
  217. package/src/views/util.ts +37 -7
  218. package/tests/__snapshots__/feed-generation.test.ts.snap +37 -0
  219. package/tests/admin/admin-auth.test.ts +15 -8
  220. package/tests/auth.test.ts +2 -1
  221. package/tests/data-plane/__snapshots__/indexing.test.ts.snap +18 -0
  222. package/tests/data-plane/handle-invalidation.test.ts +31 -5
  223. package/tests/data-plane/indexing.test.ts +139 -23
  224. package/tests/data-plane/thread-mutes.test.ts +41 -9
  225. package/tests/feed-generation.test.ts +150 -32
  226. package/tests/postgates.test.ts +186 -0
  227. package/tests/seed/feed-hidden-replies.ts +62 -0
  228. package/tests/seed/postgates.ts +56 -0
  229. package/tests/server.test.ts +1 -1
  230. package/tests/views/__snapshots__/author-feed.test.ts.snap +56 -0
  231. package/tests/views/__snapshots__/block-lists.test.ts.snap +6 -0
  232. package/tests/views/__snapshots__/blocks.test.ts.snap +10 -0
  233. package/tests/views/__snapshots__/list-feed.test.ts.snap +22 -0
  234. package/tests/views/__snapshots__/lists.test.ts.snap +145 -26
  235. package/tests/views/__snapshots__/mute-lists.test.ts.snap +8 -0
  236. package/tests/views/__snapshots__/mutes.test.ts.snap +6 -0
  237. package/tests/views/__snapshots__/posts.test.ts.snap +12 -0
  238. package/tests/views/__snapshots__/quotes.test.ts.snap +399 -0
  239. package/tests/views/__snapshots__/starter-packs.test.ts.snap +245 -4
  240. package/tests/views/__snapshots__/thread.test.ts.snap +50 -0
  241. package/tests/views/__snapshots__/timeline.test.ts.snap +170 -0
  242. package/tests/views/account-deactivation.test.ts +8 -2
  243. package/tests/views/actor-likes.test.ts +27 -6
  244. package/tests/views/actor-search.test.ts +5 -1
  245. package/tests/views/author-feed.test.ts +76 -21
  246. package/tests/views/block-lists.test.ts +201 -40
  247. package/tests/views/blocks.test.ts +245 -46
  248. package/tests/views/feed-hidden-replies.test.ts +246 -0
  249. package/tests/views/feed-view-post.test.ts +501 -0
  250. package/tests/views/follows.test.ts +133 -22
  251. package/tests/views/known-followers.test.ts +43 -7
  252. package/tests/views/labeler-service.test.ts +36 -6
  253. package/tests/views/likes.test.ts +8 -5
  254. package/tests/views/list-feed.test.ts +25 -4
  255. package/tests/views/lists.test.ts +73 -31
  256. package/tests/views/mute-lists.test.ts +101 -29
  257. package/tests/views/mutes.test.ts +77 -17
  258. package/tests/views/notifications.test.ts +141 -25
  259. package/tests/views/posts.test.ts +13 -2
  260. package/tests/views/profile.test.ts +37 -11
  261. package/tests/views/quotes.test.ts +105 -0
  262. package/tests/views/reposts.test.ts +31 -5
  263. package/tests/views/starter-packs.test.ts +83 -3
  264. package/tests/views/suggested-follows.test.ts +31 -5
  265. package/tests/views/suggestions.test.ts +37 -6
  266. package/tests/views/thread.test.ts +121 -20
  267. package/tests/views/threadgating.test.ts +128 -22
  268. package/tests/views/timeline.test.ts +67 -14
@@ -0,0 +1,47 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { lexicons } from '../../../../lexicons'
6
+ import { isObj, hasProp } from '../../../../util'
7
+ import { CID } from 'multiformats/cid'
8
+
9
+ export interface Record {
10
+ createdAt: string
11
+ /** Reference (AT-URI) to the post record. */
12
+ post: string
13
+ /** List of AT-URIs embedding this post that the author has detached from. */
14
+ detachedEmbeddingUris?: string[]
15
+ embeddingRules?: (DisableRule | { $type: string; [k: string]: unknown })[]
16
+ [k: string]: unknown
17
+ }
18
+
19
+ export function isRecord(v: unknown): v is Record {
20
+ return (
21
+ isObj(v) &&
22
+ hasProp(v, '$type') &&
23
+ (v.$type === 'app.bsky.feed.postgate#main' ||
24
+ v.$type === 'app.bsky.feed.postgate')
25
+ )
26
+ }
27
+
28
+ export function validateRecord(v: unknown): ValidationResult {
29
+ return lexicons.validate('app.bsky.feed.postgate#main', v)
30
+ }
31
+
32
+ /** Disables embedding of this post. */
33
+ export interface DisableRule {
34
+ [k: string]: unknown
35
+ }
36
+
37
+ export function isDisableRule(v: unknown): v is DisableRule {
38
+ return (
39
+ isObj(v) &&
40
+ hasProp(v, '$type') &&
41
+ v.$type === 'app.bsky.feed.postgate#disableRule'
42
+ )
43
+ }
44
+
45
+ export function validateDisableRule(v: unknown): ValidationResult {
46
+ return lexicons.validate('app.bsky.feed.postgate#disableRule', v)
47
+ }
@@ -16,6 +16,8 @@ export interface Record {
16
16
  | { $type: string; [k: string]: unknown }
17
17
  )[]
18
18
  createdAt: string
19
+ /** List of hidden reply URIs. */
20
+ hiddenReplies?: string[]
19
21
  [k: string]: unknown
20
22
  }
21
23
 
@@ -128,12 +128,16 @@ import {
128
128
  GetNotificationSeenResponse,
129
129
  GetNotificationsRequest,
130
130
  GetNotificationsResponse,
131
+ GetPostGateRecordsRequest,
132
+ GetPostGateRecordsResponse,
131
133
  GetPostRecordsRequest,
132
134
  GetPostRecordsResponse,
133
135
  GetPostReplyCountsRequest,
134
136
  GetPostReplyCountsResponse,
135
137
  GetProfileRecordsRequest,
136
138
  GetProfileRecordsResponse,
139
+ GetQuotesBySubjectRequest,
140
+ GetQuotesBySubjectResponse,
137
141
  GetRecordTakedownRequest,
138
142
  GetRecordTakedownResponse,
139
143
  GetRelationshipsRequest,
@@ -309,6 +313,15 @@ export const Service = {
309
313
  O: GetThreadGateRecordsResponse,
310
314
  kind: MethodKind.Unary,
311
315
  },
316
+ /**
317
+ * @generated from rpc bsky.Service.GetPostGateRecords
318
+ */
319
+ getPostGateRecords: {
320
+ name: 'GetPostGateRecords',
321
+ I: GetPostGateRecordsRequest,
322
+ O: GetPostGateRecordsResponse,
323
+ kind: MethodKind.Unary,
324
+ },
312
325
  /**
313
326
  * @generated from rpc bsky.Service.GetLabelerRecords
314
327
  */
@@ -423,6 +436,17 @@ export const Service = {
423
436
  O: GetActorRepostsResponse,
424
437
  kind: MethodKind.Unary,
425
438
  },
439
+ /**
440
+ * Quotes
441
+ *
442
+ * @generated from rpc bsky.Service.GetQuotesBySubject
443
+ */
444
+ getQuotesBySubject: {
445
+ name: 'GetQuotesBySubject',
446
+ I: GetQuotesBySubjectRequest,
447
+ O: GetQuotesBySubjectResponse,
448
+ kind: MethodKind.Unary,
449
+ },
426
450
  /**
427
451
  * Interaction Counts
428
452
  *
@@ -960,6 +960,21 @@ export class PostRecordMeta extends Message<PostRecordMeta> {
960
960
  */
961
961
  isReply = false
962
962
 
963
+ /**
964
+ * @generated from field: bool violates_embedding_rules = 4;
965
+ */
966
+ violatesEmbeddingRules = false
967
+
968
+ /**
969
+ * @generated from field: bool has_post_gate = 5;
970
+ */
971
+ hasPostGate = false
972
+
973
+ /**
974
+ * @generated from field: bool has_thread_gate = 6;
975
+ */
976
+ hasThreadGate = false
977
+
963
978
  constructor(data?: PartialMessage<PostRecordMeta>) {
964
979
  super()
965
980
  proto3.util.initPartial(data, this)
@@ -976,6 +991,24 @@ export class PostRecordMeta extends Message<PostRecordMeta> {
976
991
  },
977
992
  { no: 2, name: 'has_media', kind: 'scalar', T: 8 /* ScalarType.BOOL */ },
978
993
  { no: 3, name: 'is_reply', kind: 'scalar', T: 8 /* ScalarType.BOOL */ },
994
+ {
995
+ no: 4,
996
+ name: 'violates_embedding_rules',
997
+ kind: 'scalar',
998
+ T: 8 /* ScalarType.BOOL */,
999
+ },
1000
+ {
1001
+ no: 5,
1002
+ name: 'has_post_gate',
1003
+ kind: 'scalar',
1004
+ T: 8 /* ScalarType.BOOL */,
1005
+ },
1006
+ {
1007
+ no: 6,
1008
+ name: 'has_thread_gate',
1009
+ kind: 'scalar',
1010
+ T: 8 /* ScalarType.BOOL */,
1011
+ },
979
1012
  ])
980
1013
 
981
1014
  static fromBinary(
@@ -1608,6 +1641,122 @@ export class GetThreadGateRecordsResponse extends Message<GetThreadGateRecordsRe
1608
1641
  }
1609
1642
  }
1610
1643
 
1644
+ /**
1645
+ * @generated from message bsky.GetPostGateRecordsRequest
1646
+ */
1647
+ export class GetPostGateRecordsRequest extends Message<GetPostGateRecordsRequest> {
1648
+ /**
1649
+ * @generated from field: repeated string uris = 1;
1650
+ */
1651
+ uris: string[] = []
1652
+
1653
+ constructor(data?: PartialMessage<GetPostGateRecordsRequest>) {
1654
+ super()
1655
+ proto3.util.initPartial(data, this)
1656
+ }
1657
+
1658
+ static readonly runtime: typeof proto3 = proto3
1659
+ static readonly typeName = 'bsky.GetPostGateRecordsRequest'
1660
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
1661
+ {
1662
+ no: 1,
1663
+ name: 'uris',
1664
+ kind: 'scalar',
1665
+ T: 9 /* ScalarType.STRING */,
1666
+ repeated: true,
1667
+ },
1668
+ ])
1669
+
1670
+ static fromBinary(
1671
+ bytes: Uint8Array,
1672
+ options?: Partial<BinaryReadOptions>,
1673
+ ): GetPostGateRecordsRequest {
1674
+ return new GetPostGateRecordsRequest().fromBinary(bytes, options)
1675
+ }
1676
+
1677
+ static fromJson(
1678
+ jsonValue: JsonValue,
1679
+ options?: Partial<JsonReadOptions>,
1680
+ ): GetPostGateRecordsRequest {
1681
+ return new GetPostGateRecordsRequest().fromJson(jsonValue, options)
1682
+ }
1683
+
1684
+ static fromJsonString(
1685
+ jsonString: string,
1686
+ options?: Partial<JsonReadOptions>,
1687
+ ): GetPostGateRecordsRequest {
1688
+ return new GetPostGateRecordsRequest().fromJsonString(jsonString, options)
1689
+ }
1690
+
1691
+ static equals(
1692
+ a:
1693
+ | GetPostGateRecordsRequest
1694
+ | PlainMessage<GetPostGateRecordsRequest>
1695
+ | undefined,
1696
+ b:
1697
+ | GetPostGateRecordsRequest
1698
+ | PlainMessage<GetPostGateRecordsRequest>
1699
+ | undefined,
1700
+ ): boolean {
1701
+ return proto3.util.equals(GetPostGateRecordsRequest, a, b)
1702
+ }
1703
+ }
1704
+
1705
+ /**
1706
+ * @generated from message bsky.GetPostGateRecordsResponse
1707
+ */
1708
+ export class GetPostGateRecordsResponse extends Message<GetPostGateRecordsResponse> {
1709
+ /**
1710
+ * @generated from field: repeated bsky.Record records = 1;
1711
+ */
1712
+ records: Record[] = []
1713
+
1714
+ constructor(data?: PartialMessage<GetPostGateRecordsResponse>) {
1715
+ super()
1716
+ proto3.util.initPartial(data, this)
1717
+ }
1718
+
1719
+ static readonly runtime: typeof proto3 = proto3
1720
+ static readonly typeName = 'bsky.GetPostGateRecordsResponse'
1721
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
1722
+ { no: 1, name: 'records', kind: 'message', T: Record, repeated: true },
1723
+ ])
1724
+
1725
+ static fromBinary(
1726
+ bytes: Uint8Array,
1727
+ options?: Partial<BinaryReadOptions>,
1728
+ ): GetPostGateRecordsResponse {
1729
+ return new GetPostGateRecordsResponse().fromBinary(bytes, options)
1730
+ }
1731
+
1732
+ static fromJson(
1733
+ jsonValue: JsonValue,
1734
+ options?: Partial<JsonReadOptions>,
1735
+ ): GetPostGateRecordsResponse {
1736
+ return new GetPostGateRecordsResponse().fromJson(jsonValue, options)
1737
+ }
1738
+
1739
+ static fromJsonString(
1740
+ jsonString: string,
1741
+ options?: Partial<JsonReadOptions>,
1742
+ ): GetPostGateRecordsResponse {
1743
+ return new GetPostGateRecordsResponse().fromJsonString(jsonString, options)
1744
+ }
1745
+
1746
+ static equals(
1747
+ a:
1748
+ | GetPostGateRecordsResponse
1749
+ | PlainMessage<GetPostGateRecordsResponse>
1750
+ | undefined,
1751
+ b:
1752
+ | GetPostGateRecordsResponse
1753
+ | PlainMessage<GetPostGateRecordsResponse>
1754
+ | undefined,
1755
+ ): boolean {
1756
+ return proto3.util.equals(GetPostGateRecordsResponse, a, b)
1757
+ }
1758
+ }
1759
+
1611
1760
  /**
1612
1761
  * @generated from message bsky.GetLabelerRecordsRequest
1613
1762
  */
@@ -2984,6 +3133,134 @@ export class GetActorLikesResponse extends Message<GetActorLikesResponse> {
2984
3133
  }
2985
3134
  }
2986
3135
 
3136
+ /**
3137
+ * @generated from message bsky.GetQuotesBySubjectRequest
3138
+ */
3139
+ export class GetQuotesBySubjectRequest extends Message<GetQuotesBySubjectRequest> {
3140
+ /**
3141
+ * @generated from field: bsky.RecordRef subject = 1;
3142
+ */
3143
+ subject?: RecordRef
3144
+
3145
+ /**
3146
+ * @generated from field: int32 limit = 2;
3147
+ */
3148
+ limit = 0
3149
+
3150
+ /**
3151
+ * @generated from field: string cursor = 3;
3152
+ */
3153
+ cursor = ''
3154
+
3155
+ constructor(data?: PartialMessage<GetQuotesBySubjectRequest>) {
3156
+ super()
3157
+ proto3.util.initPartial(data, this)
3158
+ }
3159
+
3160
+ static readonly runtime: typeof proto3 = proto3
3161
+ static readonly typeName = 'bsky.GetQuotesBySubjectRequest'
3162
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
3163
+ { no: 1, name: 'subject', kind: 'message', T: RecordRef },
3164
+ { no: 2, name: 'limit', kind: 'scalar', T: 5 /* ScalarType.INT32 */ },
3165
+ { no: 3, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
3166
+ ])
3167
+
3168
+ static fromBinary(
3169
+ bytes: Uint8Array,
3170
+ options?: Partial<BinaryReadOptions>,
3171
+ ): GetQuotesBySubjectRequest {
3172
+ return new GetQuotesBySubjectRequest().fromBinary(bytes, options)
3173
+ }
3174
+
3175
+ static fromJson(
3176
+ jsonValue: JsonValue,
3177
+ options?: Partial<JsonReadOptions>,
3178
+ ): GetQuotesBySubjectRequest {
3179
+ return new GetQuotesBySubjectRequest().fromJson(jsonValue, options)
3180
+ }
3181
+
3182
+ static fromJsonString(
3183
+ jsonString: string,
3184
+ options?: Partial<JsonReadOptions>,
3185
+ ): GetQuotesBySubjectRequest {
3186
+ return new GetQuotesBySubjectRequest().fromJsonString(jsonString, options)
3187
+ }
3188
+
3189
+ static equals(
3190
+ a:
3191
+ | GetQuotesBySubjectRequest
3192
+ | PlainMessage<GetQuotesBySubjectRequest>
3193
+ | undefined,
3194
+ b:
3195
+ | GetQuotesBySubjectRequest
3196
+ | PlainMessage<GetQuotesBySubjectRequest>
3197
+ | undefined,
3198
+ ): boolean {
3199
+ return proto3.util.equals(GetQuotesBySubjectRequest, a, b)
3200
+ }
3201
+ }
3202
+
3203
+ /**
3204
+ * @generated from message bsky.GetQuotesBySubjectResponse
3205
+ */
3206
+ export class GetQuotesBySubjectResponse extends Message<GetQuotesBySubjectResponse> {
3207
+ /**
3208
+ * @generated from field: repeated bsky.RecordRef refs = 1;
3209
+ */
3210
+ refs: RecordRef[] = []
3211
+
3212
+ /**
3213
+ * @generated from field: string cursor = 2;
3214
+ */
3215
+ cursor = ''
3216
+
3217
+ constructor(data?: PartialMessage<GetQuotesBySubjectResponse>) {
3218
+ super()
3219
+ proto3.util.initPartial(data, this)
3220
+ }
3221
+
3222
+ static readonly runtime: typeof proto3 = proto3
3223
+ static readonly typeName = 'bsky.GetQuotesBySubjectResponse'
3224
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
3225
+ { no: 1, name: 'refs', kind: 'message', T: RecordRef, repeated: true },
3226
+ { no: 2, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
3227
+ ])
3228
+
3229
+ static fromBinary(
3230
+ bytes: Uint8Array,
3231
+ options?: Partial<BinaryReadOptions>,
3232
+ ): GetQuotesBySubjectResponse {
3233
+ return new GetQuotesBySubjectResponse().fromBinary(bytes, options)
3234
+ }
3235
+
3236
+ static fromJson(
3237
+ jsonValue: JsonValue,
3238
+ options?: Partial<JsonReadOptions>,
3239
+ ): GetQuotesBySubjectResponse {
3240
+ return new GetQuotesBySubjectResponse().fromJson(jsonValue, options)
3241
+ }
3242
+
3243
+ static fromJsonString(
3244
+ jsonString: string,
3245
+ options?: Partial<JsonReadOptions>,
3246
+ ): GetQuotesBySubjectResponse {
3247
+ return new GetQuotesBySubjectResponse().fromJsonString(jsonString, options)
3248
+ }
3249
+
3250
+ static equals(
3251
+ a:
3252
+ | GetQuotesBySubjectResponse
3253
+ | PlainMessage<GetQuotesBySubjectResponse>
3254
+ | undefined,
3255
+ b:
3256
+ | GetQuotesBySubjectResponse
3257
+ | PlainMessage<GetQuotesBySubjectResponse>
3258
+ | undefined,
3259
+ ): boolean {
3260
+ return proto3.util.equals(GetQuotesBySubjectResponse, a, b)
3261
+ }
3262
+ }
3263
+
2987
3264
  /**
2988
3265
  *
2989
3266
  * Interactions
@@ -3062,6 +3339,11 @@ export class GetInteractionCountsResponse extends Message<GetInteractionCountsRe
3062
3339
  */
3063
3340
  replies: number[] = []
3064
3341
 
3342
+ /**
3343
+ * @generated from field: repeated int32 quotes = 4;
3344
+ */
3345
+ quotes: number[] = []
3346
+
3065
3347
  constructor(data?: PartialMessage<GetInteractionCountsResponse>) {
3066
3348
  super()
3067
3349
  proto3.util.initPartial(data, this)
@@ -3091,6 +3373,13 @@ export class GetInteractionCountsResponse extends Message<GetInteractionCountsRe
3091
3373
  T: 5 /* ScalarType.INT32 */,
3092
3374
  repeated: true,
3093
3375
  },
3376
+ {
3377
+ no: 4,
3378
+ name: 'quotes',
3379
+ kind: 'scalar',
3380
+ T: 5 /* ScalarType.INT32 */,
3381
+ repeated: true,
3382
+ },
3094
3383
  ])
3095
3384
 
3096
3385
  static fromBinary(
@@ -0,0 +1,31 @@
1
+ import assert from 'node:assert'
2
+ import { AtUri } from '@atproto/syntax'
3
+ import { ids } from '../lexicon/lexicons'
4
+
5
+ /**
6
+ * Convert a post URI to a threadgate URI. If the URI is not a valid
7
+ * post URI, return URI unchanged. Threadgate lookups will then fail.
8
+ */
9
+ export function postUriToThreadgateUri(postUri: string) {
10
+ const urip = new AtUri(postUri)
11
+ if (urip.collection === ids.AppBskyFeedPost) {
12
+ urip.collection = ids.AppBskyFeedThreadgate
13
+ }
14
+ return urip.toString()
15
+ }
16
+
17
+ /**
18
+ * Convert a post URI to a postgate URI. If the URI is not a valid
19
+ * post URI, return URI unchanged. Postgate lookups will then fail.
20
+ */
21
+ export function postUriToPostgateUri(postUri: string) {
22
+ const urip = new AtUri(postUri)
23
+ if (urip.collection === ids.AppBskyFeedPost) {
24
+ urip.collection = ids.AppBskyFeedPostgate
25
+ }
26
+ return urip.toString()
27
+ }
28
+
29
+ export function uriToDid(uri: string) {
30
+ return new AtUri(uri).hostname
31
+ }