+449
-33
schema.graphql
+449
-33
schema.graphql
···
16
16
}
17
17
18
18
type AppBskyActorProfile {
19
+
id: ID!
19
20
uri: String!
20
21
cid: String!
21
22
did: String!
···
29
30
joinedViaStarterPack: JSON
30
31
labels: JSON
31
32
pinnedPost: JSON
32
-
appBskyActorProfile: AppBskyActorProfile
33
33
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
34
34
appBskyFeedPostgatesCount: Int!
35
35
appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]!
···
81
81
interval: DateInterval
82
82
}
83
83
84
+
input AppBskyActorProfileInput {
85
+
avatar: JSON
86
+
banner: JSON
87
+
createdAt: String
88
+
description: String
89
+
displayName: String
90
+
joinedViaStarterPack: JSON
91
+
labels: JSON
92
+
pinnedPost: JSON
93
+
}
94
+
84
95
input AppBskyActorProfileSortFieldInput {
85
96
field: AppBskyActorProfileGroupByField!
86
97
direction: SortDirection
···
101
112
joinedViaStarterPack: StringFilter
102
113
labels: StringFilter
103
114
pinnedPost: StringFilter
115
+
json: StringFilter
116
+
and: [AppBskyActorProfileWhereInput]
117
+
or: [AppBskyActorProfileWhereInput]
118
+
}
119
+
120
+
type AppBskyEmbedDefsAspectRatio {
121
+
height: Int
122
+
width: Int
104
123
}
105
124
106
125
type AppBskyEmbedExternal {
126
+
id: ID!
107
127
uri: String!
108
128
cid: String!
109
129
did: String!
110
130
indexedAt: String!
111
131
actorHandle: String
112
-
external: JSON!
132
+
external: AppBskyEmbedExternalExternal!
113
133
appBskyActorProfile: AppBskyActorProfile
114
134
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
115
135
appBskyFeedPostgatesCount: Int!
···
136
156
type AppBskyEmbedExternalEdge {
137
157
node: AppBskyEmbedExternal!
138
158
cursor: String!
159
+
}
160
+
161
+
type AppBskyEmbedExternalExternal {
162
+
description: String
163
+
thumb: Blob
164
+
title: String
165
+
uri: String
139
166
}
140
167
141
168
enum AppBskyEmbedExternalGroupByField {
···
148
175
interval: DateInterval
149
176
}
150
177
178
+
input AppBskyEmbedExternalInput {
179
+
external: JSON!
180
+
}
181
+
151
182
input AppBskyEmbedExternalSortFieldInput {
152
183
field: AppBskyEmbedExternalGroupByField!
153
184
direction: SortDirection
···
161
192
collection: StringFilter
162
193
actorHandle: StringFilter
163
194
external: StringFilter
195
+
json: StringFilter
196
+
and: [AppBskyEmbedExternalWhereInput]
197
+
or: [AppBskyEmbedExternalWhereInput]
164
198
}
165
199
166
200
type AppBskyEmbedImages {
201
+
id: ID!
167
202
uri: String!
168
203
cid: String!
169
204
did: String!
170
205
indexedAt: String!
171
206
actorHandle: String
172
-
images: JSON!
207
+
images: [AppBskyEmbedImagesImage!]
173
208
appBskyActorProfile: AppBskyActorProfile
174
209
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
175
210
appBskyFeedPostgatesCount: Int!
···
208
243
interval: DateInterval
209
244
}
210
245
246
+
type AppBskyEmbedImagesImage {
247
+
alt: String
248
+
aspectRatio: JSON
249
+
image: Blob
250
+
}
251
+
252
+
input AppBskyEmbedImagesInput {
253
+
images: JSON!
254
+
}
255
+
211
256
input AppBskyEmbedImagesSortFieldInput {
212
257
field: AppBskyEmbedImagesGroupByField!
213
258
direction: SortDirection
···
221
266
collection: StringFilter
222
267
actorHandle: StringFilter
223
268
images: StringFilter
269
+
json: StringFilter
270
+
and: [AppBskyEmbedImagesWhereInput]
271
+
or: [AppBskyEmbedImagesWhereInput]
224
272
}
225
273
226
274
type AppBskyEmbedRecord {
227
-
uri: String!
228
-
cid: String!
229
-
did: String!
230
-
indexedAt: String!
231
-
actorHandle: String
232
-
record: JSON!
233
-
appBskyActorProfile: AppBskyActorProfile
234
-
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
235
-
appBskyFeedPostgatesCount: Int!
236
-
appBskyFeedThreadgates(limit: Int): [AppBskyFeedThreadgate!]!
237
-
appBskyFeedThreadgatesCount: Int!
238
-
appBskyActorProfiles(limit: Int): [AppBskyActorProfile!]!
239
-
appBskyActorProfilesCount: Int!
240
-
fmTealAlphaFeedPlays(limit: Int): [FmTealAlphaFeedPlay!]!
241
-
fmTealAlphaFeedPlaysCount: Int!
275
+
record: JSON
242
276
}
243
277
244
278
type AppBskyEmbedRecordAggregated {
···
268
302
interval: DateInterval
269
303
}
270
304
305
+
input AppBskyEmbedRecordInput {
306
+
record: JSON!
307
+
}
308
+
271
309
input AppBskyEmbedRecordSortFieldInput {
272
310
field: AppBskyEmbedRecordGroupByField!
273
311
direction: SortDirection
···
281
319
collection: StringFilter
282
320
actorHandle: StringFilter
283
321
record: StringFilter
322
+
json: StringFilter
323
+
and: [AppBskyEmbedRecordWhereInput]
324
+
or: [AppBskyEmbedRecordWhereInput]
284
325
}
285
326
286
327
type AppBskyEmbedRecordWithMedia {
328
+
id: ID!
287
329
uri: String!
288
330
cid: String!
289
331
did: String!
290
332
indexedAt: String!
291
333
actorHandle: String
292
334
media: JSON!
293
-
record: JSON!
335
+
record: AppBskyEmbedRecord!
294
336
appBskyActorProfile: AppBskyActorProfile
295
337
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
296
338
appBskyFeedPostgatesCount: Int!
···
331
373
interval: DateInterval
332
374
}
333
375
376
+
input AppBskyEmbedRecordWithMediaInput {
377
+
media: JSON!
378
+
record: JSON!
379
+
}
380
+
334
381
input AppBskyEmbedRecordWithMediaSortFieldInput {
335
382
field: AppBskyEmbedRecordWithMediaGroupByField!
336
383
direction: SortDirection
···
345
392
actorHandle: StringFilter
346
393
media: StringFilter
347
394
record: StringFilter
395
+
json: StringFilter
396
+
and: [AppBskyEmbedRecordWithMediaWhereInput]
397
+
or: [AppBskyEmbedRecordWithMediaWhereInput]
348
398
}
349
399
350
400
type AppBskyEmbedVideo {
401
+
id: ID!
351
402
uri: String!
352
403
cid: String!
353
404
did: String!
354
405
indexedAt: String!
355
406
actorHandle: String
356
407
alt: String
357
-
aspectRatio: JSON
358
-
captions: JSON
408
+
aspectRatio: AppBskyEmbedDefsAspectRatio
409
+
captions: [AppBskyEmbedVideoCaption]
359
410
video: Blob
360
411
appBskyActorProfile: AppBskyActorProfile
361
412
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
···
374
425
captions: JSON
375
426
video: JSON
376
427
count: Int!
428
+
}
429
+
430
+
type AppBskyEmbedVideoCaption {
431
+
file: Blob
432
+
lang: String
377
433
}
378
434
379
435
type AppBskyEmbedVideoConnection {
···
401
457
interval: DateInterval
402
458
}
403
459
460
+
input AppBskyEmbedVideoInput {
461
+
alt: String
462
+
aspectRatio: JSON
463
+
captions: JSON
464
+
video: JSON!
465
+
}
466
+
404
467
input AppBskyEmbedVideoSortFieldInput {
405
468
field: AppBskyEmbedVideoGroupByField!
406
469
direction: SortDirection
···
417
480
aspectRatio: StringFilter
418
481
captions: StringFilter
419
482
video: StringFilter
483
+
json: StringFilter
484
+
and: [AppBskyEmbedVideoWhereInput]
485
+
or: [AppBskyEmbedVideoWhereInput]
420
486
}
421
487
422
488
type AppBskyFeedPostgate {
489
+
id: ID!
423
490
uri: String!
424
491
cid: String!
425
492
did: String!
···
429
496
detachedEmbeddingUris: [String]
430
497
embeddingRules: JSON
431
498
post: String!
432
-
appBskyFeedPostgate: AppBskyFeedPostgate
433
499
appBskyFeedThreadgate: AppBskyFeedThreadgate
434
500
appBskyActorProfile: AppBskyActorProfile
435
501
fmTealAlphaFeedPlay: FmTealAlphaFeedPlay
···
476
542
interval: DateInterval
477
543
}
478
544
545
+
input AppBskyFeedPostgateInput {
546
+
createdAt: String!
547
+
detachedEmbeddingUris: [String]
548
+
embeddingRules: JSON
549
+
post: String!
550
+
}
551
+
479
552
input AppBskyFeedPostgateSortFieldInput {
480
553
field: AppBskyFeedPostgateGroupByField!
481
554
direction: SortDirection
···
492
565
detachedEmbeddingUris: StringFilter
493
566
embeddingRules: StringFilter
494
567
post: StringFilter
568
+
json: StringFilter
569
+
and: [AppBskyFeedPostgateWhereInput]
570
+
or: [AppBskyFeedPostgateWhereInput]
495
571
}
496
572
497
573
type AppBskyFeedThreadgate {
574
+
id: ID!
498
575
uri: String!
499
576
cid: String!
500
577
did: String!
···
505
582
hiddenReplies: [String]
506
583
post: String!
507
584
appBskyFeedPostgate: AppBskyFeedPostgate
508
-
appBskyFeedThreadgate: AppBskyFeedThreadgate
509
585
appBskyActorProfile: AppBskyActorProfile
510
586
fmTealAlphaFeedPlay: FmTealAlphaFeedPlay
511
587
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
···
549
625
input AppBskyFeedThreadgateGroupByFieldInput {
550
626
field: AppBskyFeedThreadgateGroupByField!
551
627
interval: DateInterval
628
+
}
629
+
630
+
input AppBskyFeedThreadgateInput {
631
+
allow: JSON
632
+
createdAt: String!
633
+
hiddenReplies: [String]
634
+
post: String!
552
635
}
553
636
554
637
input AppBskyFeedThreadgateSortFieldInput {
···
567
650
createdAt: StringFilter
568
651
hiddenReplies: StringFilter
569
652
post: StringFilter
653
+
json: StringFilter
654
+
and: [AppBskyFeedThreadgateWhereInput]
655
+
or: [AppBskyFeedThreadgateWhereInput]
570
656
}
571
657
572
658
type AppBskyRichtextFacet {
659
+
id: ID!
573
660
uri: String!
574
661
cid: String!
575
662
did: String!
576
663
indexedAt: String!
577
664
actorHandle: String
578
665
features: JSON!
579
-
index: JSON!
666
+
index: AppBskyRichtextFacetByteSlice!
580
667
appBskyActorProfile: AppBskyActorProfile
581
668
appBskyFeedPostgates(limit: Int): [AppBskyFeedPostgate!]!
582
669
appBskyFeedPostgatesCount: Int!
···
594
681
count: Int!
595
682
}
596
683
684
+
type AppBskyRichtextFacetByteSlice {
685
+
byteEnd: Int
686
+
byteStart: Int
687
+
}
688
+
597
689
type AppBskyRichtextFacetConnection {
598
690
totalCount: Int!
599
691
pageInfo: PageInfo!
···
617
709
interval: DateInterval
618
710
}
619
711
712
+
input AppBskyRichtextFacetInput {
713
+
features: JSON!
714
+
index: JSON!
715
+
}
716
+
620
717
input AppBskyRichtextFacetSortFieldInput {
621
718
field: AppBskyRichtextFacetGroupByField!
622
719
direction: SortDirection
···
631
728
actorHandle: StringFilter
632
729
features: StringFilter
633
730
index: StringFilter
731
+
json: StringFilter
732
+
and: [AppBskyRichtextFacetWhereInput]
733
+
or: [AppBskyRichtextFacetWhereInput]
634
734
}
635
735
636
736
type Blob {
···
644
744
url(preset: String): String!
645
745
}
646
746
747
+
type BlobUploadResponse {
748
+
blob: Blob!
749
+
}
750
+
751
+
type CollectionSummary {
752
+
collection: String!
753
+
estimatedRepos: Int!
754
+
isExternal: Boolean!
755
+
}
756
+
647
757
type ComAtprotoRepoStrongRef {
758
+
id: ID!
648
759
did: String!
649
760
indexedAt: String!
650
761
actorHandle: String
···
693
804
interval: DateInterval
694
805
}
695
806
807
+
input ComAtprotoRepoStrongRefInput {
808
+
cid: String!
809
+
uri: String!
810
+
}
811
+
696
812
input ComAtprotoRepoStrongRefSortFieldInput {
697
813
field: ComAtprotoRepoStrongRefGroupByField!
698
814
direction: SortDirection
···
705
821
actorHandle: StringFilter
706
822
cid: StringFilter
707
823
uri: StringFilter
824
+
json: StringFilter
825
+
and: [ComAtprotoRepoStrongRefWhereInput]
826
+
or: [ComAtprotoRepoStrongRefWhereInput]
708
827
}
709
828
710
829
enum DateInterval {
···
726
845
lte: String
727
846
}
728
847
848
+
type DeleteSliceRecordsOutput {
849
+
message: String!
850
+
recordsDeleted: Int!
851
+
actorsDeleted: Int!
852
+
}
853
+
854
+
type FmTealAlphaFeedDefsArtist {
855
+
artistMbId: String
856
+
artistName: String
857
+
}
858
+
729
859
type FmTealAlphaFeedPlay {
860
+
id: ID!
730
861
uri: String!
731
862
cid: String!
732
863
did: String!
···
734
865
actorHandle: String
735
866
artistMbIds: [String]
736
867
artistNames: [String]
737
-
artists: JSON
868
+
artists: [FmTealAlphaFeedDefsArtist]
738
869
duration: Int
739
870
isrc: String
740
871
musicServiceBaseDomain: String
···
810
941
interval: DateInterval
811
942
}
812
943
944
+
input FmTealAlphaFeedPlayInput {
945
+
artistMbIds: [String]
946
+
artistNames: [String]
947
+
artists: JSON
948
+
duration: Int
949
+
isrc: String
950
+
musicServiceBaseDomain: String
951
+
originUrl: String
952
+
playedTime: String
953
+
recordingMbId: String
954
+
releaseMbId: String
955
+
releaseName: String
956
+
submissionClientAgent: String
957
+
trackMbId: String
958
+
trackName: String!
959
+
}
960
+
813
961
input FmTealAlphaFeedPlaySortFieldInput {
814
962
field: FmTealAlphaFeedPlayGroupByField!
815
963
direction: SortDirection
···
836
984
submissionClientAgent: StringFilter
837
985
trackMbId: StringFilter
838
986
trackName: StringFilter
987
+
json: StringFilter
988
+
and: [FmTealAlphaFeedPlayWhereInput]
989
+
or: [FmTealAlphaFeedPlayWhereInput]
839
990
}
840
991
841
992
input IntFilter {
···
847
998
lte: Int
848
999
}
849
1000
1001
+
type JetstreamLogEntry {
1002
+
id: String!
1003
+
createdAt: String!
1004
+
logType: String!
1005
+
jobId: String
1006
+
userDid: String
1007
+
sliceUri: String
1008
+
level: String!
1009
+
message: String!
1010
+
metadata: JSON
1011
+
}
1012
+
850
1013
scalar JSON
851
1014
852
1015
type Mutation {
853
1016
"""Sync user collections for a given DID"""
854
1017
syncUserCollections(did: String!): SyncResult!
1018
+
1019
+
"""Create a new app.bsky.embed.record record"""
1020
+
createAppBskyEmbedRecord(input: AppBskyEmbedRecordInput!, rkey: String): AppBskyEmbedRecord!
1021
+
1022
+
"""Update a app.bsky.embed.record record"""
1023
+
updateAppBskyEmbedRecord(rkey: String!, input: AppBskyEmbedRecordInput!): AppBskyEmbedRecord!
1024
+
1025
+
"""Delete a app.bsky.embed.record record"""
1026
+
deleteAppBskyEmbedRecord(rkey: String!): AppBskyEmbedRecord!
1027
+
1028
+
"""Create a new app.bsky.embed.images record"""
1029
+
createAppBskyEmbedImages(input: AppBskyEmbedImagesInput!, rkey: String): AppBskyEmbedImages!
1030
+
1031
+
"""Update a app.bsky.embed.images record"""
1032
+
updateAppBskyEmbedImages(rkey: String!, input: AppBskyEmbedImagesInput!): AppBskyEmbedImages!
1033
+
1034
+
"""Delete a app.bsky.embed.images record"""
1035
+
deleteAppBskyEmbedImages(rkey: String!): AppBskyEmbedImages!
1036
+
1037
+
"""Create a new app.bsky.embed.recordWithMedia record"""
1038
+
createAppBskyEmbedRecordWithMedia(input: AppBskyEmbedRecordWithMediaInput!, rkey: String): AppBskyEmbedRecordWithMedia!
1039
+
1040
+
"""Update a app.bsky.embed.recordWithMedia record"""
1041
+
updateAppBskyEmbedRecordWithMedia(rkey: String!, input: AppBskyEmbedRecordWithMediaInput!): AppBskyEmbedRecordWithMedia!
1042
+
1043
+
"""Delete a app.bsky.embed.recordWithMedia record"""
1044
+
deleteAppBskyEmbedRecordWithMedia(rkey: String!): AppBskyEmbedRecordWithMedia!
1045
+
1046
+
"""Create a new app.bsky.embed.video record"""
1047
+
createAppBskyEmbedVideo(input: AppBskyEmbedVideoInput!, rkey: String): AppBskyEmbedVideo!
1048
+
1049
+
"""Update a app.bsky.embed.video record"""
1050
+
updateAppBskyEmbedVideo(rkey: String!, input: AppBskyEmbedVideoInput!): AppBskyEmbedVideo!
1051
+
1052
+
"""Delete a app.bsky.embed.video record"""
1053
+
deleteAppBskyEmbedVideo(rkey: String!): AppBskyEmbedVideo!
1054
+
1055
+
"""Create a new app.bsky.embed.external record"""
1056
+
createAppBskyEmbedExternal(input: AppBskyEmbedExternalInput!, rkey: String): AppBskyEmbedExternal!
1057
+
1058
+
"""Update a app.bsky.embed.external record"""
1059
+
updateAppBskyEmbedExternal(rkey: String!, input: AppBskyEmbedExternalInput!): AppBskyEmbedExternal!
1060
+
1061
+
"""Delete a app.bsky.embed.external record"""
1062
+
deleteAppBskyEmbedExternal(rkey: String!): AppBskyEmbedExternal!
1063
+
1064
+
"""Create a new app.bsky.feed.postgate record"""
1065
+
createAppBskyFeedPostgate(input: AppBskyFeedPostgateInput!, rkey: String): AppBskyFeedPostgate!
1066
+
1067
+
"""Update a app.bsky.feed.postgate record"""
1068
+
updateAppBskyFeedPostgate(rkey: String!, input: AppBskyFeedPostgateInput!): AppBskyFeedPostgate!
1069
+
1070
+
"""Delete a app.bsky.feed.postgate record"""
1071
+
deleteAppBskyFeedPostgate(rkey: String!): AppBskyFeedPostgate!
1072
+
1073
+
"""Create a new app.bsky.feed.threadgate record"""
1074
+
createAppBskyFeedThreadgate(input: AppBskyFeedThreadgateInput!, rkey: String): AppBskyFeedThreadgate!
1075
+
1076
+
"""Update a app.bsky.feed.threadgate record"""
1077
+
updateAppBskyFeedThreadgate(rkey: String!, input: AppBskyFeedThreadgateInput!): AppBskyFeedThreadgate!
1078
+
1079
+
"""Delete a app.bsky.feed.threadgate record"""
1080
+
deleteAppBskyFeedThreadgate(rkey: String!): AppBskyFeedThreadgate!
1081
+
1082
+
"""Create a new app.bsky.richtext.facet record"""
1083
+
createAppBskyRichtextFacet(input: AppBskyRichtextFacetInput!, rkey: String): AppBskyRichtextFacet!
1084
+
1085
+
"""Update a app.bsky.richtext.facet record"""
1086
+
updateAppBskyRichtextFacet(rkey: String!, input: AppBskyRichtextFacetInput!): AppBskyRichtextFacet!
1087
+
1088
+
"""Delete a app.bsky.richtext.facet record"""
1089
+
deleteAppBskyRichtextFacet(rkey: String!): AppBskyRichtextFacet!
1090
+
1091
+
"""Create a new app.bsky.actor.profile record"""
1092
+
createAppBskyActorProfile(input: AppBskyActorProfileInput!, rkey: String): AppBskyActorProfile!
1093
+
1094
+
"""Update a app.bsky.actor.profile record"""
1095
+
updateAppBskyActorProfile(rkey: String!, input: AppBskyActorProfileInput!): AppBskyActorProfile!
1096
+
1097
+
"""Delete a app.bsky.actor.profile record"""
1098
+
deleteAppBskyActorProfile(rkey: String!): AppBskyActorProfile!
1099
+
1100
+
"""Create a new com.atproto.repo.strongRef record"""
1101
+
createComAtprotoRepoStrongRef(input: ComAtprotoRepoStrongRefInput!, rkey: String): ComAtprotoRepoStrongRef!
1102
+
1103
+
"""Update a com.atproto.repo.strongRef record"""
1104
+
updateComAtprotoRepoStrongRef(rkey: String!, input: ComAtprotoRepoStrongRefInput!): ComAtprotoRepoStrongRef!
1105
+
1106
+
"""Delete a com.atproto.repo.strongRef record"""
1107
+
deleteComAtprotoRepoStrongRef(rkey: String!): ComAtprotoRepoStrongRef!
1108
+
1109
+
"""Create a new fm.teal.alpha.feed.play record"""
1110
+
createFmTealAlphaFeedPlay(input: FmTealAlphaFeedPlayInput!, rkey: String): FmTealAlphaFeedPlay!
1111
+
1112
+
"""Update a fm.teal.alpha.feed.play record"""
1113
+
updateFmTealAlphaFeedPlay(rkey: String!, input: FmTealAlphaFeedPlayInput!): FmTealAlphaFeedPlay!
1114
+
1115
+
"""Delete a fm.teal.alpha.feed.play record"""
1116
+
deleteFmTealAlphaFeedPlay(rkey: String!): FmTealAlphaFeedPlay!
1117
+
1118
+
"""Start a sync job to backfill collections from the ATProto relay"""
1119
+
startSync(slice: String, collections: [String], externalCollections: [String], repos: [String], limitPerRepo: Int, skipValidation: Boolean, maxRepos: Int): StartSyncOutput!
1120
+
1121
+
"""Cancel a pending or running sync job"""
1122
+
cancelJob(jobId: String!): Boolean!
1123
+
1124
+
"""Delete a sync job from the database"""
1125
+
deleteJob(id: ID!): ID
1126
+
1127
+
"""Upload a blob to the user's AT Protocol repository"""
1128
+
uploadBlob(data: String!, mimeType: String!): BlobUploadResponse!
1129
+
1130
+
"""Register a new OAuth client for a slice"""
1131
+
createOAuthClient(sliceUri: String!, clientName: String!, redirectUris: [String!]!, scope: String!, clientUri: String, logoUri: String, tosUri: String, policyUri: String): OAuthClient!
1132
+
1133
+
"""Update an OAuth client"""
1134
+
updateOAuthClient(clientId: String!, clientName: String, redirectUris: [String], scope: String, clientUri: String, logoUri: String, tosUri: String, policyUri: String): OAuthClient!
1135
+
1136
+
"""Delete an OAuth client"""
1137
+
deleteOAuthClient(clientId: String!): Boolean!
1138
+
1139
+
"""
1140
+
Delete all records and actors from a slice index. Requires authentication and slice ownership.
1141
+
"""
1142
+
deleteSliceRecords(slice: String): DeleteSliceRecordsOutput!
1143
+
}
1144
+
1145
+
type OAuthClient {
1146
+
clientId: String!
1147
+
clientSecret: String
1148
+
clientName: String!
1149
+
redirectUris: [String!]!
1150
+
grantTypes: [String!]!
1151
+
responseTypes: [String!]!
1152
+
scope: String
1153
+
clientUri: String
1154
+
logoUri: String
1155
+
tosUri: String
1156
+
policyUri: String
1157
+
createdAt: String!
1158
+
createdByDid: String!
855
1159
}
856
1160
857
1161
type PageInfo {
···
877
1181
Aggregated query for app.bsky.embed.images records with GROUP BY support
878
1182
"""
879
1183
appBskyEmbedImagesesAggregated(groupBy: [AppBskyEmbedImagesGroupByFieldInput!], where: AppBskyEmbedImagesWhereInput, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedImagesAggregated!]!
1184
+
1185
+
"""Query app.bsky.embed.recordWithMedia records"""
1186
+
appBskyEmbedRecordWithMedias(first: Int, after: String, last: Int, before: String, sortBy: [AppBskyEmbedRecordWithMediaSortFieldInput], where: AppBskyEmbedRecordWithMediaWhereInput): AppBskyEmbedRecordWithMediaConnection!
1187
+
1188
+
"""
1189
+
Aggregated query for app.bsky.embed.recordWithMedia records with GROUP BY support
1190
+
"""
1191
+
appBskyEmbedRecordWithMediasAggregated(groupBy: [AppBskyEmbedRecordWithMediaGroupByFieldInput!], where: AppBskyEmbedRecordWithMediaWhereInput, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedRecordWithMediaAggregated!]!
880
1192
881
1193
"""Query app.bsky.embed.video records"""
882
1194
appBskyEmbedVideos(first: Int, after: String, last: Int, before: String, sortBy: [AppBskyEmbedVideoSortFieldInput], where: AppBskyEmbedVideoWhereInput): AppBskyEmbedVideoConnection!
···
886
1198
"""
887
1199
appBskyEmbedVideosAggregated(groupBy: [AppBskyEmbedVideoGroupByFieldInput!], where: AppBskyEmbedVideoWhereInput, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedVideoAggregated!]!
888
1200
889
-
"""Query app.bsky.embed.recordWithMedia records"""
890
-
appBskyEmbedRecordWithMedias(first: Int, after: String, last: Int, before: String, sortBy: [AppBskyEmbedRecordWithMediaSortFieldInput], where: AppBskyEmbedRecordWithMediaWhereInput): AppBskyEmbedRecordWithMediaConnection!
891
-
892
-
"""
893
-
Aggregated query for app.bsky.embed.recordWithMedia records with GROUP BY support
894
-
"""
895
-
appBskyEmbedRecordWithMediasAggregated(groupBy: [AppBskyEmbedRecordWithMediaGroupByFieldInput!], where: AppBskyEmbedRecordWithMediaWhereInput, orderBy: AggregationOrderBy, limit: Int): [AppBskyEmbedRecordWithMediaAggregated!]!
896
-
897
1201
"""Query app.bsky.embed.external records"""
898
1202
appBskyEmbedExternals(first: Int, after: String, last: Int, before: String, sortBy: [AppBskyEmbedExternalSortFieldInput], where: AppBskyEmbedExternalWhereInput): AppBskyEmbedExternalConnection!
899
1203
···
949
1253
Aggregated query for fm.teal.alpha.feed.play records with GROUP BY support
950
1254
"""
951
1255
fmTealAlphaFeedPlaysAggregated(groupBy: [FmTealAlphaFeedPlayGroupByFieldInput!], where: FmTealAlphaFeedPlayWhereInput, orderBy: AggregationOrderBy, limit: Int): [FmTealAlphaFeedPlayAggregated!]!
1256
+
1257
+
"""
1258
+
Get logs from the Jetstream real-time indexing service, optionally filtered by slice
1259
+
"""
1260
+
jetstreamLogs(slice: String, limit: Int): [JetstreamLogEntry!]!
1261
+
1262
+
"""Get status of a specific sync job"""
1263
+
syncJob(jobId: String!): SyncJob
1264
+
1265
+
"""Get sync job history for a slice"""
1266
+
syncJobs(slice: String, limit: Int): [SyncJob!]!
1267
+
1268
+
"""Get logs for a specific sync job"""
1269
+
syncJobLogs(jobId: String!, limit: Int): [JetstreamLogEntry!]!
1270
+
1271
+
"""Get summary of repos that would be synced based on collection filters"""
1272
+
getSyncSummary(slice: String!, collections: [String], externalCollections: [String], repos: [String]): SyncSummary!
1273
+
1274
+
"""
1275
+
Get sparkline data for multiple slices showing record indexing activity over time
1276
+
"""
1277
+
sparklines(slices: [String!]!, interval: String, duration: String): [SliceSparkline!]!
1278
+
1279
+
"""
1280
+
Query records across all collections in a slice with filtering and pagination.
1281
+
Provide either sliceUri or both actorHandle and rkey.
1282
+
"""
1283
+
sliceRecords(sliceUri: String, actorHandle: String, rkey: String, first: Int, after: String, where: SliceRecordsWhereInput): SliceRecordsConnection!
1284
+
1285
+
"""Get all OAuth clients for a slice"""
1286
+
oauthClients(slice: String): [OAuthClient!]!
1287
+
}
1288
+
1289
+
type SliceRecord {
1290
+
uri: String!
1291
+
cid: String!
1292
+
did: String!
1293
+
collection: String!
1294
+
value: String!
1295
+
indexedAt: String!
1296
+
}
1297
+
1298
+
type SliceRecordEdge {
1299
+
node: SliceRecord!
1300
+
cursor: String!
1301
+
}
1302
+
1303
+
type SliceRecordsConnection {
1304
+
totalCount: Int!
1305
+
edges: [SliceRecordEdge!]!
1306
+
pageInfo: PageInfo!
1307
+
}
1308
+
1309
+
input SliceRecordsWhereInput {
1310
+
collection: StringFilter
1311
+
did: StringFilter
1312
+
uri: StringFilter
1313
+
cid: StringFilter
1314
+
indexedAt: DateTimeFilter
1315
+
json: StringFilter
1316
+
or: [SliceRecordsWhereInput]
1317
+
}
1318
+
1319
+
type SliceSparkline {
1320
+
sliceUri: String!
1321
+
points: [SparklinePoint!]!
952
1322
}
953
1323
954
1324
enum SortDirection {
···
956
1326
desc
957
1327
}
958
1328
1329
+
type SparklinePoint {
1330
+
timestamp: String!
1331
+
count: Int!
1332
+
}
1333
+
1334
+
type StartSyncOutput {
1335
+
jobId: String!
1336
+
message: String!
1337
+
}
1338
+
959
1339
input StringFilter {
960
1340
eq: String
961
1341
in: [String]
962
1342
contains: String
1343
+
fuzzy: String
963
1344
gt: String
964
1345
gte: String
965
1346
lt: String
···
1010
1391
Subscribe to fm.teal.alpha.feed.play record deletion events. Returns the URI of deleted records.
1011
1392
"""
1012
1393
fmTealAlphaFeedPlayDeleted: String!
1394
+
1395
+
"""Subscribe to new Jetstream log entries, optionally filtered by slice"""
1396
+
jetstreamLogsCreated(slice: String): JetstreamLogEntry!
1397
+
1398
+
"""Subscribe to sync job status updates"""
1399
+
syncJobUpdated(jobId: String, slice: String): SyncJob!
1400
+
}
1401
+
1402
+
type SyncJob {
1403
+
id: ID!
1404
+
jobId: String!
1405
+
sliceUri: String!
1406
+
status: String!
1407
+
createdAt: String!
1408
+
startedAt: String
1409
+
completedAt: String
1410
+
result: SyncJobResult
1411
+
error: String
1412
+
retryCount: Int!
1413
+
}
1414
+
1415
+
type SyncJobResult {
1416
+
success: Boolean!
1417
+
totalRecords: Int!
1418
+
collectionsSynced: [String!]!
1419
+
reposProcessed: Int!
1420
+
message: String!
1013
1421
}
1014
1422
1015
1423
type SyncResult {
···
1020
1428
message: String!
1021
1429
}
1022
1430
1431
+
type SyncSummary {
1432
+
totalRepos: Int!
1433
+
cappedRepos: Int!
1434
+
wouldBeCapped: Boolean!
1435
+
appliedLimit: Int!
1436
+
collectionsSummary: [CollectionSummary!]!
1437
+
}
1438
+
+1
-1
src/TopTracks.tsx
+1
-1
src/TopTracks.tsx
+4
-1
src/TrackItem.tsx
+4
-1
src/TrackItem.tsx
+33
-6
src/__generated__/AppPaginationQuery.graphql.ts
+33
-6
src/__generated__/AppPaginationQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<38f32c1e1448eb48251113a07e781789>>
2
+
* @generated SignedSource<<4144e88e9b03430408917b25e498a033>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
56
56
}
57
57
]
58
58
}
59
-
];
59
+
],
60
+
v2 = {
61
+
"alias": null,
62
+
"args": null,
63
+
"kind": "ScalarField",
64
+
"name": "id",
65
+
"storageKey": null
66
+
};
60
67
return {
61
68
"fragment": {
62
69
"argumentDefinitions": (v0/*: any*/),
···
138
145
{
139
146
"alias": null,
140
147
"args": null,
141
-
"kind": "ScalarField",
148
+
"concreteType": "FmTealAlphaFeedDefsArtist",
149
+
"kind": "LinkedField",
142
150
"name": "artists",
151
+
"plural": true,
152
+
"selections": [
153
+
{
154
+
"alias": null,
155
+
"args": null,
156
+
"kind": "ScalarField",
157
+
"name": "artistName",
158
+
"storageKey": null
159
+
},
160
+
{
161
+
"alias": null,
162
+
"args": null,
163
+
"kind": "ScalarField",
164
+
"name": "artistMbId",
165
+
"storageKey": null
166
+
}
167
+
],
143
168
"storageKey": null
144
169
},
145
170
{
···
184
209
"kind": "ScalarField",
185
210
"name": "displayName",
186
211
"storageKey": null
187
-
}
212
+
},
213
+
(v2/*: any*/)
188
214
],
189
215
"storageKey": null
190
216
},
217
+
(v2/*: any*/),
191
218
{
192
219
"alias": null,
193
220
"args": null,
···
250
277
]
251
278
},
252
279
"params": {
253
-
"cacheID": "cb24b99f8b849bdfc642275cfd4df3fe",
280
+
"cacheID": "d41913a8ba0cde3255c03b34e36f4baf",
254
281
"id": null,
255
282
"metadata": {},
256
283
"name": "AppPaginationQuery",
257
284
"operationKind": "query",
258
-
"text": "query AppPaginationQuery(\n $count: Int = 20\n $cursor: String\n) {\n ...App_plays_1G22uz\n}\n\nfragment App_plays_1G22uz on Query {\n fmTealAlphaFeedPlays(first: $count, after: $cursor, sortBy: [{field: playedTime, direction: desc}]) {\n totalCount\n edges {\n node {\n playedTime\n ...TrackItem_play\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n }\n}\n"
285
+
"text": "query AppPaginationQuery(\n $count: Int = 20\n $cursor: String\n) {\n ...App_plays_1G22uz\n}\n\nfragment App_plays_1G22uz on Query {\n fmTealAlphaFeedPlays(first: $count, after: $cursor, sortBy: [{field: playedTime, direction: desc}]) {\n totalCount\n edges {\n node {\n playedTime\n ...TrackItem_play\n id\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists {\n artistName\n artistMbId\n }\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n id\n }\n}\n"
259
286
}
260
287
};
261
288
})();
+36
-5
src/__generated__/AppQuery.graphql.ts
+36
-5
src/__generated__/AppQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<bd4d57eff6a192efe2535389231fe37e>>
2
+
* @generated SignedSource<<4eadb1b67651fecb72943df792f91938>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
12
12
import { FragmentRefs } from "relay-runtime";
13
13
export type FmTealAlphaFeedPlayWhereInput = {
14
14
actorHandle?: StringFilter | null | undefined;
15
+
and?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
15
16
artistMbIds?: StringFilter | null | undefined;
16
17
artistNames?: StringFilter | null | undefined;
17
18
artists?: StringFilter | null | undefined;
···
21
22
duration?: IntFilter | null | undefined;
22
23
indexedAt?: DateTimeFilter | null | undefined;
23
24
isrc?: StringFilter | null | undefined;
25
+
json?: StringFilter | null | undefined;
24
26
musicServiceBaseDomain?: StringFilter | null | undefined;
27
+
or?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
25
28
originUrl?: StringFilter | null | undefined;
26
29
playedTime?: StringFilter | null | undefined;
27
30
recordingMbId?: StringFilter | null | undefined;
···
42
45
export type StringFilter = {
43
46
contains?: string | null | undefined;
44
47
eq?: string | null | undefined;
48
+
fuzzy?: string | null | undefined;
45
49
gt?: string | null | undefined;
46
50
gte?: string | null | undefined;
47
51
in?: ReadonlyArray<string | null | undefined> | null | undefined;
···
98
102
"kind": "ScalarField",
99
103
"name": "playedTime",
100
104
"storageKey": null
105
+
},
106
+
v3 = {
107
+
"alias": null,
108
+
"args": null,
109
+
"kind": "ScalarField",
110
+
"name": "id",
111
+
"storageKey": null
101
112
};
102
113
return {
103
114
"fragment": {
···
168
179
{
169
180
"alias": null,
170
181
"args": null,
171
-
"kind": "ScalarField",
182
+
"concreteType": "FmTealAlphaFeedDefsArtist",
183
+
"kind": "LinkedField",
172
184
"name": "artists",
185
+
"plural": true,
186
+
"selections": [
187
+
{
188
+
"alias": null,
189
+
"args": null,
190
+
"kind": "ScalarField",
191
+
"name": "artistName",
192
+
"storageKey": null
193
+
},
194
+
{
195
+
"alias": null,
196
+
"args": null,
197
+
"kind": "ScalarField",
198
+
"name": "artistMbId",
199
+
"storageKey": null
200
+
}
201
+
],
173
202
"storageKey": null
174
203
},
175
204
{
···
214
243
"kind": "ScalarField",
215
244
"name": "displayName",
216
245
"storageKey": null
217
-
}
246
+
},
247
+
(v3/*: any*/)
218
248
],
219
249
"storageKey": null
220
250
},
251
+
(v3/*: any*/),
221
252
{
222
253
"alias": null,
223
254
"args": null,
···
320
351
]
321
352
},
322
353
"params": {
323
-
"cacheID": "038b79e3af13c34df9bfca055c5f7829",
354
+
"cacheID": "ab3827e5716f65074a802ddb36f66d2b",
324
355
"id": null,
325
356
"metadata": {},
326
357
"name": "AppQuery",
327
358
"operationKind": "query",
328
-
"text": "query AppQuery(\n $chartWhere: FmTealAlphaFeedPlayWhereInput!\n) {\n ...App_plays\n ...ScrobbleChart_data\n}\n\nfragment App_plays on Query {\n fmTealAlphaFeedPlays(first: 20, sortBy: [{field: playedTime, direction: desc}]) {\n totalCount\n edges {\n node {\n playedTime\n ...TrackItem_play\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment ScrobbleChart_data on Query {\n chartData: fmTealAlphaFeedPlaysAggregated(groupBy: [{field: playedTime, interval: day}], where: $chartWhere, limit: 90) {\n playedTime\n count\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n }\n}\n"
359
+
"text": "query AppQuery(\n $chartWhere: FmTealAlphaFeedPlayWhereInput!\n) {\n ...App_plays\n ...ScrobbleChart_data\n}\n\nfragment App_plays on Query {\n fmTealAlphaFeedPlays(first: 20, sortBy: [{field: playedTime, direction: desc}]) {\n totalCount\n edges {\n node {\n playedTime\n ...TrackItem_play\n id\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment ScrobbleChart_data on Query {\n chartData: fmTealAlphaFeedPlaysAggregated(groupBy: [{field: playedTime, interval: day}], where: $chartWhere, limit: 90) {\n playedTime\n count\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists {\n artistName\n artistMbId\n }\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n id\n }\n}\n"
329
360
}
330
361
};
331
362
})();
+33
-6
src/__generated__/AppSubscription.graphql.ts
+33
-6
src/__generated__/AppSubscription.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<0e4c25e0e4257b2c7042e374f3568241>>
2
+
* @generated SignedSource<<f0666e46fa4693a3d7869f9de0266bab>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
36
36
"args": null,
37
37
"kind": "ScalarField",
38
38
"name": "playedTime",
39
+
"storageKey": null
40
+
},
41
+
v2 = {
42
+
"alias": null,
43
+
"args": null,
44
+
"kind": "ScalarField",
45
+
"name": "id",
39
46
"storageKey": null
40
47
};
41
48
return {
···
93
100
{
94
101
"alias": null,
95
102
"args": null,
96
-
"kind": "ScalarField",
103
+
"concreteType": "FmTealAlphaFeedDefsArtist",
104
+
"kind": "LinkedField",
97
105
"name": "artists",
106
+
"plural": true,
107
+
"selections": [
108
+
{
109
+
"alias": null,
110
+
"args": null,
111
+
"kind": "ScalarField",
112
+
"name": "artistName",
113
+
"storageKey": null
114
+
},
115
+
{
116
+
"alias": null,
117
+
"args": null,
118
+
"kind": "ScalarField",
119
+
"name": "artistMbId",
120
+
"storageKey": null
121
+
}
122
+
],
98
123
"storageKey": null
99
124
},
100
125
{
···
139
164
"kind": "ScalarField",
140
165
"name": "displayName",
141
166
"storageKey": null
142
-
}
167
+
},
168
+
(v2/*: any*/)
143
169
],
144
170
"storageKey": null
145
-
}
171
+
},
172
+
(v2/*: any*/)
146
173
],
147
174
"storageKey": null
148
175
}
149
176
]
150
177
},
151
178
"params": {
152
-
"cacheID": "d2419c5bef1474c19f75ee5b97062013",
179
+
"cacheID": "f547109f04ecd8d1a8679dbf0b7f98b4",
153
180
"id": null,
154
181
"metadata": {},
155
182
"name": "AppSubscription",
156
183
"operationKind": "subscription",
157
-
"text": "subscription AppSubscription {\n fmTealAlphaFeedPlayCreated {\n uri\n playedTime\n ...TrackItem_play\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n }\n}\n"
184
+
"text": "subscription AppSubscription {\n fmTealAlphaFeedPlayCreated {\n uri\n playedTime\n ...TrackItem_play\n id\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists {\n artistName\n artistMbId\n }\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n id\n }\n}\n"
158
185
}
159
186
};
160
187
})();
+36
-5
src/__generated__/ProfilePaginationQuery.graphql.ts
+36
-5
src/__generated__/ProfilePaginationQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<05e7a8d8804cbbe062ff7dce37522623>>
2
+
* @generated SignedSource<<ebf74750639e18cbf2425bae6cf23f69>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
12
12
import { FragmentRefs } from "relay-runtime";
13
13
export type FmTealAlphaFeedPlayWhereInput = {
14
14
actorHandle?: StringFilter | null | undefined;
15
+
and?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
15
16
artistMbIds?: StringFilter | null | undefined;
16
17
artistNames?: StringFilter | null | undefined;
17
18
artists?: StringFilter | null | undefined;
···
21
22
duration?: IntFilter | null | undefined;
22
23
indexedAt?: DateTimeFilter | null | undefined;
23
24
isrc?: StringFilter | null | undefined;
25
+
json?: StringFilter | null | undefined;
24
26
musicServiceBaseDomain?: StringFilter | null | undefined;
27
+
or?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
25
28
originUrl?: StringFilter | null | undefined;
26
29
playedTime?: StringFilter | null | undefined;
27
30
recordingMbId?: StringFilter | null | undefined;
···
42
45
export type StringFilter = {
43
46
contains?: string | null | undefined;
44
47
eq?: string | null | undefined;
48
+
fuzzy?: string | null | undefined;
45
49
gt?: string | null | undefined;
46
50
gte?: string | null | undefined;
47
51
in?: ReadonlyArray<string | null | undefined> | null | undefined;
···
114
118
]
115
119
},
116
120
(v1/*: any*/)
117
-
];
121
+
],
122
+
v3 = {
123
+
"alias": null,
124
+
"args": null,
125
+
"kind": "ScalarField",
126
+
"name": "id",
127
+
"storageKey": null
128
+
};
118
129
return {
119
130
"fragment": {
120
131
"argumentDefinitions": (v0/*: any*/),
···
197
208
{
198
209
"alias": null,
199
210
"args": null,
200
-
"kind": "ScalarField",
211
+
"concreteType": "FmTealAlphaFeedDefsArtist",
212
+
"kind": "LinkedField",
201
213
"name": "artists",
214
+
"plural": true,
215
+
"selections": [
216
+
{
217
+
"alias": null,
218
+
"args": null,
219
+
"kind": "ScalarField",
220
+
"name": "artistName",
221
+
"storageKey": null
222
+
},
223
+
{
224
+
"alias": null,
225
+
"args": null,
226
+
"kind": "ScalarField",
227
+
"name": "artistMbId",
228
+
"storageKey": null
229
+
}
230
+
],
202
231
"storageKey": null
203
232
},
204
233
{
···
244
273
"name": "displayName",
245
274
"storageKey": null
246
275
},
276
+
(v3/*: any*/),
247
277
{
248
278
"alias": null,
249
279
"args": null,
···
278
308
],
279
309
"storageKey": null
280
310
},
311
+
(v3/*: any*/),
281
312
{
282
313
"alias": null,
283
314
"args": null,
···
341
372
]
342
373
},
343
374
"params": {
344
-
"cacheID": "72ce84bf8cc8ac016e19ca462a2f7b70",
375
+
"cacheID": "776562076929c2efa168256be3868659",
345
376
"id": null,
346
377
"metadata": {},
347
378
"name": "ProfilePaginationQuery",
348
379
"operationKind": "query",
349
-
"text": "query ProfilePaginationQuery(\n $count: Int = 20\n $cursor: String\n $where: FmTealAlphaFeedPlayWhereInput!\n) {\n ...Profile_plays_mjR8k\n}\n\nfragment Profile_plays_mjR8k on Query {\n fmTealAlphaFeedPlays(first: $count, after: $cursor, sortBy: [{field: playedTime, direction: desc}], where: $where) {\n totalCount\n edges {\n node {\n ...TrackItem_play\n actorHandle\n appBskyActorProfile {\n displayName\n description\n avatar {\n url(preset: \"avatar\")\n }\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n }\n}\n"
380
+
"text": "query ProfilePaginationQuery(\n $count: Int = 20\n $cursor: String\n $where: FmTealAlphaFeedPlayWhereInput!\n) {\n ...Profile_plays_mjR8k\n}\n\nfragment Profile_plays_mjR8k on Query {\n fmTealAlphaFeedPlays(first: $count, after: $cursor, sortBy: [{field: playedTime, direction: desc}], where: $where) {\n totalCount\n edges {\n node {\n ...TrackItem_play\n actorHandle\n appBskyActorProfile {\n displayName\n description\n avatar {\n url(preset: \"avatar\")\n }\n id\n }\n id\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists {\n artistName\n artistMbId\n }\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n id\n }\n}\n"
350
381
}
351
382
};
352
383
})();
+35
-4
src/__generated__/ProfileQuery.graphql.ts
+35
-4
src/__generated__/ProfileQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<8d62f515b7652094345304e43124aa72>>
2
+
* @generated SignedSource<<0e53ec9fb8aaac689644785adae05957>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
12
12
import { FragmentRefs } from "relay-runtime";
13
13
export type FmTealAlphaFeedPlayWhereInput = {
14
14
actorHandle?: StringFilter | null | undefined;
15
+
and?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
15
16
artistMbIds?: StringFilter | null | undefined;
16
17
artistNames?: StringFilter | null | undefined;
17
18
artists?: StringFilter | null | undefined;
···
21
22
duration?: IntFilter | null | undefined;
22
23
indexedAt?: DateTimeFilter | null | undefined;
23
24
isrc?: StringFilter | null | undefined;
25
+
json?: StringFilter | null | undefined;
24
26
musicServiceBaseDomain?: StringFilter | null | undefined;
27
+
or?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
25
28
originUrl?: StringFilter | null | undefined;
26
29
playedTime?: StringFilter | null | undefined;
27
30
recordingMbId?: StringFilter | null | undefined;
···
42
45
export type StringFilter = {
43
46
contains?: string | null | undefined;
44
47
eq?: string | null | undefined;
48
+
fuzzy?: string | null | undefined;
45
49
gt?: string | null | undefined;
46
50
gte?: string | null | undefined;
47
51
in?: ReadonlyArray<string | null | undefined> | null | undefined;
···
108
112
"kind": "ScalarField",
109
113
"name": "playedTime",
110
114
"storageKey": null
115
+
},
116
+
v5 = {
117
+
"alias": null,
118
+
"args": null,
119
+
"kind": "ScalarField",
120
+
"name": "id",
121
+
"storageKey": null
111
122
};
112
123
return {
113
124
"fragment": {
···
186
197
{
187
198
"alias": null,
188
199
"args": null,
189
-
"kind": "ScalarField",
200
+
"concreteType": "FmTealAlphaFeedDefsArtist",
201
+
"kind": "LinkedField",
190
202
"name": "artists",
203
+
"plural": true,
204
+
"selections": [
205
+
{
206
+
"alias": null,
207
+
"args": null,
208
+
"kind": "ScalarField",
209
+
"name": "artistName",
210
+
"storageKey": null
211
+
},
212
+
{
213
+
"alias": null,
214
+
"args": null,
215
+
"kind": "ScalarField",
216
+
"name": "artistMbId",
217
+
"storageKey": null
218
+
}
219
+
],
191
220
"storageKey": null
192
221
},
193
222
{
···
233
262
"name": "displayName",
234
263
"storageKey": null
235
264
},
265
+
(v5/*: any*/),
236
266
{
237
267
"alias": null,
238
268
"args": null,
···
267
297
],
268
298
"storageKey": null
269
299
},
300
+
(v5/*: any*/),
270
301
{
271
302
"alias": null,
272
303
"args": null,
···
370
401
]
371
402
},
372
403
"params": {
373
-
"cacheID": "083f03714f183a8e68ff0a6d15f0d757",
404
+
"cacheID": "6555ddce48917a1e1a522f5b4800192b",
374
405
"id": null,
375
406
"metadata": {},
376
407
"name": "ProfileQuery",
377
408
"operationKind": "query",
378
-
"text": "query ProfileQuery(\n $where: FmTealAlphaFeedPlayWhereInput!\n $chartWhere: FmTealAlphaFeedPlayWhereInput!\n) {\n ...Profile_plays_3FC4Qo\n ...ScrobbleChart_data\n}\n\nfragment Profile_plays_3FC4Qo on Query {\n fmTealAlphaFeedPlays(first: 20, sortBy: [{field: playedTime, direction: desc}], where: $where) {\n totalCount\n edges {\n node {\n ...TrackItem_play\n actorHandle\n appBskyActorProfile {\n displayName\n description\n avatar {\n url(preset: \"avatar\")\n }\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment ScrobbleChart_data on Query {\n chartData: fmTealAlphaFeedPlaysAggregated(groupBy: [{field: playedTime, interval: day}], where: $chartWhere, limit: 90) {\n playedTime\n count\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n }\n}\n"
409
+
"text": "query ProfileQuery(\n $where: FmTealAlphaFeedPlayWhereInput!\n $chartWhere: FmTealAlphaFeedPlayWhereInput!\n) {\n ...Profile_plays_3FC4Qo\n ...ScrobbleChart_data\n}\n\nfragment Profile_plays_3FC4Qo on Query {\n fmTealAlphaFeedPlays(first: 20, sortBy: [{field: playedTime, direction: desc}], where: $where) {\n totalCount\n edges {\n node {\n ...TrackItem_play\n actorHandle\n appBskyActorProfile {\n displayName\n description\n avatar {\n url(preset: \"avatar\")\n }\n id\n }\n id\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}\n\nfragment ScrobbleChart_data on Query {\n chartData: fmTealAlphaFeedPlaysAggregated(groupBy: [{field: playedTime, interval: day}], where: $chartWhere, limit: 90) {\n playedTime\n count\n }\n}\n\nfragment TrackItem_play on FmTealAlphaFeedPlay {\n trackName\n playedTime\n artists {\n artistName\n artistMbId\n }\n releaseName\n releaseMbId\n actorHandle\n musicServiceBaseDomain\n appBskyActorProfile {\n displayName\n id\n }\n}\n"
379
410
}
380
411
};
381
412
})();
+5
-1
src/__generated__/TopAlbumsQuery.graphql.ts
+5
-1
src/__generated__/TopAlbumsQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<ba0a977fd251b8099185f84ffca5fe7f>>
2
+
* @generated SignedSource<<5b4069c82e72c33b75aaff1d16f1421f>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
11
11
import { ConcreteRequest } from 'relay-runtime';
12
12
export type FmTealAlphaFeedPlayWhereInput = {
13
13
actorHandle?: StringFilter | null | undefined;
14
+
and?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
14
15
artistMbIds?: StringFilter | null | undefined;
15
16
artistNames?: StringFilter | null | undefined;
16
17
artists?: StringFilter | null | undefined;
···
20
21
duration?: IntFilter | null | undefined;
21
22
indexedAt?: DateTimeFilter | null | undefined;
22
23
isrc?: StringFilter | null | undefined;
24
+
json?: StringFilter | null | undefined;
23
25
musicServiceBaseDomain?: StringFilter | null | undefined;
26
+
or?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
24
27
originUrl?: StringFilter | null | undefined;
25
28
playedTime?: StringFilter | null | undefined;
26
29
recordingMbId?: StringFilter | null | undefined;
···
41
44
export type StringFilter = {
42
45
contains?: string | null | undefined;
43
46
eq?: string | null | undefined;
47
+
fuzzy?: string | null | undefined;
44
48
gt?: string | null | undefined;
45
49
gte?: string | null | undefined;
46
50
in?: ReadonlyArray<string | null | undefined> | null | undefined;
+5
-1
src/__generated__/TopTracksQuery.graphql.ts
+5
-1
src/__generated__/TopTracksQuery.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<d82ad2bc23a12ef33ba6bce1df9620f3>>
2
+
* @generated SignedSource<<28bfcfbaf324e20bbfc524afcc9ed549>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
11
11
import { ConcreteRequest } from 'relay-runtime';
12
12
export type FmTealAlphaFeedPlayWhereInput = {
13
13
actorHandle?: StringFilter | null | undefined;
14
+
and?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
14
15
artistMbIds?: StringFilter | null | undefined;
15
16
artistNames?: StringFilter | null | undefined;
16
17
artists?: StringFilter | null | undefined;
···
20
21
duration?: IntFilter | null | undefined;
21
22
indexedAt?: DateTimeFilter | null | undefined;
22
23
isrc?: StringFilter | null | undefined;
24
+
json?: StringFilter | null | undefined;
23
25
musicServiceBaseDomain?: StringFilter | null | undefined;
26
+
or?: ReadonlyArray<FmTealAlphaFeedPlayWhereInput | null | undefined> | null | undefined;
24
27
originUrl?: StringFilter | null | undefined;
25
28
playedTime?: StringFilter | null | undefined;
26
29
recordingMbId?: StringFilter | null | undefined;
···
41
44
export type StringFilter = {
42
45
contains?: string | null | undefined;
43
46
eq?: string | null | undefined;
47
+
fuzzy?: string | null | undefined;
44
48
gt?: string | null | undefined;
45
49
gte?: string | null | undefined;
46
50
in?: ReadonlyArray<string | null | undefined> | null | undefined;
+25
-4
src/__generated__/TrackItem_play.graphql.ts
+25
-4
src/__generated__/TrackItem_play.graphql.ts
···
1
1
/**
2
-
* @generated SignedSource<<8d4b2dad137cc86578e0230225cde09f>>
2
+
* @generated SignedSource<<b5b4d3bdca427eb13381e978bf98d7b9>>
3
3
* @lightSyntaxTransform
4
4
* @nogrep
5
5
*/
···
15
15
readonly appBskyActorProfile: {
16
16
readonly displayName: string | null | undefined;
17
17
} | null | undefined;
18
-
readonly artists: any | null | undefined;
18
+
readonly artists: ReadonlyArray<{
19
+
readonly artistMbId: string | null | undefined;
20
+
readonly artistName: string | null | undefined;
21
+
} | null | undefined> | null | undefined;
19
22
readonly musicServiceBaseDomain: string | null | undefined;
20
23
readonly playedTime: string | null | undefined;
21
24
readonly releaseMbId: string | null | undefined;
···
51
54
{
52
55
"alias": null,
53
56
"args": null,
54
-
"kind": "ScalarField",
57
+
"concreteType": "FmTealAlphaFeedDefsArtist",
58
+
"kind": "LinkedField",
55
59
"name": "artists",
60
+
"plural": true,
61
+
"selections": [
62
+
{
63
+
"alias": null,
64
+
"args": null,
65
+
"kind": "ScalarField",
66
+
"name": "artistName",
67
+
"storageKey": null
68
+
},
69
+
{
70
+
"alias": null,
71
+
"args": null,
72
+
"kind": "ScalarField",
73
+
"name": "artistMbId",
74
+
"storageKey": null
75
+
}
76
+
],
56
77
"storageKey": null
57
78
},
58
79
{
···
106
127
"abstractKey": null
107
128
};
108
129
109
-
(node as any).hash = "ff1bb5f1d370a2aa9ee45a6db4320f83";
130
+
(node as any).hash = "9a70dada54e50e27bdd19183f1b16e35";
110
131
111
132
export default node;