UNPKG

9.7 kBTypeScriptView Raw
1interface BaseAPIOptions {
2 /**
3 * Waline 服务端地址
4 *
5 * Waline serverURL
6 */
7 serverURL: string;
8 /**
9 * 错误信息所使用的语言
10 *
11 * Language used in error text
12 */
13 lang: string;
14}
15interface ErrorStatusResponse {
16 /**
17 * 错误代码
18 *
19 * Error number
20 */
21 errno: number;
22 /**
23 * 错误消息
24 *
25 * Error msg
26 */
27 errmsg: string;
28}
29
30interface GetArticleCounterOptions extends BaseAPIOptions {
31 /**
32 * 待获取计数器的 path
33 *
34 * Path of counters
35 */
36 paths: string[];
37 /**
38 * 待获取计数器的类型
39 *
40 * Counter type to be fetched
41 */
42 type: string[];
43 /**
44 * 取消请求的信号
45 *
46 * AbortSignal to cancel request
47 */
48 signal?: AbortSignal;
49}
50type GetArticleCounterResponse = Record<string, number>[] | Record<string, number> | number[] | number;
51declare const getArticleCounter: ({ serverURL, lang, paths, type, signal, }: GetArticleCounterOptions) => Promise<GetArticleCounterResponse>;
52interface UpdateArticleCounterOptions extends BaseAPIOptions {
53 /**
54 * 待更新计数器的 path
55 *
56 * Path of counter to be updated
57 */
58 path: string;
59 /**
60 * 待更新计数器的类型
61 *
62 * Counter type to be updated
63 */
64 type: string;
65 /**
66 * 更新操作
67 *
68 * Update operation
69 *
70 * @default 'inc'
71 */
72 action?: 'inc' | 'desc';
73}
74declare const updateArticleCounter: ({ serverURL, lang, path, type, action, }: UpdateArticleCounterOptions) => Promise<number>;
75
76interface WalineCommentData {
77 /**
78 * User Nickname
79 */
80 nick: string;
81 /**
82 * User email
83 */
84 mail: string;
85 /**
86 * User link
87 */
88 link?: string;
89 /**
90 * Content of comment
91 */
92 comment: string;
93 /**
94 * User Agent
95 */
96 ua: string;
97 /**
98 * Parent comment id
99 */
100 pid?: string;
101 /**
102 * Root comment id
103 */
104 rid?: string;
105 /**
106 * User id being at
107 */
108 at?: string;
109 /**
110 * Comment link
111 */
112 url: string;
113 /**
114 * Recaptcha Token
115 */
116 recaptchaV3?: string;
117}
118type WalineCommentStatus = 'approved' | 'waiting' | 'spam';
119interface WalineComment extends Exclude<WalineCommentData, 'ua'> {
120 /**
121 * User avatar
122 */
123 avatar: string;
124 /**
125 * User type
126 */
127 type?: 'administrator' | 'guest' | `verify:${string}`;
128 objectId: string;
129 /**
130 * Time ISOString when the comment is created
131 */
132 createdAt: string;
133 insertedAt: string;
134 updatedAt: string;
135 children: WalineComment[];
136 sticky?: boolean;
137 browser?: string;
138 os?: string;
139 level?: number;
140 addr?: string;
141 label?: string;
142 user_id?: string | number;
143 status?: WalineCommentStatus;
144 like?: number;
145 orig?: string;
146}
147
148interface GetCommentOptions extends BaseAPIOptions {
149 /**
150 * 待获取评论列表的 path
151 *
152 * Path of comment list
153 */
154 path: string;
155 /**
156 * 评论分页数
157 *
158 * Comment pagination number
159 */
160 page: number;
161 /**
162 * 每页评论个数
163 *
164 * Comment number per page
165 */
166 pageSize: number;
167 /**
168 * 排序方式
169 *
170 * Sort method
171 */
172 sortBy: string;
173 /**
174 * 用户令牌
175 *
176 * User token
177 */
178 token?: string;
179 /**
180 * 取消请求的信号
181 *
182 * AbortSignal to cancel request
183 */
184 signal?: AbortSignal;
185}
186interface GetCommentResponse extends ErrorStatusResponse {
187 /**
188 * 评论数量
189 *
190 * Comment number
191 */
192 count: number;
193 /**
194 * 评论分页数
195 *
196 * Comment pagination number
197 */
198 page: number;
199 /**
200 * 每页评论个数
201 *
202 * Comment number per page
203 */
204 pageSize: number;
205 /**
206 * 评论数据
207 *
208 * Comment Data
209 */
210 data: WalineComment[];
211 /**
212 * 页面总数
213 *
214 * Page number
215 */
216 totalPages: number;
217}
218declare const getComment: ({ serverURL, lang, path, page, pageSize, sortBy, signal, token, }: GetCommentOptions) => Promise<GetCommentResponse>;
219interface AddCommentOptions extends BaseAPIOptions {
220 /**
221 * 用户令牌
222 *
223 * User token
224 */
225 token?: string;
226 /**
227 * 用户待提交的评论数据
228 *
229 * Comment data being submitted by user
230 */
231 comment: WalineCommentData;
232}
233interface AddCommentResponse extends ErrorStatusResponse {
234 /**
235 * 渲染好的评论数据
236 *
237 * Comment data rendered
238 */
239 data?: WalineComment;
240}
241declare const addComment: ({ serverURL, lang, token, comment, }: AddCommentOptions) => Promise<AddCommentResponse>;
242interface DeleteCommentOptions extends BaseAPIOptions {
243 token: string;
244 objectId: string | number;
245}
246interface DeleteCommentResponse extends ErrorStatusResponse {
247 data: '';
248}
249declare const deleteComment: ({ serverURL, lang, token, objectId, }: DeleteCommentOptions) => Promise<DeleteCommentResponse>;
250interface UpdateWalineCommentData extends Partial<WalineCommentData> {
251 /**
252 * 点赞还是取消点赞
253 *
254 * Like or dislike
255 */
256 like?: boolean;
257 /**
258 * 评论的状态
259 *
260 * Comment status
261 */
262 status?: 'approved' | 'waiting' | 'spam';
263 /**
264 * 评论指定状态
265 *
266 * Comment sticky status
267 *
268 * @description 0 means not sticky and 1 means sticky
269 */
270 sticky?: 0 | 1;
271}
272interface UpdateCommentOptions extends BaseAPIOptions {
273 /**
274 * 用户令牌
275 *
276 * User token
277 */
278 token: string;
279 /**
280 * 评论的 ID
281 *
282 * Comment ID
283 */
284 objectId: number | string;
285 /**
286 * 评论数据
287 *
288 * Comment data
289 */
290 comment?: UpdateWalineCommentData;
291}
292interface UpdateCommentResponse extends ErrorStatusResponse {
293 /**
294 * 更新后的评论数据
295 *
296 * Comment data rendered
297 */
298 data: WalineComment;
299}
300declare const updateComment: ({ serverURL, lang, token, objectId, comment, }: UpdateCommentOptions) => Promise<UpdateCommentResponse>;
301
302interface GetCommentCountOptions extends BaseAPIOptions {
303 /**
304 * 待获取评论数的 path
305 *
306 * Path of pages to be fetched
307 */
308 paths: string[];
309 /**
310 * 取消请求的信号
311 *
312 * AbortSignal to cancel request
313 */
314 signal?: AbortSignal;
315}
316declare const fetchCommentCount: ({ serverURL, lang, paths, signal, }: GetCommentCountOptions) => Promise<number[]>;
317
318interface UserInfo {
319 /**
320 * 显示姓名
321 *
322 * User name displayed
323 */
324 display_name: string;
325 /**
326 * 用户电子邮件地址
327 *
328 * User email
329 */
330 email: string;
331 /**
332 * 用户网站地址
333 *
334 * User website
335 */
336 url: string;
337 /**
338 * 用户令牌
339 *
340 * User token
341 */
342 token: string;
343 /**
344 * 用户头像
345 *
346 * User avatar
347 */
348 avatar: string;
349 /**
350 * 用户邮箱 MD5
351 *
352 * MD5 of User email
353 */
354 mailMd5: string;
355 /**
356 * 用户对象 ID
357 *
358 * User object ID
359 */
360 objectId: string | number;
361 /**
362 * 用户身份
363 *
364 * User role
365 */
366 type: 'administrator' | 'guest';
367}
368declare const login: ({ lang, serverURL, }: BaseAPIOptions) => Promise<UserInfo & {
369 remember: boolean;
370}>;
371
372interface GetPageviewOptions extends BaseAPIOptions {
373 /**
374 * 待获取页面的 path
375 *
376 * Path of pages
377 */
378 paths: string[];
379 /**
380 * 取消请求的信号
381 *
382 * AbortSignal to cancel request
383 */
384 signal?: AbortSignal;
385}
386declare const getPageview: ({ serverURL, lang, paths, signal, }: GetPageviewOptions) => Promise<number[]>;
387interface UpdatePageviewOptions extends BaseAPIOptions {
388 /**
389 * 待更新页面的 path
390 *
391 * Path of pages
392 */
393 path: string;
394}
395declare const updatePageview: (options: UpdatePageviewOptions) => Promise<number>;
396
397interface GetRecentCommentOptions extends BaseAPIOptions {
398 /**
399 * 获取评论的数量
400 *
401 * Comment number to be fetched
402 */
403 count: number;
404 /**
405 * 取消请求的信号
406 *
407 * AbortSignal to cancel request
408 */
409 signal?: AbortSignal;
410 /**
411 * 用户令牌
412 *
413 * User token
414 */
415 token?: string;
416}
417declare const getRecentComment: ({ serverURL, lang, count, signal, token, }: GetRecentCommentOptions) => Promise<WalineComment[]>;
418
419interface GetUserListOptions extends BaseAPIOptions {
420 /**
421 * 每页个数
422 *
423 * Number per page
424 */
425 pageSize: number;
426 /**
427 * 取消请求的信号
428 *
429 * AbortSignal to cancel request
430 */
431 signal?: AbortSignal;
432}
433interface WalineUser extends Pick<WalineComment, 'nick' | 'link' | 'avatar' | 'label' | 'level'> {
434 count: number;
435}
436interface GetUserListResponse extends ErrorStatusResponse {
437 data: WalineUser[];
438}
439declare const getUserList: ({ serverURL, signal, pageSize, lang, }: GetUserListOptions) => Promise<WalineUser[]>;
440
441export { AddCommentOptions, AddCommentResponse, DeleteCommentOptions, DeleteCommentResponse, GetArticleCounterOptions, GetArticleCounterResponse, GetCommentCountOptions, GetCommentOptions, GetCommentResponse, GetRecentCommentOptions, GetUserListOptions, GetUserListResponse, UpdateArticleCounterOptions, UpdateCommentOptions, UpdateCommentResponse, UpdatePageviewOptions, UserInfo, WalineUser, addComment, deleteComment, fetchCommentCount, getArticleCounter, getComment, getPageview, getRecentComment, getUserList, login, updateArticleCounter, updateComment, updatePageview };