@atproto/bsky 0.0.44 → 0.0.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/api/app/bsky/actor/getSuggestions.d.ts.map +1 -1
- package/dist/api/app/bsky/actor/getSuggestions.js +26 -13
- package/dist/api/app/bsky/actor/getSuggestions.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActors.js +1 -0
- package/dist/api/app/bsky/actor/searchActors.js.map +1 -1
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js +1 -0
- package/dist/api/app/bsky/actor/searchActorsTypeahead.js.map +1 -1
- package/dist/api/app/bsky/feed/searchPosts.js +10 -0
- package/dist/api/app/bsky/feed/searchPosts.js.map +1 -1
- package/dist/auth-verifier.d.ts.map +1 -1
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +2 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -0
- package/dist/context.js.map +1 -1
- package/dist/data-plane/server/db/pagination.d.ts +5 -5
- package/dist/data-plane/server/db/pagination.d.ts.map +1 -1
- package/dist/data-plane/server/routes/records.d.ts.map +1 -1
- package/dist/data-plane/server/util.d.ts.map +1 -1
- package/dist/hydration/hydrator.d.ts.map +1 -1
- package/dist/hydration/hydrator.js +8 -1
- package/dist/hydration/hydrator.js.map +1 -1
- package/dist/hydration/util.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon/index.d.ts +18 -0
- package/dist/lexicon/index.d.ts.map +1 -1
- package/dist/lexicon/index.js +23 -1
- package/dist/lexicon/index.js.map +1 -1
- package/dist/lexicon/lexicons.d.ts +291 -0
- package/dist/lexicon/lexicons.d.ts.map +1 -1
- package/dist/lexicon/lexicons.js +307 -0
- package/dist/lexicon/lexicons.js.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.d.ts +3 -0
- package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts +38 -0
- package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js +35 -1
- package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/feed/generator.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/generator.js.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts +18 -0
- package/dist/lexicon/types/app/bsky/feed/searchPosts.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.d.ts +40 -0
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js +3 -0
- package/dist/lexicon/types/app/bsky/feed/sendInteractions.js.map +1 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts +40 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.d.ts.map +1 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js +3 -0
- package/dist/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.js.map +1 -0
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts +2 -0
- package/dist/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.d.ts.map +1 -1
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts +20 -0
- package/dist/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/createSession.d.ts +3 -1
- package/dist/lexicon/types/com/atproto/server/createSession.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/getSession.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/server/getSession.d.ts.map +1 -1
- package/dist/lexicon/types/com/atproto/server/updateEmail.d.ts +1 -0
- package/dist/lexicon/types/com/atproto/server/updateEmail.d.ts.map +1 -1
- package/dist/util/debug.d.ts.map +1 -1
- package/dist/views/index.d.ts +2 -2
- package/dist/views/index.d.ts.map +1 -1
- package/dist/views/index.js +29 -22
- package/dist/views/index.js.map +1 -1
- package/package.json +4 -4
- package/src/api/app/bsky/actor/getSuggestions.ts +28 -13
- package/src/api/app/bsky/actor/searchActors.ts +1 -0
- package/src/api/app/bsky/actor/searchActorsTypeahead.ts +1 -0
- package/src/api/app/bsky/feed/searchPosts.ts +10 -0
- package/src/config.ts +14 -0
- package/src/context.ts +5 -0
- package/src/hydration/hydrator.ts +9 -1
- package/src/index.ts +12 -0
- package/src/lexicon/index.ts +38 -0
- package/src/lexicon/lexicons.ts +336 -0
- package/src/lexicon/types/app/bsky/embed/record.ts +3 -0
- package/src/lexicon/types/app/bsky/feed/defs.ts +63 -0
- package/src/lexicon/types/app/bsky/feed/generator.ts +2 -0
- package/src/lexicon/types/app/bsky/feed/searchPosts.ts +18 -0
- package/src/lexicon/types/app/bsky/feed/sendInteractions.ts +49 -0
- package/src/lexicon/types/app/bsky/unspecced/getSuggestionsSkeleton.ts +50 -0
- package/src/lexicon/types/app/bsky/unspecced/searchActorsSkeleton.ts +2 -0
- package/src/lexicon/types/app/bsky/unspecced/searchPostsSkeleton.ts +20 -0
- package/src/lexicon/types/com/atproto/server/createSession.ts +3 -1
- package/src/lexicon/types/com/atproto/server/getSession.ts +1 -0
- package/src/lexicon/types/com/atproto/server/updateEmail.ts +1 -0
- package/src/views/index.ts +27 -30
- package/tests/__snapshots__/feed-generation.test.ts.snap +15 -0
- package/tests/data-plane/__snapshots__/indexing.test.ts.snap +6 -0
- package/tests/views/__snapshots__/actor-search.test.ts.snap +2 -2
- package/tests/views/__snapshots__/author-feed.test.ts.snap +27 -0
- package/tests/views/__snapshots__/block-lists.test.ts.snap +3 -0
- package/tests/views/__snapshots__/blocks.test.ts.snap +3 -0
- package/tests/views/__snapshots__/list-feed.test.ts.snap +6 -0
- package/tests/views/__snapshots__/posts.test.ts.snap +9 -0
- package/tests/views/__snapshots__/timeline.test.ts.snap +259 -0
- package/tests/views/actor-search.test.ts +3 -3
- package/tests/views/blocks.test.ts +11 -2
package/src/lexicon/lexicons.ts
CHANGED
|
@@ -2209,6 +2209,9 @@ export const schemaDict = {
|
|
|
2209
2209
|
password: {
|
|
2210
2210
|
type: 'string',
|
|
2211
2211
|
},
|
|
2212
|
+
authFactorToken: {
|
|
2213
|
+
type: 'string',
|
|
2214
|
+
},
|
|
2212
2215
|
},
|
|
2213
2216
|
},
|
|
2214
2217
|
},
|
|
@@ -2241,6 +2244,9 @@ export const schemaDict = {
|
|
|
2241
2244
|
emailConfirmed: {
|
|
2242
2245
|
type: 'boolean',
|
|
2243
2246
|
},
|
|
2247
|
+
emailAuthFactor: {
|
|
2248
|
+
type: 'boolean',
|
|
2249
|
+
},
|
|
2244
2250
|
},
|
|
2245
2251
|
},
|
|
2246
2252
|
},
|
|
@@ -2248,6 +2254,9 @@ export const schemaDict = {
|
|
|
2248
2254
|
{
|
|
2249
2255
|
name: 'AccountTakedown',
|
|
2250
2256
|
},
|
|
2257
|
+
{
|
|
2258
|
+
name: 'AuthFactorTokenRequired',
|
|
2259
|
+
},
|
|
2251
2260
|
],
|
|
2252
2261
|
},
|
|
2253
2262
|
},
|
|
@@ -2568,6 +2577,9 @@ export const schemaDict = {
|
|
|
2568
2577
|
emailConfirmed: {
|
|
2569
2578
|
type: 'boolean',
|
|
2570
2579
|
},
|
|
2580
|
+
emailAuthFactor: {
|
|
2581
|
+
type: 'boolean',
|
|
2582
|
+
},
|
|
2571
2583
|
didDoc: {
|
|
2572
2584
|
type: 'unknown',
|
|
2573
2585
|
},
|
|
@@ -2837,6 +2849,9 @@ export const schemaDict = {
|
|
|
2837
2849
|
email: {
|
|
2838
2850
|
type: 'string',
|
|
2839
2851
|
},
|
|
2852
|
+
emailAuthFactor: {
|
|
2853
|
+
type: 'boolean',
|
|
2854
|
+
},
|
|
2840
2855
|
token: {
|
|
2841
2856
|
type: 'string',
|
|
2842
2857
|
description:
|
|
@@ -4561,6 +4576,15 @@ export const schemaDict = {
|
|
|
4561
4576
|
ref: 'lex:com.atproto.label.defs#label',
|
|
4562
4577
|
},
|
|
4563
4578
|
},
|
|
4579
|
+
replyCount: {
|
|
4580
|
+
type: 'integer',
|
|
4581
|
+
},
|
|
4582
|
+
repostCount: {
|
|
4583
|
+
type: 'integer',
|
|
4584
|
+
},
|
|
4585
|
+
likeCount: {
|
|
4586
|
+
type: 'integer',
|
|
4587
|
+
},
|
|
4564
4588
|
embeds: {
|
|
4565
4589
|
type: 'array',
|
|
4566
4590
|
items: {
|
|
@@ -4748,6 +4772,12 @@ export const schemaDict = {
|
|
|
4748
4772
|
type: 'union',
|
|
4749
4773
|
refs: ['lex:app.bsky.feed.defs#reasonRepost'],
|
|
4750
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
|
+
},
|
|
4751
4781
|
},
|
|
4752
4782
|
},
|
|
4753
4783
|
replyRef: {
|
|
@@ -4904,6 +4934,9 @@ export const schemaDict = {
|
|
|
4904
4934
|
type: 'integer',
|
|
4905
4935
|
minimum: 0,
|
|
4906
4936
|
},
|
|
4937
|
+
acceptsInteractions: {
|
|
4938
|
+
type: 'boolean',
|
|
4939
|
+
},
|
|
4907
4940
|
labels: {
|
|
4908
4941
|
type: 'array',
|
|
4909
4942
|
items: {
|
|
@@ -4942,6 +4975,12 @@ export const schemaDict = {
|
|
|
4942
4975
|
type: 'union',
|
|
4943
4976
|
refs: ['lex:app.bsky.feed.defs#skeletonReasonRepost'],
|
|
4944
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
|
+
},
|
|
4945
4984
|
},
|
|
4946
4985
|
},
|
|
4947
4986
|
skeletonReasonRepost: {
|
|
@@ -4977,6 +5016,89 @@ export const schemaDict = {
|
|
|
4977
5016
|
},
|
|
4978
5017
|
},
|
|
4979
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
|
+
},
|
|
4980
5102
|
},
|
|
4981
5103
|
},
|
|
4982
5104
|
AppBskyFeedDescribeFeedGenerator: {
|
|
@@ -5074,6 +5196,11 @@ export const schemaDict = {
|
|
|
5074
5196
|
accept: ['image/png', 'image/jpeg'],
|
|
5075
5197
|
maxSize: 1000000,
|
|
5076
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
|
+
},
|
|
5077
5204
|
labels: {
|
|
5078
5205
|
type: 'union',
|
|
5079
5206
|
description: 'Self-label values',
|
|
@@ -6055,6 +6182,61 @@ export const schemaDict = {
|
|
|
6055
6182
|
description:
|
|
6056
6183
|
'Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.',
|
|
6057
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
|
+
},
|
|
6058
6240
|
limit: {
|
|
6059
6241
|
type: 'integer',
|
|
6060
6242
|
minimum: 1,
|
|
@@ -6100,6 +6282,40 @@ export const schemaDict = {
|
|
|
6100
6282
|
},
|
|
6101
6283
|
},
|
|
6102
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
|
+
},
|
|
6103
6319
|
AppBskyFeedThreadgate: {
|
|
6104
6320
|
lexicon: 1,
|
|
6105
6321
|
id: 'app.bsky.feed.threadgate',
|
|
@@ -7642,6 +7858,56 @@ export const schemaDict = {
|
|
|
7642
7858
|
},
|
|
7643
7859
|
},
|
|
7644
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
|
+
},
|
|
7645
7911
|
AppBskyUnspeccedGetTaggedSuggestions: {
|
|
7646
7912
|
lexicon: 1,
|
|
7647
7913
|
id: 'app.bsky.unspecced.getTaggedSuggestions',
|
|
@@ -7706,6 +7972,12 @@ export const schemaDict = {
|
|
|
7706
7972
|
description:
|
|
7707
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.',
|
|
7708
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
|
+
},
|
|
7709
7981
|
typeahead: {
|
|
7710
7982
|
type: 'boolean',
|
|
7711
7983
|
description: "If true, acts as fast/simple 'typeahead' query.",
|
|
@@ -7771,6 +8043,67 @@ export const schemaDict = {
|
|
|
7771
8043
|
description:
|
|
7772
8044
|
'Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.',
|
|
7773
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
|
+
},
|
|
7774
8107
|
limit: {
|
|
7775
8108
|
type: 'integer',
|
|
7776
8109
|
minimum: 1,
|
|
@@ -7941,6 +8274,7 @@ export const ids = {
|
|
|
7941
8274
|
AppBskyFeedPost: 'app.bsky.feed.post',
|
|
7942
8275
|
AppBskyFeedRepost: 'app.bsky.feed.repost',
|
|
7943
8276
|
AppBskyFeedSearchPosts: 'app.bsky.feed.searchPosts',
|
|
8277
|
+
AppBskyFeedSendInteractions: 'app.bsky.feed.sendInteractions',
|
|
7944
8278
|
AppBskyFeedThreadgate: 'app.bsky.feed.threadgate',
|
|
7945
8279
|
AppBskyGraphBlock: 'app.bsky.graph.block',
|
|
7946
8280
|
AppBskyGraphDefs: 'app.bsky.graph.defs',
|
|
@@ -7975,6 +8309,8 @@ export const ids = {
|
|
|
7975
8309
|
AppBskyUnspeccedDefs: 'app.bsky.unspecced.defs',
|
|
7976
8310
|
AppBskyUnspeccedGetPopularFeedGenerators:
|
|
7977
8311
|
'app.bsky.unspecced.getPopularFeedGenerators',
|
|
8312
|
+
AppBskyUnspeccedGetSuggestionsSkeleton:
|
|
8313
|
+
'app.bsky.unspecced.getSuggestionsSkeleton',
|
|
7978
8314
|
AppBskyUnspeccedGetTaggedSuggestions:
|
|
7979
8315
|
'app.bsky.unspecced.getTaggedSuggestions',
|
|
7980
8316
|
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 }
|
|
@@ -12,6 +12,24 @@ import * as AppBskyFeedDefs from './defs'
|
|
|
12
12
|
export interface QueryParams {
|
|
13
13
|
/** Search query string; syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended. */
|
|
14
14
|
q: string
|
|
15
|
+
/** Specifies the ranking order of results. */
|
|
16
|
+
sort: 'top' | 'latest' | (string & {})
|
|
17
|
+
/** 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). */
|
|
18
|
+
since?: string
|
|
19
|
+
/** 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). */
|
|
20
|
+
until?: string
|
|
21
|
+
/** Filter to posts which mention the given account. Handles are resolved to DID before query-time. Only matches rich-text facet mentions. */
|
|
22
|
+
mentions?: string
|
|
23
|
+
/** Filter to posts by the given account. Handles are resolved to DID before query-time. */
|
|
24
|
+
author?: string
|
|
25
|
+
/** Filter to posts in the given language. Expected to be based on post language field, though server may override language detection. */
|
|
26
|
+
lang?: string
|
|
27
|
+
/** Filter to posts with URLs (facet links or embeds) linking to the given domain (hostname). Server may apply hostname normalization. */
|
|
28
|
+
domain?: string
|
|
29
|
+
/** Filter to posts with links (facet links or embeds) pointing to this URL. Server may apply URL normalization or fuzzy matching. */
|
|
30
|
+
url?: string
|
|
31
|
+
/** 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. */
|
|
32
|
+
tag?: string[]
|
|
15
33
|
limit: number
|
|
16
34
|
/** Optional pagination mechanism; may not necessarily allow scrolling through entire result set. */
|
|
17
35
|
cursor?: string
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED CODE - DO NOT MODIFY
|
|
3
|
+
*/
|
|
4
|
+
import express from 'express'
|
|
5
|
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
|
|
6
|
+
import { lexicons } from '../../../../lexicons'
|
|
7
|
+
import { isObj, hasProp } from '../../../../util'
|
|
8
|
+
import { CID } from 'multiformats/cid'
|
|
9
|
+
import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
|
|
10
|
+
import * as AppBskyFeedDefs from './defs'
|
|
11
|
+
|
|
12
|
+
export interface QueryParams {}
|
|
13
|
+
|
|
14
|
+
export interface InputSchema {
|
|
15
|
+
interactions: AppBskyFeedDefs.Interaction[]
|
|
16
|
+
[k: string]: unknown
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface OutputSchema {
|
|
20
|
+
[k: string]: unknown
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface HandlerInput {
|
|
24
|
+
encoding: 'application/json'
|
|
25
|
+
body: InputSchema
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface HandlerSuccess {
|
|
29
|
+
encoding: 'application/json'
|
|
30
|
+
body: OutputSchema
|
|
31
|
+
headers?: { [key: string]: string }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface HandlerError {
|
|
35
|
+
status: number
|
|
36
|
+
message?: string
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
40
|
+
export type HandlerReqCtx<HA extends HandlerAuth = never> = {
|
|
41
|
+
auth: HA
|
|
42
|
+
params: QueryParams
|
|
43
|
+
input: HandlerInput
|
|
44
|
+
req: express.Request
|
|
45
|
+
res: express.Response
|
|
46
|
+
}
|
|
47
|
+
export type Handler<HA extends HandlerAuth = never> = (
|
|
48
|
+
ctx: HandlerReqCtx<HA>,
|
|
49
|
+
) => Promise<HandlerOutput> | HandlerOutput
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED CODE - DO NOT MODIFY
|
|
3
|
+
*/
|
|
4
|
+
import express from 'express'
|
|
5
|
+
import { ValidationResult, BlobRef } from '@atproto/lexicon'
|
|
6
|
+
import { lexicons } from '../../../../lexicons'
|
|
7
|
+
import { isObj, hasProp } from '../../../../util'
|
|
8
|
+
import { CID } from 'multiformats/cid'
|
|
9
|
+
import { HandlerAuth, HandlerPipeThrough } from '@atproto/xrpc-server'
|
|
10
|
+
import * as AppBskyUnspeccedDefs from './defs'
|
|
11
|
+
|
|
12
|
+
export interface QueryParams {
|
|
13
|
+
/** DID of the account making the request (not included for public/unauthenticated queries). Used to boost followed accounts in ranking. */
|
|
14
|
+
viewer?: string
|
|
15
|
+
limit: number
|
|
16
|
+
cursor?: string
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export type InputSchema = undefined
|
|
20
|
+
|
|
21
|
+
export interface OutputSchema {
|
|
22
|
+
cursor?: string
|
|
23
|
+
actors: AppBskyUnspeccedDefs.SkeletonSearchActor[]
|
|
24
|
+
[k: string]: unknown
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type HandlerInput = undefined
|
|
28
|
+
|
|
29
|
+
export interface HandlerSuccess {
|
|
30
|
+
encoding: 'application/json'
|
|
31
|
+
body: OutputSchema
|
|
32
|
+
headers?: { [key: string]: string }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface HandlerError {
|
|
36
|
+
status: number
|
|
37
|
+
message?: string
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type HandlerOutput = HandlerError | HandlerSuccess | HandlerPipeThrough
|
|
41
|
+
export type HandlerReqCtx<HA extends HandlerAuth = never> = {
|
|
42
|
+
auth: HA
|
|
43
|
+
params: QueryParams
|
|
44
|
+
input: HandlerInput
|
|
45
|
+
req: express.Request
|
|
46
|
+
res: express.Response
|
|
47
|
+
}
|
|
48
|
+
export type Handler<HA extends HandlerAuth = never> = (
|
|
49
|
+
ctx: HandlerReqCtx<HA>,
|
|
50
|
+
) => Promise<HandlerOutput> | HandlerOutput
|