@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
@@ -1,5 +1,6 @@
1
1
  import { AtpAgent } from '@atproto/api'
2
- import { basicSeed, SeedClient, TestNetwork } from '@atproto/dev-env'
2
+ import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env'
3
+ import { ids } from '../../src/lexicon/lexicons'
3
4
 
4
5
  describe('bsky account deactivation', () => {
5
6
  let network: TestNetwork
@@ -69,7 +70,12 @@ describe('bsky account deactivation', () => {
69
70
  it('does not return posts from deactivated in timelines', async () => {
70
71
  const res = await agent.api.app.bsky.feed.getTimeline(
71
72
  {},
72
- { headers: await network.serviceHeaders(sc.dids.bob) },
73
+ {
74
+ headers: await network.serviceHeaders(
75
+ sc.dids.bob,
76
+ ids.AppBskyFeedGetTimeline,
77
+ ),
78
+ },
73
79
  )
74
80
  expect(res.data.feed.some((p) => p.post.author.did === alice)).toBe(false)
75
81
  })
@@ -1,5 +1,6 @@
1
- import { AtpAgent, AtUri } from '@atproto/api'
2
- import { basicSeed, SeedClient, TestNetwork } from '@atproto/dev-env'
1
+ import { AtUri, AtpAgent } from '@atproto/api'
2
+ import { TestNetwork, SeedClient, basicSeed } from '@atproto/dev-env'
3
+ import { ids } from '../../src/lexicon/lexicons'
3
4
 
4
5
  describe('bsky actor likes feed views', () => {
5
6
  let network: TestNetwork
@@ -35,7 +36,12 @@ describe('bsky actor likes feed views', () => {
35
36
  data: { feed: bobLikes },
36
37
  } = await agent.api.app.bsky.feed.getActorLikes(
37
38
  { actor: sc.accounts[bob].handle },
38
- { headers: await network.serviceHeaders(bob) },
39
+ {
40
+ headers: await network.serviceHeaders(
41
+ bob,
42
+ ids.AppBskyFeedGetActorLikes,
43
+ ),
44
+ },
39
45
  )
40
46
 
41
47
  expect(bobLikes).toHaveLength(3)
@@ -43,7 +49,12 @@ describe('bsky actor likes feed views', () => {
43
49
  await expect(
44
50
  agent.api.app.bsky.feed.getActorLikes(
45
51
  { actor: sc.accounts[bob].handle },
46
- { headers: await network.serviceHeaders(carol) },
52
+ {
53
+ headers: await network.serviceHeaders(
54
+ carol,
55
+ ids.AppBskyFeedGetActorLikes,
56
+ ),
57
+ },
47
58
  ),
48
59
  ).rejects.toThrow('Profile not found')
49
60
  })
@@ -66,7 +77,12 @@ describe('bsky actor likes feed views', () => {
66
77
  data: { feed },
67
78
  } = await agent.api.app.bsky.feed.getActorLikes(
68
79
  { actor: sc.accounts[bob].handle },
69
- { headers: await network.serviceHeaders(bob) },
80
+ {
81
+ headers: await network.serviceHeaders(
82
+ bob,
83
+ ids.AppBskyFeedGetActorLikes,
84
+ ),
85
+ },
70
86
  )
71
87
 
72
88
  expect(
@@ -100,7 +116,12 @@ describe('bsky actor likes feed views', () => {
100
116
  data: { feed },
101
117
  } = await agent.api.app.bsky.feed.getActorLikes(
102
118
  { actor: sc.accounts[bob].handle },
103
- { headers: await network.serviceHeaders(bob) },
119
+ {
120
+ headers: await network.serviceHeaders(
121
+ bob,
122
+ ids.AppBskyFeedGetActorLikes,
123
+ ),
124
+ },
104
125
  )
105
126
 
106
127
  expect(
@@ -2,6 +2,7 @@ import { AtpAgent } from '@atproto/api'
2
2
  import { wait } from '@atproto/common'
3
3
  import { TestNetwork, SeedClient, usersBulkSeed } from '@atproto/dev-env'
4
4
  import { forSnapshot, paginateAll, stripViewer } from '../_util'
5
+ import { ids } from '../../src/lexicon/lexicons'
5
6
 
6
7
  // @NOTE skipped to help with CI failures
7
8
  // The search code is not used in production & we should switch it out for tests on the search proxy interface
@@ -40,7 +41,10 @@ describe.skip('pds actor search views', () => {
40
41
  // Process remaining profiles
41
42
  network.bsky.sub.run()
42
43
  await network.processAll(50000)
43
- headers = await network.serviceHeaders(Object.values(sc.dids)[0])
44
+ headers = await network.serviceHeaders(
45
+ Object.values(sc.dids)[0],
46
+ ids.AppBskyActorSearchActorsTypeahead,
47
+ )
44
48
  })
45
49
 
46
50
  afterAll(async () => {
@@ -1,4 +1,4 @@
1
- import { AtpAgent, AtUri } from '@atproto/api'
1
+ import { AtpAgent } from '@atproto/api'
2
2
  import { TestNetwork, SeedClient, authorFeedSeed } from '@atproto/dev-env'
3
3
  import {
4
4
  forSnapshot,
@@ -10,6 +10,8 @@ import { ReplyRef, isRecord } from '../../src/lexicon/types/app/bsky/feed/post'
10
10
  import { isView as isEmbedRecordWithMedia } from '../../src/lexicon/types/app/bsky/embed/recordWithMedia'
11
11
  import { isView as isImageEmbed } from '../../src/lexicon/types/app/bsky/embed/images'
12
12
  import { isPostView } from '../../src/lexicon/types/app/bsky/feed/defs'
13
+ import { uriToDid } from '../../src/util/uris'
14
+ import { ids } from '../../src/lexicon/lexicons'
13
15
 
14
16
  describe('pds author feed views', () => {
15
17
  let network: TestNetwork
@@ -48,28 +50,48 @@ describe('pds author feed views', () => {
48
50
  it('fetches full author feeds for self (sorted, minimal viewer state).', async () => {
49
51
  const aliceForAlice = await agent.api.app.bsky.feed.getAuthorFeed(
50
52
  { actor: sc.accounts[alice].handle },
51
- { headers: await network.serviceHeaders(alice) },
53
+ {
54
+ headers: await network.serviceHeaders(
55
+ alice,
56
+ ids.AppBskyFeedGetAuthorFeed,
57
+ ),
58
+ },
52
59
  )
53
60
 
54
61
  expect(forSnapshot(aliceForAlice.data.feed)).toMatchSnapshot()
55
62
 
56
63
  const bobForBob = await agent.api.app.bsky.feed.getAuthorFeed(
57
64
  { actor: sc.accounts[bob].handle },
58
- { headers: await network.serviceHeaders(bob) },
65
+ {
66
+ headers: await network.serviceHeaders(
67
+ bob,
68
+ ids.AppBskyFeedGetAuthorFeed,
69
+ ),
70
+ },
59
71
  )
60
72
 
61
73
  expect(forSnapshot(bobForBob.data.feed)).toMatchSnapshot()
62
74
 
63
75
  const carolForCarol = await agent.api.app.bsky.feed.getAuthorFeed(
64
76
  { actor: sc.accounts[carol].handle },
65
- { headers: await network.serviceHeaders(carol) },
77
+ {
78
+ headers: await network.serviceHeaders(
79
+ carol,
80
+ ids.AppBskyFeedGetAuthorFeed,
81
+ ),
82
+ },
66
83
  )
67
84
 
68
85
  expect(forSnapshot(carolForCarol.data.feed)).toMatchSnapshot()
69
86
 
70
87
  const danForDan = await agent.api.app.bsky.feed.getAuthorFeed(
71
88
  { actor: sc.accounts[dan].handle },
72
- { headers: await network.serviceHeaders(dan) },
89
+ {
90
+ headers: await network.serviceHeaders(
91
+ dan,
92
+ ids.AppBskyFeedGetAuthorFeed,
93
+ ),
94
+ },
73
95
  )
74
96
 
75
97
  expect(forSnapshot(danForDan.data.feed)).toMatchSnapshot()
@@ -78,7 +100,12 @@ describe('pds author feed views', () => {
78
100
  it("reflects fetching user's state in the feed.", async () => {
79
101
  const aliceForCarol = await agent.api.app.bsky.feed.getAuthorFeed(
80
102
  { actor: sc.accounts[alice].handle },
81
- { headers: await network.serviceHeaders(carol) },
103
+ {
104
+ headers: await network.serviceHeaders(
105
+ carol,
106
+ ids.AppBskyFeedGetAuthorFeed,
107
+ ),
108
+ },
82
109
  )
83
110
 
84
111
  aliceForCarol.data.feed.forEach((postView) => {
@@ -99,7 +126,12 @@ describe('pds author feed views', () => {
99
126
  cursor,
100
127
  limit: 2,
101
128
  },
102
- { headers: await network.serviceHeaders(dan) },
129
+ {
130
+ headers: await network.serviceHeaders(
131
+ dan,
132
+ ids.AppBskyFeedGetAuthorFeed,
133
+ ),
134
+ },
103
135
  )
104
136
  return res.data
105
137
  }
@@ -111,7 +143,12 @@ describe('pds author feed views', () => {
111
143
 
112
144
  const full = await agent.api.app.bsky.feed.getAuthorFeed(
113
145
  { actor: sc.accounts[alice].handle },
114
- { headers: await network.serviceHeaders(dan) },
146
+ {
147
+ headers: await network.serviceHeaders(
148
+ dan,
149
+ ids.AppBskyFeedGetAuthorFeed,
150
+ ),
151
+ },
115
152
  )
116
153
 
117
154
  expect(full.data.feed.length).toEqual(4)
@@ -121,7 +158,12 @@ describe('pds author feed views', () => {
121
158
  it('fetches results unauthed.', async () => {
122
159
  const { data: authed } = await agent.api.app.bsky.feed.getAuthorFeed(
123
160
  { actor: sc.accounts[alice].handle },
124
- { headers: await network.serviceHeaders(alice) },
161
+ {
162
+ headers: await network.serviceHeaders(
163
+ alice,
164
+ ids.AppBskyFeedGetAuthorFeed,
165
+ ),
166
+ },
125
167
  )
126
168
  const { data: unauthed } = await agent.api.app.bsky.feed.getAuthorFeed({
127
169
  actor: sc.accounts[alice].handle,
@@ -150,7 +192,12 @@ describe('pds author feed views', () => {
150
192
  it('non-admins blocked by actor takedown.', async () => {
151
193
  const { data: preBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
152
194
  { actor: alice },
153
- { headers: await network.serviceHeaders(carol) },
195
+ {
196
+ headers: await network.serviceHeaders(
197
+ carol,
198
+ ids.AppBskyFeedGetAuthorFeed,
199
+ ),
200
+ },
154
201
  )
155
202
 
156
203
  expect(preBlock.feed.length).toBeGreaterThan(0)
@@ -161,7 +208,12 @@ describe('pds author feed views', () => {
161
208
 
162
209
  const attemptAsUser = agent.api.app.bsky.feed.getAuthorFeed(
163
210
  { actor: alice },
164
- { headers: await network.serviceHeaders(carol) },
211
+ {
212
+ headers: await network.serviceHeaders(
213
+ carol,
214
+ ids.AppBskyFeedGetAuthorFeed,
215
+ ),
216
+ },
165
217
  )
166
218
  await expect(attemptAsUser).rejects.toThrow('Profile not found')
167
219
 
@@ -180,7 +232,12 @@ describe('pds author feed views', () => {
180
232
  it('blocked by record takedown.', async () => {
181
233
  const { data: preBlock } = await agent.api.app.bsky.feed.getAuthorFeed(
182
234
  { actor: alice },
183
- { headers: await network.serviceHeaders(carol) },
235
+ {
236
+ headers: await network.serviceHeaders(
237
+ carol,
238
+ ids.AppBskyFeedGetAuthorFeed,
239
+ ),
240
+ },
184
241
  )
185
242
 
186
243
  expect(preBlock.feed.length).toBeGreaterThan(0)
@@ -195,7 +252,12 @@ describe('pds author feed views', () => {
195
252
  await Promise.all([
196
253
  agent.api.app.bsky.feed.getAuthorFeed(
197
254
  { actor: alice },
198
- { headers: await network.serviceHeaders(carol) },
255
+ {
256
+ headers: await network.serviceHeaders(
257
+ carol,
258
+ ids.AppBskyFeedGetAuthorFeed,
259
+ ),
260
+ },
199
261
  ),
200
262
  agent.api.app.bsky.feed.getAuthorFeed(
201
263
  { actor: alice },
@@ -327,12 +389,5 @@ describe('pds author feed views', () => {
327
389
  })
328
390
 
329
391
  function isReplyTo(reply: ReplyRef, did: string) {
330
- return (
331
- getDidFromUri(reply.root.uri) === did &&
332
- getDidFromUri(reply.parent.uri) === did
333
- )
334
- }
335
-
336
- function getDidFromUri(uri: string) {
337
- return new AtUri(uri).hostname
392
+ return uriToDid(reply.root.uri) === did && uriToDid(reply.parent.uri) === did
338
393
  }