@atproto/api 0.12.2 → 0.12.4

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 (76) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/client/index.d.ts +20 -0
  3. package/dist/client/index.d.ts.map +1 -1
  4. package/dist/client/index.js +35 -2
  5. package/dist/client/index.js.map +1 -1
  6. package/dist/client/lexicons.d.ts +305 -0
  7. package/dist/client/lexicons.d.ts.map +1 -1
  8. package/dist/client/lexicons.js +322 -1
  9. package/dist/client/lexicons.js.map +1 -1
  10. package/dist/client/types/app/bsky/embed/record.d.ts +3 -0
  11. package/dist/client/types/app/bsky/embed/record.d.ts.map +1 -1
  12. package/dist/client/types/app/bsky/embed/record.js.map +1 -1
  13. package/dist/client/types/app/bsky/feed/defs.d.ts +38 -0
  14. package/dist/client/types/app/bsky/feed/defs.d.ts.map +1 -1
  15. package/dist/client/types/app/bsky/feed/defs.js +35 -1
  16. package/dist/client/types/app/bsky/feed/defs.js.map +1 -1
  17. package/dist/client/types/app/bsky/feed/generator.d.ts +2 -0
  18. package/dist/client/types/app/bsky/feed/generator.d.ts.map +1 -1
  19. package/dist/client/types/app/bsky/feed/generator.js.map +1 -1
  20. package/dist/client/types/app/bsky/feed/searchPosts.d.ts +18 -0
  21. package/dist/client/types/app/bsky/feed/searchPosts.d.ts.map +1 -1
  22. package/dist/client/types/app/bsky/feed/searchPosts.js.map +1 -1
  23. package/dist/client/types/app/bsky/feed/sendInteractions.d.ts +26 -0
  24. package/dist/client/types/app/bsky/feed/sendInteractions.d.ts.map +1 -0
  25. package/dist/client/types/app/bsky/feed/sendInteractions.js +14 -0
  26. package/dist/client/types/app/bsky/feed/sendInteractions.js.map +1 -0
  27. package/dist/client/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts +27 -0
  28. package/dist/client/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts.map +1 -0
  29. package/dist/client/types/app/bsky/unspecced/getSuggestionsSkeleton.js +14 -0
  30. package/dist/client/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -0
  31. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +2 -0
  32. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.d.ts.map +1 -1
  33. package/dist/client/types/app/bsky/unspecced/searchActorsSkeleton.js.map +1 -1
  34. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +20 -0
  35. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.d.ts.map +1 -1
  36. package/dist/client/types/app/bsky/unspecced/searchPostsSkeleton.js.map +1 -1
  37. package/dist/client/types/com/atproto/server/createSession.d.ts +5 -0
  38. package/dist/client/types/com/atproto/server/createSession.d.ts.map +1 -1
  39. package/dist/client/types/com/atproto/server/createSession.js +9 -1
  40. package/dist/client/types/com/atproto/server/createSession.js.map +1 -1
  41. package/dist/client/types/com/atproto/server/getSession.d.ts +1 -0
  42. package/dist/client/types/com/atproto/server/getSession.d.ts.map +1 -1
  43. package/dist/client/types/com/atproto/server/getSession.js.map +1 -1
  44. package/dist/client/types/com/atproto/server/updateEmail.d.ts +1 -0
  45. package/dist/client/types/com/atproto/server/updateEmail.d.ts.map +1 -1
  46. package/dist/client/types/com/atproto/server/updateEmail.js.map +1 -1
  47. package/dist/client/types/com/atproto/sync/getRecord.d.ts +1 -1
  48. package/dist/client/types/com/atproto/sync/getRecord.d.ts.map +1 -1
  49. package/dist/mocker.d.ts +21 -21
  50. package/dist/mocker.d.ts.map +1 -1
  51. package/dist/moderation/ui.d.ts.map +1 -1
  52. package/dist/moderation/ui.js.map +1 -1
  53. package/dist/moderation/util.js.map +1 -1
  54. package/dist/rich-text/rich-text.d.ts.map +1 -1
  55. package/dist/rich-text/rich-text.js.map +1 -1
  56. package/jest.setup.ts +1 -1
  57. package/package.json +2 -1
  58. package/scripts/code/labels.mjs +1 -1
  59. package/src/client/index.ts +45 -0
  60. package/src/client/lexicons.ts +352 -1
  61. package/src/client/types/app/bsky/embed/record.ts +3 -0
  62. package/src/client/types/app/bsky/feed/defs.ts +63 -0
  63. package/src/client/types/app/bsky/feed/generator.ts +2 -0
  64. package/src/client/types/app/bsky/feed/searchPosts.ts +18 -0
  65. package/src/client/types/app/bsky/feed/sendInteractions.ts +38 -0
  66. package/src/client/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +40 -0
  67. package/src/client/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -0
  68. package/src/client/types/app/bsky/unspecced/searchPostsSkeleton.ts +20 -0
  69. package/src/client/types/com/atproto/server/createSession.ts +10 -0
  70. package/src/client/types/com/atproto/server/getSession.ts +1 -0
  71. package/src/client/types/com/atproto/server/updateEmail.ts +1 -0
  72. package/src/client/types/com/atproto/sync/getRecord.ts +1 -1
  73. package/src/moderation/ui.ts +1 -1
  74. package/src/moderation/util.ts +2 -2
  75. package/src/rich-text/rich-text.ts +4 -1
  76. package/tests/util/moderation-behavior.ts +1 -1
@@ -1067,6 +1067,8 @@ export const schemaDict = {
1067
1067
  },
1068
1068
  reason: {
1069
1069
  type: 'string',
1070
+ maxGraphemes: 2000,
1071
+ maxLength: 20000,
1070
1072
  description:
1071
1073
  'Additional context about the content and violation.',
1072
1074
  },
@@ -2207,6 +2209,9 @@ export const schemaDict = {
2207
2209
  password: {
2208
2210
  type: 'string',
2209
2211
  },
2212
+ authFactorToken: {
2213
+ type: 'string',
2214
+ },
2210
2215
  },
2211
2216
  },
2212
2217
  },
@@ -2239,6 +2244,9 @@ export const schemaDict = {
2239
2244
  emailConfirmed: {
2240
2245
  type: 'boolean',
2241
2246
  },
2247
+ emailAuthFactor: {
2248
+ type: 'boolean',
2249
+ },
2242
2250
  },
2243
2251
  },
2244
2252
  },
@@ -2246,6 +2254,9 @@ export const schemaDict = {
2246
2254
  {
2247
2255
  name: 'AccountTakedown',
2248
2256
  },
2257
+ {
2258
+ name: 'AuthFactorTokenRequired',
2259
+ },
2249
2260
  ],
2250
2261
  },
2251
2262
  },
@@ -2438,9 +2449,11 @@ export const schemaDict = {
2438
2449
  properties: {
2439
2450
  privacyPolicy: {
2440
2451
  type: 'string',
2452
+ format: 'uri',
2441
2453
  },
2442
2454
  termsOfService: {
2443
2455
  type: 'string',
2456
+ format: 'uri',
2444
2457
  },
2445
2458
  },
2446
2459
  },
@@ -2564,6 +2577,9 @@ export const schemaDict = {
2564
2577
  emailConfirmed: {
2565
2578
  type: 'boolean',
2566
2579
  },
2580
+ emailAuthFactor: {
2581
+ type: 'boolean',
2582
+ },
2567
2583
  didDoc: {
2568
2584
  type: 'unknown',
2569
2585
  },
@@ -2833,6 +2849,9 @@ export const schemaDict = {
2833
2849
  email: {
2834
2850
  type: 'string',
2835
2851
  },
2852
+ emailAuthFactor: {
2853
+ type: 'boolean',
2854
+ },
2836
2855
  token: {
2837
2856
  type: 'string',
2838
2857
  description:
@@ -3052,7 +3071,8 @@ export const schemaDict = {
3052
3071
  commit: {
3053
3072
  type: 'string',
3054
3073
  format: 'cid',
3055
- description: 'An optional past commit CID.',
3074
+ description:
3075
+ 'DEPRECATED: referenced a repo commit by CID, and retrieved record as of that commit',
3056
3076
  },
3057
3077
  },
3058
3078
  },
@@ -3621,6 +3641,7 @@ export const schemaDict = {
3621
3641
  },
3622
3642
  avatar: {
3623
3643
  type: 'string',
3644
+ format: 'uri',
3624
3645
  },
3625
3646
  associated: {
3626
3647
  type: 'ref',
@@ -3663,6 +3684,7 @@ export const schemaDict = {
3663
3684
  },
3664
3685
  avatar: {
3665
3686
  type: 'string',
3687
+ format: 'uri',
3666
3688
  },
3667
3689
  associated: {
3668
3690
  type: 'ref',
@@ -3709,9 +3731,11 @@ export const schemaDict = {
3709
3731
  },
3710
3732
  avatar: {
3711
3733
  type: 'string',
3734
+ format: 'uri',
3712
3735
  },
3713
3736
  banner: {
3714
3737
  type: 'string',
3738
+ format: 'uri',
3715
3739
  },
3716
3740
  followersCount: {
3717
3741
  type: 'integer',
@@ -4388,6 +4412,7 @@ export const schemaDict = {
4388
4412
  },
4389
4413
  thumb: {
4390
4414
  type: 'string',
4415
+ format: 'uri',
4391
4416
  },
4392
4417
  },
4393
4418
  },
@@ -4468,11 +4493,13 @@ export const schemaDict = {
4468
4493
  properties: {
4469
4494
  thumb: {
4470
4495
  type: 'string',
4496
+ format: 'uri',
4471
4497
  description:
4472
4498
  'Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.',
4473
4499
  },
4474
4500
  fullsize: {
4475
4501
  type: 'string',
4502
+ format: 'uri',
4476
4503
  description:
4477
4504
  'Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View.',
4478
4505
  },
@@ -4549,6 +4576,15 @@ export const schemaDict = {
4549
4576
  ref: 'lex:com.atproto.label.defs#label',
4550
4577
  },
4551
4578
  },
4579
+ replyCount: {
4580
+ type: 'integer',
4581
+ },
4582
+ repostCount: {
4583
+ type: 'integer',
4584
+ },
4585
+ likeCount: {
4586
+ type: 'integer',
4587
+ },
4552
4588
  embeds: {
4553
4589
  type: 'array',
4554
4590
  items: {
@@ -4736,6 +4772,12 @@ export const schemaDict = {
4736
4772
  type: 'union',
4737
4773
  refs: ['lex:app.bsky.feed.defs#reasonRepost'],
4738
4774
  },
4775
+ feedContext: {
4776
+ type: 'string',
4777
+ description:
4778
+ 'Context provided by feed generator that may be passed back alongside interactions.',
4779
+ maxLength: 2000,
4780
+ },
4739
4781
  },
4740
4782
  },
4741
4783
  replyRef: {
@@ -4886,11 +4928,15 @@ export const schemaDict = {
4886
4928
  },
4887
4929
  avatar: {
4888
4930
  type: 'string',
4931
+ format: 'uri',
4889
4932
  },
4890
4933
  likeCount: {
4891
4934
  type: 'integer',
4892
4935
  minimum: 0,
4893
4936
  },
4937
+ acceptsInteractions: {
4938
+ type: 'boolean',
4939
+ },
4894
4940
  labels: {
4895
4941
  type: 'array',
4896
4942
  items: {
@@ -4929,6 +4975,12 @@ export const schemaDict = {
4929
4975
  type: 'union',
4930
4976
  refs: ['lex:app.bsky.feed.defs#skeletonReasonRepost'],
4931
4977
  },
4978
+ feedContext: {
4979
+ type: 'string',
4980
+ description:
4981
+ 'Context that will be passed through to client and may be passed to feed generator back alongside interactions.',
4982
+ maxLength: 2000,
4983
+ },
4932
4984
  },
4933
4985
  },
4934
4986
  skeletonReasonRepost: {
@@ -4964,6 +5016,89 @@ export const schemaDict = {
4964
5016
  },
4965
5017
  },
4966
5018
  },
5019
+ interaction: {
5020
+ type: 'object',
5021
+ properties: {
5022
+ item: {
5023
+ type: 'string',
5024
+ format: 'at-uri',
5025
+ },
5026
+ event: {
5027
+ type: 'string',
5028
+ knownValues: [
5029
+ 'app.bsky.feed.defs#requestLess',
5030
+ 'app.bsky.feed.defs#requestMore',
5031
+ 'app.bsky.feed.defs#clickthroughItem',
5032
+ 'app.bsky.feed.defs#clickthroughAuthor',
5033
+ 'app.bsky.feed.defs#clickthroughReposter',
5034
+ 'app.bsky.feed.defs#clickthroughEmbed',
5035
+ 'app.bsky.feed.defs#interactionSeen',
5036
+ 'app.bsky.feed.defs#interactionLike',
5037
+ 'app.bsky.feed.defs#interactionRepost',
5038
+ 'app.bsky.feed.defs#interactionReply',
5039
+ 'app.bsky.feed.defs#interactionQuote',
5040
+ 'app.bsky.feed.defs#interactionShare',
5041
+ ],
5042
+ },
5043
+ feedContext: {
5044
+ type: 'string',
5045
+ description:
5046
+ 'Context on a feed item that was orginally supplied by the feed generator on getFeedSkeleton.',
5047
+ maxLength: 2000,
5048
+ },
5049
+ },
5050
+ },
5051
+ requestLess: {
5052
+ type: 'token',
5053
+ description:
5054
+ 'Request that less content like the given feed item be shown in the feed',
5055
+ },
5056
+ requestMore: {
5057
+ type: 'token',
5058
+ description:
5059
+ 'Request that more content like the given feed item be shown in the feed',
5060
+ },
5061
+ clickthroughItem: {
5062
+ type: 'token',
5063
+ description: 'User clicked through to the feed item',
5064
+ },
5065
+ clickthroughAuthor: {
5066
+ type: 'token',
5067
+ description: 'User clicked through to the author of the feed item',
5068
+ },
5069
+ clickthroughReposter: {
5070
+ type: 'token',
5071
+ description: 'User clicked through to the reposter of the feed item',
5072
+ },
5073
+ clickthroughEmbed: {
5074
+ type: 'token',
5075
+ description:
5076
+ 'User clicked through to the embedded content of the feed item',
5077
+ },
5078
+ interactionSeen: {
5079
+ type: 'token',
5080
+ description: 'Feed item was seen by user',
5081
+ },
5082
+ interactionLike: {
5083
+ type: 'token',
5084
+ description: 'User liked the feed item',
5085
+ },
5086
+ interactionRepost: {
5087
+ type: 'token',
5088
+ description: 'User reposted the feed item',
5089
+ },
5090
+ interactionReply: {
5091
+ type: 'token',
5092
+ description: 'User replied to the feed item',
5093
+ },
5094
+ interactionQuote: {
5095
+ type: 'token',
5096
+ description: 'User quoted the feed item',
5097
+ },
5098
+ interactionShare: {
5099
+ type: 'token',
5100
+ description: 'User shared the feed item',
5101
+ },
4967
5102
  },
4968
5103
  },
4969
5104
  AppBskyFeedDescribeFeedGenerator: {
@@ -5061,6 +5196,11 @@ export const schemaDict = {
5061
5196
  accept: ['image/png', 'image/jpeg'],
5062
5197
  maxSize: 1000000,
5063
5198
  },
5199
+ acceptsInteractions: {
5200
+ type: 'boolean',
5201
+ description:
5202
+ 'Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions',
5203
+ },
5064
5204
  labels: {
5065
5205
  type: 'union',
5066
5206
  description: 'Self-label values',
@@ -6042,6 +6182,61 @@ export const schemaDict = {
6042
6182
  description:
6043
6183
  'Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.',
6044
6184
  },
6185
+ sort: {
6186
+ type: 'string',
6187
+ knownValues: ['top', 'latest'],
6188
+ default: 'latest',
6189
+ description: 'Specifies the ranking order of results.',
6190
+ },
6191
+ since: {
6192
+ type: 'string',
6193
+ description:
6194
+ "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD).",
6195
+ },
6196
+ until: {
6197
+ type: 'string',
6198
+ description:
6199
+ "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD).",
6200
+ },
6201
+ mentions: {
6202
+ type: 'string',
6203
+ format: 'at-identifier',
6204
+ description:
6205
+ 'Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions.',
6206
+ },
6207
+ author: {
6208
+ type: 'string',
6209
+ format: 'at-identifier',
6210
+ description:
6211
+ 'Filter to posts by the given account. Handles are resolved to DID before query-time.',
6212
+ },
6213
+ lang: {
6214
+ type: 'string',
6215
+ format: 'language',
6216
+ description:
6217
+ 'Filter to posts in the given language. Expected to be based on post language field, though server may override language detection.',
6218
+ },
6219
+ domain: {
6220
+ type: 'string',
6221
+ description:
6222
+ 'Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization.',
6223
+ },
6224
+ url: {
6225
+ type: 'string',
6226
+ format: 'uri',
6227
+ description:
6228
+ 'Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching.',
6229
+ },
6230
+ tag: {
6231
+ type: 'array',
6232
+ items: {
6233
+ type: 'string',
6234
+ maxLength: 640,
6235
+ maxGraphemes: 64,
6236
+ },
6237
+ description:
6238
+ "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching.",
6239
+ },
6045
6240
  limit: {
6046
6241
  type: 'integer',
6047
6242
  minimum: 1,
@@ -6087,6 +6282,40 @@ export const schemaDict = {
6087
6282
  },
6088
6283
  },
6089
6284
  },
6285
+ AppBskyFeedSendInteractions: {
6286
+ lexicon: 1,
6287
+ id: 'app.bsky.feed.sendInteractions',
6288
+ defs: {
6289
+ main: {
6290
+ type: 'procedure',
6291
+ description:
6292
+ 'Send information about interactions with feed items back to the feed generator that served them.',
6293
+ input: {
6294
+ encoding: 'application/json',
6295
+ schema: {
6296
+ type: 'object',
6297
+ required: ['interactions'],
6298
+ properties: {
6299
+ interactions: {
6300
+ type: 'array',
6301
+ items: {
6302
+ type: 'ref',
6303
+ ref: 'lex:app.bsky.feed.defs#interaction',
6304
+ },
6305
+ },
6306
+ },
6307
+ },
6308
+ },
6309
+ output: {
6310
+ encoding: 'application/json',
6311
+ schema: {
6312
+ type: 'object',
6313
+ properties: {},
6314
+ },
6315
+ },
6316
+ },
6317
+ },
6318
+ },
6090
6319
  AppBskyFeedThreadgate: {
6091
6320
  lexicon: 1,
6092
6321
  id: 'app.bsky.feed.threadgate',
@@ -6201,6 +6430,7 @@ export const schemaDict = {
6201
6430
  },
6202
6431
  avatar: {
6203
6432
  type: 'string',
6433
+ format: 'uri',
6204
6434
  },
6205
6435
  labels: {
6206
6436
  type: 'array',
@@ -6258,6 +6488,7 @@ export const schemaDict = {
6258
6488
  },
6259
6489
  avatar: {
6260
6490
  type: 'string',
6491
+ format: 'uri',
6261
6492
  },
6262
6493
  labels: {
6263
6494
  type: 'array',
@@ -7627,6 +7858,56 @@ export const schemaDict = {
7627
7858
  },
7628
7859
  },
7629
7860
  },
7861
+ AppBskyUnspeccedGetSuggestionsSkeleton: {
7862
+ lexicon: 1,
7863
+ id: 'app.bsky.unspecced.getSuggestionsSkeleton',
7864
+ defs: {
7865
+ main: {
7866
+ type: 'query',
7867
+ description:
7868
+ 'Get a skeleton of suggested actors. Intended to be called and then hydrated through app.bsky.actor.getSuggestions',
7869
+ parameters: {
7870
+ type: 'params',
7871
+ properties: {
7872
+ viewer: {
7873
+ type: 'string',
7874
+ format: 'did',
7875
+ description:
7876
+ 'DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking.',
7877
+ },
7878
+ limit: {
7879
+ type: 'integer',
7880
+ minimum: 1,
7881
+ maximum: 100,
7882
+ default: 50,
7883
+ },
7884
+ cursor: {
7885
+ type: 'string',
7886
+ },
7887
+ },
7888
+ },
7889
+ output: {
7890
+ encoding: 'application/json',
7891
+ schema: {
7892
+ type: 'object',
7893
+ required: ['actors'],
7894
+ properties: {
7895
+ cursor: {
7896
+ type: 'string',
7897
+ },
7898
+ actors: {
7899
+ type: 'array',
7900
+ items: {
7901
+ type: 'ref',
7902
+ ref: 'lex:app.bsky.unspecced.defs#skeletonSearchActor',
7903
+ },
7904
+ },
7905
+ },
7906
+ },
7907
+ },
7908
+ },
7909
+ },
7910
+ },
7630
7911
  AppBskyUnspeccedGetTaggedSuggestions: {
7631
7912
  lexicon: 1,
7632
7913
  id: 'app.bsky.unspecced.getTaggedSuggestions',
@@ -7691,6 +7972,12 @@ export const schemaDict = {
7691
7972
  description:
7692
7973
  'Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. For typeahead search, only simple term match is supported, not full syntax.',
7693
7974
  },
7975
+ viewer: {
7976
+ type: 'string',
7977
+ format: 'did',
7978
+ description:
7979
+ 'DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking.',
7980
+ },
7694
7981
  typeahead: {
7695
7982
  type: 'boolean',
7696
7983
  description: "If true, acts as fast/simple 'typeahead' query.",
@@ -7756,6 +8043,67 @@ export const schemaDict = {
7756
8043
  description:
7757
8044
  'Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.',
7758
8045
  },
8046
+ sort: {
8047
+ type: 'string',
8048
+ knownValues: ['top', 'latest'],
8049
+ default: 'latest',
8050
+ description: 'Specifies the ranking order of results.',
8051
+ },
8052
+ since: {
8053
+ type: 'string',
8054
+ description:
8055
+ "Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD).",
8056
+ },
8057
+ until: {
8058
+ type: 'string',
8059
+ description:
8060
+ "Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD).",
8061
+ },
8062
+ mentions: {
8063
+ type: 'string',
8064
+ format: 'at-identifier',
8065
+ description:
8066
+ 'Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions.',
8067
+ },
8068
+ author: {
8069
+ type: 'string',
8070
+ format: 'at-identifier',
8071
+ description:
8072
+ 'Filter to posts by the given account. Handles are resolved to DID before query-time.',
8073
+ },
8074
+ lang: {
8075
+ type: 'string',
8076
+ format: 'language',
8077
+ description:
8078
+ 'Filter to posts in the given language. Expected to be based on post language field, though server may override language detection.',
8079
+ },
8080
+ domain: {
8081
+ type: 'string',
8082
+ description:
8083
+ 'Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization.',
8084
+ },
8085
+ url: {
8086
+ type: 'string',
8087
+ format: 'uri',
8088
+ description:
8089
+ 'Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching.',
8090
+ },
8091
+ tag: {
8092
+ type: 'array',
8093
+ items: {
8094
+ type: 'string',
8095
+ maxLength: 640,
8096
+ maxGraphemes: 64,
8097
+ },
8098
+ description:
8099
+ "Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching.",
8100
+ },
8101
+ viewer: {
8102
+ type: 'string',
8103
+ format: 'did',
8104
+ description:
8105
+ "DID of the account making the request (not included for public/unauthenticated queries). Used for 'from:me' queries.",
8106
+ },
7759
8107
  limit: {
7760
8108
  type: 'integer',
7761
8109
  minimum: 1,
@@ -9303,6 +9651,7 @@ export const ids = {
9303
9651
  AppBskyFeedPost: 'app.bsky.feed.post',
9304
9652
  AppBskyFeedRepost: 'app.bsky.feed.repost',
9305
9653
  AppBskyFeedSearchPosts: 'app.bsky.feed.searchPosts',
9654
+ AppBskyFeedSendInteractions: 'app.bsky.feed.sendInteractions',
9306
9655
  AppBskyFeedThreadgate: 'app.bsky.feed.threadgate',
9307
9656
  AppBskyGraphBlock: 'app.bsky.graph.block',
9308
9657
  AppBskyGraphDefs: 'app.bsky.graph.defs',
@@ -9337,6 +9686,8 @@ export const ids = {
9337
9686
  AppBskyUnspeccedDefs: 'app.bsky.unspecced.defs',
9338
9687
  AppBskyUnspeccedGetPopularFeedGenerators:
9339
9688
  'app.bsky.unspecced.getPopularFeedGenerators',
9689
+ AppBskyUnspeccedGetSuggestionsSkeleton:
9690
+ 'app.bsky.unspecced.getSuggestionsSkeleton',
9340
9691
  AppBskyUnspeccedGetTaggedSuggestions:
9341
9692
  'app.bsky.unspecced.getTaggedSuggestions',
9342
9693
  AppBskyUnspeccedSearchActorsSkeleton:
@@ -62,6 +62,9 @@ export interface ViewRecord {
62
62
  /** The record data itself. */
63
63
  value: {}
64
64
  labels?: ComAtprotoLabelDefs.Label[]
65
+ replyCount?: number
66
+ repostCount?: number
67
+ likeCount?: number
65
68
  embeds?: (
66
69
  | AppBskyEmbedImages.View
67
70
  | AppBskyEmbedExternal.View
@@ -69,6 +69,8 @@ export interface FeedViewPost {
69
69
  post: PostView
70
70
  reply?: ReplyRef
71
71
  reason?: ReasonRepost | { $type: string; [k: string]: unknown }
72
+ /** Context provided by feed generator that may be passed back alongside interactions. */
73
+ feedContext?: string
72
74
  [k: string]: unknown
73
75
  }
74
76
 
@@ -219,6 +221,7 @@ export interface GeneratorView {
219
221
  descriptionFacets?: AppBskyRichtextFacet.Main[]
220
222
  avatar?: string
221
223
  likeCount?: number
224
+ acceptsInteractions?: boolean
222
225
  labels?: ComAtprotoLabelDefs.Label[]
223
226
  viewer?: GeneratorViewerState
224
227
  indexedAt: string
@@ -257,6 +260,8 @@ export function validateGeneratorViewerState(v: unknown): ValidationResult {
257
260
  export interface SkeletonFeedPost {
258
261
  post: string
259
262
  reason?: SkeletonReasonRepost | { $type: string; [k: string]: unknown }
263
+ /** Context that will be passed through to client and may be passed to feed generator back alongside interactions. */
264
+ feedContext?: string
260
265
  [k: string]: unknown
261
266
  }
262
267
 
@@ -308,3 +313,61 @@ export function isThreadgateView(v: unknown): v is ThreadgateView {
308
313
  export function validateThreadgateView(v: unknown): ValidationResult {
309
314
  return lexicons.validate('app.bsky.feed.defs#threadgateView', v)
310
315
  }
316
+
317
+ export interface Interaction {
318
+ item?: string
319
+ event?:
320
+ | 'app.bsky.feed.defs#requestLess'
321
+ | 'app.bsky.feed.defs#requestMore'
322
+ | 'app.bsky.feed.defs#clickthroughItem'
323
+ | 'app.bsky.feed.defs#clickthroughAuthor'
324
+ | 'app.bsky.feed.defs#clickthroughReposter'
325
+ | 'app.bsky.feed.defs#clickthroughEmbed'
326
+ | 'app.bsky.feed.defs#interactionSeen'
327
+ | 'app.bsky.feed.defs#interactionLike'
328
+ | 'app.bsky.feed.defs#interactionRepost'
329
+ | 'app.bsky.feed.defs#interactionReply'
330
+ | 'app.bsky.feed.defs#interactionQuote'
331
+ | 'app.bsky.feed.defs#interactionShare'
332
+ | (string & {})
333
+ /** Context on a feed item that was orginally supplied by the feed generator on getFeedSkeleton. */
334
+ feedContext?: string
335
+ [k: string]: unknown
336
+ }
337
+
338
+ export function isInteraction(v: unknown): v is Interaction {
339
+ return (
340
+ isObj(v) &&
341
+ hasProp(v, '$type') &&
342
+ v.$type === 'app.bsky.feed.defs#interaction'
343
+ )
344
+ }
345
+
346
+ export function validateInteraction(v: unknown): ValidationResult {
347
+ return lexicons.validate('app.bsky.feed.defs#interaction', v)
348
+ }
349
+
350
+ /** Request that less content like the given feed item be shown in the feed */
351
+ export const REQUESTLESS = 'app.bsky.feed.defs#requestLess'
352
+ /** Request that more content like the given feed item be shown in the feed */
353
+ export const REQUESTMORE = 'app.bsky.feed.defs#requestMore'
354
+ /** User clicked through to the feed item */
355
+ export const CLICKTHROUGHITEM = 'app.bsky.feed.defs#clickthroughItem'
356
+ /** User clicked through to the author of the feed item */
357
+ export const CLICKTHROUGHAUTHOR = 'app.bsky.feed.defs#clickthroughAuthor'
358
+ /** User clicked through to the reposter of the feed item */
359
+ export const CLICKTHROUGHREPOSTER = 'app.bsky.feed.defs#clickthroughReposter'
360
+ /** User clicked through to the embedded content of the feed item */
361
+ export const CLICKTHROUGHEMBED = 'app.bsky.feed.defs#clickthroughEmbed'
362
+ /** Feed item was seen by user */
363
+ export const INTERACTIONSEEN = 'app.bsky.feed.defs#interactionSeen'
364
+ /** User liked the feed item */
365
+ export const INTERACTIONLIKE = 'app.bsky.feed.defs#interactionLike'
366
+ /** User reposted the feed item */
367
+ export const INTERACTIONREPOST = 'app.bsky.feed.defs#interactionRepost'
368
+ /** User replied to the feed item */
369
+ export const INTERACTIONREPLY = 'app.bsky.feed.defs#interactionReply'
370
+ /** User quoted the feed item */
371
+ export const INTERACTIONQUOTE = 'app.bsky.feed.defs#interactionQuote'
372
+ /** User shared the feed item */
373
+ export const INTERACTIONSHARE = 'app.bsky.feed.defs#interactionShare'
@@ -14,6 +14,8 @@ export interface Record {
14
14
  description?: string
15
15
  descriptionFacets?: AppBskyRichtextFacet.Main[]
16
16
  avatar?: BlobRef
17
+ /** Declaration that a feed accepts feedback interactions from a client through app.bsky.feed.sendInteractions */
18
+ acceptsInteractions?: boolean
17
19
  labels?:
18
20
  | ComAtprotoLabelDefs.SelfLabels
19
21
  | { $type: string; [k: string]: unknown }
@@ -11,6 +11,24 @@ import * as AppBskyFeedDefs from './defs'
11
11
  export interface QueryParams {
12
12
  /** Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. */
13
13
  q: string
14
+ /** Specifies the ranking order of results. */
15
+ sort?: 'top' | 'latest' | (string & {})
16
+ /** Filter results for posts after the indicated datetime (inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYYY-MM-DD). */
17
+ since?: string
18
+ /** Filter results for posts before the indicated datetime (not inclusive). Expected to use 'sortAt' timestamp, which may not match 'createdAt'. Can be a datetime, or just an ISO date (YYY-MM-DD). */
19
+ until?: string
20
+ /** Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. */
21
+ mentions?: string
22
+ /** Filter to posts by the given account. Handles are resolved to DID before query-time. */
23
+ author?: string
24
+ /** Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. */
25
+ lang?: string
26
+ /** Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. */
27
+ domain?: string
28
+ /** Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. */
29
+ url?: string
30
+ /** Filter to posts with the given tag (hashtag), based on rich-text facet or tag field. Do not include the hash (#) prefix. Multiple tags can be specified, with 'AND' matching. */
31
+ tag?: string[]
14
32
  limit?: number
15
33
  /** Optional pagination mechanism; may not necessarily allow scrolling through entire result set. */
16
34
  cursor?: string