@singi-labs/sifa-sdk 0.18.21 → 0.19.0
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/dist/atproto/index.cjs +8 -0
- package/dist/atproto/index.cjs.map +1 -1
- package/dist/atproto/index.d.cts +10 -1
- package/dist/atproto/index.d.ts +10 -1
- package/dist/atproto/index.js +7 -1
- package/dist/atproto/index.js.map +1 -1
- package/dist/badge/index.cjs.map +1 -1
- package/dist/badge/index.js.map +1 -1
- package/dist/{feed-BMm9Pkew.d.cts → follow-profile-D1l6pulB.d.cts} +1 -190
- package/dist/{feed-BMm9Pkew.d.ts → follow-profile-D1l6pulB.d.ts} +1 -190
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{network-map-Dupds9nG.d.cts → network-map-C8VCE7HI.d.cts} +2 -2
- package/dist/{network-map-Cwef6yhK.d.ts → network-map-DNE9jp_r.d.ts} +2 -2
- package/dist/{org-DgC4pecF.d.cts → org-8RWC0qSH.d.cts} +198 -191
- package/dist/{org-DC_71Ojb.d.ts → org-BwK-97S0.d.ts} +198 -191
- package/dist/{profile-investment-Bvulg_jG.d.cts → profile-investment-D-nKT3ZK.d.cts} +190 -1
- package/dist/{profile-investment-Bvulg_jG.d.ts → profile-investment-D-nKT3ZK.d.ts} +190 -1
- package/dist/query/fetchers/index.cjs +9 -9
- package/dist/query/fetchers/index.cjs.map +1 -1
- package/dist/query/fetchers/index.d.cts +4 -4
- package/dist/query/fetchers/index.d.ts +4 -4
- package/dist/query/fetchers/index.js +9 -9
- package/dist/query/fetchers/index.js.map +1 -1
- package/dist/query/hooks/index.cjs +11 -17
- package/dist/query/hooks/index.cjs.map +1 -1
- package/dist/query/hooks/index.d.cts +4 -4
- package/dist/query/hooks/index.d.ts +4 -4
- package/dist/query/hooks/index.js +11 -17
- package/dist/query/hooks/index.js.map +1 -1
- package/dist/query/index.cjs +12 -18
- package/dist/query/index.cjs.map +1 -1
- package/dist/query/index.d.cts +6 -6
- package/dist/query/index.d.ts +6 -6
- package/dist/query/index.js +12 -18
- package/dist/query/index.js.map +1 -1
- package/dist/schemas/index.d.cts +2 -2
- package/dist/schemas/index.d.ts +2 -2
- package/dist/{use-org-notification-emails-ZmOjvMh0.d.cts → use-org-notification-emails-CeDxRlis.d.cts} +7 -40
- package/dist/{use-org-notification-emails-CHU0JhlL.d.ts → use-org-notification-emails-LIoQtBgD.d.ts} +7 -40
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { p as ExternalAccount, Q as SkillSuggestion } from './index-C13I8diU.js';
|
|
2
|
-
import { y as FollowFeedPage, B as FollowProfileItem, q as FeatureAllowlistEntry, s as FeatureFlag } from './feed-BMm9Pkew.js';
|
|
3
2
|
import { b as ActivityLabel, t as RepoDeleteResult, w as RepoInventory } from './types-YpOch4Ho.js';
|
|
3
|
+
import { s as FollowProfileItem, p as FeatureAllowlistEntry, r as FeatureFlag } from './follow-profile-D1l6pulB.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { d as OrgNotificationEmailRequestInput, b as OrgDomainChallengeRequestInput, O as OrgClaimRequestInput, a as OrgProfileUpdateRequestInput, c as OrgDomainVerifyRequestInput } from './org-settings-CZ_tmAYl.js';
|
|
6
6
|
|
|
@@ -21,6 +21,16 @@ interface SifaApiConfig {
|
|
|
21
21
|
* consumers can leave this unset.
|
|
22
22
|
*/
|
|
23
23
|
fetch?: typeof fetch;
|
|
24
|
+
/**
|
|
25
|
+
* Optional per-request auth-token minter for auth-required reads. The NATIVE
|
|
26
|
+
* app supplies this (it has no sifa-api session cookie): given a method NSID
|
|
27
|
+
* (`lxm`), it mints a short-lived AT Protocol service-auth JWT on the user's
|
|
28
|
+
* PDS (see the SDK's `/atproto` `mintServiceAuthToken`) and returns it; the
|
|
29
|
+
* fetcher attaches it as `Authorization: Bearer`. Web omits this and relies on
|
|
30
|
+
* its session cookie (`credentials: 'include'`). Return `null` to send no
|
|
31
|
+
* token. See `sifa-api` `createIdentityMiddleware`.
|
|
32
|
+
*/
|
|
33
|
+
getAuthToken?: (lxm: string) => Promise<string | null>;
|
|
24
34
|
}
|
|
25
35
|
/** Options accepted by {@link apiFetch}. */
|
|
26
36
|
interface ApiFetchOptions {
|
|
@@ -1039,6 +1049,182 @@ declare function fetchSuggestionCount(config: SifaApiConfig, since?: string, opt
|
|
|
1039
1049
|
/** Featured profile (rotated by sifa-api). Returns `null` when none. */
|
|
1040
1050
|
declare function fetchFeaturedProfile(config: SifaApiConfig, options?: ApiFetchOptions): Promise<FeaturedProfile | null>;
|
|
1041
1051
|
|
|
1052
|
+
interface QuotedPostAuthor {
|
|
1053
|
+
did: string;
|
|
1054
|
+
handle: string;
|
|
1055
|
+
displayName?: string;
|
|
1056
|
+
avatar?: string;
|
|
1057
|
+
}
|
|
1058
|
+
interface QuotedPostImage {
|
|
1059
|
+
thumb: string;
|
|
1060
|
+
fullsize: string;
|
|
1061
|
+
alt?: string;
|
|
1062
|
+
}
|
|
1063
|
+
interface QuotedPostView {
|
|
1064
|
+
uri: string;
|
|
1065
|
+
cid: string;
|
|
1066
|
+
author: QuotedPostAuthor;
|
|
1067
|
+
text: string;
|
|
1068
|
+
createdAt: string;
|
|
1069
|
+
images?: QuotedPostImage[];
|
|
1070
|
+
}
|
|
1071
|
+
type QuotedPostResult = {
|
|
1072
|
+
status: 'ok';
|
|
1073
|
+
record: QuotedPostView;
|
|
1074
|
+
} | {
|
|
1075
|
+
status: 'deleted';
|
|
1076
|
+
uri: string;
|
|
1077
|
+
} | {
|
|
1078
|
+
status: 'unavailable';
|
|
1079
|
+
uri: string;
|
|
1080
|
+
};
|
|
1081
|
+
/** Max URIs per request to `POST /api/quoted-posts/resolve` (mirrors server cap). */
|
|
1082
|
+
declare const QUOTED_POSTS_BATCH_MAX = 20;
|
|
1083
|
+
interface ResolveQuotedPostsOptions extends ApiFetchOptions {
|
|
1084
|
+
/** Cookie header for Next.js RSC server-side calls; ignored in browsers. */
|
|
1085
|
+
cookieHeader?: string;
|
|
1086
|
+
}
|
|
1087
|
+
/**
|
|
1088
|
+
* Resolve a batch of AT-URIs to their quoted-post snapshots via the Sifa AppView.
|
|
1089
|
+
*
|
|
1090
|
+
* Auto-deduplicates input URIs and splits requests into chunks of
|
|
1091
|
+
* {@link QUOTED_POSTS_BATCH_MAX} so callers can pass an arbitrary-length array.
|
|
1092
|
+
* Each chunk is fired in parallel. The server caches results in Valkey, so
|
|
1093
|
+
* repeated calls for the same URI are cheap.
|
|
1094
|
+
*
|
|
1095
|
+
* Returns a map of `uri -> QuotedPostResult`. URIs that fail (network error,
|
|
1096
|
+
* non-2xx, or the server omitting them) are absent from the map; the caller
|
|
1097
|
+
* should render a skeleton or tombstone for those.
|
|
1098
|
+
*/
|
|
1099
|
+
declare function resolveQuotedPosts(config: SifaApiConfig, uris: string[], options?: ResolveQuotedPostsOptions): Promise<Record<string, QuotedPostResult>>;
|
|
1100
|
+
|
|
1101
|
+
/**
|
|
1102
|
+
* Liveness of an activity card's destination, as reported by sifa-api's
|
|
1103
|
+
* `/api/activity` enrichment (see sifa-api `url-health-checker`). How liveness
|
|
1104
|
+
* is measured depends on the card's health strategy (see `resolveCardHealth`):
|
|
1105
|
+
* first-party permalinks (`record`) are checked by record existence on the PDS;
|
|
1106
|
+
* foreign/derived targets (`url`) by HTTP reachability (HEAD, then GET).
|
|
1107
|
+
*
|
|
1108
|
+
* ok -- record exists, or the URL returned 2xx/3xx
|
|
1109
|
+
* broken -- confirmed dead (record deleted, or >=2 consecutive 4xx / >=5 consecutive 5xx)
|
|
1110
|
+
* unverifiable -- 403/429, PDS unreachable, or network error; NOT dead
|
|
1111
|
+
* unknown -- newly seen, not yet checked
|
|
1112
|
+
*
|
|
1113
|
+
* Consumers should only suppress UI on `'broken'`. All other values
|
|
1114
|
+
* (including missing) mean "render normally".
|
|
1115
|
+
*/
|
|
1116
|
+
type ActivityItemLinkHealth = 'ok' | 'broken' | 'unverifiable' | 'unknown';
|
|
1117
|
+
interface HeatmapDay {
|
|
1118
|
+
date: string;
|
|
1119
|
+
total: number;
|
|
1120
|
+
apps: {
|
|
1121
|
+
appId: string;
|
|
1122
|
+
count: number;
|
|
1123
|
+
}[];
|
|
1124
|
+
}
|
|
1125
|
+
interface HeatmapResponse {
|
|
1126
|
+
days: HeatmapDay[];
|
|
1127
|
+
appTotals: {
|
|
1128
|
+
appId: string;
|
|
1129
|
+
appName: string;
|
|
1130
|
+
total: number;
|
|
1131
|
+
}[];
|
|
1132
|
+
thresholds: [number, number, number, number];
|
|
1133
|
+
}
|
|
1134
|
+
interface ActivityItem {
|
|
1135
|
+
uri: string;
|
|
1136
|
+
cid: string;
|
|
1137
|
+
collection: string;
|
|
1138
|
+
rkey: string;
|
|
1139
|
+
record: Record<string, unknown>;
|
|
1140
|
+
appId: string;
|
|
1141
|
+
appName: string;
|
|
1142
|
+
category: string;
|
|
1143
|
+
indexedAt: string;
|
|
1144
|
+
/**
|
|
1145
|
+
* The record author's handle / display name / avatar, injected by the server
|
|
1146
|
+
* on MULTI-author feeds (the following feed) so a card can show whose activity
|
|
1147
|
+
* it is. Unset on the per-author activity feed (all one author). Mirrors the
|
|
1148
|
+
* stream `ActivityItem`'s author fields the view-model transform reads.
|
|
1149
|
+
*/
|
|
1150
|
+
authorHandle?: string;
|
|
1151
|
+
authorDisplayName?: string;
|
|
1152
|
+
authorAvatar?: string;
|
|
1153
|
+
/**
|
|
1154
|
+
* Set by the server when an `app.bsky.embed.record` quote was already
|
|
1155
|
+
* resolved upstream (AppView path). Mutually exclusive with `quotedPostUri`.
|
|
1156
|
+
*/
|
|
1157
|
+
quotedPost?: QuotedPostResult;
|
|
1158
|
+
/**
|
|
1159
|
+
* Set by the server when an `app.bsky.embed.record` quote needs client-side
|
|
1160
|
+
* resolution (PDS path). Pass batches to {@link resolveQuotedPosts}.
|
|
1161
|
+
* Mutually exclusive with `quotedPost`.
|
|
1162
|
+
*/
|
|
1163
|
+
quotedPostUri?: string;
|
|
1164
|
+
/**
|
|
1165
|
+
* Reachability of the card's external destination as last checked by
|
|
1166
|
+
* sifa-api. Undefined for legacy responses; treat as 'unknown'.
|
|
1167
|
+
* See {@link ActivityItemLinkHealth}.
|
|
1168
|
+
*/
|
|
1169
|
+
linkHealth?: ActivityItemLinkHealth;
|
|
1170
|
+
/**
|
|
1171
|
+
* Content labels from `app.bsky.feed.defs#postView.labels`. Set by
|
|
1172
|
+
* sifa-api for Bluesky posts; undefined for other sources and legacy
|
|
1173
|
+
* responses. Pass items to {@link hasAdultContent} to decide whether to
|
|
1174
|
+
* gate media. See {@link ActivityLabel}.
|
|
1175
|
+
*/
|
|
1176
|
+
labels?: ActivityLabel[];
|
|
1177
|
+
/**
|
|
1178
|
+
* The owner has hidden this item from their profile. Only ever set on the
|
|
1179
|
+
* owner's own view of their feed -- every other surface omits hidden items
|
|
1180
|
+
* rather than flagging them -- so a card can offer an unhide in place.
|
|
1181
|
+
*/
|
|
1182
|
+
hidden?: boolean;
|
|
1183
|
+
}
|
|
1184
|
+
interface ActivityTeaserResponse {
|
|
1185
|
+
items: ActivityItem[];
|
|
1186
|
+
blueskyGated?: boolean;
|
|
1187
|
+
backfillPending?: boolean;
|
|
1188
|
+
failedApps?: string[];
|
|
1189
|
+
}
|
|
1190
|
+
interface ActivityFeedResponse {
|
|
1191
|
+
items: ActivityItem[];
|
|
1192
|
+
cursor: string | null;
|
|
1193
|
+
hasMore: boolean;
|
|
1194
|
+
availableCategories?: string[];
|
|
1195
|
+
blueskyGated?: boolean;
|
|
1196
|
+
failedApps?: string[];
|
|
1197
|
+
}
|
|
1198
|
+
/**
|
|
1199
|
+
* Per-day activity counts for a profile across all ATproto apps. Returns
|
|
1200
|
+
* `null` on any error so callers can render a graceful empty state.
|
|
1201
|
+
*/
|
|
1202
|
+
declare function fetchHeatmapData(config: SifaApiConfig, handleOrDid: string, days: number, options?: ApiFetchOptions): Promise<HeatmapResponse | null>;
|
|
1203
|
+
interface FetchActivityTeaserOptions extends ApiFetchOptions {
|
|
1204
|
+
/**
|
|
1205
|
+
* Pass the caller's `Cookie` header on Next.js RSC server-side calls.
|
|
1206
|
+
* Required for authenticated server fetches because `credentials: 'include'`
|
|
1207
|
+
* does not propagate browser cookies in RSC.
|
|
1208
|
+
*/
|
|
1209
|
+
cookieHeader?: string;
|
|
1210
|
+
}
|
|
1211
|
+
/**
|
|
1212
|
+
* Recent activity teaser for a profile (homepage-sized slice). Caps the
|
|
1213
|
+
* upstream wait so the SSR path cannot hang. Returns `null` on any error.
|
|
1214
|
+
*/
|
|
1215
|
+
declare function fetchActivityTeaser(config: SifaApiConfig, handleOrDid: string, options?: FetchActivityTeaserOptions): Promise<ActivityTeaserResponse | null>;
|
|
1216
|
+
interface FetchActivityFeedOptions extends ApiFetchOptions {
|
|
1217
|
+
category?: string;
|
|
1218
|
+
limit?: number;
|
|
1219
|
+
cursor?: string;
|
|
1220
|
+
cookieHeader?: string;
|
|
1221
|
+
}
|
|
1222
|
+
/**
|
|
1223
|
+
* Paginated activity feed for a profile. Always fresh (`cache: 'no-store'`).
|
|
1224
|
+
* Returns `null` on any error.
|
|
1225
|
+
*/
|
|
1226
|
+
declare function fetchActivityFeed(config: SifaApiConfig, handleOrDid: string, options?: FetchActivityFeedOptions): Promise<ActivityFeedResponse | null>;
|
|
1227
|
+
|
|
1042
1228
|
interface FollowProfile {
|
|
1043
1229
|
did: string;
|
|
1044
1230
|
handle: string;
|
|
@@ -1104,35 +1290,23 @@ interface FetchFollowListOptions extends ApiFetchOptions {
|
|
|
1104
1290
|
declare function getFollowers(config: SifaApiConfig, handle: string, opts?: FetchFollowListOptions): Promise<FollowListPage>;
|
|
1105
1291
|
/** Paginated list of who `handle` follows. */
|
|
1106
1292
|
declare function getFollowing(config: SifaApiConfig, handle: string, opts?: FetchFollowListOptions): Promise<FollowListPage>;
|
|
1107
|
-
/**
|
|
1108
|
-
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
1109
|
-
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
1110
|
-
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
1111
|
-
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
1112
|
-
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
1113
|
-
*/
|
|
1293
|
+
/** Options for {@link fetchFollowingFeed}. */
|
|
1114
1294
|
interface FetchFollowingFeedOptions extends ApiFetchOptions {
|
|
1115
|
-
cursor?: string;
|
|
1116
1295
|
limit?: number;
|
|
1117
|
-
/**
|
|
1118
|
-
* Comma-separated category filter (per sifa-api#673 TR10). Forwarded
|
|
1119
|
-
* as-is; the server validates allowed values.
|
|
1120
|
-
*/
|
|
1121
|
-
categories?: string[];
|
|
1296
|
+
/** Forward a `Cookie` header on Next.js RSC server-side calls (web). */
|
|
1122
1297
|
cookieHeader?: string;
|
|
1123
1298
|
}
|
|
1124
1299
|
/**
|
|
1125
|
-
*
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1300
|
+
* The viewer's cross-app following feed: what OTHER apps their connections use
|
|
1301
|
+
* (Tangled, WhiteWind, Smoke Signal, ...) — Bluesky is excluded server-side, as
|
|
1302
|
+
* it is the least interesting part and other apps already surface it.
|
|
1128
1303
|
*
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
* longer consumed. Scheduled for removal in next major bump.
|
|
1304
|
+
* Auth is identity-only server-side, so the NATIVE app supplies
|
|
1305
|
+
* `config.getAuthToken` to mint a service-auth Bearer, while WEB relies on its
|
|
1306
|
+
* session cookie (`credentials: 'include'`). Returns `null` on error. v1 is a
|
|
1307
|
+
* finite first page (no cursor yet).
|
|
1134
1308
|
*/
|
|
1135
|
-
declare function
|
|
1309
|
+
declare function fetchFollowingFeed(config: SifaApiConfig, opts?: FetchFollowingFeedOptions): Promise<ActivityFeedResponse | null>;
|
|
1136
1310
|
|
|
1137
1311
|
/**
|
|
1138
1312
|
* Options shared by the cursor-paginated follow-graph endpoints introduced in
|
|
@@ -1229,173 +1403,6 @@ interface AdminReviewQueues {
|
|
|
1229
1403
|
*/
|
|
1230
1404
|
declare function getAdminReviewQueues(config: SifaApiConfig, opts?: GetAdminReviewQueuesOptions): Promise<AdminReviewQueues>;
|
|
1231
1405
|
|
|
1232
|
-
interface QuotedPostAuthor {
|
|
1233
|
-
did: string;
|
|
1234
|
-
handle: string;
|
|
1235
|
-
displayName?: string;
|
|
1236
|
-
avatar?: string;
|
|
1237
|
-
}
|
|
1238
|
-
interface QuotedPostImage {
|
|
1239
|
-
thumb: string;
|
|
1240
|
-
fullsize: string;
|
|
1241
|
-
alt?: string;
|
|
1242
|
-
}
|
|
1243
|
-
interface QuotedPostView {
|
|
1244
|
-
uri: string;
|
|
1245
|
-
cid: string;
|
|
1246
|
-
author: QuotedPostAuthor;
|
|
1247
|
-
text: string;
|
|
1248
|
-
createdAt: string;
|
|
1249
|
-
images?: QuotedPostImage[];
|
|
1250
|
-
}
|
|
1251
|
-
type QuotedPostResult = {
|
|
1252
|
-
status: 'ok';
|
|
1253
|
-
record: QuotedPostView;
|
|
1254
|
-
} | {
|
|
1255
|
-
status: 'deleted';
|
|
1256
|
-
uri: string;
|
|
1257
|
-
} | {
|
|
1258
|
-
status: 'unavailable';
|
|
1259
|
-
uri: string;
|
|
1260
|
-
};
|
|
1261
|
-
/** Max URIs per request to `POST /api/quoted-posts/resolve` (mirrors server cap). */
|
|
1262
|
-
declare const QUOTED_POSTS_BATCH_MAX = 20;
|
|
1263
|
-
interface ResolveQuotedPostsOptions extends ApiFetchOptions {
|
|
1264
|
-
/** Cookie header for Next.js RSC server-side calls; ignored in browsers. */
|
|
1265
|
-
cookieHeader?: string;
|
|
1266
|
-
}
|
|
1267
|
-
/**
|
|
1268
|
-
* Resolve a batch of AT-URIs to their quoted-post snapshots via the Sifa AppView.
|
|
1269
|
-
*
|
|
1270
|
-
* Auto-deduplicates input URIs and splits requests into chunks of
|
|
1271
|
-
* {@link QUOTED_POSTS_BATCH_MAX} so callers can pass an arbitrary-length array.
|
|
1272
|
-
* Each chunk is fired in parallel. The server caches results in Valkey, so
|
|
1273
|
-
* repeated calls for the same URI are cheap.
|
|
1274
|
-
*
|
|
1275
|
-
* Returns a map of `uri -> QuotedPostResult`. URIs that fail (network error,
|
|
1276
|
-
* non-2xx, or the server omitting them) are absent from the map; the caller
|
|
1277
|
-
* should render a skeleton or tombstone for those.
|
|
1278
|
-
*/
|
|
1279
|
-
declare function resolveQuotedPosts(config: SifaApiConfig, uris: string[], options?: ResolveQuotedPostsOptions): Promise<Record<string, QuotedPostResult>>;
|
|
1280
|
-
|
|
1281
|
-
/**
|
|
1282
|
-
* Liveness of an activity card's destination, as reported by sifa-api's
|
|
1283
|
-
* `/api/activity` enrichment (see sifa-api `url-health-checker`). How liveness
|
|
1284
|
-
* is measured depends on the card's health strategy (see `resolveCardHealth`):
|
|
1285
|
-
* first-party permalinks (`record`) are checked by record existence on the PDS;
|
|
1286
|
-
* foreign/derived targets (`url`) by HTTP reachability (HEAD, then GET).
|
|
1287
|
-
*
|
|
1288
|
-
* ok -- record exists, or the URL returned 2xx/3xx
|
|
1289
|
-
* broken -- confirmed dead (record deleted, or >=2 consecutive 4xx / >=5 consecutive 5xx)
|
|
1290
|
-
* unverifiable -- 403/429, PDS unreachable, or network error; NOT dead
|
|
1291
|
-
* unknown -- newly seen, not yet checked
|
|
1292
|
-
*
|
|
1293
|
-
* Consumers should only suppress UI on `'broken'`. All other values
|
|
1294
|
-
* (including missing) mean "render normally".
|
|
1295
|
-
*/
|
|
1296
|
-
type ActivityItemLinkHealth = 'ok' | 'broken' | 'unverifiable' | 'unknown';
|
|
1297
|
-
interface HeatmapDay {
|
|
1298
|
-
date: string;
|
|
1299
|
-
total: number;
|
|
1300
|
-
apps: {
|
|
1301
|
-
appId: string;
|
|
1302
|
-
count: number;
|
|
1303
|
-
}[];
|
|
1304
|
-
}
|
|
1305
|
-
interface HeatmapResponse {
|
|
1306
|
-
days: HeatmapDay[];
|
|
1307
|
-
appTotals: {
|
|
1308
|
-
appId: string;
|
|
1309
|
-
appName: string;
|
|
1310
|
-
total: number;
|
|
1311
|
-
}[];
|
|
1312
|
-
thresholds: [number, number, number, number];
|
|
1313
|
-
}
|
|
1314
|
-
interface ActivityItem {
|
|
1315
|
-
uri: string;
|
|
1316
|
-
cid: string;
|
|
1317
|
-
collection: string;
|
|
1318
|
-
rkey: string;
|
|
1319
|
-
record: Record<string, unknown>;
|
|
1320
|
-
appId: string;
|
|
1321
|
-
appName: string;
|
|
1322
|
-
category: string;
|
|
1323
|
-
indexedAt: string;
|
|
1324
|
-
/**
|
|
1325
|
-
* Set by the server when an `app.bsky.embed.record` quote was already
|
|
1326
|
-
* resolved upstream (AppView path). Mutually exclusive with `quotedPostUri`.
|
|
1327
|
-
*/
|
|
1328
|
-
quotedPost?: QuotedPostResult;
|
|
1329
|
-
/**
|
|
1330
|
-
* Set by the server when an `app.bsky.embed.record` quote needs client-side
|
|
1331
|
-
* resolution (PDS path). Pass batches to {@link resolveQuotedPosts}.
|
|
1332
|
-
* Mutually exclusive with `quotedPost`.
|
|
1333
|
-
*/
|
|
1334
|
-
quotedPostUri?: string;
|
|
1335
|
-
/**
|
|
1336
|
-
* Reachability of the card's external destination as last checked by
|
|
1337
|
-
* sifa-api. Undefined for legacy responses; treat as 'unknown'.
|
|
1338
|
-
* See {@link ActivityItemLinkHealth}.
|
|
1339
|
-
*/
|
|
1340
|
-
linkHealth?: ActivityItemLinkHealth;
|
|
1341
|
-
/**
|
|
1342
|
-
* Content labels from `app.bsky.feed.defs#postView.labels`. Set by
|
|
1343
|
-
* sifa-api for Bluesky posts; undefined for other sources and legacy
|
|
1344
|
-
* responses. Pass items to {@link hasAdultContent} to decide whether to
|
|
1345
|
-
* gate media. See {@link ActivityLabel}.
|
|
1346
|
-
*/
|
|
1347
|
-
labels?: ActivityLabel[];
|
|
1348
|
-
/**
|
|
1349
|
-
* The owner has hidden this item from their profile. Only ever set on the
|
|
1350
|
-
* owner's own view of their feed -- every other surface omits hidden items
|
|
1351
|
-
* rather than flagging them -- so a card can offer an unhide in place.
|
|
1352
|
-
*/
|
|
1353
|
-
hidden?: boolean;
|
|
1354
|
-
}
|
|
1355
|
-
interface ActivityTeaserResponse {
|
|
1356
|
-
items: ActivityItem[];
|
|
1357
|
-
blueskyGated?: boolean;
|
|
1358
|
-
backfillPending?: boolean;
|
|
1359
|
-
failedApps?: string[];
|
|
1360
|
-
}
|
|
1361
|
-
interface ActivityFeedResponse {
|
|
1362
|
-
items: ActivityItem[];
|
|
1363
|
-
cursor: string | null;
|
|
1364
|
-
hasMore: boolean;
|
|
1365
|
-
availableCategories?: string[];
|
|
1366
|
-
blueskyGated?: boolean;
|
|
1367
|
-
failedApps?: string[];
|
|
1368
|
-
}
|
|
1369
|
-
/**
|
|
1370
|
-
* Per-day activity counts for a profile across all ATproto apps. Returns
|
|
1371
|
-
* `null` on any error so callers can render a graceful empty state.
|
|
1372
|
-
*/
|
|
1373
|
-
declare function fetchHeatmapData(config: SifaApiConfig, handleOrDid: string, days: number, options?: ApiFetchOptions): Promise<HeatmapResponse | null>;
|
|
1374
|
-
interface FetchActivityTeaserOptions extends ApiFetchOptions {
|
|
1375
|
-
/**
|
|
1376
|
-
* Pass the caller's `Cookie` header on Next.js RSC server-side calls.
|
|
1377
|
-
* Required for authenticated server fetches because `credentials: 'include'`
|
|
1378
|
-
* does not propagate browser cookies in RSC.
|
|
1379
|
-
*/
|
|
1380
|
-
cookieHeader?: string;
|
|
1381
|
-
}
|
|
1382
|
-
/**
|
|
1383
|
-
* Recent activity teaser for a profile (homepage-sized slice). Caps the
|
|
1384
|
-
* upstream wait so the SSR path cannot hang. Returns `null` on any error.
|
|
1385
|
-
*/
|
|
1386
|
-
declare function fetchActivityTeaser(config: SifaApiConfig, handleOrDid: string, options?: FetchActivityTeaserOptions): Promise<ActivityTeaserResponse | null>;
|
|
1387
|
-
interface FetchActivityFeedOptions extends ApiFetchOptions {
|
|
1388
|
-
category?: string;
|
|
1389
|
-
limit?: number;
|
|
1390
|
-
cursor?: string;
|
|
1391
|
-
cookieHeader?: string;
|
|
1392
|
-
}
|
|
1393
|
-
/**
|
|
1394
|
-
* Paginated activity feed for a profile. Always fresh (`cache: 'no-store'`).
|
|
1395
|
-
* Returns `null` on any error.
|
|
1396
|
-
*/
|
|
1397
|
-
declare function fetchActivityFeed(config: SifaApiConfig, handleOrDid: string, options?: FetchActivityFeedOptions): Promise<ActivityFeedResponse | null>;
|
|
1398
|
-
|
|
1399
1406
|
/**
|
|
1400
1407
|
* A single merged pull request ingested from GitHub, as served by sifa-api's
|
|
1401
1408
|
* `GET /api/me/github/pull-requests`. Mirrors the `github_contributions` row.
|
|
@@ -1925,4 +1932,4 @@ declare function addOrgNotificationEmail(config: SifaApiConfig, body: OrgNotific
|
|
|
1925
1932
|
*/
|
|
1926
1933
|
declare function removeOrgNotificationEmail(config: SifaApiConfig, body: OrgNotificationEmailRequestInput, options?: Omit<ApiFetchOptions, 'method' | 'body'>): Promise<WriteResult & Partial<OrgNotificationEmailRemoveResult>>;
|
|
1927
1934
|
|
|
1928
|
-
export { HIDDEN_ITEM_SOURCES as $, type ApiFetchOptions as A, type BulkHideProfileItemInput as B, type CreateResult as C, type DeleteAccountResult as D, type EndorsementInput as E, type FeatureAllowlistResponse as F, type FetchFollowingFeedOptions as G, type FetchHiddenActivityItemsOptions as H, type FetchHiddenAppsOptions as I, type FetchInboxCountsOptions as J, type FetchMyGithubPullRequestsOptions as K, type FetchMyRoadmapVotesOptions as L, type FetchProfileCompletenessOptions as M, type FetchReactionStatusOptions as N, type FetchSuggestionsOptions as O, type FetchUnlinkedPositionsOptions as P, type FilterOptions as Q, type FollowListPage as R, type SifaApiConfig as S, type FollowProfile as T, type FollowProfilePageResponse as U, type FollowUserResult as V, type WriteResult as W, type FollowingResponse as X, type GetAdminReviewQueuesOptions as Y, type GithubPullRequest as Z, type GivenConfirmation as _, type ConfirmEndorsementInput as a, type UploadAvatarResult as a$, HIDDEN_ITEM_TYPES as a0, type HeatmapDay as a1, type HeatmapResponse as a2, type HiddenActivityItem as a3, type HiddenApp as a4, type HiddenItemSource as a5, type HiddenItemType as a6, type HideActivityItemInput as a7, type HideProfileItemInput as a8, type InboxCounts as a9, type QuotedPostView as aA, type ReactionError as aB, type ReactionResult as aC, type ReactionStatus as aD, type RefreshOrcidPublicationsResult as aE, type RefreshPdsResult as aF, type RepoDeleteInput as aG, type ResetProfileResult as aH, type ResolveQuotedPostsOptions as aI, type RoadmapVoteError as aJ, type RoadmapVoteResult as aK, type RoadmapVoter as aL, type RoadmapVotesResponse as aM, type SearchFilters as aN, type SearchResponse as aO, type SifaQueryKey as aP, type SimilarProfile as aQ, type SkillSearchResult as aR, type StatsResponse as aS, type SubCategoryBulkResult as aT, type SuggestionProfile as aU, type SuggestionsResponse as aV, type UnhideActivityItemInput as aW, type UnlinkedPosition as aX, type UnlinkedPositionsResult as aY, type UpdateProfileOverrideInput as aZ, type UpdateProfileSelfInput as a_, type ListFeatureAllowlistOptions as aa, type MyGithubPullRequestsResponse as ab, type OrgClaimBinding as ac, type OrgClaimResult as ad, type OrgDomainChallengeResult as ae, type OrgDomainVerifyResult as af, type OrgNotificationEmailAddResult as ag, type OrgNotificationEmailRemoveResult as ah, type OrgProfileEcho as ai, type OrgProfileUpdateResult as aj, PROFILE_COMPLETENESS_SIGNALS as ak, type PdsWipeOutcome as al, type PendingConfirmation as am, type PendingConfirmationsPage as an, type PrimarySection as ao, type ProfileCompleteness as ap, type ProfileCompletenessSignal as aq, type ProfileIndustryInput as ar, type ProfileLocationAddress as as, type ProfileLocationInput as at, type ProfileSearchResult as au, type ProfileSelfLocation as av, QUOTED_POSTS_BATCH_MAX as aw, type QuotedPostAuthor as ax, type QuotedPostImage as ay, type QuotedPostResult as az, type ConfirmEndorsementResult as b,
|
|
1935
|
+
export { HIDDEN_ITEM_SOURCES as $, type ApiFetchOptions as A, type BulkHideProfileItemInput as B, type CreateResult as C, type DeleteAccountResult as D, type EndorsementInput as E, type FeatureAllowlistResponse as F, type FetchFollowingFeedOptions as G, type FetchHiddenActivityItemsOptions as H, type FetchHiddenAppsOptions as I, type FetchInboxCountsOptions as J, type FetchMyGithubPullRequestsOptions as K, type FetchMyRoadmapVotesOptions as L, type FetchProfileCompletenessOptions as M, type FetchReactionStatusOptions as N, type FetchSuggestionsOptions as O, type FetchUnlinkedPositionsOptions as P, type FilterOptions as Q, type FollowListPage as R, type SifaApiConfig as S, type FollowProfile as T, type FollowProfilePageResponse as U, type FollowUserResult as V, type WriteResult as W, type FollowingResponse as X, type GetAdminReviewQueuesOptions as Y, type GithubPullRequest as Z, type GivenConfirmation as _, type ConfirmEndorsementInput as a, type UploadAvatarResult as a$, HIDDEN_ITEM_TYPES as a0, type HeatmapDay as a1, type HeatmapResponse as a2, type HiddenActivityItem as a3, type HiddenApp as a4, type HiddenItemSource as a5, type HiddenItemType as a6, type HideActivityItemInput as a7, type HideProfileItemInput as a8, type InboxCounts as a9, type QuotedPostView as aA, type ReactionError as aB, type ReactionResult as aC, type ReactionStatus as aD, type RefreshOrcidPublicationsResult as aE, type RefreshPdsResult as aF, type RepoDeleteInput as aG, type ResetProfileResult as aH, type ResolveQuotedPostsOptions as aI, type RoadmapVoteError as aJ, type RoadmapVoteResult as aK, type RoadmapVoter as aL, type RoadmapVotesResponse as aM, type SearchFilters as aN, type SearchResponse as aO, type SifaQueryKey as aP, type SimilarProfile as aQ, type SkillSearchResult as aR, type StatsResponse as aS, type SubCategoryBulkResult as aT, type SuggestionProfile as aU, type SuggestionsResponse as aV, type UnhideActivityItemInput as aW, type UnlinkedPosition as aX, type UnlinkedPositionsResult as aY, type UpdateProfileOverrideInput as aZ, type UpdateProfileSelfInput as a_, type ListFeatureAllowlistOptions as aa, type MyGithubPullRequestsResponse as ab, type OrgClaimBinding as ac, type OrgClaimResult as ad, type OrgDomainChallengeResult as ae, type OrgDomainVerifyResult as af, type OrgNotificationEmailAddResult as ag, type OrgNotificationEmailRemoveResult as ah, type OrgProfileEcho as ai, type OrgProfileUpdateResult as aj, PROFILE_COMPLETENESS_SIGNALS as ak, type PdsWipeOutcome as al, type PendingConfirmation as am, type PendingConfirmationsPage as an, type PrimarySection as ao, type ProfileCompleteness as ap, type ProfileCompletenessSignal as aq, type ProfileIndustryInput as ar, type ProfileLocationAddress as as, type ProfileLocationInput as at, type ProfileSearchResult as au, type ProfileSelfLocation as av, QUOTED_POSTS_BATCH_MAX as aw, type QuotedPostAuthor as ax, type QuotedPostImage as ay, type QuotedPostResult as az, type ConfirmEndorsementResult as b, getBlueskySuggestions as b$, type UploadPronunciationAudioResult as b0, type VerifyExternalAccountResult as b1, type WipePreview as b2, addFeatureAllowlist as b3, addOrgNotificationEmail as b4, apiFetch as b5, apiFetchOrNull as b6, apiWrite as b7, apiWriteCreate as b8, bulkHideProfileItems as b9, fetchExternalAccounts as bA, fetchFeaturedProfile as bB, fetchFollowing as bC, fetchFollowingFeed as bD, fetchGivenConfirmations as bE, fetchHeatmapData as bF, fetchHiddenActivityItems as bG, fetchHiddenApps as bH, fetchInboxCounts as bI, fetchMyGithubPullRequests as bJ, fetchMyRoadmapVotes as bK, fetchPendingConfirmations as bL, fetchProfileCompleteness as bM, fetchReactionStatus as bN, fetchRepoInventory as bO, fetchRoadmapVotes as bP, fetchSearchFilters as bQ, fetchSearchProfiles as bR, fetchSimilarProfiles as bS, fetchSkillSuggestions as bT, fetchStats as bU, fetchSuggestionCount as bV, fetchSuggestions as bW, fetchUnlinkedPositions as bX, fetchWipePreview as bY, followUser as bZ, getAdminReviewQueues as b_, bulkHideStandardPublications as ba, bulkUnhideProfileItems as bb, bulkUnhideStandardPublications as bc, castRoadmapVote as bd, checkAppAccount as be, confirmEndorsement as bf, createConfirmation as bg, createEndorsement as bh, createExternalAccount as bi, createProfileLocation as bj, createReaction as bk, createSkill as bl, deleteAccount as bm, deleteAvatarOverride as bn, deleteExternalAccount as bo, deleteNamePronunciationAudio as bp, deleteProfileLocation as bq, deleteReaction as br, deleteRepoRecords as bs, deleteSkill as bt, dismissConfirmation as bu, dismissUnlinkedPosition as bv, fetchAccounts as bw, fetchActivityFeed as bx, fetchActivityTeaser as by, fetchAppsRegistry as bz, type AccountCheckResult as c, getFollowers as c0, getFollowing as c1, getMutuals as c2, hideActivityItem as c3, hideOrcidPublication as c4, hideProfileItem as c5, hideSifaPublication as c6, hideStandardPublication as c7, listFeatureAllowlist as c8, refreshOrcidPublications as c9, updateProfileSelf as cA, updateSkill as cB, updateSkillSubCategories as cC, uploadAvatar as cD, uploadNamePronunciationAudio as cE, verifyExternalAccount as cF, verifyOrgDomain as cG, type CompanySearchFilters as cH, type CompanySearchResponse as cI, type CompanySearchResult as cJ, fetchSearchCompanies as cK, refreshPds as ca, removeFeatureAllowlist as cb, removeOrgNotificationEmail as cc, repoExportUrl as cd, requestOrgDomainChallenge as ce, resetProfile as cf, resolveQuotedPosts as cg, retractRoadmapVote as ch, revokeConfirmation as ci, searchSkills as cj, setExternalAccountPrimary as ck, setSectionPrimary as cl, submitOrgClaim as cm, switchAccount as cn, unfollowUser as co, unhideActivityItem as cp, unhideOrcidPublication as cq, unhideProfileItem as cr, unhideSifaPublication as cs, unhideStandardPublication as ct, unsetExternalAccountPrimary as cu, unsetSectionPrimary as cv, updateExternalAccount as cw, updateOrgProfile as cx, updateProfileLocation as cy, updateProfileOverride as cz, type AccountSummary as d, type ActivityFeedResponse as e, type ActivityItem as f, type ActivityItemLinkHealth as g, type ActivityTeaserResponse as h, type AdminReviewQueues as i, ApiError as j, type AppRegistryEntry as k, type CastRoadmapVoteResult as l, type CheckAppAccountOptions as m, type ConfirmationInput as n, type ConfirmationSubjectInput as o, type CreateExternalAccountResult as p, type DismissUnlinkedPositionInput as q, type ExternalAccountInput as r, sifaQueryKeys as s, type FeaturedProfile as t, type FetchAccountsOptions as u, type FetchActivityFeedOptions as v, type FetchActivityTeaserOptions as w, type FetchConfirmationsOptions as x, type FetchFollowListOptions as y, type FetchFollowProfilePageOptions as z };
|
|
@@ -216,6 +216,195 @@ declare function makeGraphFollowRecordSchema(followerDid: string): z.ZodObject<{
|
|
|
216
216
|
note: z.ZodOptional<z.ZodString>;
|
|
217
217
|
}, z.core.$strip>;
|
|
218
218
|
|
|
219
|
+
/**
|
|
220
|
+
* Feed item from `GET /api/following/feed`. Discriminated on `source`:
|
|
221
|
+
*
|
|
222
|
+
* - `sifa`: a Sifa-native event (e.g. profile update, endorsement).
|
|
223
|
+
* - `atmosphere`: a curated creation event from another ATproto app
|
|
224
|
+
* (Barazo post, etc.). Payload is the hydrated `app.bsky.embed.*#view`
|
|
225
|
+
* shape, NOT the raw record (per memory `sifa-hydrated-view-embed-types`).
|
|
226
|
+
*
|
|
227
|
+
* Both variants share `actor`, `indexedAt`, and `id` (the materialized
|
|
228
|
+
* `feed_events.id` row identifier, used in the cursor).
|
|
229
|
+
*/
|
|
230
|
+
declare const FeedActorSchema: z.ZodObject<{
|
|
231
|
+
did: z.ZodString;
|
|
232
|
+
handle: z.ZodString;
|
|
233
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
234
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
235
|
+
}, z.core.$strip>;
|
|
236
|
+
type FeedActor = z.infer<typeof FeedActorSchema>;
|
|
237
|
+
/**
|
|
238
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
239
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
240
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
241
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
242
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
243
|
+
*/
|
|
244
|
+
declare const SifaFeedItemSchema: z.ZodObject<{
|
|
245
|
+
id: z.ZodString;
|
|
246
|
+
actor: z.ZodObject<{
|
|
247
|
+
did: z.ZodString;
|
|
248
|
+
handle: z.ZodString;
|
|
249
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
250
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
251
|
+
}, z.core.$strip>;
|
|
252
|
+
indexedAt: z.ZodString;
|
|
253
|
+
eventType: z.ZodString;
|
|
254
|
+
source: z.ZodLiteral<"sifa">;
|
|
255
|
+
appId: z.ZodOptional<z.ZodLiteral<"sifa">>;
|
|
256
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
257
|
+
}, z.core.$strip>;
|
|
258
|
+
/**
|
|
259
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
260
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
261
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
262
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
263
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
264
|
+
*/
|
|
265
|
+
type SifaFeedItem = z.infer<typeof SifaFeedItemSchema>;
|
|
266
|
+
/**
|
|
267
|
+
* ATmosphere feed item. `payload` is intentionally permissive: it carries
|
|
268
|
+
* a hydrated `app.bsky.embed.*#view` shape that varies by source app. The
|
|
269
|
+
* AppView resolves the hydration; clients render via the existing
|
|
270
|
+
* embed-view union (mirrors `sifa-web/src/components/stream/`).
|
|
271
|
+
*
|
|
272
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
273
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
274
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
275
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
276
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
277
|
+
*/
|
|
278
|
+
declare const AtmosphereFeedItemSchema: z.ZodObject<{
|
|
279
|
+
id: z.ZodString;
|
|
280
|
+
actor: z.ZodObject<{
|
|
281
|
+
did: z.ZodString;
|
|
282
|
+
handle: z.ZodString;
|
|
283
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
284
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
285
|
+
}, z.core.$strip>;
|
|
286
|
+
indexedAt: z.ZodString;
|
|
287
|
+
eventType: z.ZodString;
|
|
288
|
+
source: z.ZodLiteral<"atmosphere">;
|
|
289
|
+
appId: z.ZodString;
|
|
290
|
+
uri: z.ZodOptional<z.ZodString>;
|
|
291
|
+
cid: z.ZodOptional<z.ZodString>;
|
|
292
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
293
|
+
}, z.core.$strip>;
|
|
294
|
+
/**
|
|
295
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
296
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
297
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
298
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
299
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
300
|
+
*/
|
|
301
|
+
type AtmosphereFeedItem = z.infer<typeof AtmosphereFeedItemSchema>;
|
|
302
|
+
/**
|
|
303
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
304
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
305
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
306
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
307
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
308
|
+
*/
|
|
309
|
+
declare const FollowFeedItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
310
|
+
id: z.ZodString;
|
|
311
|
+
actor: z.ZodObject<{
|
|
312
|
+
did: z.ZodString;
|
|
313
|
+
handle: z.ZodString;
|
|
314
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
315
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
316
|
+
}, z.core.$strip>;
|
|
317
|
+
indexedAt: z.ZodString;
|
|
318
|
+
eventType: z.ZodString;
|
|
319
|
+
source: z.ZodLiteral<"sifa">;
|
|
320
|
+
appId: z.ZodOptional<z.ZodLiteral<"sifa">>;
|
|
321
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
322
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
323
|
+
id: z.ZodString;
|
|
324
|
+
actor: z.ZodObject<{
|
|
325
|
+
did: z.ZodString;
|
|
326
|
+
handle: z.ZodString;
|
|
327
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
328
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
329
|
+
}, z.core.$strip>;
|
|
330
|
+
indexedAt: z.ZodString;
|
|
331
|
+
eventType: z.ZodString;
|
|
332
|
+
source: z.ZodLiteral<"atmosphere">;
|
|
333
|
+
appId: z.ZodString;
|
|
334
|
+
uri: z.ZodOptional<z.ZodString>;
|
|
335
|
+
cid: z.ZodOptional<z.ZodString>;
|
|
336
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
337
|
+
}, z.core.$strip>], "source">;
|
|
338
|
+
/**
|
|
339
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
340
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
341
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
342
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
343
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
344
|
+
*/
|
|
345
|
+
type FollowFeedItem = z.infer<typeof FollowFeedItemSchema>;
|
|
346
|
+
/**
|
|
347
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
348
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
349
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
350
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
351
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
352
|
+
*/
|
|
353
|
+
declare const FollowFeedPageSchema: z.ZodObject<{
|
|
354
|
+
items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
355
|
+
id: z.ZodString;
|
|
356
|
+
actor: z.ZodObject<{
|
|
357
|
+
did: z.ZodString;
|
|
358
|
+
handle: z.ZodString;
|
|
359
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
360
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
361
|
+
}, z.core.$strip>;
|
|
362
|
+
indexedAt: z.ZodString;
|
|
363
|
+
eventType: z.ZodString;
|
|
364
|
+
source: z.ZodLiteral<"sifa">;
|
|
365
|
+
appId: z.ZodOptional<z.ZodLiteral<"sifa">>;
|
|
366
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
367
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
368
|
+
id: z.ZodString;
|
|
369
|
+
actor: z.ZodObject<{
|
|
370
|
+
did: z.ZodString;
|
|
371
|
+
handle: z.ZodString;
|
|
372
|
+
displayName: z.ZodOptional<z.ZodString>;
|
|
373
|
+
avatarUrl: z.ZodOptional<z.ZodString>;
|
|
374
|
+
}, z.core.$strip>;
|
|
375
|
+
indexedAt: z.ZodString;
|
|
376
|
+
eventType: z.ZodString;
|
|
377
|
+
source: z.ZodLiteral<"atmosphere">;
|
|
378
|
+
appId: z.ZodString;
|
|
379
|
+
uri: z.ZodOptional<z.ZodString>;
|
|
380
|
+
cid: z.ZodOptional<z.ZodString>;
|
|
381
|
+
payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
382
|
+
}, z.core.$strip>], "source">>;
|
|
383
|
+
cursor: z.ZodNullable<z.ZodString>;
|
|
384
|
+
}, z.core.$strip>;
|
|
385
|
+
/**
|
|
386
|
+
* @deprecated The `/api/following/feed` surface was reverted (sifa-api#674).
|
|
387
|
+
* Per `decisions/activity-data-strategy.md` the Sifa Timeline + ATmosphere
|
|
388
|
+
* Stream are two distinct surfaces with different data paths (Barazo API
|
|
389
|
+
* for Timeline, live PDS reads + Valkey for Stream). These collapsed feed
|
|
390
|
+
* types are no longer consumed. Scheduled for removal in next major bump.
|
|
391
|
+
*/
|
|
392
|
+
type FollowFeedPage = z.infer<typeof FollowFeedPageSchema>;
|
|
393
|
+
/**
|
|
394
|
+
* Composite feed cursor `(indexedAt DESC, source, id)`. Encoded as a
|
|
395
|
+
* URL-safe base64 string so it survives `URLSearchParams` round-trips
|
|
396
|
+
* without further encoding. Decoupling encode/decode from the API call
|
|
397
|
+
* lets consumers persist cursors (e.g. for "jump-back-here" UX) and
|
|
398
|
+
* lets us unit-test the format.
|
|
399
|
+
*/
|
|
400
|
+
interface FeedCursor {
|
|
401
|
+
indexedAt: string;
|
|
402
|
+
source: 'sifa' | 'atmosphere';
|
|
403
|
+
id: string;
|
|
404
|
+
}
|
|
405
|
+
declare function encodeFeedCursor(cursor: FeedCursor): string;
|
|
406
|
+
declare function decodeFeedCursor(encoded: string): FeedCursor;
|
|
407
|
+
|
|
219
408
|
/** Zod schema for `id.sifa.profile.certification` records. */
|
|
220
409
|
declare const ProfileCertificationRecordSchema: z.ZodObject<{
|
|
221
410
|
name: z.ZodString;
|
|
@@ -608,4 +797,4 @@ declare const ProfileInvestmentRecordSchema: z.ZodObject<{
|
|
|
608
797
|
}, z.core.$loose>;
|
|
609
798
|
type ProfileInvestmentRecord = z.infer<typeof ProfileInvestmentRecordSchema>;
|
|
610
799
|
|
|
611
|
-
export {
|
|
800
|
+
export { type ProfilePublicationRecord as $, type ArtifactLink as A, type BlobRef as B, type ProfileCourseRecord as C, ProfileCourseRecordSchema as D, type EndorsementConfirmationRecord as E, type FeedActor as F, type GraphFollowRecord as G, type ProfileEducationRecord as H, InvestmentAmountSchema as I, ProfileEducationRecordSchema as J, type ProfileExternalAccountRecord as K, ProfileExternalAccountRecordSchema as L, type ProfileHonorRecord as M, ProfileHonorRecordSchema as N, type OrgProfileRecord as O, type PresentationDuration as P, ProfileInvestmentRecordSchema as Q, type ProfileInvolvementRecord as R, ProfileInvolvementRecordSchema as S, type ProfileLanguageRecord as T, ProfileLanguageRecordSchema as U, type ProfilePositionRecord as V, ProfilePositionRecordSchema as W, ProfilePresentationDeliveryRecordSchema as X, ProfilePresentationRecordSchema as Y, type ProfileProjectRecord as Z, ProfileProjectRecordSchema as _, type ProfilePresentationDeliveryRecord as a, ProfilePublicationRecordSchema as a0, type ProfileSelfRecord as a1, ProfileSelfRecordSchema as a2, type ProfileSkillRecord as a3, ProfileSkillRecordSchema as a4, type ProfileVolunteeringRecord as a5, ProfileVolunteeringRecordSchema as a6, type PublicationAuthor as a7, PublicationAuthorSchema as a8, type SifaFeedItem as a9, SifaFeedItemSchema as aa, decodeFeedCursor as ab, encodeFeedCursor as ac, makeGraphFollowRecordSchema as ad, type ProfileInvestmentRecord as ae, type ProfilePresentationRecord as b, ArtifactLinkSchema as c, type AtmosphereFeedItem as d, AtmosphereFeedItemSchema as e, BlobRefSchema as f, EndorsementConfirmationRecordSchema as g, type EndorsementRecord as h, EndorsementRecordSchema as i, FeedActorSchema as j, type FeedCursor as k, type FollowFeedItem as l, FollowFeedItemSchema as m, type FollowFeedPage as n, FollowFeedPageSchema as o, GraphFollowRecordSchema as p, type OrgEmploymentAttestationRecord as q, OrgEmploymentAttestationRecordSchema as r, OrgProfileRecordSchema as s, PROFILE_INVESTMENT_NSID as t, PROFILE_INVOLVEMENT_NSID as u, PresentationDurationSchema as v, type PresentationLink as w, PresentationLinkSchema as x, type ProfileCertificationRecord as y, ProfileCertificationRecordSchema as z };
|