@mx-space/api-client 0.6.1 → 0.7.0-alpha.1

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 (235) hide show
  1. package/adaptors/axios.ts +36 -0
  2. package/adaptors/umi-request.ts +30 -0
  3. package/build/index.cjs.js +34 -13
  4. package/build/index.cjs.js.map +1 -1
  5. package/build/index.cjs.min.js +1 -1
  6. package/build/index.cjs.min.js.map +1 -1
  7. package/build/index.esm.js +34 -13
  8. package/build/index.esm.js.map +1 -1
  9. package/build/index.esm.min.js +1 -1
  10. package/build/index.esm.min.js.map +1 -1
  11. package/build/index.umd.js +34 -13
  12. package/build/index.umd.js.map +1 -1
  13. package/build/index.umd.min.js +1 -1
  14. package/build/index.umd.min.js.map +1 -1
  15. package/controllers/aggregate.ts +65 -0
  16. package/controllers/base.ts +32 -0
  17. package/controllers/category.ts +107 -0
  18. package/controllers/comment.ts +64 -0
  19. package/controllers/index.ts +66 -0
  20. package/controllers/link.ts +21 -0
  21. package/controllers/note.ts +92 -0
  22. package/controllers/page.ts +59 -0
  23. package/controllers/post.ts +87 -0
  24. package/controllers/project.ts +20 -0
  25. package/controllers/recently.ts +48 -0
  26. package/controllers/say.ts +35 -0
  27. package/controllers/search.ts +101 -0
  28. package/controllers/snippet.ts +31 -0
  29. package/controllers/user.ts +46 -0
  30. package/core/attach-request.ts +43 -0
  31. package/core/client.ts +249 -0
  32. package/core/error.ts +10 -0
  33. package/core/index.ts +2 -0
  34. package/dtos/comment.ts +9 -0
  35. package/esm/adaptors/axios.d.ts +1 -1
  36. package/esm/adaptors/axios.js +4 -17
  37. package/esm/adaptors/axios.js.map +1 -1
  38. package/esm/adaptors/umi-request.d.ts +1 -1
  39. package/esm/adaptors/umi-request.js.map +1 -1
  40. package/esm/controllers/aggregate.d.ts +9 -4
  41. package/esm/controllers/aggregate.js +2 -2
  42. package/esm/controllers/aggregate.js.map +1 -1
  43. package/esm/controllers/base.d.ts +2 -2
  44. package/esm/controllers/base.js +1 -1
  45. package/esm/controllers/base.js.map +1 -1
  46. package/esm/controllers/category.d.ts +7 -2
  47. package/esm/controllers/category.js +3 -3
  48. package/esm/controllers/category.js.map +1 -1
  49. package/esm/controllers/comment.d.ts +10 -5
  50. package/esm/controllers/comment.js +1 -1
  51. package/esm/controllers/comment.js.map +1 -1
  52. package/esm/controllers/index.js.map +1 -1
  53. package/esm/controllers/link.d.ts +7 -1
  54. package/esm/controllers/link.js +1 -1
  55. package/esm/controllers/link.js.map +1 -1
  56. package/esm/controllers/note.d.ts +10 -5
  57. package/esm/controllers/note.js +2 -2
  58. package/esm/controllers/note.js.map +1 -1
  59. package/esm/controllers/page.d.ts +9 -4
  60. package/esm/controllers/page.js +2 -2
  61. package/esm/controllers/page.js.map +1 -1
  62. package/esm/controllers/post.d.ts +10 -5
  63. package/esm/controllers/post.js +2 -2
  64. package/esm/controllers/post.js.map +1 -1
  65. package/esm/controllers/project.d.ts +6 -1
  66. package/esm/controllers/project.js +1 -1
  67. package/esm/controllers/project.js.map +1 -1
  68. package/esm/controllers/recently.d.ts +8 -2
  69. package/esm/controllers/recently.js +1 -1
  70. package/esm/controllers/recently.js.map +1 -1
  71. package/esm/controllers/say.d.ts +7 -2
  72. package/esm/controllers/say.js +1 -1
  73. package/esm/controllers/say.js.map +1 -1
  74. package/esm/controllers/search.d.ts +41 -11
  75. package/esm/controllers/search.js +3 -3
  76. package/esm/controllers/search.js.map +1 -1
  77. package/esm/controllers/snippet.d.ts +7 -2
  78. package/esm/controllers/snippet.js +1 -1
  79. package/esm/controllers/snippet.js.map +1 -1
  80. package/esm/controllers/user.d.ts +8 -2
  81. package/esm/controllers/user.js +1 -1
  82. package/esm/controllers/user.js.map +1 -1
  83. package/esm/core/{attachRequest.d.ts → attach-request.d.ts} +0 -0
  84. package/esm/core/{attachRequest.js → attach-request.js} +1 -1
  85. package/esm/core/attach-request.js.map +1 -0
  86. package/esm/core/client.d.ts +5 -24
  87. package/esm/core/client.js +29 -8
  88. package/esm/core/client.js.map +1 -1
  89. package/esm/core/error.js.map +1 -1
  90. package/esm/core/index.js.map +1 -1
  91. package/esm/dtos/comment.js.map +1 -1
  92. package/esm/index.js.map +1 -1
  93. package/esm/interfaces/adapter.d.ts +13 -0
  94. package/esm/interfaces/adapter.js +2 -0
  95. package/esm/interfaces/adapter.js.map +1 -0
  96. package/esm/interfaces/client.d.ts +1 -1
  97. package/esm/interfaces/client.js.map +1 -1
  98. package/esm/interfaces/controller.js.map +1 -1
  99. package/esm/interfaces/instance.d.ts +0 -12
  100. package/esm/interfaces/instance.js.map +1 -1
  101. package/esm/interfaces/options.js.map +1 -1
  102. package/esm/interfaces/params.js.map +1 -1
  103. package/esm/interfaces/request.js.map +1 -1
  104. package/esm/models/aggregate.js.map +1 -1
  105. package/esm/models/base.js.map +1 -1
  106. package/esm/models/category.js.map +1 -1
  107. package/esm/models/comment.js.map +1 -1
  108. package/esm/models/index.js.map +1 -1
  109. package/esm/models/link.js.map +1 -1
  110. package/esm/models/note.js.map +1 -1
  111. package/esm/models/page.js.map +1 -1
  112. package/esm/models/post.js.map +1 -1
  113. package/esm/models/project.js.map +1 -1
  114. package/esm/models/recently.js.map +1 -1
  115. package/esm/models/say.js.map +1 -1
  116. package/esm/models/setting.js.map +1 -1
  117. package/esm/models/snippet.js.map +1 -1
  118. package/esm/models/user.js.map +1 -1
  119. package/esm/utils/auto-bind.js.map +1 -1
  120. package/esm/utils/index.d.ts +1 -1
  121. package/esm/utils/index.js +2 -2
  122. package/esm/utils/index.js.map +1 -1
  123. package/index.ts +12 -0
  124. package/interfaces/adapter.ts +30 -0
  125. package/interfaces/client.ts +6 -0
  126. package/interfaces/controller.ts +5 -0
  127. package/interfaces/instance.ts +8 -0
  128. package/interfaces/options.ts +1 -0
  129. package/interfaces/params.ts +4 -0
  130. package/interfaces/request.ts +57 -0
  131. package/lib/adaptors/axios.d.ts +1 -1
  132. package/lib/adaptors/axios.js +4 -17
  133. package/lib/adaptors/axios.js.map +1 -1
  134. package/lib/adaptors/umi-request.d.ts +1 -1
  135. package/lib/adaptors/umi-request.js.map +1 -1
  136. package/lib/controllers/aggregate.d.ts +9 -4
  137. package/lib/controllers/aggregate.js.map +1 -1
  138. package/lib/controllers/base.d.ts +2 -2
  139. package/lib/controllers/base.js.map +1 -1
  140. package/lib/controllers/category.d.ts +7 -2
  141. package/lib/controllers/category.js +1 -1
  142. package/lib/controllers/category.js.map +1 -1
  143. package/lib/controllers/comment.d.ts +10 -5
  144. package/lib/controllers/comment.js.map +1 -1
  145. package/lib/controllers/index.js.map +1 -1
  146. package/lib/controllers/link.d.ts +7 -1
  147. package/lib/controllers/link.js.map +1 -1
  148. package/lib/controllers/note.d.ts +10 -5
  149. package/lib/controllers/note.js +1 -1
  150. package/lib/controllers/note.js.map +1 -1
  151. package/lib/controllers/page.d.ts +9 -4
  152. package/lib/controllers/page.js +1 -1
  153. package/lib/controllers/page.js.map +1 -1
  154. package/lib/controllers/post.d.ts +10 -5
  155. package/lib/controllers/post.js +1 -1
  156. package/lib/controllers/post.js.map +1 -1
  157. package/lib/controllers/project.d.ts +6 -1
  158. package/lib/controllers/project.js.map +1 -1
  159. package/lib/controllers/recently.d.ts +8 -2
  160. package/lib/controllers/recently.js.map +1 -1
  161. package/lib/controllers/say.d.ts +7 -2
  162. package/lib/controllers/say.js.map +1 -1
  163. package/lib/controllers/search.d.ts +41 -11
  164. package/lib/controllers/search.js +2 -2
  165. package/lib/controllers/search.js.map +1 -1
  166. package/lib/controllers/snippet.d.ts +7 -2
  167. package/lib/controllers/snippet.js.map +1 -1
  168. package/lib/controllers/user.d.ts +8 -2
  169. package/lib/controllers/user.js.map +1 -1
  170. package/lib/core/{attachRequest.d.ts → attach-request.d.ts} +0 -0
  171. package/lib/core/{attachRequest.js → attach-request.js} +1 -1
  172. package/lib/core/attach-request.js.map +1 -0
  173. package/lib/core/client.d.ts +5 -24
  174. package/lib/core/client.js +28 -7
  175. package/lib/core/client.js.map +1 -1
  176. package/lib/core/error.js.map +1 -1
  177. package/lib/core/index.js.map +1 -1
  178. package/lib/dtos/comment.js.map +1 -1
  179. package/lib/index.js.map +1 -1
  180. package/lib/interfaces/adapter.d.ts +13 -0
  181. package/lib/interfaces/adapter.js +3 -0
  182. package/lib/interfaces/adapter.js.map +1 -0
  183. package/lib/interfaces/client.d.ts +1 -1
  184. package/lib/interfaces/client.js.map +1 -1
  185. package/lib/interfaces/controller.js.map +1 -1
  186. package/lib/interfaces/instance.d.ts +0 -12
  187. package/lib/interfaces/instance.js.map +1 -1
  188. package/lib/interfaces/options.js.map +1 -1
  189. package/lib/interfaces/params.js.map +1 -1
  190. package/lib/interfaces/request.js.map +1 -1
  191. package/lib/models/aggregate.js.map +1 -1
  192. package/lib/models/base.js.map +1 -1
  193. package/lib/models/category.js.map +1 -1
  194. package/lib/models/comment.js.map +1 -1
  195. package/lib/models/index.js.map +1 -1
  196. package/lib/models/link.js.map +1 -1
  197. package/lib/models/note.js.map +1 -1
  198. package/lib/models/page.js.map +1 -1
  199. package/lib/models/post.js.map +1 -1
  200. package/lib/models/project.js.map +1 -1
  201. package/lib/models/recently.js.map +1 -1
  202. package/lib/models/say.js.map +1 -1
  203. package/lib/models/setting.js.map +1 -1
  204. package/lib/models/snippet.js.map +1 -1
  205. package/lib/models/user.js.map +1 -1
  206. package/lib/utils/auto-bind.js.map +1 -1
  207. package/lib/utils/index.d.ts +1 -1
  208. package/lib/utils/index.js +2 -2
  209. package/lib/utils/index.js.map +1 -1
  210. package/models/aggregate.ts +71 -0
  211. package/models/base.ts +43 -0
  212. package/models/category.ts +25 -0
  213. package/models/comment.ts +37 -0
  214. package/models/index.ts +14 -0
  215. package/models/link.ts +23 -0
  216. package/models/note.ts +37 -0
  217. package/models/page.ts +20 -0
  218. package/models/post.ts +16 -0
  219. package/models/project.ts +12 -0
  220. package/models/recently.ts +7 -0
  221. package/models/say.ts +7 -0
  222. package/models/setting.ts +68 -0
  223. package/models/snippet.ts +18 -0
  224. package/models/user.ts +27 -0
  225. package/package.json +11 -45
  226. package/tsconfig.build.json +6 -0
  227. package/tsconfig.cjs.json +7 -0
  228. package/tsconfig.json +8 -27
  229. package/types/helper.d.ts +3 -0
  230. package/utils/auto-bind.ts +48 -0
  231. package/utils/index.ts +53 -0
  232. package/build/index.d.ts +0 -908
  233. package/esm/core/attachRequest.js.map +0 -1
  234. package/lib/core/attachRequest.js.map +0 -1
  235. package/readme.md +0 -84
package/build/index.d.ts DELETED
@@ -1,908 +0,0 @@
1
- // Generated by dts-bundle-generator v6.4.0
2
-
3
- import _camelcaseKeys from 'camelcase-keys';
4
-
5
- export interface IController {
6
- base: string;
7
- name: string | string[];
8
- }
9
- export declare type SortOrder = "asc" | "desc";
10
- export interface RequestOptions {
11
- method?: string;
12
- data?: Record<string, any>;
13
- params?: Record<string, any> | URLSearchParams;
14
- headers?: Record<string, string>;
15
- [key: string]: any;
16
- }
17
- export declare type RequestResponseType<P> = Promise<Record<string, any> & {
18
- data: P;
19
- }>;
20
- export declare type IRequestAdapter<T = any> = Readonly<{
21
- default: T;
22
- get<P = unknown>(url: string, options?: RequestOptions): RequestResponseType<P>;
23
- post<P = unknown>(url: string, options?: RequestOptions): RequestResponseType<P>;
24
- patch<P = unknown>(url: string, options?: RequestOptions): RequestResponseType<P>;
25
- delete<P = unknown>(url: string, options?: RequestOptions): RequestResponseType<P>;
26
- put<P = unknown>(url: string, options?: RequestOptions): RequestResponseType<P>;
27
- }>;
28
- export declare type NoStringIndex<T> = {
29
- [K in keyof T as string extends K ? never : K]: T[K];
30
- };
31
- export interface IRequestHandler {
32
- (path?: string | number): IRequestHandler;
33
- get<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, "data">): RequestProxyResult<P>;
34
- post<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
35
- patch<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
36
- delete<P = unknown>(options?: Omit<NoStringIndex<RequestOptions>, "data">): RequestProxyResult<P>;
37
- put<P = unknown>(options?: RequestOptions): RequestProxyResult<P>;
38
- [key: string]: IRequestHandler;
39
- }
40
- export declare type RequestProxyResult<T, R = {
41
- data: T;
42
- [key: string]: any;
43
- }> = Promise<ResponseProxyExtraRaw<T, R>>;
44
- export declare type CamelToSnake<T extends string, P extends string = ""> = string extends T ? string : T extends `${infer C0}${infer R}` ? CamelToSnake<R, `${P}${C0 extends Lowercase<C0> ? "" : "_"}${Lowercase<C0>}`> : P;
45
- export declare type CamelKeysToSnake<T> = {
46
- [K in keyof T as CamelToSnake<Extract<K, string>>]: T[K];
47
- };
48
- export declare type ResponseProxyExtraRaw<T, RawData = unknown, Response = unknown> = T extends object ? T & {
49
- $raw: Response extends unknown ? {
50
- [i: string]: any;
51
- data: RawData extends unknown ? CamelKeysToSnake<T> : RawData;
52
- } : Response;
53
- $request: {
54
- path: string;
55
- method: string;
56
- [k: string]: string;
57
- };
58
- } : T;
59
- export interface Count {
60
- read: number;
61
- like: number;
62
- }
63
- export interface Image {
64
- height: number;
65
- width: number;
66
- type: string;
67
- accent?: string;
68
- src: string;
69
- }
70
- export interface Pager {
71
- total: number;
72
- size: number;
73
- currentPage: number;
74
- totalPage: number;
75
- hasPrevPage: boolean;
76
- hasNextPage: boolean;
77
- }
78
- export interface PaginateResult<T> {
79
- data: T[];
80
- pagination: Pager;
81
- }
82
- export interface BaseModel {
83
- created: string;
84
- id: string;
85
- }
86
- export interface BaseCommentIndexModel extends BaseModel {
87
- commentsIndex?: number;
88
- allowComment: boolean;
89
- }
90
- export interface TextBaseModel extends BaseCommentIndexModel {
91
- title: string;
92
- text: string;
93
- images?: Image[];
94
- modified: string | null;
95
- }
96
- export interface PostModel extends TextBaseModel {
97
- summary?: string;
98
- hide: boolean;
99
- copyright: boolean;
100
- tags: string[];
101
- count: Count;
102
- text: string;
103
- title: string;
104
- slug: string;
105
- categoryId: string;
106
- images: Image[];
107
- category: CategoryModel;
108
- }
109
- export declare enum CategoryType {
110
- Category = 0,
111
- Tag = 1
112
- }
113
- export interface CategoryModel extends BaseModel {
114
- type: CategoryType;
115
- count: number;
116
- slug: string;
117
- name: string;
118
- }
119
- export declare type CategoryWithChildrenModel = CategoryModel & {
120
- children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
121
- };
122
- export declare type CategoryEntries = {
123
- entries: Record<string, CategoryWithChildrenModel>;
124
- };
125
- export interface TagModel {
126
- count: number;
127
- name: string;
128
- }
129
- export interface NoteModel extends TextBaseModel {
130
- hide: boolean;
131
- count: {
132
- read: number;
133
- like: number;
134
- };
135
- mood?: string;
136
- weather?: string;
137
- hasMemory?: boolean;
138
- secret?: Date;
139
- password?: string | null;
140
- nid: number;
141
- music?: NoteMusicRecord[];
142
- location?: string;
143
- coordinates?: Coordinate;
144
- }
145
- export interface NoteMusicRecord {
146
- type: string;
147
- id: string;
148
- }
149
- export interface Coordinate {
150
- latitude: number;
151
- longitude: number;
152
- }
153
- export interface NoteWrappedPayload {
154
- data: NoteModel;
155
- next?: Partial<NoteModel>;
156
- prev?: Partial<NoteModel>;
157
- }
158
- export declare enum EnumPageType {
159
- "md" = "md",
160
- "html" = "html",
161
- "frame" = "frame"
162
- }
163
- export interface PageModel extends TextBaseModel {
164
- created: string;
165
- slug: string;
166
- subtitle?: string;
167
- order?: number;
168
- type?: EnumPageType;
169
- options?: object;
170
- }
171
- export interface SayModel extends BaseModel {
172
- text: string;
173
- source?: string;
174
- author?: string;
175
- }
176
- export declare class SeoOptionModel {
177
- title: string;
178
- description: string;
179
- icon?: string;
180
- keywords?: string[];
181
- }
182
- export declare class UrlOptionModel {
183
- webUrl: string;
184
- adminUrl: string;
185
- serverUrl: string;
186
- wsUrl: string;
187
- }
188
- declare class MailOptionModel {
189
- port: number;
190
- host: string;
191
- }
192
- export declare class MailOptionsModel {
193
- enable: boolean;
194
- user: string;
195
- pass: string;
196
- options?: MailOptionModel;
197
- }
198
- export declare class CommentOptionsModel {
199
- antiSpam: boolean;
200
- spamKeywords?: string[];
201
- blockIps?: string[];
202
- disableNoChinese?: boolean;
203
- }
204
- export declare class BackupOptionsModel {
205
- enable: boolean;
206
- secretId?: string;
207
- secretKey?: string;
208
- bucket?: string;
209
- region: string;
210
- }
211
- export declare class BaiduSearchOptionsModel {
212
- enable: boolean;
213
- token?: string;
214
- }
215
- export declare class AlgoliaSearchOptionsModel {
216
- enable: boolean;
217
- apiKey?: string;
218
- appId?: string;
219
- indexName?: string;
220
- }
221
- export declare class AdminExtraModel {
222
- background?: string;
223
- gaodemapKey?: string;
224
- title?: string;
225
- /**
226
- * 是否开启后台反代访问
227
- */
228
- enableAdminProxy?: boolean;
229
- }
230
- export interface IConfig {
231
- seo: SeoOptionModel;
232
- url: UrlOptionModel;
233
- mailOptions: MailOptionsModel;
234
- commentOptions: CommentOptionsModel;
235
- backupOptions: BackupOptionsModel;
236
- baiduSearchOptions: BaiduSearchOptionsModel;
237
- algoliaSearchOptions: AlgoliaSearchOptionsModel;
238
- adminExtra: AdminExtraModel;
239
- }
240
- export declare type IConfigKeys = keyof IConfig;
241
- export interface UserModel extends BaseModel {
242
- introduce: string;
243
- mail: string;
244
- url: string;
245
- name: string;
246
- socialIds: Record<string, string>;
247
- username: string;
248
- modified: string;
249
- v: number;
250
- lastLoginTime: string;
251
- lastLoginIp?: string;
252
- avatar: string;
253
- postID: string;
254
- }
255
- export declare type TLogin = {
256
- token: string;
257
- expiresIn: number;
258
- lastLoginTime: null | string;
259
- lastLoginIp?: null | string;
260
- } & Pick<UserModel, "name" | "username" | "created" | "url" | "mail" | "avatar" | "id">;
261
- export interface AggregateRoot {
262
- user: UserModel;
263
- seo: SeoOptionModel;
264
- url: Url;
265
- categories: CategoryModel[];
266
- pageMeta: Pick<PageModel, "title" | "id" | "slug" | "order">[] | null;
267
- }
268
- export interface Url {
269
- wsUrl: string;
270
- serverUrl: string;
271
- webUrl: string;
272
- }
273
- export interface AggregateTop {
274
- notes: Pick<NoteModel, "id" | "title" | "created" | "nid">[];
275
- posts: Pick<PostModel, "id" | "slug" | "created" | "title" | "category">[];
276
- says: SayModel[];
277
- }
278
- export declare enum TimelineType {
279
- Post = 0,
280
- Note = 1
281
- }
282
- export interface TimelineData {
283
- notes?: Pick<NoteModel, "id" | "nid" | "title" | "weather" | "mood" | "created" | "modified" | "hasMemory">[];
284
- posts?: (Pick<PostModel, "id" | "title" | "slug" | "created" | "modified" | "category"> & {
285
- url: string;
286
- })[];
287
- }
288
- export interface AggregateStat {
289
- allComments: number;
290
- categories: number;
291
- comments: number;
292
- linkApply: number;
293
- links: number;
294
- notes: number;
295
- pages: number;
296
- posts: number;
297
- says: number;
298
- recently: number;
299
- unreadComments: number;
300
- online: number;
301
- todayMaxOnline: string;
302
- todayOnlineTotal: string;
303
- callTime: number;
304
- uv: number;
305
- todayIPAccessCount: number;
306
- }
307
- export type Class<T> = new (...args: any[]) => T;
308
- export type SelectFields<T extends string> = `${"+" | "-" | ""}${T}`[];
309
- export declare type ClientOptions = {
310
- controllers?: Class<IController>[];
311
- };
312
- export interface HTTPClient {
313
- aggregate: AggregateController;
314
- category: CategoryController;
315
- comment: CommentController;
316
- link: LinkController;
317
- note: NoteController;
318
- page: PageController;
319
- post: PostController;
320
- project: ProjectController;
321
- recently: RecentlyController;
322
- say: SayController;
323
- search: SearchController;
324
- snippet: SnippetController;
325
- user: UserController;
326
- master: HTTPClient["user"];
327
- friend: HTTPClient["link"];
328
- shorthand: HTTPClient["recently"];
329
- }
330
- export declare class HTTPClient<T extends IRequestAdapter = IRequestAdapter> {
331
- private _endpoint;
332
- private _adaptor;
333
- private _proxy;
334
- constructor(_endpoint: string, _adaptor: T);
335
- private initGetClient;
336
- injectControllers(...Controller: Class<IController>[]): void;
337
- injectControllers(Controller: Class<IController>[]): void;
338
- get endpoint(): string;
339
- get instance(): T;
340
- request(options: {
341
- url: string;
342
- method?: string;
343
- data?: any;
344
- params?: any;
345
- }): any;
346
- get proxy(): IRequestHandler;
347
- private resolveFullPath;
348
- private buildRoute;
349
- }
350
- export declare function createClient<T extends IRequestAdapter>(adapter: T): (endpoint: string, options?: ClientOptions | undefined) => HTTPClient<T>;
351
- export declare class RequestError extends Error {
352
- status: number;
353
- path: string;
354
- raw: any;
355
- constructor(message: string, status: number, path: string, raw: any);
356
- }
357
- export declare class AggregateController implements IController {
358
- private client;
359
- base: string;
360
- name: string;
361
- constructor(client: HTTPClient);
362
- get proxy(): IRequestHandler;
363
- /**
364
- * 获取聚合数据
365
- */
366
- getAggregateData(): RequestProxyResult<AggregateRoot>;
367
- /**
368
- * 获取最新发布的内容
369
- */
370
- getTop(size?: number): RequestProxyResult<AggregateTop, {
371
- [key: string]: any;
372
- data: AggregateTop;
373
- }>;
374
- getTimeline(options?: {
375
- sort?: SortOrder;
376
- type?: TimelineType;
377
- year?: number;
378
- }): RequestProxyResult<{
379
- data: TimelineData;
380
- }, {
381
- [key: string]: any;
382
- data: {
383
- data: TimelineData;
384
- };
385
- }>;
386
- /**
387
- * 获取聚合数据统计
388
- */
389
- getStat(): RequestProxyResult<AggregateStat, {
390
- [key: string]: any;
391
- data: AggregateStat;
392
- }>;
393
- }
394
- export declare class CategoryController implements IController {
395
- private client;
396
- name: string;
397
- base: string;
398
- constructor(client: HTTPClient);
399
- get proxy(): import("~/interfaces/request").IRequestHandler;
400
- getAllCategories(): RequestProxyResult<{
401
- data: CategoryModel[];
402
- }>;
403
- getAllTags(): RequestProxyResult<{
404
- data: TagModel[];
405
- }>;
406
- getCategoryDetail(id: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel>>;
407
- getCategoryDetail(ids: string[]): Promise<ResponseProxyExtraRaw<Map<string, CategoryWithChildrenModel>>>;
408
- getCategoryByIdOrSlug(idOrSlug: string): Promise<CategoryModel & {
409
- children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
410
- } & {
411
- $raw: {
412
- [i: string]: any;
413
- data: {
414
- type: CategoryType;
415
- count: number;
416
- slug: string;
417
- name: string;
418
- created: string;
419
- id: string;
420
- children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
421
- };
422
- };
423
- $request: {
424
- [k: string]: string;
425
- path: string;
426
- method: string;
427
- };
428
- }>;
429
- getTagByName(name: string): Promise<{
430
- tag: string;
431
- data: Pick<PostModel, "id" | "title" | "slug" | "category" | "created">[];
432
- } & {
433
- $raw: {
434
- [i: string]: any;
435
- data: {
436
- tag: string;
437
- data: Pick<PostModel, "id" | "title" | "slug" | "created" | "category">[];
438
- };
439
- };
440
- $request: {
441
- [k: string]: string;
442
- path: string;
443
- method: string;
444
- };
445
- }>;
446
- }
447
- export interface PaginationParams {
448
- size?: number;
449
- page?: number;
450
- }
451
- export declare enum RefType {
452
- Page = "Page",
453
- Post = "Post",
454
- Note = "Note"
455
- }
456
- export interface CommentModel extends BaseModel {
457
- refType: RefType;
458
- state: number;
459
- comments_index: number;
460
- author: string;
461
- text: string;
462
- mail?: string;
463
- url?: string;
464
- ip?: string;
465
- agent?: string;
466
- key: string;
467
- avatar: string;
468
- parent?: CommentModel | string;
469
- children: CommentModel[];
470
- }
471
- export interface CommentRef {
472
- id: string;
473
- categoryId?: string;
474
- slug: string;
475
- title: string;
476
- category?: CategoryModel;
477
- }
478
- export declare enum CommentState {
479
- Unread = 0,
480
- Read = 1,
481
- Junk = 2
482
- }
483
- declare class CommentDto {
484
- author: string;
485
- text: string;
486
- mail: string;
487
- url?: string;
488
- }
489
- export declare class CommentController implements IController {
490
- private readonly client;
491
- base: string;
492
- name: string;
493
- constructor(client: HTTPClient);
494
- get proxy(): IRequestHandler;
495
- /**
496
- * 根据 comment id 获取评论, 包括子评论
497
- */
498
- getById(id: string): RequestProxyResult<CommentModel>;
499
- /**
500
- * 获取文章的评论列表
501
- * @param refId 文章 Id
502
- */
503
- getByRefId(refId: string, pagination?: PaginationParams): RequestProxyResult<PaginateResult<CommentModel & {
504
- ref: string;
505
- }>, {
506
- [key: string]: any;
507
- data: PaginateResult<CommentModel & {
508
- ref: string;
509
- }>;
510
- }>;
511
- /**
512
- * 评论
513
- */
514
- comment(refId: string, data: CommentDto): RequestProxyResult<CommentModel, {
515
- [key: string]: any;
516
- data: CommentModel;
517
- }>;
518
- /**
519
- * 回复评论
520
- */
521
- reply(commentId: string, data: CommentDto): RequestProxyResult<CommentModel, {
522
- [key: string]: any;
523
- data: CommentModel;
524
- }>;
525
- }
526
- export declare enum LinkType {
527
- Friend = 0,
528
- Collection = 1
529
- }
530
- export declare enum LinkState {
531
- Pass = 0,
532
- Audit = 1,
533
- Outdate = 2,
534
- Banned = 3
535
- }
536
- export interface LinkModel extends BaseModel {
537
- name: string;
538
- url: string;
539
- avatar: string;
540
- description?: string;
541
- type: LinkType;
542
- state: LinkState;
543
- hide: boolean;
544
- }
545
- declare abstract class BaseCrudController<T> {
546
- protected client: HTTPClient;
547
- base: string;
548
- constructor(client: HTTPClient);
549
- get proxy(): IRequestHandler;
550
- getById(id: string): RequestProxyResult<T>;
551
- getAll(): RequestProxyResult<{
552
- data: T[];
553
- }, {
554
- [key: string]: any;
555
- data: {
556
- data: T[];
557
- };
558
- }>;
559
- /**
560
- * 带分页的查询
561
- * @param page
562
- * @param perPage
563
- */
564
- getAllPaginated(page?: number, perPage?: number): RequestProxyResult<PaginateResult<T>, {
565
- [key: string]: any;
566
- data: PaginateResult<T>;
567
- }>;
568
- }
569
- export declare class LinkController extends BaseCrudController<LinkModel> {
570
- protected readonly client: HTTPClient;
571
- constructor(client: HTTPClient);
572
- name: string[];
573
- base: string;
574
- }
575
- export declare type NoteListOptions = {
576
- select?: SelectFields<keyof NoteModel>;
577
- year?: number;
578
- sortBy?: "weather" | "mood" | "title" | "created" | "modified";
579
- sortOrder?: 1 | -1;
580
- };
581
- export declare class NoteController implements IController {
582
- private client;
583
- base: string;
584
- name: string;
585
- constructor(client: HTTPClient);
586
- get proxy(): IRequestHandler;
587
- /**
588
- * 最新日记
589
- */
590
- getLatest(): RequestProxyResult<NoteWrappedPayload>;
591
- /**
592
- * 获取一篇日记
593
- * @param id id | nid
594
- * @param password 访问密码
595
- */
596
- getNoteById(id: string | number, password?: string): RequestProxyResult<NoteWrappedPayload, {
597
- [key: string]: any;
598
- data: NoteWrappedPayload;
599
- }>;
600
- /**
601
- * 日记列表分页
602
- */
603
- getList(page?: number, perPage?: number, options?: NoteListOptions): RequestProxyResult<PaginateResult<NoteModel>, {
604
- [key: string]: any;
605
- data: PaginateResult<NoteModel>;
606
- }>;
607
- /**
608
- * 获取当前日记的上下各 n / 2 篇日记
609
- */
610
- getMiddleList(id: string, size?: number): RequestProxyResult<{
611
- data: Pick<NoteModel, "id" | "title" | "nid" | "created">[];
612
- size: number;
613
- }, {
614
- [key: string]: any;
615
- data: {
616
- data: Pick<NoteModel, "id" | "title" | "nid" | "created">[];
617
- size: number;
618
- };
619
- }>;
620
- /**
621
- * 喜欢这篇日记
622
- */
623
- likeIt(id: string | number): RequestProxyResult<never, {
624
- [key: string]: any;
625
- data: never;
626
- }>;
627
- }
628
- export declare type PageListOptions = {
629
- select?: SelectFields<keyof PageModel>;
630
- sortBy?: "order" | "subtitle" | "title" | "created" | "modified";
631
- sortOrder?: 1 | -1;
632
- };
633
- export declare class PageController implements IController {
634
- private readonly client;
635
- constructor(client: HTTPClient);
636
- base: string;
637
- name: string;
638
- get proxy(): IRequestHandler;
639
- /**
640
- * 页面列表
641
- */
642
- getList(page?: number, perPage?: number, options?: PageListOptions): RequestProxyResult<PaginateResult<PageModel>, {
643
- [key: string]: any;
644
- data: PaginateResult<PageModel>;
645
- }>;
646
- /**
647
- * 页面详情
648
- */
649
- getById(id: string): RequestProxyResult<PageModel, {
650
- [key: string]: any;
651
- data: PageModel;
652
- }>;
653
- /**
654
- * 根据路径获取页面
655
- * @param slug 路径
656
- * @returns
657
- */
658
- getBySlug(slug: string): RequestProxyResult<PageModel, {
659
- [key: string]: any;
660
- data: PageModel;
661
- }>;
662
- }
663
- export declare type PostListOptions = {
664
- select?: SelectFields<keyof PostModel>;
665
- year?: number;
666
- sortBy?: "categoryId" | "title" | "created" | "modified";
667
- sortOrder?: 1 | -1;
668
- };
669
- export declare class PostController implements IController {
670
- private client;
671
- constructor(client: HTTPClient);
672
- base: string;
673
- name: string;
674
- get proxy(): import("~/interfaces/request").IRequestHandler;
675
- /**
676
- * 获取文章列表分页
677
- * @param page
678
- * @param perPage
679
- * @returns
680
- */
681
- getList(page?: number, perPage?: number, options?: PostListOptions): RequestProxyResult<PaginateResult<PostModel>, {
682
- [key: string]: any;
683
- data: PaginateResult<PostModel>;
684
- }>;
685
- /**
686
- * 根据分类和路径查找文章
687
- * @param categoryName
688
- * @param slug
689
- */
690
- getPost(categoryName: string, slug: string): RequestProxyResult<PostModel>;
691
- /**
692
- * 根据 ID 查找文章
693
- * @param id
694
- */
695
- getPost(id: string): RequestProxyResult<PostModel>;
696
- /**
697
- * 获取最新的文章
698
- */
699
- getLatest(): RequestProxyResult<PostModel, {
700
- [key: string]: any;
701
- data: PostModel;
702
- }>;
703
- /**
704
- * 点赞
705
- */
706
- thumbsUp(id: string): RequestProxyResult<void, {
707
- [key: string]: any;
708
- data: void;
709
- }>;
710
- }
711
- export interface ProjectModel extends BaseModel {
712
- name: string;
713
- previewUrl?: string;
714
- docUrl?: string;
715
- projectUrl?: string;
716
- images?: string[];
717
- description: string;
718
- avatar?: string;
719
- text: string;
720
- }
721
- export declare class ProjectController extends BaseCrudController<ProjectModel> {
722
- protected readonly client: HTTPClient;
723
- constructor(client: HTTPClient);
724
- base: string;
725
- name: string;
726
- }
727
- export interface RecentlyModel extends BaseModel {
728
- content: string;
729
- project?: string;
730
- language?: string;
731
- }
732
- export declare class RecentlyController implements IController {
733
- private readonly client;
734
- base: string;
735
- name: string[];
736
- constructor(client: HTTPClient);
737
- get proxy(): IRequestHandler;
738
- /**
739
- * 获取最新一条
740
- */
741
- getLatestOne(): RequestProxyResult<RecentlyModel, {
742
- [key: string]: any;
743
- data: RecentlyModel;
744
- }>;
745
- getAll(): RequestProxyResult<{
746
- data: RecentlyModel[];
747
- }, {
748
- [key: string]: any;
749
- data: {
750
- data: RecentlyModel[];
751
- };
752
- }>;
753
- getList(before?: string | undefined, after?: string | undefined, size?: number | number): RequestProxyResult<{
754
- data: RecentlyModel[];
755
- }, {
756
- [key: string]: any;
757
- data: {
758
- data: RecentlyModel[];
759
- };
760
- }>;
761
- }
762
- export declare class SayController extends BaseCrudController<SayModel> implements IController {
763
- protected client: HTTPClient;
764
- base: string;
765
- name: string;
766
- constructor(client: HTTPClient);
767
- get proxy(): IRequestHandler;
768
- /**
769
- * 获取随机一条
770
- */
771
- getRandom(): RequestProxyResult<{
772
- data: SayModel | null;
773
- }, {
774
- [key: string]: any;
775
- data: {
776
- data: SayModel | null;
777
- };
778
- }>;
779
- }
780
- export declare type SearchOption = {
781
- orderBy?: string;
782
- order?: number;
783
- rawAlgolia?: boolean;
784
- };
785
- export declare class SearchController implements IController {
786
- private readonly client;
787
- base: string;
788
- name: string;
789
- constructor(client: HTTPClient);
790
- get proxy(): IRequestHandler;
791
- search(type: "note", keyword: string, options?: Omit<SearchOption, "rawAlgolia">): Promise<RequestProxyResult<PaginateResult<Pick<NoteModel, "modified" | "id" | "title" | "created" | "nid">>>>;
792
- search(type: "post", keyword: string, options?: Omit<SearchOption, "rawAlgolia">): Promise<RequestProxyResult<PaginateResult<Pick<PostModel, "modified" | "id" | "title" | "created" | "slug" | "category">>>>;
793
- /**
794
- * 从 algolya 搜索
795
- * https://www.algolia.com/doc/api-reference/api-methods/search/
796
- * @param keyword
797
- * @param options
798
- * @returns
799
- */
800
- searchByAlgolia(keyword: string, options?: SearchOption): RequestProxyResult<RequestProxyResult<PaginateResult<Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category">> & {
801
- /**
802
- * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
803
- */
804
- raw?: any;
805
- }, {
806
- [key: string]: any;
807
- data: PaginateResult<Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category">> & {
808
- /**
809
- * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
810
- */
811
- raw?: any;
812
- };
813
- }>, {
814
- [key: string]: any;
815
- data: RequestProxyResult<PaginateResult<Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category">> & {
816
- /**
817
- * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
818
- */
819
- raw?: any;
820
- }, {
821
- [key: string]: any;
822
- data: PaginateResult<Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category">> & {
823
- /**
824
- * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
825
- */
826
- raw?: any;
827
- };
828
- }>;
829
- }>;
830
- }
831
- export declare enum SnippetType {
832
- JSON = "json",
833
- Text = "text",
834
- YAML = "yaml"
835
- }
836
- export interface SnippetModel<T = unknown> extends BaseModel {
837
- type: SnippetType;
838
- private: boolean;
839
- raw: string;
840
- name: string;
841
- reference: string;
842
- comment?: string;
843
- metatype?: string;
844
- data: T;
845
- }
846
- export declare class SnippetController implements IController {
847
- protected client: HTTPClient;
848
- base: string;
849
- name: string;
850
- constructor(client: HTTPClient);
851
- get proxy(): IRequestHandler;
852
- getById<T = unknown>(id: string): RequestProxyResult<SnippetModel<T>, {
853
- [key: string]: any;
854
- data: SnippetModel<T>;
855
- }>;
856
- getByReferenceAndName<T = unknown>(reference: string, name: string): RequestProxyResult<T, {
857
- [key: string]: any;
858
- data: T;
859
- }>;
860
- }
861
- export declare class UserController implements IController {
862
- private readonly client;
863
- constructor(client: HTTPClient);
864
- base: string;
865
- name: string[];
866
- get proxy(): IRequestHandler;
867
- getMasterInfo(): RequestProxyResult<UserModel, {
868
- [key: string]: any;
869
- data: UserModel;
870
- }>;
871
- login(username: string, password: string): RequestProxyResult<TLogin, {
872
- [key: string]: any;
873
- data: TLogin;
874
- }>;
875
- checkTokenValid(token: string): RequestProxyResult<{
876
- ok: number;
877
- isGuest: boolean;
878
- }, {
879
- [key: string]: any;
880
- data: {
881
- ok: number;
882
- isGuest: boolean;
883
- };
884
- }>;
885
- }
886
- export declare const allControllers: (typeof AggregateController | typeof CategoryController | typeof CommentController | typeof LinkController | typeof NoteController | typeof PageController | typeof PostController | typeof ProjectController | typeof RecentlyController | typeof SayController | typeof SearchController | typeof SnippetController | typeof UserController)[];
887
- export declare const allContollerNames: readonly [
888
- "aggregate",
889
- "category",
890
- "comment",
891
- "link",
892
- "note",
893
- "page",
894
- "post",
895
- "project",
896
- "recently",
897
- "say",
898
- "search",
899
- "snippet",
900
- "user",
901
- "friend",
902
- "master",
903
- "shorthand"
904
- ];
905
- export declare const camelcaseKeysDeep: <T>(obj: T) => T;
906
- export declare const camelcaseKeys: typeof _camelcaseKeys;
907
-
908
- export {};