@atproto/bsky 0.0.38 → 0.0.40
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/hydration/hydrator.d.ts +12 -2
- package/dist/hydration/label.d.ts +7 -3
- package/dist/hydration/util.d.ts +5 -2
- package/dist/index.js +216 -104
- package/dist/index.js.map +2 -2
- package/dist/lexicon/lexicons.d.ts +13 -0
- package/dist/lexicon/types/com/atproto/server/describeServer.d.ts +7 -0
- package/package.json +5 -5
- package/src/api/app/bsky/actor/getProfile.ts +10 -6
- package/src/api/app/bsky/actor/getProfiles.ts +2 -2
- package/src/api/app/bsky/actor/getSuggestions.ts +2 -2
- package/src/api/app/bsky/actor/searchActors.ts +7 -3
- package/src/api/app/bsky/actor/searchActorsTypeahead.ts +2 -2
- package/src/api/app/bsky/feed/getActorFeeds.ts +2 -2
- package/src/api/app/bsky/feed/getActorLikes.ts +2 -2
- package/src/api/app/bsky/feed/getAuthorFeed.ts +6 -2
- package/src/api/app/bsky/feed/getFeed.ts +2 -2
- package/src/api/app/bsky/feed/getFeedGenerator.ts +3 -6
- package/src/api/app/bsky/feed/getFeedGenerators.ts +2 -2
- package/src/api/app/bsky/feed/getLikes.ts +2 -2
- package/src/api/app/bsky/feed/getListFeed.ts +2 -2
- package/src/api/app/bsky/feed/getPostThread.ts +2 -2
- package/src/api/app/bsky/feed/getPosts.ts +2 -2
- package/src/api/app/bsky/feed/getRepostedBy.ts +2 -2
- package/src/api/app/bsky/feed/getSuggestedFeeds.ts +3 -5
- package/src/api/app/bsky/feed/getTimeline.ts +6 -3
- package/src/api/app/bsky/feed/searchPosts.ts +2 -2
- package/src/api/app/bsky/graph/getBlocks.ts +6 -3
- package/src/api/app/bsky/graph/getFollowers.ts +6 -2
- package/src/api/app/bsky/graph/getFollows.ts +6 -2
- package/src/api/app/bsky/graph/getList.ts +2 -2
- package/src/api/app/bsky/graph/getListBlocks.ts +6 -3
- package/src/api/app/bsky/graph/getListMutes.ts +6 -3
- package/src/api/app/bsky/graph/getLists.ts +2 -2
- package/src/api/app/bsky/graph/getMutes.ts +6 -3
- package/src/api/app/bsky/graph/getSuggestedFollowsByActor.ts +3 -3
- package/src/api/app/bsky/labeler/getServices.ts +3 -3
- package/src/api/app/bsky/notification/listNotifications.ts +6 -3
- package/src/api/app/bsky/unspecced/getPopularFeedGenerators.ts +2 -2
- package/src/data-plane/server/routes/labels.ts +26 -8
- package/src/hydration/hydrator.ts +55 -10
- package/src/hydration/label.ts +33 -7
- package/src/hydration/util.ts +6 -2
- package/src/index.ts +1 -1
- package/src/lexicon/lexicons.ts +13 -0
- package/src/lexicon/types/com/atproto/server/describeServer.ts +18 -0
- package/src/views/index.ts +8 -8
- package/tests/__snapshots__/feed-generation.test.ts.snap +0 -45
- package/tests/data-plane/__snapshots__/indexing.test.ts.snap +0 -8
- package/tests/label-hydration.test.ts +31 -0
- package/tests/views/__snapshots__/author-feed.test.ts.snap +0 -46
- package/tests/views/__snapshots__/block-lists.test.ts.snap +0 -17
- package/tests/views/__snapshots__/blocks.test.ts.snap +0 -9
- package/tests/views/__snapshots__/labeler-service.test.ts.snap +0 -4
- package/tests/views/__snapshots__/list-feed.test.ts.snap +0 -20
- package/tests/views/__snapshots__/mute-lists.test.ts.snap +0 -18
- package/tests/views/__snapshots__/mutes.test.ts.snap +0 -4
- package/tests/views/__snapshots__/notifications.test.ts.snap +0 -9
- package/tests/views/__snapshots__/posts.test.ts.snap +0 -7
- package/tests/views/__snapshots__/profile.test.ts.snap +0 -6
- package/tests/views/__snapshots__/thread.test.ts.snap +0 -38
- package/tests/views/__snapshots__/timeline.test.ts.snap +0 -145
- package/tests/views/labeler-service.test.ts +2 -7
- package/tests/views/takedown-labels.test.ts +52 -0
package/dist/index.js
CHANGED
|
@@ -136419,6 +136419,11 @@ var schemaDict = {
|
|
|
136419
136419
|
description: "URLs of service policy documents.",
|
|
136420
136420
|
ref: "lex:com.atproto.server.describeServer#links"
|
|
136421
136421
|
},
|
|
136422
|
+
contact: {
|
|
136423
|
+
type: "ref",
|
|
136424
|
+
description: "Contact information",
|
|
136425
|
+
ref: "lex:com.atproto.server.describeServer#contact"
|
|
136426
|
+
},
|
|
136422
136427
|
did: {
|
|
136423
136428
|
type: "string",
|
|
136424
136429
|
format: "did"
|
|
@@ -136437,6 +136442,14 @@ var schemaDict = {
|
|
|
136437
136442
|
type: "string"
|
|
136438
136443
|
}
|
|
136439
136444
|
}
|
|
136445
|
+
},
|
|
136446
|
+
contact: {
|
|
136447
|
+
type: "object",
|
|
136448
|
+
properties: {
|
|
136449
|
+
email: {
|
|
136450
|
+
type: "string"
|
|
136451
|
+
}
|
|
136452
|
+
}
|
|
136440
136453
|
}
|
|
136441
136454
|
}
|
|
136442
136455
|
},
|
|
@@ -145373,6 +145386,7 @@ var _AtpAgent = class {
|
|
|
145373
145386
|
inst.labelersHeader = this.labelersHeader;
|
|
145374
145387
|
inst.proxyHeader = this.proxyHeader;
|
|
145375
145388
|
inst.pdsUrl = this.pdsUrl;
|
|
145389
|
+
inst.api.xrpc.uri = this.pdsUrl || this.service;
|
|
145376
145390
|
}
|
|
145377
145391
|
withProxy(serviceType, did2) {
|
|
145378
145392
|
const inst = this.clone();
|
|
@@ -150361,6 +150375,11 @@ var schemaDict2 = {
|
|
|
150361
150375
|
description: "URLs of service policy documents.",
|
|
150362
150376
|
ref: "lex:com.atproto.server.describeServer#links"
|
|
150363
150377
|
},
|
|
150378
|
+
contact: {
|
|
150379
|
+
type: "ref",
|
|
150380
|
+
description: "Contact information",
|
|
150381
|
+
ref: "lex:com.atproto.server.describeServer#contact"
|
|
150382
|
+
},
|
|
150364
150383
|
did: {
|
|
150365
150384
|
type: "string",
|
|
150366
150385
|
format: "did"
|
|
@@ -150379,6 +150398,14 @@ var schemaDict2 = {
|
|
|
150379
150398
|
type: "string"
|
|
150380
150399
|
}
|
|
150381
150400
|
}
|
|
150401
|
+
},
|
|
150402
|
+
contact: {
|
|
150403
|
+
type: "object",
|
|
150404
|
+
properties: {
|
|
150405
|
+
email: {
|
|
150406
|
+
type: "string"
|
|
150407
|
+
}
|
|
150408
|
+
}
|
|
150382
150409
|
}
|
|
150383
150410
|
}
|
|
150384
150411
|
},
|
|
@@ -159867,13 +159894,13 @@ function getTimeline_default(server, ctx) {
|
|
|
159867
159894
|
handler: async ({ params: params2, auth, req }) => {
|
|
159868
159895
|
const viewer = auth.credentials.iss;
|
|
159869
159896
|
const labelers = ctx.reqLabelers(req);
|
|
159870
|
-
const hydrateCtx = { labelers, viewer };
|
|
159871
|
-
const result = await getTimeline({ ...params2, hydrateCtx }, ctx);
|
|
159897
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
159898
|
+
const result = await getTimeline({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
159872
159899
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
159873
159900
|
return {
|
|
159874
159901
|
encoding: "application/json",
|
|
159875
159902
|
body: result,
|
|
159876
|
-
headers: resHeaders({ labelers, repoRev })
|
|
159903
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers, repoRev })
|
|
159877
159904
|
};
|
|
159878
159905
|
}
|
|
159879
159906
|
});
|
|
@@ -161040,12 +161067,12 @@ function getActorFeeds_default(server, ctx) {
|
|
|
161040
161067
|
handler: async ({ auth, params: params2, req }) => {
|
|
161041
161068
|
const viewer = auth.credentials.iss;
|
|
161042
161069
|
const labelers = ctx.reqLabelers(req);
|
|
161043
|
-
const hydrateCtx = { labelers, viewer };
|
|
161070
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
161044
161071
|
const result = await getActorFeeds({ ...params2, hydrateCtx }, ctx);
|
|
161045
161072
|
return {
|
|
161046
161073
|
encoding: "application/json",
|
|
161047
161074
|
body: result,
|
|
161048
|
-
headers: resHeaders({ labelers })
|
|
161075
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
161049
161076
|
};
|
|
161050
161077
|
}
|
|
161051
161078
|
});
|
|
@@ -161095,10 +161122,8 @@ function getSuggestedFeeds_default(server, ctx) {
|
|
|
161095
161122
|
cursor: params2.cursor
|
|
161096
161123
|
});
|
|
161097
161124
|
const uris = suggestedRes.uris;
|
|
161098
|
-
const
|
|
161099
|
-
|
|
161100
|
-
viewer
|
|
161101
|
-
});
|
|
161125
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
161126
|
+
const hydration29 = await ctx.hydrator.hydrateFeedGens(uris, hydrateCtx);
|
|
161102
161127
|
const feedViews = mapDefined(uris, (uri2) => ctx.views.feedGenerator(uri2, hydration29));
|
|
161103
161128
|
return {
|
|
161104
161129
|
encoding: "application/json",
|
|
@@ -161106,7 +161131,7 @@ function getSuggestedFeeds_default(server, ctx) {
|
|
|
161106
161131
|
feeds: feedViews,
|
|
161107
161132
|
cursor: parseString(suggestedRes.cursor)
|
|
161108
161133
|
},
|
|
161109
|
-
headers: resHeaders({ labelers })
|
|
161134
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
161110
161135
|
};
|
|
161111
161136
|
}
|
|
161112
161137
|
});
|
|
@@ -161380,13 +161405,43 @@ var GraphHydrator = class {
|
|
|
161380
161405
|
};
|
|
161381
161406
|
|
|
161382
161407
|
// src/hydration/label.ts
|
|
161408
|
+
var Labels = class extends HydrationMap {
|
|
161409
|
+
static key(label) {
|
|
161410
|
+
return `${label.src}::${label.val}`;
|
|
161411
|
+
}
|
|
161412
|
+
merge(map) {
|
|
161413
|
+
map.forEach((theirs, key) => {
|
|
161414
|
+
if (!theirs)
|
|
161415
|
+
return;
|
|
161416
|
+
const mine = this.get(key);
|
|
161417
|
+
if (mine) {
|
|
161418
|
+
mine.isTakendown = mine.isTakendown || theirs.isTakendown;
|
|
161419
|
+
mine.labels = mine.labels.merge(theirs.labels);
|
|
161420
|
+
} else {
|
|
161421
|
+
this.set(key, theirs);
|
|
161422
|
+
}
|
|
161423
|
+
});
|
|
161424
|
+
return this;
|
|
161425
|
+
}
|
|
161426
|
+
getBySubject(sub) {
|
|
161427
|
+
const it = this.get(sub)?.labels.values();
|
|
161428
|
+
if (!it)
|
|
161429
|
+
return [];
|
|
161430
|
+
const labels = [];
|
|
161431
|
+
for (const label of it) {
|
|
161432
|
+
if (label)
|
|
161433
|
+
labels.push(label);
|
|
161434
|
+
}
|
|
161435
|
+
return labels;
|
|
161436
|
+
}
|
|
161437
|
+
};
|
|
161383
161438
|
var LabelHydrator = class {
|
|
161384
161439
|
constructor(dataplane) {
|
|
161385
161440
|
this.dataplane = dataplane;
|
|
161386
161441
|
}
|
|
161387
161442
|
async getLabelsForSubjects(subjects, labelers) {
|
|
161388
161443
|
if (!subjects.length || !labelers.dids.length)
|
|
161389
|
-
return new
|
|
161444
|
+
return new Labels();
|
|
161390
161445
|
const res = await this.dataplane.getLabels({
|
|
161391
161446
|
subjects,
|
|
161392
161447
|
issuers: labelers.dids
|
|
@@ -161400,16 +161455,16 @@ var LabelHydrator = class {
|
|
|
161400
161455
|
if (!entry) {
|
|
161401
161456
|
entry = {
|
|
161402
161457
|
isTakendown: false,
|
|
161403
|
-
labels:
|
|
161458
|
+
labels: new HydrationMap()
|
|
161404
161459
|
};
|
|
161405
161460
|
acc.set(label.uri, entry);
|
|
161406
161461
|
}
|
|
161407
|
-
entry.labels.
|
|
161462
|
+
entry.labels.set(Labels.key(label), label);
|
|
161408
161463
|
if (TAKEDOWN_LABELS.includes(label.val) && !label.neg && labelers.redact.has(label.src)) {
|
|
161409
161464
|
entry.isTakendown = true;
|
|
161410
161465
|
}
|
|
161411
161466
|
return acc;
|
|
161412
|
-
}, new
|
|
161467
|
+
}, new Labels());
|
|
161413
161468
|
}
|
|
161414
161469
|
async getLabelers(dids, includeTakedowns = false) {
|
|
161415
161470
|
const res = await this.dataplane.getLabelerRecords({
|
|
@@ -161561,13 +161616,25 @@ var FeedHydrator = class {
|
|
|
161561
161616
|
};
|
|
161562
161617
|
|
|
161563
161618
|
// src/hydration/hydrator.ts
|
|
161619
|
+
var HydrateCtx = class {
|
|
161620
|
+
constructor(vals) {
|
|
161621
|
+
this.vals = vals;
|
|
161622
|
+
this.labelers = this.vals.labelers;
|
|
161623
|
+
this.viewer = this.vals.viewer;
|
|
161624
|
+
this.includeTakedowns = this.vals.includeTakedowns;
|
|
161625
|
+
}
|
|
161626
|
+
copy(vals) {
|
|
161627
|
+
return new HydrateCtx({ ...this.vals, ...vals });
|
|
161628
|
+
}
|
|
161629
|
+
};
|
|
161564
161630
|
var Hydrator = class {
|
|
161565
|
-
constructor(dataplane) {
|
|
161631
|
+
constructor(dataplane, serviceLabelers = []) {
|
|
161566
161632
|
this.dataplane = dataplane;
|
|
161567
161633
|
this.actor = new ActorHydrator(dataplane);
|
|
161568
161634
|
this.feed = new FeedHydrator(dataplane);
|
|
161569
161635
|
this.graph = new GraphHydrator(dataplane);
|
|
161570
161636
|
this.label = new LabelHydrator(dataplane);
|
|
161637
|
+
this.serviceLabelers = new Set(serviceLabelers);
|
|
161571
161638
|
}
|
|
161572
161639
|
async hydrateProfileViewers(dids, ctx) {
|
|
161573
161640
|
const viewer = ctx.viewer;
|
|
@@ -161850,11 +161917,12 @@ var Hydrator = class {
|
|
|
161850
161917
|
}
|
|
161851
161918
|
async hydrateLabelers(dids, ctx) {
|
|
161852
161919
|
const [labelers, labelerAggs, labelerViewers, profileState] = await Promise.all([
|
|
161853
|
-
this.label.getLabelers(dids),
|
|
161920
|
+
this.label.getLabelers(dids, ctx.includeTakedowns),
|
|
161854
161921
|
this.label.getLabelerAggregates(dids),
|
|
161855
161922
|
ctx.viewer ? this.label.getLabelerViewerStates(dids, ctx.viewer) : void 0,
|
|
161856
|
-
this.hydrateProfiles(dids
|
|
161923
|
+
this.hydrateProfiles(dids, ctx)
|
|
161857
161924
|
]);
|
|
161925
|
+
actionTakedownLabels(dids, labelers, profileState.labels ?? new Labels());
|
|
161858
161926
|
return mergeStates(profileState, {
|
|
161859
161927
|
labelers,
|
|
161860
161928
|
labelerAggs,
|
|
@@ -161882,7 +161950,10 @@ var Hydrator = class {
|
|
|
161882
161950
|
} else if (collection === ids.AppBskyFeedGenerator) {
|
|
161883
161951
|
return (await this.feed.getFeedGens([uri2], includeTakedowns)).get(uri2) ?? void 0;
|
|
161884
161952
|
} else if (collection === ids.AppBskyLabelerService) {
|
|
161885
|
-
|
|
161953
|
+
if (parsed.rkey !== "self")
|
|
161954
|
+
return;
|
|
161955
|
+
const did2 = parsed.hostname;
|
|
161956
|
+
return (await this.label.getLabelers([did2], includeTakedowns)).get(did2) ?? void 0;
|
|
161886
161957
|
} else if (collection === ids.AppBskyActorProfile) {
|
|
161887
161958
|
const did2 = parsed.hostname;
|
|
161888
161959
|
const actor = (await this.actor.getActors([did2], includeTakedowns)).get(did2);
|
|
@@ -161896,6 +161967,21 @@ var Hydrator = class {
|
|
|
161896
161967
|
};
|
|
161897
161968
|
}
|
|
161898
161969
|
}
|
|
161970
|
+
async createContext(vals) {
|
|
161971
|
+
const labelers = vals.labelers.dids;
|
|
161972
|
+
const nonServiceLabelers = labelers.filter((did2) => !this.serviceLabelers.has(did2));
|
|
161973
|
+
const labelerActors = await this.actor.getActors(nonServiceLabelers, vals.includeTakedowns);
|
|
161974
|
+
const availableDids = labelers.filter((did2) => this.serviceLabelers.has(did2) || !!labelerActors.get(did2));
|
|
161975
|
+
const availableLabelers = {
|
|
161976
|
+
dids: availableDids,
|
|
161977
|
+
redact: vals.labelers.redact
|
|
161978
|
+
};
|
|
161979
|
+
return new HydrateCtx({
|
|
161980
|
+
labelers: availableLabelers,
|
|
161981
|
+
viewer: vals.viewer,
|
|
161982
|
+
includeTakedowns: vals.includeTakedowns
|
|
161983
|
+
});
|
|
161984
|
+
}
|
|
161899
161985
|
};
|
|
161900
161986
|
var listUrisFromProfileViewer = (item) => {
|
|
161901
161987
|
const listUris = [];
|
|
@@ -167095,7 +167181,11 @@ function getAuthorFeed_default(server, ctx) {
|
|
|
167095
167181
|
handler: async ({ params: params2, auth, req }) => {
|
|
167096
167182
|
const { viewer, includeTakedowns } = ctx.authVerifier.parseCreds(auth);
|
|
167097
167183
|
const labelers = ctx.reqLabelers(req);
|
|
167098
|
-
const hydrateCtx = {
|
|
167184
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
167185
|
+
labelers,
|
|
167186
|
+
viewer,
|
|
167187
|
+
includeTakedowns
|
|
167188
|
+
});
|
|
167099
167189
|
const result = await getAuthorFeed({ ...params2, hydrateCtx }, ctx);
|
|
167100
167190
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
167101
167191
|
return {
|
|
@@ -167103,7 +167193,7 @@ function getAuthorFeed_default(server, ctx) {
|
|
|
167103
167193
|
body: result,
|
|
167104
167194
|
headers: resHeaders({
|
|
167105
167195
|
repoRev,
|
|
167106
|
-
labelers
|
|
167196
|
+
labelers: hydrateCtx.labelers
|
|
167107
167197
|
})
|
|
167108
167198
|
};
|
|
167109
167199
|
}
|
|
@@ -175659,15 +175749,25 @@ var labels_default = (db) => ({
|
|
|
175659
175749
|
async getLabels(req) {
|
|
175660
175750
|
const { subjects, issuers } = req;
|
|
175661
175751
|
if (subjects.length === 0 || issuers.length === 0) {
|
|
175662
|
-
return {
|
|
175752
|
+
return { labels: [] };
|
|
175663
175753
|
}
|
|
175664
175754
|
const res = await db.db.selectFrom("label").where("uri", "in", subjects).where("src", "in", issuers).selectAll().execute();
|
|
175665
|
-
const
|
|
175666
|
-
|
|
175667
|
-
|
|
175668
|
-
|
|
175669
|
-
|
|
175670
|
-
|
|
175755
|
+
const labelsBySubject = /* @__PURE__ */ new Map();
|
|
175756
|
+
res.forEach((l) => {
|
|
175757
|
+
const labels2 = labelsBySubject.get(l.uri) ?? [];
|
|
175758
|
+
labels2.push(l);
|
|
175759
|
+
labelsBySubject.set(l.uri, labels2);
|
|
175760
|
+
});
|
|
175761
|
+
const labels = subjects.flatMap((sub) => {
|
|
175762
|
+
const labelsForSub = labelsBySubject.get(sub) ?? [];
|
|
175763
|
+
return labelsForSub.map((l) => {
|
|
175764
|
+
const formatted = noUndefinedVals({
|
|
175765
|
+
...l,
|
|
175766
|
+
cid: l.cid === "" ? void 0 : l.cid,
|
|
175767
|
+
neg: l.neg === true ? true : void 0
|
|
175768
|
+
});
|
|
175769
|
+
return fromString2(JSON.stringify(formatted), "utf8");
|
|
175770
|
+
});
|
|
175671
175771
|
});
|
|
175672
175772
|
return { labels };
|
|
175673
175773
|
}
|
|
@@ -180828,7 +180928,7 @@ function getFeed_default(server, ctx) {
|
|
|
180828
180928
|
handler: async ({ params: params2, auth, req }) => {
|
|
180829
180929
|
const viewer = auth.credentials.iss;
|
|
180830
180930
|
const labelers = ctx.reqLabelers(req);
|
|
180831
|
-
const hydrateCtx = { labelers, viewer };
|
|
180931
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
180832
180932
|
const headers = noUndefinedVals({
|
|
180833
180933
|
authorization: req.headers["authorization"],
|
|
180834
180934
|
"accept-language": req.headers["accept-language"]
|
|
@@ -180844,7 +180944,7 @@ function getFeed_default(server, ctx) {
|
|
|
180844
180944
|
body: result,
|
|
180845
180945
|
headers: {
|
|
180846
180946
|
...feedResHeaders ?? {},
|
|
180847
|
-
...resHeaders({ labelers }),
|
|
180947
|
+
...resHeaders({ labelers: hydrateCtx.labelers }),
|
|
180848
180948
|
"server-timing": serverTimingHeader([timerSkele, timerHydr])
|
|
180849
180949
|
}
|
|
180850
180950
|
};
|
|
@@ -180973,10 +181073,8 @@ function getFeedGenerator_default(server, ctx) {
|
|
|
180973
181073
|
const { feed } = params2;
|
|
180974
181074
|
const viewer = auth.credentials.iss;
|
|
180975
181075
|
const labelers = ctx.reqLabelers(req);
|
|
180976
|
-
const
|
|
180977
|
-
|
|
180978
|
-
labelers
|
|
180979
|
-
});
|
|
181076
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181077
|
+
const hydration29 = await ctx.hydrator.hydrateFeedGens([feed], hydrateCtx);
|
|
180980
181078
|
const feedInfo = hydration29.feedgens?.get(feed);
|
|
180981
181079
|
if (!feedInfo) {
|
|
180982
181080
|
throw new InvalidRequestError("could not find feed");
|
|
@@ -181010,7 +181108,7 @@ function getFeedGenerator_default(server, ctx) {
|
|
|
181010
181108
|
isOnline: true,
|
|
181011
181109
|
isValid: true
|
|
181012
181110
|
},
|
|
181013
|
-
headers: resHeaders({ labelers })
|
|
181111
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181014
181112
|
};
|
|
181015
181113
|
}
|
|
181016
181114
|
});
|
|
@@ -181024,12 +181122,12 @@ function getFeedGenerators_default(server, ctx) {
|
|
|
181024
181122
|
handler: async ({ params: params2, auth, req }) => {
|
|
181025
181123
|
const viewer = auth.credentials.iss;
|
|
181026
181124
|
const labelers = ctx.reqLabelers(req);
|
|
181027
|
-
const hydrateCtx = { labelers, viewer };
|
|
181125
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181028
181126
|
const view = await getFeedGenerators({ ...params2, hydrateCtx }, ctx);
|
|
181029
181127
|
return {
|
|
181030
181128
|
encoding: "application/json",
|
|
181031
181129
|
body: view,
|
|
181032
|
-
headers: resHeaders({ labelers })
|
|
181130
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181033
181131
|
};
|
|
181034
181132
|
}
|
|
181035
181133
|
});
|
|
@@ -181059,12 +181157,12 @@ function getLikes_default(server, ctx) {
|
|
|
181059
181157
|
handler: async ({ params: params2, auth, req }) => {
|
|
181060
181158
|
const viewer = auth.credentials.iss;
|
|
181061
181159
|
const labelers = ctx.reqLabelers(req);
|
|
181062
|
-
const hydrateCtx = { labelers, viewer };
|
|
181160
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181063
181161
|
const result = await getLikes({ ...params2, hydrateCtx }, ctx);
|
|
181064
181162
|
return {
|
|
181065
181163
|
encoding: "application/json",
|
|
181066
181164
|
body: result,
|
|
181067
|
-
headers: resHeaders({ labelers })
|
|
181165
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181068
181166
|
};
|
|
181069
181167
|
}
|
|
181070
181168
|
});
|
|
@@ -181130,13 +181228,13 @@ function getListFeed_default(server, ctx) {
|
|
|
181130
181228
|
handler: async ({ params: params2, auth, req }) => {
|
|
181131
181229
|
const viewer = auth.credentials.iss;
|
|
181132
181230
|
const labelers = ctx.reqLabelers(req);
|
|
181133
|
-
const hydrateCtx = { labelers, viewer };
|
|
181231
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181134
181232
|
const result = await getListFeed({ ...params2, hydrateCtx }, ctx);
|
|
181135
181233
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
181136
181234
|
return {
|
|
181137
181235
|
encoding: "application/json",
|
|
181138
181236
|
body: result,
|
|
181139
|
-
headers: resHeaders({ labelers, repoRev })
|
|
181237
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers, repoRev })
|
|
181140
181238
|
};
|
|
181141
181239
|
}
|
|
181142
181240
|
});
|
|
@@ -181190,7 +181288,7 @@ function getPostThread_default(server, ctx) {
|
|
|
181190
181288
|
handler: async ({ params: params2, auth, req, res }) => {
|
|
181191
181289
|
const { viewer } = ctx.authVerifier.parseCreds(auth);
|
|
181192
181290
|
const labelers = ctx.reqLabelers(req);
|
|
181193
|
-
const hydrateCtx = { labelers, viewer };
|
|
181291
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181194
181292
|
let result;
|
|
181195
181293
|
try {
|
|
181196
181294
|
result = await getPostThread({ ...params2, hydrateCtx }, ctx);
|
|
@@ -181207,7 +181305,7 @@ function getPostThread_default(server, ctx) {
|
|
|
181207
181305
|
body: result,
|
|
181208
181306
|
headers: resHeaders({
|
|
181209
181307
|
repoRev,
|
|
181210
|
-
labelers
|
|
181308
|
+
labelers: hydrateCtx.labelers
|
|
181211
181309
|
})
|
|
181212
181310
|
};
|
|
181213
181311
|
}
|
|
@@ -181260,12 +181358,12 @@ function getPosts_default(server, ctx) {
|
|
|
181260
181358
|
handler: async ({ params: params2, auth, req }) => {
|
|
181261
181359
|
const viewer = auth.credentials.iss;
|
|
181262
181360
|
const labelers = ctx.reqLabelers(req);
|
|
181263
|
-
const hydrateCtx = { labelers, viewer };
|
|
181361
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181264
181362
|
const results = await getPosts({ ...params2, hydrateCtx }, ctx);
|
|
181265
181363
|
return {
|
|
181266
181364
|
encoding: "application/json",
|
|
181267
181365
|
body: results,
|
|
181268
|
-
headers: resHeaders({ labelers })
|
|
181366
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181269
181367
|
};
|
|
181270
181368
|
}
|
|
181271
181369
|
});
|
|
@@ -181299,12 +181397,12 @@ function searchPosts_default(server, ctx) {
|
|
|
181299
181397
|
handler: async ({ auth, params: params2, req }) => {
|
|
181300
181398
|
const viewer = auth.credentials.iss;
|
|
181301
181399
|
const labelers = ctx.reqLabelers(req);
|
|
181302
|
-
const hydrateCtx = { labelers, viewer };
|
|
181400
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181303
181401
|
const results = await searchPosts({ ...params2, hydrateCtx }, ctx);
|
|
181304
181402
|
return {
|
|
181305
181403
|
encoding: "application/json",
|
|
181306
181404
|
body: results,
|
|
181307
|
-
headers: resHeaders({ labelers })
|
|
181405
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181308
181406
|
};
|
|
181309
181407
|
}
|
|
181310
181408
|
});
|
|
@@ -181362,7 +181460,7 @@ function getActorLikes_default(server, ctx) {
|
|
|
181362
181460
|
handler: async ({ params: params2, auth, req }) => {
|
|
181363
181461
|
const viewer = auth.credentials.iss;
|
|
181364
181462
|
const labelers = ctx.reqLabelers(req);
|
|
181365
|
-
const hydrateCtx = { labelers, viewer };
|
|
181463
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181366
181464
|
const result = await getActorLikes({ ...params2, hydrateCtx }, ctx);
|
|
181367
181465
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
181368
181466
|
return {
|
|
@@ -181370,7 +181468,7 @@ function getActorLikes_default(server, ctx) {
|
|
|
181370
181468
|
body: result,
|
|
181371
181469
|
headers: resHeaders({
|
|
181372
181470
|
repoRev,
|
|
181373
|
-
labelers
|
|
181471
|
+
labelers: hydrateCtx.labelers
|
|
181374
181472
|
})
|
|
181375
181473
|
};
|
|
181376
181474
|
}
|
|
@@ -181427,7 +181525,11 @@ function getProfile_default(server, ctx) {
|
|
|
181427
181525
|
handler: async ({ auth, params: params2, req }) => {
|
|
181428
181526
|
const { viewer, includeTakedowns } = ctx.authVerifier.parseCreds(auth);
|
|
181429
181527
|
const labelers = ctx.reqLabelers(req);
|
|
181430
|
-
const hydrateCtx = {
|
|
181528
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
181529
|
+
labelers,
|
|
181530
|
+
viewer,
|
|
181531
|
+
includeTakedowns
|
|
181532
|
+
});
|
|
181431
181533
|
const result = await getProfile({ ...params2, hydrateCtx }, ctx);
|
|
181432
181534
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
181433
181535
|
return {
|
|
@@ -181435,7 +181537,7 @@ function getProfile_default(server, ctx) {
|
|
|
181435
181537
|
body: result,
|
|
181436
181538
|
headers: resHeaders({
|
|
181437
181539
|
repoRev,
|
|
181438
|
-
labelers
|
|
181540
|
+
labelers: hydrateCtx.labelers
|
|
181439
181541
|
})
|
|
181440
181542
|
};
|
|
181441
181543
|
}
|
|
@@ -181451,10 +181553,7 @@ var skeleton12 = async (input) => {
|
|
|
181451
181553
|
};
|
|
181452
181554
|
var hydration12 = async (input) => {
|
|
181453
181555
|
const { ctx, params: params2, skeleton: skeleton29 } = input;
|
|
181454
|
-
return ctx.hydrator.hydrateProfilesDetailed([skeleton29.did], {
|
|
181455
|
-
...params2.hydrateCtx,
|
|
181456
|
-
includeTakedowns: true
|
|
181457
|
-
});
|
|
181556
|
+
return ctx.hydrator.hydrateProfilesDetailed([skeleton29.did], params2.hydrateCtx.copy({ includeTakedowns: true }));
|
|
181458
181557
|
};
|
|
181459
181558
|
var presentation12 = (input) => {
|
|
181460
181559
|
const { ctx, params: params2, skeleton: skeleton29, hydration: hydration29 } = input;
|
|
@@ -181475,7 +181574,7 @@ function getProfiles_default(server, ctx) {
|
|
|
181475
181574
|
handler: async ({ auth, params: params2, req }) => {
|
|
181476
181575
|
const viewer = auth.credentials.iss;
|
|
181477
181576
|
const labelers = ctx.reqLabelers(req);
|
|
181478
|
-
const hydrateCtx = { viewer, labelers };
|
|
181577
|
+
const hydrateCtx = await ctx.hydrator.createContext({ viewer, labelers });
|
|
181479
181578
|
const result = await getProfile({ ...params2, hydrateCtx }, ctx);
|
|
181480
181579
|
const repoRev = await ctx.hydrator.actor.getRepoRevSafe(viewer);
|
|
181481
181580
|
return {
|
|
@@ -181483,7 +181582,7 @@ function getProfiles_default(server, ctx) {
|
|
|
181483
181582
|
body: result,
|
|
181484
181583
|
headers: resHeaders({
|
|
181485
181584
|
repoRev,
|
|
181486
|
-
labelers
|
|
181585
|
+
labelers: hydrateCtx.labelers
|
|
181487
181586
|
})
|
|
181488
181587
|
};
|
|
181489
181588
|
}
|
|
@@ -181512,12 +181611,12 @@ function getRepostedBy_default(server, ctx) {
|
|
|
181512
181611
|
handler: async ({ params: params2, auth, req }) => {
|
|
181513
181612
|
const viewer = auth.credentials.iss;
|
|
181514
181613
|
const labelers = ctx.reqLabelers(req);
|
|
181515
|
-
const hydrateCtx = { labelers, viewer };
|
|
181614
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181516
181615
|
const result = await getRepostedBy({ ...params2, hydrateCtx }, ctx);
|
|
181517
181616
|
return {
|
|
181518
181617
|
encoding: "application/json",
|
|
181519
181618
|
body: result,
|
|
181520
|
-
headers: resHeaders({ labelers })
|
|
181619
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181521
181620
|
};
|
|
181522
181621
|
}
|
|
181523
181622
|
});
|
|
@@ -181575,12 +181674,12 @@ function getBlocks_default(server, ctx) {
|
|
|
181575
181674
|
handler: async ({ params: params2, auth, req }) => {
|
|
181576
181675
|
const viewer = auth.credentials.iss;
|
|
181577
181676
|
const labelers = ctx.reqLabelers(req);
|
|
181578
|
-
const hydrateCtx = { labelers, viewer };
|
|
181579
|
-
const result = await getBlocks({ ...params2, hydrateCtx }, ctx);
|
|
181677
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181678
|
+
const result = await getBlocks({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
181580
181679
|
return {
|
|
181581
181680
|
encoding: "application/json",
|
|
181582
181681
|
body: result,
|
|
181583
|
-
headers: resHeaders({ labelers })
|
|
181682
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181584
181683
|
};
|
|
181585
181684
|
}
|
|
181586
181685
|
});
|
|
@@ -181623,12 +181722,12 @@ function getListBlocks_default(server, ctx) {
|
|
|
181623
181722
|
handler: async ({ params: params2, auth, req }) => {
|
|
181624
181723
|
const viewer = auth.credentials.iss;
|
|
181625
181724
|
const labelers = ctx.reqLabelers(req);
|
|
181626
|
-
const hydrateCtx = { labelers, viewer };
|
|
181627
|
-
const result = await getListBlocks({ ...params2, hydrateCtx }, ctx);
|
|
181725
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181726
|
+
const result = await getListBlocks({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
181628
181727
|
return {
|
|
181629
181728
|
encoding: "application/json",
|
|
181630
181729
|
body: result,
|
|
181631
|
-
headers: resHeaders({ labelers })
|
|
181730
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181632
181731
|
};
|
|
181633
181732
|
}
|
|
181634
181733
|
});
|
|
@@ -181664,12 +181763,16 @@ function getFollowers_default(server, ctx) {
|
|
|
181664
181763
|
handler: async ({ params: params2, auth, req }) => {
|
|
181665
181764
|
const { viewer, includeTakedowns } = ctx.authVerifier.parseCreds(auth);
|
|
181666
181765
|
const labelers = ctx.reqLabelers(req);
|
|
181667
|
-
const hydrateCtx = {
|
|
181766
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
181767
|
+
labelers,
|
|
181768
|
+
viewer,
|
|
181769
|
+
includeTakedowns
|
|
181770
|
+
});
|
|
181668
181771
|
const result = await getFollowers({ ...params2, hydrateCtx }, ctx);
|
|
181669
181772
|
return {
|
|
181670
181773
|
encoding: "application/json",
|
|
181671
181774
|
body: result,
|
|
181672
|
-
headers: resHeaders({ labelers })
|
|
181775
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181673
181776
|
};
|
|
181674
181777
|
}
|
|
181675
181778
|
});
|
|
@@ -181744,12 +181847,16 @@ function getFollows_default(server, ctx) {
|
|
|
181744
181847
|
handler: async ({ params: params2, auth, req }) => {
|
|
181745
181848
|
const { viewer, includeTakedowns } = ctx.authVerifier.parseCreds(auth);
|
|
181746
181849
|
const labelers = ctx.reqLabelers(req);
|
|
181747
|
-
const hydrateCtx = {
|
|
181850
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
181851
|
+
labelers,
|
|
181852
|
+
viewer,
|
|
181853
|
+
includeTakedowns
|
|
181854
|
+
});
|
|
181748
181855
|
const result = await getFollows({ ...params2, hydrateCtx }, ctx);
|
|
181749
181856
|
return {
|
|
181750
181857
|
encoding: "application/json",
|
|
181751
181858
|
body: result,
|
|
181752
|
-
headers: resHeaders({ labelers })
|
|
181859
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181753
181860
|
};
|
|
181754
181861
|
}
|
|
181755
181862
|
});
|
|
@@ -181828,12 +181935,12 @@ function getList_default(server, ctx) {
|
|
|
181828
181935
|
handler: async ({ params: params2, auth, req }) => {
|
|
181829
181936
|
const viewer = auth.credentials.iss;
|
|
181830
181937
|
const labelers = ctx.reqLabelers(req);
|
|
181831
|
-
const hydrateCtx = { labelers, viewer };
|
|
181938
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181832
181939
|
const result = await getList({ ...params2, hydrateCtx }, ctx);
|
|
181833
181940
|
return {
|
|
181834
181941
|
encoding: "application/json",
|
|
181835
181942
|
body: result,
|
|
181836
|
-
headers: resHeaders({ labelers })
|
|
181943
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181837
181944
|
};
|
|
181838
181945
|
}
|
|
181839
181946
|
});
|
|
@@ -181887,12 +181994,12 @@ function getLists_default(server, ctx) {
|
|
|
181887
181994
|
handler: async ({ params: params2, auth, req }) => {
|
|
181888
181995
|
const viewer = auth.credentials.iss;
|
|
181889
181996
|
const labelers = ctx.reqLabelers(req);
|
|
181890
|
-
const hydrateCtx = { labelers, viewer };
|
|
181997
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
181891
181998
|
const result = await getLists({ ...params2, hydrateCtx }, ctx);
|
|
181892
181999
|
return {
|
|
181893
182000
|
encoding: "application/json",
|
|
181894
182001
|
body: result,
|
|
181895
|
-
headers: resHeaders({ labelers })
|
|
182002
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181896
182003
|
};
|
|
181897
182004
|
}
|
|
181898
182005
|
});
|
|
@@ -181931,12 +182038,12 @@ function getListMutes_default(server, ctx) {
|
|
|
181931
182038
|
handler: async ({ params: params2, auth, req }) => {
|
|
181932
182039
|
const viewer = auth.credentials.iss;
|
|
181933
182040
|
const labelers = ctx.reqLabelers(req);
|
|
181934
|
-
const hydrateCtx = { labelers, viewer };
|
|
181935
|
-
const result = await getListMutes({ ...params2, hydrateCtx }, ctx);
|
|
182041
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
182042
|
+
const result = await getListMutes({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
181936
182043
|
return {
|
|
181937
182044
|
encoding: "application/json",
|
|
181938
182045
|
body: result,
|
|
181939
|
-
headers: resHeaders({ labelers })
|
|
182046
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181940
182047
|
};
|
|
181941
182048
|
}
|
|
181942
182049
|
});
|
|
@@ -181972,12 +182079,12 @@ function getMutes_default(server, ctx) {
|
|
|
181972
182079
|
handler: async ({ params: params2, auth, req }) => {
|
|
181973
182080
|
const viewer = auth.credentials.iss;
|
|
181974
182081
|
const labelers = ctx.reqLabelers(req);
|
|
181975
|
-
const hydrateCtx = { labelers, viewer };
|
|
181976
|
-
const result = await getMutes({ ...params2, hydrateCtx }, ctx);
|
|
182082
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
182083
|
+
const result = await getMutes({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
181977
182084
|
return {
|
|
181978
182085
|
encoding: "application/json",
|
|
181979
182086
|
body: result,
|
|
181980
|
-
headers: resHeaders({ labelers })
|
|
182087
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
181981
182088
|
};
|
|
181982
182089
|
}
|
|
181983
182090
|
});
|
|
@@ -182128,12 +182235,12 @@ function getSuggestedFollowsByActor_default(server, ctx) {
|
|
|
182128
182235
|
handler: async ({ auth, params: params2, req }) => {
|
|
182129
182236
|
const viewer = auth.credentials.iss;
|
|
182130
182237
|
const labelers = ctx.reqLabelers(req);
|
|
182131
|
-
const hydrateCtx = { labelers, viewer };
|
|
182132
|
-
const result = await getSuggestedFollowsByActor({ ...params2, hydrateCtx }, ctx);
|
|
182238
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
182239
|
+
const result = await getSuggestedFollowsByActor({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
182133
182240
|
return {
|
|
182134
182241
|
encoding: "application/json",
|
|
182135
182242
|
body: result,
|
|
182136
|
-
headers: resHeaders({ labelers })
|
|
182243
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182137
182244
|
};
|
|
182138
182245
|
}
|
|
182139
182246
|
});
|
|
@@ -182178,10 +182285,11 @@ function getServices_default(server, ctx) {
|
|
|
182178
182285
|
const { dids, detailed } = params2;
|
|
182179
182286
|
const viewer = auth.credentials.iss;
|
|
182180
182287
|
const labelers = ctx.reqLabelers(req);
|
|
182181
|
-
const
|
|
182288
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
182182
182289
|
viewer,
|
|
182183
182290
|
labelers
|
|
182184
182291
|
});
|
|
182292
|
+
const hydration29 = await ctx.hydrator.hydrateLabelers(dids, hydrateCtx);
|
|
182185
182293
|
const views = mapDefined(dids, (did2) => {
|
|
182186
182294
|
if (detailed) {
|
|
182187
182295
|
const view = ctx.views.labelerDetailed(did2, hydration29);
|
|
@@ -182206,7 +182314,7 @@ function getServices_default(server, ctx) {
|
|
|
182206
182314
|
body: {
|
|
182207
182315
|
views
|
|
182208
182316
|
},
|
|
182209
|
-
headers: resHeaders({ labelers })
|
|
182317
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182210
182318
|
};
|
|
182211
182319
|
}
|
|
182212
182320
|
});
|
|
@@ -182218,14 +182326,18 @@ function searchActors_default(server, ctx) {
|
|
|
182218
182326
|
server.app.bsky.actor.searchActors({
|
|
182219
182327
|
auth: ctx.authVerifier.standardOptional,
|
|
182220
182328
|
handler: async ({ auth, params: params2, req }) => {
|
|
182221
|
-
const viewer =
|
|
182329
|
+
const { viewer, includeTakedowns } = ctx.authVerifier.parseCreds(auth);
|
|
182222
182330
|
const labelers = ctx.reqLabelers(req);
|
|
182223
|
-
const hydrateCtx = {
|
|
182331
|
+
const hydrateCtx = await ctx.hydrator.createContext({
|
|
182332
|
+
viewer,
|
|
182333
|
+
labelers,
|
|
182334
|
+
includeTakedowns
|
|
182335
|
+
});
|
|
182224
182336
|
const results = await searchActors({ ...params2, hydrateCtx }, ctx);
|
|
182225
182337
|
return {
|
|
182226
182338
|
encoding: "application/json",
|
|
182227
182339
|
body: results,
|
|
182228
|
-
headers: resHeaders({ labelers })
|
|
182340
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182229
182341
|
};
|
|
182230
182342
|
}
|
|
182231
182343
|
});
|
|
@@ -182280,12 +182392,12 @@ function searchActorsTypeahead_default(server, ctx) {
|
|
|
182280
182392
|
handler: async ({ params: params2, auth, req }) => {
|
|
182281
182393
|
const viewer = auth.credentials.iss;
|
|
182282
182394
|
const labelers = ctx.reqLabelers(req);
|
|
182283
|
-
const hydrateCtx = { labelers, viewer };
|
|
182395
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
182284
182396
|
const results = await searchActorsTypeahead({ ...params2, hydrateCtx }, ctx);
|
|
182285
182397
|
return {
|
|
182286
182398
|
encoding: "application/json",
|
|
182287
182399
|
body: results,
|
|
182288
|
-
headers: resHeaders({ labelers })
|
|
182400
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182289
182401
|
};
|
|
182290
182402
|
}
|
|
182291
182403
|
});
|
|
@@ -182338,12 +182450,12 @@ function getSuggestions_default(server, ctx) {
|
|
|
182338
182450
|
handler: async ({ params: params2, auth, req }) => {
|
|
182339
182451
|
const viewer = auth.credentials.iss;
|
|
182340
182452
|
const labelers = ctx.reqLabelers(req);
|
|
182341
|
-
const hydrateCtx = { viewer, labelers };
|
|
182453
|
+
const hydrateCtx = await ctx.hydrator.createContext({ viewer, labelers });
|
|
182342
182454
|
const result = await getSuggestions({ ...params2, hydrateCtx }, ctx);
|
|
182343
182455
|
return {
|
|
182344
182456
|
encoding: "application/json",
|
|
182345
182457
|
body: result,
|
|
182346
|
-
headers: resHeaders({ labelers })
|
|
182458
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182347
182459
|
};
|
|
182348
182460
|
}
|
|
182349
182461
|
});
|
|
@@ -182427,12 +182539,12 @@ function listNotifications_default(server, ctx) {
|
|
|
182427
182539
|
handler: async ({ params: params2, auth, req }) => {
|
|
182428
182540
|
const viewer = auth.credentials.iss;
|
|
182429
182541
|
const labelers = ctx.reqLabelers(req);
|
|
182430
|
-
const hydrateCtx = { labelers, viewer };
|
|
182431
|
-
const result = await listNotifications({ ...params2, hydrateCtx }, ctx);
|
|
182542
|
+
const hydrateCtx = await ctx.hydrator.createContext({ labelers, viewer });
|
|
182543
|
+
const result = await listNotifications({ ...params2, hydrateCtx: hydrateCtx.copy({ viewer }) }, ctx);
|
|
182432
182544
|
return {
|
|
182433
182545
|
encoding: "application/json",
|
|
182434
182546
|
body: result,
|
|
182435
|
-
headers: resHeaders({ labelers })
|
|
182547
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182436
182548
|
};
|
|
182437
182549
|
}
|
|
182438
182550
|
});
|
|
@@ -182752,7 +182864,7 @@ function getPopularFeedGenerators_default(server, ctx) {
|
|
|
182752
182864
|
handler: async ({ auth, params: params2, req }) => {
|
|
182753
182865
|
const viewer = auth.credentials.iss;
|
|
182754
182866
|
const labelers = ctx.reqLabelers(req);
|
|
182755
|
-
const hydrateCtx = { viewer, labelers };
|
|
182867
|
+
const hydrateCtx = await ctx.hydrator.createContext({ viewer, labelers });
|
|
182756
182868
|
if (clearlyBadCursor(params2.cursor)) {
|
|
182757
182869
|
return {
|
|
182758
182870
|
encoding: "application/json",
|
|
@@ -182785,7 +182897,7 @@ function getPopularFeedGenerators_default(server, ctx) {
|
|
|
182785
182897
|
feeds: feedViews,
|
|
182786
182898
|
cursor
|
|
182787
182899
|
},
|
|
182788
|
-
headers: resHeaders({ labelers })
|
|
182900
|
+
headers: resHeaders({ labelers: hydrateCtx.labelers })
|
|
182789
182901
|
};
|
|
182790
182902
|
}
|
|
182791
182903
|
});
|
|
@@ -184311,8 +184423,8 @@ var Views = class {
|
|
|
184311
184423
|
return;
|
|
184312
184424
|
const profileUri = AtUri.make(did2, ids.AppBskyActorProfile, "self").toString();
|
|
184313
184425
|
const labels = [
|
|
184314
|
-
...state.labels?.
|
|
184315
|
-
...state.labels?.
|
|
184426
|
+
...state.labels?.getBySubject(did2) ?? [],
|
|
184427
|
+
...state.labels?.getBySubject(profileUri) ?? [],
|
|
184316
184428
|
...this.selfLabels({
|
|
184317
184429
|
uri: profileUri,
|
|
184318
184430
|
cid: actor.profileCid?.toString(),
|
|
@@ -184381,7 +184493,7 @@ var Views = class {
|
|
|
184381
184493
|
return void 0;
|
|
184382
184494
|
}
|
|
184383
184495
|
const listViewer = state.listViewers?.get(uri2);
|
|
184384
|
-
const labels = state.labels?.
|
|
184496
|
+
const labels = state.labels?.getBySubject(uri2) ?? [];
|
|
184385
184497
|
const creator = new AtUri(uri2).hostname;
|
|
184386
184498
|
return {
|
|
184387
184499
|
uri: uri2,
|
|
@@ -184406,7 +184518,7 @@ var Views = class {
|
|
|
184406
184518
|
const src3 = new AtUri(uri2).host;
|
|
184407
184519
|
const cts = typeof record.createdAt === "string" ? normalizeDatetimeAlways(record.createdAt) : new Date(0).toISOString();
|
|
184408
184520
|
return record.labels.values.map(({ val }) => {
|
|
184409
|
-
return { src: src3, uri: uri2, cid: cid2, val, cts
|
|
184521
|
+
return { src: src3, uri: uri2, cid: cid2, val, cts };
|
|
184410
184522
|
});
|
|
184411
184523
|
}
|
|
184412
184524
|
labeler(did2, state) {
|
|
@@ -184420,7 +184532,7 @@ var Views = class {
|
|
|
184420
184532
|
const aggs = state.labelerAggs?.get(did2);
|
|
184421
184533
|
const uri2 = AtUri.make(did2, ids.AppBskyLabelerService, "self").toString();
|
|
184422
184534
|
const labels = [
|
|
184423
|
-
...state.labels?.
|
|
184535
|
+
...state.labels?.getBySubject(uri2) ?? [],
|
|
184424
184536
|
...this.selfLabels({
|
|
184425
184537
|
uri: uri2,
|
|
184426
184538
|
cid: labeler.cid.toString(),
|
|
@@ -184471,7 +184583,7 @@ var Views = class {
|
|
|
184471
184583
|
return;
|
|
184472
184584
|
const viewer = state.feedgenViewers?.get(uri2);
|
|
184473
184585
|
const aggs = state.feedgenAggs?.get(uri2);
|
|
184474
|
-
const labels = state.labels?.
|
|
184586
|
+
const labels = state.labels?.getBySubject(uri2) ?? [];
|
|
184475
184587
|
return {
|
|
184476
184588
|
uri: uri2,
|
|
184477
184589
|
cid: feedgen.cid,
|
|
@@ -184517,7 +184629,7 @@ var Views = class {
|
|
|
184517
184629
|
const viewer = state.postViewers?.get(uri2);
|
|
184518
184630
|
const gateUri = AtUri.make(authorDid, ids.AppBskyFeedThreadgate, parsedUri.rkey).toString();
|
|
184519
184631
|
const labels = [
|
|
184520
|
-
...state.labels?.
|
|
184632
|
+
...state.labels?.getBySubject(uri2) ?? [],
|
|
184521
184633
|
...this.selfLabels({
|
|
184522
184634
|
uri: uri2,
|
|
184523
184635
|
cid: post.cid,
|
|
@@ -184880,7 +184992,7 @@ var Views = class {
|
|
|
184880
184992
|
}
|
|
184881
184993
|
if (!recordInfo)
|
|
184882
184994
|
return;
|
|
184883
|
-
const labels = state.labels?.
|
|
184995
|
+
const labels = state.labels?.getBySubject(notif.uri) ?? [];
|
|
184884
184996
|
const selfLabels = this.selfLabels({
|
|
184885
184997
|
uri: notif.uri,
|
|
184886
184998
|
cid: recordInfo.cid,
|
|
@@ -186057,7 +186169,7 @@ var BskyAppView = class {
|
|
|
186057
186169
|
httpVersion: config2.dataplaneHttpVersion,
|
|
186058
186170
|
rejectUnauthorized: !config2.dataplaneIgnoreBadTls
|
|
186059
186171
|
});
|
|
186060
|
-
const hydrator = new Hydrator(dataplane);
|
|
186172
|
+
const hydrator = new Hydrator(dataplane, config2.labelsFromIssuerDids);
|
|
186061
186173
|
const views = new Views(imgUriBuilder);
|
|
186062
186174
|
const bsyncClient = createBsyncClient({
|
|
186063
186175
|
baseUrl: config2.bsyncUrl,
|