@atproto/bsky 0.0.268 → 0.0.270
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 +38 -0
- package/dist/api/app/bsky/feed/getFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getFeed.js +2 -0
- package/dist/api/app/bsky/feed/getFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getListFeed.js +2 -0
- package/dist/api/app/bsky/feed/getListFeed.js.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.d.ts.map +1 -1
- package/dist/api/app/bsky/feed/getTimeline.js +2 -0
- package/dist/api/app/bsky/feed/getTimeline.js.map +1 -1
- package/dist/api/app/bsky/graph/getMutes.js +29 -9
- package/dist/api/app/bsky/graph/getMutes.js.map +1 -1
- package/dist/api/app/bsky/graph/muteActor.d.ts.map +1 -1
- package/dist/api/app/bsky/graph/muteActor.js +3 -1
- package/dist/api/app/bsky/graph/muteActor.js.map +1 -1
- package/dist/api/app/bsky/notification/updateSeen.js +3 -4
- package/dist/api/app/bsky/notification/updateSeen.js.map +1 -1
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js +3 -0
- package/dist/api/app/bsky/unspecced/getPostThreadV2.js.map +1 -1
- package/dist/data-plane/server/bsync-subscription.d.ts.map +1 -1
- package/dist/data-plane/server/bsync-subscription.js +6 -2
- package/dist/data-plane/server/bsync-subscription.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/database-schema.js.map +1 -1
- package/dist/data-plane/server/db/db.d.ts.map +1 -1
- package/dist/data-plane/server/db/db.js +0 -2
- package/dist/data-plane/server/db/db.js.map +1 -1
- package/dist/data-plane/server/db/migrations/20260618T200000000Z-add-mute-scope.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20260618T200000000Z-add-mute-scope.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20260618T200000000Z-add-mute-scope.js +17 -0
- package/dist/data-plane/server/db/migrations/20260618T200000000Z-add-mute-scope.js.map +1 -0
- package/dist/data-plane/server/db/migrations/20260729T223157563Z-add-op-thread-reply.d.ts +4 -0
- package/dist/data-plane/server/db/migrations/20260729T223157563Z-add-op-thread-reply.d.ts.map +1 -0
- package/dist/data-plane/server/db/migrations/20260729T223157563Z-add-op-thread-reply.js +14 -0
- package/dist/data-plane/server/db/migrations/20260729T223157563Z-add-op-thread-reply.js.map +1 -0
- package/dist/data-plane/server/db/migrations/index.d.ts +2 -0
- package/dist/data-plane/server/db/migrations/index.d.ts.map +1 -1
- package/dist/data-plane/server/db/migrations/index.js +2 -0
- package/dist/data-plane/server/db/migrations/index.js.map +1 -1
- package/dist/data-plane/server/db/tables/mute.d.ts +2 -0
- package/dist/data-plane/server/db/tables/mute.d.ts.map +1 -1
- package/dist/data-plane/server/db/tables/mute.js.map +1 -1
- package/dist/data-plane/server/db/tables/op-thread-reply.d.ts +12 -0
- package/dist/data-plane/server/db/tables/op-thread-reply.d.ts.map +1 -0
- package/dist/data-plane/server/db/tables/op-thread-reply.js +3 -0
- package/dist/data-plane/server/db/tables/op-thread-reply.js.map +1 -0
- package/dist/data-plane/server/db/types.d.ts.map +1 -1
- package/dist/data-plane/server/db/types.js.map +1 -1
- package/dist/data-plane/server/db/util.d.ts.map +1 -1
- package/dist/data-plane/server/db/util.js.map +1 -1
- package/dist/data-plane/server/index.d.ts.map +1 -1
- package/dist/data-plane/server/index.js +2 -3
- package/dist/data-plane/server/index.js.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.d.ts.map +1 -1
- package/dist/data-plane/server/indexing/plugins/post.js +22 -0
- package/dist/data-plane/server/indexing/plugins/post.js.map +1 -1
- package/dist/data-plane/server/routes/drafts.js.map +1 -1
- package/dist/data-plane/server/routes/mutes.js +17 -4
- package/dist/data-plane/server/routes/mutes.js.map +1 -1
- package/dist/data-plane/server/routes/relationships.js +14 -3
- package/dist/data-plane/server/routes/relationships.js.map +1 -1
- package/dist/data-plane/server/routes/threads.d.ts.map +1 -1
- package/dist/data-plane/server/routes/threads.js +89 -2
- package/dist/data-plane/server/routes/threads.js.map +1 -1
- package/dist/data-plane/server/util.d.ts +4 -4
- package/dist/hydration/actor.d.ts +2 -0
- package/dist/hydration/actor.d.ts.map +1 -1
- package/dist/hydration/actor.js +2 -0
- package/dist/hydration/actor.js.map +1 -1
- package/dist/hydration/external.d.ts.map +1 -1
- package/dist/hydration/external.js.map +1 -1
- package/dist/hydration/graph.d.ts.map +1 -1
- package/dist/hydration/graph.js.map +1 -1
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +4 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/image/uri.d.ts.map +1 -1
- package/dist/image/uri.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +11 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.js +2 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/graph/getMutes.defs.d.ts +1 -1
- package/dist/lexicons/app/bsky/graph/getMutes.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/getMutes.defs.js +1 -1
- package/dist/lexicons/app/bsky/graph/getMutes.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/graph/muteActor.defs.d.ts +5 -1
- package/dist/lexicons/app/bsky/graph/muteActor.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/muteActor.defs.js +3 -1
- package/dist/lexicons/app/bsky/graph/muteActor.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/richtext/facet.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/richtext/facet.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/unspecced/defs.defs.d.ts +9 -1
- package/dist/lexicons/app/bsky/unspecced/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/unspecced/defs.defs.js +2 -0
- package/dist/lexicons/app/bsky/unspecced/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js.map +1 -1
- package/dist/lexicons/com/atproto/sync/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/com/atproto/sync/defs.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/queue/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/queue/defs.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/report/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/report/defs.defs.js.map +1 -1
- package/dist/proto/bsky_pb.d.ts +81 -1
- package/dist/proto/bsky_pb.d.ts.map +1 -1
- package/dist/proto/bsky_pb.js +104 -1
- package/dist/proto/bsky_pb.js.map +1 -1
- package/dist/proto/bsync_pb.d.ts +23 -0
- package/dist/proto/bsync_pb.d.ts.map +1 -1
- package/dist/proto/bsync_pb.js +27 -0
- package/dist/proto/bsync_pb.js.map +1 -1
- package/dist/util/standard-site.d.ts.map +1 -1
- package/dist/util/standard-site.js.map +1 -1
- package/dist/views/index.d.ts +5 -0
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +59 -3
- package/dist/views/index.js.map +1 -1
- package/dist/views/threads-v2.d.ts +1 -0
- package/dist/views/threads-v2.d.ts.map +1 -1
- package/dist/views/threads-v2.js +8 -2
- package/dist/views/threads-v2.js.map +1 -1
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js.map +1 -1
- package/package.json +15 -14
package/dist/views/index.js
CHANGED
|
@@ -71,6 +71,18 @@ export class Views {
|
|
|
71
71
|
return false;
|
|
72
72
|
return !!(viewer.muted || this.mutedByList(viewer, state));
|
|
73
73
|
}
|
|
74
|
+
viewerRepostMuteExists(did, state) {
|
|
75
|
+
const viewer = state.profileViewers?.get(did);
|
|
76
|
+
if (!viewer)
|
|
77
|
+
return false;
|
|
78
|
+
return !!viewer.mutedOnlyReposts;
|
|
79
|
+
}
|
|
80
|
+
viewerQuotepostMuteExists(did, state) {
|
|
81
|
+
const viewer = state.profileViewers?.get(did);
|
|
82
|
+
if (!viewer)
|
|
83
|
+
return false;
|
|
84
|
+
return !!viewer.mutedOnlyQuoteposts;
|
|
85
|
+
}
|
|
74
86
|
blockingByList(viewer, state) {
|
|
75
87
|
return (viewer.blockingByList && this.recordActive(viewer.blockingByList, state));
|
|
76
88
|
}
|
|
@@ -254,8 +266,16 @@ export class Views {
|
|
|
254
266
|
const blockingUri = viewer.blocking || blockingByList;
|
|
255
267
|
const block = !!blockedByUri || !!blockingUri;
|
|
256
268
|
const mutedByList = this.mutedByList(viewer, state);
|
|
269
|
+
// scoped mute flags are exclusive with muted: when the account is fully
|
|
270
|
+
// muted (directly or via a mutelist), suppress them so a scoped direct
|
|
271
|
+
// mute underneath a list mute doesn't surface both as true.
|
|
272
|
+
const muted = !!(viewer.muted || mutedByList);
|
|
257
273
|
return {
|
|
258
|
-
muted
|
|
274
|
+
muted,
|
|
275
|
+
// when muted is true, these are suppressed to avoid confusion
|
|
276
|
+
mutedOnlyReposts: !muted && !!viewer.mutedOnlyReposts,
|
|
277
|
+
// when muted is true, these are suppressed to avoid confusion
|
|
278
|
+
mutedOnlyQuoteposts: !muted && !!viewer.mutedOnlyQuoteposts,
|
|
259
279
|
mutedByList: mutedByList ? this.listBasic(mutedByList, state) : undefined,
|
|
260
280
|
blockedBy: !!blockedByUri,
|
|
261
281
|
blocking: blockingUri,
|
|
@@ -607,8 +627,11 @@ export class Views {
|
|
|
607
627
|
const grandparentAuthorDid = grandparentUri && creatorFromUri(grandparentUri);
|
|
608
628
|
return {
|
|
609
629
|
originatorMuted: this.viewerMuteExists(originatorDid, state),
|
|
630
|
+
originatorRepostMuted: !!item.repost && this.viewerRepostMuteExists(originatorDid, state),
|
|
610
631
|
originatorBlocked: this.viewerBlockExists(originatorDid, state),
|
|
611
632
|
authorMuted: this.viewerMuteExists(authorDid, state),
|
|
633
|
+
authorQuotepostMuted: postIsQuotepost(post?.record) &&
|
|
634
|
+
this.viewerQuotepostMuteExists(authorDid, state),
|
|
612
635
|
authorBlocked: this.viewerBlockExists(authorDid, state),
|
|
613
636
|
ancestorAuthorBlocked: (!!parentAuthorDid && this.viewerBlockExists(parentAuthorDid, state)) ||
|
|
614
637
|
(!!grandparentAuthorDid &&
|
|
@@ -1052,6 +1075,7 @@ export class Views {
|
|
|
1052
1075
|
}
|
|
1053
1076
|
const thread = sortTrimFlattenThreadTree(anchorTree, {
|
|
1054
1077
|
opDid,
|
|
1078
|
+
opThreadUris: skeleton.opThread && new Set(skeleton.opThread),
|
|
1055
1079
|
branchingFactor,
|
|
1056
1080
|
sort,
|
|
1057
1081
|
viewer: state.ctx?.viewer ?? null,
|
|
@@ -1059,6 +1083,25 @@ export class Views {
|
|
|
1059
1083
|
threadTagsHide: this.threadTagsHide,
|
|
1060
1084
|
visibilityTagRankPrefix: this.visibilityTagRankPrefix,
|
|
1061
1085
|
}, state.ctx?.features.checkGate(state.ctx.features.Gate.ThreadsReplyRankingExplorationEnable));
|
|
1086
|
+
if (skeleton.opThread) {
|
|
1087
|
+
const indexByUri = new Map(skeleton.opThread.map((uri, i) => [uri, i + 1]));
|
|
1088
|
+
const postCount = skeleton.opThread.length;
|
|
1089
|
+
for (const item of thread) {
|
|
1090
|
+
if (!app.bsky.unspecced.defs.threadItemPost.$isTypeOf(item.value)) {
|
|
1091
|
+
continue;
|
|
1092
|
+
}
|
|
1093
|
+
const index = indexByUri.get(item.uri);
|
|
1094
|
+
item.value.opThread = index !== undefined;
|
|
1095
|
+
if (index !== undefined) {
|
|
1096
|
+
item.value.opThreadPostIndex = index;
|
|
1097
|
+
item.value.opThreadPostCount = postCount;
|
|
1098
|
+
}
|
|
1099
|
+
else {
|
|
1100
|
+
delete item.value.opThreadPostIndex;
|
|
1101
|
+
delete item.value.opThreadPostCount;
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1062
1105
|
return {
|
|
1063
1106
|
hasOtherReplies,
|
|
1064
1107
|
thread,
|
|
@@ -1660,9 +1703,9 @@ export class Views {
|
|
|
1660
1703
|
// unit, so doc-scoped and publication-scoped labels end up in the same
|
|
1661
1704
|
// bucket.
|
|
1662
1705
|
const labels = [
|
|
1663
|
-
...(document ? state.labels?.getBySubject(document.ref.uri) ?? [] : []),
|
|
1706
|
+
...(document ? (state.labels?.getBySubject(document.ref.uri) ?? []) : []),
|
|
1664
1707
|
...(publication
|
|
1665
|
-
? state.labels?.getBySubject(publication.ref.uri) ?? []
|
|
1708
|
+
? (state.labels?.getBySubject(publication.ref.uri) ?? [])
|
|
1666
1709
|
: []),
|
|
1667
1710
|
];
|
|
1668
1711
|
if (labels.length)
|
|
@@ -1959,6 +2002,19 @@ export class Views {
|
|
|
1959
2002
|
const getRootUri = (uri, post) => {
|
|
1960
2003
|
return post.record.reply?.root.uri ?? uri;
|
|
1961
2004
|
};
|
|
2005
|
+
const postIsQuotepost = (record) => {
|
|
2006
|
+
const embed = record?.embed;
|
|
2007
|
+
if (!embed)
|
|
2008
|
+
return false;
|
|
2009
|
+
const recordEmbed = isRecordEmbedType(embed)
|
|
2010
|
+
? embed
|
|
2011
|
+
: isRecordWithMediaType(embed)
|
|
2012
|
+
? embed.record
|
|
2013
|
+
: undefined;
|
|
2014
|
+
if (!recordEmbed)
|
|
2015
|
+
return false;
|
|
2016
|
+
return (new AtUri(recordEmbed.record.uri).collection === app.bsky.feed.post.$type);
|
|
2017
|
+
};
|
|
1962
2018
|
const externalEmbedSourceTheme = (theme) => {
|
|
1963
2019
|
if (!theme)
|
|
1964
2020
|
return undefined;
|