@symbiosis-lab/moss-plugin-matters 1.4.2
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 +88 -0
- package/README.md +18 -0
- package/assets/icon.svg +1 -0
- package/assets/manifest.json +36 -0
- package/codegen.ts +26 -0
- package/e2e/moss-cli.test.ts +338 -0
- package/features/api/fetch-articles.feature +39 -0
- package/features/auth/wallet-auth.feature +27 -0
- package/features/download/retry-logic.feature +36 -0
- package/features/download/self-correcting.feature +83 -0
- package/features/download/worker-pool.feature +29 -0
- package/features/social/fetch-social-data.feature +40 -0
- package/features/steps/api.steps.ts +180 -0
- package/features/steps/download.steps.ts +423 -0
- package/features/steps/incremental-sync.steps.ts +105 -0
- package/features/steps/self-correcting.steps.ts +575 -0
- package/features/steps/social.steps.ts +257 -0
- package/features/steps/syndication.steps.ts +264 -0
- package/features/steps/wallet-auth.steps.ts +185 -0
- package/features/sync/article-sync.feature +49 -0
- package/features/sync/homepage-grid.feature +43 -0
- package/features/sync/incremental-sync.feature +28 -0
- package/features/syndication/create-draft.feature +35 -0
- package/package.json +58 -0
- package/src/__generated__/schema.graphql +4289 -0
- package/src/__generated__/types.ts +5355 -0
- package/src/__tests__/api.test.ts +678 -0
- package/src/__tests__/auth-route.test.ts +38 -0
- package/src/__tests__/auth-routing.test.ts +462 -0
- package/src/__tests__/auto-detect.test.ts +412 -0
- package/src/__tests__/binding-guard.test.ts +256 -0
- package/src/__tests__/config.test.ts +212 -0
- package/src/__tests__/converter.test.ts +289 -0
- package/src/__tests__/credential.test.ts +332 -0
- package/src/__tests__/domain.test.ts +341 -0
- package/src/__tests__/downloader.test.ts +679 -0
- package/src/__tests__/folder-detection.test.ts +289 -0
- package/src/__tests__/force-fresh-login.test.ts +236 -0
- package/src/__tests__/main.test.ts +2437 -0
- package/src/__tests__/progress.test.ts +93 -0
- package/src/__tests__/session.test.ts +375 -0
- package/src/__tests__/social-integration.test.ts +386 -0
- package/src/__tests__/social-sync-logic.test.ts +107 -0
- package/src/__tests__/social.test.ts +788 -0
- package/src/__tests__/sync.test.ts +1273 -0
- package/src/__tests__/syndication-toast-law.test.ts +649 -0
- package/src/__tests__/syndication.test.ts +125 -0
- package/src/__tests__/test-profile-escape.test.ts +209 -0
- package/src/__tests__/url-detect.test.ts +79 -0
- package/src/__tests__/utils.test.ts +226 -0
- package/src/api.ts +1366 -0
- package/src/auth-route.ts +38 -0
- package/src/config.ts +80 -0
- package/src/converter.ts +305 -0
- package/src/credential.ts +329 -0
- package/src/domain.ts +183 -0
- package/src/downloader.ts +761 -0
- package/src/main.ts +2092 -0
- package/src/progress.ts +89 -0
- package/src/queries/user.graphql +85 -0
- package/src/queries/viewer.graphql +104 -0
- package/src/social.ts +413 -0
- package/src/sync.ts +818 -0
- package/src/types.ts +477 -0
- package/src/url-detect.ts +49 -0
- package/src/utils.ts +305 -0
- package/test-fixtures/syndication-test-site/input/index.md +8 -0
- package/test-fixtures/syndication-test-site/input/posts/rich-test-article.md +90 -0
- package/test-helpers/TEST_ACCOUNT.md +151 -0
- package/test-helpers/api-client.ts +252 -0
- package/test-helpers/fixtures/articles.ts +147 -0
- package/test-helpers/wallet-auth.ts +305 -0
- package/test-setup/e2e.ts +93 -0
- package/tsconfig.json +23 -0
- package/vitest.config.ts +39 -0
|
@@ -0,0 +1,4289 @@
|
|
|
1
|
+
directive @auth(group: String, mode: String!) on FIELD_DEFINITION
|
|
2
|
+
|
|
3
|
+
directive @cacheControl(inheritMaxAge: Boolean, maxAge: Int, scope: CacheControlScope) on FIELD_DEFINITION | INTERFACE | OBJECT | UNION
|
|
4
|
+
|
|
5
|
+
directive @complexity(multipliers: [String!], value: Int!) on FIELD_DEFINITION
|
|
6
|
+
|
|
7
|
+
directive @constraint(contains: String, endsWith: String, exclusiveMax: Float, exclusiveMin: Float, format: String, max: Float, maxItems: Int, maxLength: Int, min: Float, minItems: Int, minLength: Int, multipleOf: Float, notContains: String, pattern: String, startsWith: String, uniqueTypeName: String) on ARGUMENT_DEFINITION | FIELD_DEFINITION | INPUT_FIELD_DEFINITION
|
|
8
|
+
|
|
9
|
+
directive @logCache(identifier: String = "id", type: String!) on FIELD_DEFINITION
|
|
10
|
+
|
|
11
|
+
directive @objectCache(maxAge: Int = 1000) on FIELD_DEFINITION
|
|
12
|
+
|
|
13
|
+
directive @privateCache(strict: Boolean! = false) on FIELD_DEFINITION
|
|
14
|
+
|
|
15
|
+
directive @purgeCache(identifier: String = "id", type: String!) on FIELD_DEFINITION
|
|
16
|
+
|
|
17
|
+
"""Rate limit within a given period of time, in seconds"""
|
|
18
|
+
directive @rateLimit(ip: Boolean, limit: Int!, period: Int!) on FIELD_DEFINITION
|
|
19
|
+
|
|
20
|
+
type AdStatus {
|
|
21
|
+
"""
|
|
22
|
+
Whether this article is labeled as ad by human, null for not labeled yet.
|
|
23
|
+
"""
|
|
24
|
+
isAd: Boolean
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
input AddCollectionsArticlesInput {
|
|
28
|
+
articles: [ID!]!
|
|
29
|
+
collections: [ID!]!
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
input AddCreditInput {
|
|
33
|
+
amount: amount_Float_NotNull_exclusiveMin_0!
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
type AddCreditResult {
|
|
37
|
+
"""The client secret of this PaymentIntent."""
|
|
38
|
+
client_secret: String!
|
|
39
|
+
transaction: Transaction!
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
input AddCurationChannelArticlesInput {
|
|
43
|
+
articles: [ID!]!
|
|
44
|
+
channel: ID!
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
type Announcement {
|
|
48
|
+
channels: [AnnouncementChannel!]!
|
|
49
|
+
content(input: TranslationArgs): String
|
|
50
|
+
cover: String
|
|
51
|
+
createdAt: DateTime!
|
|
52
|
+
expiredAt: DateTime
|
|
53
|
+
id: ID!
|
|
54
|
+
link(input: TranslationArgs): String
|
|
55
|
+
order: Int!
|
|
56
|
+
title(input: TranslationArgs): String
|
|
57
|
+
translations: [TranslatedAnnouncement!] @deprecated(reason: "Use title, content, link with TranslationArgs instead")
|
|
58
|
+
type: AnnouncementType!
|
|
59
|
+
updatedAt: DateTime!
|
|
60
|
+
visible: Boolean!
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
type AnnouncementChannel {
|
|
64
|
+
channel: Channel!
|
|
65
|
+
order: Int!
|
|
66
|
+
visible: Boolean!
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
input AnnouncementChannelInput {
|
|
70
|
+
channel: ID!
|
|
71
|
+
order: Int!
|
|
72
|
+
visible: Boolean!
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
enum AnnouncementType {
|
|
76
|
+
community
|
|
77
|
+
product
|
|
78
|
+
seminar
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
input AnnouncementsInput {
|
|
82
|
+
channel: IdentityInput
|
|
83
|
+
id: ID
|
|
84
|
+
visible: Boolean
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
input ApplyCampaignInput {
|
|
88
|
+
id: ID!
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
input AppreciateArticleInput {
|
|
92
|
+
amount: amount_Int_NotNull_min_1!
|
|
93
|
+
id: ID!
|
|
94
|
+
superLike: Boolean
|
|
95
|
+
token: String
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
type Appreciation {
|
|
99
|
+
amount: Int!
|
|
100
|
+
content: String!
|
|
101
|
+
|
|
102
|
+
"""Timestamp of appreciation."""
|
|
103
|
+
createdAt: DateTime!
|
|
104
|
+
purpose: AppreciationPurpose!
|
|
105
|
+
|
|
106
|
+
"""Recipient of appreciation."""
|
|
107
|
+
recipient: User!
|
|
108
|
+
|
|
109
|
+
"""Sender of appreciation."""
|
|
110
|
+
sender: User
|
|
111
|
+
|
|
112
|
+
"""Object that appreciation is meant for."""
|
|
113
|
+
target: Article
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
type AppreciationConnection implements Connection {
|
|
117
|
+
edges: [AppreciationEdge!]
|
|
118
|
+
pageInfo: PageInfo!
|
|
119
|
+
totalCount: Int!
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
type AppreciationEdge {
|
|
123
|
+
cursor: String!
|
|
124
|
+
node: Appreciation!
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
enum AppreciationPurpose {
|
|
128
|
+
appreciate
|
|
129
|
+
appreciateComment
|
|
130
|
+
appreciateSubsidy
|
|
131
|
+
firstPost
|
|
132
|
+
invitationAccepted
|
|
133
|
+
joinByInvitation
|
|
134
|
+
joinByTask
|
|
135
|
+
systemSubsidy
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
"""
|
|
139
|
+
This type contains metadata, content, hash and related data of an article. If you
|
|
140
|
+
want information about article's comments. Please check Comment type.
|
|
141
|
+
"""
|
|
142
|
+
type Article implements Node & PinnableWork {
|
|
143
|
+
"""Access related fields on circle"""
|
|
144
|
+
access: ArticleAccess!
|
|
145
|
+
|
|
146
|
+
"""Number represents how many times per user can appreciate this article."""
|
|
147
|
+
appreciateLeft: Int!
|
|
148
|
+
|
|
149
|
+
"""Limit the nuhmber of appreciate per user."""
|
|
150
|
+
appreciateLimit: Int!
|
|
151
|
+
|
|
152
|
+
"""Appreciations history of this article."""
|
|
153
|
+
appreciationsReceived(input: ConnectionArgs!): AppreciationConnection!
|
|
154
|
+
|
|
155
|
+
"""Total number of appreciations recieved of this article."""
|
|
156
|
+
appreciationsReceivedTotal: Int!
|
|
157
|
+
|
|
158
|
+
"""
|
|
159
|
+
List of assets are belonged to this article (Only the author can access currently).
|
|
160
|
+
"""
|
|
161
|
+
assets: [Asset!]!
|
|
162
|
+
|
|
163
|
+
"""Author of this article."""
|
|
164
|
+
author: User!
|
|
165
|
+
|
|
166
|
+
"""Available translation languages."""
|
|
167
|
+
availableTranslations: [UserLanguage!]
|
|
168
|
+
|
|
169
|
+
"""The number of users who bookmarked this article."""
|
|
170
|
+
bookmarkCount: Int!
|
|
171
|
+
bookmarked: Boolean!
|
|
172
|
+
|
|
173
|
+
"""Associated campaigns"""
|
|
174
|
+
campaigns: [ArticleCampaign!]!
|
|
175
|
+
|
|
176
|
+
"""Whether readers can comment"""
|
|
177
|
+
canComment: Boolean!
|
|
178
|
+
|
|
179
|
+
"""This value determines if current viewer can SuperLike or not."""
|
|
180
|
+
canSuperLike: Boolean!
|
|
181
|
+
|
|
182
|
+
"""Classifications status"""
|
|
183
|
+
classification: ArticleClassification!
|
|
184
|
+
|
|
185
|
+
"""List of articles added into this article's connections."""
|
|
186
|
+
collection(input: ConnectionArgs!): ArticleConnection! @deprecated(reason: "Use connections instead")
|
|
187
|
+
|
|
188
|
+
"""Collections of this article."""
|
|
189
|
+
collections(input: ConnectionArgs!): CollectionConnection!
|
|
190
|
+
|
|
191
|
+
"""The counting number of comments."""
|
|
192
|
+
commentCount: Int!
|
|
193
|
+
|
|
194
|
+
"""List of comments of this article."""
|
|
195
|
+
comments(input: CommentsInput!): CommentConnection!
|
|
196
|
+
|
|
197
|
+
"""List of articles which added this article into their connections."""
|
|
198
|
+
connectedBy(input: ConnectionArgs!): ArticleConnection!
|
|
199
|
+
connections(input: ConnectionArgs!): ArticleConnection!
|
|
200
|
+
|
|
201
|
+
"""Content (HTML) of this article."""
|
|
202
|
+
content: String!
|
|
203
|
+
|
|
204
|
+
"""Different foramts of content."""
|
|
205
|
+
contents: ArticleContents!
|
|
206
|
+
|
|
207
|
+
"""Article cover's link, set by author"""
|
|
208
|
+
cover: String
|
|
209
|
+
|
|
210
|
+
"""Time of this article was created."""
|
|
211
|
+
createdAt: DateTime!
|
|
212
|
+
|
|
213
|
+
"""IPFS hash of this article."""
|
|
214
|
+
dataHash: String!
|
|
215
|
+
|
|
216
|
+
"""Cover link that is displayed on the article page"""
|
|
217
|
+
displayCover: String
|
|
218
|
+
|
|
219
|
+
"""Whether current viewer has donated to this article"""
|
|
220
|
+
donated: Boolean!
|
|
221
|
+
|
|
222
|
+
"""Total number of donation recieved of this article."""
|
|
223
|
+
donationCount: Int!
|
|
224
|
+
|
|
225
|
+
"""Donations of this article, grouped by sender"""
|
|
226
|
+
donations(input: ConnectionArgs!): ArticleDonationConnection!
|
|
227
|
+
|
|
228
|
+
"""List of featured comments of this article."""
|
|
229
|
+
featuredComments(input: FeaturedCommentsInput!): CommentConnection!
|
|
230
|
+
|
|
231
|
+
"""This value determines if current viewer has appreciated or not."""
|
|
232
|
+
hasAppreciate: Boolean!
|
|
233
|
+
|
|
234
|
+
"""Unique ID of this article"""
|
|
235
|
+
id: ID!
|
|
236
|
+
|
|
237
|
+
"""Whether the first line of paragraph should be indented"""
|
|
238
|
+
indentFirstLine: Boolean!
|
|
239
|
+
|
|
240
|
+
"""The iscnId if published to ISCN"""
|
|
241
|
+
iscnId: String
|
|
242
|
+
|
|
243
|
+
"""Original language of content"""
|
|
244
|
+
language: String
|
|
245
|
+
|
|
246
|
+
"""License Type"""
|
|
247
|
+
license: ArticleLicenseType!
|
|
248
|
+
|
|
249
|
+
"""Media hash, composed of cid encoding, of this article."""
|
|
250
|
+
mediaHash: String!
|
|
251
|
+
|
|
252
|
+
"""Whether this article is noindex"""
|
|
253
|
+
noindex: Boolean!
|
|
254
|
+
oss: ArticleOSS!
|
|
255
|
+
|
|
256
|
+
"""The number determines how many comments can be set as pinned comment."""
|
|
257
|
+
pinCommentLeft: Int!
|
|
258
|
+
|
|
259
|
+
"""The number determines how many pinned comments can be set."""
|
|
260
|
+
pinCommentLimit: Int!
|
|
261
|
+
|
|
262
|
+
"""
|
|
263
|
+
This value determines if this article is an author selected article or not.
|
|
264
|
+
"""
|
|
265
|
+
pinned: Boolean!
|
|
266
|
+
|
|
267
|
+
"""List of pinned comments."""
|
|
268
|
+
pinnedComments: [Comment!]
|
|
269
|
+
|
|
270
|
+
"""Cumulative reading time in seconds"""
|
|
271
|
+
readTime: Float!
|
|
272
|
+
|
|
273
|
+
"""Total number of readers of this article."""
|
|
274
|
+
readerCount: Int!
|
|
275
|
+
|
|
276
|
+
"""Related articles to this article."""
|
|
277
|
+
relatedArticles(input: ConnectionArgs!): ArticleConnection!
|
|
278
|
+
|
|
279
|
+
"""Donation-related articles to this article."""
|
|
280
|
+
relatedDonationArticles(input: RelatedDonationArticlesInput!): ArticleConnection!
|
|
281
|
+
remark: String
|
|
282
|
+
|
|
283
|
+
"""Creator message after support"""
|
|
284
|
+
replyToDonator: String
|
|
285
|
+
|
|
286
|
+
"""Creator message asking for support"""
|
|
287
|
+
requestForDonation: String
|
|
288
|
+
|
|
289
|
+
"""The counting number of this article."""
|
|
290
|
+
responseCount: Int!
|
|
291
|
+
|
|
292
|
+
"""List of responses of a article."""
|
|
293
|
+
responses(input: ResponsesInput!): ResponseConnection!
|
|
294
|
+
|
|
295
|
+
"""Time of this article was revised."""
|
|
296
|
+
revisedAt: DateTime
|
|
297
|
+
|
|
298
|
+
"""Revision Count"""
|
|
299
|
+
revisionCount: Int!
|
|
300
|
+
|
|
301
|
+
"""Whether content is marked as sensitive by admin"""
|
|
302
|
+
sensitiveByAdmin: Boolean!
|
|
303
|
+
|
|
304
|
+
"""whether content is marked as sensitive by author"""
|
|
305
|
+
sensitiveByAuthor: Boolean!
|
|
306
|
+
|
|
307
|
+
"""Short hash for shorter url addressing"""
|
|
308
|
+
shortHash: String!
|
|
309
|
+
|
|
310
|
+
"""Slugified article title."""
|
|
311
|
+
slug: String!
|
|
312
|
+
|
|
313
|
+
"""State of this article."""
|
|
314
|
+
state: ArticleState!
|
|
315
|
+
|
|
316
|
+
"""This value determines if current Viewer has bookmarked of not."""
|
|
317
|
+
subscribed: Boolean! @deprecated(reason: "Use bookmarked instead")
|
|
318
|
+
|
|
319
|
+
"""A short summary for this article."""
|
|
320
|
+
summary: String!
|
|
321
|
+
|
|
322
|
+
"""This value determines if the summary is customized or not."""
|
|
323
|
+
summaryCustomized: Boolean!
|
|
324
|
+
|
|
325
|
+
"""Tags attached to this article."""
|
|
326
|
+
tags: [Tag!]
|
|
327
|
+
|
|
328
|
+
"""Article title."""
|
|
329
|
+
title: String!
|
|
330
|
+
|
|
331
|
+
"""Transactions history of this article."""
|
|
332
|
+
transactionsReceivedBy(input: TransactionsReceivedByArgs!): UserConnection!
|
|
333
|
+
|
|
334
|
+
"""Translation of article title and content."""
|
|
335
|
+
translation(input: ArticleTranslationInput): ArticleTranslation
|
|
336
|
+
|
|
337
|
+
"""History versions"""
|
|
338
|
+
versions(input: ArticleVersionsInput!): ArticleVersionsConnection!
|
|
339
|
+
|
|
340
|
+
"""Word count of this article."""
|
|
341
|
+
wordCount: Int
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
type ArticleAccess {
|
|
345
|
+
circle: Circle
|
|
346
|
+
secret: String
|
|
347
|
+
type: ArticleAccessType!
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
"""Enums for types of article access"""
|
|
351
|
+
enum ArticleAccessType {
|
|
352
|
+
paywall
|
|
353
|
+
public
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
type ArticleArticleNotice implements Notice {
|
|
357
|
+
"""List of notice actors."""
|
|
358
|
+
actors: [User!]
|
|
359
|
+
article: Article!
|
|
360
|
+
|
|
361
|
+
"""Time of this notice was created."""
|
|
362
|
+
createdAt: DateTime!
|
|
363
|
+
|
|
364
|
+
"""Unique ID of this notice."""
|
|
365
|
+
id: ID!
|
|
366
|
+
target: Article!
|
|
367
|
+
type: ArticleArticleNoticeType!
|
|
368
|
+
|
|
369
|
+
"""The value determines if the notice is unread or not."""
|
|
370
|
+
unread: Boolean!
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
enum ArticleArticleNoticeType {
|
|
374
|
+
ArticleNewCollected
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
type ArticleCampaign {
|
|
378
|
+
campaign: Campaign!
|
|
379
|
+
stage: CampaignStage
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
input ArticleCampaignInput {
|
|
383
|
+
campaign: ID!
|
|
384
|
+
stage: ID
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
type ArticleClassification {
|
|
388
|
+
topicChannel: TopicChannelClassification!
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
type ArticleConnection implements Connection {
|
|
392
|
+
edges: [ArticleEdge!]
|
|
393
|
+
pageInfo: PageInfo!
|
|
394
|
+
totalCount: Int!
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
type ArticleContents {
|
|
398
|
+
"""HTML content of this article."""
|
|
399
|
+
html: String!
|
|
400
|
+
|
|
401
|
+
"""Markdown content of this article."""
|
|
402
|
+
markdown: String!
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
type ArticleDonation {
|
|
406
|
+
id: ID!
|
|
407
|
+
sender: User
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
type ArticleDonationConnection {
|
|
411
|
+
edges: [ArticleDonationEdge!]
|
|
412
|
+
pageInfo: PageInfo!
|
|
413
|
+
totalCount: Int!
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
type ArticleDonationEdge {
|
|
417
|
+
cursor: String!
|
|
418
|
+
node: ArticleDonation!
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
type ArticleEdge {
|
|
422
|
+
cursor: String!
|
|
423
|
+
node: Article!
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
input ArticleInput {
|
|
427
|
+
mediaHash: String
|
|
428
|
+
shortHash: String
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
"""Enums for types of article license"""
|
|
432
|
+
enum ArticleLicenseType {
|
|
433
|
+
arr
|
|
434
|
+
cc_0
|
|
435
|
+
cc_by_nc_nd_2
|
|
436
|
+
cc_by_nc_nd_4
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
type ArticleNotice implements Notice {
|
|
440
|
+
"""List of notice actors."""
|
|
441
|
+
actors: [User!]
|
|
442
|
+
|
|
443
|
+
"""Time of this notice was created."""
|
|
444
|
+
createdAt: DateTime!
|
|
445
|
+
entities: [Node!]!
|
|
446
|
+
|
|
447
|
+
"""Unique ID of this notice."""
|
|
448
|
+
id: ID!
|
|
449
|
+
target: Article!
|
|
450
|
+
type: ArticleNoticeType!
|
|
451
|
+
|
|
452
|
+
"""The value determines if the notice is unread or not."""
|
|
453
|
+
unread: Boolean!
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
enum ArticleNoticeType {
|
|
457
|
+
ArticleMentionedYou
|
|
458
|
+
ArticleNewAppreciation
|
|
459
|
+
ArticleNewSubscriber
|
|
460
|
+
ArticlePublished
|
|
461
|
+
CircleNewArticle
|
|
462
|
+
RevisedArticleNotPublished
|
|
463
|
+
RevisedArticlePublished
|
|
464
|
+
ScheduledArticlePublished
|
|
465
|
+
TopicChannelFeedbackAccepted
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
type ArticleOSS {
|
|
469
|
+
adStatus: AdStatus!
|
|
470
|
+
boost: Float!
|
|
471
|
+
inRecommendHottest: Boolean!
|
|
472
|
+
inRecommendIcymi: Boolean!
|
|
473
|
+
inRecommendNewest: Boolean!
|
|
474
|
+
inSearch: Boolean!
|
|
475
|
+
pinHistory: [PinHistory]!
|
|
476
|
+
score: Float!
|
|
477
|
+
spamStatus: SpamStatus!
|
|
478
|
+
topicChannels: [ArticleTopicChannel!] @deprecated(reason: "Use classification.topicChannel.channels instead")
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
type ArticleRecommendationActivity {
|
|
482
|
+
"""Recommended articles"""
|
|
483
|
+
nodes: [Article!]
|
|
484
|
+
|
|
485
|
+
"""The source type of recommendation"""
|
|
486
|
+
source: ArticleRecommendationActivitySource
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
enum ArticleRecommendationActivitySource {
|
|
490
|
+
ReadArticlesTags
|
|
491
|
+
UserDonation
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
"""Enums for an article state."""
|
|
495
|
+
enum ArticleState {
|
|
496
|
+
active
|
|
497
|
+
archived
|
|
498
|
+
banned
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
type ArticleTopicChannel {
|
|
502
|
+
"""Whether this article is filtered out by anti-flood in this channel"""
|
|
503
|
+
antiFlooded: Boolean!
|
|
504
|
+
channel: TopicChannel!
|
|
505
|
+
|
|
506
|
+
"""Datetime when this article is classified"""
|
|
507
|
+
classicfiedAt: DateTime!
|
|
508
|
+
|
|
509
|
+
"""Whether this article channel is enabled"""
|
|
510
|
+
enabled: Boolean!
|
|
511
|
+
|
|
512
|
+
"""Whether this article is labeled by human, null for not labeled yet. """
|
|
513
|
+
isLabeled: Boolean!
|
|
514
|
+
|
|
515
|
+
"""Whether this article is pinned"""
|
|
516
|
+
pinned: Boolean!
|
|
517
|
+
|
|
518
|
+
"""Confident score by machine"""
|
|
519
|
+
score: Float
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
type ArticleTranslation {
|
|
523
|
+
content: String
|
|
524
|
+
language: String
|
|
525
|
+
model: TranslationModel
|
|
526
|
+
summary: String
|
|
527
|
+
title: String
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
input ArticleTranslationInput {
|
|
531
|
+
language: UserLanguage!
|
|
532
|
+
model: TranslationModel
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
type ArticleVersion implements Node {
|
|
536
|
+
contents: ArticleContents!
|
|
537
|
+
createdAt: DateTime!
|
|
538
|
+
dataHash: String
|
|
539
|
+
description: String
|
|
540
|
+
id: ID!
|
|
541
|
+
mediaHash: String
|
|
542
|
+
summary: String!
|
|
543
|
+
title: String!
|
|
544
|
+
translation(input: ArticleTranslationInput): ArticleTranslation
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
type ArticleVersionEdge {
|
|
548
|
+
cursor: String!
|
|
549
|
+
node: ArticleVersion!
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
type ArticleVersionsConnection implements Connection {
|
|
553
|
+
edges: [ArticleVersionEdge]!
|
|
554
|
+
pageInfo: PageInfo!
|
|
555
|
+
totalCount: Int!
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
input ArticleVersionsInput {
|
|
559
|
+
after: String
|
|
560
|
+
first: first_Int_min_0
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
enum ArticlesSort {
|
|
564
|
+
mostAppreciations
|
|
565
|
+
mostBookmarks
|
|
566
|
+
mostComments
|
|
567
|
+
mostDonations
|
|
568
|
+
mostReadTime
|
|
569
|
+
newest
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
"""This type contains type, link and related data of an asset."""
|
|
573
|
+
type Asset {
|
|
574
|
+
"""Time of this asset was created."""
|
|
575
|
+
createdAt: DateTime!
|
|
576
|
+
draft: Boolean
|
|
577
|
+
|
|
578
|
+
"""Unique ID of this Asset."""
|
|
579
|
+
id: ID!
|
|
580
|
+
|
|
581
|
+
"""Link of this asset."""
|
|
582
|
+
path: String!
|
|
583
|
+
|
|
584
|
+
"""Types of this asset."""
|
|
585
|
+
type: AssetType!
|
|
586
|
+
uploadURL: String
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
"""Enums for asset types."""
|
|
590
|
+
enum AssetType {
|
|
591
|
+
announcementCover
|
|
592
|
+
avatar
|
|
593
|
+
campaignCover
|
|
594
|
+
circleAvatar
|
|
595
|
+
circleCover
|
|
596
|
+
collectionCover
|
|
597
|
+
cover
|
|
598
|
+
embed
|
|
599
|
+
embedaudio
|
|
600
|
+
moment
|
|
601
|
+
oauthClientAvatar
|
|
602
|
+
profileCover
|
|
603
|
+
tagCover
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
type AuthResult {
|
|
607
|
+
auth: Boolean!
|
|
608
|
+
token: String
|
|
609
|
+
type: AuthResultType!
|
|
610
|
+
user: User
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
enum AuthResultType {
|
|
614
|
+
LinkAccount
|
|
615
|
+
Login
|
|
616
|
+
Signup
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
enum AuthorsType {
|
|
620
|
+
active
|
|
621
|
+
appreciated
|
|
622
|
+
default
|
|
623
|
+
trendy
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
type Badge {
|
|
627
|
+
type: BadgeType!
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
enum BadgeType {
|
|
631
|
+
architect
|
|
632
|
+
golden_motor
|
|
633
|
+
grand_slam
|
|
634
|
+
nomad1
|
|
635
|
+
nomad2
|
|
636
|
+
nomad3
|
|
637
|
+
nomad4
|
|
638
|
+
seed
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
input BadgedUsersInput {
|
|
642
|
+
after: String
|
|
643
|
+
first: first_Int_min_0
|
|
644
|
+
type: BadgeType
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
type Balance {
|
|
648
|
+
HKD: Float!
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
input BanCampaignArticlesInput {
|
|
652
|
+
articles: [ID!]!
|
|
653
|
+
campaign: ID!
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
type BlockchainTransaction {
|
|
657
|
+
chain: Chain!
|
|
658
|
+
txHash: String!
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
type BlockedSearchKeyword {
|
|
662
|
+
"""Time of this search keyword was created."""
|
|
663
|
+
createdAt: DateTime!
|
|
664
|
+
|
|
665
|
+
"""Unique ID of bloked search keyword."""
|
|
666
|
+
id: ID!
|
|
667
|
+
|
|
668
|
+
"""Types of this search keyword."""
|
|
669
|
+
searchKey: String!
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
enum BoostTypes {
|
|
673
|
+
Article
|
|
674
|
+
Campaign
|
|
675
|
+
Tag
|
|
676
|
+
User
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
enum CacheControlScope {
|
|
680
|
+
PRIVATE
|
|
681
|
+
PUBLIC
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
interface Campaign {
|
|
685
|
+
id: ID!
|
|
686
|
+
name: String!
|
|
687
|
+
shortHash: String!
|
|
688
|
+
state: CampaignState!
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
type CampaignApplication {
|
|
692
|
+
createdAt: DateTime!
|
|
693
|
+
state: CampaignApplicationState!
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
enum CampaignApplicationState {
|
|
697
|
+
pending
|
|
698
|
+
rejected
|
|
699
|
+
succeeded
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
type CampaignArticleConnection implements Connection {
|
|
703
|
+
edges: [CampaignArticleEdge!]!
|
|
704
|
+
pageInfo: PageInfo!
|
|
705
|
+
totalCount: Int!
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
type CampaignArticleEdge {
|
|
709
|
+
announcement: Boolean!
|
|
710
|
+
cursor: String!
|
|
711
|
+
featured: Boolean!
|
|
712
|
+
node: Article!
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
type CampaignArticleNotice implements Notice {
|
|
716
|
+
"""List of notice actors."""
|
|
717
|
+
actors: [User!]
|
|
718
|
+
article: Article!
|
|
719
|
+
|
|
720
|
+
"""Time of this notice was created."""
|
|
721
|
+
createdAt: DateTime!
|
|
722
|
+
|
|
723
|
+
"""Unique ID of this notice."""
|
|
724
|
+
id: ID!
|
|
725
|
+
target: Campaign!
|
|
726
|
+
type: CampaignArticleNoticeType!
|
|
727
|
+
|
|
728
|
+
"""The value determines if the notice is unread or not."""
|
|
729
|
+
unread: Boolean!
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
enum CampaignArticleNoticeType {
|
|
733
|
+
CampaignArticleFeatured
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
input CampaignArticlesFilter {
|
|
737
|
+
featured: Boolean
|
|
738
|
+
stage: ID
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
input CampaignArticlesInput {
|
|
742
|
+
after: String
|
|
743
|
+
filter: CampaignArticlesFilter
|
|
744
|
+
first: Int
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
type CampaignConnection implements Connection {
|
|
748
|
+
edges: [CampaignEdge!]
|
|
749
|
+
pageInfo: PageInfo!
|
|
750
|
+
totalCount: Int!
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
type CampaignEdge {
|
|
754
|
+
cursor: String!
|
|
755
|
+
node: Campaign!
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
input CampaignInput {
|
|
759
|
+
shortHash: String!
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
type CampaignOSS {
|
|
763
|
+
boost: Float!
|
|
764
|
+
exclusive: Boolean!
|
|
765
|
+
managers: [User!]!
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
type CampaignParticipantConnection implements Connection {
|
|
769
|
+
edges: [CampaignParticipantEdge!]
|
|
770
|
+
pageInfo: PageInfo!
|
|
771
|
+
totalCount: Int!
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
type CampaignParticipantEdge {
|
|
775
|
+
application: CampaignApplication
|
|
776
|
+
cursor: String!
|
|
777
|
+
node: User!
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
input CampaignParticipantsInput {
|
|
781
|
+
after: String
|
|
782
|
+
first: Int
|
|
783
|
+
|
|
784
|
+
"""return all state participants"""
|
|
785
|
+
oss: Boolean = false
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
type CampaignStage {
|
|
789
|
+
description(input: TranslationArgs): String!
|
|
790
|
+
id: ID!
|
|
791
|
+
name(input: TranslationArgs): String!
|
|
792
|
+
period: DatetimeRange
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
input CampaignStageInput {
|
|
796
|
+
description: [TranslationInput!]
|
|
797
|
+
name: [TranslationInput!]!
|
|
798
|
+
period: DatetimeRangeInput
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
enum CampaignState {
|
|
802
|
+
active
|
|
803
|
+
archived
|
|
804
|
+
finished
|
|
805
|
+
pending
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
input CampaignsFilter {
|
|
809
|
+
excludes: [ID!]
|
|
810
|
+
sort: CampaignsFilterSort
|
|
811
|
+
state: CampaignsFilterState
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
enum CampaignsFilterSort {
|
|
815
|
+
writingPeriod
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
enum CampaignsFilterState {
|
|
819
|
+
active
|
|
820
|
+
finished
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
input CampaignsInput {
|
|
824
|
+
after: String
|
|
825
|
+
filter: CampaignsFilter
|
|
826
|
+
first: Int
|
|
827
|
+
|
|
828
|
+
"""return pending and archived campaigns"""
|
|
829
|
+
oss: Boolean = false
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
enum Chain {
|
|
833
|
+
Optimism
|
|
834
|
+
Polygon
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
interface Channel {
|
|
838
|
+
id: ID!
|
|
839
|
+
navbarTitle(input: TranslationArgs): String!
|
|
840
|
+
shortHash: String!
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
type ChannelArticleConnection implements Connection {
|
|
844
|
+
edges: [ChannelArticleEdge!]
|
|
845
|
+
pageInfo: PageInfo!
|
|
846
|
+
totalCount: Int!
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
type ChannelArticleEdge {
|
|
850
|
+
cursor: String!
|
|
851
|
+
node: Article!
|
|
852
|
+
pinned: Boolean!
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
input ChannelArticlesFilter {
|
|
856
|
+
datetimeRange: DatetimeRangeInput
|
|
857
|
+
searchKey: String
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
input ChannelArticlesInput {
|
|
861
|
+
after: String
|
|
862
|
+
filter: ChannelArticlesFilter
|
|
863
|
+
first: Int
|
|
864
|
+
oss: Boolean = false
|
|
865
|
+
sort: ArticlesSort
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
input ChannelInput {
|
|
869
|
+
shortHash: String!
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
input ChannelsInput {
|
|
873
|
+
"""return all channels if true, only active channels by default"""
|
|
874
|
+
oss: Boolean = false
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
type Circle implements Node {
|
|
878
|
+
"""Analytics dashboard."""
|
|
879
|
+
analytics: CircleAnalytics!
|
|
880
|
+
|
|
881
|
+
"""Circle avatar's link."""
|
|
882
|
+
avatar: String @deprecated(reason: "No longer in use")
|
|
883
|
+
|
|
884
|
+
"""Comments broadcasted by Circle owner."""
|
|
885
|
+
broadcast(input: CommentsInput!): CommentConnection!
|
|
886
|
+
|
|
887
|
+
"""Circle cover's link."""
|
|
888
|
+
cover: String @deprecated(reason: "No longer in use")
|
|
889
|
+
|
|
890
|
+
"""Created time."""
|
|
891
|
+
createdAt: DateTime! @deprecated(reason: "No longer in use")
|
|
892
|
+
|
|
893
|
+
"""A short description of this Circle."""
|
|
894
|
+
description: String
|
|
895
|
+
|
|
896
|
+
"""Comments made by Circle member."""
|
|
897
|
+
discussion(input: CommentsInput!): CommentConnection!
|
|
898
|
+
|
|
899
|
+
"""Discussion (include replies) count of this circle."""
|
|
900
|
+
discussionCount: Int!
|
|
901
|
+
|
|
902
|
+
"""Discussion (exclude replies) count of this circle."""
|
|
903
|
+
discussionThreadCount: Int!
|
|
904
|
+
|
|
905
|
+
"""Human readable name of this Circle."""
|
|
906
|
+
displayName: String! @deprecated(reason: "No longer in use")
|
|
907
|
+
|
|
908
|
+
"""List of Circle follower."""
|
|
909
|
+
followers(input: ConnectionArgs!): UserConnection! @deprecated(reason: "No longer in use")
|
|
910
|
+
|
|
911
|
+
"""Unique ID."""
|
|
912
|
+
id: ID!
|
|
913
|
+
|
|
914
|
+
"""Invitation used by current viewer."""
|
|
915
|
+
invitedBy: Invitation
|
|
916
|
+
|
|
917
|
+
"""Invitations belonged to this Circle."""
|
|
918
|
+
invites: Invites!
|
|
919
|
+
|
|
920
|
+
"""This value determines if current viewer is following Circle or not."""
|
|
921
|
+
isFollower: Boolean! @deprecated(reason: "No longer in use")
|
|
922
|
+
|
|
923
|
+
"""This value determines if current viewer is Member or not."""
|
|
924
|
+
isMember: Boolean! @deprecated(reason: "No longer in use")
|
|
925
|
+
|
|
926
|
+
"""List of Circle member."""
|
|
927
|
+
members(input: ConnectionArgs!): MemberConnection! @deprecated(reason: "No longer in use")
|
|
928
|
+
|
|
929
|
+
"""Slugified name of this Circle."""
|
|
930
|
+
name: String! @deprecated(reason: "No longer in use")
|
|
931
|
+
|
|
932
|
+
"""Circle owner."""
|
|
933
|
+
owner: User!
|
|
934
|
+
|
|
935
|
+
"""Pinned comments broadcasted by Circle owner."""
|
|
936
|
+
pinnedBroadcast: [Comment!]
|
|
937
|
+
|
|
938
|
+
"""Prices offered by this Circle."""
|
|
939
|
+
prices: [Price!]
|
|
940
|
+
|
|
941
|
+
"""State of this Circle."""
|
|
942
|
+
state: CircleState! @deprecated(reason: "No longer in use")
|
|
943
|
+
|
|
944
|
+
"""Updated time."""
|
|
945
|
+
updatedAt: DateTime! @deprecated(reason: "No longer in use")
|
|
946
|
+
|
|
947
|
+
"""List of works belong to this Circle."""
|
|
948
|
+
works(input: ConnectionArgs!): ArticleConnection! @deprecated(reason: "No longer in use")
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
type CircleAnalytics {
|
|
952
|
+
content: CircleContentAnalytics!
|
|
953
|
+
follower: CircleFollowerAnalytics!
|
|
954
|
+
income: CircleIncomeAnalytics!
|
|
955
|
+
subscriber: CircleSubscriberAnalytics!
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
type CircleConnection implements Connection {
|
|
959
|
+
edges: [CircleEdge!]
|
|
960
|
+
pageInfo: PageInfo!
|
|
961
|
+
totalCount: Int!
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
type CircleContentAnalytics {
|
|
965
|
+
paywall: [CircleContentAnalyticsDatum!]
|
|
966
|
+
public: [CircleContentAnalyticsDatum!]
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
type CircleContentAnalyticsDatum {
|
|
970
|
+
node: Article!
|
|
971
|
+
readCount: Int!
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
type CircleEdge {
|
|
975
|
+
cursor: String!
|
|
976
|
+
node: Circle!
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
type CircleFollowerAnalytics {
|
|
980
|
+
"""current follower count"""
|
|
981
|
+
current: Int!
|
|
982
|
+
|
|
983
|
+
"""the percentage of follower count in reader count of circle articles"""
|
|
984
|
+
followerPercentage: Float!
|
|
985
|
+
|
|
986
|
+
"""subscriber count history of last 4 months"""
|
|
987
|
+
history: [MonthlyDatum!]!
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
type CircleIncomeAnalytics {
|
|
991
|
+
"""income history of last 4 months"""
|
|
992
|
+
history: [MonthlyDatum!]!
|
|
993
|
+
|
|
994
|
+
"""income of next month"""
|
|
995
|
+
nextMonth: Float!
|
|
996
|
+
|
|
997
|
+
"""income of this month"""
|
|
998
|
+
thisMonth: Float!
|
|
999
|
+
|
|
1000
|
+
"""total income of all time"""
|
|
1001
|
+
total: Float!
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
input CircleInput {
|
|
1005
|
+
"""Slugified name of a Circle."""
|
|
1006
|
+
name: String!
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
type CircleNotice implements Notice {
|
|
1010
|
+
"""List of notice actors."""
|
|
1011
|
+
actors: [User!]
|
|
1012
|
+
|
|
1013
|
+
"""Optional discussion/broadcast comments for bundled notices"""
|
|
1014
|
+
comments: [Comment!]
|
|
1015
|
+
|
|
1016
|
+
"""Time of this notice was created."""
|
|
1017
|
+
createdAt: DateTime!
|
|
1018
|
+
|
|
1019
|
+
"""Unique ID of this notice."""
|
|
1020
|
+
id: ID!
|
|
1021
|
+
|
|
1022
|
+
"""Optional mention comments for bundled notices"""
|
|
1023
|
+
mentions: [Comment!]
|
|
1024
|
+
|
|
1025
|
+
"""Optional discussion/broadcast replies for bundled notices"""
|
|
1026
|
+
replies: [Comment!]
|
|
1027
|
+
target: Circle!
|
|
1028
|
+
type: CircleNoticeType!
|
|
1029
|
+
|
|
1030
|
+
"""The value determines if the notice is unread or not."""
|
|
1031
|
+
unread: Boolean!
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
enum CircleNoticeType {
|
|
1035
|
+
CircleInvitation
|
|
1036
|
+
CircleNewBroadcastComments
|
|
1037
|
+
CircleNewDiscussionComments
|
|
1038
|
+
CircleNewFollower
|
|
1039
|
+
CircleNewSubscriber
|
|
1040
|
+
CircleNewUnsubscriber
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
type CircleRecommendationActivity {
|
|
1044
|
+
"""Recommended circles"""
|
|
1045
|
+
nodes: [Circle!]
|
|
1046
|
+
|
|
1047
|
+
"""The source type of recommendation"""
|
|
1048
|
+
source: CircleRecommendationActivitySource
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
enum CircleRecommendationActivitySource {
|
|
1052
|
+
UserSubscription
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
enum CircleState {
|
|
1056
|
+
active
|
|
1057
|
+
archived
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
type CircleSubscriberAnalytics {
|
|
1061
|
+
"""current invitee count"""
|
|
1062
|
+
currentInvitee: Int!
|
|
1063
|
+
|
|
1064
|
+
"""current subscriber count"""
|
|
1065
|
+
currentSubscriber: Int!
|
|
1066
|
+
|
|
1067
|
+
"""invitee count history of last 4 months"""
|
|
1068
|
+
inviteeHistory: [MonthlyDatum!]!
|
|
1069
|
+
|
|
1070
|
+
"""subscriber count history of last 4 months"""
|
|
1071
|
+
subscriberHistory: [MonthlyDatum!]!
|
|
1072
|
+
}
|
|
1073
|
+
|
|
1074
|
+
input ClaimLogbooksInput {
|
|
1075
|
+
ethAddress: String!
|
|
1076
|
+
|
|
1077
|
+
"""nonce from generateSigningMessage"""
|
|
1078
|
+
nonce: String!
|
|
1079
|
+
|
|
1080
|
+
"""sign'ed by wallet"""
|
|
1081
|
+
signature: String!
|
|
1082
|
+
|
|
1083
|
+
"""the message being sign'ed, including nonce"""
|
|
1084
|
+
signedMessage: String!
|
|
1085
|
+
}
|
|
1086
|
+
|
|
1087
|
+
type ClaimLogbooksResult {
|
|
1088
|
+
ids: [ID!]
|
|
1089
|
+
txHash: String!
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
input ClassifyArticlesChannelsInput {
|
|
1093
|
+
ids: [ID!]!
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
input ClearReadHistoryInput {
|
|
1097
|
+
id: ID
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
type Collection implements Node & PinnableWork {
|
|
1101
|
+
articles(input: CollectionArticlesInput!): ArticleConnection!
|
|
1102
|
+
author: User!
|
|
1103
|
+
|
|
1104
|
+
"""Check if the collection contains the article"""
|
|
1105
|
+
contains(input: NodeInput!): Boolean!
|
|
1106
|
+
cover: String
|
|
1107
|
+
description: String
|
|
1108
|
+
id: ID!
|
|
1109
|
+
likeCount: Int!
|
|
1110
|
+
|
|
1111
|
+
"""whether current user has liked it"""
|
|
1112
|
+
liked: Boolean!
|
|
1113
|
+
pinned: Boolean!
|
|
1114
|
+
title: String!
|
|
1115
|
+
updatedAt: DateTime!
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
input CollectionArticlesInput {
|
|
1119
|
+
after: String
|
|
1120
|
+
before: String
|
|
1121
|
+
first: first_Int_min_0
|
|
1122
|
+
includeAfter: Boolean! = false
|
|
1123
|
+
includeBefore: Boolean! = false
|
|
1124
|
+
last: last_Int_min_0
|
|
1125
|
+
reversed: Boolean! = true
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
type CollectionConnection implements Connection {
|
|
1129
|
+
edges: [CollectionEdge!]
|
|
1130
|
+
pageInfo: PageInfo!
|
|
1131
|
+
totalCount: Int!
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
type CollectionEdge {
|
|
1135
|
+
cursor: String!
|
|
1136
|
+
node: Collection!
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
type CollectionNotice implements Notice {
|
|
1140
|
+
"""List of notice actors."""
|
|
1141
|
+
actors: [User!]
|
|
1142
|
+
|
|
1143
|
+
"""Time of this notice was created."""
|
|
1144
|
+
createdAt: DateTime!
|
|
1145
|
+
|
|
1146
|
+
"""Unique ID of this notice."""
|
|
1147
|
+
id: ID!
|
|
1148
|
+
target: Collection!
|
|
1149
|
+
|
|
1150
|
+
"""The value determines if the notice is unread or not."""
|
|
1151
|
+
unread: Boolean!
|
|
1152
|
+
}
|
|
1153
|
+
|
|
1154
|
+
enum Color {
|
|
1155
|
+
brown
|
|
1156
|
+
gray
|
|
1157
|
+
green
|
|
1158
|
+
orange
|
|
1159
|
+
pink
|
|
1160
|
+
purple
|
|
1161
|
+
red
|
|
1162
|
+
yellow
|
|
1163
|
+
}
|
|
1164
|
+
|
|
1165
|
+
"""
|
|
1166
|
+
This type contains content, author, descendant comments and related data of a comment.
|
|
1167
|
+
"""
|
|
1168
|
+
type Comment implements Node {
|
|
1169
|
+
"""Author of this comment."""
|
|
1170
|
+
author: User!
|
|
1171
|
+
|
|
1172
|
+
"""Descendant comments of this comment."""
|
|
1173
|
+
comments(input: CommentCommentsInput!): CommentConnection!
|
|
1174
|
+
|
|
1175
|
+
"""Content of this comment."""
|
|
1176
|
+
content: String
|
|
1177
|
+
|
|
1178
|
+
"""Time of this comment was created."""
|
|
1179
|
+
createdAt: DateTime!
|
|
1180
|
+
|
|
1181
|
+
"""The counting number of downvotes."""
|
|
1182
|
+
downvotes: Int! @deprecated(reason: "No longer in use in querying")
|
|
1183
|
+
|
|
1184
|
+
"""This value determines this comment is from article donator or not."""
|
|
1185
|
+
fromDonator: Boolean!
|
|
1186
|
+
|
|
1187
|
+
"""Unique ID of this comment."""
|
|
1188
|
+
id: ID!
|
|
1189
|
+
|
|
1190
|
+
"""The value determines current user's vote."""
|
|
1191
|
+
myVote: Vote
|
|
1192
|
+
|
|
1193
|
+
"""Current comment belongs to which Node."""
|
|
1194
|
+
node: Node!
|
|
1195
|
+
|
|
1196
|
+
"""Parent comment of this comment."""
|
|
1197
|
+
parentComment: Comment
|
|
1198
|
+
|
|
1199
|
+
"""This value determines this comment is pinned or not."""
|
|
1200
|
+
pinned: Boolean!
|
|
1201
|
+
remark: String
|
|
1202
|
+
|
|
1203
|
+
"""A Comment that this comment replied to."""
|
|
1204
|
+
replyTo: Comment
|
|
1205
|
+
spamStatus: SpamStatus!
|
|
1206
|
+
|
|
1207
|
+
"""State of this comment."""
|
|
1208
|
+
state: CommentState!
|
|
1209
|
+
type: CommentType!
|
|
1210
|
+
|
|
1211
|
+
"""The counting number of upvotes."""
|
|
1212
|
+
upvotes: Int!
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
type CommentCommentNotice implements Notice {
|
|
1216
|
+
"""List of notice actors."""
|
|
1217
|
+
actors: [User!]
|
|
1218
|
+
comment: Comment!
|
|
1219
|
+
|
|
1220
|
+
"""Time of this notice was created."""
|
|
1221
|
+
createdAt: DateTime!
|
|
1222
|
+
|
|
1223
|
+
"""Unique ID of this notice."""
|
|
1224
|
+
id: ID!
|
|
1225
|
+
target: Comment!
|
|
1226
|
+
type: CommentCommentNoticeType!
|
|
1227
|
+
|
|
1228
|
+
"""The value determines if the notice is unread or not."""
|
|
1229
|
+
unread: Boolean!
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
enum CommentCommentNoticeType {
|
|
1233
|
+
CommentNewReply
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
input CommentCommentsInput {
|
|
1237
|
+
after: String
|
|
1238
|
+
author: ID
|
|
1239
|
+
first: first_Int_min_0
|
|
1240
|
+
sort: CommentSort
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
type CommentConnection implements Connection {
|
|
1244
|
+
edges: [CommentEdge!]
|
|
1245
|
+
pageInfo: PageInfo!
|
|
1246
|
+
totalCount: Int!
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
type CommentEdge {
|
|
1250
|
+
cursor: String!
|
|
1251
|
+
node: Comment!
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
input CommentInput {
|
|
1255
|
+
articleId: ID
|
|
1256
|
+
circleId: ID
|
|
1257
|
+
content: String!
|
|
1258
|
+
mentions: [ID!]
|
|
1259
|
+
momentId: ID
|
|
1260
|
+
parentId: ID
|
|
1261
|
+
replyTo: ID
|
|
1262
|
+
type: CommentType!
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
type CommentNotice implements Notice {
|
|
1266
|
+
"""List of notice actors."""
|
|
1267
|
+
actors: [User!]
|
|
1268
|
+
|
|
1269
|
+
"""Time of this notice was created."""
|
|
1270
|
+
createdAt: DateTime!
|
|
1271
|
+
|
|
1272
|
+
"""Unique ID of this notice."""
|
|
1273
|
+
id: ID!
|
|
1274
|
+
target: Comment!
|
|
1275
|
+
type: CommentNoticeType!
|
|
1276
|
+
|
|
1277
|
+
"""The value determines if the notice is unread or not."""
|
|
1278
|
+
unread: Boolean!
|
|
1279
|
+
}
|
|
1280
|
+
|
|
1281
|
+
enum CommentNoticeType {
|
|
1282
|
+
ArticleNewComment
|
|
1283
|
+
CircleNewBroadcast
|
|
1284
|
+
CommentLiked
|
|
1285
|
+
CommentMentionedYou
|
|
1286
|
+
CommentPinned
|
|
1287
|
+
MomentNewComment
|
|
1288
|
+
SubscribedArticleNewComment
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
"""Enums for sorting comments by time."""
|
|
1292
|
+
enum CommentSort {
|
|
1293
|
+
newest
|
|
1294
|
+
oldest
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
"""Enums for comment state."""
|
|
1298
|
+
enum CommentState {
|
|
1299
|
+
active
|
|
1300
|
+
archived
|
|
1301
|
+
banned
|
|
1302
|
+
collapsed
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
enum CommentType {
|
|
1306
|
+
article
|
|
1307
|
+
circleBroadcast
|
|
1308
|
+
circleDiscussion
|
|
1309
|
+
moment
|
|
1310
|
+
}
|
|
1311
|
+
|
|
1312
|
+
input CommentsFilter {
|
|
1313
|
+
author: ID
|
|
1314
|
+
parentComment: ID
|
|
1315
|
+
state: CommentState
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
input CommentsInput {
|
|
1319
|
+
after: String
|
|
1320
|
+
before: String
|
|
1321
|
+
filter: CommentsFilter
|
|
1322
|
+
first: first_Int_min_0
|
|
1323
|
+
includeAfter: Boolean
|
|
1324
|
+
includeBefore: Boolean
|
|
1325
|
+
sort: CommentSort
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
input ConfirmVerificationCodeInput {
|
|
1329
|
+
code: String!
|
|
1330
|
+
email: email_String_NotNull_format_email!
|
|
1331
|
+
type: VerificationCodeType!
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
input ConnectStripeAccountInput {
|
|
1335
|
+
country: StripeAccountCountry!
|
|
1336
|
+
}
|
|
1337
|
+
|
|
1338
|
+
type ConnectStripeAccountResult {
|
|
1339
|
+
redirectUrl: String!
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
interface Connection {
|
|
1343
|
+
pageInfo: PageInfo!
|
|
1344
|
+
totalCount: Int!
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
input ConnectionArgs {
|
|
1348
|
+
after: String
|
|
1349
|
+
filter: FilterInput
|
|
1350
|
+
first: first_Int_min_0
|
|
1351
|
+
oss: Boolean
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
type CryptoWallet {
|
|
1355
|
+
address: String!
|
|
1356
|
+
|
|
1357
|
+
""" does this address own any Travelogger NFTs? this value is cached at most 1day, and refreshed at next `nfts` query
|
|
1358
|
+
"""
|
|
1359
|
+
hasNFTs: Boolean!
|
|
1360
|
+
id: ID!
|
|
1361
|
+
|
|
1362
|
+
"""NFT assets owned by this wallet address"""
|
|
1363
|
+
nfts: [NFTAsset!]
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
enum CryptoWalletSignaturePurpose {
|
|
1367
|
+
airdrop
|
|
1368
|
+
connect
|
|
1369
|
+
login
|
|
1370
|
+
signup
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
type CurationChannel implements Channel & Node {
|
|
1374
|
+
"""both activePeriod and state determine if the channel is active"""
|
|
1375
|
+
activePeriod: DatetimeRange!
|
|
1376
|
+
articles(input: ChannelArticlesInput!): ChannelArticleConnection!
|
|
1377
|
+
color: Color!
|
|
1378
|
+
id: ID!
|
|
1379
|
+
name(input: TranslationArgs): String!
|
|
1380
|
+
navbarTitle(input: TranslationArgs): String!
|
|
1381
|
+
note(input: TranslationArgs): String
|
|
1382
|
+
pinAmount: Int!
|
|
1383
|
+
shortHash: String!
|
|
1384
|
+
showRecommendation: Boolean!
|
|
1385
|
+
state: CurationChannelState!
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
enum CurationChannelState {
|
|
1389
|
+
archived
|
|
1390
|
+
editing
|
|
1391
|
+
published
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
"""
|
|
1395
|
+
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
|
|
1396
|
+
"""
|
|
1397
|
+
scalar DateTime
|
|
1398
|
+
|
|
1399
|
+
type DatetimeRange {
|
|
1400
|
+
end: DateTime
|
|
1401
|
+
start: DateTime!
|
|
1402
|
+
}
|
|
1403
|
+
|
|
1404
|
+
input DatetimeRangeInput {
|
|
1405
|
+
end: DateTime
|
|
1406
|
+
start: DateTime!
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
input DeleteAnnouncementsInput {
|
|
1410
|
+
ids: [ID!]
|
|
1411
|
+
}
|
|
1412
|
+
|
|
1413
|
+
input DeleteCollectionArticlesInput {
|
|
1414
|
+
articles: [ID!]!
|
|
1415
|
+
collection: ID!
|
|
1416
|
+
}
|
|
1417
|
+
|
|
1418
|
+
input DeleteCollectionsInput {
|
|
1419
|
+
ids: [ID!]!
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
input DeleteCommentInput {
|
|
1423
|
+
id: ID!
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
input DeleteCurationChannelArticlesInput {
|
|
1427
|
+
articles: [ID!]!
|
|
1428
|
+
channel: ID!
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
input DeleteDraftInput {
|
|
1432
|
+
id: ID!
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
input DeleteMomentInput {
|
|
1436
|
+
id: ID!
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
input DeleteTagsInput {
|
|
1440
|
+
ids: [ID!]!
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
input DirectImageUploadInput {
|
|
1444
|
+
draft: Boolean
|
|
1445
|
+
entityId: ID
|
|
1446
|
+
entityType: EntityType!
|
|
1447
|
+
mime: String
|
|
1448
|
+
type: AssetType!
|
|
1449
|
+
url: url_String_format_uri
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
union Donator = CryptoWallet | User
|
|
1453
|
+
|
|
1454
|
+
"""
|
|
1455
|
+
This type contains content, collections, assets and related data of a draft.
|
|
1456
|
+
"""
|
|
1457
|
+
type Draft implements Node {
|
|
1458
|
+
"""Access related fields on circle"""
|
|
1459
|
+
access: DraftAccess!
|
|
1460
|
+
|
|
1461
|
+
"""Published article"""
|
|
1462
|
+
article: Article
|
|
1463
|
+
|
|
1464
|
+
"""List of assets are belonged to this draft."""
|
|
1465
|
+
assets: [Asset!]!
|
|
1466
|
+
|
|
1467
|
+
"""Associated campaigns"""
|
|
1468
|
+
campaigns: [ArticleCampaign!]!
|
|
1469
|
+
|
|
1470
|
+
"""Whether readers can comment"""
|
|
1471
|
+
canComment: Boolean!
|
|
1472
|
+
collection(input: ConnectionArgs!): ArticleConnection! @deprecated(reason: "Use connections instead")
|
|
1473
|
+
|
|
1474
|
+
"""Collections of this draft."""
|
|
1475
|
+
collections(input: ConnectionArgs!): CollectionConnection!
|
|
1476
|
+
|
|
1477
|
+
"""Connection articles of this draft."""
|
|
1478
|
+
connections(input: ConnectionArgs!): ArticleConnection!
|
|
1479
|
+
|
|
1480
|
+
"""Content (HTML) of this draft."""
|
|
1481
|
+
content: String
|
|
1482
|
+
|
|
1483
|
+
"""Draft's cover link."""
|
|
1484
|
+
cover: String
|
|
1485
|
+
|
|
1486
|
+
"""Time of this draft was created."""
|
|
1487
|
+
createdAt: DateTime!
|
|
1488
|
+
|
|
1489
|
+
"""Unique ID of this draft."""
|
|
1490
|
+
id: ID!
|
|
1491
|
+
|
|
1492
|
+
"""Whether the first line of paragraph should be indented"""
|
|
1493
|
+
indentFirstLine: Boolean!
|
|
1494
|
+
|
|
1495
|
+
"""Whether publish to ISCN"""
|
|
1496
|
+
iscnPublish: Boolean
|
|
1497
|
+
|
|
1498
|
+
"""License Type"""
|
|
1499
|
+
license: ArticleLicenseType!
|
|
1500
|
+
|
|
1501
|
+
"""Media hash, composed of cid encoding, of this draft."""
|
|
1502
|
+
mediaHash: String
|
|
1503
|
+
|
|
1504
|
+
"""Scheduled publish date of the article."""
|
|
1505
|
+
publishAt: DateTime
|
|
1506
|
+
|
|
1507
|
+
"""State of draft during publihsing."""
|
|
1508
|
+
publishState: PublishState!
|
|
1509
|
+
|
|
1510
|
+
"""Creator message after support"""
|
|
1511
|
+
replyToDonator: String
|
|
1512
|
+
|
|
1513
|
+
"""Creator message asking for support"""
|
|
1514
|
+
requestForDonation: String
|
|
1515
|
+
|
|
1516
|
+
"""Whether content is marked as sensitive by author"""
|
|
1517
|
+
sensitiveByAuthor: Boolean!
|
|
1518
|
+
|
|
1519
|
+
"""Slugified draft title."""
|
|
1520
|
+
slug: String!
|
|
1521
|
+
|
|
1522
|
+
"""Summary of this draft."""
|
|
1523
|
+
summary: String
|
|
1524
|
+
|
|
1525
|
+
"""This value determines if the summary is customized or not."""
|
|
1526
|
+
summaryCustomized: Boolean!
|
|
1527
|
+
|
|
1528
|
+
"""Tags are attached to this draft."""
|
|
1529
|
+
tags: [String!]
|
|
1530
|
+
|
|
1531
|
+
"""Draft title."""
|
|
1532
|
+
title: String
|
|
1533
|
+
|
|
1534
|
+
"""Last time of this draft was upadted."""
|
|
1535
|
+
updatedAt: DateTime!
|
|
1536
|
+
|
|
1537
|
+
"""The counting number of words in this draft."""
|
|
1538
|
+
wordCount: Int!
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
type DraftAccess {
|
|
1542
|
+
circle: Circle
|
|
1543
|
+
type: ArticleAccessType!
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
type DraftConnection implements Connection {
|
|
1547
|
+
edges: [DraftEdge!]
|
|
1548
|
+
pageInfo: PageInfo!
|
|
1549
|
+
totalCount: Int!
|
|
1550
|
+
}
|
|
1551
|
+
|
|
1552
|
+
type DraftEdge {
|
|
1553
|
+
cursor: String!
|
|
1554
|
+
node: Draft!
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
input EditArticleInput {
|
|
1558
|
+
accessType: ArticleAccessType
|
|
1559
|
+
|
|
1560
|
+
"""which campaigns to attach"""
|
|
1561
|
+
campaigns: [ArticleCampaignInput!]
|
|
1562
|
+
|
|
1563
|
+
"""whether readers can comment"""
|
|
1564
|
+
canComment: Boolean
|
|
1565
|
+
circle: ID
|
|
1566
|
+
|
|
1567
|
+
"""Deprecated, use connections instead"""
|
|
1568
|
+
collection: [ID!]
|
|
1569
|
+
collections: [ID!]
|
|
1570
|
+
connections: [ID!]
|
|
1571
|
+
content: String
|
|
1572
|
+
cover: ID
|
|
1573
|
+
|
|
1574
|
+
"""revision description"""
|
|
1575
|
+
description: description_String_maxLength_140
|
|
1576
|
+
id: ID!
|
|
1577
|
+
indentFirstLine: Boolean
|
|
1578
|
+
|
|
1579
|
+
"""whether publish to ISCN"""
|
|
1580
|
+
iscnPublish: Boolean
|
|
1581
|
+
license: ArticleLicenseType
|
|
1582
|
+
pinned: Boolean
|
|
1583
|
+
replyToDonator: replyToDonator_String_maxLength_140
|
|
1584
|
+
requestForDonation: requestForDonation_String_maxLength_140
|
|
1585
|
+
sensitive: Boolean
|
|
1586
|
+
state: ArticleState
|
|
1587
|
+
summary: String
|
|
1588
|
+
tags: [String!]
|
|
1589
|
+
title: String
|
|
1590
|
+
}
|
|
1591
|
+
|
|
1592
|
+
input EmailLoginInput {
|
|
1593
|
+
email: String!
|
|
1594
|
+
|
|
1595
|
+
"""used in register"""
|
|
1596
|
+
language: UserLanguage
|
|
1597
|
+
passwordOrCode: String!
|
|
1598
|
+
referralCode: String
|
|
1599
|
+
}
|
|
1600
|
+
|
|
1601
|
+
enum EntityType {
|
|
1602
|
+
announcement
|
|
1603
|
+
article
|
|
1604
|
+
campaign
|
|
1605
|
+
circle
|
|
1606
|
+
collection
|
|
1607
|
+
draft
|
|
1608
|
+
moment
|
|
1609
|
+
tag
|
|
1610
|
+
user
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
type ExchangeRate {
|
|
1614
|
+
from: TransactionCurrency!
|
|
1615
|
+
rate: Float!
|
|
1616
|
+
to: QuoteCurrency!
|
|
1617
|
+
|
|
1618
|
+
"""Last updated time from currency convertor APIs"""
|
|
1619
|
+
updatedAt: DateTime!
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
input ExchangeRatesInput {
|
|
1623
|
+
from: TransactionCurrency
|
|
1624
|
+
to: QuoteCurrency
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
type Feature {
|
|
1628
|
+
enabled: Boolean!
|
|
1629
|
+
name: FeatureName!
|
|
1630
|
+
value: Float
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
enum FeatureFlag {
|
|
1634
|
+
admin
|
|
1635
|
+
off
|
|
1636
|
+
on
|
|
1637
|
+
seeding
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
enum FeatureName {
|
|
1641
|
+
add_credit
|
|
1642
|
+
article_channel
|
|
1643
|
+
circle_interact
|
|
1644
|
+
circle_management
|
|
1645
|
+
fingerprint
|
|
1646
|
+
payment
|
|
1647
|
+
payout
|
|
1648
|
+
spam_detection
|
|
1649
|
+
tag_adoption
|
|
1650
|
+
verify_appreciate
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
input FeaturedCommentsInput {
|
|
1654
|
+
after: String
|
|
1655
|
+
first: first_Int_min_0
|
|
1656
|
+
sort: CommentSort
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
input FeaturedTagsInput {
|
|
1660
|
+
""" tagIds """
|
|
1661
|
+
ids: [ID!]!
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
input FilterInput {
|
|
1665
|
+
inRangeEnd: DateTime
|
|
1666
|
+
inRangeStart: DateTime
|
|
1667
|
+
|
|
1668
|
+
"""Used in User Articles filter, by tags or by time range, or both"""
|
|
1669
|
+
tagIds: [ID!]
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
type Following {
|
|
1673
|
+
circles(input: ConnectionArgs!): CircleConnection!
|
|
1674
|
+
users(input: ConnectionArgs!): UserConnection!
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
union FollowingActivity = ArticleRecommendationActivity | CircleRecommendationActivity | UserAddArticleTagActivity | UserBroadcastCircleActivity | UserCreateCircleActivity | UserPostMomentActivity | UserPublishArticleActivity | UserRecommendationActivity
|
|
1678
|
+
|
|
1679
|
+
type FollowingActivityConnection implements Connection {
|
|
1680
|
+
edges: [FollowingActivityEdge!]
|
|
1681
|
+
pageInfo: PageInfo!
|
|
1682
|
+
totalCount: Int!
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
type FollowingActivityEdge {
|
|
1686
|
+
cursor: String!
|
|
1687
|
+
node: FollowingActivity!
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
input FrequentSearchInput {
|
|
1691
|
+
first: first_Int_min_0
|
|
1692
|
+
key: String
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
input GenerateSigningMessageInput {
|
|
1696
|
+
address: String!
|
|
1697
|
+
purpose: SigningMessagePurpose
|
|
1698
|
+
}
|
|
1699
|
+
|
|
1700
|
+
enum GrantType {
|
|
1701
|
+
authorization_code
|
|
1702
|
+
refresh_token
|
|
1703
|
+
}
|
|
1704
|
+
|
|
1705
|
+
type IcymiTopic implements Node {
|
|
1706
|
+
archivedAt: DateTime
|
|
1707
|
+
articles: [Article!]!
|
|
1708
|
+
id: ID!
|
|
1709
|
+
note(input: TranslationArgs): String
|
|
1710
|
+
pinAmount: Int!
|
|
1711
|
+
publishedAt: DateTime
|
|
1712
|
+
state: IcymiTopicState!
|
|
1713
|
+
title(input: TranslationArgs): String!
|
|
1714
|
+
}
|
|
1715
|
+
|
|
1716
|
+
type IcymiTopicConnection implements Connection {
|
|
1717
|
+
edges: [IcymiTopicEdge!]!
|
|
1718
|
+
pageInfo: PageInfo!
|
|
1719
|
+
totalCount: Int!
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
type IcymiTopicEdge {
|
|
1723
|
+
cursor: String!
|
|
1724
|
+
node: IcymiTopic!
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
enum IcymiTopicState {
|
|
1728
|
+
archived
|
|
1729
|
+
editing
|
|
1730
|
+
published
|
|
1731
|
+
}
|
|
1732
|
+
|
|
1733
|
+
input IdentityInput {
|
|
1734
|
+
id: ID
|
|
1735
|
+
shortHash: String
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
type Invitation {
|
|
1739
|
+
"""Accepted time."""
|
|
1740
|
+
acceptedAt: DateTime
|
|
1741
|
+
|
|
1742
|
+
"""Invitation of current Circle."""
|
|
1743
|
+
circle: Circle!
|
|
1744
|
+
|
|
1745
|
+
"""Created time."""
|
|
1746
|
+
createdAt: DateTime!
|
|
1747
|
+
|
|
1748
|
+
"""Free period of this invitation."""
|
|
1749
|
+
freePeriod: Int!
|
|
1750
|
+
|
|
1751
|
+
"""Unique ID."""
|
|
1752
|
+
id: ID!
|
|
1753
|
+
|
|
1754
|
+
"""Target person of this invitation."""
|
|
1755
|
+
invitee: Invitee!
|
|
1756
|
+
|
|
1757
|
+
"""Creator of this invitation."""
|
|
1758
|
+
inviter: User!
|
|
1759
|
+
|
|
1760
|
+
"""Sent time."""
|
|
1761
|
+
sentAt: DateTime!
|
|
1762
|
+
|
|
1763
|
+
"""Determine it's specific state."""
|
|
1764
|
+
state: InvitationState!
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
type InvitationConnection implements Connection {
|
|
1768
|
+
edges: [InvitationEdge!]
|
|
1769
|
+
pageInfo: PageInfo!
|
|
1770
|
+
totalCount: Int!
|
|
1771
|
+
}
|
|
1772
|
+
|
|
1773
|
+
type InvitationEdge {
|
|
1774
|
+
cursor: String!
|
|
1775
|
+
node: Invitation!
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
enum InvitationState {
|
|
1779
|
+
accepted
|
|
1780
|
+
pending
|
|
1781
|
+
transfer_failed
|
|
1782
|
+
transfer_succeeded
|
|
1783
|
+
}
|
|
1784
|
+
|
|
1785
|
+
input InviteCircleInput {
|
|
1786
|
+
circleId: ID!
|
|
1787
|
+
freePeriod: freePeriod_Int_NotNull_exclusiveMin_0!
|
|
1788
|
+
invitees: [InviteCircleInvitee!]!
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
input InviteCircleInvitee {
|
|
1792
|
+
email: String
|
|
1793
|
+
id: ID
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1796
|
+
union Invitee = Person | User
|
|
1797
|
+
|
|
1798
|
+
type Invites {
|
|
1799
|
+
"""Accepted invitation list"""
|
|
1800
|
+
accepted(input: ConnectionArgs!): InvitationConnection!
|
|
1801
|
+
|
|
1802
|
+
"""Pending invitation list"""
|
|
1803
|
+
pending(input: ConnectionArgs!): InvitationConnection!
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
input KeywordInput {
|
|
1807
|
+
keyword: String!
|
|
1808
|
+
}
|
|
1809
|
+
|
|
1810
|
+
input KeywordsInput {
|
|
1811
|
+
keywords: [String!]
|
|
1812
|
+
}
|
|
1813
|
+
|
|
1814
|
+
input LikeCollectionInput {
|
|
1815
|
+
id: ID!
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
input LikeMomentInput {
|
|
1819
|
+
id: ID!
|
|
1820
|
+
}
|
|
1821
|
+
|
|
1822
|
+
type Liker {
|
|
1823
|
+
"""Whether liker is a civic liker"""
|
|
1824
|
+
civicLiker: Boolean!
|
|
1825
|
+
|
|
1826
|
+
"""Liker ID of LikeCoin"""
|
|
1827
|
+
likerId: String
|
|
1828
|
+
|
|
1829
|
+
"""Total LIKE left in wallet."""
|
|
1830
|
+
total: Float!
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
input LogRecordInput {
|
|
1834
|
+
type: LogRecordTypes!
|
|
1835
|
+
}
|
|
1836
|
+
|
|
1837
|
+
enum LogRecordTypes {
|
|
1838
|
+
ReadFolloweeArticles
|
|
1839
|
+
ReadFollowingFeed
|
|
1840
|
+
ReadResponseInfoPopUp
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
type Member {
|
|
1844
|
+
"""Price chosen by user when joining a Circle."""
|
|
1845
|
+
price: Price!
|
|
1846
|
+
|
|
1847
|
+
"""User who join to a Circle."""
|
|
1848
|
+
user: User!
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
type MemberConnection implements Connection {
|
|
1852
|
+
edges: [MemberEdge!]
|
|
1853
|
+
pageInfo: PageInfo!
|
|
1854
|
+
totalCount: Int!
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
type MemberEdge {
|
|
1858
|
+
cursor: String!
|
|
1859
|
+
node: Member!
|
|
1860
|
+
}
|
|
1861
|
+
|
|
1862
|
+
input MergeTagsInput {
|
|
1863
|
+
content: String!
|
|
1864
|
+
ids: [ID!]!
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
input MigrationInput {
|
|
1868
|
+
files: [Upload]!
|
|
1869
|
+
type: MigrationType
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
enum MigrationType {
|
|
1873
|
+
medium
|
|
1874
|
+
}
|
|
1875
|
+
|
|
1876
|
+
type Moment implements Node {
|
|
1877
|
+
articles: [Article!]!
|
|
1878
|
+
assets: [Asset!]!
|
|
1879
|
+
author: User!
|
|
1880
|
+
commentCount: Int!
|
|
1881
|
+
commentedFollowees: [User!]!
|
|
1882
|
+
comments(input: CommentsInput!): CommentConnection!
|
|
1883
|
+
content: String
|
|
1884
|
+
createdAt: DateTime!
|
|
1885
|
+
id: ID!
|
|
1886
|
+
likeCount: Int!
|
|
1887
|
+
|
|
1888
|
+
"""whether current user has liked it"""
|
|
1889
|
+
liked: Boolean!
|
|
1890
|
+
shortHash: String!
|
|
1891
|
+
spamStatus: SpamStatus!
|
|
1892
|
+
state: MomentState!
|
|
1893
|
+
tags: [Tag]!
|
|
1894
|
+
}
|
|
1895
|
+
|
|
1896
|
+
type MomentConnection implements Connection {
|
|
1897
|
+
edges: [MomentEdge!]
|
|
1898
|
+
pageInfo: PageInfo!
|
|
1899
|
+
totalCount: Int!
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
type MomentEdge {
|
|
1903
|
+
cursor: String!
|
|
1904
|
+
node: Moment!
|
|
1905
|
+
}
|
|
1906
|
+
|
|
1907
|
+
input MomentInput {
|
|
1908
|
+
shortHash: String!
|
|
1909
|
+
}
|
|
1910
|
+
|
|
1911
|
+
type MomentNotice implements Notice {
|
|
1912
|
+
"""List of notice actors."""
|
|
1913
|
+
actors: [User!]
|
|
1914
|
+
|
|
1915
|
+
"""Time of this notice was created."""
|
|
1916
|
+
createdAt: DateTime!
|
|
1917
|
+
|
|
1918
|
+
"""Unique ID of this notice."""
|
|
1919
|
+
id: ID!
|
|
1920
|
+
target: Moment!
|
|
1921
|
+
type: MomentNoticeType!
|
|
1922
|
+
|
|
1923
|
+
"""The value determines if the notice is unread or not."""
|
|
1924
|
+
unread: Boolean!
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
enum MomentNoticeType {
|
|
1928
|
+
MomentLiked
|
|
1929
|
+
MomentMentionedYou
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
enum MomentState {
|
|
1933
|
+
active
|
|
1934
|
+
archived
|
|
1935
|
+
}
|
|
1936
|
+
|
|
1937
|
+
type MonthlyDatum {
|
|
1938
|
+
date: DateTime!
|
|
1939
|
+
value: Float!
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
type Mutation {
|
|
1943
|
+
"""Add blocked search keyword to blocked_search_word db"""
|
|
1944
|
+
addBlockedSearchKeyword(input: KeywordInput!): BlockedSearchKeyword!
|
|
1945
|
+
|
|
1946
|
+
"""Add articles to the begining of the collections."""
|
|
1947
|
+
addCollectionsArticles(input: AddCollectionsArticlesInput!): [Collection!]!
|
|
1948
|
+
|
|
1949
|
+
"""Add Credit to User Wallet"""
|
|
1950
|
+
addCredit(input: AddCreditInput!): AddCreditResult!
|
|
1951
|
+
addCurationChannelArticles(input: AddCurationChannelArticlesInput!): CurationChannel!
|
|
1952
|
+
|
|
1953
|
+
"""Add a social login to current user."""
|
|
1954
|
+
addSocialLogin(input: SocialLoginInput!): User!
|
|
1955
|
+
|
|
1956
|
+
"""Add a wallet login to current user."""
|
|
1957
|
+
addWalletLogin(input: WalletLoginInput!): User!
|
|
1958
|
+
applyCampaign(input: ApplyCampaignInput!): Campaign!
|
|
1959
|
+
|
|
1960
|
+
"""Appreciate an article."""
|
|
1961
|
+
appreciateArticle(input: AppreciateArticleInput!): Article!
|
|
1962
|
+
banCampaignArticles(input: BanCampaignArticlesInput!): Campaign!
|
|
1963
|
+
|
|
1964
|
+
"""Let Traveloggers owner claims a Logbook, returns transaction hash"""
|
|
1965
|
+
claimLogbooks(input: ClaimLogbooksInput!): ClaimLogbooksResult!
|
|
1966
|
+
classifyArticlesChannels(input: ClassifyArticlesChannelsInput!): Boolean!
|
|
1967
|
+
|
|
1968
|
+
"""Clear read history for user."""
|
|
1969
|
+
clearReadHistory(input: ClearReadHistoryInput!): User!
|
|
1970
|
+
|
|
1971
|
+
"""Clear search history for user."""
|
|
1972
|
+
clearSearchHistory: Boolean
|
|
1973
|
+
|
|
1974
|
+
"""Confirm verification code from email."""
|
|
1975
|
+
confirmVerificationCode(input: ConfirmVerificationCodeInput!): ID!
|
|
1976
|
+
|
|
1977
|
+
"""Create Stripe Connect account for Payout"""
|
|
1978
|
+
connectStripeAccount(input: ConnectStripeAccountInput!): ConnectStripeAccountResult!
|
|
1979
|
+
deleteAnnouncements(input: DeleteAnnouncementsInput!): Boolean!
|
|
1980
|
+
|
|
1981
|
+
"""Delete blocked search keywords from search_history db"""
|
|
1982
|
+
deleteBlockedSearchKeywords(input: KeywordsInput!): Boolean
|
|
1983
|
+
|
|
1984
|
+
"""Remove articles from the collection."""
|
|
1985
|
+
deleteCollectionArticles(input: DeleteCollectionArticlesInput!): Collection!
|
|
1986
|
+
deleteCollections(input: DeleteCollectionsInput!): Boolean!
|
|
1987
|
+
|
|
1988
|
+
"""Remove a comment."""
|
|
1989
|
+
deleteComment(input: DeleteCommentInput!): Comment!
|
|
1990
|
+
deleteCurationChannelArticles(input: DeleteCurationChannelArticlesInput!): CurationChannel!
|
|
1991
|
+
|
|
1992
|
+
"""Remove a draft."""
|
|
1993
|
+
deleteDraft(input: DeleteDraftInput!): Boolean
|
|
1994
|
+
deleteMoment(input: DeleteMomentInput!): Moment!
|
|
1995
|
+
deleteTags(input: DeleteTagsInput!): Boolean
|
|
1996
|
+
directImageUpload(input: DirectImageUploadInput!): Asset!
|
|
1997
|
+
|
|
1998
|
+
"""Edit an article."""
|
|
1999
|
+
editArticle(input: EditArticleInput!): Article!
|
|
2000
|
+
|
|
2001
|
+
"""Login user."""
|
|
2002
|
+
emailLogin(input: EmailLoginInput!): AuthResult!
|
|
2003
|
+
|
|
2004
|
+
"""Get signing message."""
|
|
2005
|
+
generateSigningMessage(input: GenerateSigningMessageInput!): SigningMessageResult!
|
|
2006
|
+
|
|
2007
|
+
"""Invite others to join circle"""
|
|
2008
|
+
invite(input: InviteCircleInput!): [Invitation!]
|
|
2009
|
+
likeCollection(input: LikeCollectionInput!): Collection!
|
|
2010
|
+
likeMoment(input: LikeMomentInput!): Moment!
|
|
2011
|
+
|
|
2012
|
+
"""Add specific user behavior record."""
|
|
2013
|
+
logRecord(input: LogRecordInput!): Boolean
|
|
2014
|
+
|
|
2015
|
+
"""Mark all received notices as read."""
|
|
2016
|
+
markAllNoticesAsRead: Boolean
|
|
2017
|
+
mergeTags(input: MergeTagsInput!): Tag!
|
|
2018
|
+
|
|
2019
|
+
"""Migrate articles from other service provider."""
|
|
2020
|
+
migration(input: MigrationInput!): Boolean
|
|
2021
|
+
|
|
2022
|
+
"""Pay to another user or article"""
|
|
2023
|
+
payTo(input: PayToInput!): PayToResult!
|
|
2024
|
+
|
|
2025
|
+
"""Payout to user"""
|
|
2026
|
+
payout(input: PayoutInput!): Transaction!
|
|
2027
|
+
|
|
2028
|
+
"""Pin a comment."""
|
|
2029
|
+
pinComment(input: PinCommentInput!): Comment!
|
|
2030
|
+
|
|
2031
|
+
"""Publish an article onto IPFS."""
|
|
2032
|
+
publishArticle(input: PublishArticleInput!): Draft!
|
|
2033
|
+
putAnnouncement(input: PutAnnouncementInput!): Announcement!
|
|
2034
|
+
|
|
2035
|
+
"""Create or update a Circle."""
|
|
2036
|
+
putCircle(input: PutCircleInput!): Circle!
|
|
2037
|
+
|
|
2038
|
+
"""Add or remove Circle's articles"""
|
|
2039
|
+
putCircleArticles(input: PutCircleArticlesInput!): Circle! @deprecated(reason: "No longer in use")
|
|
2040
|
+
putCollection(input: PutCollectionInput!): Collection!
|
|
2041
|
+
|
|
2042
|
+
"""Publish or update a comment."""
|
|
2043
|
+
putComment(input: PutCommentInput!): Comment!
|
|
2044
|
+
putCurationChannel(input: PutCurationChannelInput!): CurationChannel!
|
|
2045
|
+
|
|
2046
|
+
"""Create or update a draft."""
|
|
2047
|
+
putDraft(input: PutDraftInput!): Draft!
|
|
2048
|
+
|
|
2049
|
+
"""update tags for showing on profile page"""
|
|
2050
|
+
putFeaturedTags(input: FeaturedTagsInput!): [Tag!]
|
|
2051
|
+
putIcymiTopic(input: PutIcymiTopicInput!): IcymiTopic
|
|
2052
|
+
putMoment(input: PutMomentInput!): Moment!
|
|
2053
|
+
|
|
2054
|
+
"""Create or Update an OAuth Client, used in OSS."""
|
|
2055
|
+
putOAuthClient(input: PutOAuthClientInput!): OAuthClient
|
|
2056
|
+
putRemark(input: PutRemarkInput!): String
|
|
2057
|
+
putRestrictedUsers(input: PutRestrictedUsersInput!): [User!]!
|
|
2058
|
+
putSkippedListItem(input: PutSkippedListItemInput!): [SkippedListItem!]
|
|
2059
|
+
putTagChannel(input: PutTagChannelInput!): Tag!
|
|
2060
|
+
putTopicChannel(input: PutTopicChannelInput!): TopicChannel!
|
|
2061
|
+
putUserFeatureFlags(input: PutUserFeatureFlagsInput!): [User!]!
|
|
2062
|
+
putWritingChallenge(input: PutWritingChallengeInput!): WritingChallenge!
|
|
2063
|
+
|
|
2064
|
+
"""Read an article."""
|
|
2065
|
+
readArticle(input: ReadArticleInput!): Article!
|
|
2066
|
+
|
|
2067
|
+
"""Remove a social login from current user."""
|
|
2068
|
+
removeSocialLogin(input: RemoveSocialLoginInput!): User!
|
|
2069
|
+
|
|
2070
|
+
"""Remove a wallet login from current user."""
|
|
2071
|
+
removeWalletLogin: User!
|
|
2072
|
+
renameTag(input: RenameTagInput!): Tag!
|
|
2073
|
+
reorderChannels(input: ReorderChannelsInput!): Boolean!
|
|
2074
|
+
|
|
2075
|
+
"""Reorder articles in the collection."""
|
|
2076
|
+
reorderCollectionArticles(input: ReorderCollectionArticlesInput!): Collection!
|
|
2077
|
+
|
|
2078
|
+
"""Reset Liker ID"""
|
|
2079
|
+
resetLikerId(input: ResetLikerIdInput!): User!
|
|
2080
|
+
|
|
2081
|
+
"""Reset user or payment password."""
|
|
2082
|
+
resetPassword(input: ResetPasswordInput!): Boolean
|
|
2083
|
+
reviewTopicChannelFeedback(input: ReviewTopicChannelFeedbackInput!): TopicChannelFeedback!
|
|
2084
|
+
sendCampaignAnnouncement(input: SendCampaignAnnouncementInput!): Boolean
|
|
2085
|
+
|
|
2086
|
+
"""Send verification code for email."""
|
|
2087
|
+
sendVerificationCode(input: SendVerificationCodeInput!): Boolean
|
|
2088
|
+
setAdStatus(input: SetAdStatusInput!): Article!
|
|
2089
|
+
setArticleTopicChannels(input: SetArticleTopicChannelsInput!): Article!
|
|
2090
|
+
setBoost(input: SetBoostInput!): Node!
|
|
2091
|
+
|
|
2092
|
+
"""Set user currency preference."""
|
|
2093
|
+
setCurrency(input: SetCurrencyInput!): User!
|
|
2094
|
+
|
|
2095
|
+
"""Set user email."""
|
|
2096
|
+
setEmail(input: SetEmailInput!): User!
|
|
2097
|
+
setFeature(input: SetFeatureInput!): Feature!
|
|
2098
|
+
|
|
2099
|
+
"""Set user email login password."""
|
|
2100
|
+
setPassword(input: SetPasswordInput!): User!
|
|
2101
|
+
setSpamStatus(input: SetSpamStatusInput!): Writing!
|
|
2102
|
+
|
|
2103
|
+
"""Set user name."""
|
|
2104
|
+
setUserName(input: SetUserNameInput!): User!
|
|
2105
|
+
|
|
2106
|
+
"""Upload a single file."""
|
|
2107
|
+
singleFileUpload(input: SingleFileUploadInput!): Asset!
|
|
2108
|
+
|
|
2109
|
+
"""Login/Signup via social accounts."""
|
|
2110
|
+
socialLogin(input: SocialLoginInput!): AuthResult!
|
|
2111
|
+
|
|
2112
|
+
"""Submit inappropriate content report"""
|
|
2113
|
+
submitReport(input: SubmitReportInput!): Report!
|
|
2114
|
+
|
|
2115
|
+
"""Feedback on topic channel classification"""
|
|
2116
|
+
submitTopicChannelFeedback(input: SubmitTopicChannelFeedbackInput!): TopicChannelFeedback!
|
|
2117
|
+
|
|
2118
|
+
"""Subscribe a Circle."""
|
|
2119
|
+
subscribeCircle(input: SubscribeCircleInput!): SubscribeCircleResult!
|
|
2120
|
+
toggleArticleRecommend(input: ToggleRecommendInput!): Article!
|
|
2121
|
+
|
|
2122
|
+
"""Block or Unblock a given user."""
|
|
2123
|
+
toggleBlockUser(input: ToggleItemInput!): User!
|
|
2124
|
+
toggleBookmarkArticle(input: ToggleItemInput!): Article!
|
|
2125
|
+
toggleBookmarkTag(input: ToggleItemInput!): Tag!
|
|
2126
|
+
|
|
2127
|
+
"""Follow or unfollow a Circle."""
|
|
2128
|
+
toggleFollowCircle(input: ToggleItemInput!): Circle! @deprecated(reason: "No longer in use")
|
|
2129
|
+
|
|
2130
|
+
"""Bookmark or unbookmark tag."""
|
|
2131
|
+
toggleFollowTag(input: ToggleItemInput!): Tag! @deprecated(reason: "Use toggleBookmarkTag instead")
|
|
2132
|
+
|
|
2133
|
+
"""Follow or Unfollow current user."""
|
|
2134
|
+
toggleFollowUser(input: ToggleItemInput!): User!
|
|
2135
|
+
togglePinChannelArticles(input: TogglePinChannelArticlesInput!): [Channel!]!
|
|
2136
|
+
|
|
2137
|
+
"""Pin or Unpin a comment."""
|
|
2138
|
+
togglePinComment(input: ToggleItemInput!): Comment!
|
|
2139
|
+
toggleSeedingUsers(input: ToggleSeedingUsersInput!): [User]!
|
|
2140
|
+
|
|
2141
|
+
"""Bookmark or unbookmark article"""
|
|
2142
|
+
toggleSubscribeArticle(input: ToggleItemInput!): Article! @deprecated(reason: "Use toggleBookmarkArticle instead")
|
|
2143
|
+
toggleUsersBadge(input: ToggleUsersBadgeInput!): [User]!
|
|
2144
|
+
toggleWritingChallengeFeaturedArticles(input: ToggleWritingChallengeFeaturedArticlesInput!): Campaign!
|
|
2145
|
+
unbindLikerId(input: UnbindLikerIdInput!): User!
|
|
2146
|
+
unlikeCollection(input: UnlikeCollectionInput!): Collection!
|
|
2147
|
+
unlikeMoment(input: UnlikeMomentInput!): Moment!
|
|
2148
|
+
|
|
2149
|
+
"""Unpin a comment."""
|
|
2150
|
+
unpinComment(input: UnpinCommentInput!): Comment!
|
|
2151
|
+
|
|
2152
|
+
"""Unsubscribe a Circle."""
|
|
2153
|
+
unsubscribeCircle(input: UnsubscribeCircleInput!): Circle!
|
|
2154
|
+
|
|
2155
|
+
"""Unvote a comment."""
|
|
2156
|
+
unvoteComment(input: UnvoteCommentInput!): Comment!
|
|
2157
|
+
updateArticleSensitive(input: UpdateArticleSensitiveInput!): Article!
|
|
2158
|
+
updateArticleState(input: UpdateArticleStateInput!): Article!
|
|
2159
|
+
updateCampaignApplicationState(input: UpdateCampaignApplicationStateInput!): Campaign!
|
|
2160
|
+
|
|
2161
|
+
"""Update a comments' state."""
|
|
2162
|
+
updateCommentsState(input: UpdateCommentsStateInput!): [Comment!]!
|
|
2163
|
+
|
|
2164
|
+
"""Update user notification settings."""
|
|
2165
|
+
updateNotificationSetting(input: UpdateNotificationSettingInput!): User!
|
|
2166
|
+
|
|
2167
|
+
"""Update referralCode of a user, used in OSS."""
|
|
2168
|
+
updateUserExtra(input: UpdateUserExtraInput!): User!
|
|
2169
|
+
|
|
2170
|
+
"""Update user information."""
|
|
2171
|
+
updateUserInfo(input: UpdateUserInfoInput!): User!
|
|
2172
|
+
|
|
2173
|
+
"""Update state of a user, used in OSS."""
|
|
2174
|
+
updateUserRole(input: UpdateUserRoleInput!): User!
|
|
2175
|
+
|
|
2176
|
+
"""Update state of a user, used in OSS."""
|
|
2177
|
+
updateUserState(input: UpdateUserStateInput!): [User!]
|
|
2178
|
+
|
|
2179
|
+
"""Logout user."""
|
|
2180
|
+
userLogout: Boolean!
|
|
2181
|
+
|
|
2182
|
+
"""Verify user email."""
|
|
2183
|
+
verifyEmail(input: VerifyEmailInput!): AuthResult!
|
|
2184
|
+
|
|
2185
|
+
"""Upvote or downvote a comment."""
|
|
2186
|
+
voteComment(input: VoteCommentInput!): Comment!
|
|
2187
|
+
|
|
2188
|
+
"""Login/Signup via a wallet."""
|
|
2189
|
+
walletLogin(input: WalletLoginInput!): AuthResult!
|
|
2190
|
+
|
|
2191
|
+
"""Withdraw locked ERC20/native token from donation vault"""
|
|
2192
|
+
withdrawLockedTokens: WithdrawLockedTokensResult!
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
""" NFT Asset """
|
|
2196
|
+
type NFTAsset {
|
|
2197
|
+
collectionName: String!
|
|
2198
|
+
|
|
2199
|
+
"""imageOriginalUrl: String!"""
|
|
2200
|
+
contractAddress: String!
|
|
2201
|
+
description: String
|
|
2202
|
+
id: ID!
|
|
2203
|
+
imagePreviewUrl: String
|
|
2204
|
+
imageUrl: String!
|
|
2205
|
+
name: String!
|
|
2206
|
+
}
|
|
2207
|
+
|
|
2208
|
+
interface Node {
|
|
2209
|
+
id: ID!
|
|
2210
|
+
}
|
|
2211
|
+
|
|
2212
|
+
input NodeInput {
|
|
2213
|
+
id: ID!
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
input NodesInput {
|
|
2217
|
+
ids: [ID!]!
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
"""This interface contains common fields of a notice."""
|
|
2221
|
+
interface Notice {
|
|
2222
|
+
"""Time of this notice was created."""
|
|
2223
|
+
createdAt: DateTime!
|
|
2224
|
+
|
|
2225
|
+
"""Unique ID of this notice."""
|
|
2226
|
+
id: ID!
|
|
2227
|
+
|
|
2228
|
+
"""The value determines if the notice is unread or not."""
|
|
2229
|
+
unread: Boolean!
|
|
2230
|
+
}
|
|
2231
|
+
|
|
2232
|
+
type NoticeConnection implements Connection {
|
|
2233
|
+
edges: [NoticeEdge!]
|
|
2234
|
+
pageInfo: PageInfo!
|
|
2235
|
+
totalCount: Int!
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
type NoticeEdge {
|
|
2239
|
+
cursor: String!
|
|
2240
|
+
node: Notice!
|
|
2241
|
+
}
|
|
2242
|
+
|
|
2243
|
+
type NotificationSetting {
|
|
2244
|
+
articleNewAppreciation: Boolean!
|
|
2245
|
+
articleNewCollected: Boolean!
|
|
2246
|
+
articleNewComment: Boolean!
|
|
2247
|
+
articleNewSubscription: Boolean!
|
|
2248
|
+
circleMemberNewBroadcastReply: Boolean!
|
|
2249
|
+
circleMemberNewDiscussion: Boolean!
|
|
2250
|
+
circleMemberNewDiscussionReply: Boolean!
|
|
2251
|
+
circleNewFollower: Boolean!
|
|
2252
|
+
|
|
2253
|
+
"""for circle owners"""
|
|
2254
|
+
circleNewSubscriber: Boolean!
|
|
2255
|
+
circleNewUnsubscriber: Boolean!
|
|
2256
|
+
email: Boolean!
|
|
2257
|
+
|
|
2258
|
+
"""for circle members & followers"""
|
|
2259
|
+
inCircleNewArticle: Boolean!
|
|
2260
|
+
inCircleNewBroadcast: Boolean!
|
|
2261
|
+
inCircleNewBroadcastReply: Boolean!
|
|
2262
|
+
inCircleNewDiscussion: Boolean!
|
|
2263
|
+
inCircleNewDiscussionReply: Boolean!
|
|
2264
|
+
mention: Boolean!
|
|
2265
|
+
newComment: Boolean!
|
|
2266
|
+
newLike: Boolean!
|
|
2267
|
+
userNewFollower: Boolean!
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
enum NotificationSettingType {
|
|
2271
|
+
articleNewAppreciation
|
|
2272
|
+
articleNewCollected
|
|
2273
|
+
articleNewComment
|
|
2274
|
+
articleNewSubscription
|
|
2275
|
+
circleMemberBroadcast
|
|
2276
|
+
circleMemberNewBroadcastReply
|
|
2277
|
+
circleMemberNewDiscussion
|
|
2278
|
+
circleMemberNewDiscussionReply
|
|
2279
|
+
circleNewDiscussion
|
|
2280
|
+
circleNewFollower
|
|
2281
|
+
|
|
2282
|
+
"""for circle owners"""
|
|
2283
|
+
circleNewSubscriber
|
|
2284
|
+
circleNewUnsubscriber
|
|
2285
|
+
email
|
|
2286
|
+
|
|
2287
|
+
"""for circle members"""
|
|
2288
|
+
inCircleNewArticle
|
|
2289
|
+
inCircleNewBroadcast
|
|
2290
|
+
inCircleNewBroadcastReply
|
|
2291
|
+
inCircleNewDiscussion
|
|
2292
|
+
inCircleNewDiscussionReply
|
|
2293
|
+
mention
|
|
2294
|
+
newComment
|
|
2295
|
+
newLike
|
|
2296
|
+
userNewFollower
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
type OAuthClient {
|
|
2300
|
+
"""URL for oauth client's avatar."""
|
|
2301
|
+
avatar: String
|
|
2302
|
+
|
|
2303
|
+
"""Creation Date"""
|
|
2304
|
+
createdAt: DateTime!
|
|
2305
|
+
|
|
2306
|
+
"""App Description"""
|
|
2307
|
+
description: String
|
|
2308
|
+
|
|
2309
|
+
"""Grant Types"""
|
|
2310
|
+
grantTypes: [GrantType!]
|
|
2311
|
+
|
|
2312
|
+
"""Unique Client ID of this OAuth Client."""
|
|
2313
|
+
id: ID!
|
|
2314
|
+
|
|
2315
|
+
"""App name"""
|
|
2316
|
+
name: String!
|
|
2317
|
+
|
|
2318
|
+
"""Redirect URIs"""
|
|
2319
|
+
redirectURIs: [String!]
|
|
2320
|
+
|
|
2321
|
+
"""Scopes"""
|
|
2322
|
+
scope: [String!]
|
|
2323
|
+
|
|
2324
|
+
"""Client secret"""
|
|
2325
|
+
secret: String!
|
|
2326
|
+
|
|
2327
|
+
"""Linked Developer Account"""
|
|
2328
|
+
user: User
|
|
2329
|
+
|
|
2330
|
+
"""URL for oauth client's official website"""
|
|
2331
|
+
website: String
|
|
2332
|
+
}
|
|
2333
|
+
|
|
2334
|
+
type OAuthClientConnection implements Connection {
|
|
2335
|
+
edges: [OAuthClientEdge!]
|
|
2336
|
+
pageInfo: PageInfo!
|
|
2337
|
+
totalCount: Int!
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
type OAuthClientEdge {
|
|
2341
|
+
cursor: String!
|
|
2342
|
+
node: OAuthClient!
|
|
2343
|
+
}
|
|
2344
|
+
|
|
2345
|
+
input OAuthClientInput {
|
|
2346
|
+
id: ID!
|
|
2347
|
+
}
|
|
2348
|
+
|
|
2349
|
+
type OSS {
|
|
2350
|
+
articles(input: OSSArticlesInput!): ArticleConnection!
|
|
2351
|
+
badgedUsers(input: BadgedUsersInput!): UserConnection!
|
|
2352
|
+
comments(input: ConnectionArgs!): CommentConnection!
|
|
2353
|
+
icymiTopics(input: ConnectionArgs!): IcymiTopicConnection!
|
|
2354
|
+
moments(input: ConnectionArgs!): MomentConnection!
|
|
2355
|
+
oauthClients(input: ConnectionArgs!): OAuthClientConnection!
|
|
2356
|
+
reports(input: ConnectionArgs!): ReportConnection!
|
|
2357
|
+
restrictedUsers(input: ConnectionArgs!): UserConnection!
|
|
2358
|
+
seedingUsers(input: ConnectionArgs!): UserConnection!
|
|
2359
|
+
skippedListItems(input: SkippedListItemsInput!): SkippedListItemsConnection!
|
|
2360
|
+
tags(input: TagsInput!): TagConnection!
|
|
2361
|
+
topicChannelFeedbacks(input: TopicChannelFeedbacksInput!): TopicChannelFeedbackConnection!
|
|
2362
|
+
users(input: ConnectionArgs!): UserConnection!
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2365
|
+
input OSSArticlesFilterInput {
|
|
2366
|
+
datetimeRange: DatetimeRangeInput
|
|
2367
|
+
isSpam: Boolean
|
|
2368
|
+
searchKey: String
|
|
2369
|
+
}
|
|
2370
|
+
|
|
2371
|
+
input OSSArticlesInput {
|
|
2372
|
+
after: String
|
|
2373
|
+
filter: OSSArticlesFilterInput
|
|
2374
|
+
first: first_Int_min_0
|
|
2375
|
+
sort: ArticlesSort = newest
|
|
2376
|
+
}
|
|
2377
|
+
|
|
2378
|
+
input Oauth1CredentialInput {
|
|
2379
|
+
oauthToken: String!
|
|
2380
|
+
oauthVerifier: String!
|
|
2381
|
+
}
|
|
2382
|
+
|
|
2383
|
+
"""This type contains system-wise info and settings."""
|
|
2384
|
+
type Official {
|
|
2385
|
+
"""Announcements"""
|
|
2386
|
+
announcements(input: AnnouncementsInput!): [Announcement!]
|
|
2387
|
+
|
|
2388
|
+
"""Feature flag"""
|
|
2389
|
+
features: [Feature!]!
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
"""The notice type contains info about official announcement."""
|
|
2393
|
+
type OfficialAnnouncementNotice implements Notice {
|
|
2394
|
+
"""Time of this notice was created."""
|
|
2395
|
+
createdAt: DateTime!
|
|
2396
|
+
|
|
2397
|
+
"""Unique ID of this notice."""
|
|
2398
|
+
id: ID!
|
|
2399
|
+
|
|
2400
|
+
"""The link to a specific page if provided."""
|
|
2401
|
+
link: String
|
|
2402
|
+
|
|
2403
|
+
"""The message content."""
|
|
2404
|
+
message: String!
|
|
2405
|
+
|
|
2406
|
+
"""The value determines if the notice is unread or not."""
|
|
2407
|
+
unread: Boolean!
|
|
2408
|
+
}
|
|
2409
|
+
|
|
2410
|
+
type PageInfo {
|
|
2411
|
+
endCursor: String
|
|
2412
|
+
hasNextPage: Boolean!
|
|
2413
|
+
hasPreviousPage: Boolean!
|
|
2414
|
+
startCursor: String
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
input PayToInput {
|
|
2418
|
+
amount: amount_Float_NotNull_exclusiveMin_0!
|
|
2419
|
+
|
|
2420
|
+
"""for ERC20/native token payment"""
|
|
2421
|
+
chain: Chain
|
|
2422
|
+
currency: TransactionCurrency!
|
|
2423
|
+
id: ID
|
|
2424
|
+
|
|
2425
|
+
"""for HKD payment"""
|
|
2426
|
+
password: String
|
|
2427
|
+
purpose: TransactionPurpose!
|
|
2428
|
+
recipientId: ID!
|
|
2429
|
+
targetId: ID
|
|
2430
|
+
txHash: String
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
type PayToResult {
|
|
2434
|
+
"""Only available when paying with LIKE."""
|
|
2435
|
+
redirectUrl: String
|
|
2436
|
+
transaction: Transaction!
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
input PayoutInput {
|
|
2440
|
+
amount: amount_Float_NotNull_exclusiveMin_0!
|
|
2441
|
+
password: String!
|
|
2442
|
+
}
|
|
2443
|
+
|
|
2444
|
+
type Person {
|
|
2445
|
+
email: email_String_NotNull_format_email!
|
|
2446
|
+
}
|
|
2447
|
+
|
|
2448
|
+
input PinCommentInput {
|
|
2449
|
+
id: ID!
|
|
2450
|
+
}
|
|
2451
|
+
|
|
2452
|
+
type PinHistory {
|
|
2453
|
+
"""Which feed (IcymiTopic / Channel) the article was pinned"""
|
|
2454
|
+
feed: Node!
|
|
2455
|
+
pinnedAt: DateTime!
|
|
2456
|
+
}
|
|
2457
|
+
|
|
2458
|
+
interface PinnableWork {
|
|
2459
|
+
cover: String
|
|
2460
|
+
id: ID!
|
|
2461
|
+
pinned: Boolean!
|
|
2462
|
+
title: String!
|
|
2463
|
+
}
|
|
2464
|
+
|
|
2465
|
+
type Price {
|
|
2466
|
+
"""Amount of Price."""
|
|
2467
|
+
amount: Float!
|
|
2468
|
+
|
|
2469
|
+
"""Current Price belongs to whcih Circle."""
|
|
2470
|
+
circle: Circle!
|
|
2471
|
+
|
|
2472
|
+
"""Created time."""
|
|
2473
|
+
createdAt: DateTime! @deprecated(reason: "No longer in use")
|
|
2474
|
+
|
|
2475
|
+
"""Currency of Price."""
|
|
2476
|
+
currency: TransactionCurrency!
|
|
2477
|
+
|
|
2478
|
+
"""Unique ID."""
|
|
2479
|
+
id: ID!
|
|
2480
|
+
|
|
2481
|
+
"""State of Price."""
|
|
2482
|
+
state: PriceState!
|
|
2483
|
+
|
|
2484
|
+
"""Updated time."""
|
|
2485
|
+
updatedAt: DateTime! @deprecated(reason: "No longer in use")
|
|
2486
|
+
}
|
|
2487
|
+
|
|
2488
|
+
enum PriceState {
|
|
2489
|
+
active
|
|
2490
|
+
archived
|
|
2491
|
+
}
|
|
2492
|
+
|
|
2493
|
+
input PublishArticleInput {
|
|
2494
|
+
id: ID!
|
|
2495
|
+
|
|
2496
|
+
"""whether publish to ISCN"""
|
|
2497
|
+
iscnPublish: Boolean
|
|
2498
|
+
|
|
2499
|
+
"""Scheduled publish date of the article."""
|
|
2500
|
+
publishAt: DateTime
|
|
2501
|
+
}
|
|
2502
|
+
|
|
2503
|
+
"""Enums for publishing state."""
|
|
2504
|
+
enum PublishState {
|
|
2505
|
+
error
|
|
2506
|
+
pending
|
|
2507
|
+
published
|
|
2508
|
+
unpublished
|
|
2509
|
+
}
|
|
2510
|
+
|
|
2511
|
+
input PutAnnouncementInput {
|
|
2512
|
+
channels: [AnnouncementChannelInput!]
|
|
2513
|
+
content: [TranslationInput!]
|
|
2514
|
+
cover: String
|
|
2515
|
+
expiredAt: DateTime
|
|
2516
|
+
id: ID
|
|
2517
|
+
link: [TranslationInput!]
|
|
2518
|
+
order: Int
|
|
2519
|
+
title: [TranslationInput!]
|
|
2520
|
+
type: AnnouncementType
|
|
2521
|
+
visible: Boolean
|
|
2522
|
+
}
|
|
2523
|
+
|
|
2524
|
+
input PutCircleArticlesInput {
|
|
2525
|
+
"""Access Type, `public` or `paywall` only."""
|
|
2526
|
+
accessType: ArticleAccessType!
|
|
2527
|
+
|
|
2528
|
+
"""Article Ids"""
|
|
2529
|
+
articles: [ID!]
|
|
2530
|
+
|
|
2531
|
+
"""Circle ID"""
|
|
2532
|
+
id: ID!
|
|
2533
|
+
license: ArticleLicenseType
|
|
2534
|
+
|
|
2535
|
+
"""Action Type"""
|
|
2536
|
+
type: PutCircleArticlesType!
|
|
2537
|
+
}
|
|
2538
|
+
|
|
2539
|
+
enum PutCircleArticlesType {
|
|
2540
|
+
add
|
|
2541
|
+
remove
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
input PutCircleInput {
|
|
2545
|
+
"""Circle's subscription fee."""
|
|
2546
|
+
amount: amount_Float_exclusiveMin_0
|
|
2547
|
+
|
|
2548
|
+
"""Unique ID of a Circle's avatar."""
|
|
2549
|
+
avatar: ID
|
|
2550
|
+
|
|
2551
|
+
"""Unique ID of a Circle's cover."""
|
|
2552
|
+
cover: ID
|
|
2553
|
+
|
|
2554
|
+
"""A short description of this Circle."""
|
|
2555
|
+
description: String
|
|
2556
|
+
|
|
2557
|
+
"""Human readable name of this Circle."""
|
|
2558
|
+
displayName: String
|
|
2559
|
+
|
|
2560
|
+
"""Unique ID."""
|
|
2561
|
+
id: ID
|
|
2562
|
+
|
|
2563
|
+
"""Slugified name of a Circle."""
|
|
2564
|
+
name: String
|
|
2565
|
+
}
|
|
2566
|
+
|
|
2567
|
+
input PutCollectionInput {
|
|
2568
|
+
cover: ID
|
|
2569
|
+
description: String
|
|
2570
|
+
id: ID
|
|
2571
|
+
pinned: Boolean
|
|
2572
|
+
title: String
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
input PutCommentInput {
|
|
2576
|
+
comment: CommentInput!
|
|
2577
|
+
id: ID
|
|
2578
|
+
}
|
|
2579
|
+
|
|
2580
|
+
input PutCurationChannelInput {
|
|
2581
|
+
activePeriod: DatetimeRangeInput
|
|
2582
|
+
color: Color
|
|
2583
|
+
id: ID
|
|
2584
|
+
name: [TranslationInput!]
|
|
2585
|
+
navbarTitle: [TranslationInput!]
|
|
2586
|
+
note: [TranslationInput!]
|
|
2587
|
+
pinAmount: Int
|
|
2588
|
+
showRecommendation: Boolean
|
|
2589
|
+
state: CurationChannelState
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
input PutDraftInput {
|
|
2593
|
+
accessType: ArticleAccessType
|
|
2594
|
+
|
|
2595
|
+
"""Which campaigns to attach"""
|
|
2596
|
+
campaigns: [ArticleCampaignInput!]
|
|
2597
|
+
|
|
2598
|
+
"""Whether readers can comment"""
|
|
2599
|
+
canComment: Boolean
|
|
2600
|
+
circle: ID
|
|
2601
|
+
|
|
2602
|
+
"""Deprecated, use connections instead"""
|
|
2603
|
+
collection: [ID]
|
|
2604
|
+
|
|
2605
|
+
"""Add article to these collections when published"""
|
|
2606
|
+
collections: [ID!]
|
|
2607
|
+
connections: [ID!]
|
|
2608
|
+
content: String
|
|
2609
|
+
cover: ID
|
|
2610
|
+
id: ID
|
|
2611
|
+
indentFirstLine: Boolean
|
|
2612
|
+
|
|
2613
|
+
"""Whether publish to ISCN"""
|
|
2614
|
+
iscnPublish: Boolean
|
|
2615
|
+
|
|
2616
|
+
"""Last known update timestamp for version conflict detection"""
|
|
2617
|
+
lastUpdatedAt: DateTime
|
|
2618
|
+
license: ArticleLicenseType
|
|
2619
|
+
replyToDonator: replyToDonator_String_maxLength_140
|
|
2620
|
+
requestForDonation: requestForDonation_String_maxLength_140
|
|
2621
|
+
sensitive: Boolean
|
|
2622
|
+
summary: String
|
|
2623
|
+
tags: [String!]
|
|
2624
|
+
title: String
|
|
2625
|
+
}
|
|
2626
|
+
|
|
2627
|
+
input PutIcymiTopicInput {
|
|
2628
|
+
articles: [ID!]
|
|
2629
|
+
id: ID
|
|
2630
|
+
note: [TranslationInput!]
|
|
2631
|
+
pinAmount: Int
|
|
2632
|
+
state: IcymiTopicState
|
|
2633
|
+
title: [TranslationInput!]
|
|
2634
|
+
}
|
|
2635
|
+
|
|
2636
|
+
input PutMomentInput {
|
|
2637
|
+
articles: [ID!]
|
|
2638
|
+
assets: [ID!]
|
|
2639
|
+
content: String!
|
|
2640
|
+
tags: [String!]
|
|
2641
|
+
}
|
|
2642
|
+
|
|
2643
|
+
input PutOAuthClientInput {
|
|
2644
|
+
avatar: ID
|
|
2645
|
+
description: String
|
|
2646
|
+
grantTypes: [GrantType!]
|
|
2647
|
+
id: ID
|
|
2648
|
+
name: String
|
|
2649
|
+
redirectURIs: [String!]
|
|
2650
|
+
scope: [String!]
|
|
2651
|
+
secret: String
|
|
2652
|
+
user: ID
|
|
2653
|
+
website: website_String_format_uri
|
|
2654
|
+
}
|
|
2655
|
+
|
|
2656
|
+
input PutRemarkInput {
|
|
2657
|
+
id: ID!
|
|
2658
|
+
remark: String!
|
|
2659
|
+
type: RemarkTypes!
|
|
2660
|
+
}
|
|
2661
|
+
|
|
2662
|
+
input PutRestrictedUsersInput {
|
|
2663
|
+
ids: [ID!]!
|
|
2664
|
+
restrictions: [UserRestrictionType!]!
|
|
2665
|
+
}
|
|
2666
|
+
|
|
2667
|
+
input PutSkippedListItemInput {
|
|
2668
|
+
archived: Boolean
|
|
2669
|
+
id: ID
|
|
2670
|
+
type: SkippedListItemType
|
|
2671
|
+
value: String
|
|
2672
|
+
}
|
|
2673
|
+
|
|
2674
|
+
input PutTagChannelInput {
|
|
2675
|
+
enabled: Boolean
|
|
2676
|
+
id: ID!
|
|
2677
|
+
navbarTitle: [TranslationInput!]
|
|
2678
|
+
}
|
|
2679
|
+
|
|
2680
|
+
input PutTopicChannelInput {
|
|
2681
|
+
enabled: Boolean
|
|
2682
|
+
id: ID
|
|
2683
|
+
name: [TranslationInput!]
|
|
2684
|
+
navbarTitle: [TranslationInput!]
|
|
2685
|
+
note: [TranslationInput!]
|
|
2686
|
+
providerId: String
|
|
2687
|
+
subChannels: [ID!]
|
|
2688
|
+
}
|
|
2689
|
+
|
|
2690
|
+
input PutUserFeatureFlagsInput {
|
|
2691
|
+
flags: [UserFeatureFlagType!]!
|
|
2692
|
+
ids: [ID!]!
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2695
|
+
input PutWritingChallengeInput {
|
|
2696
|
+
announcements: [ID!]
|
|
2697
|
+
applicationPeriod: DatetimeRangeInput
|
|
2698
|
+
channelEnabled: Boolean
|
|
2699
|
+
cover: ID
|
|
2700
|
+
description: [TranslationInput!]
|
|
2701
|
+
|
|
2702
|
+
"""exclude articles of this campaign in topic channels and newest"""
|
|
2703
|
+
exclusive: Boolean
|
|
2704
|
+
featuredDescription: [TranslationInput!]
|
|
2705
|
+
id: ID
|
|
2706
|
+
link: String
|
|
2707
|
+
managers: [ID!]
|
|
2708
|
+
name: [TranslationInput!]
|
|
2709
|
+
navbarTitle: [TranslationInput!]
|
|
2710
|
+
newStages: [CampaignStageInput!]
|
|
2711
|
+
organizers: [ID!]
|
|
2712
|
+
showAd: Boolean
|
|
2713
|
+
showOther: Boolean
|
|
2714
|
+
stages: [CampaignStageInput!]
|
|
2715
|
+
state: CampaignState
|
|
2716
|
+
writingPeriod: DatetimeRangeInput
|
|
2717
|
+
}
|
|
2718
|
+
|
|
2719
|
+
type Query {
|
|
2720
|
+
article(input: ArticleInput!): Article
|
|
2721
|
+
campaign(input: CampaignInput!): Campaign
|
|
2722
|
+
campaignOrganizers(input: ConnectionArgs!): UserConnection!
|
|
2723
|
+
campaigns(input: CampaignsInput!): CampaignConnection!
|
|
2724
|
+
channel(input: ChannelInput!): Channel
|
|
2725
|
+
channels(input: ChannelsInput): [Channel!]!
|
|
2726
|
+
circle(input: CircleInput!): Circle
|
|
2727
|
+
exchangeRates(input: ExchangeRatesInput): [ExchangeRate!]
|
|
2728
|
+
frequentSearch(input: FrequentSearchInput!): [String!]
|
|
2729
|
+
moment(input: MomentInput!): Moment
|
|
2730
|
+
node(input: NodeInput!): Node
|
|
2731
|
+
nodes(input: NodesInput!): [Node!]
|
|
2732
|
+
oauthClient(input: OAuthClientInput!): OAuthClient
|
|
2733
|
+
oauthRequestToken: String
|
|
2734
|
+
official: Official!
|
|
2735
|
+
oss: OSS!
|
|
2736
|
+
search(input: SearchInput!): SearchResultConnection!
|
|
2737
|
+
user(input: UserInput!): User
|
|
2738
|
+
viewer: User
|
|
2739
|
+
}
|
|
2740
|
+
|
|
2741
|
+
enum QuoteCurrency {
|
|
2742
|
+
HKD
|
|
2743
|
+
TWD
|
|
2744
|
+
USD
|
|
2745
|
+
}
|
|
2746
|
+
|
|
2747
|
+
input ReadArticleInput {
|
|
2748
|
+
id: ID!
|
|
2749
|
+
}
|
|
2750
|
+
|
|
2751
|
+
type ReadHistory {
|
|
2752
|
+
article: Article!
|
|
2753
|
+
readAt: DateTime!
|
|
2754
|
+
}
|
|
2755
|
+
|
|
2756
|
+
type ReadHistoryConnection implements Connection {
|
|
2757
|
+
edges: [ReadHistoryEdge!]
|
|
2758
|
+
pageInfo: PageInfo!
|
|
2759
|
+
totalCount: Int!
|
|
2760
|
+
}
|
|
2761
|
+
|
|
2762
|
+
type ReadHistoryEdge {
|
|
2763
|
+
cursor: String!
|
|
2764
|
+
node: ReadHistory!
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
type RecentSearchConnection implements Connection {
|
|
2768
|
+
edges: [RecentSearchEdge!]
|
|
2769
|
+
pageInfo: PageInfo!
|
|
2770
|
+
totalCount: Int!
|
|
2771
|
+
}
|
|
2772
|
+
|
|
2773
|
+
type RecentSearchEdge {
|
|
2774
|
+
cursor: String!
|
|
2775
|
+
node: String!
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2778
|
+
input RecommendFilterInput {
|
|
2779
|
+
channel: IdentityInput
|
|
2780
|
+
|
|
2781
|
+
"""filter out followed users"""
|
|
2782
|
+
followed: Boolean
|
|
2783
|
+
|
|
2784
|
+
"""index of list, min: 0, max: 49"""
|
|
2785
|
+
random: random_Int_min_0_max_49
|
|
2786
|
+
}
|
|
2787
|
+
|
|
2788
|
+
input RecommendInput {
|
|
2789
|
+
after: String
|
|
2790
|
+
filter: RecommendFilterInput
|
|
2791
|
+
first: first_Int_min_0
|
|
2792
|
+
newAlgo: Boolean
|
|
2793
|
+
oss: Boolean
|
|
2794
|
+
}
|
|
2795
|
+
|
|
2796
|
+
"""Enums for types of recommend articles."""
|
|
2797
|
+
enum RecommendTypes {
|
|
2798
|
+
hottest
|
|
2799
|
+
icymi
|
|
2800
|
+
newest
|
|
2801
|
+
search
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
type Recommendation {
|
|
2805
|
+
"""Global user list, sort by activities in recent 6 month."""
|
|
2806
|
+
authors(input: RecommendInput!): UserConnection!
|
|
2807
|
+
|
|
2808
|
+
"""Activities based on user's following, sort by creation time."""
|
|
2809
|
+
following(input: RecommendationFollowingInput!): FollowingActivityConnection!
|
|
2810
|
+
|
|
2811
|
+
"""Global articles sort by latest activity time."""
|
|
2812
|
+
hottest(input: RecommendInput!): ArticleConnection!
|
|
2813
|
+
|
|
2814
|
+
"""'In case you missed it' recommendation."""
|
|
2815
|
+
icymi(input: ConnectionArgs!): ArticleConnection!
|
|
2816
|
+
|
|
2817
|
+
"""'In case you missed it' topic."""
|
|
2818
|
+
icymiTopic: IcymiTopic
|
|
2819
|
+
|
|
2820
|
+
"""Global articles sort by publish time."""
|
|
2821
|
+
newest(input: RecommendationNewestInput!): ArticleConnection!
|
|
2822
|
+
|
|
2823
|
+
"""Global tag list, sort by activities in recent 14 days."""
|
|
2824
|
+
tags(input: RecommendInput!): TagConnection!
|
|
2825
|
+
}
|
|
2826
|
+
|
|
2827
|
+
input RecommendationFollowingFilterInput {
|
|
2828
|
+
type: RecommendationFollowingFilterType
|
|
2829
|
+
}
|
|
2830
|
+
|
|
2831
|
+
enum RecommendationFollowingFilterType {
|
|
2832
|
+
article
|
|
2833
|
+
}
|
|
2834
|
+
|
|
2835
|
+
input RecommendationFollowingInput {
|
|
2836
|
+
after: String
|
|
2837
|
+
filter: RecommendationFollowingFilterInput
|
|
2838
|
+
first: Int
|
|
2839
|
+
}
|
|
2840
|
+
|
|
2841
|
+
input RecommendationNewestInput {
|
|
2842
|
+
after: String
|
|
2843
|
+
excludeChannelArticles: Boolean
|
|
2844
|
+
filter: FilterInput
|
|
2845
|
+
first: first_Int_min_0
|
|
2846
|
+
oss: Boolean
|
|
2847
|
+
}
|
|
2848
|
+
|
|
2849
|
+
input RefreshIPNSFeedInput {
|
|
2850
|
+
"""refresh how many recent articles, default to 50"""
|
|
2851
|
+
numArticles: Int = 50
|
|
2852
|
+
userName: String!
|
|
2853
|
+
}
|
|
2854
|
+
|
|
2855
|
+
input RelatedDonationArticlesInput {
|
|
2856
|
+
after: String
|
|
2857
|
+
first: first_Int_min_0
|
|
2858
|
+
oss: Boolean
|
|
2859
|
+
|
|
2860
|
+
"""index of article list, min: 0, max: 49"""
|
|
2861
|
+
random: random_Int_min_0_max_49
|
|
2862
|
+
}
|
|
2863
|
+
|
|
2864
|
+
enum RemarkTypes {
|
|
2865
|
+
Article
|
|
2866
|
+
Comment
|
|
2867
|
+
Feedback
|
|
2868
|
+
Report
|
|
2869
|
+
Tag
|
|
2870
|
+
User
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2873
|
+
input RemoveSocialLoginInput {
|
|
2874
|
+
type: SocialAccountType!
|
|
2875
|
+
}
|
|
2876
|
+
|
|
2877
|
+
input RenameTagInput {
|
|
2878
|
+
content: String!
|
|
2879
|
+
id: ID!
|
|
2880
|
+
}
|
|
2881
|
+
|
|
2882
|
+
input ReorderChannelsInput {
|
|
2883
|
+
ids: [ID!]!
|
|
2884
|
+
}
|
|
2885
|
+
|
|
2886
|
+
input ReorderCollectionArticlesInput {
|
|
2887
|
+
collection: ID!
|
|
2888
|
+
moves: [ReorderMoveInput!]!
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
input ReorderMoveInput {
|
|
2892
|
+
item: ID!
|
|
2893
|
+
|
|
2894
|
+
"""
|
|
2895
|
+
The new position move to. To move item to the beginning of the list, set to 0. To the end of the list, set to the length of the list - 1.
|
|
2896
|
+
"""
|
|
2897
|
+
newPosition: Int!
|
|
2898
|
+
}
|
|
2899
|
+
|
|
2900
|
+
type Report implements Node {
|
|
2901
|
+
createdAt: DateTime!
|
|
2902
|
+
id: ID!
|
|
2903
|
+
reason: ReportReason!
|
|
2904
|
+
reporter: User!
|
|
2905
|
+
target: Node!
|
|
2906
|
+
}
|
|
2907
|
+
|
|
2908
|
+
type ReportConnection implements Connection {
|
|
2909
|
+
edges: [ReportEdge!]
|
|
2910
|
+
pageInfo: PageInfo!
|
|
2911
|
+
totalCount: Int!
|
|
2912
|
+
}
|
|
2913
|
+
|
|
2914
|
+
type ReportEdge {
|
|
2915
|
+
cursor: String!
|
|
2916
|
+
node: Report!
|
|
2917
|
+
}
|
|
2918
|
+
|
|
2919
|
+
enum ReportReason {
|
|
2920
|
+
discrimination_insult_hatred
|
|
2921
|
+
illegal_advertising
|
|
2922
|
+
other
|
|
2923
|
+
pornography_involving_minors
|
|
2924
|
+
tort
|
|
2925
|
+
}
|
|
2926
|
+
|
|
2927
|
+
input ResetLikerIdInput {
|
|
2928
|
+
id: ID!
|
|
2929
|
+
}
|
|
2930
|
+
|
|
2931
|
+
input ResetPasswordInput {
|
|
2932
|
+
codeId: ID!
|
|
2933
|
+
password: String!
|
|
2934
|
+
type: ResetPasswordType
|
|
2935
|
+
}
|
|
2936
|
+
|
|
2937
|
+
enum ResetPasswordType {
|
|
2938
|
+
account
|
|
2939
|
+
payment
|
|
2940
|
+
}
|
|
2941
|
+
|
|
2942
|
+
union Response = Article | Comment
|
|
2943
|
+
|
|
2944
|
+
type ResponseConnection implements Connection {
|
|
2945
|
+
edges: [ResponseEdge!]
|
|
2946
|
+
pageInfo: PageInfo!
|
|
2947
|
+
totalCount: Int!
|
|
2948
|
+
}
|
|
2949
|
+
|
|
2950
|
+
type ResponseEdge {
|
|
2951
|
+
cursor: String!
|
|
2952
|
+
node: Response!
|
|
2953
|
+
}
|
|
2954
|
+
|
|
2955
|
+
"""Enums for sorting responses."""
|
|
2956
|
+
enum ResponseSort {
|
|
2957
|
+
newest
|
|
2958
|
+
oldest
|
|
2959
|
+
}
|
|
2960
|
+
|
|
2961
|
+
input ResponsesInput {
|
|
2962
|
+
after: String
|
|
2963
|
+
articleOnly: Boolean
|
|
2964
|
+
before: String
|
|
2965
|
+
first: first_Int_min_0
|
|
2966
|
+
includeAfter: Boolean
|
|
2967
|
+
includeBefore: Boolean
|
|
2968
|
+
sort: ResponseSort
|
|
2969
|
+
}
|
|
2970
|
+
|
|
2971
|
+
input ReviewTopicChannelFeedbackInput {
|
|
2972
|
+
action: TopicChannelFeedbackAction!
|
|
2973
|
+
feedback: ID!
|
|
2974
|
+
}
|
|
2975
|
+
|
|
2976
|
+
"""Enums for user roles."""
|
|
2977
|
+
enum Role {
|
|
2978
|
+
admin
|
|
2979
|
+
user
|
|
2980
|
+
vistor
|
|
2981
|
+
}
|
|
2982
|
+
|
|
2983
|
+
enum SearchAPIVersion {
|
|
2984
|
+
v20230301
|
|
2985
|
+
v20230601
|
|
2986
|
+
}
|
|
2987
|
+
|
|
2988
|
+
enum SearchExclude {
|
|
2989
|
+
blocked
|
|
2990
|
+
}
|
|
2991
|
+
|
|
2992
|
+
input SearchFilter {
|
|
2993
|
+
authorId: ID
|
|
2994
|
+
}
|
|
2995
|
+
|
|
2996
|
+
input SearchInput {
|
|
2997
|
+
after: String
|
|
2998
|
+
|
|
2999
|
+
"""specific condition for rule data out"""
|
|
3000
|
+
exclude: SearchExclude
|
|
3001
|
+
|
|
3002
|
+
"""extra query filter for searching"""
|
|
3003
|
+
filter: SearchFilter
|
|
3004
|
+
first: first_Int_min_0
|
|
3005
|
+
|
|
3006
|
+
"""should include tags used by author"""
|
|
3007
|
+
includeAuthorTags: Boolean
|
|
3008
|
+
|
|
3009
|
+
"""search keyword"""
|
|
3010
|
+
key: String!
|
|
3011
|
+
oss: Boolean
|
|
3012
|
+
quicksearch: Boolean
|
|
3013
|
+
|
|
3014
|
+
"""whether this search operation should be recorded in search history"""
|
|
3015
|
+
record: Boolean
|
|
3016
|
+
|
|
3017
|
+
"""types of search target"""
|
|
3018
|
+
type: SearchTypes!
|
|
3019
|
+
}
|
|
3020
|
+
|
|
3021
|
+
type SearchResultConnection implements Connection {
|
|
3022
|
+
edges: [SearchResultEdge!]
|
|
3023
|
+
pageInfo: PageInfo!
|
|
3024
|
+
totalCount: Int!
|
|
3025
|
+
}
|
|
3026
|
+
|
|
3027
|
+
type SearchResultEdge {
|
|
3028
|
+
cursor: String!
|
|
3029
|
+
node: Node!
|
|
3030
|
+
}
|
|
3031
|
+
|
|
3032
|
+
enum SearchTypes {
|
|
3033
|
+
Article
|
|
3034
|
+
Tag
|
|
3035
|
+
User
|
|
3036
|
+
}
|
|
3037
|
+
|
|
3038
|
+
input SendCampaignAnnouncementInput {
|
|
3039
|
+
announcement: [TranslationInput!]!
|
|
3040
|
+
campaign: ID!
|
|
3041
|
+
link: link_String_NotNull_format_uri!
|
|
3042
|
+
password: String!
|
|
3043
|
+
}
|
|
3044
|
+
|
|
3045
|
+
input SendVerificationCodeInput {
|
|
3046
|
+
email: email_String_NotNull_format_email!
|
|
3047
|
+
|
|
3048
|
+
"""email content language"""
|
|
3049
|
+
language: UserLanguage
|
|
3050
|
+
|
|
3051
|
+
"""
|
|
3052
|
+
Redirect URL embedded in the verification email,
|
|
3053
|
+
use code instead if not provided.
|
|
3054
|
+
"""
|
|
3055
|
+
redirectUrl: redirectUrl_String_format_uri
|
|
3056
|
+
token: String
|
|
3057
|
+
type: VerificationCodeType!
|
|
3058
|
+
}
|
|
3059
|
+
|
|
3060
|
+
input SetAdStatusInput {
|
|
3061
|
+
id: ID!
|
|
3062
|
+
isAd: Boolean!
|
|
3063
|
+
}
|
|
3064
|
+
|
|
3065
|
+
input SetArticleTopicChannelsInput {
|
|
3066
|
+
channels: [ID!]!
|
|
3067
|
+
id: ID!
|
|
3068
|
+
}
|
|
3069
|
+
|
|
3070
|
+
input SetBoostInput {
|
|
3071
|
+
boost: boost_Float_NotNull_min_0!
|
|
3072
|
+
id: ID!
|
|
3073
|
+
type: BoostTypes!
|
|
3074
|
+
}
|
|
3075
|
+
|
|
3076
|
+
input SetCurrencyInput {
|
|
3077
|
+
currency: QuoteCurrency
|
|
3078
|
+
}
|
|
3079
|
+
|
|
3080
|
+
input SetEmailInput {
|
|
3081
|
+
email: String!
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
input SetFeatureInput {
|
|
3085
|
+
flag: FeatureFlag!
|
|
3086
|
+
name: FeatureName!
|
|
3087
|
+
value: Float
|
|
3088
|
+
}
|
|
3089
|
+
|
|
3090
|
+
input SetPasswordInput {
|
|
3091
|
+
password: String!
|
|
3092
|
+
}
|
|
3093
|
+
|
|
3094
|
+
input SetSpamStatusInput {
|
|
3095
|
+
id: ID!
|
|
3096
|
+
isSpam: Boolean!
|
|
3097
|
+
}
|
|
3098
|
+
|
|
3099
|
+
input SetUserNameInput {
|
|
3100
|
+
userName: String!
|
|
3101
|
+
}
|
|
3102
|
+
|
|
3103
|
+
enum SigningMessagePurpose {
|
|
3104
|
+
airdrop
|
|
3105
|
+
claimLogbook
|
|
3106
|
+
connect
|
|
3107
|
+
login
|
|
3108
|
+
signup
|
|
3109
|
+
}
|
|
3110
|
+
|
|
3111
|
+
type SigningMessageResult {
|
|
3112
|
+
createdAt: DateTime!
|
|
3113
|
+
expiredAt: DateTime!
|
|
3114
|
+
nonce: String!
|
|
3115
|
+
purpose: SigningMessagePurpose!
|
|
3116
|
+
signingMessage: String!
|
|
3117
|
+
}
|
|
3118
|
+
|
|
3119
|
+
input SingleFileUploadInput {
|
|
3120
|
+
draft: Boolean
|
|
3121
|
+
entityId: ID
|
|
3122
|
+
entityType: EntityType!
|
|
3123
|
+
file: Upload
|
|
3124
|
+
type: AssetType!
|
|
3125
|
+
url: url_String_format_uri
|
|
3126
|
+
}
|
|
3127
|
+
|
|
3128
|
+
type SkippedListItem {
|
|
3129
|
+
archived: Boolean!
|
|
3130
|
+
createdAt: DateTime!
|
|
3131
|
+
id: ID!
|
|
3132
|
+
type: SkippedListItemType!
|
|
3133
|
+
updatedAt: DateTime!
|
|
3134
|
+
uuid: ID!
|
|
3135
|
+
value: String!
|
|
3136
|
+
}
|
|
3137
|
+
|
|
3138
|
+
type SkippedListItemEdge {
|
|
3139
|
+
cursor: String!
|
|
3140
|
+
node: SkippedListItem
|
|
3141
|
+
}
|
|
3142
|
+
|
|
3143
|
+
enum SkippedListItemType {
|
|
3144
|
+
agent_hash
|
|
3145
|
+
domain
|
|
3146
|
+
email
|
|
3147
|
+
}
|
|
3148
|
+
|
|
3149
|
+
type SkippedListItemsConnection implements Connection {
|
|
3150
|
+
edges: [SkippedListItemEdge!]
|
|
3151
|
+
pageInfo: PageInfo!
|
|
3152
|
+
totalCount: Int!
|
|
3153
|
+
}
|
|
3154
|
+
|
|
3155
|
+
input SkippedListItemsInput {
|
|
3156
|
+
after: String
|
|
3157
|
+
first: first_Int_min_0
|
|
3158
|
+
type: SkippedListItemType
|
|
3159
|
+
}
|
|
3160
|
+
|
|
3161
|
+
type SocialAccount {
|
|
3162
|
+
email: String
|
|
3163
|
+
type: SocialAccountType!
|
|
3164
|
+
userName: String
|
|
3165
|
+
}
|
|
3166
|
+
|
|
3167
|
+
enum SocialAccountType {
|
|
3168
|
+
Facebook
|
|
3169
|
+
Google
|
|
3170
|
+
Twitter
|
|
3171
|
+
}
|
|
3172
|
+
|
|
3173
|
+
input SocialLoginInput {
|
|
3174
|
+
authorizationCode: String
|
|
3175
|
+
|
|
3176
|
+
"""OAuth2 PKCE code_verifier for Facebook and Twitter"""
|
|
3177
|
+
codeVerifier: String
|
|
3178
|
+
|
|
3179
|
+
"""used in register"""
|
|
3180
|
+
language: UserLanguage
|
|
3181
|
+
|
|
3182
|
+
"""OIDC nonce for Google"""
|
|
3183
|
+
nonce: String
|
|
3184
|
+
|
|
3185
|
+
"""oauth token/verifier in OAuth1.0a for Twitter"""
|
|
3186
|
+
oauth1Credential: Oauth1CredentialInput
|
|
3187
|
+
referralCode: String
|
|
3188
|
+
type: SocialAccountType!
|
|
3189
|
+
}
|
|
3190
|
+
|
|
3191
|
+
type SpamStatus {
|
|
3192
|
+
"""
|
|
3193
|
+
Whether this work is labeled as spam by human, null for not labeled yet.
|
|
3194
|
+
"""
|
|
3195
|
+
isSpam: Boolean
|
|
3196
|
+
|
|
3197
|
+
"""Spam confident score by machine, null for not checked yet. """
|
|
3198
|
+
score: Float
|
|
3199
|
+
}
|
|
3200
|
+
|
|
3201
|
+
type StripeAccount {
|
|
3202
|
+
id: ID!
|
|
3203
|
+
loginUrl: String!
|
|
3204
|
+
}
|
|
3205
|
+
|
|
3206
|
+
enum StripeAccountCountry {
|
|
3207
|
+
Australia
|
|
3208
|
+
Austria
|
|
3209
|
+
Belgium
|
|
3210
|
+
Bulgaria
|
|
3211
|
+
Canada
|
|
3212
|
+
Cyprus
|
|
3213
|
+
Denmark
|
|
3214
|
+
Estonia
|
|
3215
|
+
Finland
|
|
3216
|
+
France
|
|
3217
|
+
Germany
|
|
3218
|
+
Greece
|
|
3219
|
+
HongKong
|
|
3220
|
+
Ireland
|
|
3221
|
+
Italy
|
|
3222
|
+
Latvia
|
|
3223
|
+
Lithuania
|
|
3224
|
+
Luxembourg
|
|
3225
|
+
Malta
|
|
3226
|
+
Netherlands
|
|
3227
|
+
NewZealand
|
|
3228
|
+
Norway
|
|
3229
|
+
Poland
|
|
3230
|
+
Portugal
|
|
3231
|
+
Romania
|
|
3232
|
+
Singapore
|
|
3233
|
+
Slovakia
|
|
3234
|
+
Slovenia
|
|
3235
|
+
Spain
|
|
3236
|
+
Sweden
|
|
3237
|
+
UnitedKingdom
|
|
3238
|
+
UnitedStates
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3241
|
+
input SubmitReportInput {
|
|
3242
|
+
reason: ReportReason!
|
|
3243
|
+
targetId: ID!
|
|
3244
|
+
}
|
|
3245
|
+
|
|
3246
|
+
input SubmitTopicChannelFeedbackInput {
|
|
3247
|
+
article: ID!
|
|
3248
|
+
channels: [ID!]
|
|
3249
|
+
type: TopicChannelFeedbackType!
|
|
3250
|
+
}
|
|
3251
|
+
|
|
3252
|
+
input SubscribeCircleInput {
|
|
3253
|
+
"""Unique ID."""
|
|
3254
|
+
id: ID!
|
|
3255
|
+
|
|
3256
|
+
"""Wallet password."""
|
|
3257
|
+
password: String
|
|
3258
|
+
}
|
|
3259
|
+
|
|
3260
|
+
type SubscribeCircleResult {
|
|
3261
|
+
circle: Circle!
|
|
3262
|
+
|
|
3263
|
+
"""client secret for SetupIntent."""
|
|
3264
|
+
client_secret: String
|
|
3265
|
+
}
|
|
3266
|
+
|
|
3267
|
+
"""This type contains content, count and related data of an article tag."""
|
|
3268
|
+
type Tag implements Channel & Node {
|
|
3269
|
+
"""List of articles were attached with this tag."""
|
|
3270
|
+
articles(input: TagArticlesInput!): ChannelArticleConnection!
|
|
3271
|
+
|
|
3272
|
+
"""Whether this tag is enabled as a channel"""
|
|
3273
|
+
channelEnabled: Boolean!
|
|
3274
|
+
|
|
3275
|
+
"""Content of this tag."""
|
|
3276
|
+
content: String!
|
|
3277
|
+
|
|
3278
|
+
"""Time of this tag was created."""
|
|
3279
|
+
createdAt: DateTime!
|
|
3280
|
+
deleted: Boolean!
|
|
3281
|
+
|
|
3282
|
+
"""Unique id of this tag."""
|
|
3283
|
+
id: ID!
|
|
3284
|
+
|
|
3285
|
+
"""This value determines if current viewer is following or not."""
|
|
3286
|
+
isFollower: Boolean
|
|
3287
|
+
|
|
3288
|
+
"""Navbar title for this tag channel"""
|
|
3289
|
+
navbarTitle(input: TranslationArgs): String!
|
|
3290
|
+
|
|
3291
|
+
"""Counts of this tag."""
|
|
3292
|
+
numArticles: Int!
|
|
3293
|
+
numAuthors: Int!
|
|
3294
|
+
numMoments: Int!
|
|
3295
|
+
oss: TagOSS!
|
|
3296
|
+
|
|
3297
|
+
"""Tags recommended based on relations to current tag."""
|
|
3298
|
+
recommended(input: RecommendInput!): TagConnection!
|
|
3299
|
+
|
|
3300
|
+
"""Authors recommended based on relations to current tag."""
|
|
3301
|
+
recommendedAuthors(input: ConnectionArgs!): UserConnection!
|
|
3302
|
+
remark: String
|
|
3303
|
+
|
|
3304
|
+
"""Short hash for shorter url addressing"""
|
|
3305
|
+
shortHash: String!
|
|
3306
|
+
|
|
3307
|
+
"""Articles and moments were attached with this tag."""
|
|
3308
|
+
writings(input: WritingInput!): TagWritingConnection!
|
|
3309
|
+
}
|
|
3310
|
+
|
|
3311
|
+
input TagArticlesInput {
|
|
3312
|
+
after: String
|
|
3313
|
+
first: first_Int_min_0
|
|
3314
|
+
oss: Boolean
|
|
3315
|
+
sortBy: TagArticlesSortBy = byCreatedAtDesc
|
|
3316
|
+
}
|
|
3317
|
+
|
|
3318
|
+
enum TagArticlesSortBy {
|
|
3319
|
+
byCreatedAtDesc
|
|
3320
|
+
byHottestDesc
|
|
3321
|
+
}
|
|
3322
|
+
|
|
3323
|
+
type TagConnection implements Connection {
|
|
3324
|
+
edges: [TagEdge!]
|
|
3325
|
+
pageInfo: PageInfo!
|
|
3326
|
+
totalCount: Int!
|
|
3327
|
+
}
|
|
3328
|
+
|
|
3329
|
+
type TagEdge {
|
|
3330
|
+
cursor: String!
|
|
3331
|
+
node: Tag!
|
|
3332
|
+
}
|
|
3333
|
+
|
|
3334
|
+
type TagOSS {
|
|
3335
|
+
boost: Float!
|
|
3336
|
+
score: Float!
|
|
3337
|
+
}
|
|
3338
|
+
|
|
3339
|
+
type TagWritingConnection implements Connection {
|
|
3340
|
+
edges: [TagWritingEdge!]
|
|
3341
|
+
pageInfo: PageInfo!
|
|
3342
|
+
totalCount: Int!
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
type TagWritingEdge {
|
|
3346
|
+
cursor: String!
|
|
3347
|
+
node: Writing!
|
|
3348
|
+
pinned: Boolean!
|
|
3349
|
+
}
|
|
3350
|
+
|
|
3351
|
+
input TagsInput {
|
|
3352
|
+
after: String
|
|
3353
|
+
first: first_Int_min_0
|
|
3354
|
+
sort: TagsSort
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
"""Enums for sorting tags."""
|
|
3358
|
+
enum TagsSort {
|
|
3359
|
+
hottest
|
|
3360
|
+
newest
|
|
3361
|
+
oldest
|
|
3362
|
+
}
|
|
3363
|
+
|
|
3364
|
+
input ToggleCircleMemberInput {
|
|
3365
|
+
"""Toggle value."""
|
|
3366
|
+
enabled: Boolean!
|
|
3367
|
+
|
|
3368
|
+
"""Unique ID."""
|
|
3369
|
+
id: ID!
|
|
3370
|
+
|
|
3371
|
+
"""Unique ID of target user."""
|
|
3372
|
+
targetId: ID!
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
"""Common input to toggle single item for `toggleXXX` mutations"""
|
|
3376
|
+
input ToggleItemInput {
|
|
3377
|
+
enabled: Boolean
|
|
3378
|
+
id: ID!
|
|
3379
|
+
}
|
|
3380
|
+
|
|
3381
|
+
input TogglePinChannelArticlesInput {
|
|
3382
|
+
articles: [ID!]!
|
|
3383
|
+
|
|
3384
|
+
"""id of TopicChannel or CurationChannel"""
|
|
3385
|
+
channels: [ID!]!
|
|
3386
|
+
pinned: Boolean!
|
|
3387
|
+
}
|
|
3388
|
+
|
|
3389
|
+
input ToggleRecommendInput {
|
|
3390
|
+
enabled: Boolean!
|
|
3391
|
+
id: ID!
|
|
3392
|
+
type: RecommendTypes
|
|
3393
|
+
}
|
|
3394
|
+
|
|
3395
|
+
input ToggleSeedingUsersInput {
|
|
3396
|
+
enabled: Boolean!
|
|
3397
|
+
ids: [ID!]
|
|
3398
|
+
}
|
|
3399
|
+
|
|
3400
|
+
input ToggleUsersBadgeInput {
|
|
3401
|
+
enabled: Boolean!
|
|
3402
|
+
ids: [ID!]!
|
|
3403
|
+
type: BadgeType!
|
|
3404
|
+
}
|
|
3405
|
+
|
|
3406
|
+
input ToggleWritingChallengeFeaturedArticlesInput {
|
|
3407
|
+
articles: [ID!]!
|
|
3408
|
+
campaign: ID!
|
|
3409
|
+
enabled: Boolean!
|
|
3410
|
+
}
|
|
3411
|
+
|
|
3412
|
+
type TopDonatorConnection implements Connection {
|
|
3413
|
+
edges: [TopDonatorEdge!]
|
|
3414
|
+
pageInfo: PageInfo!
|
|
3415
|
+
totalCount: Int!
|
|
3416
|
+
}
|
|
3417
|
+
|
|
3418
|
+
type TopDonatorEdge {
|
|
3419
|
+
cursor: String!
|
|
3420
|
+
donationCount: Int!
|
|
3421
|
+
node: Donator!
|
|
3422
|
+
}
|
|
3423
|
+
|
|
3424
|
+
input TopDonatorFilter {
|
|
3425
|
+
inRangeEnd: DateTime
|
|
3426
|
+
inRangeStart: DateTime
|
|
3427
|
+
}
|
|
3428
|
+
|
|
3429
|
+
input TopDonatorInput {
|
|
3430
|
+
after: String
|
|
3431
|
+
filter: TopDonatorFilter
|
|
3432
|
+
first: Int
|
|
3433
|
+
}
|
|
3434
|
+
|
|
3435
|
+
type TopicChannel implements Channel & Node {
|
|
3436
|
+
articles(input: ChannelArticlesInput!): ChannelArticleConnection!
|
|
3437
|
+
enabled: Boolean!
|
|
3438
|
+
id: ID!
|
|
3439
|
+
name(input: TranslationArgs): String!
|
|
3440
|
+
navbarTitle(input: TranslationArgs): String!
|
|
3441
|
+
note(input: TranslationArgs): String
|
|
3442
|
+
parent: TopicChannel
|
|
3443
|
+
providerId: String
|
|
3444
|
+
shortHash: String!
|
|
3445
|
+
}
|
|
3446
|
+
|
|
3447
|
+
type TopicChannelClassification {
|
|
3448
|
+
"""
|
|
3449
|
+
Which channels this article is in, null for not classified, empty for not in any channel
|
|
3450
|
+
"""
|
|
3451
|
+
channels: [ArticleTopicChannel!]
|
|
3452
|
+
|
|
3453
|
+
"""whether user enable channel classification"""
|
|
3454
|
+
enabled: Boolean!
|
|
3455
|
+
|
|
3456
|
+
"""Feedback from author"""
|
|
3457
|
+
feedback: TopicChannelFeedback
|
|
3458
|
+
}
|
|
3459
|
+
|
|
3460
|
+
type TopicChannelFeedback {
|
|
3461
|
+
article: Article!
|
|
3462
|
+
|
|
3463
|
+
"""Which channels author want to be in, empty for no channels"""
|
|
3464
|
+
channels: [TopicChannel!]
|
|
3465
|
+
createdAt: DateTime!
|
|
3466
|
+
id: ID!
|
|
3467
|
+
state: TopicChannelFeedbackState
|
|
3468
|
+
type: TopicChannelFeedbackType!
|
|
3469
|
+
}
|
|
3470
|
+
|
|
3471
|
+
enum TopicChannelFeedbackAction {
|
|
3472
|
+
accept
|
|
3473
|
+
reject
|
|
3474
|
+
}
|
|
3475
|
+
|
|
3476
|
+
type TopicChannelFeedbackConnection implements Connection {
|
|
3477
|
+
edges: [TopicChannelFeedbackEdge!]!
|
|
3478
|
+
pageInfo: PageInfo!
|
|
3479
|
+
totalCount: Int!
|
|
3480
|
+
}
|
|
3481
|
+
|
|
3482
|
+
type TopicChannelFeedbackEdge {
|
|
3483
|
+
cursor: String!
|
|
3484
|
+
node: TopicChannelFeedback!
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
enum TopicChannelFeedbackState {
|
|
3488
|
+
accepted
|
|
3489
|
+
pending
|
|
3490
|
+
rejected
|
|
3491
|
+
resolved
|
|
3492
|
+
}
|
|
3493
|
+
|
|
3494
|
+
enum TopicChannelFeedbackType {
|
|
3495
|
+
negative
|
|
3496
|
+
positive
|
|
3497
|
+
}
|
|
3498
|
+
|
|
3499
|
+
input TopicChannelFeedbacksFilterInput {
|
|
3500
|
+
spam: Boolean
|
|
3501
|
+
state: TopicChannelFeedbackState
|
|
3502
|
+
type: TopicChannelFeedbackType
|
|
3503
|
+
}
|
|
3504
|
+
|
|
3505
|
+
input TopicChannelFeedbacksInput {
|
|
3506
|
+
after: String
|
|
3507
|
+
filter: TopicChannelFeedbacksFilterInput
|
|
3508
|
+
first: first_Int_NotNull_min_0!
|
|
3509
|
+
}
|
|
3510
|
+
|
|
3511
|
+
type Transaction {
|
|
3512
|
+
amount: Float!
|
|
3513
|
+
|
|
3514
|
+
"""blockchain transaction info of ERC20/native token payment transaction"""
|
|
3515
|
+
blockchainTx: BlockchainTransaction
|
|
3516
|
+
|
|
3517
|
+
"""Timestamp of transaction."""
|
|
3518
|
+
createdAt: DateTime!
|
|
3519
|
+
currency: TransactionCurrency!
|
|
3520
|
+
fee: Float!
|
|
3521
|
+
id: ID!
|
|
3522
|
+
|
|
3523
|
+
"""Message for end user, including reason of failure."""
|
|
3524
|
+
message: String
|
|
3525
|
+
purpose: TransactionPurpose!
|
|
3526
|
+
|
|
3527
|
+
"""Recipient of transaction."""
|
|
3528
|
+
recipient: User
|
|
3529
|
+
|
|
3530
|
+
"""Sender of transaction."""
|
|
3531
|
+
sender: User
|
|
3532
|
+
state: TransactionState!
|
|
3533
|
+
|
|
3534
|
+
"""Related target article or transaction."""
|
|
3535
|
+
target: TransactionTarget
|
|
3536
|
+
}
|
|
3537
|
+
|
|
3538
|
+
type TransactionConnection implements Connection {
|
|
3539
|
+
edges: [TransactionEdge!]
|
|
3540
|
+
pageInfo: PageInfo!
|
|
3541
|
+
totalCount: Int!
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3544
|
+
enum TransactionCurrency {
|
|
3545
|
+
HKD
|
|
3546
|
+
LIKE
|
|
3547
|
+
USDT
|
|
3548
|
+
}
|
|
3549
|
+
|
|
3550
|
+
type TransactionEdge {
|
|
3551
|
+
cursor: String!
|
|
3552
|
+
node: Transaction!
|
|
3553
|
+
}
|
|
3554
|
+
|
|
3555
|
+
type TransactionNotice implements Notice {
|
|
3556
|
+
"""List of notice actors."""
|
|
3557
|
+
actors: [User!]
|
|
3558
|
+
|
|
3559
|
+
"""Time of this notice was created."""
|
|
3560
|
+
createdAt: DateTime!
|
|
3561
|
+
|
|
3562
|
+
"""Unique ID of this notice."""
|
|
3563
|
+
id: ID!
|
|
3564
|
+
target: Transaction!
|
|
3565
|
+
type: TransactionNoticeType!
|
|
3566
|
+
|
|
3567
|
+
"""The value determines if the notice is unread or not."""
|
|
3568
|
+
unread: Boolean!
|
|
3569
|
+
}
|
|
3570
|
+
|
|
3571
|
+
enum TransactionNoticeType {
|
|
3572
|
+
PaymentReceivedDonation
|
|
3573
|
+
WithdrewLockedTokens
|
|
3574
|
+
}
|
|
3575
|
+
|
|
3576
|
+
enum TransactionPurpose {
|
|
3577
|
+
addCredit
|
|
3578
|
+
curationVaultWithdrawal
|
|
3579
|
+
dispute
|
|
3580
|
+
donation
|
|
3581
|
+
payout
|
|
3582
|
+
payoutReversal
|
|
3583
|
+
refund
|
|
3584
|
+
subscriptionSplit
|
|
3585
|
+
}
|
|
3586
|
+
|
|
3587
|
+
enum TransactionState {
|
|
3588
|
+
canceled
|
|
3589
|
+
failed
|
|
3590
|
+
pending
|
|
3591
|
+
succeeded
|
|
3592
|
+
}
|
|
3593
|
+
|
|
3594
|
+
union TransactionTarget = Article | Circle | Transaction
|
|
3595
|
+
|
|
3596
|
+
input TransactionsArgs {
|
|
3597
|
+
after: String
|
|
3598
|
+
filter: TransactionsFilter
|
|
3599
|
+
first: first_Int_min_0
|
|
3600
|
+
|
|
3601
|
+
"""deprecated, use TransactionsFilter.id instead."""
|
|
3602
|
+
id: ID
|
|
3603
|
+
|
|
3604
|
+
"""deprecated, use TransactionsFilter.states instead."""
|
|
3605
|
+
states: [TransactionState!]
|
|
3606
|
+
}
|
|
3607
|
+
|
|
3608
|
+
input TransactionsFilter {
|
|
3609
|
+
currency: TransactionCurrency
|
|
3610
|
+
id: ID
|
|
3611
|
+
purpose: TransactionPurpose
|
|
3612
|
+
states: [TransactionState!]
|
|
3613
|
+
}
|
|
3614
|
+
|
|
3615
|
+
input TransactionsReceivedByArgs {
|
|
3616
|
+
after: String
|
|
3617
|
+
first: first_Int_min_0
|
|
3618
|
+
purpose: TransactionPurpose!
|
|
3619
|
+
senderId: ID
|
|
3620
|
+
}
|
|
3621
|
+
|
|
3622
|
+
type TranslatedAnnouncement {
|
|
3623
|
+
content: String
|
|
3624
|
+
cover: String
|
|
3625
|
+
language: UserLanguage!
|
|
3626
|
+
link: link_String_format_uri
|
|
3627
|
+
title: String
|
|
3628
|
+
}
|
|
3629
|
+
|
|
3630
|
+
input TranslationArgs {
|
|
3631
|
+
language: UserLanguage!
|
|
3632
|
+
}
|
|
3633
|
+
|
|
3634
|
+
input TranslationInput {
|
|
3635
|
+
language: UserLanguage!
|
|
3636
|
+
text: String!
|
|
3637
|
+
}
|
|
3638
|
+
|
|
3639
|
+
enum TranslationModel {
|
|
3640
|
+
google_gemini_2_0_flash
|
|
3641
|
+
google_gemini_2_5_flash
|
|
3642
|
+
google_translation_v2
|
|
3643
|
+
opencc
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3646
|
+
input UnbindLikerIdInput {
|
|
3647
|
+
id: ID!
|
|
3648
|
+
likerId: String!
|
|
3649
|
+
}
|
|
3650
|
+
|
|
3651
|
+
input UnlikeCollectionInput {
|
|
3652
|
+
id: ID!
|
|
3653
|
+
}
|
|
3654
|
+
|
|
3655
|
+
input UnlikeMomentInput {
|
|
3656
|
+
id: ID!
|
|
3657
|
+
}
|
|
3658
|
+
|
|
3659
|
+
input UnpinCommentInput {
|
|
3660
|
+
id: ID!
|
|
3661
|
+
}
|
|
3662
|
+
|
|
3663
|
+
input UnsubscribeCircleInput {
|
|
3664
|
+
"""Unique ID."""
|
|
3665
|
+
id: ID!
|
|
3666
|
+
}
|
|
3667
|
+
|
|
3668
|
+
input UnvoteCommentInput {
|
|
3669
|
+
id: ID!
|
|
3670
|
+
}
|
|
3671
|
+
|
|
3672
|
+
input UpdateArticleSensitiveInput {
|
|
3673
|
+
id: ID!
|
|
3674
|
+
sensitive: Boolean!
|
|
3675
|
+
}
|
|
3676
|
+
|
|
3677
|
+
input UpdateArticleStateInput {
|
|
3678
|
+
id: ID!
|
|
3679
|
+
state: ArticleState!
|
|
3680
|
+
}
|
|
3681
|
+
|
|
3682
|
+
input UpdateCampaignApplicationStateInput {
|
|
3683
|
+
campaign: ID!
|
|
3684
|
+
state: CampaignApplicationState!
|
|
3685
|
+
user: ID!
|
|
3686
|
+
}
|
|
3687
|
+
|
|
3688
|
+
input UpdateCommentsStateInput {
|
|
3689
|
+
ids: [ID!]!
|
|
3690
|
+
state: CommentState!
|
|
3691
|
+
}
|
|
3692
|
+
|
|
3693
|
+
input UpdateNotificationSettingInput {
|
|
3694
|
+
enabled: Boolean!
|
|
3695
|
+
type: NotificationSettingType!
|
|
3696
|
+
}
|
|
3697
|
+
|
|
3698
|
+
input UpdateUserExtraInput {
|
|
3699
|
+
id: ID!
|
|
3700
|
+
referralCode: String
|
|
3701
|
+
}
|
|
3702
|
+
|
|
3703
|
+
input UpdateUserInfoInput {
|
|
3704
|
+
agreeOn: Boolean
|
|
3705
|
+
avatar: ID
|
|
3706
|
+
description: String
|
|
3707
|
+
displayName: String
|
|
3708
|
+
language: UserLanguage
|
|
3709
|
+
paymentPassword: String
|
|
3710
|
+
paymentPointer: String
|
|
3711
|
+
profileCover: ID
|
|
3712
|
+
referralCode: String
|
|
3713
|
+
}
|
|
3714
|
+
|
|
3715
|
+
input UpdateUserRoleInput {
|
|
3716
|
+
id: ID!
|
|
3717
|
+
role: UserRole!
|
|
3718
|
+
}
|
|
3719
|
+
|
|
3720
|
+
input UpdateUserStateInput {
|
|
3721
|
+
banDays: banDays_Int_exclusiveMin_0
|
|
3722
|
+
emails: [String!]
|
|
3723
|
+
id: ID
|
|
3724
|
+
password: String
|
|
3725
|
+
state: UserState!
|
|
3726
|
+
}
|
|
3727
|
+
|
|
3728
|
+
scalar Upload
|
|
3729
|
+
|
|
3730
|
+
type User implements Node {
|
|
3731
|
+
"""Record of user activity, only accessable by current user."""
|
|
3732
|
+
activity: UserActivity!
|
|
3733
|
+
|
|
3734
|
+
"""user data analytics, only accessable by current user."""
|
|
3735
|
+
analytics: UserAnalytics!
|
|
3736
|
+
|
|
3737
|
+
"""Articles authored by current user."""
|
|
3738
|
+
articles(input: UserArticlesInput!): ArticleConnection!
|
|
3739
|
+
|
|
3740
|
+
"""URL for user avatar."""
|
|
3741
|
+
avatar: String
|
|
3742
|
+
|
|
3743
|
+
"""Users that blocked by current user."""
|
|
3744
|
+
blockList(input: ConnectionArgs!): UserConnection!
|
|
3745
|
+
|
|
3746
|
+
"""Artilces current user bookmarked."""
|
|
3747
|
+
bookmarkedArticles(input: ConnectionArgs!): ArticleConnection!
|
|
3748
|
+
|
|
3749
|
+
"""Tags current user bookmarked."""
|
|
3750
|
+
bookmarkedTags(input: ConnectionArgs!): TagConnection!
|
|
3751
|
+
|
|
3752
|
+
"""active applied campaigns"""
|
|
3753
|
+
campaigns(input: ConnectionArgs!): CampaignConnection!
|
|
3754
|
+
|
|
3755
|
+
"""collections authored by current user."""
|
|
3756
|
+
collections(input: ConnectionArgs!): CollectionConnection!
|
|
3757
|
+
|
|
3758
|
+
"""Articles current user commented on"""
|
|
3759
|
+
commentedArticles(input: ConnectionArgs!): ArticleConnection!
|
|
3760
|
+
|
|
3761
|
+
"""Display name on user profile, can be duplicated."""
|
|
3762
|
+
displayName: String
|
|
3763
|
+
|
|
3764
|
+
"""Drafts authored by current user."""
|
|
3765
|
+
drafts(input: ConnectionArgs!): DraftConnection!
|
|
3766
|
+
|
|
3767
|
+
"""Followers of this user."""
|
|
3768
|
+
followers(input: ConnectionArgs!): UserConnection!
|
|
3769
|
+
|
|
3770
|
+
"""Following contents of this user."""
|
|
3771
|
+
following: Following!
|
|
3772
|
+
|
|
3773
|
+
"""Global id of an user."""
|
|
3774
|
+
id: ID!
|
|
3775
|
+
|
|
3776
|
+
"""User information."""
|
|
3777
|
+
info: UserInfo!
|
|
3778
|
+
|
|
3779
|
+
"""Whether current user is blocked by viewer."""
|
|
3780
|
+
isBlocked: Boolean!
|
|
3781
|
+
|
|
3782
|
+
"""Whether current user is blocking viewer."""
|
|
3783
|
+
isBlocking: Boolean!
|
|
3784
|
+
|
|
3785
|
+
"""Whether viewer is following current user."""
|
|
3786
|
+
isFollowee: Boolean!
|
|
3787
|
+
|
|
3788
|
+
"""Whether current user is following viewer."""
|
|
3789
|
+
isFollower: Boolean!
|
|
3790
|
+
|
|
3791
|
+
"""user latest articles or collections"""
|
|
3792
|
+
latestWorks: [PinnableWork!]!
|
|
3793
|
+
|
|
3794
|
+
"""Liker info of current user"""
|
|
3795
|
+
liker: Liker!
|
|
3796
|
+
|
|
3797
|
+
"""LikerID of LikeCoin, being used by LikeCoin OAuth"""
|
|
3798
|
+
likerId: String
|
|
3799
|
+
notices(input: ConnectionArgs!): NoticeConnection!
|
|
3800
|
+
oss: UserOSS!
|
|
3801
|
+
|
|
3802
|
+
"""Circles belong to current user."""
|
|
3803
|
+
ownCircles: [Circle!]
|
|
3804
|
+
|
|
3805
|
+
"""Payment pointer that resolves to Open Payments endpoints"""
|
|
3806
|
+
paymentPointer: String
|
|
3807
|
+
|
|
3808
|
+
"""user pinned articles or collections"""
|
|
3809
|
+
pinnedWorks: [PinnableWork!]!
|
|
3810
|
+
|
|
3811
|
+
"""Recommendations for current user."""
|
|
3812
|
+
recommendation: Recommendation!
|
|
3813
|
+
remark: String
|
|
3814
|
+
|
|
3815
|
+
"""User settings."""
|
|
3816
|
+
settings: UserSettings!
|
|
3817
|
+
|
|
3818
|
+
"""Status of current user."""
|
|
3819
|
+
status: UserStatus
|
|
3820
|
+
|
|
3821
|
+
"""Circles whiches user has subscribed."""
|
|
3822
|
+
subscribedCircles(input: ConnectionArgs!): CircleConnection!
|
|
3823
|
+
|
|
3824
|
+
"""Tags by usage order of current user."""
|
|
3825
|
+
tags(input: ConnectionArgs!): TagConnection!
|
|
3826
|
+
|
|
3827
|
+
"""Global unique user name of a user."""
|
|
3828
|
+
userName: String
|
|
3829
|
+
|
|
3830
|
+
"""User Wallet"""
|
|
3831
|
+
wallet: Wallet!
|
|
3832
|
+
|
|
3833
|
+
"""Articles and moments authored by current user."""
|
|
3834
|
+
writings(input: WritingInput!): WritingConnection!
|
|
3835
|
+
}
|
|
3836
|
+
|
|
3837
|
+
type UserActivity {
|
|
3838
|
+
"""Appreciations current user received."""
|
|
3839
|
+
appreciationsReceived(input: ConnectionArgs!): AppreciationConnection!
|
|
3840
|
+
|
|
3841
|
+
"""Total number of appreciation current user received."""
|
|
3842
|
+
appreciationsReceivedTotal: Int!
|
|
3843
|
+
|
|
3844
|
+
"""Appreciations current user gave."""
|
|
3845
|
+
appreciationsSent(input: ConnectionArgs!): AppreciationConnection!
|
|
3846
|
+
|
|
3847
|
+
"""Total number of appreciation current user gave."""
|
|
3848
|
+
appreciationsSentTotal: Int!
|
|
3849
|
+
|
|
3850
|
+
"""User reading history."""
|
|
3851
|
+
history(input: ConnectionArgs!): ReadHistoryConnection!
|
|
3852
|
+
|
|
3853
|
+
"""User search history."""
|
|
3854
|
+
recentSearches(input: ConnectionArgs!): RecentSearchConnection!
|
|
3855
|
+
}
|
|
3856
|
+
|
|
3857
|
+
type UserAddArticleTagActivity {
|
|
3858
|
+
actor: User!
|
|
3859
|
+
createdAt: DateTime!
|
|
3860
|
+
|
|
3861
|
+
"""Article added to tag"""
|
|
3862
|
+
node: Article!
|
|
3863
|
+
|
|
3864
|
+
"""Tag added by article"""
|
|
3865
|
+
target: Tag!
|
|
3866
|
+
}
|
|
3867
|
+
|
|
3868
|
+
type UserAnalytics {
|
|
3869
|
+
"""Top donators of current user."""
|
|
3870
|
+
topDonators(input: TopDonatorInput!): TopDonatorConnection!
|
|
3871
|
+
}
|
|
3872
|
+
|
|
3873
|
+
input UserArticlesFilter {
|
|
3874
|
+
state: ArticleState = active
|
|
3875
|
+
}
|
|
3876
|
+
|
|
3877
|
+
input UserArticlesInput {
|
|
3878
|
+
after: String
|
|
3879
|
+
filter: UserArticlesFilter
|
|
3880
|
+
first: first_Int_min_0
|
|
3881
|
+
sort: UserArticlesSort = newest
|
|
3882
|
+
}
|
|
3883
|
+
|
|
3884
|
+
enum UserArticlesSort {
|
|
3885
|
+
mostAppreciations
|
|
3886
|
+
mostComments
|
|
3887
|
+
mostDonations
|
|
3888
|
+
mostReaders
|
|
3889
|
+
newest
|
|
3890
|
+
}
|
|
3891
|
+
|
|
3892
|
+
type UserBroadcastCircleActivity {
|
|
3893
|
+
actor: User!
|
|
3894
|
+
createdAt: DateTime!
|
|
3895
|
+
|
|
3896
|
+
"""Comment broadcast by actor"""
|
|
3897
|
+
node: Comment!
|
|
3898
|
+
|
|
3899
|
+
"""Circle that comment belongs to"""
|
|
3900
|
+
target: Circle!
|
|
3901
|
+
}
|
|
3902
|
+
|
|
3903
|
+
type UserConnection implements Connection {
|
|
3904
|
+
edges: [UserEdge!]
|
|
3905
|
+
pageInfo: PageInfo!
|
|
3906
|
+
totalCount: Int!
|
|
3907
|
+
}
|
|
3908
|
+
|
|
3909
|
+
type UserCreateCircleActivity {
|
|
3910
|
+
actor: User!
|
|
3911
|
+
createdAt: DateTime!
|
|
3912
|
+
|
|
3913
|
+
"""Circle created by actor"""
|
|
3914
|
+
node: Circle!
|
|
3915
|
+
}
|
|
3916
|
+
|
|
3917
|
+
type UserEdge {
|
|
3918
|
+
cursor: String!
|
|
3919
|
+
node: User!
|
|
3920
|
+
}
|
|
3921
|
+
|
|
3922
|
+
type UserFeatureFlag {
|
|
3923
|
+
createdAt: DateTime!
|
|
3924
|
+
type: UserFeatureFlagType!
|
|
3925
|
+
}
|
|
3926
|
+
|
|
3927
|
+
enum UserFeatureFlagType {
|
|
3928
|
+
bypassSpamDetection
|
|
3929
|
+
readSpamStatus
|
|
3930
|
+
unlimitedArticleFetch
|
|
3931
|
+
}
|
|
3932
|
+
|
|
3933
|
+
enum UserGroup {
|
|
3934
|
+
a
|
|
3935
|
+
b
|
|
3936
|
+
}
|
|
3937
|
+
|
|
3938
|
+
type UserInfo {
|
|
3939
|
+
"""Timestamp of user agreement."""
|
|
3940
|
+
agreeOn: DateTime
|
|
3941
|
+
|
|
3942
|
+
"""User badges."""
|
|
3943
|
+
badges: [Badge!]
|
|
3944
|
+
|
|
3945
|
+
"""Timestamp of registration."""
|
|
3946
|
+
createdAt: DateTime
|
|
3947
|
+
|
|
3948
|
+
"""Connected wallet."""
|
|
3949
|
+
cryptoWallet: CryptoWallet
|
|
3950
|
+
|
|
3951
|
+
"""User desciption."""
|
|
3952
|
+
description: String
|
|
3953
|
+
|
|
3954
|
+
"""User email."""
|
|
3955
|
+
email: email_String_format_email
|
|
3956
|
+
|
|
3957
|
+
"""Weather user email is verified."""
|
|
3958
|
+
emailVerified: Boolean!
|
|
3959
|
+
|
|
3960
|
+
"""Login address"""
|
|
3961
|
+
ethAddress: String
|
|
3962
|
+
|
|
3963
|
+
"""
|
|
3964
|
+
saved tags for showing on profile page, API allows up to 100, front-end lock'ed at lower limit
|
|
3965
|
+
"""
|
|
3966
|
+
featuredTags: [Tag!]
|
|
3967
|
+
|
|
3968
|
+
"""Type of group."""
|
|
3969
|
+
group: UserGroup!
|
|
3970
|
+
|
|
3971
|
+
"""
|
|
3972
|
+
the ipnsKey (`ipfs.io/ipns/<ipnsKey>/...`) for feed.json / rss.xml / index
|
|
3973
|
+
"""
|
|
3974
|
+
ipnsKey: String
|
|
3975
|
+
isWalletAuth: Boolean!
|
|
3976
|
+
|
|
3977
|
+
"""Cover of profile page."""
|
|
3978
|
+
profileCover: String
|
|
3979
|
+
|
|
3980
|
+
"""User connected social accounts."""
|
|
3981
|
+
socialAccounts: [SocialAccount!]!
|
|
3982
|
+
|
|
3983
|
+
"""Is user name editable."""
|
|
3984
|
+
userNameEditable: Boolean!
|
|
3985
|
+
}
|
|
3986
|
+
|
|
3987
|
+
enum UserInfoFields {
|
|
3988
|
+
agreeOn
|
|
3989
|
+
avatar
|
|
3990
|
+
description
|
|
3991
|
+
displayName
|
|
3992
|
+
email
|
|
3993
|
+
}
|
|
3994
|
+
|
|
3995
|
+
input UserInput {
|
|
3996
|
+
ethAddress: String
|
|
3997
|
+
userName: String
|
|
3998
|
+
|
|
3999
|
+
"""used for case insensitive username search """
|
|
4000
|
+
userNameCaseIgnore: Boolean = false
|
|
4001
|
+
}
|
|
4002
|
+
|
|
4003
|
+
enum UserLanguage {
|
|
4004
|
+
en
|
|
4005
|
+
zh_hans
|
|
4006
|
+
zh_hant
|
|
4007
|
+
}
|
|
4008
|
+
|
|
4009
|
+
type UserNotice implements Notice {
|
|
4010
|
+
"""List of notice actors."""
|
|
4011
|
+
actors: [User!]
|
|
4012
|
+
|
|
4013
|
+
"""Time of this notice was created."""
|
|
4014
|
+
createdAt: DateTime!
|
|
4015
|
+
|
|
4016
|
+
"""Unique ID of this notice."""
|
|
4017
|
+
id: ID!
|
|
4018
|
+
target: User!
|
|
4019
|
+
type: UserNoticeType!
|
|
4020
|
+
|
|
4021
|
+
"""The value determines if the notice is unread or not."""
|
|
4022
|
+
unread: Boolean!
|
|
4023
|
+
}
|
|
4024
|
+
|
|
4025
|
+
enum UserNoticeType {
|
|
4026
|
+
UserNewFollower
|
|
4027
|
+
}
|
|
4028
|
+
|
|
4029
|
+
type UserOSS {
|
|
4030
|
+
boost: Float!
|
|
4031
|
+
featureFlags: [UserFeatureFlag!]!
|
|
4032
|
+
restrictions: [UserRestriction!]!
|
|
4033
|
+
score: Float!
|
|
4034
|
+
}
|
|
4035
|
+
|
|
4036
|
+
type UserPostMomentActivity {
|
|
4037
|
+
actor: User!
|
|
4038
|
+
createdAt: DateTime!
|
|
4039
|
+
|
|
4040
|
+
"""Another 3 moments posted by actor"""
|
|
4041
|
+
more: [Moment!]!
|
|
4042
|
+
|
|
4043
|
+
"""Moment posted by actor"""
|
|
4044
|
+
node: Moment!
|
|
4045
|
+
}
|
|
4046
|
+
|
|
4047
|
+
type UserPublishArticleActivity {
|
|
4048
|
+
actor: User!
|
|
4049
|
+
createdAt: DateTime!
|
|
4050
|
+
|
|
4051
|
+
"""Article published by actor"""
|
|
4052
|
+
node: Article!
|
|
4053
|
+
}
|
|
4054
|
+
|
|
4055
|
+
type UserRecommendationActivity {
|
|
4056
|
+
"""Recommended users"""
|
|
4057
|
+
nodes: [User!]
|
|
4058
|
+
|
|
4059
|
+
"""The source type of recommendation"""
|
|
4060
|
+
source: UserRecommendationActivitySource
|
|
4061
|
+
}
|
|
4062
|
+
|
|
4063
|
+
enum UserRecommendationActivitySource {
|
|
4064
|
+
UserFollowing
|
|
4065
|
+
}
|
|
4066
|
+
|
|
4067
|
+
type UserRestriction {
|
|
4068
|
+
createdAt: DateTime!
|
|
4069
|
+
type: UserRestrictionType!
|
|
4070
|
+
}
|
|
4071
|
+
|
|
4072
|
+
enum UserRestrictionType {
|
|
4073
|
+
articleHottest
|
|
4074
|
+
articleNewest
|
|
4075
|
+
}
|
|
4076
|
+
|
|
4077
|
+
enum UserRole {
|
|
4078
|
+
admin
|
|
4079
|
+
user
|
|
4080
|
+
}
|
|
4081
|
+
|
|
4082
|
+
type UserSettings {
|
|
4083
|
+
"""User currency preference."""
|
|
4084
|
+
currency: QuoteCurrency!
|
|
4085
|
+
|
|
4086
|
+
"""User language setting."""
|
|
4087
|
+
language: UserLanguage!
|
|
4088
|
+
|
|
4089
|
+
"""Notification settings."""
|
|
4090
|
+
notification: NotificationSetting
|
|
4091
|
+
}
|
|
4092
|
+
|
|
4093
|
+
enum UserState {
|
|
4094
|
+
active
|
|
4095
|
+
archived
|
|
4096
|
+
banned
|
|
4097
|
+
frozen
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4100
|
+
type UserStatus {
|
|
4101
|
+
"""Number of articles published by user"""
|
|
4102
|
+
articleCount: Int!
|
|
4103
|
+
|
|
4104
|
+
"""
|
|
4105
|
+
Number of chances for the user to change email in a nature day. Reset in UTC+8 0:00
|
|
4106
|
+
"""
|
|
4107
|
+
changeEmailTimesLeft: Int!
|
|
4108
|
+
|
|
4109
|
+
"""Number of comments posted by user."""
|
|
4110
|
+
commentCount: Int!
|
|
4111
|
+
|
|
4112
|
+
"""Number of articles donated by user"""
|
|
4113
|
+
donatedArticleCount: Int!
|
|
4114
|
+
|
|
4115
|
+
"""Weather login password is set for email login."""
|
|
4116
|
+
hasEmailLoginPassword: Boolean!
|
|
4117
|
+
|
|
4118
|
+
"""Whether user already set payment password."""
|
|
4119
|
+
hasPaymentPassword: Boolean!
|
|
4120
|
+
|
|
4121
|
+
"""Number of moments posted by user"""
|
|
4122
|
+
momentCount: Int!
|
|
4123
|
+
|
|
4124
|
+
"""Number of times of donations received by user"""
|
|
4125
|
+
receivedDonationCount: Int!
|
|
4126
|
+
|
|
4127
|
+
"""User role and access level."""
|
|
4128
|
+
role: UserRole!
|
|
4129
|
+
|
|
4130
|
+
"""User state."""
|
|
4131
|
+
state: UserState!
|
|
4132
|
+
|
|
4133
|
+
"""
|
|
4134
|
+
Number of referred user registration count (in Digital Nomad Campaign).
|
|
4135
|
+
"""
|
|
4136
|
+
totalReferredCount: Int!
|
|
4137
|
+
|
|
4138
|
+
"""Number of total written words."""
|
|
4139
|
+
totalWordCount: Int!
|
|
4140
|
+
|
|
4141
|
+
"""Whether there are unread activities from following."""
|
|
4142
|
+
unreadFollowing: Boolean!
|
|
4143
|
+
|
|
4144
|
+
"""Number of unread notices."""
|
|
4145
|
+
unreadNoticeCount: Int!
|
|
4146
|
+
}
|
|
4147
|
+
|
|
4148
|
+
enum VerificationCodeType {
|
|
4149
|
+
email_otp
|
|
4150
|
+
email_verify
|
|
4151
|
+
payment_password_reset
|
|
4152
|
+
register
|
|
4153
|
+
}
|
|
4154
|
+
|
|
4155
|
+
input VerifyEmailInput {
|
|
4156
|
+
code: String!
|
|
4157
|
+
email: String!
|
|
4158
|
+
}
|
|
4159
|
+
|
|
4160
|
+
"""Enums for vote types."""
|
|
4161
|
+
enum Vote {
|
|
4162
|
+
down
|
|
4163
|
+
up
|
|
4164
|
+
}
|
|
4165
|
+
|
|
4166
|
+
input VoteCommentInput {
|
|
4167
|
+
id: ID!
|
|
4168
|
+
vote: Vote!
|
|
4169
|
+
}
|
|
4170
|
+
|
|
4171
|
+
type Wallet {
|
|
4172
|
+
balance: Balance!
|
|
4173
|
+
|
|
4174
|
+
"""The last four digits of the card."""
|
|
4175
|
+
cardLast4: String
|
|
4176
|
+
|
|
4177
|
+
"""
|
|
4178
|
+
URL of Stripe Dashboard to manage subscription invoice and payment method
|
|
4179
|
+
"""
|
|
4180
|
+
customerPortal: String
|
|
4181
|
+
|
|
4182
|
+
"""Account of Stripe Connect to manage payout"""
|
|
4183
|
+
stripeAccount: StripeAccount
|
|
4184
|
+
transactions(input: TransactionsArgs!): TransactionConnection!
|
|
4185
|
+
}
|
|
4186
|
+
|
|
4187
|
+
input WalletLoginInput {
|
|
4188
|
+
ethAddress: String!
|
|
4189
|
+
|
|
4190
|
+
"""used in register"""
|
|
4191
|
+
language: UserLanguage
|
|
4192
|
+
|
|
4193
|
+
"""nonce from generateSigningMessage"""
|
|
4194
|
+
nonce: String!
|
|
4195
|
+
referralCode: String
|
|
4196
|
+
|
|
4197
|
+
"""sign'ed by wallet"""
|
|
4198
|
+
signature: String!
|
|
4199
|
+
|
|
4200
|
+
"""the message being sign'ed, including nonce"""
|
|
4201
|
+
signedMessage: String!
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
type WithdrawLockedTokensResult {
|
|
4205
|
+
transaction: Transaction!
|
|
4206
|
+
}
|
|
4207
|
+
|
|
4208
|
+
union Writing = Article | Comment | Moment
|
|
4209
|
+
|
|
4210
|
+
type WritingChallenge implements Campaign & Channel & Node {
|
|
4211
|
+
announcements: [Article!]!
|
|
4212
|
+
application: CampaignApplication
|
|
4213
|
+
applicationPeriod: DatetimeRange
|
|
4214
|
+
articles(input: CampaignArticlesInput!): CampaignArticleConnection!
|
|
4215
|
+
channelEnabled: Boolean!
|
|
4216
|
+
cover: String
|
|
4217
|
+
description(input: TranslationArgs): String
|
|
4218
|
+
featuredDescription(input: TranslationArgs): String!
|
|
4219
|
+
id: ID!
|
|
4220
|
+
isManager: Boolean!
|
|
4221
|
+
link: String!
|
|
4222
|
+
name(input: TranslationArgs): String!
|
|
4223
|
+
navbarTitle(input: TranslationArgs): String!
|
|
4224
|
+
organizers: [User!]!
|
|
4225
|
+
oss: CampaignOSS!
|
|
4226
|
+
participants(input: CampaignParticipantsInput!): CampaignParticipantConnection!
|
|
4227
|
+
shortHash: String!
|
|
4228
|
+
showAd: Boolean!
|
|
4229
|
+
showOther: Boolean!
|
|
4230
|
+
stages: [CampaignStage!]!
|
|
4231
|
+
state: CampaignState!
|
|
4232
|
+
writingPeriod: DatetimeRange
|
|
4233
|
+
}
|
|
4234
|
+
|
|
4235
|
+
type WritingConnection implements Connection {
|
|
4236
|
+
edges: [WritingEdge!]
|
|
4237
|
+
pageInfo: PageInfo!
|
|
4238
|
+
totalCount: Int!
|
|
4239
|
+
}
|
|
4240
|
+
|
|
4241
|
+
type WritingEdge {
|
|
4242
|
+
cursor: String!
|
|
4243
|
+
node: Writing!
|
|
4244
|
+
}
|
|
4245
|
+
|
|
4246
|
+
input WritingInput {
|
|
4247
|
+
after: String
|
|
4248
|
+
first: Int
|
|
4249
|
+
}
|
|
4250
|
+
|
|
4251
|
+
scalar amount_Float_NotNull_exclusiveMin_0
|
|
4252
|
+
|
|
4253
|
+
scalar amount_Float_exclusiveMin_0
|
|
4254
|
+
|
|
4255
|
+
scalar amount_Int_NotNull_min_1
|
|
4256
|
+
|
|
4257
|
+
scalar banDays_Int_exclusiveMin_0
|
|
4258
|
+
|
|
4259
|
+
scalar boost_Float_NotNull_min_0
|
|
4260
|
+
|
|
4261
|
+
scalar description_String_maxLength_140
|
|
4262
|
+
|
|
4263
|
+
scalar email_String_NotNull_format_email
|
|
4264
|
+
|
|
4265
|
+
scalar email_String_format_email
|
|
4266
|
+
|
|
4267
|
+
scalar first_Int_NotNull_min_0
|
|
4268
|
+
|
|
4269
|
+
scalar first_Int_min_0
|
|
4270
|
+
|
|
4271
|
+
scalar freePeriod_Int_NotNull_exclusiveMin_0
|
|
4272
|
+
|
|
4273
|
+
scalar last_Int_min_0
|
|
4274
|
+
|
|
4275
|
+
scalar link_String_NotNull_format_uri
|
|
4276
|
+
|
|
4277
|
+
scalar link_String_format_uri
|
|
4278
|
+
|
|
4279
|
+
scalar random_Int_min_0_max_49
|
|
4280
|
+
|
|
4281
|
+
scalar redirectUrl_String_format_uri
|
|
4282
|
+
|
|
4283
|
+
scalar replyToDonator_String_maxLength_140
|
|
4284
|
+
|
|
4285
|
+
scalar requestForDonation_String_maxLength_140
|
|
4286
|
+
|
|
4287
|
+
scalar url_String_format_uri
|
|
4288
|
+
|
|
4289
|
+
scalar website_String_format_uri
|