@atproto/api 0.24.3 → 0.25.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 (28) hide show
  1. package/CHANGELOG.md +16 -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 +426 -20
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +217 -10
  9. package/dist/client/lexicons.js.map +1 -1
  10. package/dist/client/types/app/bsky/actor/defs.d.ts +15 -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 +19 -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/package.json +3 -3
@@ -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,36 @@ 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
+ };
339
+ };
302
340
  readonly profileAssociatedActivitySubscription: {
303
341
  readonly type: 'object';
304
342
  readonly required: ["allowSubscriptions"];
@@ -1030,6 +1068,44 @@ export declare const schemaDict: {
1030
1068
  };
1031
1069
  };
1032
1070
  };
1071
+ readonly AppBskyActorLink: {
1072
+ readonly lexicon: 1;
1073
+ readonly id: 'app.bsky.actor.link';
1074
+ readonly defs: {
1075
+ readonly main: {
1076
+ readonly type: 'record';
1077
+ 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.";
1078
+ readonly key: 'tid';
1079
+ readonly record: {
1080
+ readonly type: 'object';
1081
+ readonly required: ["url", "createdAt"];
1082
+ readonly properties: {
1083
+ readonly url: {
1084
+ readonly type: 'string';
1085
+ readonly format: 'uri';
1086
+ readonly description: 'The link destination, an https URL.';
1087
+ };
1088
+ readonly title: {
1089
+ readonly type: 'string';
1090
+ readonly description: "Optional label for the link. Clients can fall back to the destination's domain.";
1091
+ readonly maxGraphemes: 40;
1092
+ readonly maxLength: 320;
1093
+ };
1094
+ readonly icon: {
1095
+ readonly type: 'blob';
1096
+ readonly description: "The destination site's icon, uploaded when the link is saved.";
1097
+ readonly accept: ["image/png", "image/jpeg", "image/webp"];
1098
+ readonly maxSize: 100000;
1099
+ };
1100
+ readonly createdAt: {
1101
+ readonly type: 'string';
1102
+ readonly format: 'datetime';
1103
+ };
1104
+ };
1105
+ };
1106
+ };
1107
+ };
1108
+ };
1033
1109
  readonly AppBskyActorProfile: {
1034
1110
  readonly lexicon: 1;
1035
1111
  readonly id: 'app.bsky.actor.profile';
@@ -1087,6 +1163,15 @@ export declare const schemaDict: {
1087
1163
  readonly type: 'ref';
1088
1164
  readonly ref: 'lex:com.atproto.repo.strongRef';
1089
1165
  };
1166
+ readonly links: {
1167
+ readonly type: 'array';
1168
+ readonly description: 'Links shown on the profile, in display order. Each ref points to an app.bsky.actor.link record in this repo.';
1169
+ readonly maxLength: 10;
1170
+ readonly items: {
1171
+ readonly type: 'ref';
1172
+ readonly ref: 'lex:com.atproto.repo.strongRef';
1173
+ };
1174
+ };
1090
1175
  readonly createdAt: {
1091
1176
  readonly type: 'string';
1092
1177
  readonly format: 'datetime';
@@ -3148,19 +3233,24 @@ export declare const schemaDict: {
3148
3233
  readonly defs: {
3149
3234
  readonly main: {
3150
3235
  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.";
3236
+ 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
3237
  readonly parameters: {
3153
3238
  readonly type: 'params';
3154
- readonly required: ["url", "uris"];
3239
+ readonly required: ["url"];
3155
3240
  readonly properties: {
3156
3241
  readonly url: {
3157
3242
  readonly type: 'string';
3158
3243
  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.";
3244
+ 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.";
3245
+ };
3246
+ readonly canonicalUri: {
3247
+ readonly type: 'string';
3248
+ readonly format: 'at-uri';
3249
+ 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
3250
  };
3161
3251
  readonly uris: {
3162
3252
  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.';
3253
+ 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
3254
  readonly items: {
3165
3255
  readonly type: 'string';
3166
3256
  readonly format: 'at-uri';
@@ -3177,12 +3267,12 @@ export declare const schemaDict: {
3177
3267
  readonly view: {
3178
3268
  readonly type: 'ref';
3179
3269
  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.';
3270
+ 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
3271
  };
3182
3272
  readonly data: {
3183
3273
  readonly type: 'union';
3184
3274
  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.';
3275
+ 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
3276
  };
3187
3277
  readonly associatedRefs: {
3188
3278
  readonly type: 'array';
@@ -3190,13 +3280,28 @@ export declare const schemaDict: {
3190
3280
  readonly type: 'ref';
3191
3281
  readonly ref: 'lex:com.atproto.repo.strongRef';
3192
3282
  };
3193
- readonly description: "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs.";
3283
+ 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
3284
  };
3195
3285
  readonly associatedRecords: {
3196
3286
  readonly type: 'array';
3197
3287
  readonly items: {
3198
3288
  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.';
3289
+ 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.';
3290
+ };
3291
+ };
3292
+ readonly unverifiedAssociatedRefs: {
3293
+ readonly type: 'array';
3294
+ readonly items: {
3295
+ readonly type: 'ref';
3296
+ readonly ref: 'lex:com.atproto.repo.strongRef';
3297
+ };
3298
+ 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`.';
3299
+ };
3300
+ readonly unverifiedAssociatedRecords: {
3301
+ readonly type: 'array';
3302
+ readonly items: {
3303
+ readonly type: 'unknown';
3304
+ readonly description: 'The raw record data of the persistence-selected Atmosphere records, index-aligned with `unverifiedAssociatedRefs`. Present only when validation failed.';
3200
3305
  };
3201
3306
  };
3202
3307
  };
@@ -7755,7 +7860,7 @@ export declare const schemaDict: {
7755
7860
  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
7861
  readonly items: {
7757
7862
  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"];
7863
+ 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
7864
  };
7760
7865
  };
7761
7866
  };
@@ -7784,7 +7889,7 @@ export declare const schemaDict: {
7784
7889
  };
7785
7890
  readonly kind: {
7786
7891
  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"];
7892
+ 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
7893
  };
7789
7894
  };
7790
7895
  };
@@ -7848,6 +7953,104 @@ export declare const schemaDict: {
7848
7953
  };
7849
7954
  };
7850
7955
  };
7956
+ readonly multiPostRepostGroup: {
7957
+ readonly type: 'object';
7958
+ readonly description: 'Group of reposts by the same actor of different posts.';
7959
+ readonly required: ["actor", "items"];
7960
+ readonly properties: {
7961
+ readonly actor: {
7962
+ readonly type: 'string';
7963
+ readonly format: 'did';
7964
+ };
7965
+ readonly items: {
7966
+ readonly type: 'array';
7967
+ readonly minLength: 2;
7968
+ readonly items: {
7969
+ readonly type: 'ref';
7970
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostItem';
7971
+ };
7972
+ };
7973
+ };
7974
+ };
7975
+ readonly multiPostRepostItem: {
7976
+ readonly type: 'object';
7977
+ readonly description: "One post which was reposted by the group's actor.";
7978
+ readonly required: ["post"];
7979
+ readonly properties: {
7980
+ readonly post: {
7981
+ readonly type: 'string';
7982
+ readonly format: 'at-uri';
7983
+ };
7984
+ };
7985
+ };
7986
+ readonly multiPostLikeViaRepostGroup: {
7987
+ readonly type: 'object';
7988
+ readonly description: "Group of likes by the same actor on different posts via the requesting account's reposts.";
7989
+ readonly required: ["actor", "items"];
7990
+ readonly properties: {
7991
+ readonly actor: {
7992
+ readonly type: 'string';
7993
+ readonly format: 'did';
7994
+ };
7995
+ readonly items: {
7996
+ readonly type: 'array';
7997
+ readonly minLength: 2;
7998
+ readonly items: {
7999
+ readonly type: 'ref';
8000
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostItem';
8001
+ };
8002
+ };
8003
+ };
8004
+ };
8005
+ readonly multiPostLikeViaRepostItem: {
8006
+ readonly type: 'object';
8007
+ readonly description: "One post which was liked by the group's actor via the requesting account's repost.";
8008
+ readonly required: ["post", "viaRepost"];
8009
+ readonly properties: {
8010
+ readonly post: {
8011
+ readonly type: 'string';
8012
+ readonly format: 'at-uri';
8013
+ };
8014
+ readonly viaRepost: {
8015
+ readonly type: 'string';
8016
+ readonly format: 'at-uri';
8017
+ };
8018
+ };
8019
+ };
8020
+ readonly multiPostRepostViaRepostGroup: {
8021
+ readonly type: 'object';
8022
+ readonly description: "Group of reposts by the same actor of different posts via the requesting account's reposts.";
8023
+ readonly required: ["actor", "items"];
8024
+ readonly properties: {
8025
+ readonly actor: {
8026
+ readonly type: 'string';
8027
+ readonly format: 'did';
8028
+ };
8029
+ readonly items: {
8030
+ readonly type: 'array';
8031
+ readonly minLength: 2;
8032
+ readonly items: {
8033
+ readonly type: 'ref';
8034
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostItem';
8035
+ };
8036
+ };
8037
+ };
8038
+ };
8039
+ readonly multiPostRepostViaRepostItem: {
8040
+ readonly type: 'object';
8041
+ readonly description: "One post which was reposted by the group's actor via the requesting account's repost.";
8042
+ readonly required: ["post", "viaRepost"];
8043
+ readonly properties: {
8044
+ readonly post: {
8045
+ readonly type: 'string';
8046
+ readonly format: 'at-uri';
8047
+ };
8048
+ readonly viaRepost: {
8049
+ readonly type: 'string';
8050
+ readonly format: 'at-uri';
8051
+ };
8052
+ };
8053
+ };
7851
8054
  readonly repostGroup: {
7852
8055
  readonly type: 'object';
7853
8056
  readonly description: 'Group of reposts by different actors of the same post.';
@@ -27630,6 +27833,14 @@ export declare const schemas: ({
27630
27833
  readonly type: 'ref';
27631
27834
  readonly ref: 'lex:com.atproto.repo.strongRef';
27632
27835
  };
27836
+ readonly links: {
27837
+ readonly type: 'array';
27838
+ readonly description: "The profile's links, in display order. Links that were taken down or don't resolve are left out.";
27839
+ readonly items: {
27840
+ readonly type: 'ref';
27841
+ readonly ref: 'lex:app.bsky.actor.defs#profileLinkView';
27842
+ };
27843
+ };
27633
27844
  readonly verification: {
27634
27845
  readonly type: 'ref';
27635
27846
  readonly ref: 'lex:app.bsky.actor.defs#verificationState';
@@ -27701,6 +27912,36 @@ export declare const schemas: ({
27701
27912
  };
27702
27913
  };
27703
27914
  };
27915
+ readonly profileLinkView: {
27916
+ readonly type: 'object';
27917
+ readonly required: ["uri", "cid", "url"];
27918
+ readonly properties: {
27919
+ readonly uri: {
27920
+ readonly type: 'string';
27921
+ readonly format: 'at-uri';
27922
+ readonly description: 'The app.bsky.actor.link record, e.g. for reporting the link.';
27923
+ };
27924
+ readonly cid: {
27925
+ readonly type: 'string';
27926
+ readonly format: 'cid';
27927
+ };
27928
+ readonly url: {
27929
+ readonly type: 'string';
27930
+ readonly format: 'uri';
27931
+ readonly description: 'The link destination.';
27932
+ };
27933
+ readonly title: {
27934
+ readonly type: 'string';
27935
+ readonly maxGraphemes: 40;
27936
+ readonly maxLength: 320;
27937
+ };
27938
+ readonly icon: {
27939
+ readonly type: 'string';
27940
+ readonly format: 'uri';
27941
+ readonly description: "Image URL for the destination site's icon.";
27942
+ };
27943
+ };
27944
+ };
27704
27945
  readonly profileAssociatedActivitySubscription: {
27705
27946
  readonly type: 'object';
27706
27947
  readonly required: ["allowSubscriptions"];
@@ -28427,6 +28668,43 @@ export declare const schemas: ({
28427
28668
  };
28428
28669
  };
28429
28670
  };
28671
+ } | {
28672
+ readonly lexicon: 1;
28673
+ readonly id: 'app.bsky.actor.link';
28674
+ readonly defs: {
28675
+ readonly main: {
28676
+ readonly type: 'record';
28677
+ 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.";
28678
+ readonly key: 'tid';
28679
+ readonly record: {
28680
+ readonly type: 'object';
28681
+ readonly required: ["url", "createdAt"];
28682
+ readonly properties: {
28683
+ readonly url: {
28684
+ readonly type: 'string';
28685
+ readonly format: 'uri';
28686
+ readonly description: 'The link destination, an https URL.';
28687
+ };
28688
+ readonly title: {
28689
+ readonly type: 'string';
28690
+ readonly description: "Optional label for the link. Clients can fall back to the destination's domain.";
28691
+ readonly maxGraphemes: 40;
28692
+ readonly maxLength: 320;
28693
+ };
28694
+ readonly icon: {
28695
+ readonly type: 'blob';
28696
+ readonly description: "The destination site's icon, uploaded when the link is saved.";
28697
+ readonly accept: ["image/png", "image/jpeg", "image/webp"];
28698
+ readonly maxSize: 100000;
28699
+ };
28700
+ readonly createdAt: {
28701
+ readonly type: 'string';
28702
+ readonly format: 'datetime';
28703
+ };
28704
+ };
28705
+ };
28706
+ };
28707
+ };
28430
28708
  } | {
28431
28709
  readonly lexicon: 1;
28432
28710
  readonly id: 'app.bsky.actor.profile';
@@ -28484,6 +28762,15 @@ export declare const schemas: ({
28484
28762
  readonly type: 'ref';
28485
28763
  readonly ref: 'lex:com.atproto.repo.strongRef';
28486
28764
  };
28765
+ readonly links: {
28766
+ readonly type: 'array';
28767
+ readonly description: 'Links shown on the profile, in display order. Each ref points to an app.bsky.actor.link record in this repo.';
28768
+ readonly maxLength: 10;
28769
+ readonly items: {
28770
+ readonly type: 'ref';
28771
+ readonly ref: 'lex:com.atproto.repo.strongRef';
28772
+ };
28773
+ };
28487
28774
  readonly createdAt: {
28488
28775
  readonly type: 'string';
28489
28776
  readonly format: 'datetime';
@@ -30515,19 +30802,24 @@ export declare const schemas: ({
30515
30802
  readonly defs: {
30516
30803
  readonly main: {
30517
30804
  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.";
30805
+ 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
30806
  readonly parameters: {
30520
30807
  readonly type: 'params';
30521
- readonly required: ["url", "uris"];
30808
+ readonly required: ["url"];
30522
30809
  readonly properties: {
30523
30810
  readonly url: {
30524
30811
  readonly type: 'string';
30525
30812
  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.";
30813
+ 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.";
30814
+ };
30815
+ readonly canonicalUri: {
30816
+ readonly type: 'string';
30817
+ readonly format: 'at-uri';
30818
+ 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
30819
  };
30528
30820
  readonly uris: {
30529
30821
  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.';
30822
+ 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
30823
  readonly items: {
30532
30824
  readonly type: 'string';
30533
30825
  readonly format: 'at-uri';
@@ -30544,12 +30836,12 @@ export declare const schemas: ({
30544
30836
  readonly view: {
30545
30837
  readonly type: 'ref';
30546
30838
  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.';
30839
+ 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
30840
  };
30549
30841
  readonly data: {
30550
30842
  readonly type: 'union';
30551
30843
  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.';
30844
+ 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
30845
  };
30554
30846
  readonly associatedRefs: {
30555
30847
  readonly type: 'array';
@@ -30557,13 +30849,28 @@ export declare const schemas: ({
30557
30849
  readonly type: 'ref';
30558
30850
  readonly ref: 'lex:com.atproto.repo.strongRef';
30559
30851
  };
30560
- readonly description: "StrongRefs (URI+CID) of the Atmosphere records that backed this view, suitable for embedding into a post's external.associatedRefs.";
30852
+ 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
30853
  };
30562
30854
  readonly associatedRecords: {
30563
30855
  readonly type: 'array';
30564
30856
  readonly items: {
30565
30857
  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.';
30858
+ 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.';
30859
+ };
30860
+ };
30861
+ readonly unverifiedAssociatedRefs: {
30862
+ readonly type: 'array';
30863
+ readonly items: {
30864
+ readonly type: 'ref';
30865
+ readonly ref: 'lex:com.atproto.repo.strongRef';
30866
+ };
30867
+ 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`.';
30868
+ };
30869
+ readonly unverifiedAssociatedRecords: {
30870
+ readonly type: 'array';
30871
+ readonly items: {
30872
+ readonly type: 'unknown';
30873
+ readonly description: 'The raw record data of the persistence-selected Atmosphere records, index-aligned with `unverifiedAssociatedRefs`. Present only when validation failed.';
30567
30874
  };
30568
30875
  };
30569
30876
  };
@@ -35053,7 +35360,7 @@ export declare const schemas: ({
35053
35360
  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
35361
  readonly items: {
35055
35362
  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"];
35363
+ 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
35364
  };
35058
35365
  };
35059
35366
  };
@@ -35082,7 +35389,7 @@ export declare const schemas: ({
35082
35389
  };
35083
35390
  readonly kind: {
35084
35391
  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"];
35392
+ 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
35393
  };
35087
35394
  };
35088
35395
  };
@@ -35146,6 +35453,104 @@ export declare const schemas: ({
35146
35453
  };
35147
35454
  };
35148
35455
  };
35456
+ readonly multiPostRepostGroup: {
35457
+ readonly type: 'object';
35458
+ readonly description: 'Group of reposts by the same actor of different posts.';
35459
+ readonly required: ["actor", "items"];
35460
+ readonly properties: {
35461
+ readonly actor: {
35462
+ readonly type: 'string';
35463
+ readonly format: 'did';
35464
+ };
35465
+ readonly items: {
35466
+ readonly type: 'array';
35467
+ readonly minLength: 2;
35468
+ readonly items: {
35469
+ readonly type: 'ref';
35470
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostItem';
35471
+ };
35472
+ };
35473
+ };
35474
+ };
35475
+ readonly multiPostRepostItem: {
35476
+ readonly type: 'object';
35477
+ readonly description: "One post which was reposted by the group's actor.";
35478
+ readonly required: ["post"];
35479
+ readonly properties: {
35480
+ readonly post: {
35481
+ readonly type: 'string';
35482
+ readonly format: 'at-uri';
35483
+ };
35484
+ };
35485
+ };
35486
+ readonly multiPostLikeViaRepostGroup: {
35487
+ readonly type: 'object';
35488
+ readonly description: "Group of likes by the same actor on different posts via the requesting account's reposts.";
35489
+ readonly required: ["actor", "items"];
35490
+ readonly properties: {
35491
+ readonly actor: {
35492
+ readonly type: 'string';
35493
+ readonly format: 'did';
35494
+ };
35495
+ readonly items: {
35496
+ readonly type: 'array';
35497
+ readonly minLength: 2;
35498
+ readonly items: {
35499
+ readonly type: 'ref';
35500
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostLikeViaRepostItem';
35501
+ };
35502
+ };
35503
+ };
35504
+ };
35505
+ readonly multiPostLikeViaRepostItem: {
35506
+ readonly type: 'object';
35507
+ readonly description: "One post which was liked by the group's actor via the requesting account's repost.";
35508
+ readonly required: ["post", "viaRepost"];
35509
+ readonly properties: {
35510
+ readonly post: {
35511
+ readonly type: 'string';
35512
+ readonly format: 'at-uri';
35513
+ };
35514
+ readonly viaRepost: {
35515
+ readonly type: 'string';
35516
+ readonly format: 'at-uri';
35517
+ };
35518
+ };
35519
+ };
35520
+ readonly multiPostRepostViaRepostGroup: {
35521
+ readonly type: 'object';
35522
+ readonly description: "Group of reposts by the same actor of different posts via the requesting account's reposts.";
35523
+ readonly required: ["actor", "items"];
35524
+ readonly properties: {
35525
+ readonly actor: {
35526
+ readonly type: 'string';
35527
+ readonly format: 'did';
35528
+ };
35529
+ readonly items: {
35530
+ readonly type: 'array';
35531
+ readonly minLength: 2;
35532
+ readonly items: {
35533
+ readonly type: 'ref';
35534
+ readonly ref: 'lex:app.bsky.notification.getGroupedNotifications#multiPostRepostViaRepostItem';
35535
+ };
35536
+ };
35537
+ };
35538
+ };
35539
+ readonly multiPostRepostViaRepostItem: {
35540
+ readonly type: 'object';
35541
+ readonly description: "One post which was reposted by the group's actor via the requesting account's repost.";
35542
+ readonly required: ["post", "viaRepost"];
35543
+ readonly properties: {
35544
+ readonly post: {
35545
+ readonly type: 'string';
35546
+ readonly format: 'at-uri';
35547
+ };
35548
+ readonly viaRepost: {
35549
+ readonly type: 'string';
35550
+ readonly format: 'at-uri';
35551
+ };
35552
+ };
35553
+ };
35149
35554
  readonly repostGroup: {
35150
35555
  readonly type: 'object';
35151
35556
  readonly description: 'Group of reposts by different actors of the same post.';
@@ -54421,6 +54826,7 @@ export declare const ids: {
54421
54826
  readonly AppBskyActorGetProfile: 'app.bsky.actor.getProfile';
54422
54827
  readonly AppBskyActorGetProfiles: 'app.bsky.actor.getProfiles';
54423
54828
  readonly AppBskyActorGetSuggestions: 'app.bsky.actor.getSuggestions';
54829
+ readonly AppBskyActorLink: 'app.bsky.actor.link';
54424
54830
  readonly AppBskyActorProfile: 'app.bsky.actor.profile';
54425
54831
  readonly AppBskyActorPutPreferences: 'app.bsky.actor.putPreferences';
54426
54832
  readonly AppBskyActorSearchActors: 'app.bsky.actor.searchActors';