@waline/client 2.15.1 → 2.15.3

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.
Files changed (52) hide show
  1. package/package.json +6 -3
  2. package/src/components/WalineComment.vue +1 -1
  3. package/src/composables/turnstile.ts +3 -0
  4. package/dist/api.cjs +0 -2
  5. package/dist/api.cjs.map +0 -1
  6. package/dist/api.d.cts +0 -445
  7. package/dist/api.d.mts +0 -445
  8. package/dist/api.d.ts +0 -445
  9. package/dist/api.mjs +0 -2
  10. package/dist/api.mjs.map +0 -1
  11. package/dist/comment.cjs +0 -2
  12. package/dist/comment.cjs.map +0 -1
  13. package/dist/comment.d.cts +0 -39
  14. package/dist/comment.d.mts +0 -39
  15. package/dist/comment.d.ts +0 -39
  16. package/dist/comment.js +0 -2
  17. package/dist/comment.js.map +0 -1
  18. package/dist/comment.mjs +0 -2
  19. package/dist/comment.mjs.map +0 -1
  20. package/dist/component.mjs +0 -2
  21. package/dist/component.mjs.map +0 -1
  22. package/dist/legacy.umd.d.ts +0 -628
  23. package/dist/legacy.umd.js +0 -2
  24. package/dist/legacy.umd.js.map +0 -1
  25. package/dist/pageview.cjs +0 -2
  26. package/dist/pageview.cjs.map +0 -1
  27. package/dist/pageview.d.cts +0 -47
  28. package/dist/pageview.d.mts +0 -47
  29. package/dist/pageview.d.ts +0 -47
  30. package/dist/pageview.js +0 -2
  31. package/dist/pageview.js.map +0 -1
  32. package/dist/pageview.mjs +0 -2
  33. package/dist/pageview.mjs.map +0 -1
  34. package/dist/shim.cjs +0 -2
  35. package/dist/shim.cjs.map +0 -1
  36. package/dist/shim.d.cts +0 -718
  37. package/dist/shim.d.mts +0 -718
  38. package/dist/shim.mjs +0 -2
  39. package/dist/shim.mjs.map +0 -1
  40. package/dist/waline-meta.css +0 -1
  41. package/dist/waline-meta.css.map +0 -1
  42. package/dist/waline.cjs +0 -2
  43. package/dist/waline.cjs.map +0 -1
  44. package/dist/waline.css +0 -1
  45. package/dist/waline.css.map +0 -1
  46. package/dist/waline.d.cts +0 -718
  47. package/dist/waline.d.mts +0 -718
  48. package/dist/waline.d.ts +0 -718
  49. package/dist/waline.js +0 -2
  50. package/dist/waline.js.map +0 -1
  51. package/dist/waline.mjs +0 -2
  52. package/dist/waline.mjs.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waline/client",
3
- "version": "2.15.1",
3
+ "version": "2.15.3",
4
4
  "description": "client for waline comment system",
5
5
  "keywords": [
6
6
  "valine",
@@ -103,6 +103,9 @@
103
103
  "style:main": "sass ./src/styles/index.scss ./dist/waline.css --style=compressed",
104
104
  "style:meta": "sass ./src/styles/meta.scss ./dist/waline-meta.css --style=compressed"
105
105
  },
106
+ "publishConfig": {
107
+ "provenance": true
108
+ },
106
109
  "browserslist": {
107
110
  "production": [
108
111
  ">0.5%",
@@ -119,7 +122,7 @@
119
122
  ]
120
123
  },
121
124
  "dependencies": {
122
- "@vueuse/core": "^9.13.0",
125
+ "@vueuse/core": "^10.1.0",
123
126
  "autosize": "^6.0.1",
124
127
  "marked": "^4.3.0",
125
128
  "vue": "^3.2.47"
@@ -133,7 +136,7 @@
133
136
  "@vitejs/plugin-vue": "4.1.0",
134
137
  "recaptcha-v3": "1.10.0",
135
138
  "user-agent-data-types": "0.3.1",
136
- "vite": "4.2.1"
139
+ "vite": "4.3.1"
137
140
  },
138
141
  "engines": {
139
142
  "node": ">=14"
@@ -160,7 +160,7 @@ const darkmodeStyle = computed(() => getDarkStyle(config.value.dark));
160
160
 
161
161
  const i18n = computed(() => config.value.locale);
162
162
 
163
- useStyleTag(darkmodeStyle);
163
+ useStyleTag(darkmodeStyle, { id: 'waline-darkmode' });
164
164
 
165
165
  let abort: () => void;
166
166
 
@@ -41,6 +41,9 @@ export const useTurnstile = (key: string): Turnstile => {
41
41
  turnstile?.ready(() =>
42
42
  turnstile?.render('.wl-captcha-container', options)
43
43
  );
44
+ },
45
+ {
46
+ async: false,
44
47
  }
45
48
  );
46
49
  });
package/dist/api.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";const e={"Content-Type":"application/json"},t=(e,t="")=>{if("object"==typeof e&&e.errno)throw new TypeError(`${t} failed with ${e.errno}: ${e.errmsg}`);return e},n=({serverURL:e,lang:t,paths:n,type:o,signal:r})=>fetch(`${e}/article?path=${encodeURIComponent(n.join(","))}&type=${encodeURIComponent(o.join(","))}&lang=${t}`,{signal:r}).then((e=>e.json())),o=({serverURL:t,lang:n,path:o,type:r,action:a})=>fetch(`${t}/article?lang=${n}`,{method:"POST",headers:e,body:JSON.stringify({path:o,type:r,action:a})}).then((e=>e.json()));exports.addComment=({serverURL:e,lang:t,token:n,comment:o})=>{const r={"Content-Type":"application/json"};return n&&(r.Authorization=`Bearer ${n}`),fetch(`${e}/comment?lang=${t}`,{method:"POST",headers:r,body:JSON.stringify(o)}).then((e=>e.json()))},exports.deleteComment=({serverURL:e,lang:n,token:o,objectId:r})=>fetch(`${e}/comment/${r}?lang=${n}`,{method:"DELETE",headers:{Authorization:`Bearer ${o}`}}).then((e=>e.json())).then((e=>t(e,"Delete comment"))),exports.fetchCommentCount=({serverURL:e,lang:t,paths:n,signal:o})=>fetch(`${e}/comment?type=count&url=${encodeURIComponent(n.join(","))}&lang=${t}`,{signal:o}).then((e=>e.json())).then((e=>Array.isArray(e)?e:[e])),exports.getArticleCounter=n,exports.getComment=({serverURL:e,lang:n,path:o,page:r,pageSize:a,sortBy:s,signal:i,token:g})=>{const p={};return g&&(p.Authorization=`Bearer ${g}`),fetch(`${e}/comment?path=${encodeURIComponent(o)}&pageSize=${a}&page=${r}&lang=${n}&sortBy=${s}`,{signal:i,headers:p}).then((e=>e.json())).then((e=>t(e,"Get comment data")))},exports.getPageview=({serverURL:e,lang:t,paths:o,signal:r})=>n({serverURL:e,lang:t,paths:o,type:["time"],signal:r}).then((e=>Array.isArray(e)?e:[e])),exports.getRecentComment=({serverURL:e,lang:t,count:n,signal:o,token:r})=>{const a={};return r&&(a.Authorization=`Bearer ${r}`),fetch(`${e}/comment?type=recent&count=${n}&lang=${t}`,{signal:o,headers:a}).then((e=>e.json()))},exports.getUserList=({serverURL:e,signal:n,pageSize:o,lang:r})=>fetch(`${e}/user?pageSize=${o}&lang=${r}`,{signal:n}).then((e=>e.json())).then((e=>t(e,"user list"))).then((e=>e.data)),exports.login=({lang:e,serverURL:t})=>{const n=(window.innerWidth-450)/2,o=(window.innerHeight-450)/2,r=window.open(`${t}/ui/login?lng=${encodeURIComponent(e)}`,"_blank",`width=450,height=450,left=${n},top=${o},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`);return r?.postMessage({type:"TOKEN",data:null},"*"),new Promise((e=>{const t=({data:n})=>{n&&"object"==typeof n&&"userInfo"===n.type&&n.data.token&&(r?.close(),window.removeEventListener("message",t),e(n.data))};window.addEventListener("message",t)}))},exports.updateArticleCounter=o,exports.updateComment=({serverURL:n,lang:o,token:r,objectId:a,comment:s})=>fetch(`${n}/comment/${a}?lang=${o}`,{method:"PUT",headers:{...e,Authorization:`Bearer ${r}`},body:JSON.stringify(s)}).then((e=>e.json())).then((e=>t(e,"Update comment"))),exports.updatePageview=e=>o({...e,type:"time",action:"inc"});
2
- //# sourceMappingURL=api.cjs.map
package/dist/api.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.cjs","sources":["../src/api/utils.ts","../src/api/articleCounter.ts","../src/api/comment.ts","../src/api/commentCount.ts","../src/api/pageview.ts","../src/api/recentComment.ts","../src/api/user.ts","../src/api/login.ts"],"sourcesContent":["export interface BaseAPIOptions {\n /**\n * Waline 服务端地址\n *\n * Waline serverURL\n */\n serverURL: string;\n\n /**\n * 错误信息所使用的语言\n *\n * Language used in error text\n */\n lang: string;\n}\n\nexport interface ErrorStatusResponse {\n /**\n * 错误代码\n *\n * Error number\n */\n errno: number;\n\n /**\n * 错误消息\n *\n * Error msg\n */\n errmsg: string;\n}\n\nexport const JSON_HEADERS: Record<string, string> = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json',\n};\n\nexport const errorCheck = <T extends ErrorStatusResponse>(\n data: T,\n name = ''\n): T => {\n if (typeof data === 'object' && data.errno)\n throw new TypeError(`${name} failed with ${data.errno}: ${data.errmsg}`);\n\n return data;\n};\n","import { type BaseAPIOptions, JSON_HEADERS } from './utils.js';\n\nexport interface GetArticleCounterOptions extends BaseAPIOptions {\n /**\n * 待获取计数器的 path\n *\n * Path of counters\n */\n paths: string[];\n\n /**\n * 待获取计数器的类型\n *\n * Counter type to be fetched\n */\n type: string[];\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n}\n\nexport type GetArticleCounterResponse =\n | Record<string, number>[]\n | Record<string, number>\n | number[]\n | number;\n\nexport const getArticleCounter = ({\n serverURL,\n lang,\n paths,\n type,\n signal,\n}: GetArticleCounterOptions): Promise<GetArticleCounterResponse> =>\n fetch(\n `${serverURL}/article?path=${encodeURIComponent(\n paths.join(',')\n )}&type=${encodeURIComponent(type.join(','))}&lang=${lang}`,\n { signal }\n ).then((resp) => <Promise<GetArticleCounterResponse>>resp.json());\n\nexport interface UpdateArticleCounterOptions extends BaseAPIOptions {\n /**\n * 待更新计数器的 path\n *\n * Path of counter to be updated\n */\n path: string;\n\n /**\n * 待更新计数器的类型\n *\n * Counter type to be updated\n */\n type: string;\n\n /**\n * 更新操作\n *\n * Update operation\n *\n * @default 'inc'\n */\n action?: 'inc' | 'desc';\n}\n\nexport const updateArticleCounter = ({\n serverURL,\n lang,\n path,\n type,\n action,\n}: UpdateArticleCounterOptions): Promise<number> =>\n fetch(`${serverURL}/article?lang=${lang}`, {\n method: 'POST',\n headers: JSON_HEADERS,\n body: JSON.stringify({ path, type, action }),\n }).then((resp) => <Promise<number>>resp.json());\n","import {\n type BaseAPIOptions,\n type ErrorStatusResponse,\n JSON_HEADERS,\n errorCheck,\n} from './utils.js';\nimport {\n type WalineComment,\n type WalineCommentData,\n} from '../typings/index.js';\n\nexport interface GetCommentOptions extends BaseAPIOptions {\n /**\n * 待获取评论列表的 path\n *\n * Path of comment list\n */\n path: string;\n\n /**\n * 评论分页数\n *\n * Comment pagination number\n */\n page: number;\n\n /**\n * 每页评论个数\n *\n * Comment number per page\n */\n pageSize: number;\n\n /**\n * 排序方式\n *\n * Sort method\n */\n sortBy: string;\n\n /**\n * 用户令牌\n *\n * User token\n */\n token?: string;\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n}\n\nexport interface GetCommentResponse extends ErrorStatusResponse {\n /**\n * 评论数量\n *\n * Comment number\n */\n count: number;\n\n /**\n * 评论分页数\n *\n * Comment pagination number\n */\n page: number;\n\n /**\n * 每页评论个数\n *\n * Comment number per page\n */\n pageSize: number;\n\n /**\n * 评论数据\n *\n * Comment Data\n */\n data: WalineComment[];\n\n /**\n * 页面总数\n *\n * Page number\n */\n totalPages: number;\n}\n\nexport const getComment = ({\n serverURL,\n lang,\n path,\n page,\n pageSize,\n sortBy,\n signal,\n token,\n}: GetCommentOptions): Promise<GetCommentResponse> => {\n const headers: Record<string, string> = {};\n\n if (token) headers.Authorization = `Bearer ${token}`;\n\n return fetch(\n `${serverURL}/comment?path=${encodeURIComponent(\n path\n )}&pageSize=${pageSize}&page=${page}&lang=${lang}&sortBy=${sortBy}`,\n { signal, headers }\n )\n .then((resp) => <Promise<GetCommentResponse>>resp.json())\n .then((data) => errorCheck(data, 'Get comment data'));\n};\n\nexport interface AddCommentOptions extends BaseAPIOptions {\n /**\n * 用户令牌\n *\n * User token\n */\n token?: string;\n\n /**\n * 用户待提交的评论数据\n *\n * Comment data being submitted by user\n */\n comment: WalineCommentData;\n}\n\nexport interface AddCommentResponse extends ErrorStatusResponse {\n /**\n * 渲染好的评论数据\n *\n * Comment data rendered\n */\n data?: WalineComment;\n}\n\nexport const addComment = ({\n serverURL,\n lang,\n token,\n comment,\n}: AddCommentOptions): Promise<AddCommentResponse> => {\n const headers: Record<string, string> = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json',\n };\n\n if (token) headers.Authorization = `Bearer ${token}`;\n\n return fetch(`${serverURL}/comment?lang=${lang}`, {\n method: 'POST',\n headers,\n body: JSON.stringify(comment),\n }).then((resp) => <Promise<AddCommentResponse>>resp.json());\n};\n\nexport interface DeleteCommentOptions extends BaseAPIOptions {\n token: string;\n objectId: string | number;\n}\n\nexport interface DeleteCommentResponse extends ErrorStatusResponse {\n data: '';\n}\n\nexport const deleteComment = ({\n serverURL,\n lang,\n token,\n objectId,\n}: DeleteCommentOptions): Promise<DeleteCommentResponse> =>\n fetch(`${serverURL}/comment/${objectId}?lang=${lang}`, {\n method: 'DELETE',\n headers: {\n Authorization: `Bearer ${token}`,\n },\n })\n .then((resp) => <Promise<DeleteCommentResponse>>resp.json())\n .then((resp) => errorCheck(resp, 'Delete comment'));\n\ninterface UpdateWalineCommentData extends Partial<WalineCommentData> {\n /**\n * 点赞还是取消点赞\n *\n * Like or dislike\n */\n like?: boolean;\n\n /**\n * 评论的状态\n *\n * Comment status\n */\n status?: 'approved' | 'waiting' | 'spam';\n\n /**\n * 评论指定状态\n *\n * Comment sticky status\n *\n * @description 0 means not sticky and 1 means sticky\n */\n sticky?: 0 | 1;\n}\nexport interface UpdateCommentOptions extends BaseAPIOptions {\n /**\n * 用户令牌\n *\n * User token\n */\n token: string;\n\n /**\n * 评论的 ID\n *\n * Comment ID\n */\n objectId: number | string;\n\n /**\n * 评论数据\n *\n * Comment data\n */\n comment?: UpdateWalineCommentData;\n}\n\nexport interface UpdateCommentResponse extends ErrorStatusResponse {\n /**\n * 更新后的评论数据\n *\n * Comment data rendered\n */\n data: WalineComment;\n}\n\nexport const updateComment = ({\n serverURL,\n lang,\n token,\n objectId,\n comment,\n}: UpdateCommentOptions): Promise<UpdateCommentResponse> =>\n fetch(`${serverURL}/comment/${objectId}?lang=${lang}`, {\n method: 'PUT',\n headers: {\n ...JSON_HEADERS,\n Authorization: `Bearer ${token}`,\n },\n body: JSON.stringify(comment),\n })\n .then((resp) => <Promise<UpdateCommentResponse>>resp.json())\n .then((resp) => errorCheck(resp, 'Update comment'));\n","import { type BaseAPIOptions } from './utils.js';\n\nexport interface GetCommentCountOptions extends BaseAPIOptions {\n /**\n * 待获取评论数的 path\n *\n * Path of pages to be fetched\n */\n paths: string[];\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n}\n\nexport const fetchCommentCount = ({\n serverURL,\n lang,\n paths,\n signal,\n}: GetCommentCountOptions): Promise<number[]> =>\n fetch(\n `${serverURL}/comment?type=count&url=${encodeURIComponent(\n paths.join(',')\n )}&lang=${lang}`,\n { signal }\n )\n .then((resp) => <Promise<number | number[]>>resp.json())\n // TODO: Improve this API\n .then((counts) => (Array.isArray(counts) ? counts : [counts]));\n","import { getArticleCounter, updateArticleCounter } from './articleCounter.js';\nimport { type BaseAPIOptions } from './utils.js';\n\ninterface GetPageviewOptions extends BaseAPIOptions {\n /**\n * 待获取页面的 path\n *\n * Path of pages\n */\n paths: string[];\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n}\n\nexport const getPageview = ({\n serverURL,\n lang,\n paths,\n signal,\n}: GetPageviewOptions): Promise<number[]> =>\n getArticleCounter({\n serverURL,\n lang,\n paths,\n type: ['time'],\n signal,\n })\n // TODO: Improve this API\n .then((counts) => (Array.isArray(counts) ? counts : [counts])) as Promise<\n number[]\n >;\n\nexport interface UpdatePageviewOptions extends BaseAPIOptions {\n /**\n * 待更新页面的 path\n *\n * Path of pages\n */\n path: string;\n}\n\nexport const updatePageview = (\n options: UpdatePageviewOptions\n): Promise<number> =>\n updateArticleCounter({\n ...options,\n type: 'time',\n action: 'inc',\n });\n","import { type BaseAPIOptions } from './utils.js';\nimport { type WalineComment } from '../typings/index.js';\n\nexport interface GetRecentCommentOptions extends BaseAPIOptions {\n /**\n * 获取评论的数量\n *\n * Comment number to be fetched\n */\n count: number;\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n\n /**\n * 用户令牌\n *\n * User token\n */\n token?: string;\n}\n\nexport const getRecentComment = ({\n serverURL,\n lang,\n count,\n signal,\n token,\n}: GetRecentCommentOptions): Promise<WalineComment[]> => {\n const headers: Record<string, string> = {};\n\n if (token) headers.Authorization = `Bearer ${token}`;\n\n return fetch(`${serverURL}/comment?type=recent&count=${count}&lang=${lang}`, {\n signal,\n headers,\n }).then((resp) => <Promise<WalineComment[]>>resp.json());\n};\n","import {\n type BaseAPIOptions,\n errorCheck,\n ErrorStatusResponse,\n} from './utils.js';\nimport { type WalineComment } from '../typings/index.js';\n\nexport interface GetUserListOptions extends BaseAPIOptions {\n /**\n * 每页个数\n *\n * Number per page\n */\n pageSize: number;\n\n /**\n * 取消请求的信号\n *\n * AbortSignal to cancel request\n */\n signal?: AbortSignal;\n}\n\nexport interface WalineUser\n extends Pick<WalineComment, 'nick' | 'link' | 'avatar' | 'label' | 'level'> {\n count: number;\n}\n\nexport interface GetUserListResponse extends ErrorStatusResponse {\n data: WalineUser[];\n}\n\nexport const getUserList = ({\n serverURL,\n signal,\n pageSize,\n lang,\n}: GetUserListOptions): Promise<WalineUser[]> =>\n fetch(`${serverURL}/user?pageSize=${pageSize}&lang=${lang}`, {\n signal,\n })\n .then((resp) => <Promise<GetUserListResponse>>resp.json())\n .then((resp) => errorCheck(resp, 'user list'))\n .then((resp) => resp.data);\n","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { type BaseAPIOptions } from './utils.js';\n\nexport interface UserInfo {\n /**\n * 显示姓名\n *\n * User name displayed\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n display_name: string;\n\n /**\n * 用户电子邮件地址\n *\n * User email\n */\n email: string;\n\n /**\n * 用户网站地址\n *\n * User website\n */\n url: string;\n\n /**\n * 用户令牌\n *\n * User token\n */\n token: string;\n\n /**\n * 用户头像\n *\n * User avatar\n */\n avatar: string;\n\n /**\n * 用户邮箱 MD5\n *\n * MD5 of User email\n */\n mailMd5: string;\n\n /**\n * 用户对象 ID\n *\n * User object ID\n */\n objectId: string | number;\n\n /**\n * 用户身份\n *\n * User role\n */\n type: 'administrator' | 'guest';\n}\n\nexport const login = ({\n lang,\n serverURL,\n}: BaseAPIOptions): Promise<UserInfo & { remember: boolean }> => {\n const width = 450;\n const height = 450;\n const left = (window.innerWidth - width) / 2;\n const top = (window.innerHeight - height) / 2;\n\n const handler = window.open(\n `${serverURL}/ui/login?lng=${encodeURIComponent(lang)}`,\n '_blank',\n `width=${width},height=${height},left=${left},top=${top},scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no`\n );\n\n handler?.postMessage({ type: 'TOKEN', data: null }, '*');\n\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const receiver = ({ data }: any): void => {\n if (!data || typeof data !== 'object' || data.type !== 'userInfo') return;\n\n if (data.data.token) {\n handler?.close();\n\n window.removeEventListener('message', receiver);\n\n resolve(data.data as UserInfo & { remember: boolean });\n }\n };\n\n window.addEventListener('message', receiver);\n });\n};\n"],"names":["JSON_HEADERS","errorCheck","data","name","errno","TypeError","errmsg","getArticleCounter","serverURL","lang","paths","type","signal","fetch","encodeURIComponent","join","then","resp","json","updateArticleCounter","path","action","method","headers","body","JSON","stringify","token","comment","Authorization","objectId","counts","Array","isArray","page","pageSize","sortBy","count","left","window","innerWidth","top","innerHeight","handler","open","postMessage","Promise","resolve","receiver","close","removeEventListener","addEventListener","options"],"mappings":"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"}
package/dist/api.d.cts DELETED
@@ -1,445 +0,0 @@
1
- interface 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
- }
15
- interface ErrorStatusResponse {
16
- /**
17
- * 错误代码
18
- *
19
- * Error number
20
- */
21
- errno: number;
22
- /**
23
- * 错误消息
24
- *
25
- * Error msg
26
- */
27
- errmsg: string;
28
- }
29
-
30
- interface 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
- }
50
- type GetArticleCounterResponse = Record<string, number>[] | Record<string, number> | number[] | number;
51
- declare const getArticleCounter: ({ serverURL, lang, paths, type, signal, }: GetArticleCounterOptions) => Promise<GetArticleCounterResponse>;
52
- interface 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
- }
74
- declare const updateArticleCounter: ({ serverURL, lang, path, type, action, }: UpdateArticleCounterOptions) => Promise<number>;
75
-
76
- interface 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
- /**
118
- * Turnstile Token
119
- */
120
- turnstile?: string;
121
- }
122
- type WalineCommentStatus = 'approved' | 'waiting' | 'spam';
123
- interface WalineComment extends Exclude<WalineCommentData, 'ua'> {
124
- /**
125
- * User avatar
126
- */
127
- avatar: string;
128
- /**
129
- * User type
130
- */
131
- type?: 'administrator' | 'guest' | `verify:${string}`;
132
- objectId: string;
133
- /**
134
- * Time ISOString when the comment is created
135
- */
136
- createdAt: string;
137
- insertedAt: string;
138
- updatedAt: string;
139
- children: WalineComment[];
140
- sticky?: boolean;
141
- browser?: string;
142
- os?: string;
143
- level?: number;
144
- addr?: string;
145
- label?: string;
146
- user_id?: string | number;
147
- status?: WalineCommentStatus;
148
- like?: number;
149
- orig?: string;
150
- }
151
-
152
- interface GetCommentOptions extends BaseAPIOptions {
153
- /**
154
- * 待获取评论列表的 path
155
- *
156
- * Path of comment list
157
- */
158
- path: string;
159
- /**
160
- * 评论分页数
161
- *
162
- * Comment pagination number
163
- */
164
- page: number;
165
- /**
166
- * 每页评论个数
167
- *
168
- * Comment number per page
169
- */
170
- pageSize: number;
171
- /**
172
- * 排序方式
173
- *
174
- * Sort method
175
- */
176
- sortBy: string;
177
- /**
178
- * 用户令牌
179
- *
180
- * User token
181
- */
182
- token?: string;
183
- /**
184
- * 取消请求的信号
185
- *
186
- * AbortSignal to cancel request
187
- */
188
- signal?: AbortSignal;
189
- }
190
- interface GetCommentResponse extends ErrorStatusResponse {
191
- /**
192
- * 评论数量
193
- *
194
- * Comment number
195
- */
196
- count: number;
197
- /**
198
- * 评论分页数
199
- *
200
- * Comment pagination number
201
- */
202
- page: number;
203
- /**
204
- * 每页评论个数
205
- *
206
- * Comment number per page
207
- */
208
- pageSize: number;
209
- /**
210
- * 评论数据
211
- *
212
- * Comment Data
213
- */
214
- data: WalineComment[];
215
- /**
216
- * 页面总数
217
- *
218
- * Page number
219
- */
220
- totalPages: number;
221
- }
222
- declare const getComment: ({ serverURL, lang, path, page, pageSize, sortBy, signal, token, }: GetCommentOptions) => Promise<GetCommentResponse>;
223
- interface AddCommentOptions extends BaseAPIOptions {
224
- /**
225
- * 用户令牌
226
- *
227
- * User token
228
- */
229
- token?: string;
230
- /**
231
- * 用户待提交的评论数据
232
- *
233
- * Comment data being submitted by user
234
- */
235
- comment: WalineCommentData;
236
- }
237
- interface AddCommentResponse extends ErrorStatusResponse {
238
- /**
239
- * 渲染好的评论数据
240
- *
241
- * Comment data rendered
242
- */
243
- data?: WalineComment;
244
- }
245
- declare const addComment: ({ serverURL, lang, token, comment, }: AddCommentOptions) => Promise<AddCommentResponse>;
246
- interface DeleteCommentOptions extends BaseAPIOptions {
247
- token: string;
248
- objectId: string | number;
249
- }
250
- interface DeleteCommentResponse extends ErrorStatusResponse {
251
- data: '';
252
- }
253
- declare const deleteComment: ({ serverURL, lang, token, objectId, }: DeleteCommentOptions) => Promise<DeleteCommentResponse>;
254
- interface UpdateWalineCommentData extends Partial<WalineCommentData> {
255
- /**
256
- * 点赞还是取消点赞
257
- *
258
- * Like or dislike
259
- */
260
- like?: boolean;
261
- /**
262
- * 评论的状态
263
- *
264
- * Comment status
265
- */
266
- status?: 'approved' | 'waiting' | 'spam';
267
- /**
268
- * 评论指定状态
269
- *
270
- * Comment sticky status
271
- *
272
- * @description 0 means not sticky and 1 means sticky
273
- */
274
- sticky?: 0 | 1;
275
- }
276
- interface UpdateCommentOptions extends BaseAPIOptions {
277
- /**
278
- * 用户令牌
279
- *
280
- * User token
281
- */
282
- token: string;
283
- /**
284
- * 评论的 ID
285
- *
286
- * Comment ID
287
- */
288
- objectId: number | string;
289
- /**
290
- * 评论数据
291
- *
292
- * Comment data
293
- */
294
- comment?: UpdateWalineCommentData;
295
- }
296
- interface UpdateCommentResponse extends ErrorStatusResponse {
297
- /**
298
- * 更新后的评论数据
299
- *
300
- * Comment data rendered
301
- */
302
- data: WalineComment;
303
- }
304
- declare const updateComment: ({ serverURL, lang, token, objectId, comment, }: UpdateCommentOptions) => Promise<UpdateCommentResponse>;
305
-
306
- interface GetCommentCountOptions extends BaseAPIOptions {
307
- /**
308
- * 待获取评论数的 path
309
- *
310
- * Path of pages to be fetched
311
- */
312
- paths: string[];
313
- /**
314
- * 取消请求的信号
315
- *
316
- * AbortSignal to cancel request
317
- */
318
- signal?: AbortSignal;
319
- }
320
- declare const fetchCommentCount: ({ serverURL, lang, paths, signal, }: GetCommentCountOptions) => Promise<number[]>;
321
-
322
- interface UserInfo {
323
- /**
324
- * 显示姓名
325
- *
326
- * User name displayed
327
- */
328
- display_name: string;
329
- /**
330
- * 用户电子邮件地址
331
- *
332
- * User email
333
- */
334
- email: string;
335
- /**
336
- * 用户网站地址
337
- *
338
- * User website
339
- */
340
- url: string;
341
- /**
342
- * 用户令牌
343
- *
344
- * User token
345
- */
346
- token: string;
347
- /**
348
- * 用户头像
349
- *
350
- * User avatar
351
- */
352
- avatar: string;
353
- /**
354
- * 用户邮箱 MD5
355
- *
356
- * MD5 of User email
357
- */
358
- mailMd5: string;
359
- /**
360
- * 用户对象 ID
361
- *
362
- * User object ID
363
- */
364
- objectId: string | number;
365
- /**
366
- * 用户身份
367
- *
368
- * User role
369
- */
370
- type: 'administrator' | 'guest';
371
- }
372
- declare const login: ({ lang, serverURL, }: BaseAPIOptions) => Promise<UserInfo & {
373
- remember: boolean;
374
- }>;
375
-
376
- interface GetPageviewOptions extends BaseAPIOptions {
377
- /**
378
- * 待获取页面的 path
379
- *
380
- * Path of pages
381
- */
382
- paths: string[];
383
- /**
384
- * 取消请求的信号
385
- *
386
- * AbortSignal to cancel request
387
- */
388
- signal?: AbortSignal;
389
- }
390
- declare const getPageview: ({ serverURL, lang, paths, signal, }: GetPageviewOptions) => Promise<number[]>;
391
- interface UpdatePageviewOptions extends BaseAPIOptions {
392
- /**
393
- * 待更新页面的 path
394
- *
395
- * Path of pages
396
- */
397
- path: string;
398
- }
399
- declare const updatePageview: (options: UpdatePageviewOptions) => Promise<number>;
400
-
401
- interface GetRecentCommentOptions extends BaseAPIOptions {
402
- /**
403
- * 获取评论的数量
404
- *
405
- * Comment number to be fetched
406
- */
407
- count: number;
408
- /**
409
- * 取消请求的信号
410
- *
411
- * AbortSignal to cancel request
412
- */
413
- signal?: AbortSignal;
414
- /**
415
- * 用户令牌
416
- *
417
- * User token
418
- */
419
- token?: string;
420
- }
421
- declare const getRecentComment: ({ serverURL, lang, count, signal, token, }: GetRecentCommentOptions) => Promise<WalineComment[]>;
422
-
423
- interface GetUserListOptions extends BaseAPIOptions {
424
- /**
425
- * 每页个数
426
- *
427
- * Number per page
428
- */
429
- pageSize: number;
430
- /**
431
- * 取消请求的信号
432
- *
433
- * AbortSignal to cancel request
434
- */
435
- signal?: AbortSignal;
436
- }
437
- interface WalineUser extends Pick<WalineComment, 'nick' | 'link' | 'avatar' | 'label' | 'level'> {
438
- count: number;
439
- }
440
- interface GetUserListResponse extends ErrorStatusResponse {
441
- data: WalineUser[];
442
- }
443
- declare const getUserList: ({ serverURL, signal, pageSize, lang, }: GetUserListOptions) => Promise<WalineUser[]>;
444
-
445
- export { 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 };