@atproto/bsky 0.0.76 → 0.0.78

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 (226) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/api/app/bsky/feed/getActorLikes.js +2 -2
  3. package/dist/api/app/bsky/feed/getActorLikes.js.map +1 -1
  4. package/dist/api/app/bsky/feed/getLikes.js +6 -6
  5. package/dist/api/app/bsky/feed/getLikes.js.map +1 -1
  6. package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
  7. package/dist/api/app/bsky/feed/getListFeed.js +19 -3
  8. package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
  9. package/dist/api/app/bsky/feed/getPosts.js +4 -4
  10. package/dist/api/app/bsky/feed/getPosts.js.map +1 -1
  11. package/dist/api/app/bsky/feed/getQuotes.d.ts +4 -0
  12. package/dist/api/app/bsky/feed/getQuotes.d.ts.map +1 -0
  13. package/dist/api/app/bsky/feed/getQuotes.js +67 -0
  14. package/dist/api/app/bsky/feed/getQuotes.js.map +1 -0
  15. package/dist/api/app/bsky/feed/getRepostedBy.js +6 -6
  16. package/dist/api/app/bsky/feed/getRepostedBy.js.map +1 -1
  17. package/dist/api/app/bsky/feed/searchPosts.js +4 -4
  18. package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
  19. package/dist/api/app/bsky/graph/getFollowers.js +8 -8
  20. package/dist/api/app/bsky/graph/getFollowers.js.map +1 -1
  21. package/dist/api/app/bsky/graph/getList.js +7 -7
  22. package/dist/api/app/bsky/graph/getList.js.map +1 -1
  23. package/dist/api/app/bsky/notification/listNotifications.d.ts.map +1 -1
  24. package/dist/api/app/bsky/notification/listNotifications.js +29 -8
  25. package/dist/api/app/bsky/notification/listNotifications.js.map +1 -1
  26. package/dist/api/index.d.ts.map +1 -1
  27. package/dist/api/index.js +2 -0
  28. package/dist/api/index.js.map +1 -1
  29. package/dist/data-plane/server/db/database-schema.d.ts +4 -2
  30. package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
  31. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts +4 -0
  32. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.d.ts.map +1 -0
  33. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js +15 -0
  34. package/dist/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.js.map +1 -0
  35. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts +4 -0
  36. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.d.ts.map +1 -0
  37. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js +30 -0
  38. package/dist/data-plane/server/db/migrations/20240723T220703655Z-quotes.js.map +1 -0
  39. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts +4 -0
  40. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.d.ts.map +1 -0
  41. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js +20 -0
  42. package/dist/data-plane/server/db/migrations/20240801T193939827Z-post-gate.js.map +1 -0
  43. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts +4 -0
  44. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.d.ts.map +1 -0
  45. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js +28 -0
  46. package/dist/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.js.map +1 -0
  47. package/dist/data-plane/server/db/migrations/index.d.ts +4 -0
  48. package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
  49. package/dist/data-plane/server/db/migrations/index.js +5 -1
  50. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  51. package/dist/data-plane/server/db/tables/post-agg.d.ts +1 -0
  52. package/dist/data-plane/server/db/tables/post-agg.d.ts.map +1 -1
  53. package/dist/data-plane/server/db/tables/post-gate.d.ts +14 -0
  54. package/dist/data-plane/server/db/tables/post-gate.d.ts.map +1 -0
  55. package/dist/data-plane/server/db/tables/post-gate.js +4 -0
  56. package/dist/data-plane/server/db/tables/post-gate.js.map +1 -0
  57. package/dist/data-plane/server/db/tables/post.d.ts +3 -0
  58. package/dist/data-plane/server/db/tables/post.d.ts.map +1 -1
  59. package/dist/data-plane/server/db/tables/quote.d.ts +16 -0
  60. package/dist/data-plane/server/db/tables/quote.d.ts.map +1 -0
  61. package/dist/data-plane/server/db/tables/quote.js +4 -0
  62. package/dist/data-plane/server/db/tables/quote.js.map +1 -0
  63. package/dist/data-plane/server/indexing/index.d.ts +2 -0
  64. package/dist/data-plane/server/indexing/index.d.ts.map +1 -1
  65. package/dist/data-plane/server/indexing/index.js +6 -0
  66. package/dist/data-plane/server/indexing/index.js.map +1 -1
  67. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts +10 -0
  68. package/dist/data-plane/server/indexing/plugins/post-gate.d.ts.map +1 -0
  69. package/dist/data-plane/server/indexing/plugins/post-gate.js +101 -0
  70. package/dist/data-plane/server/indexing/plugins/post-gate.js.map +1 -0
  71. package/dist/data-plane/server/indexing/plugins/post.d.ts +2 -0
  72. package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
  73. package/dist/data-plane/server/indexing/plugins/post.js +122 -15
  74. package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
  75. package/dist/data-plane/server/indexing/plugins/thread-gate.d.ts.map +1 -1
  76. package/dist/data-plane/server/indexing/plugins/thread-gate.js +12 -0
  77. package/dist/data-plane/server/indexing/plugins/thread-gate.js.map +1 -1
  78. package/dist/data-plane/server/routes/index.d.ts.map +1 -1
  79. package/dist/data-plane/server/routes/index.js +2 -0
  80. package/dist/data-plane/server/routes/index.js.map +1 -1
  81. package/dist/data-plane/server/routes/interactions.d.ts.map +1 -1
  82. package/dist/data-plane/server/routes/interactions.js +2 -1
  83. package/dist/data-plane/server/routes/interactions.js.map +1 -1
  84. package/dist/data-plane/server/routes/quotes.d.ts +6 -0
  85. package/dist/data-plane/server/routes/quotes.d.ts.map +1 -0
  86. package/dist/data-plane/server/routes/quotes.js +27 -0
  87. package/dist/data-plane/server/routes/quotes.js.map +1 -0
  88. package/dist/data-plane/server/routes/records.d.ts.map +1 -1
  89. package/dist/data-plane/server/routes/records.js +11 -1
  90. package/dist/data-plane/server/routes/records.js.map +1 -1
  91. package/dist/data-plane/server/util.d.ts +6 -7
  92. package/dist/data-plane/server/util.d.ts.map +1 -1
  93. package/dist/data-plane/server/util.js +1 -9
  94. package/dist/data-plane/server/util.js.map +1 -1
  95. package/dist/hydration/feed.d.ts +10 -0
  96. package/dist/hydration/feed.d.ts.map +1 -1
  97. package/dist/hydration/feed.js +31 -7
  98. package/dist/hydration/feed.js.map +1 -1
  99. package/dist/hydration/hydrator.d.ts +4 -2
  100. package/dist/hydration/hydrator.d.ts.map +1 -1
  101. package/dist/hydration/hydrator.js +89 -34
  102. package/dist/hydration/hydrator.js.map +1 -1
  103. package/dist/hydration/util.d.ts +0 -1
  104. package/dist/hydration/util.d.ts.map +1 -1
  105. package/dist/hydration/util.js +1 -5
  106. package/dist/hydration/util.js.map +1 -1
  107. package/dist/lexicon/index.d.ts +2 -0
  108. package/dist/lexicon/index.d.ts.map +1 -1
  109. package/dist/lexicon/index.js +4 -0
  110. package/dist/lexicon/index.js.map +1 -1
  111. package/dist/lexicon/lexicons.d.ts +144 -0
  112. package/dist/lexicon/lexicons.d.ts.map +1 -1
  113. package/dist/lexicon/lexicons.js +146 -1
  114. package/dist/lexicon/lexicons.js.map +1 -1
  115. package/dist/lexicon/types/app/bsky/embed/record.d.ts +9 -1
  116. package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
  117. package/dist/lexicon/types/app/bsky/embed/record.js +11 -1
  118. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  119. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +2 -0
  120. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  121. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  122. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts +44 -0
  123. package/dist/lexicon/types/app/bsky/feed/getQuotes.d.ts.map +1 -0
  124. package/dist/lexicon/types/app/bsky/feed/getQuotes.js +3 -0
  125. package/dist/lexicon/types/app/bsky/feed/getQuotes.js.map +1 -0
  126. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts +25 -0
  127. package/dist/lexicon/types/app/bsky/feed/postgate.d.ts.map +1 -0
  128. package/dist/lexicon/types/app/bsky/feed/postgate.js +27 -0
  129. package/dist/lexicon/types/app/bsky/feed/postgate.js.map +1 -0
  130. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts +2 -0
  131. package/dist/lexicon/types/app/bsky/feed/threadgate.d.ts.map +1 -1
  132. package/dist/lexicon/types/app/bsky/feed/threadgate.js.map +1 -1
  133. package/dist/proto/bsky_connect.d.ts +30 -1
  134. package/dist/proto/bsky_connect.d.ts.map +1 -1
  135. package/dist/proto/bsky_connect.js +29 -0
  136. package/dist/proto/bsky_connect.js.map +1 -1
  137. package/dist/proto/bsky_pb.d.ts +135 -1
  138. package/dist/proto/bsky_pb.d.ts.map +1 -1
  139. package/dist/proto/bsky_pb.js +425 -5
  140. package/dist/proto/bsky_pb.js.map +1 -1
  141. package/dist/util/uris.d.ts +12 -0
  142. package/dist/util/uris.d.ts.map +1 -0
  143. package/dist/util/uris.js +34 -0
  144. package/dist/util/uris.js.map +1 -0
  145. package/dist/views/index.d.ts +8 -2
  146. package/dist/views/index.d.ts.map +1 -1
  147. package/dist/views/index.js +84 -39
  148. package/dist/views/index.js.map +1 -1
  149. package/dist/views/types.d.ts +1 -1
  150. package/dist/views/types.d.ts.map +1 -1
  151. package/dist/views/types.js.map +1 -1
  152. package/dist/views/util.d.ts +11 -1
  153. package/dist/views/util.d.ts.map +1 -1
  154. package/dist/views/util.js +19 -8
  155. package/dist/views/util.js.map +1 -1
  156. package/package.json +4 -4
  157. package/proto/bsky.proto +42 -2
  158. package/src/api/app/bsky/feed/getActorLikes.ts +1 -1
  159. package/src/api/app/bsky/feed/getLikes.ts +1 -1
  160. package/src/api/app/bsky/feed/getListFeed.ts +30 -3
  161. package/src/api/app/bsky/feed/getPosts.ts +1 -1
  162. package/src/api/app/bsky/feed/getQuotes.ts +108 -0
  163. package/src/api/app/bsky/feed/getRepostedBy.ts +1 -1
  164. package/src/api/app/bsky/feed/searchPosts.ts +1 -1
  165. package/src/api/app/bsky/graph/getFollowers.ts +1 -1
  166. package/src/api/app/bsky/graph/getList.ts +5 -5
  167. package/src/api/app/bsky/notification/listNotifications.ts +32 -6
  168. package/src/api/index.ts +2 -0
  169. package/src/data-plane/server/db/database-schema.ts +7 -3
  170. package/src/data-plane/server/db/migrations/20240723T220700077Z-quotes-post-aggs.ts +12 -0
  171. package/src/data-plane/server/db/migrations/20240723T220703655Z-quotes.ts +28 -0
  172. package/src/data-plane/server/db/migrations/20240801T193939827Z-post-gate.ts +17 -0
  173. package/src/data-plane/server/db/migrations/20240808T224251220Z-post-gate-flags.ts +25 -0
  174. package/src/data-plane/server/db/migrations/index.ts +4 -0
  175. package/src/data-plane/server/db/tables/post-agg.ts +1 -0
  176. package/src/data-plane/server/db/tables/post-gate.ts +12 -0
  177. package/src/data-plane/server/db/tables/post.ts +3 -0
  178. package/src/data-plane/server/db/tables/quote.ts +15 -0
  179. package/src/data-plane/server/indexing/index.ts +7 -0
  180. package/src/data-plane/server/indexing/plugins/post-gate.ts +104 -0
  181. package/src/data-plane/server/indexing/plugins/post.ts +151 -16
  182. package/src/data-plane/server/indexing/plugins/thread-gate.ts +12 -0
  183. package/src/data-plane/server/routes/index.ts +2 -0
  184. package/src/data-plane/server/routes/interactions.ts +2 -1
  185. package/src/data-plane/server/routes/quotes.ts +32 -0
  186. package/src/data-plane/server/routes/records.ts +11 -1
  187. package/src/data-plane/server/util.ts +0 -8
  188. package/src/hydration/feed.ts +58 -12
  189. package/src/hydration/hydrator.ts +94 -22
  190. package/src/hydration/util.ts +0 -4
  191. package/src/lexicon/index.ts +12 -0
  192. package/src/lexicon/lexicons.ts +149 -1
  193. package/src/lexicon/types/app/bsky/embed/record.ts +20 -0
  194. package/src/lexicon/types/app/bsky/feed/defs.ts +2 -0
  195. package/src/lexicon/types/app/bsky/feed/getQuotes.ts +54 -0
  196. package/src/lexicon/types/app/bsky/feed/postgate.ts +47 -0
  197. package/src/lexicon/types/app/bsky/feed/threadgate.ts +2 -0
  198. package/src/proto/bsky_connect.ts +35 -0
  199. package/src/proto/bsky_pb.ts +424 -1
  200. package/src/util/uris.ts +31 -0
  201. package/src/views/index.ts +91 -35
  202. package/src/views/types.ts +1 -0
  203. package/src/views/util.ts +37 -7
  204. package/tests/__snapshots__/feed-generation.test.ts.snap +42 -0
  205. package/tests/data-plane/__snapshots__/indexing.test.ts.snap +20 -0
  206. package/tests/data-plane/indexing.test.ts +1 -0
  207. package/tests/postgates.test.ts +186 -0
  208. package/tests/seed/feed-hidden-replies.ts +62 -0
  209. package/tests/seed/postgates.ts +56 -0
  210. package/tests/views/__snapshots__/author-feed.test.ts.snap +65 -0
  211. package/tests/views/__snapshots__/block-lists.test.ts.snap +7 -0
  212. package/tests/views/__snapshots__/blocks.test.ts.snap +11 -0
  213. package/tests/views/__snapshots__/list-feed.test.ts.snap +24 -0
  214. package/tests/views/__snapshots__/lists.test.ts.snap +185 -1
  215. package/tests/views/__snapshots__/mute-lists.test.ts.snap +8 -0
  216. package/tests/views/__snapshots__/mutes.test.ts.snap +6 -0
  217. package/tests/views/__snapshots__/posts.test.ts.snap +15 -0
  218. package/tests/views/__snapshots__/quotes.test.ts.snap +402 -0
  219. package/tests/views/__snapshots__/thread.test.ts.snap +50 -0
  220. package/tests/views/__snapshots__/timeline.test.ts.snap +191 -0
  221. package/tests/views/author-feed.test.ts +3 -9
  222. package/tests/views/feed-hidden-replies.test.ts +246 -0
  223. package/tests/views/feed-view-post.test.ts +501 -0
  224. package/tests/views/list-feed.test.ts +12 -0
  225. package/tests/views/lists.test.ts +83 -18
  226. package/tests/views/quotes.test.ts +105 -0
@@ -28,6 +28,7 @@ export interface PostView {
28
28
  replyCount?: number
29
29
  repostCount?: number
30
30
  likeCount?: number
31
+ quoteCount?: number
31
32
  indexedAt: string
32
33
  viewer?: ViewerState
33
34
  labels?: ComAtprotoLabelDefs.Label[]
@@ -51,6 +52,7 @@ export interface ViewerState {
51
52
  like?: string
52
53
  threadMuted?: boolean
53
54
  replyDisabled?: boolean
55
+ embeddingDisabled?: boolean
54
56
  [k: string]: unknown
55
57
  }
56
58
 
@@ -0,0 +1,54 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import express from 'express'
5
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
6
+ import { lexicons } from '../../../../lexicons'
7
+ import { isObj, hasProp } from '../../../../util'
8
+ import { CID } from 'multiformats/cid'
9
+ import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
10
+ import * as AppBskyFeedDefs from './defs'
11
+
12
+ export interface QueryParams {
13
+ /** Reference (AT-URI) of post record */
14
+ uri: string
15
+ /** If supplied, filters to quotes of specific version (by CID) of the post record. */
16
+ cid?: string
17
+ limit: number
18
+ cursor?: string
19
+ }
20
+
21
+ export type InputSchema = undefined
22
+
23
+ export interface OutputSchema {
24
+ uri: string
25
+ cid?: string
26
+ cursor?: string
27
+ posts: AppBskyFeedDefs.PostView[]
28
+ [k: string]: unknown
29
+ }
30
+
31
+ export type HandlerInput = undefined
32
+
33
+ export interface HandlerSuccess {
34
+ encoding: 'application/json'
35
+ body: OutputSchema
36
+ headers?: { [key: string]: string }
37
+ }
38
+
39
+ export interface HandlerError {
40
+ status: number
41
+ message?: string
42
+ }
43
+
44
+ export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
45
+ export type HandlerReqCtx<HA extends HandlerAuth = never> = {
46
+ auth: HA
47
+ params: QueryParams
48
+ input: HandlerInput
49
+ req: express.Request
50
+ res: express.Response
51
+ }
52
+ export type Handler<HA extends HandlerAuth = never> = (
53
+ ctx: HandlerReqCtx<HA>,
54
+ ) => Promise<HandlerOutput> | HandlerOutput
@@ -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
 
@@ -124,16 +124,22 @@ import {
124
124
  GetMutelistSubscriptionsResponse,
125
125
  GetMutesRequest,
126
126
  GetMutesResponse,
127
+ GetNewUserCountForRangeRequest,
128
+ GetNewUserCountForRangeResponse,
127
129
  GetNotificationSeenRequest,
128
130
  GetNotificationSeenResponse,
129
131
  GetNotificationsRequest,
130
132
  GetNotificationsResponse,
133
+ GetPostgateRecordsRequest,
134
+ GetPostgateRecordsResponse,
131
135
  GetPostRecordsRequest,
132
136
  GetPostRecordsResponse,
133
137
  GetPostReplyCountsRequest,
134
138
  GetPostReplyCountsResponse,
135
139
  GetProfileRecordsRequest,
136
140
  GetProfileRecordsResponse,
141
+ GetQuotesBySubjectSortedRequest,
142
+ GetQuotesBySubjectSortedResponse,
137
143
  GetRecordTakedownRequest,
138
144
  GetRecordTakedownResponse,
139
145
  GetRelationshipsRequest,
@@ -309,6 +315,15 @@ export const Service = {
309
315
  O: GetThreadGateRecordsResponse,
310
316
  kind: MethodKind.Unary,
311
317
  },
318
+ /**
319
+ * @generated from rpc bsky.Service.GetPostgateRecords
320
+ */
321
+ getPostgateRecords: {
322
+ name: 'GetPostgateRecords',
323
+ I: GetPostgateRecordsRequest,
324
+ O: GetPostgateRecordsResponse,
325
+ kind: MethodKind.Unary,
326
+ },
312
327
  /**
313
328
  * @generated from rpc bsky.Service.GetLabelerRecords
314
329
  */
@@ -423,6 +438,17 @@ export const Service = {
423
438
  O: GetActorRepostsResponse,
424
439
  kind: MethodKind.Unary,
425
440
  },
441
+ /**
442
+ * Quotes
443
+ *
444
+ * @generated from rpc bsky.Service.GetQuotesBySubjectSorted
445
+ */
446
+ getQuotesBySubjectSorted: {
447
+ name: 'GetQuotesBySubjectSorted',
448
+ I: GetQuotesBySubjectSortedRequest,
449
+ O: GetQuotesBySubjectSortedResponse,
450
+ kind: MethodKind.Unary,
451
+ },
426
452
  /**
427
453
  * Interaction Counts
428
454
  *
@@ -461,6 +487,15 @@ export const Service = {
461
487
  O: GetListCountsResponse,
462
488
  kind: MethodKind.Unary,
463
489
  },
490
+ /**
491
+ * @generated from rpc bsky.Service.GetNewUserCountForRange
492
+ */
493
+ getNewUserCountForRange: {
494
+ name: 'GetNewUserCountForRange',
495
+ I: GetNewUserCountForRangeRequest,
496
+ O: GetNewUserCountForRangeResponse,
497
+ kind: MethodKind.Unary,
498
+ },
464
499
  /**
465
500
  * Profile
466
501
  *
@@ -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
  */
@@ -2679,6 +2828,146 @@ export class GetLikesBySubjectSortedResponse extends Message<GetLikesBySubjectSo
2679
2828
  }
2680
2829
  }
2681
2830
 
2831
+ /**
2832
+ * @generated from message bsky.GetQuotesBySubjectSortedRequest
2833
+ */
2834
+ export class GetQuotesBySubjectSortedRequest extends Message<GetQuotesBySubjectSortedRequest> {
2835
+ /**
2836
+ * @generated from field: bsky.RecordRef subject = 1;
2837
+ */
2838
+ subject?: RecordRef
2839
+
2840
+ /**
2841
+ * @generated from field: int32 limit = 2;
2842
+ */
2843
+ limit = 0
2844
+
2845
+ /**
2846
+ * @generated from field: string cursor = 3;
2847
+ */
2848
+ cursor = ''
2849
+
2850
+ constructor(data?: PartialMessage<GetQuotesBySubjectSortedRequest>) {
2851
+ super()
2852
+ proto3.util.initPartial(data, this)
2853
+ }
2854
+
2855
+ static readonly runtime: typeof proto3 = proto3
2856
+ static readonly typeName = 'bsky.GetQuotesBySubjectSortedRequest'
2857
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
2858
+ { no: 1, name: 'subject', kind: 'message', T: RecordRef },
2859
+ { no: 2, name: 'limit', kind: 'scalar', T: 5 /* ScalarType.INT32 */ },
2860
+ { no: 3, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
2861
+ ])
2862
+
2863
+ static fromBinary(
2864
+ bytes: Uint8Array,
2865
+ options?: Partial<BinaryReadOptions>,
2866
+ ): GetQuotesBySubjectSortedRequest {
2867
+ return new GetQuotesBySubjectSortedRequest().fromBinary(bytes, options)
2868
+ }
2869
+
2870
+ static fromJson(
2871
+ jsonValue: JsonValue,
2872
+ options?: Partial<JsonReadOptions>,
2873
+ ): GetQuotesBySubjectSortedRequest {
2874
+ return new GetQuotesBySubjectSortedRequest().fromJson(jsonValue, options)
2875
+ }
2876
+
2877
+ static fromJsonString(
2878
+ jsonString: string,
2879
+ options?: Partial<JsonReadOptions>,
2880
+ ): GetQuotesBySubjectSortedRequest {
2881
+ return new GetQuotesBySubjectSortedRequest().fromJsonString(
2882
+ jsonString,
2883
+ options,
2884
+ )
2885
+ }
2886
+
2887
+ static equals(
2888
+ a:
2889
+ | GetQuotesBySubjectSortedRequest
2890
+ | PlainMessage<GetQuotesBySubjectSortedRequest>
2891
+ | undefined,
2892
+ b:
2893
+ | GetQuotesBySubjectSortedRequest
2894
+ | PlainMessage<GetQuotesBySubjectSortedRequest>
2895
+ | undefined,
2896
+ ): boolean {
2897
+ return proto3.util.equals(GetQuotesBySubjectSortedRequest, a, b)
2898
+ }
2899
+ }
2900
+
2901
+ /**
2902
+ * @generated from message bsky.GetQuotesBySubjectSortedResponse
2903
+ */
2904
+ export class GetQuotesBySubjectSortedResponse extends Message<GetQuotesBySubjectSortedResponse> {
2905
+ /**
2906
+ * @generated from field: repeated string uris = 1;
2907
+ */
2908
+ uris: string[] = []
2909
+
2910
+ /**
2911
+ * @generated from field: string cursor = 2;
2912
+ */
2913
+ cursor = ''
2914
+
2915
+ constructor(data?: PartialMessage<GetQuotesBySubjectSortedResponse>) {
2916
+ super()
2917
+ proto3.util.initPartial(data, this)
2918
+ }
2919
+
2920
+ static readonly runtime: typeof proto3 = proto3
2921
+ static readonly typeName = 'bsky.GetQuotesBySubjectSortedResponse'
2922
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
2923
+ {
2924
+ no: 1,
2925
+ name: 'uris',
2926
+ kind: 'scalar',
2927
+ T: 9 /* ScalarType.STRING */,
2928
+ repeated: true,
2929
+ },
2930
+ { no: 2, name: 'cursor', kind: 'scalar', T: 9 /* ScalarType.STRING */ },
2931
+ ])
2932
+
2933
+ static fromBinary(
2934
+ bytes: Uint8Array,
2935
+ options?: Partial<BinaryReadOptions>,
2936
+ ): GetQuotesBySubjectSortedResponse {
2937
+ return new GetQuotesBySubjectSortedResponse().fromBinary(bytes, options)
2938
+ }
2939
+
2940
+ static fromJson(
2941
+ jsonValue: JsonValue,
2942
+ options?: Partial<JsonReadOptions>,
2943
+ ): GetQuotesBySubjectSortedResponse {
2944
+ return new GetQuotesBySubjectSortedResponse().fromJson(jsonValue, options)
2945
+ }
2946
+
2947
+ static fromJsonString(
2948
+ jsonString: string,
2949
+ options?: Partial<JsonReadOptions>,
2950
+ ): GetQuotesBySubjectSortedResponse {
2951
+ return new GetQuotesBySubjectSortedResponse().fromJsonString(
2952
+ jsonString,
2953
+ options,
2954
+ )
2955
+ }
2956
+
2957
+ static equals(
2958
+ a:
2959
+ | GetQuotesBySubjectSortedResponse
2960
+ | PlainMessage<GetQuotesBySubjectSortedResponse>
2961
+ | undefined,
2962
+ b:
2963
+ | GetQuotesBySubjectSortedResponse
2964
+ | PlainMessage<GetQuotesBySubjectSortedResponse>
2965
+ | undefined,
2966
+ ): boolean {
2967
+ return proto3.util.equals(GetQuotesBySubjectSortedResponse, a, b)
2968
+ }
2969
+ }
2970
+
2682
2971
  /**
2683
2972
  * - return like uris for user A on subject B, C, D...
2684
2973
  * - viewer state on posts
@@ -3062,6 +3351,11 @@ export class GetInteractionCountsResponse extends Message<GetInteractionCountsRe
3062
3351
  */
3063
3352
  replies: number[] = []
3064
3353
 
3354
+ /**
3355
+ * @generated from field: repeated int32 quotes = 4;
3356
+ */
3357
+ quotes: number[] = []
3358
+
3065
3359
  constructor(data?: PartialMessage<GetInteractionCountsResponse>) {
3066
3360
  super()
3067
3361
  proto3.util.initPartial(data, this)
@@ -3091,6 +3385,13 @@ export class GetInteractionCountsResponse extends Message<GetInteractionCountsRe
3091
3385
  T: 5 /* ScalarType.INT32 */,
3092
3386
  repeated: true,
3093
3387
  },
3388
+ {
3389
+ no: 4,
3390
+ name: 'quotes',
3391
+ kind: 'scalar',
3392
+ T: 5 /* ScalarType.INT32 */,
3393
+ repeated: true,
3394
+ },
3094
3395
  ])
3095
3396
 
3096
3397
  static fromBinary(
@@ -3560,6 +3861,128 @@ export class GetListCountsResponse extends Message<GetListCountsResponse> {
3560
3861
  }
3561
3862
  }
3562
3863
 
3864
+ /**
3865
+ * @generated from message bsky.GetNewUserCountForRangeRequest
3866
+ */
3867
+ export class GetNewUserCountForRangeRequest extends Message<GetNewUserCountForRangeRequest> {
3868
+ /**
3869
+ * @generated from field: google.protobuf.Timestamp start = 1;
3870
+ */
3871
+ start?: Timestamp
3872
+
3873
+ /**
3874
+ * @generated from field: google.protobuf.Timestamp end = 2;
3875
+ */
3876
+ end?: Timestamp
3877
+
3878
+ constructor(data?: PartialMessage<GetNewUserCountForRangeRequest>) {
3879
+ super()
3880
+ proto3.util.initPartial(data, this)
3881
+ }
3882
+
3883
+ static readonly runtime: typeof proto3 = proto3
3884
+ static readonly typeName = 'bsky.GetNewUserCountForRangeRequest'
3885
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
3886
+ { no: 1, name: 'start', kind: 'message', T: Timestamp },
3887
+ { no: 2, name: 'end', kind: 'message', T: Timestamp },
3888
+ ])
3889
+
3890
+ static fromBinary(
3891
+ bytes: Uint8Array,
3892
+ options?: Partial<BinaryReadOptions>,
3893
+ ): GetNewUserCountForRangeRequest {
3894
+ return new GetNewUserCountForRangeRequest().fromBinary(bytes, options)
3895
+ }
3896
+
3897
+ static fromJson(
3898
+ jsonValue: JsonValue,
3899
+ options?: Partial<JsonReadOptions>,
3900
+ ): GetNewUserCountForRangeRequest {
3901
+ return new GetNewUserCountForRangeRequest().fromJson(jsonValue, options)
3902
+ }
3903
+
3904
+ static fromJsonString(
3905
+ jsonString: string,
3906
+ options?: Partial<JsonReadOptions>,
3907
+ ): GetNewUserCountForRangeRequest {
3908
+ return new GetNewUserCountForRangeRequest().fromJsonString(
3909
+ jsonString,
3910
+ options,
3911
+ )
3912
+ }
3913
+
3914
+ static equals(
3915
+ a:
3916
+ | GetNewUserCountForRangeRequest
3917
+ | PlainMessage<GetNewUserCountForRangeRequest>
3918
+ | undefined,
3919
+ b:
3920
+ | GetNewUserCountForRangeRequest
3921
+ | PlainMessage<GetNewUserCountForRangeRequest>
3922
+ | undefined,
3923
+ ): boolean {
3924
+ return proto3.util.equals(GetNewUserCountForRangeRequest, a, b)
3925
+ }
3926
+ }
3927
+
3928
+ /**
3929
+ * @generated from message bsky.GetNewUserCountForRangeResponse
3930
+ */
3931
+ export class GetNewUserCountForRangeResponse extends Message<GetNewUserCountForRangeResponse> {
3932
+ /**
3933
+ * @generated from field: int32 count = 1;
3934
+ */
3935
+ count = 0
3936
+
3937
+ constructor(data?: PartialMessage<GetNewUserCountForRangeResponse>) {
3938
+ super()
3939
+ proto3.util.initPartial(data, this)
3940
+ }
3941
+
3942
+ static readonly runtime: typeof proto3 = proto3
3943
+ static readonly typeName = 'bsky.GetNewUserCountForRangeResponse'
3944
+ static readonly fields: FieldList = proto3.util.newFieldList(() => [
3945
+ { no: 1, name: 'count', kind: 'scalar', T: 5 /* ScalarType.INT32 */ },
3946
+ ])
3947
+
3948
+ static fromBinary(
3949
+ bytes: Uint8Array,
3950
+ options?: Partial<BinaryReadOptions>,
3951
+ ): GetNewUserCountForRangeResponse {
3952
+ return new GetNewUserCountForRangeResponse().fromBinary(bytes, options)
3953
+ }
3954
+
3955
+ static fromJson(
3956
+ jsonValue: JsonValue,
3957
+ options?: Partial<JsonReadOptions>,
3958
+ ): GetNewUserCountForRangeResponse {
3959
+ return new GetNewUserCountForRangeResponse().fromJson(jsonValue, options)
3960
+ }
3961
+
3962
+ static fromJsonString(
3963
+ jsonString: string,
3964
+ options?: Partial<JsonReadOptions>,
3965
+ ): GetNewUserCountForRangeResponse {
3966
+ return new GetNewUserCountForRangeResponse().fromJsonString(
3967
+ jsonString,
3968
+ options,
3969
+ )
3970
+ }
3971
+
3972
+ static equals(
3973
+ a:
3974
+ | GetNewUserCountForRangeResponse
3975
+ | PlainMessage<GetNewUserCountForRangeResponse>
3976
+ | undefined,
3977
+ b:
3978
+ | GetNewUserCountForRangeResponse
3979
+ | PlainMessage<GetNewUserCountForRangeResponse>
3980
+ | undefined,
3981
+ ): boolean {
3982
+ return proto3.util.equals(GetNewUserCountForRangeResponse, a, b)
3983
+ }
3984
+ }
3985
+
3563
3986
  /**
3564
3987
  * - return repost uris where subject uri is subject A
3565
3988
  * - `getReposts` list for a post
@@ -10496,7 +10919,7 @@ export class GetRecordTakedownResponse extends Message<GetRecordTakedownResponse
10496
10919
  }
10497
10920
 
10498
10921
  /**
10499
- * GetFollowsFollowing gets the list of DIDs that the actor follows that also follow the target
10922
+ * GetFollowsFollowing gets the list of DIDs that the actor follows that also follow the targets
10500
10923
  *
10501
10924
  * @generated from message bsky.GetFollowsFollowingRequest
10502
10925
  */
@@ -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
+ }