@atproto/bsky 0.0.61 → 0.0.63
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.
- package/CHANGELOG.md +14 -0
- package/dist/api/app/bsky/graph/muteThread.d.ts +4 -0
- package/dist/api/app/bsky/graph/muteThread.d.ts.map +1 -0
- package/dist/api/app/bsky/graph/muteThread.js +19 -0
- package/dist/api/app/bsky/graph/muteThread.js.map +1 -0
- package/dist/api/app/bsky/graph/unmuteThread.d.ts +4 -0
- package/dist/api/app/bsky/graph/unmuteThread.d.ts.map +1 -0
- package/dist/api/app/bsky/graph/unmuteThread.js +19 -0
- package/dist/api/app/bsky/graph/unmuteThread.js.map +1 -0
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +4 -0
- package/dist/api/index.js.map +1 -1
- package/dist/data-plane/bsync/index.d.ts.map +1 -1
- package/dist/data-plane/bsync/index.js +41 -15
- package/dist/data-plane/bsync/index.js.map +1 -1
- package/dist/data-plane/server/db/database-schema.d.ts +2 -1
- package/dist/data-plane/server/db/database-schema.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js +18 -0
- package/dist/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.js.map +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js +2 -1
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/tables/thread-mute.d.ts +10 -0
- package/dist/data-plane/server/db/tables/thread-mute.d.ts.map +1 -0
- package/dist/data-plane/server/db/tables/thread-mute.js +5 -0
- package/dist/data-plane/server/db/tables/thread-mute.js.map +1 -0
- package/dist/data-plane/server/indexing/processor.d.ts +2 -0
- package/dist/data-plane/server/indexing/processor.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/processor.js +28 -1
- package/dist/data-plane/server/indexing/processor.js.map +1 -1
- package/dist/data-plane/server/routes/mutes.d.ts.map +1 -1
- package/dist/data-plane/server/routes/mutes.js +16 -0
- package/dist/data-plane/server/routes/mutes.js.map +1 -1
- package/dist/data-plane/server/util.d.ts +6 -6
- package/dist/hydration/feed.d.ts +6 -1
- package/dist/hydration/feed.d.ts.map +1 -1
- package/dist/hydration/feed.js +16 -2
- package/dist/hydration/feed.js.map +1 -1
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +13 -6
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/hydration/util.d.ts +1 -1
- package/dist/hydration/util.d.ts.map +1 -1
- package/dist/hydration/util.js.map +1 -1
- package/dist/lexicon/index.d.ts +4 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +8 -0
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +51 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +51 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts +1 -0
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/graph/muteThread.d.ts +29 -0
- package/dist/lexicon/types/app/bsky/graph/muteThread.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/muteThread.js +3 -0
- package/dist/lexicon/types/app/bsky/graph/muteThread.js.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.d.ts +29 -0
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js +3 -0
- package/dist/lexicon/types/app/bsky/graph/unmuteThread.js.map +1 -0
- package/dist/logger.d.ts +2 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +77 -63
- package/dist/logger.js.map +1 -1
- package/dist/proto/bsky_connect.d.ts +39 -1
- package/dist/proto/bsky_connect.d.ts.map +1 -1
- package/dist/proto/bsky_connect.js +38 -0
- package/dist/proto/bsky_connect.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +136 -0
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +430 -3
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +1 -0
- package/dist/views/index.js.map +1 -1
- package/package.json +5 -5
- package/proto/bsky.proto +41 -0
- package/src/api/app/bsky/graph/muteThread.ts +18 -0
- package/src/api/app/bsky/graph/unmuteThread.ts +18 -0
- package/src/api/index.ts +4 -0
- package/src/data-plane/bsync/index.ts +39 -15
- package/src/data-plane/server/db/database-schema.ts +2 -0
- package/src/data-plane/server/db/migrations/20240606T171229898Z-thread-mutes.ts +15 -0
- package/src/data-plane/server/db/migrations/index.ts +1 -0
- package/src/data-plane/server/db/tables/thread-mute.ts +9 -0
- package/src/data-plane/server/indexing/processor.ts +29 -1
- package/src/data-plane/server/routes/mutes.ts +17 -0
- package/src/hydration/feed.ts +23 -3
- package/src/hydration/hydrator.ts +14 -6
- package/src/hydration/util.ts +1 -3
- package/src/lexicon/index.ts +24 -0
- package/src/lexicon/lexicons.ts +52 -0
- package/src/lexicon/types/app/bsky/feed/defs.ts +1 -0
- package/src/lexicon/types/app/bsky/graph/muteThread.ts +38 -0
- package/src/lexicon/types/app/bsky/graph/unmuteThread.ts +38 -0
- package/src/logger.ts +81 -38
- package/src/proto/bsky_connect.ts +46 -0
- package/src/proto/bsky_pb.ts +465 -0
- package/src/views/index.ts +1 -0
- package/tests/__snapshots__/feed-generation.test.ts.snap +38 -12
- package/tests/data-plane/__snapshots__/indexing.test.ts.snap +27 -9
- package/tests/data-plane/thread-mutes.test.ts +140 -0
- package/tests/views/__snapshots__/author-feed.test.ts.snap +62 -17
- package/tests/views/__snapshots__/block-lists.test.ts.snap +7 -2
- package/tests/views/__snapshots__/blocks.test.ts.snap +13 -4
- package/tests/views/__snapshots__/list-feed.test.ts.snap +23 -6
- package/tests/views/__snapshots__/mute-lists.test.ts.snap +10 -3
- package/tests/views/__snapshots__/mutes.test.ts.snap +9 -3
- package/tests/views/__snapshots__/posts.test.ts.snap +16 -5
- package/tests/views/__snapshots__/thread.test.ts.snap +53 -14
- package/tests/views/__snapshots__/timeline.test.ts.snap +213 -64
- package/tests/views/threadgating.test.ts +19 -19
|
@@ -59,7 +59,7 @@ describe('views with thread gating', () => {
|
|
|
59
59
|
)
|
|
60
60
|
assert(isThreadViewPost(thread))
|
|
61
61
|
expect(forSnapshot(thread.post.threadgate)).toMatchSnapshot()
|
|
62
|
-
expect(thread.post.viewer).
|
|
62
|
+
expect(thread.post.viewer?.replyDisabled).toBe(true)
|
|
63
63
|
expect(thread.replies?.length).toEqual(0)
|
|
64
64
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, true)
|
|
65
65
|
})
|
|
@@ -140,7 +140,7 @@ describe('views with thread gating', () => {
|
|
|
140
140
|
{ headers: await network.serviceHeaders(sc.dids.alice) },
|
|
141
141
|
)
|
|
142
142
|
assert(isThreadViewPost(aliceThread))
|
|
143
|
-
expect(aliceThread.post.viewer).
|
|
143
|
+
expect(aliceThread.post.viewer?.replyDisabled).toBe(true)
|
|
144
144
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, true)
|
|
145
145
|
const {
|
|
146
146
|
data: { thread: danThread },
|
|
@@ -150,7 +150,7 @@ describe('views with thread gating', () => {
|
|
|
150
150
|
)
|
|
151
151
|
assert(isThreadViewPost(danThread))
|
|
152
152
|
expect(forSnapshot(danThread.post.threadgate)).toMatchSnapshot()
|
|
153
|
-
expect(danThread.post.viewer).
|
|
153
|
+
expect(danThread.post.viewer?.replyDisabled).toBe(false)
|
|
154
154
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.dan, false)
|
|
155
155
|
const [reply, ...otherReplies] = danThread.replies ?? []
|
|
156
156
|
assert(isThreadViewPost(reply))
|
|
@@ -191,7 +191,7 @@ describe('views with thread gating', () => {
|
|
|
191
191
|
{ headers: await network.serviceHeaders(sc.dids.dan) },
|
|
192
192
|
)
|
|
193
193
|
assert(isThreadViewPost(danThread))
|
|
194
|
-
expect(danThread.post.viewer).
|
|
194
|
+
expect(danThread.post.viewer?.replyDisabled).toBe(true)
|
|
195
195
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.dan, true)
|
|
196
196
|
const {
|
|
197
197
|
data: { thread: aliceThread },
|
|
@@ -201,7 +201,7 @@ describe('views with thread gating', () => {
|
|
|
201
201
|
)
|
|
202
202
|
assert(isThreadViewPost(aliceThread))
|
|
203
203
|
expect(forSnapshot(aliceThread.post.threadgate)).toMatchSnapshot()
|
|
204
|
-
expect(aliceThread.post.viewer).
|
|
204
|
+
expect(aliceThread.post.viewer?.replyDisabled).toBe(false)
|
|
205
205
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, false)
|
|
206
206
|
const [reply, ...otherReplies] = aliceThread.replies ?? []
|
|
207
207
|
assert(isThreadViewPost(reply))
|
|
@@ -283,7 +283,7 @@ describe('views with thread gating', () => {
|
|
|
283
283
|
{ headers: await network.serviceHeaders(sc.dids.bob) },
|
|
284
284
|
)
|
|
285
285
|
assert(isThreadViewPost(bobThread))
|
|
286
|
-
expect(bobThread.post.viewer).
|
|
286
|
+
expect(bobThread.post.viewer?.replyDisabled).toBe(true)
|
|
287
287
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.bob, true)
|
|
288
288
|
const {
|
|
289
289
|
data: { thread: aliceThread },
|
|
@@ -292,7 +292,7 @@ describe('views with thread gating', () => {
|
|
|
292
292
|
{ headers: await network.serviceHeaders(sc.dids.alice) },
|
|
293
293
|
)
|
|
294
294
|
assert(isThreadViewPost(aliceThread))
|
|
295
|
-
expect(aliceThread.post.viewer).
|
|
295
|
+
expect(aliceThread.post.viewer?.replyDisabled).toBe(false)
|
|
296
296
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, false)
|
|
297
297
|
const {
|
|
298
298
|
data: { thread: danThread },
|
|
@@ -302,7 +302,7 @@ describe('views with thread gating', () => {
|
|
|
302
302
|
)
|
|
303
303
|
assert(isThreadViewPost(danThread))
|
|
304
304
|
expect(forSnapshot(danThread.post.threadgate)).toMatchSnapshot()
|
|
305
|
-
expect(danThread.post.viewer).
|
|
305
|
+
expect(danThread.post.viewer?.replyDisabled).toBe(false)
|
|
306
306
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.dan, false)
|
|
307
307
|
const [reply1, reply2, ...otherReplies] = aliceThread.replies ?? []
|
|
308
308
|
assert(isThreadViewPost(reply1))
|
|
@@ -345,7 +345,7 @@ describe('views with thread gating', () => {
|
|
|
345
345
|
)
|
|
346
346
|
assert(isThreadViewPost(thread))
|
|
347
347
|
expect(forSnapshot(thread.post.threadgate)).toMatchSnapshot()
|
|
348
|
-
expect(thread.post.viewer).
|
|
348
|
+
expect(thread.post.viewer?.replyDisabled).toBe(true)
|
|
349
349
|
expect(thread.replies?.length).toEqual(0)
|
|
350
350
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, true)
|
|
351
351
|
})
|
|
@@ -394,7 +394,7 @@ describe('views with thread gating', () => {
|
|
|
394
394
|
{ headers: await network.serviceHeaders(sc.dids.bob) },
|
|
395
395
|
)
|
|
396
396
|
assert(isThreadViewPost(bobThread))
|
|
397
|
-
expect(bobThread.post.viewer).
|
|
397
|
+
expect(bobThread.post.viewer?.replyDisabled).toBe(true)
|
|
398
398
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.bob, true)
|
|
399
399
|
const {
|
|
400
400
|
data: { thread: aliceThread },
|
|
@@ -403,7 +403,7 @@ describe('views with thread gating', () => {
|
|
|
403
403
|
{ headers: await network.serviceHeaders(sc.dids.alice) },
|
|
404
404
|
)
|
|
405
405
|
assert(isThreadViewPost(aliceThread))
|
|
406
|
-
expect(aliceThread.post.viewer).
|
|
406
|
+
expect(aliceThread.post.viewer?.replyDisabled).toBe(false)
|
|
407
407
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, false)
|
|
408
408
|
const {
|
|
409
409
|
data: { thread: danThread },
|
|
@@ -413,7 +413,7 @@ describe('views with thread gating', () => {
|
|
|
413
413
|
)
|
|
414
414
|
assert(isThreadViewPost(danThread))
|
|
415
415
|
expect(forSnapshot(danThread.post.threadgate)).toMatchSnapshot()
|
|
416
|
-
expect(danThread.post.viewer).
|
|
416
|
+
expect(danThread.post.viewer?.replyDisabled).toBe(false)
|
|
417
417
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.dan, false)
|
|
418
418
|
const [reply1, reply2, ...otherReplies] = aliceThread.replies ?? []
|
|
419
419
|
assert(isThreadViewPost(reply1))
|
|
@@ -447,7 +447,7 @@ describe('views with thread gating', () => {
|
|
|
447
447
|
)
|
|
448
448
|
assert(isThreadViewPost(thread))
|
|
449
449
|
expect(forSnapshot(thread.post.threadgate)).toMatchSnapshot()
|
|
450
|
-
expect(thread.post.viewer).
|
|
450
|
+
expect(thread.post.viewer?.replyDisabled).toBe(false)
|
|
451
451
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.alice, false)
|
|
452
452
|
const [reply, ...otherReplies] = thread.replies ?? []
|
|
453
453
|
assert(isThreadViewPost(reply))
|
|
@@ -500,7 +500,7 @@ describe('views with thread gating', () => {
|
|
|
500
500
|
{ headers: await network.serviceHeaders(sc.dids.dan) },
|
|
501
501
|
)
|
|
502
502
|
assert(isThreadViewPost(danThread))
|
|
503
|
-
expect(danThread.post.viewer).
|
|
503
|
+
expect(danThread.post.viewer?.replyDisabled).toBe(true)
|
|
504
504
|
await checkReplyDisabled(orphanedReply.ref.uriStr, sc.dids.dan, true)
|
|
505
505
|
const {
|
|
506
506
|
data: { thread: aliceThread },
|
|
@@ -514,7 +514,7 @@ describe('views with thread gating', () => {
|
|
|
514
514
|
aliceThread.parent.uri === post.ref.uriStr,
|
|
515
515
|
)
|
|
516
516
|
expect(aliceThread.post.threadgate).toMatchSnapshot()
|
|
517
|
-
expect(aliceThread.post.viewer).
|
|
517
|
+
expect(aliceThread.post.viewer?.replyDisabled).toBe(false)
|
|
518
518
|
await checkReplyDisabled(orphanedReply.ref.uriStr, sc.dids.alice, false)
|
|
519
519
|
const [reply, ...otherReplies] = aliceThread.replies ?? []
|
|
520
520
|
assert(isThreadViewPost(reply))
|
|
@@ -545,7 +545,7 @@ describe('views with thread gating', () => {
|
|
|
545
545
|
)
|
|
546
546
|
assert(isThreadViewPost(thread))
|
|
547
547
|
expect(forSnapshot(thread.post.threadgate)).toMatchSnapshot()
|
|
548
|
-
expect(thread.post.viewer).
|
|
548
|
+
expect(thread.post.viewer?.replyDisabled).toBe(false)
|
|
549
549
|
await checkReplyDisabled(post.ref.uriStr, sc.dids.carol, false)
|
|
550
550
|
const [reply, ...otherReplies] = thread.replies ?? []
|
|
551
551
|
assert(isThreadViewPost(reply))
|
|
@@ -583,7 +583,7 @@ describe('views with thread gating', () => {
|
|
|
583
583
|
{ headers: await network.serviceHeaders(sc.dids.alice) },
|
|
584
584
|
)
|
|
585
585
|
assert(isThreadViewPost(thread))
|
|
586
|
-
expect(thread.post.viewer).
|
|
586
|
+
expect(thread.post.viewer?.replyDisabled).toBe(true) // nobody can reply to this, not even alice.
|
|
587
587
|
expect(thread.replies).toBeUndefined()
|
|
588
588
|
expect(thread.parent).toBeUndefined()
|
|
589
589
|
expect(thread.post.threadgate).toBeUndefined()
|
|
@@ -621,7 +621,7 @@ describe('views with thread gating', () => {
|
|
|
621
621
|
)
|
|
622
622
|
assert(isThreadViewPost(threadA))
|
|
623
623
|
expect(threadA.post.threadgate).toBeUndefined()
|
|
624
|
-
expect(threadA.post.viewer).
|
|
624
|
+
expect(threadA.post.viewer?.replyDisabled).toBeUndefined()
|
|
625
625
|
expect(threadA.replies?.length).toEqual(1)
|
|
626
626
|
await checkReplyDisabled(postA.ref.uriStr, sc.dids.alice, undefined)
|
|
627
627
|
const {
|
|
@@ -632,7 +632,7 @@ describe('views with thread gating', () => {
|
|
|
632
632
|
)
|
|
633
633
|
assert(isThreadViewPost(threadB))
|
|
634
634
|
expect(threadB.post.threadgate).toBeUndefined()
|
|
635
|
-
expect(threadB.post.viewer).
|
|
635
|
+
expect(threadB.post.viewer?.replyDisabled).toBe(undefined)
|
|
636
636
|
await checkReplyDisabled(postB.ref.uriStr, sc.dids.alice, undefined)
|
|
637
637
|
expect(threadB.replies?.length).toEqual(1)
|
|
638
638
|
})
|