@atproto/bsky 0.0.152 → 0.0.154

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 (91) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/api/app/bsky/unspecced/getPostThreadHiddenV2.js +2 -1
  3. package/dist/api/app/bsky/unspecced/getPostThreadHiddenV2.js.map +1 -1
  4. package/dist/api/com/atproto/repo/getRecord.d.ts.map +1 -1
  5. package/dist/api/com/atproto/repo/getRecord.js +1 -1
  6. package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
  7. package/dist/config.d.ts +4 -0
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +10 -0
  10. package/dist/config.js.map +1 -1
  11. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts +4 -0
  12. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.d.ts.map +1 -0
  13. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js +11 -0
  14. package/dist/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.js.map +1 -0
  15. package/dist/data-plane/server/db/migrations/index.d.ts +1 -0
  16. package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
  17. package/dist/data-plane/server/db/migrations/index.js +2 -1
  18. package/dist/data-plane/server/db/migrations/index.js.map +1 -1
  19. package/dist/data-plane/server/db/tables/record.d.ts +1 -0
  20. package/dist/data-plane/server/db/tables/record.d.ts.map +1 -1
  21. package/dist/data-plane/server/db/tables/record.js.map +1 -1
  22. package/dist/data-plane/server/routes/records.d.ts.map +1 -1
  23. package/dist/data-plane/server/routes/records.js +1 -0
  24. package/dist/data-plane/server/routes/records.js.map +1 -1
  25. package/dist/hydration/feed.d.ts +1 -0
  26. package/dist/hydration/feed.d.ts.map +1 -1
  27. package/dist/hydration/feed.js +2 -0
  28. package/dist/hydration/feed.js.map +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +2 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/lexicon/lexicons.d.ts +112 -122
  33. package/dist/lexicon/lexicons.d.ts.map +1 -1
  34. package/dist/lexicon/lexicons.js +66 -66
  35. package/dist/lexicon/lexicons.js.map +1 -1
  36. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts +33 -0
  37. package/dist/lexicon/types/app/bsky/unspecced/defs.d.ts.map +1 -1
  38. package/dist/lexicon/types/app/bsky/unspecced/defs.js +36 -0
  39. package/dist/lexicon/types/app/bsky/unspecced/defs.js.map +1 -1
  40. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts +5 -13
  41. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.d.ts.map +1 -1
  42. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.js +0 -9
  43. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.js.map +1 -1
  44. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts +2 -29
  45. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.d.ts.map +1 -1
  46. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js +0 -36
  47. package/dist/lexicon/types/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
  48. package/dist/proto/bsky_pb.d.ts +4 -0
  49. package/dist/proto/bsky_pb.d.ts.map +1 -1
  50. package/dist/proto/bsky_pb.js +16 -0
  51. package/dist/proto/bsky_pb.js.map +1 -1
  52. package/dist/proto/bsync_connect.d.ts +19 -1
  53. package/dist/proto/bsync_connect.d.ts.map +1 -1
  54. package/dist/proto/bsync_connect.js +18 -0
  55. package/dist/proto/bsync_connect.js.map +1 -1
  56. package/dist/proto/bsync_pb.d.ts +150 -0
  57. package/dist/proto/bsync_pb.d.ts.map +1 -1
  58. package/dist/proto/bsync_pb.js +401 -1
  59. package/dist/proto/bsync_pb.js.map +1 -1
  60. package/dist/views/index.d.ts +6 -1
  61. package/dist/views/index.d.ts.map +1 -1
  62. package/dist/views/index.js +68 -27
  63. package/dist/views/index.js.map +1 -1
  64. package/dist/views/threads-v2.d.ts +9 -5
  65. package/dist/views/threads-v2.d.ts.map +1 -1
  66. package/dist/views/threads-v2.js +50 -25
  67. package/dist/views/threads-v2.js.map +1 -1
  68. package/package.json +7 -7
  69. package/proto/bsky.proto +1 -0
  70. package/src/api/app/bsky/unspecced/getPostThreadHiddenV2.ts +2 -1
  71. package/src/api/com/atproto/repo/getRecord.ts +4 -1
  72. package/src/config.ts +15 -0
  73. package/src/data-plane/server/db/migrations/20250528T221913281Z-add-record-tags.ts +9 -0
  74. package/src/data-plane/server/db/migrations/index.ts +1 -0
  75. package/src/data-plane/server/db/tables/record.ts +1 -0
  76. package/src/data-plane/server/routes/records.ts +1 -0
  77. package/src/hydration/feed.ts +3 -0
  78. package/src/index.ts +2 -0
  79. package/src/lexicon/lexicons.ts +72 -71
  80. package/src/lexicon/types/app/bsky/unspecced/defs.ts +73 -0
  81. package/src/lexicon/types/app/bsky/unspecced/getPostThreadHiddenV2.ts +5 -22
  82. package/src/lexicon/types/app/bsky/unspecced/getPostThreadV2.ts +5 -72
  83. package/src/proto/bsky_pb.ts +12 -0
  84. package/src/proto/bsync_connect.ts +22 -0
  85. package/src/proto/bsync_pb.ts +355 -0
  86. package/src/views/index.ts +102 -58
  87. package/src/views/threads-v2.ts +88 -60
  88. package/tests/seed/thread-v2.ts +131 -32
  89. package/tests/views/__snapshots__/thread-v2.test.ts.snap +69 -23
  90. package/tests/views/thread-v2.test.ts +173 -69
  91. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1,3 +1,4 @@
1
+ import { sql } from 'kysely'
1
2
  import { AppBskyFeedPost } from '@atproto/api'
2
3
  import {
3
4
  RecordRef,
@@ -5,6 +6,7 @@ import {
5
6
  TestNetwork,
6
7
  TestNetworkNoAppView,
7
8
  } from '@atproto/dev-env'
9
+ import { DatabaseSchema } from '../../src/data-plane/server/db/database-schema'
8
10
  import { User, createUsers } from './util'
9
11
 
10
12
  type ReplyFn = (
@@ -15,6 +17,9 @@ type ReplyFn = (
15
17
 
16
18
  type ReplyCb = (r: ReplyFn) => Promise<void>
17
19
 
20
+ export const TAG_BUMP_DOWN = 'down'
21
+ export const TAG_HIDE = 'hide'
22
+
18
23
  const rootReplyFnBuilder = <T extends TestNetworkNoAppView>(
19
24
  sc: SeedClient<T>,
20
25
  root: RecordRef,
@@ -95,10 +100,7 @@ const createThread = async <T extends TestNetworkNoAppView>(
95
100
  return { root, replies }
96
101
  }
97
102
 
98
- export async function simple(
99
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
100
- prefix = 'simple',
101
- ) {
103
+ export async function simple(sc: SeedClient<TestNetwork>, prefix = 'simple') {
102
104
  const users = await createUsers(sc, prefix, [
103
105
  'op',
104
106
  'alice',
@@ -126,7 +128,7 @@ export async function simple(
126
128
  }
127
129
  }
128
130
 
129
- export async function long(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
131
+ export async function long(sc: SeedClient<TestNetwork>) {
130
132
  const users = await createUsers(sc, 'long', [
131
133
  'op',
132
134
  'alice',
@@ -187,7 +189,7 @@ export async function long(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
187
189
  }
188
190
  }
189
191
 
190
- export async function deep(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
192
+ export async function deep(sc: SeedClient<TestNetwork>) {
191
193
  const users = await createUsers(sc, 'deep', ['op'] as const)
192
194
  const { op } = users
193
195
 
@@ -210,9 +212,7 @@ export async function deep(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
210
212
  }
211
213
  }
212
214
 
213
- export async function branchingFactor(
214
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
215
- ) {
215
+ export async function branchingFactor(sc: SeedClient<TestNetwork>) {
216
216
  const users = await createUsers(sc, 'bf', ['op', 'bob'] as const)
217
217
  const { op, bob } = users
218
218
 
@@ -333,9 +333,7 @@ export async function branchingFactor(
333
333
  }
334
334
  }
335
335
 
336
- export async function annotateMoreReplies(
337
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
338
- ) {
336
+ export async function annotateMoreReplies(sc: SeedClient<TestNetwork>) {
339
337
  const users = await createUsers(sc, 'mr', ['op', 'alice'] as const)
340
338
  const { op, alice } = users
341
339
 
@@ -392,9 +390,7 @@ export async function annotateMoreReplies(
392
390
  }
393
391
  }
394
392
 
395
- export async function annotateOP(
396
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
397
- ) {
393
+ export async function annotateOP(sc: SeedClient<TestNetwork>) {
398
394
  const users = await createUsers(sc, 'op', ['op', 'alice', 'bob'] as const)
399
395
  const { op, alice, bob } = users
400
396
 
@@ -422,7 +418,7 @@ export async function annotateOP(
422
418
  }
423
419
  }
424
420
 
425
- export async function sort(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
421
+ export async function sort(sc: SeedClient<TestNetwork>) {
426
422
  const users = await createUsers(sc, 'sort', [
427
423
  'op',
428
424
  'alice',
@@ -478,9 +474,7 @@ export async function sort(sc: SeedClient<TestNetwork | TestNetworkNoAppView>) {
478
474
  }
479
475
  }
480
476
 
481
- export async function bumpOpAndViewer(
482
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
483
- ) {
477
+ export async function bumpOpAndViewer(sc: SeedClient<TestNetwork>) {
484
478
  const users = await createUsers(sc, 'bumpOV', [
485
479
  'op',
486
480
  'viewer',
@@ -566,9 +560,7 @@ export async function bumpOpAndViewer(
566
560
  }
567
561
  }
568
562
 
569
- export async function bumpGroupSorting(
570
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
571
- ) {
563
+ export async function bumpGroupSorting(sc: SeedClient<TestNetwork>) {
572
564
  const users = await createUsers(sc, 'bumpGS', [
573
565
  'op',
574
566
  'viewer',
@@ -595,9 +587,7 @@ export async function bumpGroupSorting(
595
587
  }
596
588
  }
597
589
 
598
- export async function bumpFollows(
599
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
600
- ) {
590
+ export async function bumpFollows(sc: SeedClient<TestNetwork>) {
601
591
  const users = await createUsers(sc, 'bumpF', [
602
592
  'op',
603
593
  'viewerF',
@@ -631,7 +621,8 @@ export async function bumpFollows(
631
621
  }
632
622
 
633
623
  export async function blockDeletionAuth(
634
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
624
+ sc: SeedClient<TestNetwork>,
625
+ labelerDid: string,
635
626
  ) {
636
627
  const users = await createUsers(sc, 'bda', [
637
628
  'op',
@@ -675,6 +666,14 @@ export async function blockDeletionAuth(
675
666
  await sc.block(blocker.did, blocked.did)
676
667
  await sc.block(op.did, opBlocked.did)
677
668
 
669
+ const db = sc.network.bsky.db.db
670
+ await createLabel(db, {
671
+ src: labelerDid,
672
+ uri: auth.did,
673
+ cid: '',
674
+ val: '!no-unauthenticated',
675
+ })
676
+
678
677
  return {
679
678
  seedClient: sc,
680
679
  users,
@@ -683,9 +682,7 @@ export async function blockDeletionAuth(
683
682
  }
684
683
  }
685
684
 
686
- export async function mutes(
687
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
688
- ) {
685
+ export async function mutes(sc: SeedClient<TestNetwork>) {
689
686
  const users = await createUsers(sc, 'mutes', [
690
687
  'op',
691
688
  'opMuted',
@@ -719,9 +716,7 @@ export async function mutes(
719
716
  }
720
717
  }
721
718
 
722
- export async function threadgated(
723
- sc: SeedClient<TestNetwork | TestNetworkNoAppView>,
724
- ) {
719
+ export async function threadgated(sc: SeedClient<TestNetwork>) {
725
720
  const users = await createUsers(sc, 'tg', [
726
721
  'op',
727
722
  'opMuted',
@@ -773,3 +768,107 @@ export async function threadgated(
773
768
  r,
774
769
  }
775
770
  }
771
+
772
+ export async function tags(sc: SeedClient<TestNetwork>) {
773
+ const users = await createUsers(sc, 'tags', [
774
+ 'op',
775
+ 'alice',
776
+ 'down',
777
+ 'following',
778
+ 'hide',
779
+ 'viewer',
780
+ ] as const)
781
+
782
+ const { op, alice, down, following, hide, viewer } = users
783
+
784
+ const { root, replies: r } = await createThread(sc, op, async (r) => {
785
+ await r(alice, async (r) => {
786
+ await r(alice)
787
+ await r(down)
788
+ await r(hide)
789
+ })
790
+ await r(down, async (r) => {
791
+ await r(alice)
792
+ await r(down)
793
+ await r(hide)
794
+ })
795
+ await r(hide, async (r) => {
796
+ await r(alice)
797
+ await r(down)
798
+ await r(hide)
799
+ })
800
+ await r(op)
801
+ await r(viewer)
802
+ await r(following)
803
+ })
804
+
805
+ await sc.network.processAll()
806
+
807
+ await sc.follow(viewer.did, following.did)
808
+
809
+ const db = sc.network.bsky.db.db
810
+ await createTag(db, { uri: r['1'].ref.uriStr, val: TAG_BUMP_DOWN })
811
+ await createTag(db, { uri: r['0.1'].ref.uriStr, val: TAG_BUMP_DOWN })
812
+ await createTag(db, { uri: r['1.1'].ref.uriStr, val: TAG_BUMP_DOWN })
813
+ await createTag(db, { uri: r['2.1'].ref.uriStr, val: TAG_BUMP_DOWN })
814
+
815
+ await createTag(db, { uri: r['2'].ref.uriStr, val: TAG_HIDE })
816
+ await createTag(db, { uri: r['0.2'].ref.uriStr, val: TAG_HIDE })
817
+ await createTag(db, { uri: r['1.2'].ref.uriStr, val: TAG_HIDE })
818
+ await createTag(db, { uri: r['2.2'].ref.uriStr, val: TAG_HIDE })
819
+
820
+ // Neither tag affect op, viewer.
821
+ await createTag(db, { uri: r['3'].ref.uriStr, val: TAG_BUMP_DOWN })
822
+ await createTag(db, { uri: r['4'].ref.uriStr, val: TAG_HIDE })
823
+
824
+ // Tags affect following depending on the config to prioritize following.
825
+ await createTag(db, { uri: r['5'].ref.uriStr, val: TAG_HIDE })
826
+
827
+ return {
828
+ seedClient: sc,
829
+ users,
830
+ root,
831
+ r,
832
+ }
833
+ }
834
+
835
+ const createLabel = async (
836
+ db: DatabaseSchema,
837
+ opts: {
838
+ src: string
839
+ uri: string
840
+ cid: string
841
+ val: string
842
+ exp?: string
843
+ },
844
+ ) => {
845
+ await db
846
+ .insertInto('label')
847
+ .values({
848
+ uri: opts.uri,
849
+ cid: opts.cid,
850
+ val: opts.val,
851
+ cts: new Date().toISOString(),
852
+ exp: opts.exp ?? null,
853
+ neg: false,
854
+ src: opts.src,
855
+ })
856
+ .execute()
857
+ }
858
+
859
+ const createTag = async (
860
+ db: DatabaseSchema,
861
+ opts: {
862
+ uri: string
863
+ val: string
864
+ },
865
+ ) => {
866
+ await db
867
+ .updateTable('record')
868
+ .set({
869
+ tags: sql<string[]>`${JSON.stringify([opts.val])}`,
870
+ })
871
+ .where('uri', '=', opts.uri)
872
+ .returningAll()
873
+ .execute()
874
+ }
@@ -8,9 +8,11 @@ Object {
8
8
  "depth": -1,
9
9
  "uri": "record(0)",
10
10
  "value": Object {
11
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
11
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
12
+ "hiddenByThreadgate": false,
12
13
  "moreParents": false,
13
14
  "moreReplies": 0,
15
+ "mutedByViewer": false,
14
16
  "opThread": true,
15
17
  "post": Object {
16
18
  "author": Object {
@@ -46,9 +48,11 @@ Object {
46
48
  "depth": 0,
47
49
  "uri": "record(1)",
48
50
  "value": Object {
49
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
51
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
52
+ "hiddenByThreadgate": false,
50
53
  "moreParents": false,
51
54
  "moreReplies": 0,
55
+ "mutedByViewer": false,
52
56
  "opThread": false,
53
57
  "post": Object {
54
58
  "author": Object {
@@ -102,9 +106,11 @@ Object {
102
106
  "depth": -1,
103
107
  "uri": "record(0)",
104
108
  "value": Object {
105
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
109
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
110
+ "hiddenByThreadgate": false,
106
111
  "moreParents": false,
107
112
  "moreReplies": 0,
113
+ "mutedByViewer": false,
108
114
  "opThread": true,
109
115
  "post": Object {
110
116
  "author": Object {
@@ -140,9 +146,11 @@ Object {
140
146
  "depth": 0,
141
147
  "uri": "record(1)",
142
148
  "value": Object {
143
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
149
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
150
+ "hiddenByThreadgate": false,
144
151
  "moreParents": false,
145
152
  "moreReplies": 0,
153
+ "mutedByViewer": false,
146
154
  "opThread": false,
147
155
  "post": Object {
148
156
  "author": Object {
@@ -188,9 +196,11 @@ Object {
188
196
  "depth": 1,
189
197
  "uri": "record(2)",
190
198
  "value": Object {
191
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
199
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
200
+ "hiddenByThreadgate": false,
192
201
  "moreParents": false,
193
202
  "moreReplies": 0,
203
+ "mutedByViewer": false,
194
204
  "opThread": false,
195
205
  "post": Object {
196
206
  "author": Object {
@@ -244,9 +254,11 @@ Object {
244
254
  "depth": -2,
245
255
  "uri": "record(0)",
246
256
  "value": Object {
247
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
257
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
258
+ "hiddenByThreadgate": false,
248
259
  "moreParents": false,
249
260
  "moreReplies": 0,
261
+ "mutedByViewer": false,
250
262
  "opThread": true,
251
263
  "post": Object {
252
264
  "author": Object {
@@ -282,9 +294,11 @@ Object {
282
294
  "depth": -1,
283
295
  "uri": "record(1)",
284
296
  "value": Object {
285
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
297
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
298
+ "hiddenByThreadgate": false,
286
299
  "moreParents": false,
287
300
  "moreReplies": 0,
301
+ "mutedByViewer": false,
288
302
  "opThread": false,
289
303
  "post": Object {
290
304
  "author": Object {
@@ -330,9 +344,11 @@ Object {
330
344
  "depth": 0,
331
345
  "uri": "record(2)",
332
346
  "value": Object {
333
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
347
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
348
+ "hiddenByThreadgate": false,
334
349
  "moreParents": false,
335
350
  "moreReplies": 0,
351
+ "mutedByViewer": false,
336
352
  "opThread": false,
337
353
  "post": Object {
338
354
  "author": Object {
@@ -386,9 +402,11 @@ Object {
386
402
  "depth": -1,
387
403
  "uri": "record(0)",
388
404
  "value": Object {
389
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
405
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
406
+ "hiddenByThreadgate": false,
390
407
  "moreParents": false,
391
408
  "moreReplies": 0,
409
+ "mutedByViewer": false,
392
410
  "opThread": true,
393
411
  "post": Object {
394
412
  "author": Object {
@@ -424,9 +442,11 @@ Object {
424
442
  "depth": 0,
425
443
  "uri": "record(1)",
426
444
  "value": Object {
427
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
445
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
446
+ "hiddenByThreadgate": false,
428
447
  "moreParents": false,
429
448
  "moreReplies": 0,
449
+ "mutedByViewer": false,
430
450
  "opThread": false,
431
451
  "post": Object {
432
452
  "author": Object {
@@ -480,9 +500,11 @@ Object {
480
500
  "depth": -1,
481
501
  "uri": "record(0)",
482
502
  "value": Object {
483
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
503
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
504
+ "hiddenByThreadgate": false,
484
505
  "moreParents": false,
485
506
  "moreReplies": 0,
507
+ "mutedByViewer": false,
486
508
  "opThread": true,
487
509
  "post": Object {
488
510
  "author": Object {
@@ -518,9 +540,11 @@ Object {
518
540
  "depth": 0,
519
541
  "uri": "record(1)",
520
542
  "value": Object {
521
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
543
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
544
+ "hiddenByThreadgate": false,
522
545
  "moreParents": false,
523
546
  "moreReplies": 0,
547
+ "mutedByViewer": false,
524
548
  "opThread": true,
525
549
  "post": Object {
526
550
  "author": Object {
@@ -566,9 +590,11 @@ Object {
566
590
  "depth": 1,
567
591
  "uri": "record(2)",
568
592
  "value": Object {
569
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
593
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
594
+ "hiddenByThreadgate": false,
570
595
  "moreParents": false,
571
596
  "moreReplies": 0,
597
+ "mutedByViewer": false,
572
598
  "opThread": true,
573
599
  "post": Object {
574
600
  "author": Object {
@@ -622,9 +648,11 @@ Object {
622
648
  "depth": -2,
623
649
  "uri": "record(0)",
624
650
  "value": Object {
625
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
651
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
652
+ "hiddenByThreadgate": false,
626
653
  "moreParents": false,
627
654
  "moreReplies": 0,
655
+ "mutedByViewer": false,
628
656
  "opThread": true,
629
657
  "post": Object {
630
658
  "author": Object {
@@ -660,9 +688,11 @@ Object {
660
688
  "depth": -1,
661
689
  "uri": "record(1)",
662
690
  "value": Object {
663
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
691
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
692
+ "hiddenByThreadgate": false,
664
693
  "moreParents": false,
665
694
  "moreReplies": 0,
695
+ "mutedByViewer": false,
666
696
  "opThread": true,
667
697
  "post": Object {
668
698
  "author": Object {
@@ -708,9 +738,11 @@ Object {
708
738
  "depth": 0,
709
739
  "uri": "record(2)",
710
740
  "value": Object {
711
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
741
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
742
+ "hiddenByThreadgate": false,
712
743
  "moreParents": false,
713
744
  "moreReplies": 0,
745
+ "mutedByViewer": false,
714
746
  "opThread": true,
715
747
  "post": Object {
716
748
  "author": Object {
@@ -764,9 +796,11 @@ Object {
764
796
  "depth": 0,
765
797
  "uri": "record(0)",
766
798
  "value": Object {
767
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
799
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
800
+ "hiddenByThreadgate": false,
768
801
  "moreParents": false,
769
802
  "moreReplies": 0,
803
+ "mutedByViewer": false,
770
804
  "opThread": true,
771
805
  "post": Object {
772
806
  "author": Object {
@@ -802,9 +836,11 @@ Object {
802
836
  "depth": 1,
803
837
  "uri": "record(1)",
804
838
  "value": Object {
805
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
839
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
840
+ "hiddenByThreadgate": false,
806
841
  "moreParents": false,
807
842
  "moreReplies": 0,
843
+ "mutedByViewer": false,
808
844
  "opThread": true,
809
845
  "post": Object {
810
846
  "author": Object {
@@ -850,9 +886,11 @@ Object {
850
886
  "depth": 2,
851
887
  "uri": "record(2)",
852
888
  "value": Object {
853
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
889
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
890
+ "hiddenByThreadgate": false,
854
891
  "moreParents": false,
855
892
  "moreReplies": 0,
893
+ "mutedByViewer": false,
856
894
  "opThread": true,
857
895
  "post": Object {
858
896
  "author": Object {
@@ -898,9 +936,11 @@ Object {
898
936
  "depth": 1,
899
937
  "uri": "record(3)",
900
938
  "value": Object {
901
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
939
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
940
+ "hiddenByThreadgate": false,
902
941
  "moreParents": false,
903
942
  "moreReplies": 0,
943
+ "mutedByViewer": false,
904
944
  "opThread": false,
905
945
  "post": Object {
906
946
  "author": Object {
@@ -946,9 +986,11 @@ Object {
946
986
  "depth": 1,
947
987
  "uri": "record(4)",
948
988
  "value": Object {
949
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
989
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
990
+ "hiddenByThreadgate": false,
950
991
  "moreParents": false,
951
992
  "moreReplies": 0,
993
+ "mutedByViewer": false,
952
994
  "opThread": false,
953
995
  "post": Object {
954
996
  "author": Object {
@@ -994,9 +1036,11 @@ Object {
994
1036
  "depth": 2,
995
1037
  "uri": "record(5)",
996
1038
  "value": Object {
997
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
1039
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
1040
+ "hiddenByThreadgate": false,
998
1041
  "moreParents": false,
999
1042
  "moreReplies": 0,
1043
+ "mutedByViewer": false,
1000
1044
  "opThread": false,
1001
1045
  "post": Object {
1002
1046
  "author": Object {
@@ -1042,9 +1086,11 @@ Object {
1042
1086
  "depth": 1,
1043
1087
  "uri": "record(6)",
1044
1088
  "value": Object {
1045
- "$type": "app.bsky.unspecced.getPostThreadV2#threadItemPost",
1089
+ "$type": "app.bsky.unspecced.defs#threadItemPost",
1090
+ "hiddenByThreadgate": false,
1046
1091
  "moreParents": false,
1047
1092
  "moreReplies": 0,
1093
+ "mutedByViewer": false,
1048
1094
  "opThread": false,
1049
1095
  "post": Object {
1050
1096
  "author": Object {