@mx-space/api-client 0.6.3 → 0.7.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 (334) hide show
  1. package/adaptors/axios.ts +38 -0
  2. package/adaptors/umi-request.ts +33 -0
  3. package/build/index.cjs.js +28 -27
  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 +29 -27
  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 +28 -27
  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 +69 -0
  16. package/controllers/base.ts +32 -0
  17. package/controllers/category.ts +118 -0
  18. package/controllers/comment.ts +68 -0
  19. package/controllers/index.ts +66 -0
  20. package/controllers/link.ts +28 -0
  21. package/controllers/note.ts +96 -0
  22. package/controllers/page.ts +64 -0
  23. package/controllers/post.ts +94 -0
  24. package/controllers/project.ts +27 -0
  25. package/controllers/recently.ts +53 -0
  26. package/controllers/say.ts +40 -0
  27. package/controllers/search.ts +108 -0
  28. package/controllers/snippet.ts +36 -0
  29. package/controllers/user.ts +51 -0
  30. package/core/attach-request.ts +43 -0
  31. package/core/client.ts +239 -0
  32. package/core/error.ts +10 -0
  33. package/core/index.ts +2 -0
  34. package/coverage/clover.xml +570 -0
  35. package/coverage/coverage-final.json +30 -0
  36. package/coverage/lcov-report/adaptors/axios.ts.html +199 -0
  37. package/coverage/lcov-report/adaptors/index.html +131 -0
  38. package/coverage/lcov-report/adaptors/umi-request.ts.html +184 -0
  39. package/coverage/lcov-report/auto-bind.ts.html +229 -0
  40. package/coverage/lcov-report/base.css +224 -0
  41. package/coverage/lcov-report/block-navigation.js +87 -0
  42. package/coverage/lcov-report/controllers/aggregate.ts.html +292 -0
  43. package/coverage/lcov-report/controllers/base.ts.html +181 -0
  44. package/coverage/lcov-report/controllers/category.ts.html +439 -0
  45. package/coverage/lcov-report/controllers/comment.ts.html +289 -0
  46. package/coverage/lcov-report/controllers/index.html +326 -0
  47. package/coverage/lcov-report/controllers/index.ts.html +283 -0
  48. package/coverage/lcov-report/controllers/link.ts.html +169 -0
  49. package/coverage/lcov-report/controllers/note.ts.html +373 -0
  50. package/coverage/lcov-report/controllers/page.ts.html +277 -0
  51. package/coverage/lcov-report/controllers/post.ts.html +367 -0
  52. package/coverage/lcov-report/controllers/project.ts.html +166 -0
  53. package/coverage/lcov-report/controllers/recently.ts.html +244 -0
  54. package/coverage/lcov-report/controllers/say.ts.html +205 -0
  55. package/coverage/lcov-report/controllers/search.ts.html +409 -0
  56. package/coverage/lcov-report/controllers/snippet.ts.html +193 -0
  57. package/coverage/lcov-report/controllers/user.ts.html +238 -0
  58. package/coverage/lcov-report/core/attach-request.ts.html +214 -0
  59. package/coverage/lcov-report/core/client.ts.html +802 -0
  60. package/coverage/lcov-report/core/error.ts.html +115 -0
  61. package/coverage/lcov-report/core/index.html +161 -0
  62. package/coverage/lcov-report/core/index.ts.html +91 -0
  63. package/coverage/lcov-report/favicon.png +0 -0
  64. package/coverage/lcov-report/index.html +191 -0
  65. package/coverage/lcov-report/index.ts.html +244 -0
  66. package/coverage/lcov-report/models/aggregate.ts.html +298 -0
  67. package/coverage/lcov-report/models/category.ts.html +160 -0
  68. package/coverage/lcov-report/models/index.html +131 -0
  69. package/coverage/lcov-report/prettify.css +1 -0
  70. package/coverage/lcov-report/prettify.js +2 -0
  71. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  72. package/coverage/lcov-report/sorter.js +196 -0
  73. package/coverage/lcov-report/utils/auto-bind.ts.html +229 -0
  74. package/coverage/lcov-report/utils/index.html +131 -0
  75. package/coverage/lcov-report/utils/index.ts.html +244 -0
  76. package/coverage/lcov.info +1164 -0
  77. package/dtos/comment.ts +9 -0
  78. package/esm/adaptors/axios.d.ts +3 -3
  79. package/esm/adaptors/axios.js +5 -17
  80. package/esm/adaptors/axios.js.map +1 -1
  81. package/esm/adaptors/umi-request.d.ts +3 -3
  82. package/esm/adaptors/umi-request.js +1 -0
  83. package/esm/adaptors/umi-request.js.map +1 -1
  84. package/esm/controllers/aggregate.d.ts +32 -10
  85. package/esm/controllers/aggregate.js +2 -2
  86. package/esm/controllers/aggregate.js.map +1 -1
  87. package/esm/controllers/base.d.ts +19 -7
  88. package/esm/controllers/base.js +1 -1
  89. package/esm/controllers/base.js.map +1 -1
  90. package/esm/controllers/category.d.ts +68 -12
  91. package/esm/controllers/category.js +3 -3
  92. package/esm/controllers/category.js.map +1 -1
  93. package/esm/controllers/comment.d.ts +49 -12
  94. package/esm/controllers/comment.js +1 -1
  95. package/esm/controllers/comment.js.map +1 -1
  96. package/esm/controllers/index.js.map +1 -1
  97. package/esm/controllers/link.d.ts +9 -2
  98. package/esm/controllers/link.js +1 -1
  99. package/esm/controllers/link.js.map +1 -1
  100. package/esm/controllers/note.d.ts +48 -13
  101. package/esm/controllers/note.js +2 -2
  102. package/esm/controllers/note.js.map +1 -1
  103. package/esm/controllers/page.d.ts +28 -9
  104. package/esm/controllers/page.js +2 -2
  105. package/esm/controllers/page.js.map +1 -1
  106. package/esm/controllers/post.d.ts +30 -12
  107. package/esm/controllers/post.js +2 -2
  108. package/esm/controllers/post.js.map +1 -1
  109. package/esm/controllers/project.d.ts +8 -2
  110. package/esm/controllers/project.js +1 -1
  111. package/esm/controllers/project.js.map +1 -1
  112. package/esm/controllers/recently.d.ts +35 -7
  113. package/esm/controllers/recently.js +1 -1
  114. package/esm/controllers/recently.js.map +1 -1
  115. package/esm/controllers/say.d.ts +20 -5
  116. package/esm/controllers/say.js +1 -1
  117. package/esm/controllers/say.js.map +1 -1
  118. package/esm/controllers/search.d.ts +178 -14
  119. package/esm/controllers/search.js +3 -3
  120. package/esm/controllers/search.js.map +1 -1
  121. package/esm/controllers/snippet.d.ts +21 -6
  122. package/esm/controllers/snippet.js +1 -1
  123. package/esm/controllers/snippet.js.map +1 -1
  124. package/esm/controllers/user.d.ts +33 -7
  125. package/esm/controllers/user.js +1 -1
  126. package/esm/controllers/user.js.map +1 -1
  127. package/esm/core/attach-request.d.ts +1 -1
  128. package/esm/core/attach-request.js.map +1 -1
  129. package/esm/core/client.d.ts +12 -28
  130. package/esm/core/client.js +23 -21
  131. package/esm/core/client.js.map +1 -1
  132. package/esm/core/error.js.map +1 -1
  133. package/esm/core/index.js.map +1 -1
  134. package/esm/dtos/comment.js.map +1 -1
  135. package/esm/index.d.ts +2 -1
  136. package/esm/index.js +1 -1
  137. package/esm/index.js.map +1 -1
  138. package/esm/interfaces/adapter.d.ts +9 -8
  139. package/esm/interfaces/adapter.js.map +1 -1
  140. package/esm/interfaces/client.d.ts +1 -1
  141. package/esm/interfaces/client.js.map +1 -1
  142. package/esm/interfaces/controller.js.map +1 -1
  143. package/esm/interfaces/instance.js.map +1 -1
  144. package/esm/interfaces/options.js.map +1 -1
  145. package/esm/interfaces/params.js.map +1 -1
  146. package/esm/interfaces/request.d.ts +22 -13
  147. package/esm/interfaces/request.js.map +1 -1
  148. package/esm/interfaces/types.d.ts +2 -0
  149. package/esm/interfaces/types.js +2 -0
  150. package/esm/interfaces/types.js.map +1 -0
  151. package/esm/models/aggregate.js.map +1 -1
  152. package/esm/models/base.js.map +1 -1
  153. package/esm/models/category.js.map +1 -1
  154. package/esm/models/comment.js.map +1 -1
  155. package/esm/models/index.js.map +1 -1
  156. package/esm/models/link.js.map +1 -1
  157. package/esm/models/note.js.map +1 -1
  158. package/esm/models/page.js.map +1 -1
  159. package/esm/models/post.js.map +1 -1
  160. package/esm/models/project.js.map +1 -1
  161. package/esm/models/recently.js.map +1 -1
  162. package/esm/models/say.js.map +1 -1
  163. package/esm/models/setting.js.map +1 -1
  164. package/esm/models/snippet.js.map +1 -1
  165. package/esm/models/user.js.map +1 -1
  166. package/esm/utils/auto-bind.js.map +1 -1
  167. package/esm/utils/index.d.ts +1 -1
  168. package/esm/utils/index.js +2 -2
  169. package/esm/utils/index.js.map +1 -1
  170. package/index.ts +13 -0
  171. package/interfaces/adapter.ts +35 -0
  172. package/interfaces/client.ts +6 -0
  173. package/interfaces/controller.ts +5 -0
  174. package/interfaces/instance.ts +8 -0
  175. package/interfaces/options.ts +1 -0
  176. package/interfaces/params.ts +4 -0
  177. package/interfaces/request.ts +82 -0
  178. package/interfaces/types.ts +3 -0
  179. package/jest.config.js +12 -0
  180. package/lib/adaptors/axios.d.ts +3 -3
  181. package/lib/adaptors/axios.js +5 -17
  182. package/lib/adaptors/axios.js.map +1 -1
  183. package/lib/adaptors/umi-request.d.ts +3 -3
  184. package/lib/adaptors/umi-request.js +1 -0
  185. package/lib/adaptors/umi-request.js.map +1 -1
  186. package/lib/controllers/aggregate.d.ts +32 -10
  187. package/lib/controllers/aggregate.js.map +1 -1
  188. package/lib/controllers/base.d.ts +19 -7
  189. package/lib/controllers/base.js.map +1 -1
  190. package/lib/controllers/category.d.ts +68 -12
  191. package/lib/controllers/category.js +1 -1
  192. package/lib/controllers/category.js.map +1 -1
  193. package/lib/controllers/comment.d.ts +49 -12
  194. package/lib/controllers/comment.js.map +1 -1
  195. package/lib/controllers/index.js.map +1 -1
  196. package/lib/controllers/link.d.ts +9 -2
  197. package/lib/controllers/link.js.map +1 -1
  198. package/lib/controllers/note.d.ts +48 -13
  199. package/lib/controllers/note.js +1 -1
  200. package/lib/controllers/note.js.map +1 -1
  201. package/lib/controllers/page.d.ts +28 -9
  202. package/lib/controllers/page.js +1 -1
  203. package/lib/controllers/page.js.map +1 -1
  204. package/lib/controllers/post.d.ts +30 -12
  205. package/lib/controllers/post.js +1 -1
  206. package/lib/controllers/post.js.map +1 -1
  207. package/lib/controllers/project.d.ts +8 -2
  208. package/lib/controllers/project.js.map +1 -1
  209. package/lib/controllers/recently.d.ts +35 -7
  210. package/lib/controllers/recently.js.map +1 -1
  211. package/lib/controllers/say.d.ts +20 -5
  212. package/lib/controllers/say.js.map +1 -1
  213. package/lib/controllers/search.d.ts +178 -14
  214. package/lib/controllers/search.js +2 -2
  215. package/lib/controllers/search.js.map +1 -1
  216. package/lib/controllers/snippet.d.ts +21 -6
  217. package/lib/controllers/snippet.js.map +1 -1
  218. package/lib/controllers/user.d.ts +33 -7
  219. package/lib/controllers/user.js.map +1 -1
  220. package/lib/core/attach-request.d.ts +1 -1
  221. package/lib/core/attach-request.js.map +1 -1
  222. package/lib/core/client.d.ts +12 -28
  223. package/lib/core/client.js +21 -20
  224. package/lib/core/client.js.map +1 -1
  225. package/lib/core/error.js.map +1 -1
  226. package/lib/core/index.js.map +1 -1
  227. package/lib/dtos/comment.js.map +1 -1
  228. package/lib/index.d.ts +2 -1
  229. package/lib/index.js +1 -2
  230. package/lib/index.js.map +1 -1
  231. package/lib/interfaces/adapter.d.ts +9 -8
  232. package/lib/interfaces/adapter.js.map +1 -1
  233. package/lib/interfaces/client.d.ts +1 -1
  234. package/lib/interfaces/client.js.map +1 -1
  235. package/lib/interfaces/controller.js.map +1 -1
  236. package/lib/interfaces/instance.js.map +1 -1
  237. package/lib/interfaces/options.js.map +1 -1
  238. package/lib/interfaces/params.js.map +1 -1
  239. package/lib/interfaces/request.d.ts +22 -13
  240. package/lib/interfaces/request.js.map +1 -1
  241. package/lib/interfaces/types.d.ts +2 -0
  242. package/lib/interfaces/types.js +3 -0
  243. package/lib/interfaces/types.js.map +1 -0
  244. package/lib/models/aggregate.js.map +1 -1
  245. package/lib/models/base.js.map +1 -1
  246. package/lib/models/category.js.map +1 -1
  247. package/lib/models/comment.js.map +1 -1
  248. package/lib/models/index.js.map +1 -1
  249. package/lib/models/link.js.map +1 -1
  250. package/lib/models/note.js.map +1 -1
  251. package/lib/models/page.js.map +1 -1
  252. package/lib/models/post.js.map +1 -1
  253. package/lib/models/project.js.map +1 -1
  254. package/lib/models/recently.js.map +1 -1
  255. package/lib/models/say.js.map +1 -1
  256. package/lib/models/setting.js.map +1 -1
  257. package/lib/models/snippet.js.map +1 -1
  258. package/lib/models/user.js.map +1 -1
  259. package/lib/utils/auto-bind.js.map +1 -1
  260. package/lib/utils/index.d.ts +1 -1
  261. package/lib/utils/index.js +2 -2
  262. package/lib/utils/index.js.map +1 -1
  263. package/models/aggregate.ts +71 -0
  264. package/models/base.ts +43 -0
  265. package/models/category.ts +25 -0
  266. package/models/comment.ts +37 -0
  267. package/models/index.ts +14 -0
  268. package/models/link.ts +23 -0
  269. package/models/note.ts +37 -0
  270. package/models/page.ts +20 -0
  271. package/models/post.ts +16 -0
  272. package/models/project.ts +12 -0
  273. package/models/recently.ts +7 -0
  274. package/models/say.ts +7 -0
  275. package/models/setting.ts +68 -0
  276. package/models/snippet.ts +18 -0
  277. package/models/user.ts +27 -0
  278. package/package.json +10 -44
  279. package/tsconfig.build.json +6 -0
  280. package/tsconfig.cjs.json +7 -0
  281. package/tsconfig.json +13 -11
  282. package/tsconfig.types.json +18 -0
  283. package/types/adaptors/axios.d.ts +3 -0
  284. package/types/adaptors/umi-request.d.ts +3 -0
  285. package/types/controllers/aggregate.d.ts +64 -0
  286. package/types/controllers/base.d.ts +39 -0
  287. package/types/controllers/category.d.ts +114 -0
  288. package/types/controllers/comment.d.ts +81 -0
  289. package/types/controllers/index.d.ts +16 -0
  290. package/types/controllers/link.d.ts +16 -0
  291. package/types/controllers/note.d.ts +94 -0
  292. package/types/controllers/page.d.ts +59 -0
  293. package/types/controllers/post.d.ts +72 -0
  294. package/types/controllers/project.d.ts +15 -0
  295. package/types/controllers/recently.d.ts +61 -0
  296. package/types/controllers/say.d.ts +37 -0
  297. package/types/controllers/search.d.ts +247 -0
  298. package/types/controllers/snippet.d.ts +33 -0
  299. package/types/controllers/user.d.ts +54 -0
  300. package/types/core/attach-request.d.ts +2 -0
  301. package/types/core/client.d.ts +29 -0
  302. package/types/core/error.d.ts +6 -0
  303. package/types/core/index.d.ts +2 -0
  304. package/types/dtos/comment.d.ts +6 -0
  305. package/types/index.d.ts +7 -0
  306. package/types/interfaces/adapter.d.ts +14 -0
  307. package/types/interfaces/client.d.ts +5 -0
  308. package/types/interfaces/controller.d.ts +4 -0
  309. package/types/interfaces/instance.d.ts +7 -0
  310. package/types/interfaces/options.d.ts +1 -0
  311. package/types/interfaces/params.d.ts +4 -0
  312. package/types/interfaces/request.d.ts +43 -0
  313. package/types/interfaces/types.d.ts +2 -0
  314. package/types/models/aggregate.d.ts +53 -0
  315. package/types/models/base.d.ts +37 -0
  316. package/types/models/category.d.ts +22 -0
  317. package/types/models/comment.d.ts +34 -0
  318. package/types/models/index.d.ts +14 -0
  319. package/types/models/link.d.ts +20 -0
  320. package/types/models/note.d.ts +30 -0
  321. package/types/models/page.d.ts +14 -0
  322. package/types/models/post.d.ts +15 -0
  323. package/types/models/project.d.ts +11 -0
  324. package/types/models/recently.d.ts +6 -0
  325. package/types/models/say.d.ts +6 -0
  326. package/types/models/setting.d.ts +66 -0
  327. package/types/models/snippet.d.ts +16 -0
  328. package/types/models/user.d.ts +21 -0
  329. package/types/utils/auto-bind.d.ts +4 -0
  330. package/types/utils/index.d.ts +5 -0
  331. package/utils/auto-bind.ts +48 -0
  332. package/utils/index.ts +53 -0
  333. package/build/index.d.ts +0 -932
  334. package/readme.md +0 -84
package/models/link.ts ADDED
@@ -0,0 +1,23 @@
1
+ import { BaseModel } from './base'
2
+
3
+ export enum LinkType {
4
+ Friend,
5
+ Collection,
6
+ }
7
+
8
+ export enum LinkState {
9
+ Pass,
10
+ Audit,
11
+ Outdate,
12
+ Banned,
13
+ }
14
+
15
+ export interface LinkModel extends BaseModel {
16
+ name: string
17
+ url: string
18
+ avatar: string
19
+ description?: string
20
+ type: LinkType
21
+ state: LinkState
22
+ hide: boolean
23
+ }
package/models/note.ts ADDED
@@ -0,0 +1,37 @@
1
+ import { TextBaseModel } from './base'
2
+
3
+ export interface NoteModel extends TextBaseModel {
4
+ hide: boolean
5
+ count: {
6
+ read: number
7
+ like: number
8
+ }
9
+
10
+ mood?: string
11
+ weather?: string
12
+ hasMemory?: boolean
13
+
14
+ secret?: Date
15
+ password?: string | null
16
+ nid: number
17
+ music?: NoteMusicRecord[]
18
+ location?: string
19
+
20
+ coordinates?: Coordinate
21
+ }
22
+
23
+ export interface NoteMusicRecord {
24
+ type: string
25
+ id: string
26
+ }
27
+
28
+ export interface Coordinate {
29
+ latitude: number
30
+ longitude: number
31
+ }
32
+
33
+ export interface NoteWrappedPayload {
34
+ data: NoteModel
35
+ next?: Partial<NoteModel>
36
+ prev?: Partial<NoteModel>
37
+ }
package/models/page.ts ADDED
@@ -0,0 +1,20 @@
1
+ import { TextBaseModel } from './base'
2
+
3
+ export enum EnumPageType {
4
+ 'md' = 'md',
5
+ 'html' = 'html',
6
+ 'frame' = 'frame',
7
+ }
8
+ export interface PageModel extends TextBaseModel {
9
+ created: string
10
+
11
+ slug: string
12
+
13
+ subtitle?: string
14
+
15
+ order?: number
16
+
17
+ type?: EnumPageType
18
+
19
+ options?: object
20
+ }
package/models/post.ts ADDED
@@ -0,0 +1,16 @@
1
+ import { Count, Image, TextBaseModel } from './base'
2
+ import { CategoryModel } from './category'
3
+
4
+ export interface PostModel extends TextBaseModel {
5
+ summary?: string
6
+ hide: boolean
7
+ copyright: boolean
8
+ tags: string[]
9
+ count: Count
10
+ text: string
11
+ title: string
12
+ slug: string
13
+ categoryId: string
14
+ images: Image[]
15
+ category: CategoryModel
16
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseModel } from './base'
2
+
3
+ export interface ProjectModel extends BaseModel {
4
+ name: string
5
+ previewUrl?: string
6
+ docUrl?: string
7
+ projectUrl?: string
8
+ images?: string[]
9
+ description: string
10
+ avatar?: string
11
+ text: string
12
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseModel } from './base'
2
+
3
+ export interface RecentlyModel extends BaseModel {
4
+ content: string
5
+ project?: string
6
+ language?: string
7
+ }
package/models/say.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { BaseModel } from './base'
2
+
3
+ export interface SayModel extends BaseModel {
4
+ text: string
5
+ source?: string
6
+ author?: string
7
+ }
@@ -0,0 +1,68 @@
1
+ export declare class SeoOptionModel {
2
+ title: string
3
+ description: string
4
+ icon?: string
5
+ keywords?: string[]
6
+ }
7
+ export declare class UrlOptionModel {
8
+ webUrl: string
9
+ adminUrl: string
10
+ serverUrl: string
11
+ wsUrl: string
12
+ }
13
+ declare class MailOptionModel {
14
+ port: number
15
+ host: string
16
+ }
17
+ export declare class MailOptionsModel {
18
+ enable: boolean
19
+ user: string
20
+ pass: string
21
+ options?: MailOptionModel
22
+ }
23
+ export declare class CommentOptionsModel {
24
+ antiSpam: boolean
25
+ spamKeywords?: string[]
26
+ blockIps?: string[]
27
+ disableNoChinese?: boolean
28
+ }
29
+ export declare class BackupOptionsModel {
30
+ enable: boolean
31
+ secretId?: string
32
+ secretKey?: string
33
+ bucket?: string
34
+ region: string
35
+ }
36
+ export declare class BaiduSearchOptionsModel {
37
+ enable: boolean
38
+ token?: string
39
+ }
40
+ export declare class AlgoliaSearchOptionsModel {
41
+ enable: boolean
42
+ apiKey?: string
43
+ appId?: string
44
+ indexName?: string
45
+ }
46
+
47
+ export declare class AdminExtraModel {
48
+ background?: string
49
+
50
+ gaodemapKey?: string
51
+ title?: string
52
+ /**
53
+ * 是否开启后台反代访问
54
+ */
55
+ enableAdminProxy?: boolean
56
+ }
57
+
58
+ export interface IConfig {
59
+ seo: SeoOptionModel
60
+ url: UrlOptionModel
61
+ mailOptions: MailOptionsModel
62
+ commentOptions: CommentOptionsModel
63
+ backupOptions: BackupOptionsModel
64
+ baiduSearchOptions: BaiduSearchOptionsModel
65
+ algoliaSearchOptions: AlgoliaSearchOptionsModel
66
+ adminExtra: AdminExtraModel
67
+ }
68
+ export declare type IConfigKeys = keyof IConfig
@@ -0,0 +1,18 @@
1
+ import { BaseModel } from './base'
2
+ export enum SnippetType {
3
+ JSON = 'json',
4
+ // Function = 'function',
5
+ Text = 'text',
6
+ YAML = 'yaml',
7
+ }
8
+ export interface SnippetModel<T = unknown> extends BaseModel {
9
+ type: SnippetType
10
+ private: boolean
11
+ raw: string
12
+ name: string
13
+ reference: string
14
+ comment?: string
15
+ metatype?: string
16
+
17
+ data: T
18
+ }
package/models/user.ts ADDED
@@ -0,0 +1,27 @@
1
+ import { BaseModel } from './base'
2
+
3
+ export interface UserModel extends BaseModel {
4
+ introduce: string
5
+ mail: string
6
+ url: string
7
+ name: string
8
+ socialIds: Record<string, string>
9
+ username: string
10
+ modified: string
11
+ v: number
12
+ lastLoginTime: string
13
+ lastLoginIp?: string
14
+ avatar: string
15
+ postID: string
16
+ }
17
+
18
+ export type TLogin = {
19
+ token: string
20
+ expiresIn: number
21
+ // 登陆足迹
22
+ lastLoginTime: null | string
23
+ lastLoginIp?: null | string
24
+ } & Pick<
25
+ UserModel,
26
+ 'name' | 'username' | 'created' | 'url' | 'mail' | 'avatar' | 'id'
27
+ >
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@mx-space/api-client",
3
- "version": "0.6.3",
3
+ "version": "0.7.1",
4
4
  "description": "A api client for mx-space server@next",
5
5
  "author": "Innei",
6
6
  "license": "MIT",
7
7
  "main": "build/index.cjs.js",
8
8
  "module": "build/index.esm.js",
9
- "types": "build/index.d.ts",
9
+ "types": "types/index.d.ts",
10
10
  "unpkg": "build/index.umd.min.js",
11
11
  "husky": {
12
12
  "hooks": {
@@ -29,70 +29,36 @@
29
29
  "eslint --cache"
30
30
  ]
31
31
  },
32
- "files": [
33
- "build",
34
- "lib",
35
- "esm",
36
- "readme.md",
37
- "tsconfig.json"
38
- ],
39
32
  "engines": {
40
33
  "pnpm": ">=6"
41
34
  },
42
35
  "scripts": {
43
- "prepare": "husky install",
44
- "predeploy": "rm -rf dist",
45
- "prebuild": "rm -rf rm -rf lib && rm -rf esm",
46
- "build": "ttsc --build src/tsconfig.build.json && ttsc --build src/tsconfig.cjs.json",
36
+ "prebuild": "rm -rf lib && rm -rf esm",
37
+ "build": "tsc --build tsconfig.build.json && tsc --build tsconfig.cjs.json",
38
+ "postbuild": "tsconfig-replace-paths -p tsconfig.build.json && tsconfig-replace-paths -p tsconfig.cjs.json && npm run types",
39
+ "types": "rm -rf types && tsc --build tsconfig.types.json && tsconfig-replace-paths -p tsconfig.types.json",
47
40
  "package": "NODE_ENV=production npm run build && rollup -c",
48
- "postpackage": "dts-bundle-generator -o build/index.d.ts src/index.ts --project tsconfig.json --no-check",
49
41
  "prepackage": "rm -rf build",
50
42
  "release": "vv",
51
- "dev": "vite",
52
- "build:vite": "vite build",
53
- "preview": "vite preview --port 2323",
54
- "deploy": "vite build && gh-pages -d dist",
55
43
  "test": "jest --env=jsdom --colors --coverage test",
56
- "test:watch": "jest --env=jsdom --colors --coverage test --watch -i --detectOpenHandles"
44
+ "test:watch": "jest --env=jsdom --colors --coverage test --watch -i --detectOpenHandles",
45
+ "version": "vv"
57
46
  },
58
47
  "devDependencies": {
59
- "@innei-util/eslint-config-ts": "latest",
60
- "@innei-util/prettier": "latest",
61
- "@innei/bump-version": "0.2.2",
62
48
  "@rollup/plugin-commonjs": "21.0.1",
63
49
  "@rollup/plugin-node-resolve": "13.1.3",
64
50
  "@rollup/plugin-typescript": "8.3.0",
65
- "@types/express": "4.17.13",
66
51
  "@types/jest": "27.4.0",
67
52
  "@types/lodash": "4.14.178",
68
53
  "@types/node": "16.11.22",
69
- "@types/react": "17.0.39",
70
- "@types/react-dom": "17.0.11",
71
- "@zerollup/ts-transform-paths": "1.7.18",
72
54
  "axios": "0.25.0",
73
- "cors": "2.8.5",
74
- "dts-bundle-generator": "6.4.0",
75
- "esbuild": "0.14.18",
76
- "express": "4.17.2",
77
55
  "gh-pages": "3.2.3",
78
- "husky": "7.0.4",
79
- "jest": "27.5.0",
80
- "lint-staged": "12.2.2",
81
56
  "lodash": "4.17.21",
82
- "prettier": "2.5.1",
83
- "react": "18.0.0-rc.0-next-fe905f152-20220107",
84
- "react-dom": "18.0.0-rc.0-next-fe905f152-20220107",
85
- "react-json-view": "1.21.3",
86
57
  "rollup": "2.66.1",
87
58
  "rollup-plugin-peer-deps-external": "2.2.4",
88
59
  "rollup-plugin-terser": "7.0.2",
89
- "ts-jest": "27.1.3",
90
- "tslib": "2.3.1",
91
- "ttypescript": "1.5.13",
92
- "typescript": "4.4.4",
93
- "umi-request": "1.4.0",
94
- "vite": "2.7.13",
95
- "vite-tsconfig-paths": "3.3.17"
60
+ "tsconfig-replace-paths": "0.0.11",
61
+ "umi-request": "1.4.0"
96
62
  },
97
63
  "dependencies": {
98
64
  "camelcase-keys": "7.0.2"
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": [
4
+ "__tests__/**/*.ts"
5
+ ]
6
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "extends": "./tsconfig.build.json",
3
+ "compilerOptions": {
4
+ "module": "CommonJS",
5
+ "outDir": "./lib"
6
+ }
7
+ }
package/tsconfig.json CHANGED
@@ -1,6 +1,10 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "ES2017",
3
+ "declaration": true,
4
+ "outDir": "./esm",
5
+ "baseUrl": ".",
6
+ "jsx": "react",
7
+ "target": "ES2020",
4
8
  "lib": [
5
9
  "ESNext",
6
10
  "DOM",
@@ -14,18 +18,16 @@
14
18
  "skipLibCheck": true,
15
19
  "forceConsistentCasingInFileNames": true,
16
20
  "sourceMap": true,
17
- "declaration": true,
18
- "outDir": "./dist",
19
- "baseUrl": "./src",
20
21
  "paths": {
21
22
  "~/*": [
22
23
  "*"
23
24
  ]
24
- },
25
- "plugins": [
26
- {
27
- "transform": "@zerollup/ts-transform-paths",
28
- }
29
- ]
30
- }
25
+ }
26
+ },
27
+ "exclude": [
28
+ "esm/*",
29
+ "build/*",
30
+ "node_modules/*",
31
+ "lib/*"
32
+ ]
31
33
  }
@@ -0,0 +1,18 @@
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "compilerOptions": {
4
+ "module": "commonjs",
5
+ "rootDir": ".",
6
+ "outDir": "types",
7
+ "declaration": true,
8
+ "declarationMap": false,
9
+ "isolatedModules": false,
10
+ "noEmit": false,
11
+ "allowJs": false,
12
+ "emitDeclarationOnly": true
13
+ },
14
+ "exclude": [
15
+ "__tests__/**/*",
16
+ "**/*.test.ts"
17
+ ]
18
+ }
@@ -0,0 +1,3 @@
1
+ import { AxiosInstance, AxiosResponse } from 'axios';
2
+ import { IRequestAdapter } from '../interfaces/adapter';
3
+ export declare const axiosAdaptor: IRequestAdapter<AxiosInstance, AxiosResponse<unknown>>;
@@ -0,0 +1,3 @@
1
+ import { RequestMethod, RequestResponse } from 'umi-request';
2
+ import { IRequestAdapter } from '../interfaces/adapter';
3
+ export declare const umiAdaptor: IRequestAdapter<RequestMethod<true>, RequestResponse>;
@@ -0,0 +1,64 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { SortOrder } from '../interfaces/options';
4
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
5
+ import { AggregateRoot, AggregateStat, AggregateTop, TimelineData, TimelineType } from '../models/aggregate';
6
+ import { HTTPClient } from '../core';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ aggregate: AggregateController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class AggregateController<ResponseWrapper> implements IController {
13
+ private client;
14
+ base: string;
15
+ name: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ /**
19
+ * 获取聚合数据
20
+ */
21
+ getAggregateData(): RequestProxyResult<AggregateRoot, ResponseWrapper>;
22
+ /**
23
+ * 获取最新发布的内容
24
+ */
25
+ getTop(size?: number): RequestProxyResult<AggregateTop, ResponseWrapper, ResponseWrapper extends unknown ? {
26
+ [key: string]: any;
27
+ data: AggregateTop;
28
+ } : ResponseWrapper extends {
29
+ data: AggregateTop;
30
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
31
+ data: AggregateTop;
32
+ }>;
33
+ getTimeline(options?: {
34
+ sort?: SortOrder;
35
+ type?: TimelineType;
36
+ year?: number;
37
+ }): RequestProxyResult<{
38
+ data: TimelineData;
39
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
40
+ [key: string]: any;
41
+ data: {
42
+ data: TimelineData;
43
+ };
44
+ } : ResponseWrapper extends {
45
+ data: {
46
+ data: TimelineData;
47
+ };
48
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
49
+ data: {
50
+ data: TimelineData;
51
+ };
52
+ }>;
53
+ /**
54
+ * 获取聚合数据统计
55
+ */
56
+ getStat(): RequestProxyResult<AggregateStat, ResponseWrapper, ResponseWrapper extends unknown ? {
57
+ [key: string]: any;
58
+ data: AggregateStat;
59
+ } : ResponseWrapper extends {
60
+ data: AggregateStat;
61
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
62
+ data: AggregateStat;
63
+ }>;
64
+ }
@@ -0,0 +1,39 @@
1
+ import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
2
+ import { PaginateResult } from '../models/base';
3
+ import { HTTPClient } from '../core';
4
+ export declare abstract class BaseCrudController<T, ResponseWrapper> {
5
+ protected client: HTTPClient;
6
+ base: string;
7
+ constructor(client: HTTPClient);
8
+ get proxy(): IRequestHandler<ResponseWrapper>;
9
+ getById(id: string): RequestProxyResult<T, ResponseWrapper>;
10
+ getAll(): RequestProxyResult<{
11
+ data: T[];
12
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
13
+ [key: string]: any;
14
+ data: {
15
+ data: T[];
16
+ };
17
+ } : ResponseWrapper extends {
18
+ data: {
19
+ data: T[];
20
+ };
21
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
22
+ data: {
23
+ data: T[];
24
+ };
25
+ }>;
26
+ /**
27
+ * 带分页的查询
28
+ * @param page
29
+ * @param perPage
30
+ */
31
+ getAllPaginated(page?: number, perPage?: number): RequestProxyResult<PaginateResult<T>, ResponseWrapper, ResponseWrapper extends unknown ? {
32
+ [key: string]: any;
33
+ data: PaginateResult<T>;
34
+ } : ResponseWrapper extends {
35
+ data: PaginateResult<T>;
36
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
37
+ data: PaginateResult<T>;
38
+ }>;
39
+ }
@@ -0,0 +1,114 @@
1
+ import { IRequestAdapter } from '../interfaces/adapter';
2
+ import { IController } from '../interfaces/controller';
3
+ import { IRequestHandler, RequestProxyResult, ResponseProxyExtraRaw } from '../interfaces/request';
4
+ import { HTTPClient } from '../core/client';
5
+ import { CategoryModel, CategoryType, CategoryWithChildrenModel, TagModel } from '../models/category';
6
+ import { PostModel } from '../models/post';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ category: CategoryController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class CategoryController<ResponseWrapper> implements IController {
13
+ private client;
14
+ name: string;
15
+ base: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ getAllCategories(): RequestProxyResult<{
19
+ data: CategoryModel[];
20
+ }, ResponseWrapper>;
21
+ getAllTags(): RequestProxyResult<{
22
+ data: TagModel[];
23
+ }, ResponseWrapper>;
24
+ getCategoryDetail(id: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel>>;
25
+ getCategoryDetail(ids: string[]): Promise<ResponseProxyExtraRaw<Map<string, CategoryWithChildrenModel>>>;
26
+ getCategoryByIdOrSlug(idOrSlug: string): Promise<CategoryModel & {
27
+ children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
28
+ } & {
29
+ $raw: ResponseWrapper extends {
30
+ data: infer T;
31
+ } ? ResponseWrapper : ResponseWrapper extends unknown ? {
32
+ [i: string]: any;
33
+ data: (ResponseWrapper extends unknown ? {
34
+ [key: string]: any;
35
+ data: CategoryWithChildrenModel;
36
+ } : ResponseWrapper extends {
37
+ data: CategoryWithChildrenModel;
38
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
39
+ data: CategoryWithChildrenModel;
40
+ }) extends unknown ? {
41
+ type: CategoryType;
42
+ count: number;
43
+ slug: string;
44
+ name: string;
45
+ created: string;
46
+ id: string;
47
+ children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
48
+ } : ResponseWrapper extends unknown ? {
49
+ [key: string]: any;
50
+ data: CategoryWithChildrenModel;
51
+ } : ResponseWrapper extends {
52
+ data: CategoryWithChildrenModel;
53
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
54
+ data: CategoryWithChildrenModel;
55
+ };
56
+ } : ResponseWrapper;
57
+ $request: {
58
+ [k: string]: string;
59
+ path: string;
60
+ method: string;
61
+ };
62
+ }>;
63
+ getTagByName(name: string): Promise<{
64
+ tag: string;
65
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
66
+ } & {
67
+ $raw: ResponseWrapper extends {
68
+ data: infer T;
69
+ } ? ResponseWrapper : ResponseWrapper extends unknown ? {
70
+ [i: string]: any;
71
+ data: (ResponseWrapper extends unknown ? {
72
+ [key: string]: any;
73
+ data: {
74
+ tag: string;
75
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
76
+ };
77
+ } : ResponseWrapper extends {
78
+ data: {
79
+ tag: string;
80
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
81
+ };
82
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
83
+ data: {
84
+ tag: string;
85
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
86
+ };
87
+ }) extends unknown ? {
88
+ tag: string;
89
+ data: Pick<PostModel, "id" | "title" | "slug" | "created" | "category">[];
90
+ } : ResponseWrapper extends unknown ? {
91
+ [key: string]: any;
92
+ data: {
93
+ tag: string;
94
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
95
+ };
96
+ } : ResponseWrapper extends {
97
+ data: {
98
+ tag: string;
99
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
100
+ };
101
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
102
+ data: {
103
+ tag: string;
104
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
105
+ };
106
+ };
107
+ } : ResponseWrapper;
108
+ $request: {
109
+ [k: string]: string;
110
+ path: string;
111
+ method: string;
112
+ };
113
+ }>;
114
+ }