@mx-space/api-client 1.4.2 → 1.5.0

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 (201) hide show
  1. package/controllers/activity.ts +39 -0
  2. package/controllers/aggregate.ts +2 -1
  3. package/controllers/index.ts +4 -0
  4. package/dist/adaptors/axios.d.cts +6 -0
  5. package/dist/adaptors/axios.global.js +29 -7
  6. package/dist/adaptors/fetch.d.cts +5 -0
  7. package/dist/adaptors/ky.d.cts +26 -0
  8. package/dist/adaptors/ky.global.js +2 -2
  9. package/dist/adaptors/umi-request.d.cts +6 -0
  10. package/dist/adaptors/umi-request.global.js +9 -1
  11. package/dist/index.cjs +23 -6
  12. package/dist/index.d.cts +1497 -0
  13. package/dist/index.d.ts +31 -4
  14. package/dist/index.global.js +21 -4
  15. package/dist/index.js +22 -5
  16. package/dtos/comment.ts +7 -4
  17. package/esm/apps/core/src/modules/subscribe/subscribe.constant.d.ts +12 -0
  18. package/esm/apps/core/src/modules/subscribe/subscribe.constant.js +16 -0
  19. package/esm/apps/core/src/modules/subscribe/subscribe.constant.js.map +1 -0
  20. package/esm/packages/api-client/adaptors/axios.d.ts +4 -0
  21. package/esm/packages/api-client/adaptors/axios.js +37 -0
  22. package/esm/packages/api-client/adaptors/axios.js.map +1 -0
  23. package/esm/packages/api-client/adaptors/fetch.d.ts +2 -0
  24. package/esm/packages/api-client/adaptors/fetch.js +95 -0
  25. package/esm/packages/api-client/adaptors/fetch.js.map +1 -0
  26. package/esm/packages/api-client/adaptors/ky.d.ts +23 -0
  27. package/esm/packages/api-client/adaptors/ky.js +62 -0
  28. package/esm/packages/api-client/adaptors/ky.js.map +1 -0
  29. package/esm/packages/api-client/adaptors/umi-request.d.ts +4 -0
  30. package/esm/packages/api-client/adaptors/umi-request.js +31 -0
  31. package/esm/packages/api-client/adaptors/umi-request.js.map +1 -0
  32. package/esm/packages/api-client/controllers/aggregate.d.ts +64 -0
  33. package/esm/packages/api-client/controllers/aggregate.js +46 -0
  34. package/esm/packages/api-client/controllers/aggregate.js.map +1 -0
  35. package/esm/packages/api-client/controllers/base.d.ts +43 -0
  36. package/esm/packages/api-client/controllers/base.js +27 -0
  37. package/esm/packages/api-client/controllers/base.js.map +1 -0
  38. package/esm/packages/api-client/controllers/category.d.ts +120 -0
  39. package/esm/packages/api-client/controllers/category.js +68 -0
  40. package/esm/packages/api-client/controllers/category.js.map +1 -0
  41. package/esm/packages/api-client/controllers/comment.d.ts +81 -0
  42. package/esm/packages/api-client/controllers/comment.js +47 -0
  43. package/esm/packages/api-client/controllers/comment.js.map +1 -0
  44. package/esm/packages/api-client/controllers/index.d.ts +19 -0
  45. package/esm/packages/api-client/controllers/index.js +60 -0
  46. package/esm/packages/api-client/controllers/index.js.map +1 -0
  47. package/esm/packages/api-client/controllers/link.d.ts +20 -0
  48. package/esm/packages/api-client/controllers/link.js +21 -0
  49. package/esm/packages/api-client/controllers/link.js.map +1 -0
  50. package/esm/packages/api-client/controllers/note.d.ts +103 -0
  51. package/esm/packages/api-client/controllers/note.js +68 -0
  52. package/esm/packages/api-client/controllers/note.js.map +1 -0
  53. package/esm/packages/api-client/controllers/page.d.ts +59 -0
  54. package/esm/packages/api-client/controllers/page.js +42 -0
  55. package/esm/packages/api-client/controllers/page.js.map +1 -0
  56. package/esm/packages/api-client/controllers/post.d.ts +72 -0
  57. package/esm/packages/api-client/controllers/post.js +52 -0
  58. package/esm/packages/api-client/controllers/post.js.map +1 -0
  59. package/esm/packages/api-client/controllers/project.d.ts +15 -0
  60. package/esm/packages/api-client/controllers/project.js +12 -0
  61. package/esm/packages/api-client/controllers/project.js.map +1 -0
  62. package/esm/packages/api-client/controllers/recently.d.ts +110 -0
  63. package/esm/packages/api-client/controllers/recently.js +49 -0
  64. package/esm/packages/api-client/controllers/recently.js.map +1 -0
  65. package/esm/packages/api-client/controllers/say.d.ts +37 -0
  66. package/esm/packages/api-client/controllers/say.js +21 -0
  67. package/esm/packages/api-client/controllers/say.js.map +1 -0
  68. package/esm/packages/api-client/controllers/search.d.ts +87 -0
  69. package/esm/packages/api-client/controllers/search.js +28 -0
  70. package/esm/packages/api-client/controllers/search.js.map +1 -0
  71. package/esm/packages/api-client/controllers/severless.d.ts +24 -0
  72. package/esm/packages/api-client/controllers/severless.js +16 -0
  73. package/esm/packages/api-client/controllers/severless.js.map +1 -0
  74. package/esm/packages/api-client/controllers/snippet.d.ts +24 -0
  75. package/esm/packages/api-client/controllers/snippet.js +19 -0
  76. package/esm/packages/api-client/controllers/snippet.js.map +1 -0
  77. package/esm/packages/api-client/controllers/subscribe.d.ts +64 -0
  78. package/esm/packages/api-client/controllers/subscribe.js +35 -0
  79. package/esm/packages/api-client/controllers/subscribe.js.map +1 -0
  80. package/esm/packages/api-client/controllers/topic.d.ts +26 -0
  81. package/esm/packages/api-client/controllers/topic.js +18 -0
  82. package/esm/packages/api-client/controllers/topic.js.map +1 -0
  83. package/esm/packages/api-client/controllers/user.d.ts +70 -0
  84. package/esm/packages/api-client/controllers/user.js +40 -0
  85. package/esm/packages/api-client/controllers/user.js.map +1 -0
  86. package/esm/packages/api-client/core/attach-request.d.ts +2 -0
  87. package/esm/packages/api-client/core/attach-request.js +36 -0
  88. package/esm/packages/api-client/core/attach-request.js.map +1 -0
  89. package/esm/packages/api-client/core/client.d.ts +29 -0
  90. package/esm/packages/api-client/core/client.js +193 -0
  91. package/esm/packages/api-client/core/client.js.map +1 -0
  92. package/esm/packages/api-client/core/error.d.ts +6 -0
  93. package/esm/packages/api-client/core/error.js +9 -0
  94. package/esm/packages/api-client/core/error.js.map +1 -0
  95. package/esm/packages/api-client/core/index.d.ts +2 -0
  96. package/esm/packages/api-client/core/index.js +3 -0
  97. package/esm/packages/api-client/core/index.js.map +1 -0
  98. package/esm/packages/api-client/dtos/comment.d.ts +8 -0
  99. package/esm/packages/api-client/dtos/comment.js +2 -0
  100. package/esm/packages/api-client/dtos/comment.js.map +1 -0
  101. package/esm/packages/api-client/dtos/index.d.ts +1 -0
  102. package/esm/packages/api-client/dtos/index.js +2 -0
  103. package/esm/packages/api-client/dtos/index.js.map +1 -0
  104. package/esm/packages/api-client/index.d.ts +8 -0
  105. package/esm/packages/api-client/index.js +9 -0
  106. package/esm/packages/api-client/index.js.map +1 -0
  107. package/esm/packages/api-client/interfaces/adapter.d.ts +14 -0
  108. package/esm/packages/api-client/interfaces/adapter.js +2 -0
  109. package/esm/packages/api-client/interfaces/adapter.js.map +1 -0
  110. package/esm/packages/api-client/interfaces/client.d.ts +13 -0
  111. package/esm/packages/api-client/interfaces/client.js +2 -0
  112. package/esm/packages/api-client/interfaces/client.js.map +1 -0
  113. package/esm/packages/api-client/interfaces/controller.d.ts +4 -0
  114. package/esm/packages/api-client/interfaces/controller.js +2 -0
  115. package/esm/packages/api-client/interfaces/controller.js.map +1 -0
  116. package/esm/packages/api-client/interfaces/instance.d.ts +7 -0
  117. package/esm/packages/api-client/interfaces/instance.js +2 -0
  118. package/esm/packages/api-client/interfaces/instance.js.map +1 -0
  119. package/esm/packages/api-client/interfaces/options.d.ts +1 -0
  120. package/esm/packages/api-client/interfaces/options.js +2 -0
  121. package/esm/packages/api-client/interfaces/options.js.map +1 -0
  122. package/esm/packages/api-client/interfaces/params.d.ts +4 -0
  123. package/esm/packages/api-client/interfaces/params.js +2 -0
  124. package/esm/packages/api-client/interfaces/params.js.map +1 -0
  125. package/esm/packages/api-client/interfaces/request.d.ts +44 -0
  126. package/esm/packages/api-client/interfaces/request.js +2 -0
  127. package/esm/packages/api-client/interfaces/request.js.map +1 -0
  128. package/esm/packages/api-client/interfaces/types.d.ts +2 -0
  129. package/esm/packages/api-client/interfaces/types.js +2 -0
  130. package/esm/packages/api-client/interfaces/types.js.map +1 -0
  131. package/esm/packages/api-client/models/aggregate.d.ts +67 -0
  132. package/esm/packages/api-client/models/aggregate.js +6 -0
  133. package/esm/packages/api-client/models/aggregate.js.map +1 -0
  134. package/esm/packages/api-client/models/base.d.ts +40 -0
  135. package/esm/packages/api-client/models/base.js +2 -0
  136. package/esm/packages/api-client/models/base.js.map +1 -0
  137. package/esm/packages/api-client/models/category.d.ts +22 -0
  138. package/esm/packages/api-client/models/category.js +6 -0
  139. package/esm/packages/api-client/models/category.js.map +1 -0
  140. package/esm/packages/api-client/models/comment.d.ts +39 -0
  141. package/esm/packages/api-client/models/comment.js +13 -0
  142. package/esm/packages/api-client/models/comment.js.map +1 -0
  143. package/esm/packages/api-client/models/index.d.ts +16 -0
  144. package/esm/packages/api-client/models/index.js +17 -0
  145. package/esm/packages/api-client/models/index.js.map +1 -0
  146. package/esm/packages/api-client/models/link.d.ts +22 -0
  147. package/esm/packages/api-client/models/link.js +14 -0
  148. package/esm/packages/api-client/models/link.js.map +1 -0
  149. package/esm/packages/api-client/models/note.d.ts +38 -0
  150. package/esm/packages/api-client/models/note.js +2 -0
  151. package/esm/packages/api-client/models/note.js.map +1 -0
  152. package/esm/packages/api-client/models/page.d.ts +14 -0
  153. package/esm/packages/api-client/models/page.js +7 -0
  154. package/esm/packages/api-client/models/page.js.map +1 -0
  155. package/esm/packages/api-client/models/post.d.ts +17 -0
  156. package/esm/packages/api-client/models/post.js +2 -0
  157. package/esm/packages/api-client/models/post.js.map +1 -0
  158. package/esm/packages/api-client/models/project.d.ts +11 -0
  159. package/esm/packages/api-client/models/project.js +2 -0
  160. package/esm/packages/api-client/models/project.js.map +1 -0
  161. package/esm/packages/api-client/models/recently.d.ts +20 -0
  162. package/esm/packages/api-client/models/recently.js +7 -0
  163. package/esm/packages/api-client/models/recently.js.map +1 -0
  164. package/esm/packages/api-client/models/say.d.ts +6 -0
  165. package/esm/packages/api-client/models/say.js +2 -0
  166. package/esm/packages/api-client/models/say.js.map +1 -0
  167. package/esm/packages/api-client/models/setting.d.ts +66 -0
  168. package/esm/packages/api-client/models/setting.js +2 -0
  169. package/esm/packages/api-client/models/setting.js.map +1 -0
  170. package/esm/packages/api-client/models/snippet.d.ts +18 -0
  171. package/esm/packages/api-client/models/snippet.js +8 -0
  172. package/esm/packages/api-client/models/snippet.js.map +1 -0
  173. package/esm/packages/api-client/models/subscribe.d.ts +3 -0
  174. package/esm/packages/api-client/models/subscribe.js +2 -0
  175. package/esm/packages/api-client/models/subscribe.js.map +1 -0
  176. package/esm/packages/api-client/models/topic.d.ts +8 -0
  177. package/esm/packages/api-client/models/topic.js +2 -0
  178. package/esm/packages/api-client/models/topic.js.map +1 -0
  179. package/esm/packages/api-client/models/user.d.ts +21 -0
  180. package/esm/packages/api-client/models/user.js +2 -0
  181. package/esm/packages/api-client/models/user.js.map +1 -0
  182. package/esm/packages/api-client/tsup.config.d.ts +2 -0
  183. package/esm/packages/api-client/tsup.config.js +14 -0
  184. package/esm/packages/api-client/tsup.config.js.map +1 -0
  185. package/esm/packages/api-client/utils/auto-bind.d.ts +4 -0
  186. package/esm/packages/api-client/utils/auto-bind.js +36 -0
  187. package/esm/packages/api-client/utils/auto-bind.js.map +1 -0
  188. package/esm/packages/api-client/utils/camelcase-keys.d.ts +6 -0
  189. package/esm/packages/api-client/utils/camelcase-keys.js +23 -0
  190. package/esm/packages/api-client/utils/camelcase-keys.js.map +1 -0
  191. package/esm/packages/api-client/utils/index.d.ts +5 -0
  192. package/esm/packages/api-client/utils/index.js +43 -0
  193. package/esm/packages/api-client/utils/index.js.map +1 -0
  194. package/esm/packages/api-client/utils/path.d.ts +1 -0
  195. package/esm/packages/api-client/utils/path.js +7 -0
  196. package/esm/packages/api-client/utils/path.js.map +1 -0
  197. package/esm/packages/api-client/vitest.config.d.ts +2 -0
  198. package/esm/packages/api-client/vitest.config.js +15 -0
  199. package/esm/packages/api-client/vitest.config.js.map +1 -0
  200. package/models/comment.ts +3 -0
  201. package/package.json +5 -5
@@ -0,0 +1,28 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ export class SearchController {
3
+ constructor(client) {
4
+ this.client = client;
5
+ this.base = 'search';
6
+ this.name = 'search';
7
+ autoBind(this);
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ search(type, keyword, options = {}) {
13
+ return this.proxy(type).get({
14
+ params: { keyword, ...options },
15
+ });
16
+ }
17
+ /**
18
+ * 从 algolya 搜索
19
+ * https://www.algolia.com/doc/api-reference/api-methods/search/
20
+ * @param keyword
21
+ * @param options
22
+ * @returns
23
+ */
24
+ searchByAlgolia(keyword, options) {
25
+ return this.proxy('algolia').get({ params: { keyword, ...options } });
26
+ }
27
+ }
28
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../controllers/search.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAkB5C,MAAM,OAAO,gBAAgB;IAI3B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAH/C,SAAI,GAAG,QAAQ,CAAA;QACf,SAAI,GAAG,QAAQ,CAAA;QAGb,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IA6BD,MAAM,CACJ,IAAgB,EAChB,OAAe,EACf,UAA4C,EAAE;QAE9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YAC1B,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;SAChC,CAAC,CAAA;IACJ,CAAC;IACD;;;;;;OAMG;IACH,eAAe,CAAC,OAAe,EAAE,OAAsB;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAuB9B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,CAAA;IACxC,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { IController } from '~/interfaces/controller';
3
+ import type { IRequestHandler } from '~/interfaces/request';
4
+ import type { HTTPClient } from '../core';
5
+ declare module '../core/client' {
6
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
7
+ serverless: ServerlessController<ResponseWrapper>;
8
+ }
9
+ }
10
+ export declare class ServerlessController<ResponseWrapper> implements IController {
11
+ protected client: HTTPClient;
12
+ base: string;
13
+ name: string;
14
+ constructor(client: HTTPClient);
15
+ get proxy(): IRequestHandler<ResponseWrapper>;
16
+ getByReferenceAndName<T = unknown>(reference: string, name: string): import("~/interfaces/request").RequestProxyResult<T, ResponseWrapper, ResponseWrapper extends unknown ? {
17
+ [key: string]: any;
18
+ data: T;
19
+ } : ResponseWrapper extends {
20
+ data: T;
21
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
22
+ data: T;
23
+ }>;
24
+ }
@@ -0,0 +1,16 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ export class ServerlessController {
3
+ constructor(client) {
4
+ this.client = client;
5
+ this.base = 'serverless';
6
+ this.name = 'serverless';
7
+ autoBind(this);
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ getByReferenceAndName(reference, name) {
13
+ return this.proxy(reference)(name).get();
14
+ }
15
+ }
16
+ //# sourceMappingURL=severless.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"severless.js","sourceRoot":"","sources":["../../../../controllers/severless.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAW5C,MAAM,OAAO,oBAAoB;IAI/B,YAAsB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,YAAY,CAAA;QACnB,SAAI,GAAG,YAAY,CAAA;QAGjB,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,qBAAqB,CAAc,SAAiB,EAAE,IAAY;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAK,CAAA;IAC7C,CAAC;CACF"}
@@ -0,0 +1,24 @@
1
+ import type { IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { IController } from '~/interfaces/controller';
3
+ import type { IRequestHandler } from '~/interfaces/request';
4
+ import type { HTTPClient } from '../core';
5
+ declare module '../core/client' {
6
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
7
+ snippet: SnippetController<ResponseWrapper>;
8
+ }
9
+ }
10
+ export declare class SnippetController<ResponseWrapper> implements IController {
11
+ protected client: HTTPClient;
12
+ base: string;
13
+ name: string;
14
+ constructor(client: HTTPClient);
15
+ get proxy(): IRequestHandler<ResponseWrapper>;
16
+ getByReferenceAndName<T = unknown>(reference: string, name: string): import("~/interfaces/request").RequestProxyResult<T, ResponseWrapper, ResponseWrapper extends unknown ? {
17
+ [key: string]: any;
18
+ data: T;
19
+ } : ResponseWrapper extends {
20
+ data: T;
21
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
22
+ data: T;
23
+ }>;
24
+ }
@@ -0,0 +1,19 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ export class SnippetController {
3
+ constructor(client) {
4
+ this.client = client;
5
+ this.base = 'snippets';
6
+ this.name = 'snippet';
7
+ autoBind(this);
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ // getById(id: string) {
13
+ // return this.proxy(id).get<Omit<SnippetModel, 'data'>>()
14
+ // }
15
+ getByReferenceAndName(reference, name) {
16
+ return this.proxy(reference)(name).get();
17
+ }
18
+ }
19
+ //# sourceMappingURL=snippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../../controllers/snippet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAW5C,MAAM,OAAO,iBAAiB;IAI5B,YAAsB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,UAAU,CAAA;QACjB,SAAI,GAAG,SAAS,CAAA;QAGd,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,wBAAwB;IACxB,4DAA4D;IAC5D,IAAI;IAEJ,qBAAqB,CAAc,SAAiB,EAAE,IAAY;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAK,CAAA;IAC7C,CAAC;CACF"}
@@ -0,0 +1,64 @@
1
+ import type { IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { IController } from '~/interfaces/controller';
3
+ import type { IRequestHandler } from '~/interfaces/request';
4
+ import type { SubscribeType } from '~/models/subscribe';
5
+ import type { HTTPClient } from '../core';
6
+ declare module '../core/client' {
7
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ subscribe: SubscribeController<ResponseWrapper>;
9
+ }
10
+ }
11
+ export declare class SubscribeController<ResponseWrapper> implements IController {
12
+ protected client: HTTPClient;
13
+ base: string;
14
+ name: string;
15
+ constructor(client: HTTPClient);
16
+ get proxy(): IRequestHandler<ResponseWrapper>;
17
+ /**
18
+ * 检查开启状态
19
+ */
20
+ check(): import("~/interfaces/request").RequestProxyResult<{
21
+ enable: boolean;
22
+ bitMap: Record<SubscribeType, number>;
23
+ allowBits: number[];
24
+ allowTypes: SubscribeType[];
25
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
26
+ [key: string]: any;
27
+ data: {
28
+ enable: boolean;
29
+ bitMap: Record<SubscribeType, number>;
30
+ allowBits: number[];
31
+ allowTypes: SubscribeType[];
32
+ };
33
+ } : ResponseWrapper extends {
34
+ data: {
35
+ enable: boolean;
36
+ bitMap: Record<SubscribeType, number>;
37
+ allowBits: number[];
38
+ allowTypes: SubscribeType[];
39
+ };
40
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
41
+ data: {
42
+ enable: boolean;
43
+ bitMap: Record<SubscribeType, number>;
44
+ allowBits: number[];
45
+ allowTypes: SubscribeType[];
46
+ };
47
+ }>;
48
+ subscribe(email: string, types: SubscribeType[]): import("~/interfaces/request").RequestProxyResult<never, ResponseWrapper, ResponseWrapper extends unknown ? {
49
+ [key: string]: any;
50
+ data: never;
51
+ } : ResponseWrapper extends {
52
+ data: never;
53
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
54
+ data: never;
55
+ }>;
56
+ unsubscribe(email: string, cancelToken: string): import("~/interfaces/request").RequestProxyResult<string, ResponseWrapper, ResponseWrapper extends unknown ? {
57
+ [key: string]: any;
58
+ data: string;
59
+ } : ResponseWrapper extends {
60
+ data: string;
61
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
62
+ data: string;
63
+ }>;
64
+ }
@@ -0,0 +1,35 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ export class SubscribeController {
3
+ constructor(client) {
4
+ this.client = client;
5
+ this.base = 'subscribe';
6
+ this.name = 'subscribe';
7
+ autoBind(this);
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ /**
13
+ * 检查开启状态
14
+ */
15
+ check() {
16
+ return this.proxy.status.get();
17
+ }
18
+ subscribe(email, types) {
19
+ return this.proxy.post({
20
+ data: {
21
+ email,
22
+ types,
23
+ },
24
+ });
25
+ }
26
+ unsubscribe(email, cancelToken) {
27
+ return this.proxy.unsubscribe.get({
28
+ params: {
29
+ email,
30
+ cancelToken,
31
+ },
32
+ });
33
+ }
34
+ }
35
+ //# sourceMappingURL=subscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../../../controllers/subscribe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAW5C,MAAM,OAAO,mBAAmB;IAI9B,YAAsB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,WAAW,CAAA;QAClB,SAAI,GAAG,WAAW,CAAA;QAGhB,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAKxB,CAAA;IACN,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,KAAsB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAQ;YAC5B,IAAI,EAAE;gBACJ,KAAK;gBACL,KAAK;aACN;SACF,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,WAAmB;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAS;YACxC,MAAM,EAAE;gBACN,KAAK;gBACL,WAAW;aACZ;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import type { IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { IController } from '~/interfaces/controller';
3
+ import type { IRequestHandler } from '~/interfaces/request';
4
+ import type { TopicModel } from '~/models/topic';
5
+ import type { HTTPClient } from '../core';
6
+ import { BaseCrudController } from './base';
7
+ declare module '../core/client' {
8
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
+ topic: TopicController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class TopicController<ResponseWrapper> extends BaseCrudController<TopicModel, ResponseWrapper> implements IController {
13
+ protected client: HTTPClient;
14
+ base: string;
15
+ name: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ getTopicBySlug(slug: string): import("~/interfaces/request").RequestProxyResult<TopicModel, ResponseWrapper, ResponseWrapper extends unknown ? {
19
+ [key: string]: any;
20
+ data: TopicModel;
21
+ } : ResponseWrapper extends {
22
+ data: TopicModel;
23
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
24
+ data: TopicModel;
25
+ }>;
26
+ }
@@ -0,0 +1,18 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ import { BaseCrudController } from './base';
3
+ export class TopicController extends BaseCrudController {
4
+ constructor(client) {
5
+ super(client);
6
+ this.client = client;
7
+ this.base = 'topics';
8
+ this.name = 'topic';
9
+ autoBind(this);
10
+ }
11
+ get proxy() {
12
+ return this.client.proxy(this.base);
13
+ }
14
+ getTopicBySlug(slug) {
15
+ return this.proxy.slug(slug).get();
16
+ }
17
+ }
18
+ //# sourceMappingURL=topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"topic.js","sourceRoot":"","sources":["../../../../controllers/topic.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAW3C,MAAM,OAAO,eACX,SAAQ,kBAA+C;IAMvD,YAAsB,MAAkB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAA;QADO,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,QAAQ,CAAA;QACf,SAAI,GAAG,OAAO,CAAA;QAIZ,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAc,CAAA;IAChD,CAAC;CACF"}
@@ -0,0 +1,70 @@
1
+ import type { IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { IController } from '~/interfaces/controller';
3
+ import type { IRequestHandler } from '~/interfaces/request';
4
+ import type { TLogin, UserModel } from '~/models/user';
5
+ import type { HTTPClient } from '../core';
6
+ declare module '../core/client' {
7
+ interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ user: UserController<ResponseWrapper>;
9
+ master: UserController<ResponseWrapper>;
10
+ }
11
+ }
12
+ export declare class UserController<ResponseWrapper> implements IController {
13
+ private readonly client;
14
+ constructor(client: HTTPClient);
15
+ base: string;
16
+ name: string[];
17
+ get proxy(): IRequestHandler<ResponseWrapper>;
18
+ getMasterInfo(): import("~/interfaces/request").RequestProxyResult<UserModel, ResponseWrapper, ResponseWrapper extends unknown ? {
19
+ [key: string]: any;
20
+ data: UserModel;
21
+ } : ResponseWrapper extends {
22
+ data: UserModel;
23
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
24
+ data: UserModel;
25
+ }>;
26
+ login(username: string, password: string): import("~/interfaces/request").RequestProxyResult<TLogin, ResponseWrapper, ResponseWrapper extends unknown ? {
27
+ [key: string]: any;
28
+ data: TLogin;
29
+ } : ResponseWrapper extends {
30
+ data: TLogin;
31
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
32
+ data: TLogin;
33
+ }>;
34
+ loginWithToken(token?: string): import("~/interfaces/request").RequestProxyResult<{
35
+ token: string;
36
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
37
+ [key: string]: any;
38
+ data: {
39
+ token: string;
40
+ };
41
+ } : ResponseWrapper extends {
42
+ data: {
43
+ token: string;
44
+ };
45
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
46
+ data: {
47
+ token: string;
48
+ };
49
+ }>;
50
+ checkTokenValid(token: string): import("~/interfaces/request").RequestProxyResult<{
51
+ ok: number;
52
+ isGuest: boolean;
53
+ }, ResponseWrapper, ResponseWrapper extends unknown ? {
54
+ [key: string]: any;
55
+ data: {
56
+ ok: number;
57
+ isGuest: boolean;
58
+ };
59
+ } : ResponseWrapper extends {
60
+ data: {
61
+ ok: number;
62
+ isGuest: boolean;
63
+ };
64
+ } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
65
+ data: {
66
+ ok: number;
67
+ isGuest: boolean;
68
+ };
69
+ }>;
70
+ }
@@ -0,0 +1,40 @@
1
+ import { autoBind } from '~/utils/auto-bind';
2
+ export class UserController {
3
+ constructor(client) {
4
+ this.client = client;
5
+ this.base = 'master';
6
+ this.name = ['user', 'master'];
7
+ autoBind(this);
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ getMasterInfo() {
13
+ return this.proxy.get();
14
+ }
15
+ login(username, password) {
16
+ return this.proxy.login.post({
17
+ data: {
18
+ username,
19
+ password,
20
+ },
21
+ });
22
+ }
23
+ loginWithToken(token) {
24
+ return this.proxy.login.put({
25
+ params: token
26
+ ? {
27
+ token: `bearer ${token.replace(/^Bearer\s/i, '')}`,
28
+ }
29
+ : undefined,
30
+ });
31
+ }
32
+ checkTokenValid(token) {
33
+ return this.proxy.check_logged.get({
34
+ params: {
35
+ token: `bearer ${token.replace(/^Bearer\s/i, '')}`,
36
+ },
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../../controllers/user.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAY5C,MAAM,OAAO,cAAc;IACzB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAI/C,SAAI,GAAG,QAAQ,CAAA;QAEf,SAAI,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QALvB,QAAQ,CAAC,IAAI,CAAC,CAAA;IAChB,CAAC;IAMD,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAa,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,QAAgB,EAAE,QAAgB;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAS;YACnC,IAAI,EAAE;gBACJ,QAAQ;gBACR,QAAQ;aACT;SACF,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,CAAC,KAAc;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAoB;YAC7C,MAAM,EAAE,KAAK;gBACX,CAAC,CAAC;oBACE,KAAK,EAAE,UAAU,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;iBACnD;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAA;IACJ,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAmC;YACnE,MAAM,EAAE;gBACN,KAAK,EAAE,UAAU,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;aACnD;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import type { HTTPClient } from '.';
2
+ export declare function attachRequestMethod<T extends HTTPClient<any, any>>(target: T): void;
@@ -0,0 +1,36 @@
1
+ export function attachRequestMethod(target) {
2
+ Object.defineProperty(target, '$$get', {
3
+ value(url, options) {
4
+ // HINT: method get only accept search params;
5
+ const { params = {}, ...rest } = options;
6
+ const qs = handleSearchParams(params);
7
+ return target.instance.get(`${url}${qs ? `${`?${qs}`}` : ''}`, rest);
8
+ },
9
+ });
10
+ ['put', 'post', 'patch', 'delete'].forEach((method) => {
11
+ Object.defineProperty(target, `$$${method}`, {
12
+ value(path, options) {
13
+ return target.instance[method](path, options);
14
+ },
15
+ });
16
+ });
17
+ }
18
+ // FIXME: only support string value
19
+ function handleSearchParams(obj) {
20
+ if (!obj && typeof obj !== 'object') {
21
+ throw new TypeError('params must be object.');
22
+ }
23
+ if (obj instanceof URLSearchParams) {
24
+ return obj.toString();
25
+ }
26
+ const search = new URLSearchParams();
27
+ Object.entries(obj).forEach(([k, v]) => {
28
+ if (typeof v === 'undefined' ||
29
+ Object.prototype.toString.call(v) === '[object Null]') {
30
+ return;
31
+ }
32
+ search.set(k, v);
33
+ });
34
+ return search.toString();
35
+ }
36
+ //# sourceMappingURL=attach-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach-request.js","sourceRoot":"","sources":["../../../../core/attach-request.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAiC,MAAS;IAC3E,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE;QACrC,KAAK,CAAC,GAAW,EAAE,OAAa;YAC9B,8CAA8C;YAC9C,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAA;YACxC,MAAM,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;YAErC,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;QACtE,CAAC;KACF,CAAC,CACD;IAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,EAAE;YAC3C,KAAK,CAAC,IAAY,EAAE,OAAa;gBAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC/C,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,mCAAmC;AACnC,SAAS,kBAAkB,CAAC,GAA6C;IACvE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACnC,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAA;KAC9C;IAED,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;KACtB;IACD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;IAEpC,MAAM,CAAC,OAAO,CAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC1C,IACE,OAAO,CAAC,KAAK,WAAW;YACxB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EACrD;YACA,OAAM;SACP;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAA;AAC1B,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { IAdaptorRequestResponseType, IRequestAdapter } from '~/interfaces/adapter';
2
+ import type { ClientOptions } from '~/interfaces/client';
3
+ import type { IController } from '~/interfaces/controller';
4
+ import type { IRequestHandler } from '~/interfaces/request';
5
+ import type { Class } from '~/interfaces/types';
6
+ export type { HTTPClient };
7
+ declare class HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
+ private readonly _endpoint;
9
+ private _adaptor;
10
+ private options;
11
+ private readonly _proxy;
12
+ constructor(_endpoint: string, _adaptor: T, options?: Omit<ClientOptions, 'controllers'>);
13
+ private initGetClient;
14
+ injectControllers(...Controller: Class<IController>[]): void;
15
+ injectControllers(Controller: Class<IController>[]): void;
16
+ get endpoint(): string;
17
+ get instance(): T;
18
+ request(options: {
19
+ url: string;
20
+ method?: string;
21
+ data?: any;
22
+ params?: any;
23
+ }): Promise<IAdaptorRequestResponseType<any>>;
24
+ get proxy(): IRequestHandler<ResponseWrapper>;
25
+ private buildRoute;
26
+ }
27
+ export declare function createClient<T extends IRequestAdapter>(adapter: T): <ResponseWrapper = T extends {
28
+ responseWrapper: infer Type;
29
+ } ? Type extends undefined ? unknown : Type : unknown>(endpoint: string, options?: ClientOptions) => HTTPClient<T, ResponseWrapper>;