-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtypes.tsx
2952 lines (2632 loc) · 104 KB
/
types.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
export type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: { input: string; output: string; }
String: { input: string; output: string; }
Boolean: { input: boolean; output: boolean; }
Int: { input: number; output: number; }
Float: { input: number; output: number; }
DateTime: { input: any; output: any; }
ObjectId: { input: any; output: any; }
};
export type AddCommentInput = {
contentMarkdown: Scalars['String']['input'];
postId: Scalars['ID']['input'];
};
export type AddCommentPayload = {
__typename?: 'AddCommentPayload';
comment?: Maybe<Comment>;
};
export type AddPostToSeriesInput = {
/** The ID of the post to be added to the series. */
postId: Scalars['ObjectId']['input'];
/** The ID of the series to which the post is to be added. */
seriesId: Scalars['ObjectId']['input'];
};
export type AddPostToSeriesPayload = {
__typename?: 'AddPostToSeriesPayload';
/** The series to which the post was added. */
series?: Maybe<Series>;
};
export type AddReplyInput = {
commentId: Scalars['ID']['input'];
contentMarkdown: Scalars['String']['input'];
};
export type AddReplyPayload = {
__typename?: 'AddReplyPayload';
reply?: Maybe<Reply>;
};
/**
* Contains the flag indicating if the audio blog feature is enabled or not.
* User can enable or disable the audio blog feature from the publication settings.
* Shows audio player on blogs if enabled.
*/
export type AudioBlogFeature = Feature & {
__typename?: 'AudioBlogFeature';
/** A flag indicating if the audio blog feature is enabled or not. */
isEnabled: Scalars['Boolean']['output'];
/** The voice type for the audio blog. */
voiceType: AudioBlogVoiceType;
};
/** The voice type for the audio blog. */
export enum AudioBlogVoiceType {
/** Enum for the female voice type of the audio blog. */
Female = 'FEMALE',
/** Enum for the male voice type of the audio blog. */
Male = 'MALE'
}
/** Used when Audioblog feature is enabled. Contains URLs to the audioblog of the post. */
export type AudioUrls = {
__typename?: 'AudioUrls';
/** Female version of audio url of the post. */
female?: Maybe<Scalars['String']['output']>;
/** Male version of audio url of the post. */
male?: Maybe<Scalars['String']['output']>;
};
/** The status of the backup i.e., success or failure. */
export enum BackupStatus {
/** The backup failed. */
Failed = 'failed',
/** The backup was successful. */
Success = 'success'
}
/** A badge that the user has earned. */
export type Badge = Node & {
__typename?: 'Badge';
/** The date the badge was earned. */
dateAssigned?: Maybe<Scalars['DateTime']['output']>;
/** The description of the badge. */
description?: Maybe<Scalars['String']['output']>;
/** The ID of the badge. */
id: Scalars['ID']['output'];
/** The image of the badge. */
image: Scalars['String']['output'];
/** Link to badge page on Hashnode. */
infoURL?: Maybe<Scalars['String']['output']>;
/** The name of the badge. */
name: Scalars['String']['output'];
/** A flag to determine if the badge is hidden. */
suppressed?: Maybe<Scalars['Boolean']['output']>;
};
/**
* Contains basic information about the beta feature.
* A beta feature is a feature that is not yet released to all users.
*/
export type BetaFeature = Node & {
__typename?: 'BetaFeature';
/** The description of the beta feature. */
description?: Maybe<Scalars['String']['output']>;
/** The date the beta feature was created. */
enabled: Scalars['Boolean']['output'];
/** The ID of the beta feature. */
id: Scalars['ID']['output'];
/** The key of the beta feature. */
key: Scalars['String']['output'];
/** The title of the beta feature. */
title?: Maybe<Scalars['String']['output']>;
/** The url of the beta feature. */
url?: Maybe<Scalars['String']['output']>;
};
export type CancelScheduledDraftInput = {
/** The Draft ID of the scheduled draft. */
draftId: Scalars['ID']['input'];
};
export type CancelScheduledDraftPayload = {
__typename?: 'CancelScheduledDraftPayload';
/** Payload returned in response of cancel scheduled post mutation. */
scheduledPost: ScheduledPost;
};
/**
* Contains basic information about the comment.
* A comment is a response to a post.
*/
export type Comment = Node & {
__typename?: 'Comment';
/** The author of the comment. */
author: User;
/** The content of the comment in markdown and html format. */
content: Content;
/** The date the comment was created. */
dateAdded: Scalars['DateTime']['output'];
/** The ID of the comment. */
id: Scalars['ID']['output'];
/** Total number of reactions on the comment by the authenticated user. User must be authenticated to use this field. */
myTotalReactions: Scalars['Int']['output'];
/** Returns a list of replies to the comment. */
replies: CommentReplyConnection;
/** A unique string identifying the comment. Used as element id in the DOM on hashnode blogs. */
stamp?: Maybe<Scalars['String']['output']>;
/** Total number of reactions on the comment. Reactions are hearts added to any comment. */
totalReactions: Scalars['Int']['output'];
};
/**
* Contains basic information about the comment.
* A comment is a response to a post.
*/
export type CommentRepliesArgs = {
after?: InputMaybe<Scalars['String']['input']>;
first: Scalars['Int']['input'];
};
/**
* Connection to get list of replies to a comment.
* Returns a list of edges which contains the posts in publication and cursor to the last item of the previous page.
*/
export type CommentReplyConnection = Connection & {
__typename?: 'CommentReplyConnection';
/**
* A list of edges containing nodes in the connection.
* A node contains a reply to a comment.
*/
edges: Array<CommentReplyEdge>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
/** The total number of documents in the connection. */
totalDocuments: Scalars['Int']['output'];
};
/** An edge that contains a node of type reply and cursor to the node. */
export type CommentReplyEdge = Edge & {
__typename?: 'CommentReplyEdge';
/** A cursor to the last item of the previous page. */
cursor: Scalars['String']['output'];
/** The node containing a reply to a comment. */
node: Reply;
};
/**
* Connection to get list of top commenters. Contains a list of edges containing nodes.
* Each node is a user who commented recently.
* Page info contains information about pagination like hasNextPage and endCursor.
*/
export type CommenterUserConnection = Connection & {
__typename?: 'CommenterUserConnection';
/** A list of edges of commenters. */
edges: Array<UserEdge>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
/**
* Connection to get list of items.
* Returns a list of edges which contains the items and cursor to the last item of the previous page.
* This is a common interface for all connections.
*/
export type Connection = {
/** A list of edges of items connection. */
edges: Array<Edge>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
export type Content = {
__typename?: 'Content';
/** The HTML version of the content. */
html: Scalars['String']['output'];
/** The Markdown version of the content. */
markdown: Scalars['String']['output'];
/** The text version from sanitized html content. HTML tags are stripped and only text is returned. */
text: Scalars['String']['output'];
};
/** Contains information about cover image options of the post. Like URL of the cover image, attribution, etc. */
export type CoverImageOptionsInput = {
/** Information about the cover image attribution. */
coverImageAttribution?: InputMaybe<Scalars['String']['input']>;
/** The name of the cover image photographer, used when cover was chosen from unsplash. */
coverImagePhotographer?: InputMaybe<Scalars['String']['input']>;
/** The URL of the cover image. */
coverImageURL?: InputMaybe<Scalars['String']['input']>;
/** A flag to indicate if the cover attribution is hidden, used when cover was chosen from unsplash. */
isCoverAttributionHidden?: InputMaybe<Scalars['Boolean']['input']>;
/** A flag to indicate if the cover image is sticked to bottom. */
stickCoverToBottom?: InputMaybe<Scalars['Boolean']['input']>;
};
export type CreateWebhookInput = {
events: Array<WebhookEvent>;
publicationId: Scalars['ID']['input'];
secret: Scalars['String']['input'];
url: Scalars['String']['input'];
};
export type CreateWebhookPayload = {
__typename?: 'CreateWebhookPayload';
webhook?: Maybe<Webhook>;
};
export type CustomCss = {
__typename?: 'CustomCSS';
/** Custom CSS that will be applied on the publication homepage. */
home?: Maybe<Scalars['String']['output']>;
/** The same as `home` but minified. */
homeMinified?: Maybe<Scalars['String']['output']>;
/** Custom CSS that will be applied on all posts of the publication. */
post?: Maybe<Scalars['String']['output']>;
/** The same as `post` but minified. */
postMinified?: Maybe<Scalars['String']['output']>;
/** Custom CSS that will be applied on all static pages of the publication. */
static?: Maybe<Scalars['String']['output']>;
/** The same as `static` but minified. */
staticMinified?: Maybe<Scalars['String']['output']>;
};
export type CustomCssFeature = Feature & {
__typename?: 'CustomCSSFeature';
/** CSS that is not published yet. */
draft?: Maybe<CustomCss>;
/** A flag indicating if the custom CSS feature is enabled or not. */
isEnabled: Scalars['Boolean']['output'];
/** CSS that is live. */
published?: Maybe<CustomCss>;
};
/** Contains the publication's dark mode preferences. */
export type DarkModePreferences = {
__typename?: 'DarkModePreferences';
/** A flag indicating if the dark mode is enabled for the publication. */
enabled?: Maybe<Scalars['Boolean']['output']>;
/** The custom dark mode logo of the publication. */
logo?: Maybe<Scalars['String']['output']>;
};
export type DeleteWebhookPayload = {
__typename?: 'DeleteWebhookPayload';
webhook?: Maybe<Webhook>;
};
/** Contains the publication's domain information. */
export type DomainInfo = {
__typename?: 'DomainInfo';
/** The domain of the publication. */
domain?: Maybe<DomainStatus>;
/**
* The subdomain of the publication on hashnode.dev.
*
* It will redirect to you custom domain if it is present and ready.
*/
hashnodeSubdomain?: Maybe<Scalars['String']['output']>;
/** The www prefixed domain of the publication. Says if redirect to www domain is configured. */
wwwPrefixedDomain?: Maybe<DomainStatus>;
};
/** Contains the publication's domain status. */
export type DomainStatus = {
__typename?: 'DomainStatus';
/** The host of the publication domain. */
host: Scalars['String']['output'];
/** A flag indicating if the publication domain is ready. */
ready: Scalars['Boolean']['output'];
};
/**
* Contains basic information about the draft.
* A draft is a post that is not published yet.
*/
export type Draft = Node & {
__typename?: 'Draft';
/** The author of the draft. */
author: User;
canonicalUrl?: Maybe<Scalars['String']['output']>;
/**
* Returns the user details of the co-authors of the post.
* Hashnode users can add up to 4 co-authors as collaborators to their posts.
* This functionality is limited to teams publication.
*/
coAuthors?: Maybe<Array<User>>;
/** Content of the draft in HTML and markdown */
content?: Maybe<Content>;
/** The cover image preference of the draft. Contains cover image URL and other details. */
coverImage?: Maybe<DraftCoverImage>;
/**
* The date the draft was updated.
* @deprecated Use updatedAt instead. Will be removed on 26/12/2023.
*/
dateUpdated: Scalars['DateTime']['output'];
/** Draft feature-related fields. */
features: DraftFeatures;
/** The ID of the draft. */
id: Scalars['ID']['output'];
/** Information about the last backup of the draft. */
lastBackup?: Maybe<DraftBackup>;
/** The date the draft last failed to back up. */
lastFailedBackupAt?: Maybe<Scalars['DateTime']['output']>;
/** The date the draft was last successfully backed up. */
lastSuccessfulBackupAt?: Maybe<Scalars['DateTime']['output']>;
/** OG meta-data of the draft. Contains image url used in open graph meta tags. */
ogMetaData?: Maybe<OpenGraphMetaData>;
readTimeInMinutes: Scalars['Int']['output'];
/** SEO information of the draft. Contains title and description used in meta tags. */
seo?: Maybe<Seo>;
/** Information of the series the draft belongs to. */
series?: Maybe<Series>;
settings: DraftSettings;
slug: Scalars['String']['output'];
/** The subtitle of the draft. It would become the subtitle of the post when published. */
subtitle?: Maybe<Scalars['String']['output']>;
/**
* Returns list of tags added to the draft. Contains tag id, name, slug, etc.
* @deprecated Use tagsV2 instead. Will be removed on 26/02/2024.
*/
tags: Array<Tag>;
tagsV2: Array<DraftTag>;
/** The title of the draft. It would become the title of the post when published. */
title?: Maybe<Scalars['String']['output']>;
updatedAt: Scalars['DateTime']['output'];
};
export type DraftBackup = {
__typename?: 'DraftBackup';
/** The date the backup was created. */
at?: Maybe<Scalars['DateTime']['output']>;
/** The status of the backup i.e., success or failure. */
status?: Maybe<BackupStatus>;
};
/**
* Contains basic information about a Tag within a Draft.
* A tag in a draft is a tag that is not published yet.
*/
export type DraftBaseTag = {
__typename?: 'DraftBaseTag';
/** The name of the tag. Shown in tag page. */
name: Scalars['String']['output'];
/** The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql */
slug: Scalars['String']['output'];
};
/**
* Connection to get list of drafts.
* Returns a list of edges which contains the draft and cursor to the last item of the previous page.
*/
export type DraftConnection = Connection & {
__typename?: 'DraftConnection';
/** A list of edges of drafts connection. */
edges: Array<DraftEdge>;
/** Information to aid in pagination. */
pageInfo: PageInfo;
/** The total number of documents in the connection. */
totalDocuments: Scalars['Int']['output'];
};
/** Contains information about the cover image of the draft. */
export type DraftCoverImage = {
__typename?: 'DraftCoverImage';
/** Provides attribution information for the cover image, if available. */
attribution?: Maybe<Scalars['String']['output']>;
/** True if the image attribution should be hidden. */
isAttributionHidden: Scalars['Boolean']['output'];
/** The name of the photographer who captured the cover image. */
photographer?: Maybe<Scalars['String']['output']>;
/** The URL of the cover image. */
url: Scalars['String']['output'];
};
/** An edge that contains a node of type draft and cursor to the node. */
export type DraftEdge = Edge & {
__typename?: 'DraftEdge';
/** A cursor for use in pagination. */
cursor: Scalars['String']['output'];
/** A node in the connection containing a draft. */
node: Draft;
};
export type DraftFeatures = {
__typename?: 'DraftFeatures';
tableOfContents: TableOfContentsFeature;
};
export type DraftSettings = {
__typename?: 'DraftSettings';
/** A flag to indicate if the comments are disabled for the post. */
disableComments: Scalars['Boolean']['output'];
/** Wether or not the post is hidden from the Hashnode community. */
isDelisted: Scalars['Boolean']['output'];
/** A flag to indicate if the cover image is shown below title of the post. Default position of cover is top of title. */
stickCoverToBottom: Scalars['Boolean']['output'];
};
export type DraftTag = DraftBaseTag | Tag;
/**
* An edge that contains a node and cursor to the node.
* This is a common interface for all edges.
*/
export type Edge = {
/** A cursor for use in pagination. */
cursor: Scalars['String']['output'];
/** A node in the connection. */
node: Node;
};
/** The input for the email import acknowledgement mutation. */
export type EmailCurrentImport = {
__typename?: 'EmailCurrentImport';
/** The number of subscribers that have attempted to import */
attemptedToImport?: Maybe<Scalars['Int']['output']>;
/** The filename of the csv file containing emails */
filename?: Maybe<Scalars['String']['output']>;
/** The date the import started */
importStartedAt: Scalars['DateTime']['output'];
/** The status of the import */
status: EmailImportStatus;
/** The number of subscribers that have been successfully imported */
successfullyImported?: Maybe<Scalars['Int']['output']>;
};
/** Contains information about the email import. */
export type EmailImport = {
__typename?: 'EmailImport';
/** Contains information about the current import example if it is in progress or has finished, date started, etc */
currentImport?: Maybe<EmailCurrentImport>;
};
/** The status of the email import. */
export enum EmailImportStatus {
/** There was an error during the import. */
Failed = 'FAILED',
/** The import has been acknowledged by the user. */
Finished = 'FINISHED',
/** Import has been initialized but is not yet in progress. */
Initialized = 'INITIALIZED',
/** Import is in progress. */
InProgress = 'IN_PROGRESS',
/** Import has to be reviewed by Hashnode. It is not yet reviewed. */
InReview = 'IN_REVIEW',
/** The has been rejected. Nothing has been imported. */
Rejected = 'REJECTED',
/** Import was successful. New emails have been imported. */
Success = 'SUCCESS'
}
/** Common fields that describe a feature. */
export type Feature = {
/** Whether the feature is enabled or not. */
isEnabled: Scalars['Boolean']['output'];
};
export type FeedFilter = {
/** Adds a filter to return posts with maximum number of minutes required to read the post. */
maxReadTime?: InputMaybe<Scalars['Int']['input']>;
/** Adds a filter to return posts with minimum number of minutes required to read the post. */
minReadTime?: InputMaybe<Scalars['Int']['input']>;
/** Adds a filter to return posts with tagged with provided tags only. */
tags?: InputMaybe<Array<Scalars['ObjectId']['input']>>;
/** The type of feed to be returned. */
type?: InputMaybe<FeedType>;
};
/**
* Connection for posts within a feed. Contains a list of edges containing nodes.
* Each node is a post.
* Page info contains information about pagination like hasNextPage and endCursor.
*/
export type FeedPostConnection = Connection & {
__typename?: 'FeedPostConnection';
/** A list of edges containing Post information */
edges: Array<PostEdge>;
/** Information for pagination in Post connection. */
pageInfo: PageInfo;
};
/** Contains information about type of feed to be returned. */
export enum FeedType {
/** Returns posts which were bookmarked by the user, sorted based on recency. */
Bookmarks = 'BOOKMARKS',
/** Returns posts which were featured, sorted based on recency. */
Featured = 'FEATURED',
/**
* Returns only posts of the users you follow or publications you have subscribed to.
*
* Note: You have to be authenticated to use this feed type.
*/
Following = 'FOLLOWING',
/**
* Returns only posts based on users following and interactions.
*
* Personalised feed is curated per requesting user basis.
*/
Personalized = 'PERSONALIZED',
/** Returns posts which were viewed by the user, sorted based on recency. */
ReadingHistory = 'READING_HISTORY',
/** Returns posts which were published recently, sorted based on recency. */
Recent = 'RECENT',
/** Returns posts based on old personalization algorithm. */
Relevant = 'RELEVANT'
}
export enum HttpRedirectionType {
/** A permanent redirect that corresponds to the 308 HTTP status code. */
Permanent = 'PERMANENT',
/** A temporary redirect that corresponds to the 307 HTTP status code. */
Temporary = 'TEMPORARY'
}
/**
* Contains basic information about the tag.
* A tag is a label that categorizes posts with similar topics.
*/
export type ITag = {
/** Total number of users following this tag. */
followersCount: Scalars['Int']['output'];
/** The ID of the tag. */
id: Scalars['ID']['output'];
/** Information about the tag. Contains markdown html and text version of the tag's info. */
info?: Maybe<Content>;
/** The logo of the tag. Shown in tag page. */
logo?: Maybe<Scalars['String']['output']>;
/** The name of the tag. Shown in tag page. */
name: Scalars['String']['output'];
/** Alltime usage count of this tag in posts. */
postsCount: Scalars['Int']['output'];
/** The slug of the tag. Used to access tags feed. Example https://hashnode.com/n/graphql */
slug: Scalars['String']['output'];
/** The tagline of the tag. */
tagline?: Maybe<Scalars['String']['output']>;
};
/** Basic information about a user on Hashnode. */
export type IUser = {
/** Whether or not the user is an ambassador. */
ambassador: Scalars['Boolean']['output'];
/** The availability of the user based on tech stack and interests. Shown on the "I am available for" section in user's profile. */
availableFor?: Maybe<Scalars['String']['output']>;
/** Returns a list of badges that the user has earned. Shown on blogs /badges page. Example - https://iamshadmirza.com/badges */
badges: Array<Badge>;
/** The bio of the user. Visible in about me section of the user's profile. */
bio?: Maybe<Content>;
/** The date the user joined Hashnode. */
dateJoined?: Maybe<Scalars['DateTime']['output']>;
/** Whether or not the user is deactivated. */
deactivated: Scalars['Boolean']['output'];
/** The users who are following this user */
followers: UserConnection;
/** The number of users that follow the requested user. Visible in the user's profile. */
followersCount: Scalars['Int']['output'];
/** The number of users that this user is following. Visible in the user's profile. */
followingsCount: Scalars['Int']['output'];
/** The users which this user is following */
follows: UserConnection;
/** The ID of the user. It can be used to identify the user. */
id: Scalars['ID']['output'];
/** The location of the user. */
location?: Maybe<Scalars['String']['output']>;
/** The name of the user. */
name: Scalars['String']['output'];
/** Returns the list of posts the user has published. */
posts: UserPostConnection;
/** The URL to the profile picture of the user. */
profilePicture?: Maybe<Scalars['String']['output']>;
/** Publications associated with the user. Includes personal and team publications. */
publications: UserPublicationsConnection;
/** The social media links of the user. Shown on the user's profile. */
socialMediaLinks?: Maybe<SocialMediaLinks>;
/** The tagline of the user. Shown on the user's profile below the name. */
tagline?: Maybe<Scalars['String']['output']>;
/** Returns a list of tags that the user follows. */
tagsFollowing: Array<Tag>;
/** The username of the user. It is unique and tied with user's profile URL. Example - https://hashnode.com/@username */
username: Scalars['String']['output'];
};
/** Basic information about a user on Hashnode. */
export type IUserFollowersArgs = {
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
};
/** Basic information about a user on Hashnode. */
export type IUserFollowsArgs = {
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
};
/** Basic information about a user on Hashnode. */
export type IUserPostsArgs = {
filter?: InputMaybe<UserPostConnectionFilter>;
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
sortBy?: InputMaybe<UserPostsSort>;
};
/** Basic information about a user on Hashnode. */
export type IUserPublicationsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<UserPublicationsConnectionFilter>;
first: Scalars['Int']['input'];
};
export type LikeCommentInput = {
commentId: Scalars['ID']['input'];
likesCount?: InputMaybe<Scalars['Int']['input']>;
};
export type LikeCommentPayload = {
__typename?: 'LikeCommentPayload';
comment?: Maybe<Comment>;
};
export type LikePostInput = {
likesCount?: InputMaybe<Scalars['Int']['input']>;
postId: Scalars['ID']['input'];
};
export type LikePostPayload = {
__typename?: 'LikePostPayload';
post?: Maybe<Post>;
};
/** Contains information about meta tags of the post. Used for SEO purpose. */
export type MetaTagsInput = {
/** The description of the post used in og:description for SEO. */
description?: InputMaybe<Scalars['String']['input']>;
/** The image URL of the post used in og:image for SEO. */
image?: InputMaybe<Scalars['String']['input']>;
/** The title of the post used in og:title for SEO. */
title?: InputMaybe<Scalars['String']['input']>;
};
export type Mutation = {
__typename?: 'Mutation';
/** Adds a comment to a post. */
addComment: AddCommentPayload;
/** Adds a post to a series. */
addPostToSeries: AddPostToSeriesPayload;
/** Adds a reply to a comment. */
addReply: AddReplyPayload;
cancelScheduledDraft: CancelScheduledDraftPayload;
createWebhook: CreateWebhookPayload;
deleteWebhook: DeleteWebhookPayload;
/** Likes a comment. */
likeComment: LikeCommentPayload;
/** Likes a post. */
likePost: LikePostPayload;
/** Publishes an existing draft as a post. */
publishDraft: PublishDraftPayload;
/** Creates a new post. */
publishPost: PublishPostPayload;
recommendPublications: RecommendPublicationsPayload;
/** Removes a comment from a post. */
removeComment: RemoveCommentPayload;
/** Removes a post. */
removePost: RemovePostPayload;
removeRecommendation: RemoveRecommendationPayload;
/** Removes a reply from a comment. */
removeReply: RemoveReplyPayload;
/** Reschedule a draft. */
rescheduleDraft: RescheduleDraftPayload;
resendWebhookRequest: ResendWebhookRequestPayload;
scheduleDraft: ScheduleDraftPayload;
subscribeToNewsletter: SubscribeToNewsletterPayload;
/**
* Update the follow state for the user that is provided via id or username.
* If the authenticated user does not follow the user, the mutation will follow the user.
* If the authenticated user already follows the user, the mutation will un-follow the user.
* Only available to the authenticated user.
*/
toggleFollowUser: ToggleFollowUserPayload;
triggerWebhookTest: TriggerWebhookTestPayload;
unsubscribeFromNewsletter: UnsubscribeFromNewsletterPayload;
/** Updates a comment on a post. */
updateComment: UpdateCommentPayload;
updatePost: UpdatePostPayload;
/** Updates a reply */
updateReply: UpdateReplyPayload;
updateWebhook: UpdateWebhookPayload;
};
export type MutationAddCommentArgs = {
input: AddCommentInput;
};
export type MutationAddPostToSeriesArgs = {
input: AddPostToSeriesInput;
};
export type MutationAddReplyArgs = {
input: AddReplyInput;
};
export type MutationCancelScheduledDraftArgs = {
input: CancelScheduledDraftInput;
};
export type MutationCreateWebhookArgs = {
input: CreateWebhookInput;
};
export type MutationDeleteWebhookArgs = {
id: Scalars['ID']['input'];
};
export type MutationLikeCommentArgs = {
input: LikeCommentInput;
};
export type MutationLikePostArgs = {
input: LikePostInput;
};
export type MutationPublishDraftArgs = {
input: PublishDraftInput;
};
export type MutationPublishPostArgs = {
input: PublishPostInput;
};
export type MutationRecommendPublicationsArgs = {
input: RecommendPublicationsInput;
};
export type MutationRemoveCommentArgs = {
input: RemoveCommentInput;
};
export type MutationRemovePostArgs = {
input: RemovePostInput;
};
export type MutationRemoveRecommendationArgs = {
input: RemoveRecommendationInput;
};
export type MutationRemoveReplyArgs = {
input: RemoveReplyInput;
};
export type MutationRescheduleDraftArgs = {
input: RescheduleDraftInput;
};
export type MutationResendWebhookRequestArgs = {
input: ResendWebhookRequestInput;
};
export type MutationScheduleDraftArgs = {
input: ScheduleDraftInput;
};
export type MutationSubscribeToNewsletterArgs = {
input: SubscribeToNewsletterInput;
};
export type MutationToggleFollowUserArgs = {
id?: InputMaybe<Scalars['ID']['input']>;
username?: InputMaybe<Scalars['String']['input']>;
};
export type MutationTriggerWebhookTestArgs = {
input: TriggerWebhookTestInput;
};
export type MutationUnsubscribeFromNewsletterArgs = {
input: UnsubscribeFromNewsletterInput;
};
export type MutationUpdateCommentArgs = {
input: UpdateCommentInput;
};
export type MutationUpdatePostArgs = {
input: UpdatePostInput;
};
export type MutationUpdateReplyArgs = {
input: UpdateReplyInput;
};
export type MutationUpdateWebhookArgs = {
input: UpdateWebhookInput;
};
/**
* Basic information about the authenticated user.
* User must be authenticated to use this type.
*/
export type MyUser = IUser & Node & {
__typename?: 'MyUser';
/**
* Whether or not the user is an ambassador.
* @deprecated Ambassadors program no longer active. Will be removed after 02/01/2024
*/
ambassador: Scalars['Boolean']['output'];
/** The availability of the user based on tech stack and interests. Shown on the "I am available for" section in user's profile. */
availableFor?: Maybe<Scalars['String']['output']>;
/** Returns a list of badges that the user has earned. Shown on blogs /badges page. Example - https://iamshadmirza.com/badges */
badges: Array<Badge>;
/** A list of beta features that the user has access to. Only available to the authenticated user. */
betaFeatures: Array<BetaFeature>;
/** The bio of the user. Visible in about me section of the user's profile. */
bio?: Maybe<Content>;
/** The date the user joined Hashnode. */
dateJoined?: Maybe<Scalars['DateTime']['output']>;
/** Whether or not the user is deactivated. */
deactivated: Scalars['Boolean']['output'];
/** Email address of the user. Only available to the authenticated user. */
email?: Maybe<Scalars['String']['output']>;
/** The users who are following this user */
followers: UserConnection;
/** The number of users that follow the requested user. Visible in the user's profile. */
followersCount: Scalars['Int']['output'];
/** The number of users that this user is following. Visible in the user's profile. */
followingsCount: Scalars['Int']['output'];
/** The users which this user is following */
follows: UserConnection;
/** The ID of the user. It can be used to identify the user. */
id: Scalars['ID']['output'];
/** The location of the user. */
location?: Maybe<Scalars['String']['output']>;
/** The name of the user. */
name: Scalars['String']['output'];
/** Returns the list of posts the user has published. */
posts: UserPostConnection;
/** The URL to the profile picture of the user. */
profilePicture?: Maybe<Scalars['String']['output']>;
provider?: Maybe<Scalars['String']['output']>;
/** Publications associated with the user. Includes personal and team publications. */
publications: UserPublicationsConnection;
/** The social media links of the user. Shown on the user's profile. */
socialMediaLinks?: Maybe<SocialMediaLinks>;
/** The tagline of the user. Shown on the user's profile below the name. */
tagline?: Maybe<Scalars['String']['output']>;
/** Returns a list of tags that the user follows. */
tagsFollowing: Array<Tag>;
/** Hashnode users are subscribed to a newsletter by default. This field can be used to unsubscribe from the newsletter. Only available to the authenticated user. */
unsubscribeCode?: Maybe<Scalars['String']['output']>;
/** The username of the user. It is unique and tied with user's profile URL. Example - https://hashnode.com/@username */
username: Scalars['String']['output'];
};
/**
* Basic information about the authenticated user.
* User must be authenticated to use this type.
*/
export type MyUserFollowersArgs = {
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
};
/**
* Basic information about the authenticated user.
* User must be authenticated to use this type.
*/
export type MyUserFollowsArgs = {
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
};
/**
* Basic information about the authenticated user.
* User must be authenticated to use this type.
*/
export type MyUserPostsArgs = {
filter?: InputMaybe<UserPostConnectionFilter>;
page: Scalars['Int']['input'];
pageSize: Scalars['Int']['input'];
sortBy?: InputMaybe<UserPostsSort>;
};
/**
* Basic information about the authenticated user.
* User must be authenticated to use this type.
*/
export type MyUserPublicationsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
filter?: InputMaybe<UserPublicationsConnectionFilter>;
first: Scalars['Int']['input'];
};
/**
* Contains the flag indicating if the newsletter feature is enabled or not.
* User can enable or disable the newsletter feature from the publication settings.
* Shows a newsletter prompt on blog if enabled.
*/
export type NewsletterFeature = Feature & {
__typename?: 'NewsletterFeature';
frequency?: Maybe<NewsletterFrequency>;
/** A flag indicating if the newsletter feature is enabled or not. */
isEnabled: Scalars['Boolean']['output'];
};
export enum NewsletterFrequency {
Asap = 'asap',
Weekly = 'weekly'
}
export enum NewsletterSubscribeStatus {
Pending = 'PENDING'
}
export enum NewsletterUnsubscribeStatus {
Unsubscribed = 'UNSUBSCRIBED'
}