@atproto/api 0.24.3 → 0.26.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.
Files changed (34) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/client/index.d.ts +28 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +35 -0
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/lexicons.d.ts +498 -28
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +253 -14
  9. package/dist/client/lexicons.js.map +1 -1
  10. package/dist/client/types/app/bsky/actor/defs.d.ts +16 -0
  11. package/dist/client/types/app/bsky/actor/defs.d.ts.map +1 -1
  12. package/dist/client/types/app/bsky/actor/defs.js +7 -0
  13. package/dist/client/types/app/bsky/actor/defs.js.map +1 -1
  14. package/dist/client/types/app/bsky/actor/link.d.ts +24 -0
  15. package/dist/client/types/app/bsky/actor/link.d.ts.map +1 -0
  16. package/dist/client/types/app/bsky/actor/link.js +18 -0
  17. package/dist/client/types/app/bsky/actor/link.js.map +1 -0
  18. package/dist/client/types/app/bsky/actor/profile.d.ts +2 -0
  19. package/dist/client/types/app/bsky/actor/profile.d.ts.map +1 -1
  20. package/dist/client/types/app/bsky/actor/profile.js.map +1 -1
  21. package/dist/client/types/app/bsky/embed/getEmbedExternalView.d.ts +11 -4
  22. package/dist/client/types/app/bsky/embed/getEmbedExternalView.d.ts.map +1 -1
  23. package/dist/client/types/app/bsky/embed/getEmbedExternalView.js.map +1 -1
  24. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts +49 -2
  25. package/dist/client/types/app/bsky/notification/getGroupedNotifications.d.ts.map +1 -1
  26. package/dist/client/types/app/bsky/notification/getGroupedNotifications.js +42 -0
  27. package/dist/client/types/app/bsky/notification/getGroupedNotifications.js.map +1 -1
  28. package/dist/client/types/tools/ozone/inbox/defs.d.ts +7 -1
  29. package/dist/client/types/tools/ozone/inbox/defs.d.ts.map +1 -1
  30. package/dist/client/types/tools/ozone/inbox/defs.js.map +1 -1
  31. package/dist/client/types/tools/ozone/inbox/putNotificationPreferences.d.ts +6 -1
  32. package/dist/client/types/tools/ozone/inbox/putNotificationPreferences.d.ts.map +1 -1
  33. package/dist/client/types/tools/ozone/inbox/putNotificationPreferences.js.map +1 -1
  34. package/package.json +2 -2
@@ -228,6 +228,14 @@ export declare const schemaDict: {
228
228
  readonly type: 'ref';
229
229
  readonly ref: 'lex:com.atproto.repo.strongRef';
230
230
  };
231
+ readonly links: {
232
+ readonly type: 'array';
233
+ readonly description: "The profile's links, in display order. Links that were taken down or don't resolve are left out.";
234
+ readonly items: {
235
+ readonly type: 'ref';
236
+ readonly ref: 'lex:app.bsky.actor.defs#profileLinkView';
237
+ };
238
+ };
231
239
  readonly verification: {
232
240
  readonly type: 'ref';
233
241
  readonly ref: 'lex:app.bsky.actor.defs#verificationState';
@@ -299,6 +307,43 @@ export declare const schemaDict: {
299
307
  };
300
308
  };
301
309
  };
310
+ readonly profileLinkView: {
311
+ readonly type: 'object';
312
+ readonly required: ["uri", "cid", "url"];
313
+ readonly properties: {
314
+ readonly uri: {
315
+ readonly type: 'string';
316
+ readonly format: 'at-uri';
317
+ readonly description: 'The app.bsky.actor.link record, e.g. for reporting the link.';
318
+ };
319
+ readonly cid: {
320
+ readonly type: 'string';
321
+ readonly format: 'cid';
322
+ };
323
+ readonly url: {
324
+ readonly type: 'string';
325
+ readonly format: 'uri';
326
+ readonly description: 'The link destination.';
327
+ };
328
+ readonly title: {
329
+ readonly type: 'string';
330
+ readonly maxGraphemes: 40;
331
+ readonly maxLength: 320;
332
+ };
333
+ readonly icon: {
334
+ readonly type: 'string';
335
+ readonly format: 'uri';
336
+ readonly description: "Image URL for the destination site's icon.";
337
+ };
338
+ readonly labels: {
339
+ readonly type: 'array';
340
+ readonly items: {
341
+ readonly type: 'ref';
342
+ readonly ref: 'lex:com.atproto.label.defs#label';
343
+ };
344
+ };
345
+ };
346
+ };
302
347
  readonly profileAssociatedActivitySubscription: {
303
348
  readonly type: 'object';
304
349
  readonly required: ["allowSubscriptions"];
@@ -1030,6 +1075,49 @@ export declare const schemaDict: {
1030
1075
  };
1031
1076
  };
1032
1077
  };
1078
+ readonly AppBskyActorLink: {
1079
+ readonly lexicon: 1;
1080
+ readonly id: 'app.bsky.actor.link';
1081
+ readonly defs: {
1082
+ readonly main: {
1083
+ readonly type: 'record';
1084
+ readonly description: "A link shown on the account's profile. The profile record's links field sets which links are shown, and in what order.";
1085
+ readonly key: 'tid';
1086
+ readonly record: {
1087
+ readonly type: 'object';
1088
+ readonly required: ["url", "createdAt"];
1089
+ readonly properties: {
1090
+ readonly url: {
1091
+ readonly type: 'string';
1092
+ readonly format: 'uri';
1093
+ readonly description: 'The link destination, an https URL.';
1094
+ };
1095
+ readonly title: {
1096
+ readonly type: 'string';
1097
+ readonly description: "Optional label for the link. Clients can fall back to the destination's domain.";
1098
+ readonly maxGraphemes: 40;
1099
+ readonly maxLength: 320;
1100
+ };
1101
+ readonly icon: {
1102
+ readonly type: 'blob';
1103
+ readonly description: "The destination site's icon, uploaded when the link is saved.";
1104
+ readonly accept: ["image/png", "image/jpeg", "image/webp"];
1105
+ readonly maxSize: 100000;
1106
+ };
1107
+ readonly createdAt: {
1108
+ readonly type: 'string';
1109
+ readonly format: 'datetime';
1110
+ };
1111
+ readonly labels: {
1112
+ readonly type: 'union';
1113
+ readonly description: 'Self-label values for this link.';
1114
+ readonly refs: ["lex:com.atproto.label.defs#selfLabels"];
1115
+ };
1116
+ };
1117
+ };
1118
+ };
1119
+ };
1120
+ };
1033
1121
  readonly AppBskyActorProfile: {
1034
1122
  readonly lexicon: 1;
1035
1123
  readonly id: 'app.bsky.actor.profile';
@@ -1087,6 +1175,15 @@ export declare const schemaDict: {
1087
1175
  readonly type: 'ref';
1088
1176
  readonly ref: 'lex:com.atproto.repo.strongRef';
1089
1177
  };
1178
+ readonly links: {
1179
+ readonly type: 'array';
1180
+ readonly description: 'Links shown on the profile, in display order. Each ref points to an app.bsky.actor.link record in this repo.';
1181
+ readonly maxLength: 10;
1182
+ readonly items: {
1183
+ readonly type: 'ref';
1184
+ readonly ref: 'lex:com.atproto.repo.strongRef';
1185
+ };
1186
+ };
1090
1187
  readonly createdAt: {
1091
1188
  readonly type: 'string';
1092
1189
  readonly format: 'datetime';
@@ -3148,19 +3245,24 @@ export declare const schemaDict: {
3148
3245
  readonly defs: {
3149
3246
  readonly main: {
3150
3247
  readonly type: 'query';
3151
- readonly description: "Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.";
3248
+ readonly description: "Resolve one AT-URI record into the data needed to render an enhanced external embed. The records are validated against the requested `url` before any view is built. When validation passes, returns `data`, `associatedRefs` (strongRefs to embed into a post's external.associatedRefs) and the raw `associatedRecords`, plus a legacy `view` for Standard.site records only. When validation fails, only `unverifiedAssociatedRefs` and `unverifiedAssociatedRecords` are returned and no view or data is built. The response is empty (`{}`) when no record URI was usable or the record could not be resolved; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.";
3152
3249
  readonly parameters: {
3153
3250
  readonly type: 'params';
3154
- readonly required: ["url", "uris"];
3251
+ readonly required: ["url"];
3155
3252
  readonly properties: {
3156
3253
  readonly url: {
3157
3254
  readonly type: 'string';
3158
3255
  readonly format: 'uri';
3159
- readonly description: "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`. May be used for validation in the future.";
3256
+ readonly description: "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`, and validated against the resolved records.";
3257
+ };
3258
+ readonly canonicalUri: {
3259
+ readonly type: 'string';
3260
+ readonly format: 'at-uri';
3261
+ readonly description: 'The canonical AT URI of the atproto record found on the webpage. When provided, takes precedence over `uris`, which is then ignored.';
3160
3262
  };
3161
3263
  readonly uris: {
3162
3264
  readonly type: 'array';
3163
- readonly description: 'AT-URIs of any Atmosphere records that can be resolved and used to construct #externalView views. Example: a site.standard.document and optionally its associated site.standard.publication.';
3265
+ readonly description: "Legacy input for Standard.site callers, ignored when `canonicalUri` is provided. A single record is selected from it: the first site.standard.document URI, otherwise the first site.standard.publication URI. Other entries are ignored; a document's publication is discovered from the document itself.";
3164
3266
  readonly items: {
3165
3267
  readonly type: 'string';
3166
3268
  readonly format: 'at-uri';
@@ -3177,12 +3279,12 @@ export declare const schemaDict: {
3177
3279
  readonly view: {
3178
3280
  readonly type: 'ref';
3179
3281
  readonly ref: 'lex:app.bsky.embed.external#view';
3180
- readonly description: 'Hydrated view of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required `viewExternal` fields. Omitted alongside the rest of the response when no records resolved or validation failed.';
3282
+ readonly description: 'Legacy hydrated view of the embed, returned for Standard.site records only. Present only when validation passed and the records supply enough information to populate the required `viewExternal` fields.';
3181
3283
  };
3182
3284
  readonly data: {
3183
3285
  readonly type: 'union';
3184
3286
  readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery", "lex:app.bsky.embed.external#viewLivestream"];
3185
- readonly description: 'Preferred to #view. Hydrated data of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required fields. Omitted alongside the rest of the response when no records resolved or validation failed.';
3287
+ readonly description: 'Preferred to #view. Hydrated data of the embed. Present only when validation passed and the records supply enough information to populate the required fields.';
3186
3288
  };
3187
3289
  readonly associatedRefs: {
3188
3290
  readonly type: 'array';
@@ -3190,13 +3292,28 @@ export declare const schemaDict: {
3190
3292
  readonly type: 'ref';
3191
3293
  readonly ref: 'lex:com.atproto.repo.strongRef';
3192
3294
  };
3193
- readonly description: "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs.";
3295
+ readonly description: 'StrongRefs (URI+CID) of the Atmosphere records selected for persistence in a post, suitable for embedding into its external.associatedRefs: the canonical record, plus only the additional records the service chooses to persist for its collection. This can be a subset of the records used to render `data`, which may also draw on other hydrated records such as recommendations, subscriptions, or favorites. Present only when validation passed. Index-aligned with `associatedRecords`.';
3194
3296
  };
3195
3297
  readonly associatedRecords: {
3196
3298
  readonly type: 'array';
3197
3299
  readonly items: {
3198
3300
  readonly type: 'unknown';
3199
- readonly description: 'The raw record data of the Atmosphere records that backed this view. This is returned for convenience, to avoid the need for the client to separately fetch the record data for the associatedRefs. Example: the site.standard.document and site.standard.publication records that backed this view.';
3301
+ readonly description: 'The raw record data of the Atmosphere records selected for persistence, index-aligned with `associatedRefs`. Returned for convenience, to avoid the client separately fetching them. Present only when validation passed.';
3302
+ };
3303
+ };
3304
+ readonly unverifiedAssociatedRefs: {
3305
+ readonly type: 'array';
3306
+ readonly items: {
3307
+ readonly type: 'ref';
3308
+ readonly ref: 'lex:com.atproto.repo.strongRef';
3309
+ };
3310
+ readonly description: 'StrongRefs (URI+CID) of the same persistence-selected Atmosphere records (the canonical record plus chosen additional records) when validation of the requested `url` failed. These must not be written to a post. Index-aligned with `unverifiedAssociatedRecords`.';
3311
+ };
3312
+ readonly unverifiedAssociatedRecords: {
3313
+ readonly type: 'array';
3314
+ readonly items: {
3315
+ readonly type: 'unknown';
3316
+ readonly description: 'The raw record data of the persistence-selected Atmosphere records, index-aligned with `unverifiedAssociatedRefs`. Present only when validation failed.';
3200
3317
  };
3201
3318
  };
3202
3319
  };
@@ -7755,7 +7872,7 @@ export declare const schemaDict: {
7755
7872
  readonly description: 'Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.';
7756
7873
  readonly items: {
7757
7874
  readonly type: 'union';
7758
- readonly refs: ["lex:app.bsky.actor.defs#profileViewDetailed", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackView"];
7875
+ readonly refs: ["lex:app.bsky.actor.defs#profileViewBasic", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackViewBasic"];
7759
7876
  };
7760
7877
  };
7761
7878
  };
@@ -7784,7 +7901,7 @@ export declare const schemaDict: {
7784
7901
  };
7785
7902
  readonly kind: {
7786
7903
  readonly type: 'union';
7787
- readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
7904
+ readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
7788
7905
  };
7789
7906
  };
7790
7907
  };
@@ -7848,6 +7965,104 @@ export declare const schemaDict: {
7848
7965
  };
7849
7966
  };
7850
7967
  };
7968
+ readonly multiPostRepostGroup: {
7969
+ readonly type: 'object';
7970
+ readonly description: 'Group of reposts by the same actor of different posts.';
7971
+ readonly required: ["actor", "items"];
7972
+ readonly properties: {
7973
+ readonly actor: {
7974
+ readonly type: 'string';
7975
+ readonly format: 'did';
7976
+ };
7977
+ readonly items: {
7978
+ readonly type: 'array';
7979
+ readonly minLength: 2;
7980
+ readonly items: {
7981
+ readonly type: 'ref';
7982
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostItem';
7983
+ };
7984
+ };
7985
+ };
7986
+ };
7987
+ readonly multiPostRepostItem: {
7988
+ readonly type: 'object';
7989
+ readonly description: "One post which was reposted by the group's actor.";
7990
+ readonly required: ["post"];
7991
+ readonly properties: {
7992
+ readonly post: {
7993
+ readonly type: 'string';
7994
+ readonly format: 'at-uri';
7995
+ };
7996
+ };
7997
+ };
7998
+ readonly multiPostLikeViaRepostGroup: {
7999
+ readonly type: 'object';
8000
+ readonly description: "Group of likes by the same actor on different posts via the requesting account's reposts.";
8001
+ readonly required: ["actor", "items"];
8002
+ readonly properties: {
8003
+ readonly actor: {
8004
+ readonly type: 'string';
8005
+ readonly format: 'did';
8006
+ };
8007
+ readonly items: {
8008
+ readonly type: 'array';
8009
+ readonly minLength: 2;
8010
+ readonly items: {
8011
+ readonly type: 'ref';
8012
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostItem';
8013
+ };
8014
+ };
8015
+ };
8016
+ };
8017
+ readonly multiPostLikeViaRepostItem: {
8018
+ readonly type: 'object';
8019
+ readonly description: "One post which was liked by the group's actor via the requesting account's repost.";
8020
+ readonly required: ["post", "viaRepost"];
8021
+ readonly properties: {
8022
+ readonly post: {
8023
+ readonly type: 'string';
8024
+ readonly format: 'at-uri';
8025
+ };
8026
+ readonly viaRepost: {
8027
+ readonly type: 'string';
8028
+ readonly format: 'at-uri';
8029
+ };
8030
+ };
8031
+ };
8032
+ readonly multiPostRepostViaRepostGroup: {
8033
+ readonly type: 'object';
8034
+ readonly description: "Group of reposts by the same actor of different posts via the requesting account's reposts.";
8035
+ readonly required: ["actor", "items"];
8036
+ readonly properties: {
8037
+ readonly actor: {
8038
+ readonly type: 'string';
8039
+ readonly format: 'did';
8040
+ };
8041
+ readonly items: {
8042
+ readonly type: 'array';
8043
+ readonly minLength: 2;
8044
+ readonly items: {
8045
+ readonly type: 'ref';
8046
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostItem';
8047
+ };
8048
+ };
8049
+ };
8050
+ };
8051
+ readonly multiPostRepostViaRepostItem: {
8052
+ readonly type: 'object';
8053
+ readonly description: "One post which was reposted by the group's actor via the requesting account's repost.";
8054
+ readonly required: ["post", "viaRepost"];
8055
+ readonly properties: {
8056
+ readonly post: {
8057
+ readonly type: 'string';
8058
+ readonly format: 'at-uri';
8059
+ };
8060
+ readonly viaRepost: {
8061
+ readonly type: 'string';
8062
+ readonly format: 'at-uri';
8063
+ };
8064
+ };
8065
+ };
7851
8066
  readonly repostGroup: {
7852
8067
  readonly type: 'object';
7853
8068
  readonly description: 'Group of reposts by different actors of the same post.';
@@ -20399,10 +20614,20 @@ export declare const schemaDict: {
20399
20614
  };
20400
20615
  readonly notificationPreferences: {
20401
20616
  readonly type: 'object';
20402
- readonly required: ["push"];
20617
+ readonly description: 'Push notification preferences by moderation notification category. These preferences do not hide in-app inbox activity. Each category defaults to enabled.';
20618
+ readonly required: ["reports", "account", "labels"];
20403
20619
  readonly properties: {
20404
- readonly push: {
20620
+ readonly reports: {
20621
+ readonly type: 'boolean';
20622
+ readonly description: 'Notify about outcomes of reports filed by the account (reportResolved and reportReopened).';
20623
+ };
20624
+ readonly account: {
20405
20625
  readonly type: 'boolean';
20626
+ readonly description: 'Notify about moderation actions against the account or its content, action reversals, appeal outcomes, and standing changes. Label application and removal are controlled by labels.';
20627
+ };
20628
+ readonly labels: {
20629
+ readonly type: 'boolean';
20630
+ readonly description: 'Notify when labels are applied to or removed from the account or its content (labelApplied and labelRemoved actions).';
20406
20631
  };
20407
20632
  };
20408
20633
  };
@@ -20558,6 +20783,7 @@ export declare const schemaDict: {
20558
20783
  readonly defs: {
20559
20784
  readonly main: {
20560
20785
  readonly type: 'query';
20786
+ readonly description: 'Get moderation push notification preferences for report outcomes, account actions, and labeling. Returns all three categories, defaulting to enabled for an account without saved preferences.';
20561
20787
  readonly parameters: {
20562
20788
  readonly type: 'params';
20563
20789
  readonly properties: {
@@ -21005,14 +21231,23 @@ export declare const schemaDict: {
21005
21231
  readonly defs: {
21006
21232
  readonly main: {
21007
21233
  readonly type: 'procedure';
21234
+ readonly description: "Update the authenticated account's moderation push notification preferences. Only provided categories are updated; omitted categories retain their values. At least one category must be provided. Returns all three preferences. These preferences do not hide in-app inbox activity.";
21008
21235
  readonly input: {
21009
21236
  readonly encoding: 'application/json';
21010
21237
  readonly schema: {
21011
21238
  readonly type: 'object';
21012
- readonly required: ["push"];
21013
21239
  readonly properties: {
21014
- readonly push: {
21240
+ readonly reports: {
21015
21241
  readonly type: 'boolean';
21242
+ readonly description: 'Notify about outcomes of reports filed by the account.';
21243
+ };
21244
+ readonly account: {
21245
+ readonly type: 'boolean';
21246
+ readonly description: 'Notify about moderation actions against the account or its content, excluding labeling.';
21247
+ };
21248
+ readonly labels: {
21249
+ readonly type: 'boolean';
21250
+ readonly description: 'Notify about labels applied to or removed from the account or its content.';
21016
21251
  };
21017
21252
  };
21018
21253
  };
@@ -27630,6 +27865,14 @@ export declare const schemas: ({
27630
27865
  readonly type: 'ref';
27631
27866
  readonly ref: 'lex:com.atproto.repo.strongRef';
27632
27867
  };
27868
+ readonly links: {
27869
+ readonly type: 'array';
27870
+ readonly description: "The profile's links, in display order. Links that were taken down or don't resolve are left out.";
27871
+ readonly items: {
27872
+ readonly type: 'ref';
27873
+ readonly ref: 'lex:app.bsky.actor.defs#profileLinkView';
27874
+ };
27875
+ };
27633
27876
  readonly verification: {
27634
27877
  readonly type: 'ref';
27635
27878
  readonly ref: 'lex:app.bsky.actor.defs#verificationState';
@@ -27701,6 +27944,43 @@ export declare const schemas: ({
27701
27944
  };
27702
27945
  };
27703
27946
  };
27947
+ readonly profileLinkView: {
27948
+ readonly type: 'object';
27949
+ readonly required: ["uri", "cid", "url"];
27950
+ readonly properties: {
27951
+ readonly uri: {
27952
+ readonly type: 'string';
27953
+ readonly format: 'at-uri';
27954
+ readonly description: 'The app.bsky.actor.link record, e.g. for reporting the link.';
27955
+ };
27956
+ readonly cid: {
27957
+ readonly type: 'string';
27958
+ readonly format: 'cid';
27959
+ };
27960
+ readonly url: {
27961
+ readonly type: 'string';
27962
+ readonly format: 'uri';
27963
+ readonly description: 'The link destination.';
27964
+ };
27965
+ readonly title: {
27966
+ readonly type: 'string';
27967
+ readonly maxGraphemes: 40;
27968
+ readonly maxLength: 320;
27969
+ };
27970
+ readonly icon: {
27971
+ readonly type: 'string';
27972
+ readonly format: 'uri';
27973
+ readonly description: "Image URL for the destination site's icon.";
27974
+ };
27975
+ readonly labels: {
27976
+ readonly type: 'array';
27977
+ readonly items: {
27978
+ readonly type: 'ref';
27979
+ readonly ref: 'lex:com.atproto.label.defs#label';
27980
+ };
27981
+ };
27982
+ };
27983
+ };
27704
27984
  readonly profileAssociatedActivitySubscription: {
27705
27985
  readonly type: 'object';
27706
27986
  readonly required: ["allowSubscriptions"];
@@ -28427,6 +28707,48 @@ export declare const schemas: ({
28427
28707
  };
28428
28708
  };
28429
28709
  };
28710
+ } | {
28711
+ readonly lexicon: 1;
28712
+ readonly id: 'app.bsky.actor.link';
28713
+ readonly defs: {
28714
+ readonly main: {
28715
+ readonly type: 'record';
28716
+ readonly description: "A link shown on the account's profile. The profile record's links field sets which links are shown, and in what order.";
28717
+ readonly key: 'tid';
28718
+ readonly record: {
28719
+ readonly type: 'object';
28720
+ readonly required: ["url", "createdAt"];
28721
+ readonly properties: {
28722
+ readonly url: {
28723
+ readonly type: 'string';
28724
+ readonly format: 'uri';
28725
+ readonly description: 'The link destination, an https URL.';
28726
+ };
28727
+ readonly title: {
28728
+ readonly type: 'string';
28729
+ readonly description: "Optional label for the link. Clients can fall back to the destination's domain.";
28730
+ readonly maxGraphemes: 40;
28731
+ readonly maxLength: 320;
28732
+ };
28733
+ readonly icon: {
28734
+ readonly type: 'blob';
28735
+ readonly description: "The destination site's icon, uploaded when the link is saved.";
28736
+ readonly accept: ["image/png", "image/jpeg", "image/webp"];
28737
+ readonly maxSize: 100000;
28738
+ };
28739
+ readonly createdAt: {
28740
+ readonly type: 'string';
28741
+ readonly format: 'datetime';
28742
+ };
28743
+ readonly labels: {
28744
+ readonly type: 'union';
28745
+ readonly description: 'Self-label values for this link.';
28746
+ readonly refs: ["lex:com.atproto.label.defs#selfLabels"];
28747
+ };
28748
+ };
28749
+ };
28750
+ };
28751
+ };
28430
28752
  } | {
28431
28753
  readonly lexicon: 1;
28432
28754
  readonly id: 'app.bsky.actor.profile';
@@ -28484,6 +28806,15 @@ export declare const schemas: ({
28484
28806
  readonly type: 'ref';
28485
28807
  readonly ref: 'lex:com.atproto.repo.strongRef';
28486
28808
  };
28809
+ readonly links: {
28810
+ readonly type: 'array';
28811
+ readonly description: 'Links shown on the profile, in display order. Each ref points to an app.bsky.actor.link record in this repo.';
28812
+ readonly maxLength: 10;
28813
+ readonly items: {
28814
+ readonly type: 'ref';
28815
+ readonly ref: 'lex:com.atproto.repo.strongRef';
28816
+ };
28817
+ };
28487
28818
  readonly createdAt: {
28488
28819
  readonly type: 'string';
28489
28820
  readonly format: 'datetime';
@@ -30515,19 +30846,24 @@ export declare const schemas: ({
30515
30846
  readonly defs: {
30516
30847
  readonly main: {
30517
30848
  readonly type: 'query';
30518
- readonly description: "Resolve one or more AT-URIs into the data needed to render an enhanced external embed. Returns `associatedRefs` (strongRefs to embed into a post's external.associatedRefs), the raw `associatedRecords`, and a hydrated `view`. The response is empty (`{}`) when no records were resolvable, or when validation determined the resolved records don't actually back the requested URL; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.";
30849
+ readonly description: "Resolve one AT-URI record into the data needed to render an enhanced external embed. The records are validated against the requested `url` before any view is built. When validation passes, returns `data`, `associatedRefs` (strongRefs to embed into a post's external.associatedRefs) and the raw `associatedRecords`, plus a legacy `view` for Standard.site records only. When validation fails, only `unverifiedAssociatedRefs` and `unverifiedAssociatedRecords` are returned and no view or data is built. The response is empty (`{}`) when no record URI was usable or the record could not be resolved; clients should fall back to their own link-card rendering in that case and skip writing strongRefs to the post.";
30519
30850
  readonly parameters: {
30520
30851
  readonly type: 'params';
30521
- readonly required: ["url", "uris"];
30852
+ readonly required: ["url"];
30522
30853
  readonly properties: {
30523
30854
  readonly url: {
30524
30855
  readonly type: 'string';
30525
30856
  readonly format: 'uri';
30526
- readonly description: "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`. May be used for validation in the future.";
30857
+ readonly description: "The canonical web URL the embed represents (typically the URL the user pasted into the composer). Used as the returned view's `uri`, and validated against the resolved records.";
30858
+ };
30859
+ readonly canonicalUri: {
30860
+ readonly type: 'string';
30861
+ readonly format: 'at-uri';
30862
+ readonly description: 'The canonical AT URI of the atproto record found on the webpage. When provided, takes precedence over `uris`, which is then ignored.';
30527
30863
  };
30528
30864
  readonly uris: {
30529
30865
  readonly type: 'array';
30530
- readonly description: 'AT-URIs of any Atmosphere records that can be resolved and used to construct #externalView views. Example: a site.standard.document and optionally its associated site.standard.publication.';
30866
+ readonly description: "Legacy input for Standard.site callers, ignored when `canonicalUri` is provided. A single record is selected from it: the first site.standard.document URI, otherwise the first site.standard.publication URI. Other entries are ignored; a document's publication is discovered from the document itself.";
30531
30867
  readonly items: {
30532
30868
  readonly type: 'string';
30533
30869
  readonly format: 'at-uri';
@@ -30544,12 +30880,12 @@ export declare const schemas: ({
30544
30880
  readonly view: {
30545
30881
  readonly type: 'ref';
30546
30882
  readonly ref: 'lex:app.bsky.embed.external#view';
30547
- readonly description: 'Hydrated view of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required `viewExternal` fields. Omitted alongside the rest of the response when no records resolved or validation failed.';
30883
+ readonly description: 'Legacy hydrated view of the embed, returned for Standard.site records only. Present only when validation passed and the records supply enough information to populate the required `viewExternal` fields.';
30548
30884
  };
30549
30885
  readonly data: {
30550
30886
  readonly type: 'union';
30551
30887
  readonly refs: ["lex:app.bsky.embed.external#viewArticle", "lex:app.bsky.embed.external#viewArticlePublication", "lex:app.bsky.embed.external#viewGallery", "lex:app.bsky.embed.external#viewLivestream"];
30552
- readonly description: 'Preferred to #view. Hydrated data of the embed. Present only when the resolved records back the requested URL and supply enough information to populate the required fields. Omitted alongside the rest of the response when no records resolved or validation failed.';
30888
+ readonly description: 'Preferred to #view. Hydrated data of the embed. Present only when validation passed and the records supply enough information to populate the required fields.';
30553
30889
  };
30554
30890
  readonly associatedRefs: {
30555
30891
  readonly type: 'array';
@@ -30557,13 +30893,28 @@ export declare const schemas: ({
30557
30893
  readonly type: 'ref';
30558
30894
  readonly ref: 'lex:com.atproto.repo.strongRef';
30559
30895
  };
30560
- readonly description: "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs.";
30896
+ readonly description: 'StrongRefs (URI+CID) of the Atmosphere records selected for persistence in a post, suitable for embedding into its external.associatedRefs: the canonical record, plus only the additional records the service chooses to persist for its collection. This can be a subset of the records used to render `data`, which may also draw on other hydrated records such as recommendations, subscriptions, or favorites. Present only when validation passed. Index-aligned with `associatedRecords`.';
30561
30897
  };
30562
30898
  readonly associatedRecords: {
30563
30899
  readonly type: 'array';
30564
30900
  readonly items: {
30565
30901
  readonly type: 'unknown';
30566
- readonly description: 'The raw record data of the Atmosphere records that backed this view. This is returned for convenience, to avoid the need for the client to separately fetch the record data for the associatedRefs. Example: the site.standard.document and site.standard.publication records that backed this view.';
30902
+ readonly description: 'The raw record data of the Atmosphere records selected for persistence, index-aligned with `associatedRefs`. Returned for convenience, to avoid the client separately fetching them. Present only when validation passed.';
30903
+ };
30904
+ };
30905
+ readonly unverifiedAssociatedRefs: {
30906
+ readonly type: 'array';
30907
+ readonly items: {
30908
+ readonly type: 'ref';
30909
+ readonly ref: 'lex:com.atproto.repo.strongRef';
30910
+ };
30911
+ readonly description: 'StrongRefs (URI+CID) of the same persistence-selected Atmosphere records (the canonical record plus chosen additional records) when validation of the requested `url` failed. These must not be written to a post. Index-aligned with `unverifiedAssociatedRecords`.';
30912
+ };
30913
+ readonly unverifiedAssociatedRecords: {
30914
+ readonly type: 'array';
30915
+ readonly items: {
30916
+ readonly type: 'unknown';
30917
+ readonly description: 'The raw record data of the persistence-selected Atmosphere records, index-aligned with `unverifiedAssociatedRefs`. Present only when validation failed.';
30567
30918
  };
30568
30919
  };
30569
30920
  };
@@ -35053,7 +35404,7 @@ export declare const schemas: ({
35053
35404
  readonly description: 'Reusable views referenced by notifications. Views shared across notifications appear once to avoid duplication. Each group contributes only its first 10 of each related view to this array. Ex: for a group containing likes in a post, we might have a large number of likeItem (e.g., 50) in a group, but only the profile views for the newest 10 items will be included here.';
35054
35405
  readonly items: {
35055
35406
  readonly type: 'union';
35056
- readonly refs: ["lex:app.bsky.actor.defs#profileViewDetailed", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackView"];
35407
+ readonly refs: ["lex:app.bsky.actor.defs#profileViewBasic", "lex:app.bsky.feed.defs#blockedPost", "lex:app.bsky.feed.defs#generatorView", "lex:app.bsky.feed.defs#notFoundPost", "lex:app.bsky.feed.defs#postView", "lex:app.bsky.graph.defs#starterPackViewBasic"];
35057
35408
  };
35058
35409
  };
35059
35410
  };
@@ -35082,7 +35433,7 @@ export declare const schemas: ({
35082
35433
  };
35083
35434
  readonly kind: {
35084
35435
  readonly type: 'union';
35085
- readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
35436
+ readonly refs: ["lex:app.bsky.notification.getGroupedNotifications#likeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostGroup", "lex:app.bsky.notification.getGroupedNotifications#likeViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#repostViaRepostGroup", "lex:app.bsky.notification.getGroupedNotifications#followGroup", "lex:app.bsky.notification.getGroupedNotifications#subscribedPostGroup", "lex:app.bsky.notification.getGroupedNotifications#generatorLikeGroup", "lex:app.bsky.notification.getGroupedNotifications#replyNotification", "lex:app.bsky.notification.getGroupedNotifications#quoteNotification", "lex:app.bsky.notification.getGroupedNotifications#mentionNotification", "lex:app.bsky.notification.getGroupedNotifications#followBackNotification", "lex:app.bsky.notification.getGroupedNotifications#verifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#unverifiedNotification", "lex:app.bsky.notification.getGroupedNotifications#starterPackJoinedNotification", "lex:app.bsky.notification.getGroupedNotifications#contactMatchNotification"];
35086
35437
  };
35087
35438
  };
35088
35439
  };
@@ -35146,6 +35497,104 @@ export declare const schemas: ({
35146
35497
  };
35147
35498
  };
35148
35499
  };
35500
+ readonly multiPostRepostGroup: {
35501
+ readonly type: 'object';
35502
+ readonly description: 'Group of reposts by the same actor of different posts.';
35503
+ readonly required: ["actor", "items"];
35504
+ readonly properties: {
35505
+ readonly actor: {
35506
+ readonly type: 'string';
35507
+ readonly format: 'did';
35508
+ };
35509
+ readonly items: {
35510
+ readonly type: 'array';
35511
+ readonly minLength: 2;
35512
+ readonly items: {
35513
+ readonly type: 'ref';
35514
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostItem';
35515
+ };
35516
+ };
35517
+ };
35518
+ };
35519
+ readonly multiPostRepostItem: {
35520
+ readonly type: 'object';
35521
+ readonly description: "One post which was reposted by the group's actor.";
35522
+ readonly required: ["post"];
35523
+ readonly properties: {
35524
+ readonly post: {
35525
+ readonly type: 'string';
35526
+ readonly format: 'at-uri';
35527
+ };
35528
+ };
35529
+ };
35530
+ readonly multiPostLikeViaRepostGroup: {
35531
+ readonly type: 'object';
35532
+ readonly description: "Group of likes by the same actor on different posts via the requesting account's reposts.";
35533
+ readonly required: ["actor", "items"];
35534
+ readonly properties: {
35535
+ readonly actor: {
35536
+ readonly type: 'string';
35537
+ readonly format: 'did';
35538
+ };
35539
+ readonly items: {
35540
+ readonly type: 'array';
35541
+ readonly minLength: 2;
35542
+ readonly items: {
35543
+ readonly type: 'ref';
35544
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostItem';
35545
+ };
35546
+ };
35547
+ };
35548
+ };
35549
+ readonly multiPostLikeViaRepostItem: {
35550
+ readonly type: 'object';
35551
+ readonly description: "One post which was liked by the group's actor via the requesting account's repost.";
35552
+ readonly required: ["post", "viaRepost"];
35553
+ readonly properties: {
35554
+ readonly post: {
35555
+ readonly type: 'string';
35556
+ readonly format: 'at-uri';
35557
+ };
35558
+ readonly viaRepost: {
35559
+ readonly type: 'string';
35560
+ readonly format: 'at-uri';
35561
+ };
35562
+ };
35563
+ };
35564
+ readonly multiPostRepostViaRepostGroup: {
35565
+ readonly type: 'object';
35566
+ readonly description: "Group of reposts by the same actor of different posts via the requesting account's reposts.";
35567
+ readonly required: ["actor", "items"];
35568
+ readonly properties: {
35569
+ readonly actor: {
35570
+ readonly type: 'string';
35571
+ readonly format: 'did';
35572
+ };
35573
+ readonly items: {
35574
+ readonly type: 'array';
35575
+ readonly minLength: 2;
35576
+ readonly items: {
35577
+ readonly type: 'ref';
35578
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostItem';
35579
+ };
35580
+ };
35581
+ };
35582
+ };
35583
+ readonly multiPostRepostViaRepostItem: {
35584
+ readonly type: 'object';
35585
+ readonly description: "One post which was reposted by the group's actor via the requesting account's repost.";
35586
+ readonly required: ["post", "viaRepost"];
35587
+ readonly properties: {
35588
+ readonly post: {
35589
+ readonly type: 'string';
35590
+ readonly format: 'at-uri';
35591
+ };
35592
+ readonly viaRepost: {
35593
+ readonly type: 'string';
35594
+ readonly format: 'at-uri';
35595
+ };
35596
+ };
35597
+ };
35149
35598
  readonly repostGroup: {
35150
35599
  readonly type: 'object';
35151
35600
  readonly description: 'Group of reposts by different actors of the same post.';
@@ -47484,10 +47933,20 @@ export declare const schemas: ({
47484
47933
  };
47485
47934
  readonly notificationPreferences: {
47486
47935
  readonly type: 'object';
47487
- readonly required: ["push"];
47936
+ readonly description: 'Push notification preferences by moderation notification category. These preferences do not hide in-app inbox activity. Each category defaults to enabled.';
47937
+ readonly required: ["reports", "account", "labels"];
47488
47938
  readonly properties: {
47489
- readonly push: {
47939
+ readonly reports: {
47940
+ readonly type: 'boolean';
47941
+ readonly description: 'Notify about outcomes of reports filed by the account (reportResolved and reportReopened).';
47942
+ };
47943
+ readonly account: {
47944
+ readonly type: 'boolean';
47945
+ readonly description: 'Notify about moderation actions against the account or its content, action reversals, appeal outcomes, and standing changes. Label application and removal are controlled by labels.';
47946
+ };
47947
+ readonly labels: {
47490
47948
  readonly type: 'boolean';
47949
+ readonly description: 'Notify when labels are applied to or removed from the account or its content (labelApplied and labelRemoved actions).';
47491
47950
  };
47492
47951
  };
47493
47952
  };
@@ -47640,6 +48099,7 @@ export declare const schemas: ({
47640
48099
  readonly defs: {
47641
48100
  readonly main: {
47642
48101
  readonly type: 'query';
48102
+ readonly description: 'Get moderation push notification preferences for report outcomes, account actions, and labeling. Returns all three categories, defaulting to enabled for an account without saved preferences.';
47643
48103
  readonly parameters: {
47644
48104
  readonly type: 'params';
47645
48105
  readonly properties: {
@@ -48081,14 +48541,23 @@ export declare const schemas: ({
48081
48541
  readonly defs: {
48082
48542
  readonly main: {
48083
48543
  readonly type: 'procedure';
48544
+ readonly description: "Update the authenticated account's moderation push notification preferences. Only provided categories are updated; omitted categories retain their values. At least one category must be provided. Returns all three preferences. These preferences do not hide in-app inbox activity.";
48084
48545
  readonly input: {
48085
48546
  readonly encoding: 'application/json';
48086
48547
  readonly schema: {
48087
48548
  readonly type: 'object';
48088
- readonly required: ["push"];
48089
48549
  readonly properties: {
48090
- readonly push: {
48550
+ readonly reports: {
48551
+ readonly type: 'boolean';
48552
+ readonly description: 'Notify about outcomes of reports filed by the account.';
48553
+ };
48554
+ readonly account: {
48555
+ readonly type: 'boolean';
48556
+ readonly description: 'Notify about moderation actions against the account or its content, excluding labeling.';
48557
+ };
48558
+ readonly labels: {
48091
48559
  readonly type: 'boolean';
48560
+ readonly description: 'Notify about labels applied to or removed from the account or its content.';
48092
48561
  };
48093
48562
  };
48094
48563
  };
@@ -54421,6 +54890,7 @@ export declare const ids: {
54421
54890
  readonly AppBskyActorGetProfile: 'app.bsky.actor.getProfile';
54422
54891
  readonly AppBskyActorGetProfiles: 'app.bsky.actor.getProfiles';
54423
54892
  readonly AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions';
54893
+ readonly AppBskyActorLink: 'app.bsky.actor.link';
54424
54894
  readonly AppBskyActorProfile: 'app.bsky.actor.profile';
54425
54895
  readonly AppBskyActorPutPreferences: 'app.bsky.actor.putPreferences';
54426
54896
  readonly AppBskyActorSearchActors: 'app.bsky.actor.searchActors';