@atproto/bsky 0.1.6 → 0.1.7

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 (183) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts +4 -0
  3. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -0
  4. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js +274 -0
  5. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -0
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +2 -0
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/config.d.ts +2 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +5 -0
  12. package/dist/config.js.map +1 -1
  13. package/dist/hydration/external.d.ts +8 -7
  14. package/dist/hydration/external.d.ts.map +1 -1
  15. package/dist/hydration/external.js.map +1 -1
  16. package/dist/hydration/hydrator.d.ts +5 -1
  17. package/dist/hydration/hydrator.d.ts.map +1 -1
  18. package/dist/hydration/hydrator.js +3 -0
  19. package/dist/hydration/hydrator.js.map +1 -1
  20. package/dist/lexicons/app/bsky/embed/external.defs.d.ts +130 -0
  21. package/dist/lexicons/app/bsky/embed/external.defs.d.ts.map +1 -1
  22. package/dist/lexicons/app/bsky/embed/external.defs.js +135 -0
  23. package/dist/lexicons/app/bsky/embed/external.defs.js.map +1 -1
  24. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.d.ts +2 -0
  25. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.d.ts.map +1 -1
  26. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.js +7 -0
  27. package/dist/lexicons/app/bsky/embed/getEmbedExternalView.defs.js.map +1 -1
  28. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.d.ts +3 -0
  29. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -0
  30. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts +103 -0
  31. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.d.ts.map +1 -0
  32. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js +95 -0
  33. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.defs.js.map +1 -0
  34. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.js +6 -0
  35. package/dist/lexicons/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -0
  36. package/dist/lexicons/app/bsky/unspecced.d.ts +1 -0
  37. package/dist/lexicons/app/bsky/unspecced.d.ts.map +1 -1
  38. package/dist/lexicons/app/bsky/unspecced.js +1 -0
  39. package/dist/lexicons/app/bsky/unspecced.js.map +1 -1
  40. package/dist/lexicons/index.d.ts +2 -0
  41. package/dist/lexicons/index.d.ts.map +1 -1
  42. package/dist/lexicons/index.js +2 -0
  43. package/dist/lexicons/index.js.map +1 -1
  44. package/dist/lexicons/place/stream/badge/defs.d.ts +2 -0
  45. package/dist/lexicons/place/stream/badge/defs.d.ts.map +1 -0
  46. package/dist/lexicons/place/stream/badge/defs.defs.d.ts +131 -0
  47. package/dist/lexicons/place/stream/badge/defs.defs.d.ts.map +1 -0
  48. package/dist/lexicons/place/stream/badge/defs.defs.js +73 -0
  49. package/dist/lexicons/place/stream/badge/defs.defs.js.map +1 -0
  50. package/dist/lexicons/place/stream/badge/defs.js +5 -0
  51. package/dist/lexicons/place/stream/badge/defs.js.map +1 -0
  52. package/dist/lexicons/place/stream/badge.d.ts +2 -0
  53. package/dist/lexicons/place/stream/badge.d.ts.map +1 -0
  54. package/dist/lexicons/place/stream/badge.js +5 -0
  55. package/dist/lexicons/place/stream/badge.js.map +1 -0
  56. package/dist/lexicons/place/stream/chat/defs.d.ts +2 -0
  57. package/dist/lexicons/place/stream/chat/defs.d.ts.map +1 -0
  58. package/dist/lexicons/place/stream/chat/defs.defs.d.ts +44 -0
  59. package/dist/lexicons/place/stream/chat/defs.defs.d.ts.map +1 -0
  60. package/dist/lexicons/place/stream/chat/defs.defs.js +41 -0
  61. package/dist/lexicons/place/stream/chat/defs.defs.js.map +1 -0
  62. package/dist/lexicons/place/stream/chat/defs.js +5 -0
  63. package/dist/lexicons/place/stream/chat/defs.js.map +1 -0
  64. package/dist/lexicons/place/stream/chat/pinnedRecord.d.ts +3 -0
  65. package/dist/lexicons/place/stream/chat/pinnedRecord.d.ts.map +1 -0
  66. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.d.ts +108 -0
  67. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.d.ts.map +1 -0
  68. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.js +31 -0
  69. package/dist/lexicons/place/stream/chat/pinnedRecord.defs.js.map +1 -0
  70. package/dist/lexicons/place/stream/chat/pinnedRecord.js +6 -0
  71. package/dist/lexicons/place/stream/chat/pinnedRecord.js.map +1 -0
  72. package/dist/lexicons/place/stream/chat/profile.d.ts +3 -0
  73. package/dist/lexicons/place/stream/chat/profile.d.ts.map +1 -0
  74. package/dist/lexicons/place/stream/chat/profile.defs.d.ts +143 -0
  75. package/dist/lexicons/place/stream/chat/profile.defs.d.ts.map +1 -0
  76. package/dist/lexicons/place/stream/chat/profile.defs.js +62 -0
  77. package/dist/lexicons/place/stream/chat/profile.defs.js.map +1 -0
  78. package/dist/lexicons/place/stream/chat/profile.js +6 -0
  79. package/dist/lexicons/place/stream/chat/profile.js.map +1 -0
  80. package/dist/lexicons/place/stream/chat.d.ts +4 -0
  81. package/dist/lexicons/place/stream/chat.d.ts.map +1 -0
  82. package/dist/lexicons/place/stream/chat.js +7 -0
  83. package/dist/lexicons/place/stream/chat.js.map +1 -0
  84. package/dist/lexicons/place/stream/defs.d.ts +2 -0
  85. package/dist/lexicons/place/stream/defs.d.ts.map +1 -0
  86. package/dist/lexicons/place/stream/defs.defs.d.ts +54 -0
  87. package/dist/lexicons/place/stream/defs.defs.d.ts.map +1 -0
  88. package/dist/lexicons/place/stream/defs.defs.js +40 -0
  89. package/dist/lexicons/place/stream/defs.defs.js.map +1 -0
  90. package/dist/lexicons/place/stream/defs.js +5 -0
  91. package/dist/lexicons/place/stream/defs.js.map +1 -0
  92. package/dist/lexicons/place/stream/livestream.d.ts +3 -0
  93. package/dist/lexicons/place/stream/livestream.d.ts.map +1 -0
  94. package/dist/lexicons/place/stream/livestream.defs.d.ts +312 -0
  95. package/dist/lexicons/place/stream/livestream.defs.d.ts.map +1 -0
  96. package/dist/lexicons/place/stream/livestream.defs.js +105 -0
  97. package/dist/lexicons/place/stream/livestream.defs.js.map +1 -0
  98. package/dist/lexicons/place/stream/livestream.js +6 -0
  99. package/dist/lexicons/place/stream/livestream.js.map +1 -0
  100. package/dist/lexicons/place/stream.d.ts +5 -0
  101. package/dist/lexicons/place/stream.d.ts.map +1 -0
  102. package/dist/lexicons/place/stream.js +8 -0
  103. package/dist/lexicons/place/stream.js.map +1 -0
  104. package/dist/lexicons/place.d.ts +2 -0
  105. package/dist/lexicons/place.d.ts.map +1 -0
  106. package/dist/lexicons/place.js +5 -0
  107. package/dist/lexicons/place.js.map +1 -0
  108. package/dist/lexicons/site/standard/document.defs.d.ts +127 -127
  109. package/dist/lexicons/site/standard/document.defs.d.ts.map +1 -1
  110. package/dist/lexicons/site/standard/document.defs.js +28 -28
  111. package/dist/lexicons/site/standard/document.defs.js.map +1 -1
  112. package/dist/lexicons/site/standard/graph/recommend.defs.d.ts +11 -11
  113. package/dist/lexicons/site/standard/graph/recommend.defs.d.ts.map +1 -1
  114. package/dist/lexicons/site/standard/graph/recommend.defs.js +1 -1
  115. package/dist/lexicons/site/standard/graph/recommend.defs.js.map +1 -1
  116. package/dist/lexicons/site/standard/publication.defs.d.ts +52 -52
  117. package/dist/lexicons/site/standard/publication.defs.d.ts.map +1 -1
  118. package/dist/lexicons/site/standard/publication.defs.js +6 -6
  119. package/dist/lexicons/site/standard/publication.defs.js.map +1 -1
  120. package/dist/lexicons/site/standard/theme/basic.defs.d.ts +14 -14
  121. package/dist/lexicons/site/standard/theme/basic.defs.d.ts.map +1 -1
  122. package/dist/lexicons/site/standard/theme/basic.defs.js +1 -1
  123. package/dist/lexicons/site/standard/theme/basic.defs.js.map +1 -1
  124. package/dist/lexicons/social/grain/defs.d.ts +2 -0
  125. package/dist/lexicons/social/grain/defs.d.ts.map +1 -0
  126. package/dist/lexicons/social/grain/defs.defs.d.ts +15 -0
  127. package/dist/lexicons/social/grain/defs.defs.d.ts.map +1 -0
  128. package/dist/lexicons/social/grain/defs.defs.js +14 -0
  129. package/dist/lexicons/social/grain/defs.defs.js.map +1 -0
  130. package/dist/lexicons/social/grain/defs.js +5 -0
  131. package/dist/lexicons/social/grain/defs.js.map +1 -0
  132. package/dist/lexicons/social/grain/favorite.d.ts +3 -0
  133. package/dist/lexicons/social/grain/favorite.d.ts.map +1 -0
  134. package/dist/lexicons/social/grain/favorite.defs.d.ts +72 -0
  135. package/dist/lexicons/social/grain/favorite.defs.d.ts.map +1 -0
  136. package/dist/lexicons/social/grain/favorite.defs.js +26 -0
  137. package/dist/lexicons/social/grain/favorite.defs.js.map +1 -0
  138. package/dist/lexicons/social/grain/favorite.js +6 -0
  139. package/dist/lexicons/social/grain/favorite.js.map +1 -0
  140. package/dist/lexicons/social/grain/gallery/item.d.ts +3 -0
  141. package/dist/lexicons/social/grain/gallery/item.d.ts.map +1 -0
  142. package/dist/lexicons/social/grain/gallery/item.defs.d.ts +94 -0
  143. package/dist/lexicons/social/grain/gallery/item.defs.d.ts.map +1 -0
  144. package/dist/lexicons/social/grain/gallery/item.defs.js +29 -0
  145. package/dist/lexicons/social/grain/gallery/item.defs.js.map +1 -0
  146. package/dist/lexicons/social/grain/gallery/item.js +6 -0
  147. package/dist/lexicons/social/grain/gallery/item.js.map +1 -0
  148. package/dist/lexicons/social/grain/gallery.d.ts +4 -0
  149. package/dist/lexicons/social/grain/gallery.d.ts.map +1 -0
  150. package/dist/lexicons/social/grain/gallery.defs.d.ts +98 -0
  151. package/dist/lexicons/social/grain/gallery.defs.d.ts.map +1 -0
  152. package/dist/lexicons/social/grain/gallery.defs.js +33 -0
  153. package/dist/lexicons/social/grain/gallery.defs.js.map +1 -0
  154. package/dist/lexicons/social/grain/gallery.js +7 -0
  155. package/dist/lexicons/social/grain/gallery.js.map +1 -0
  156. package/dist/lexicons/social/grain/photo.d.ts +3 -0
  157. package/dist/lexicons/social/grain/photo.d.ts.map +1 -0
  158. package/dist/lexicons/social/grain/photo.defs.d.ts +98 -0
  159. package/dist/lexicons/social/grain/photo.defs.d.ts.map +1 -0
  160. package/dist/lexicons/social/grain/photo.defs.js +31 -0
  161. package/dist/lexicons/social/grain/photo.defs.js.map +1 -0
  162. package/dist/lexicons/social/grain/photo.js +6 -0
  163. package/dist/lexicons/social/grain/photo.js.map +1 -0
  164. package/dist/lexicons/social/grain.d.ts +5 -0
  165. package/dist/lexicons/social/grain.d.ts.map +1 -0
  166. package/dist/lexicons/social/grain.js +8 -0
  167. package/dist/lexicons/social/grain.js.map +1 -0
  168. package/dist/lexicons/social.d.ts +2 -0
  169. package/dist/lexicons/social.d.ts.map +1 -0
  170. package/dist/lexicons/social.js +5 -0
  171. package/dist/lexicons/social.js.map +1 -0
  172. package/dist/views/external.d.ts +8 -0
  173. package/dist/views/external.d.ts.map +1 -0
  174. package/dist/views/external.js +260 -0
  175. package/dist/views/external.js.map +1 -0
  176. package/dist/views/index.d.ts +3 -1
  177. package/dist/views/index.d.ts.map +1 -1
  178. package/dist/views/index.js +5 -0
  179. package/dist/views/index.js.map +1 -1
  180. package/dist/views/types.d.ts +1 -0
  181. package/dist/views/types.d.ts.map +1 -1
  182. package/dist/views/types.js.map +1 -1
  183. package/package.json +4 -4
@@ -0,0 +1,260 @@
1
+ import { MINUTE } from '@atproto/common';
2
+ import { getBlobCidString, isAtUriString, isDidString, } from '@atproto/lex';
3
+ import { AtUri, normalizeDatetimeAlways } from '@atproto/syntax';
4
+ import { app, com, place, site, social } from '../lexicons/index.js';
5
+ import { estimateReadingTimeMinutes } from '../util/standard-site.js';
6
+ import { uriToDid } from '../util/uris.js';
7
+ export const LIVESTREAM_HEARTBEAT_WINDOW_MS = 2 * MINUTE;
8
+ /** Build a modality view from validated, available records in hydration state. */
9
+ export function externalRecordView(views, uri, state, now) {
10
+ const info = availableRecord(views, uri, state);
11
+ if (!info)
12
+ return;
13
+ const { record } = info;
14
+ if (site.standard.document.$matches(record)) {
15
+ let publisher;
16
+ let base = record.site;
17
+ const refs = [uri];
18
+ if (isAtUriString(record.site)) {
19
+ publisher = publicationView(views, record.site, state);
20
+ if (!publisher)
21
+ return;
22
+ base = publisher.uri;
23
+ refs.push(record.site);
24
+ }
25
+ const url = httpUri(record.path
26
+ ? `${base.replace(/\/$/, '')}/${record.path.replace(/^\//, '')}`
27
+ : base);
28
+ if (!url || !record.title)
29
+ return;
30
+ return app.bsky.embed.external.viewArticle.$build({
31
+ ...commonFields(views, refs, state),
32
+ uri: url,
33
+ title: record.title,
34
+ description: record.description ?? '',
35
+ createdAt: record.publishedAt,
36
+ updatedAt: record.updatedAt,
37
+ image: record.coverImage
38
+ ? views.imgUriBuilder.getPresetUri('feed_thumbnail', uriToDid(uri), getBlobCidString(record.coverImage))
39
+ : undefined,
40
+ publisher,
41
+ readingTime: record.textContent
42
+ ? estimateReadingTimeMinutes(record.textContent)
43
+ : undefined,
44
+ likeCount: backlinkCount(uri, site.standard.graph.recommend.$type, state),
45
+ likers: backlinkProfiles(views, uri, state, 'recommend'),
46
+ });
47
+ }
48
+ if (site.standard.publication.$matches(record)) {
49
+ return publicationView(views, uri, state);
50
+ }
51
+ if (social.grain.gallery.$matches(record)) {
52
+ const links = (state.externalRecordBacklinks?.get(uri) ?? []).flatMap((linkUri) => {
53
+ const link = availableRecord(views, linkUri, state)?.record;
54
+ if (!social.grain.gallery.item.$matches(link) ||
55
+ link.gallery !== uri ||
56
+ uriToDid(linkUri) !== uriToDid(uri)) {
57
+ return [];
58
+ }
59
+ return [{ uri: linkUri, record: link }];
60
+ });
61
+ links.sort((a, b) => (a.record.position ?? 0) - (b.record.position ?? 0) ||
62
+ compareStrings(a.uri, b.uri));
63
+ const refs = [uri];
64
+ const seenPhotos = new Set();
65
+ const items = [];
66
+ for (const link of links) {
67
+ const photoUri = link.record.item;
68
+ if (seenPhotos.has(photoUri))
69
+ continue;
70
+ const photo = availableRecord(views, photoUri, state)?.record;
71
+ if (!social.grain.photo.$matches(photo))
72
+ continue;
73
+ seenPhotos.add(photoUri);
74
+ refs.push(link.uri, photoUri);
75
+ items.push(app.bsky.embed.external.viewGalleryImage.$build({
76
+ thumbnail: views.imgUriBuilder.getPresetUri('feed_thumbnail', uriToDid(photoUri), getBlobCidString(photo.photo)),
77
+ fullsize: views.imgUriBuilder.getPresetUri('feed_fullsize', uriToDid(photoUri), getBlobCidString(photo.photo)),
78
+ alt: photo.alt,
79
+ aspectRatio: photo.aspectRatio
80
+ ? {
81
+ width: photo.aspectRatio.width,
82
+ height: photo.aspectRatio.height,
83
+ }
84
+ : undefined,
85
+ }));
86
+ }
87
+ return app.bsky.embed.external.viewGallery.$build({
88
+ ...commonFields(views, refs, state),
89
+ uri,
90
+ title: record.title,
91
+ description: record.description ?? '',
92
+ createdAt: record.createdAt,
93
+ items,
94
+ likeCount: backlinkCount(uri, social.grain.favorite.$type, state),
95
+ likers: backlinkProfiles(views, uri, state, 'favorite'),
96
+ });
97
+ }
98
+ if (place.stream.livestream.$matches(record)) {
99
+ const lastSeen = record.lastSeenAt ? Date.parse(record.lastSeenAt) : NaN;
100
+ // @NOTE The window applies on both sides of now to tolerate clock skew, so
101
+ // a future heartbeat counts as live for at most twice the window.
102
+ const fresh = Math.abs(now - lastSeen) < LIVESTREAM_HEARTBEAT_WINDOW_MS;
103
+ return app.bsky.embed.external.viewLivestream.$build({
104
+ ...commonFields(views, [uri], state),
105
+ uri: httpUri(record.canonicalUrl) ?? httpUri(record.url) ?? uri,
106
+ title: record.title,
107
+ description: '',
108
+ createdAt: record.createdAt,
109
+ image: record.thumb
110
+ ? views.imgUriBuilder.getPresetUri('feed_thumbnail', uriToDid(uri), getBlobCidString(record.thumb))
111
+ : undefined,
112
+ active: !record.endedAt && fresh,
113
+ startedAt: record.createdAt,
114
+ endedAt: record.endedAt,
115
+ });
116
+ }
117
+ }
118
+ function publicationView(views, uri, state) {
119
+ const record = availableRecord(views, uri, state)?.record;
120
+ if (!site.standard.publication.$matches(record))
121
+ return;
122
+ const url = httpUri(record.url);
123
+ if (!url || !record.name)
124
+ return;
125
+ return app.bsky.embed.external.viewArticlePublication.$build({
126
+ ...commonFields(views, [uri], state),
127
+ uri: url,
128
+ title: record.name,
129
+ description: record.description ?? '',
130
+ logo: record.icon
131
+ ? views.imgUriBuilder.getPresetUri('avatar', uriToDid(uri), getBlobCidString(record.icon))
132
+ : undefined,
133
+ theme: record.basicTheme
134
+ ? app.bsky.embed.external.viewArticlePublicationTheme.$build({
135
+ background: hexColor(record.basicTheme.background),
136
+ foreground: hexColor(record.basicTheme.foreground),
137
+ accent: hexColor(record.basicTheme.accent),
138
+ accentForeground: hexColor(record.basicTheme.accentForeground),
139
+ })
140
+ : undefined,
141
+ subscriptionCount: backlinkCount(uri, site.standard.graph.subscription.$type, state),
142
+ subscribers: backlinkProfiles(views, uri, state, 'subscription'),
143
+ });
144
+ }
145
+ function availableRecord(views, uri, state) {
146
+ const info = state.externalRecords?.get(uri);
147
+ if (!info)
148
+ return;
149
+ const parsed = new AtUri(uri);
150
+ if (!isDidString(parsed.host) || parsed.collection !== info.record.$type)
151
+ return;
152
+ // @NOTE Actor hydration nulls unavailable accounts (missing and tombstoned
153
+ // ones even with includeTakedowns). Absent entries just weren't hydrated.
154
+ if (state.actors?.get(parsed.host) === null)
155
+ return;
156
+ if (views.viewerBlockExists(parsed.host, state))
157
+ return;
158
+ if (!views.viewerSeesNeedsReview({ uri }, state))
159
+ return;
160
+ if (!state.ctx?.includeTakedowns &&
161
+ (info.takedownRef ||
162
+ state.labels?.get(uri)?.isTakendown ||
163
+ views.actorIsNoHosted(parsed.host, state))) {
164
+ return;
165
+ }
166
+ return info;
167
+ }
168
+ function commonFields(views, uris, state) {
169
+ const refs = [...new Set(uris)];
170
+ const dids = [...new Set(refs.map(uriToDid))];
171
+ return {
172
+ associatedRefs: refs.map((uri) => com.atproto.repo.strongRef.$build({
173
+ uri,
174
+ cid: state.externalRecords.get(uri).cid,
175
+ })),
176
+ associatedProfiles: dids.flatMap((did) => {
177
+ const profile = views.profileBasic(did, state);
178
+ return profile ? [profile] : [];
179
+ }),
180
+ labels: refs.flatMap((uri) => recordLabels(uri, state.externalRecords.get(uri), state)),
181
+ };
182
+ }
183
+ function recordLabels(uri, info, state) {
184
+ const labels = state.labels?.getBySubject(uri) ?? [];
185
+ const selfLabels = info.record.labels;
186
+ if (!com.atproto.label.defs.selfLabels.$matches(selfLabels))
187
+ return labels;
188
+ const createdAt = info.record.createdAt ?? info.record.publishedAt;
189
+ const cts = typeof createdAt === 'string'
190
+ ? normalizeDatetimeAlways(createdAt)
191
+ : '1970-01-01T00:00:00.000Z';
192
+ return [
193
+ ...labels,
194
+ ...selfLabels.values.map(({ val }) => ({
195
+ src: uriToDid(uri),
196
+ uri,
197
+ cid: info.cid,
198
+ val,
199
+ cts,
200
+ })),
201
+ ];
202
+ }
203
+ function backlinkCount(uri, collection, state) {
204
+ const counts = state.externalRecordBacklinkCounts?.get(uri);
205
+ if (!counts)
206
+ return;
207
+ const count = counts[collection] ?? 0;
208
+ return Number.isSafeInteger(count) && count >= 0 ? count : undefined;
209
+ }
210
+ function backlinkProfiles(views, uri, state, kind) {
211
+ const backlinks = state.externalRecordBacklinks?.get(uri);
212
+ if (!backlinks)
213
+ return;
214
+ const dids = new Set();
215
+ for (const backlink of backlinks) {
216
+ const record = availableRecord(views, backlink, state)?.record;
217
+ const matches = kind === 'recommend'
218
+ ? site.standard.graph.recommend.$matches(record) &&
219
+ record.document === uri
220
+ : kind === 'subscription'
221
+ ? site.standard.graph.subscription.$matches(record) &&
222
+ record.publication === uri
223
+ : social.grain.favorite.$matches(record) && record.subject === uri;
224
+ if (matches)
225
+ dids.add(uriToDid(backlink));
226
+ }
227
+ const profiles = [];
228
+ for (const did of [...dids].sort(compareStrings)) {
229
+ const profile = views.profileBasic(did, state);
230
+ if (profile)
231
+ profiles.push(profile);
232
+ if (profiles.length === 3)
233
+ break;
234
+ }
235
+ return profiles;
236
+ }
237
+ function hexColor(color) {
238
+ if (site.standard.theme.color.rgb.$matches(color)) {
239
+ return `#${[color.r, color.g, color.b].map(hexByte).join('')}`;
240
+ }
241
+ }
242
+ function hexByte(value) {
243
+ return value.toString(16).padStart(2, '0');
244
+ }
245
+ function httpUri(value) {
246
+ if (!value)
247
+ return;
248
+ try {
249
+ const url = new URL(value);
250
+ if (url.protocol === 'http:' || url.protocol === 'https:')
251
+ return url.href;
252
+ }
253
+ catch {
254
+ return;
255
+ }
256
+ }
257
+ function compareStrings(a, b) {
258
+ return a < b ? -1 : a > b ? 1 : 0;
259
+ }
260
+ //# sourceMappingURL=external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external.js","sourceRoot":"","sources":["../../src/views/external.ts"],"names":[],"mappings":"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","sourcesContent":["import { MINUTE } from '@atproto/common'\nimport {\n type $Typed,\n type AtUriString,\n type DidString,\n type NsidString,\n type UriString,\n getBlobCidString,\n isAtUriString,\n isDidString,\n} from '@atproto/lex'\nimport { AtUri, normalizeDatetimeAlways } from '@atproto/syntax'\nimport type { ExternalRecord } from '../hydration/external.js'\nimport type { HydrationState } from '../hydration/hydrator.js'\nimport { app, com, place, site, social } from '../lexicons/index.js'\nimport { estimateReadingTimeMinutes } from '../util/standard-site.js'\nimport { uriToDid } from '../util/uris.js'\nimport type { Views } from './index.js'\nimport type { ExternalRecordView, Label, ProfileViewBasic } from './types.js'\n\nexport const LIVESTREAM_HEARTBEAT_WINDOW_MS = 2 * MINUTE\n\n/** Build a modality view from validated, available records in hydration state. */\nexport function externalRecordView(\n views: Views,\n uri: AtUriString,\n state: HydrationState,\n now: number,\n): $Typed<ExternalRecordView> | undefined {\n const info = availableRecord(views, uri, state)\n if (!info) return\n const { record } = info\n\n if (site.standard.document.$matches(record)) {\n let publisher:\n $Typed<app.bsky.embed.external.ViewArticlePublication> | undefined\n let base = record.site\n const refs = [uri]\n if (isAtUriString(record.site)) {\n publisher = publicationView(views, record.site, state)\n if (!publisher) return\n base = publisher.uri\n refs.push(record.site)\n }\n const url = httpUri(\n record.path\n ? `${base.replace(/\\/$/, '')}/${record.path.replace(/^\\//, '')}`\n : base,\n )\n if (!url || !record.title) return\n return app.bsky.embed.external.viewArticle.$build({\n ...commonFields(views, refs, state),\n uri: url,\n title: record.title,\n description: record.description ?? '',\n createdAt: record.publishedAt,\n updatedAt: record.updatedAt,\n image: record.coverImage\n ? views.imgUriBuilder.getPresetUri(\n 'feed_thumbnail',\n uriToDid(uri),\n getBlobCidString(record.coverImage),\n )\n : undefined,\n publisher,\n readingTime: record.textContent\n ? estimateReadingTimeMinutes(record.textContent)\n : undefined,\n likeCount: backlinkCount(uri, site.standard.graph.recommend.$type, state),\n likers: backlinkProfiles(views, uri, state, 'recommend'),\n })\n }\n\n if (site.standard.publication.$matches(record)) {\n return publicationView(views, uri, state)\n }\n\n if (social.grain.gallery.$matches(record)) {\n const links = (state.externalRecordBacklinks?.get(uri) ?? []).flatMap(\n (linkUri) => {\n const link = availableRecord(views, linkUri, state)?.record\n if (\n !social.grain.gallery.item.$matches(link) ||\n link.gallery !== uri ||\n uriToDid(linkUri) !== uriToDid(uri)\n ) {\n return []\n }\n return [{ uri: linkUri, record: link }]\n },\n )\n links.sort(\n (a, b) =>\n (a.record.position ?? 0) - (b.record.position ?? 0) ||\n compareStrings(a.uri, b.uri),\n )\n\n const refs = [uri]\n const seenPhotos = new Set<AtUriString>()\n const items: $Typed<app.bsky.embed.external.ViewGalleryImage>[] = []\n for (const link of links) {\n const photoUri = link.record.item\n if (seenPhotos.has(photoUri)) continue\n const photo = availableRecord(views, photoUri, state)?.record\n if (!social.grain.photo.$matches(photo)) continue\n seenPhotos.add(photoUri)\n refs.push(link.uri, photoUri)\n items.push(\n app.bsky.embed.external.viewGalleryImage.$build({\n thumbnail: views.imgUriBuilder.getPresetUri(\n 'feed_thumbnail',\n uriToDid(photoUri),\n getBlobCidString(photo.photo),\n ),\n fullsize: views.imgUriBuilder.getPresetUri(\n 'feed_fullsize',\n uriToDid(photoUri),\n getBlobCidString(photo.photo),\n ),\n alt: photo.alt,\n aspectRatio: photo.aspectRatio\n ? {\n width: photo.aspectRatio.width,\n height: photo.aspectRatio.height,\n }\n : undefined,\n }),\n )\n }\n return app.bsky.embed.external.viewGallery.$build({\n ...commonFields(views, refs, state),\n uri,\n title: record.title,\n description: record.description ?? '',\n createdAt: record.createdAt,\n items,\n likeCount: backlinkCount(uri, social.grain.favorite.$type, state),\n likers: backlinkProfiles(views, uri, state, 'favorite'),\n })\n }\n\n if (place.stream.livestream.$matches(record)) {\n const lastSeen = record.lastSeenAt ? Date.parse(record.lastSeenAt) : NaN\n // @NOTE The window applies on both sides of now to tolerate clock skew, so\n // a future heartbeat counts as live for at most twice the window.\n const fresh = Math.abs(now - lastSeen) < LIVESTREAM_HEARTBEAT_WINDOW_MS\n return app.bsky.embed.external.viewLivestream.$build({\n ...commonFields(views, [uri], state),\n uri: httpUri(record.canonicalUrl) ?? httpUri(record.url) ?? uri,\n title: record.title,\n description: '',\n createdAt: record.createdAt,\n image: record.thumb\n ? views.imgUriBuilder.getPresetUri(\n 'feed_thumbnail',\n uriToDid(uri),\n getBlobCidString(record.thumb),\n )\n : undefined,\n active: !record.endedAt && fresh,\n startedAt: record.createdAt,\n endedAt: record.endedAt,\n })\n }\n}\n\nfunction publicationView(\n views: Views,\n uri: AtUriString,\n state: HydrationState,\n): $Typed<app.bsky.embed.external.ViewArticlePublication> | undefined {\n const record = availableRecord(views, uri, state)?.record\n if (!site.standard.publication.$matches(record)) return\n const url = httpUri(record.url)\n if (!url || !record.name) return\n return app.bsky.embed.external.viewArticlePublication.$build({\n ...commonFields(views, [uri], state),\n uri: url,\n title: record.name,\n description: record.description ?? '',\n logo: record.icon\n ? views.imgUriBuilder.getPresetUri(\n 'avatar',\n uriToDid(uri),\n getBlobCidString(record.icon),\n )\n : undefined,\n theme: record.basicTheme\n ? app.bsky.embed.external.viewArticlePublicationTheme.$build({\n background: hexColor(record.basicTheme.background),\n foreground: hexColor(record.basicTheme.foreground),\n accent: hexColor(record.basicTheme.accent),\n accentForeground: hexColor(record.basicTheme.accentForeground),\n })\n : undefined,\n subscriptionCount: backlinkCount(\n uri,\n site.standard.graph.subscription.$type,\n state,\n ),\n subscribers: backlinkProfiles(views, uri, state, 'subscription'),\n })\n}\n\nfunction availableRecord(\n views: Views,\n uri: AtUriString,\n state: HydrationState,\n): ExternalRecord | undefined {\n const info = state.externalRecords?.get(uri)\n if (!info) return\n const parsed = new AtUri(uri)\n if (!isDidString(parsed.host) || parsed.collection !== info.record.$type)\n return\n // @NOTE Actor hydration nulls unavailable accounts (missing and tombstoned\n // ones even with includeTakedowns). Absent entries just weren't hydrated.\n if (state.actors?.get(parsed.host) === null) return\n if (views.viewerBlockExists(parsed.host, state)) return\n if (!views.viewerSeesNeedsReview({ uri }, state)) return\n if (\n !state.ctx?.includeTakedowns &&\n (info.takedownRef ||\n state.labels?.get(uri)?.isTakendown ||\n views.actorIsNoHosted(parsed.host, state))\n ) {\n return\n }\n return info\n}\n\nfunction commonFields(\n views: Views,\n uris: AtUriString[],\n state: HydrationState,\n) {\n const refs = [...new Set(uris)]\n const dids = [...new Set(refs.map(uriToDid))]\n return {\n associatedRefs: refs.map((uri) =>\n com.atproto.repo.strongRef.$build({\n uri,\n cid: state.externalRecords!.get(uri)!.cid,\n }),\n ),\n associatedProfiles: dids.flatMap((did) => {\n const profile = views.profileBasic(did, state)\n return profile ? [profile] : []\n }),\n labels: refs.flatMap((uri) =>\n recordLabels(uri, state.externalRecords!.get(uri)!, state),\n ),\n }\n}\n\nfunction recordLabels(\n uri: AtUriString,\n info: ExternalRecord,\n state: HydrationState,\n): Label[] {\n const labels = state.labels?.getBySubject(uri) ?? []\n const selfLabels = info.record.labels\n if (!com.atproto.label.defs.selfLabels.$matches(selfLabels)) return labels\n const createdAt = info.record.createdAt ?? info.record.publishedAt\n const cts =\n typeof createdAt === 'string'\n ? normalizeDatetimeAlways(createdAt)\n : '1970-01-01T00:00:00.000Z'\n return [\n ...labels,\n ...selfLabels.values.map(({ val }) => ({\n src: uriToDid(uri),\n uri,\n cid: info.cid,\n val,\n cts,\n })),\n ]\n}\n\nfunction backlinkCount(\n uri: AtUriString,\n collection: NsidString,\n state: HydrationState,\n): number | undefined {\n const counts = state.externalRecordBacklinkCounts?.get(uri)\n if (!counts) return\n const count = counts[collection] ?? 0\n return Number.isSafeInteger(count) && count >= 0 ? count : undefined\n}\n\nfunction backlinkProfiles(\n views: Views,\n uri: AtUriString,\n state: HydrationState,\n kind: 'recommend' | 'subscription' | 'favorite',\n): ProfileViewBasic[] | undefined {\n const backlinks = state.externalRecordBacklinks?.get(uri)\n if (!backlinks) return\n const dids = new Set<DidString>()\n for (const backlink of backlinks) {\n const record = availableRecord(views, backlink, state)?.record\n const matches =\n kind === 'recommend'\n ? site.standard.graph.recommend.$matches(record) &&\n record.document === uri\n : kind === 'subscription'\n ? site.standard.graph.subscription.$matches(record) &&\n record.publication === uri\n : social.grain.favorite.$matches(record) && record.subject === uri\n if (matches) dids.add(uriToDid(backlink))\n }\n const profiles: ProfileViewBasic[] = []\n for (const did of [...dids].sort(compareStrings)) {\n const profile = views.profileBasic(did, state)\n if (profile) profiles.push(profile)\n if (profiles.length === 3) break\n }\n return profiles\n}\n\nfunction hexColor(\n color: site.standard.theme.basic.Main['background'],\n): string | undefined {\n if (site.standard.theme.color.rgb.$matches(color)) {\n return `#${[color.r, color.g, color.b].map(hexByte).join('')}`\n }\n}\n\nfunction hexByte(value: number): string {\n return value.toString(16).padStart(2, '0')\n}\n\nfunction httpUri(value: string | undefined): UriString | undefined {\n if (!value) return\n try {\n const url = new URL(value)\n if (url.protocol === 'http:' || url.protocol === 'https:')\n return url.href as UriString\n } catch {\n return\n }\n}\n\nfunction compareStrings(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0\n}\n"]}
@@ -9,7 +9,7 @@ import type { Label } from '../hydration/label.js';
9
9
  import type { ImageUriBuilder } from '../image/uri.js';
10
10
  import { app } from '../lexicons/index.js';
11
11
  import type { Notification } from '../proto/bsky_pb.js';
12
- import { type ActivitySubscription, type BlockedPost, type BookmarkView, type Embed, type EmbedView, type ExternalEmbed, type ExternalEmbedSourceView, type ExternalEmbedView, type FeedViewPost, type FollowRecord, type GalleryEmbed, type GalleryEmbedView, type GeneratorView, type GetPostThreadV2QueryParams, type ImagesEmbed, type ImagesEmbedView, type KnownFollowers, type KnownLikers, type LabelerRecord, type LabelerView, type LabelerViewDetailed, type LikeRecord, type ListItemView, type ListView, type ListViewBasic, type MaybePostView, type NotFoundPost, type NotificationRecordDeleted, type NotificationView, type PostEmbedView, type PostRecord, type PostView, type ProfileAssociatedActivitySubscription, type ProfileAssociatedChat, type ProfileRecord, type ProfileView, type ProfileViewBasic, type ProfileViewDetailed, type ProfileViewer, type ReasonPin, type ReasonRepost, type RecordEmbed, type RecordEmbedView, type RecordWithMedia, type RecordWithMediaView, type ReplyRef, type RepostRecord, type StarterPackView, type StarterPackViewBasic, type StatusView, type ThreadItem, type ThreadOtherItem, type ThreadViewPost, type ThreadgateView, type VerificationRecord, type VerificationState, type VideoEmbed, type VideoEmbedView } from './types.js';
12
+ import { type ActivitySubscription, type BlockedPost, type BookmarkView, type Embed, type EmbedView, type ExternalEmbed, type ExternalEmbedSourceView, type ExternalEmbedView, type ExternalRecordView, type FeedViewPost, type FollowRecord, type GalleryEmbed, type GalleryEmbedView, type GeneratorView, type GetPostThreadV2QueryParams, type ImagesEmbed, type ImagesEmbedView, type KnownFollowers, type KnownLikers, type LabelerRecord, type LabelerView, type LabelerViewDetailed, type LikeRecord, type ListItemView, type ListView, type ListViewBasic, type MaybePostView, type NotFoundPost, type NotificationRecordDeleted, type NotificationView, type PostEmbedView, type PostRecord, type PostView, type ProfileAssociatedActivitySubscription, type ProfileAssociatedChat, type ProfileRecord, type ProfileView, type ProfileViewBasic, type ProfileViewDetailed, type ProfileViewer, type ReasonPin, type ReasonRepost, type RecordEmbed, type RecordEmbedView, type RecordWithMedia, type RecordWithMediaView, type ReplyRef, type RepostRecord, type StarterPackView, type StarterPackViewBasic, type StatusView, type ThreadItem, type ThreadOtherItem, type ThreadViewPost, type ThreadgateView, type VerificationRecord, type VerificationState, type VideoEmbed, type VideoEmbedView } from './types.js';
13
13
  import { type VideoUriBuilder } from './util.js';
14
14
  export declare class Views {
15
15
  private opts;
@@ -144,6 +144,8 @@ export declare class Views {
144
144
  galleryEmbed(did: DidString, embed: GalleryEmbed): $Typed<GalleryEmbedView>;
145
145
  private galleryItemView;
146
146
  private galleryImageView;
147
+ /** Build a supported record modality from generic record and backlink hydration. */
148
+ externalRecordView(uri: AtUriString, state: HydrationState, now?: number): $Typed<ExternalRecordView> | undefined;
147
149
  externalEmbed(did: DidString, embed: ExternalEmbed, state: HydrationState): $Typed<ExternalEmbedView>;
148
150
  /**
149
151
  * Read-path entry point: caller has the post's `external.associatedRefs[]`
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { app, site } from '../lexicons/index.js';
8
8
  import { viewsLogger } from '../logger.js';
9
9
  import { estimateReadingTimeMinutes, validateStandardSiteForUrl, } from '../util/standard-site.js';
10
10
  import { postUriToPostgateUri, postUriToThreadgateUri, safePinnedPost, uriToDid, uriToDid as creatorFromUri, } from '../util/uris.js';
11
+ import { externalRecordView as externalRecordViewBase } from './external.js';
11
12
  import { sortTrimFlattenThreadTree, } from './threads-v2.js';
12
13
  import { isExternalEmbedType, isGalleryEmbedType, isGalleryImageEmbedType, isImagesEmbedType, isLabelerRecordType, isListRuleType, isPostRecordType, isPostViewType, isProfileRecordType, isRecordEmbedType, isRecordWithMediaType, isSelfLabelsType, isVideoEmbedType, } from './types.js';
13
14
  import { parsePostgate, parseThreadGate } from './util.js';
@@ -1586,6 +1587,10 @@ export class Views {
1586
1587
  aspectRatio: item.aspectRatio,
1587
1588
  });
1588
1589
  }
1590
+ /** Build a supported record modality from generic record and backlink hydration. */
1591
+ externalRecordView(uri, state, now = Date.now()) {
1592
+ return externalRecordViewBase(this, uri, state, now);
1593
+ }
1589
1594
  externalEmbed(did, embed, state) {
1590
1595
  // Start from the post-author-supplied embed values, then spread the
1591
1596
  // SS-derived view on top so any field the hydrated doc/publication