@mx-space/api-client 0.7.2 → 0.8.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 (192) hide show
  1. package/adaptors/umi-request.ts +1 -1
  2. package/build/index.cjs.js +44 -16
  3. package/build/index.cjs.js.map +1 -1
  4. package/build/index.cjs.min.js +1 -1
  5. package/build/index.cjs.min.js.map +1 -1
  6. package/build/index.esm.js +44 -17
  7. package/build/index.esm.js.map +1 -1
  8. package/build/index.esm.min.js +1 -1
  9. package/build/index.esm.min.js.map +1 -1
  10. package/build/index.umd.js +44 -16
  11. package/build/index.umd.js.map +1 -1
  12. package/build/index.umd.min.js +1 -1
  13. package/build/index.umd.min.js.map +1 -1
  14. package/controllers/aggregate.ts +1 -1
  15. package/controllers/base.ts +1 -1
  16. package/controllers/category.ts +10 -10
  17. package/controllers/comment.ts +2 -2
  18. package/controllers/index.ts +4 -0
  19. package/controllers/link.ts +17 -2
  20. package/controllers/note.ts +1 -1
  21. package/controllers/page.ts +1 -1
  22. package/controllers/post.ts +1 -1
  23. package/controllers/project.ts +2 -2
  24. package/controllers/recently.ts +1 -1
  25. package/controllers/say.ts +2 -2
  26. package/controllers/search.ts +2 -2
  27. package/controllers/severless.ts +31 -0
  28. package/controllers/snippet.ts +3 -3
  29. package/controllers/user.ts +2 -2
  30. package/core/attach-request.ts +4 -4
  31. package/core/client.ts +8 -14
  32. package/coverage/clover.xml +240 -219
  33. package/coverage/coverage-final.json +29 -27
  34. package/coverage/lcov-report/adaptors/axios.ts.html +4 -4
  35. package/coverage/lcov-report/adaptors/index.html +1 -1
  36. package/coverage/lcov-report/adaptors/umi-request.ts.html +2 -2
  37. package/coverage/lcov-report/controllers/aggregate.ts.html +6 -6
  38. package/coverage/lcov-report/controllers/base.ts.html +6 -6
  39. package/coverage/lcov-report/controllers/category.ts.html +17 -17
  40. package/coverage/lcov-report/controllers/comment.ts.html +6 -6
  41. package/coverage/lcov-report/controllers/index.html +29 -14
  42. package/coverage/lcov-report/controllers/index.ts.html +41 -29
  43. package/coverage/lcov-report/controllers/link.ts.html +56 -11
  44. package/coverage/lcov-report/controllers/note.ts.html +6 -6
  45. package/coverage/lcov-report/controllers/page.ts.html +6 -6
  46. package/coverage/lcov-report/controllers/post.ts.html +6 -6
  47. package/coverage/lcov-report/controllers/project.ts.html +7 -7
  48. package/coverage/lcov-report/controllers/recently.ts.html +5 -5
  49. package/coverage/lcov-report/controllers/say.ts.html +7 -7
  50. package/coverage/lcov-report/controllers/search.ts.html +6 -6
  51. package/coverage/lcov-report/controllers/severless.ts.html +178 -0
  52. package/coverage/lcov-report/controllers/snippet.ts.html +7 -7
  53. package/coverage/lcov-report/controllers/user.ts.html +6 -6
  54. package/coverage/lcov-report/core/attach-request.ts.html +18 -18
  55. package/coverage/lcov-report/core/client.ts.html +79 -97
  56. package/coverage/lcov-report/core/error.ts.html +2 -2
  57. package/coverage/lcov-report/core/index.html +15 -15
  58. package/coverage/lcov-report/core/index.ts.html +3 -3
  59. package/coverage/lcov-report/index.html +32 -32
  60. package/coverage/lcov-report/models/aggregate.ts.html +1 -1
  61. package/coverage/lcov-report/models/category.ts.html +4 -4
  62. package/coverage/lcov-report/models/index.html +1 -1
  63. package/coverage/lcov-report/utils/auto-bind.ts.html +20 -20
  64. package/coverage/lcov-report/utils/index.html +24 -9
  65. package/coverage/lcov-report/utils/index.ts.html +7 -7
  66. package/coverage/lcov-report/utils/path.ts.html +103 -0
  67. package/coverage/lcov.info +403 -358
  68. package/esm/adaptors/umi-request.js.map +1 -1
  69. package/esm/controllers/aggregate.d.ts +1 -1
  70. package/esm/controllers/aggregate.js.map +1 -1
  71. package/esm/controllers/base.d.ts +1 -1
  72. package/esm/controllers/base.js.map +1 -1
  73. package/esm/controllers/category.d.ts +6 -6
  74. package/esm/controllers/category.js +3 -3
  75. package/esm/controllers/category.js.map +1 -1
  76. package/esm/controllers/comment.d.ts +2 -2
  77. package/esm/controllers/comment.js.map +1 -1
  78. package/esm/controllers/index.d.ts +4 -3
  79. package/esm/controllers/index.js +4 -1
  80. package/esm/controllers/index.js.map +1 -1
  81. package/esm/controllers/link.d.ts +6 -2
  82. package/esm/controllers/link.js +10 -1
  83. package/esm/controllers/link.js.map +1 -1
  84. package/esm/controllers/note.d.ts +1 -1
  85. package/esm/controllers/note.js.map +1 -1
  86. package/esm/controllers/page.d.ts +1 -1
  87. package/esm/controllers/page.js.map +1 -1
  88. package/esm/controllers/post.d.ts +1 -1
  89. package/esm/controllers/post.js.map +1 -1
  90. package/esm/controllers/project.d.ts +2 -2
  91. package/esm/controllers/project.js +1 -1
  92. package/esm/controllers/project.js.map +1 -1
  93. package/esm/controllers/recently.d.ts +1 -1
  94. package/esm/controllers/recently.js.map +1 -1
  95. package/esm/controllers/say.d.ts +2 -2
  96. package/esm/controllers/say.js +1 -1
  97. package/esm/controllers/say.js.map +1 -1
  98. package/esm/controllers/search.d.ts +50 -50
  99. package/esm/controllers/search.js.map +1 -1
  100. package/esm/controllers/severless.d.ts +24 -0
  101. package/esm/controllers/severless.js +16 -0
  102. package/esm/controllers/severless.js.map +1 -0
  103. package/esm/controllers/snippet.d.ts +5 -5
  104. package/esm/controllers/snippet.js.map +1 -1
  105. package/esm/controllers/user.d.ts +1 -1
  106. package/esm/controllers/user.js +1 -1
  107. package/esm/controllers/user.js.map +1 -1
  108. package/esm/core/attach-request.js +4 -4
  109. package/esm/core/attach-request.js.map +1 -1
  110. package/esm/core/client.d.ts +0 -1
  111. package/esm/core/client.js +6 -11
  112. package/esm/core/client.js.map +1 -1
  113. package/esm/models/link.d.ts +1 -0
  114. package/esm/models/snippet.d.ts +1 -0
  115. package/esm/utils/path.d.ts +1 -0
  116. package/esm/utils/path.js +7 -0
  117. package/esm/utils/path.js.map +1 -0
  118. package/interfaces/request.ts +2 -2
  119. package/lib/controllers/aggregate.d.ts +1 -1
  120. package/lib/controllers/aggregate.js.map +1 -1
  121. package/lib/controllers/base.d.ts +1 -1
  122. package/lib/controllers/base.js.map +1 -1
  123. package/lib/controllers/category.d.ts +6 -6
  124. package/lib/controllers/category.js +3 -3
  125. package/lib/controllers/category.js.map +1 -1
  126. package/lib/controllers/comment.d.ts +2 -2
  127. package/lib/controllers/comment.js.map +1 -1
  128. package/lib/controllers/index.d.ts +4 -3
  129. package/lib/controllers/index.js +5 -1
  130. package/lib/controllers/index.js.map +1 -1
  131. package/lib/controllers/link.d.ts +6 -2
  132. package/lib/controllers/link.js +10 -1
  133. package/lib/controllers/link.js.map +1 -1
  134. package/lib/controllers/note.d.ts +1 -1
  135. package/lib/controllers/note.js.map +1 -1
  136. package/lib/controllers/page.d.ts +1 -1
  137. package/lib/controllers/page.js.map +1 -1
  138. package/lib/controllers/post.d.ts +1 -1
  139. package/lib/controllers/post.js.map +1 -1
  140. package/lib/controllers/project.d.ts +2 -2
  141. package/lib/controllers/project.js +1 -1
  142. package/lib/controllers/project.js.map +1 -1
  143. package/lib/controllers/recently.d.ts +1 -1
  144. package/lib/controllers/recently.js.map +1 -1
  145. package/lib/controllers/say.d.ts +2 -2
  146. package/lib/controllers/say.js +1 -1
  147. package/lib/controllers/say.js.map +1 -1
  148. package/lib/controllers/search.d.ts +50 -50
  149. package/lib/controllers/search.js.map +1 -1
  150. package/lib/controllers/severless.d.ts +24 -0
  151. package/lib/controllers/severless.js +20 -0
  152. package/lib/controllers/severless.js.map +1 -0
  153. package/lib/controllers/snippet.d.ts +5 -5
  154. package/lib/controllers/snippet.js.map +1 -1
  155. package/lib/controllers/user.d.ts +1 -1
  156. package/lib/controllers/user.js +1 -1
  157. package/lib/controllers/user.js.map +1 -1
  158. package/lib/core/attach-request.js +4 -4
  159. package/lib/core/attach-request.js.map +1 -1
  160. package/lib/core/client.d.ts +0 -1
  161. package/lib/core/client.js +6 -11
  162. package/lib/core/client.js.map +1 -1
  163. package/lib/models/link.d.ts +1 -0
  164. package/lib/models/snippet.d.ts +1 -0
  165. package/lib/utils/path.d.ts +1 -0
  166. package/lib/utils/path.js +11 -0
  167. package/lib/utils/path.js.map +1 -0
  168. package/models/link.ts +1 -0
  169. package/models/snippet.ts +1 -1
  170. package/package.json +4 -3
  171. package/readme.md +84 -0
  172. package/types/controllers/aggregate.d.ts +1 -1
  173. package/types/controllers/base.d.ts +1 -1
  174. package/types/controllers/category.d.ts +6 -6
  175. package/types/controllers/comment.d.ts +2 -2
  176. package/types/controllers/index.d.ts +4 -3
  177. package/types/controllers/link.d.ts +6 -2
  178. package/types/controllers/note.d.ts +1 -1
  179. package/types/controllers/page.d.ts +1 -1
  180. package/types/controllers/post.d.ts +1 -1
  181. package/types/controllers/project.d.ts +2 -2
  182. package/types/controllers/recently.d.ts +1 -1
  183. package/types/controllers/say.d.ts +2 -2
  184. package/types/controllers/search.d.ts +50 -50
  185. package/types/controllers/severless.d.ts +24 -0
  186. package/types/controllers/snippet.d.ts +5 -5
  187. package/types/controllers/user.d.ts +1 -1
  188. package/types/core/client.d.ts +0 -1
  189. package/types/models/link.d.ts +1 -0
  190. package/types/models/snippet.d.ts +1 -0
  191. package/types/utils/path.d.ts +1 -0
  192. package/utils/path.ts +6 -0
package/readme.md ADDED
@@ -0,0 +1,84 @@
1
+ # MApi Client
2
+
3
+ 这是一个适用于 MServer v3 的 JS SDK,封装了常用接口请求方法以及返回类型的声明,以快速开发前端应用。
4
+
5
+ ## 如何使用
6
+
7
+ 此 SDK 框架无关,不捆绑任何一个网络请求库,只需要提供适配器。你需要手动传入符合接口标准的适配器。
8
+
9
+ 此项目提供 `axios` 和 `umi-request` 两个适配器。
10
+
11
+ 以 `axios` 为例。
12
+
13
+ ```ts
14
+ // esm format (spa recommend)
15
+ import { axiosAdaptor } from '@mx-space/api-client/esm/adaptors/axios'
16
+ // cjs format (ssr recommend)
17
+ // import { axiosAdaptor } from '@mx-space/api-client/lib/adaptors/axios'
18
+ import {
19
+ AggregateController,
20
+ CategoryController,
21
+ createClient,
22
+ NoteController,
23
+ PostController,
24
+ allControllers,
25
+ // ...
26
+ } from '@mx-space/api-client'
27
+
28
+ const endpoint = 'https://api.innei.dev/v2'
29
+ const client = createClient(axiosAdaptor)(endpoint)
30
+
31
+ // `default` is AxiosInstance
32
+ // you can do anything else on this
33
+ // interceptor or re-configure
34
+ const $axios = axiosAdaptor.default
35
+ // re-config (optional)
36
+ $axios.defaults.timeout = 10000
37
+ // set interceptors (optional)
38
+ $axios.interceptors.request.use(
39
+ (config) => {
40
+ const token = getToken()
41
+ if (token) {
42
+ config.headers!['Authorization'] = 'bearer ' + getToken()
43
+ }
44
+
45
+ return config
46
+ },
47
+ (error) => {
48
+ if (__DEV__) {
49
+ console.log(error.message)
50
+ }
51
+
52
+ return Promise.reject(error)
53
+ },
54
+ )
55
+
56
+ // inject controller first.
57
+ client.injectControllers([
58
+ PostController,
59
+ NoteController,
60
+ AggregateController,
61
+ CategoryController,
62
+ ])
63
+
64
+ // or you can inject allControllers
65
+ client.injectControllers(allControllers)
66
+
67
+ // then you can request `post` `note` and `aggregate` controller
68
+
69
+ client.post.post.getList(page, 10, { year }).then((data) => {
70
+ // do anything
71
+ })
72
+ ```
73
+
74
+ **为什么要手动注入控制器**
75
+
76
+ 按需加载,可以减少打包体积 (Tree Shake)
77
+
78
+ **为什么不依赖请求库**
79
+
80
+ 可以防止项目中出现两个请求库,减少打包体积
81
+
82
+ **如果不使用 axios,应该如何编写适配器**
83
+
84
+ 参考 `src/adaptors/axios.ts` 和 `src/adaptors/umi-request.ts`
@@ -1,9 +1,9 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { SortOrder } from '../interfaces/options';
4
5
  import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
5
6
  import { AggregateRoot, AggregateStat, AggregateTop, TimelineData, TimelineType } from '../models/aggregate';
6
- import { HTTPClient } from '../core';
7
7
  declare module '../core/client' {
8
8
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
9
  aggregate: AggregateController<ResponseWrapper>;
@@ -1,6 +1,6 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
2
3
  import { PaginateResult } from '../models/base';
3
- import { HTTPClient } from '../core';
4
4
  export declare abstract class BaseCrudController<T, ResponseWrapper> {
5
5
  protected client: HTTPClient;
6
6
  base: string;
@@ -1,9 +1,9 @@
1
- import { IRequestAdapter } from '../interfaces/adapter';
2
- import { IController } from '../interfaces/controller';
3
- import { IRequestHandler, RequestProxyResult, ResponseProxyExtraRaw } from '../interfaces/request';
4
1
  import { HTTPClient } from '../core/client';
5
2
  import { CategoryModel, CategoryType, CategoryWithChildrenModel, TagModel } from '../models/category';
6
3
  import { PostModel } from '../models/post';
4
+ import { IRequestAdapter } from '../interfaces/adapter';
5
+ import { IController } from '../interfaces/controller';
6
+ import { IRequestHandler, RequestProxyResult, ResponseProxyExtraRaw } from '../interfaces/request';
7
7
  declare module '../core/client' {
8
8
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
9
  category: CategoryController<ResponseWrapper>;
@@ -24,7 +24,7 @@ export declare class CategoryController<ResponseWrapper> implements IController
24
24
  getCategoryDetail(id: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel>>;
25
25
  getCategoryDetail(ids: string[]): Promise<ResponseProxyExtraRaw<Map<string, CategoryWithChildrenModel>>>;
26
26
  getCategoryByIdOrSlug(idOrSlug: string): Promise<CategoryModel & {
27
- children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
27
+ children: Pick<PostModel, "id" | "title" | "slug" | "created" | "modified">[];
28
28
  } & {
29
29
  $raw: ResponseWrapper extends {
30
30
  data: infer T;
@@ -44,7 +44,7 @@ export declare class CategoryController<ResponseWrapper> implements IController
44
44
  name: string;
45
45
  created: string;
46
46
  id: string;
47
- children: Pick<PostModel, "id" | "title" | "slug" | "modified" | "created">[];
47
+ children: Pick<PostModel, "id" | "title" | "slug" | "created" | "modified">[];
48
48
  } : ResponseWrapper extends unknown ? {
49
49
  [key: string]: any;
50
50
  data: CategoryWithChildrenModel;
@@ -86,7 +86,7 @@ export declare class CategoryController<ResponseWrapper> implements IController
86
86
  };
87
87
  }) extends unknown ? {
88
88
  tag: string;
89
- data: Pick<PostModel, "id" | "title" | "slug" | "created" | "category">[];
89
+ data: Pick<PostModel, "category" | "id" | "title" | "slug" | "created">[];
90
90
  } : ResponseWrapper extends unknown ? {
91
91
  [key: string]: any;
92
92
  data: {
@@ -1,11 +1,11 @@
1
+ import { HTTPClient } from '../core';
2
+ import { CommentDto } from '../dtos/comment';
1
3
  import { IRequestAdapter } from '../interfaces/adapter';
2
4
  import { IController } from '../interfaces/controller';
3
5
  import { PaginationParams } from '../interfaces/params';
4
6
  import { IRequestHandler } from '../interfaces/request';
5
7
  import { PaginateResult } from '../models/base';
6
8
  import { CommentModel } from '../models/comment';
7
- import { HTTPClient } from '../core';
8
- import { CommentDto } from '../dtos/comment';
9
9
  declare module '../core/client' {
10
10
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
11
11
  comment: CommentController<ResponseWrapper>;
@@ -9,8 +9,9 @@ import { ProjectController } from './project';
9
9
  import { RecentlyController } from './recently';
10
10
  import { SayController } from './say';
11
11
  import { SearchController } from './search';
12
+ import { ServerlessController } from './severless';
12
13
  import { SnippetController } from './snippet';
13
14
  import { UserController } from './user';
14
- 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)[];
15
- export declare const allContollerNames: readonly ["aggregate", "category", "comment", "link", "note", "page", "post", "project", "recently", "say", "search", "snippet", "user", "friend", "master", "shorthand"];
16
- export { AggregateController, CategoryController, CommentController, LinkController, NoteController, PageController, PostController, ProjectController, RecentlyController, SayController, SearchController, SnippetController, UserController, };
15
+ 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 ServerlessController | typeof SnippetController | typeof UserController)[];
16
+ export declare const allContollerNames: readonly ["aggregate", "category", "comment", "link", "note", "page", "post", "project", "recently", "say", "search", "snippet", "serverless", "user", "friend", "master", "shorthand"];
17
+ export { AggregateController, CategoryController, CommentController, LinkController, NoteController, PageController, PostController, ProjectController, RecentlyController, SayController, SearchController, SnippetController, ServerlessController, UserController, };
@@ -1,7 +1,7 @@
1
- import { IRequestAdapter } from '../interfaces/adapter';
2
- import { LinkModel } from '../models/link';
3
1
  import { HTTPClient } from '../core';
4
2
  import { BaseCrudController } from './base';
3
+ import { IRequestAdapter } from '../interfaces/adapter';
4
+ import { LinkModel } from '../models/link';
5
5
  declare module '../core/client' {
6
6
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
7
7
  link: LinkController<ResponseWrapper>;
@@ -11,6 +11,10 @@ declare module '../core/client' {
11
11
  export declare class LinkController<ResponseWrapper> extends BaseCrudController<LinkModel, ResponseWrapper> {
12
12
  protected readonly client: HTTPClient;
13
13
  constructor(client: HTTPClient);
14
+ canApplyLink(): Promise<boolean>;
15
+ applyLink(data: Pick<LinkModel, 'avatar' | 'name' | 'description' | 'url'> & {
16
+ author: string;
17
+ }): Promise<never>;
14
18
  name: string[];
15
19
  base: string;
16
20
  }
@@ -1,10 +1,10 @@
1
+ import { HTTPClient } from '../core/client';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler } from '../interfaces/request';
4
5
  import { SelectFields } from '../interfaces/types';
5
6
  import { PaginateResult } from '../models/base';
6
7
  import { NoteModel, NoteWrappedPayload } from '../models/note';
7
- import { HTTPClient } from '../core/client';
8
8
  declare module '../core/client' {
9
9
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
10
10
  note: NoteController<ResponseWrapper>;
@@ -1,10 +1,10 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler } from '../interfaces/request';
4
5
  import { SelectFields } from '../interfaces/types';
5
6
  import { PaginateResult } from '../models/base';
6
7
  import { PageModel } from '../models/page';
7
- import { HTTPClient } from '../core';
8
8
  declare module '../core/client' {
9
9
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
10
10
  page: PageController<ResponseWrapper>;
@@ -1,10 +1,10 @@
1
+ import { HTTPClient } from '../core/client';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
4
5
  import { SelectFields } from '../interfaces/types';
5
6
  import { PaginateResult } from '../models/base';
6
7
  import { PostModel } from '../models/post';
7
- import { HTTPClient } from '../core/client';
8
8
  declare module '../core/client' {
9
9
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
10
10
  post: PostController<ResponseWrapper>;
@@ -1,7 +1,7 @@
1
- import { IRequestAdapter } from '../interfaces/adapter';
2
- import { ProjectModel } from '../models/project';
3
1
  import { HTTPClient } from '../core';
4
2
  import { BaseCrudController } from './base';
3
+ import { IRequestAdapter } from '../interfaces/adapter';
4
+ import { ProjectModel } from '../models/project';
5
5
  declare module '../core/client' {
6
6
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
7
7
  project: ProjectController<ResponseWrapper>;
@@ -1,8 +1,8 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler } from '../interfaces/request';
4
5
  import { RecentlyModel } from '../models/recently';
5
- import { HTTPClient } from '../core';
6
6
  declare module '../core/client' {
7
7
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
8
  recently: RecentlyController<ResponseWrapper>;
@@ -1,9 +1,9 @@
1
+ import { HTTPClient } from '../core';
2
+ import { BaseCrudController } from './base';
1
3
  import { IRequestAdapter } from '../interfaces/adapter';
2
4
  import { IController } from '../interfaces/controller';
3
5
  import { IRequestHandler } from '../interfaces/request';
4
6
  import { SayModel } from '../models/say';
5
- import { HTTPClient } from '../core';
6
- import { BaseCrudController } from './base';
7
7
  declare module '../core/client' {
8
8
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
9
9
  say: SayController<ResponseWrapper>;
@@ -1,11 +1,11 @@
1
+ import { PageModel } from '..';
2
+ import { HTTPClient } from '../core';
1
3
  import { IRequestAdapter } from '../interfaces/adapter';
2
4
  import { IController } from '../interfaces/controller';
3
5
  import { IRequestHandler, RequestProxyResult } from '../interfaces/request';
4
6
  import { PaginateResult } from '../models/base';
5
7
  import { NoteModel } from '../models/note';
6
8
  import { PostModel } from '../models/post';
7
- import { PageModel } from '..';
8
- import { HTTPClient } from '../core';
9
9
  declare module '../core/client' {
10
10
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
11
11
  search: SearchController<ResponseWrapper>;
@@ -32,11 +32,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
32
32
  * @param options
33
33
  * @returns
34
34
  */
35
- searchByAlgolia(keyword: string, options?: SearchOption): RequestProxyResult<RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
35
+ searchByAlgolia(keyword: string, options?: SearchOption): RequestProxyResult<RequestProxyResult<PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
36
36
  type: 'post';
37
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
37
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
38
38
  type: 'note';
39
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
39
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
40
40
  type: 'page';
41
41
  })> & {
42
42
  /**
@@ -45,11 +45,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
45
45
  raw?: any;
46
46
  }, ResponseWrapper, ResponseWrapper extends unknown ? {
47
47
  [key: string]: any;
48
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
48
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
49
49
  type: 'post';
50
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
50
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
51
51
  type: 'note';
52
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
52
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
53
53
  type: 'page';
54
54
  })> & {
55
55
  /**
@@ -58,11 +58,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
58
58
  raw?: any;
59
59
  };
60
60
  } : ResponseWrapper extends {
61
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
61
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
62
62
  type: 'post';
63
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
63
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
64
64
  type: 'note';
65
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
65
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
66
66
  type: 'page';
67
67
  })> & {
68
68
  /**
@@ -71,11 +71,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
71
71
  raw?: any;
72
72
  };
73
73
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
74
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
74
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
75
75
  type: 'post';
76
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
76
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
77
77
  type: 'note';
78
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
78
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
79
79
  type: 'page';
80
80
  })> & {
81
81
  /**
@@ -85,11 +85,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
85
85
  };
86
86
  }>, ResponseWrapper, ResponseWrapper extends unknown ? {
87
87
  [key: string]: any;
88
- data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
88
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
89
89
  type: 'post';
90
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
90
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
91
91
  type: 'note';
92
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
92
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
93
93
  type: 'page';
94
94
  })> & {
95
95
  /**
@@ -98,11 +98,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
98
98
  raw?: any;
99
99
  }, ResponseWrapper, ResponseWrapper extends unknown ? {
100
100
  [key: string]: any;
101
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
101
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
102
102
  type: 'post';
103
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
103
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
104
104
  type: 'note';
105
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
105
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
106
106
  type: 'page';
107
107
  })> & {
108
108
  /**
@@ -111,11 +111,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
111
111
  raw?: any;
112
112
  };
113
113
  } : ResponseWrapper extends {
114
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
114
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
115
115
  type: 'post';
116
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
116
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
117
117
  type: 'note';
118
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
118
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
119
119
  type: 'page';
120
120
  })> & {
121
121
  /**
@@ -124,11 +124,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
124
124
  raw?: any;
125
125
  };
126
126
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
127
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
127
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
128
128
  type: 'post';
129
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
129
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
130
130
  type: 'note';
131
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
131
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
132
132
  type: 'page';
133
133
  })> & {
134
134
  /**
@@ -138,11 +138,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
138
138
  };
139
139
  }>;
140
140
  } : ResponseWrapper extends {
141
- data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
141
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
142
142
  type: 'post';
143
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
143
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
144
144
  type: 'note';
145
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
145
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
146
146
  type: 'page';
147
147
  })> & {
148
148
  /**
@@ -151,11 +151,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
151
151
  raw?: any;
152
152
  }, ResponseWrapper, ResponseWrapper extends unknown ? {
153
153
  [key: string]: any;
154
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
154
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
155
155
  type: 'post';
156
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
156
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
157
157
  type: 'note';
158
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
158
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
159
159
  type: 'page';
160
160
  })> & {
161
161
  /**
@@ -164,11 +164,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
164
164
  raw?: any;
165
165
  };
166
166
  } : ResponseWrapper extends {
167
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
167
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
168
168
  type: 'post';
169
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
169
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
170
170
  type: 'note';
171
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
171
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
172
172
  type: 'page';
173
173
  })> & {
174
174
  /**
@@ -177,11 +177,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
177
177
  raw?: any;
178
178
  };
179
179
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
180
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
180
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
181
181
  type: 'post';
182
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
182
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
183
183
  type: 'note';
184
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
184
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
185
185
  type: 'page';
186
186
  })> & {
187
187
  /**
@@ -191,11 +191,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
191
191
  };
192
192
  }>;
193
193
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
194
- data: RequestProxyResult<PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
194
+ data: RequestProxyResult<PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
195
195
  type: 'post';
196
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
196
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
197
197
  type: 'note';
198
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
198
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
199
199
  type: 'page';
200
200
  })> & {
201
201
  /**
@@ -204,11 +204,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
204
204
  raw?: any;
205
205
  }, ResponseWrapper, ResponseWrapper extends unknown ? {
206
206
  [key: string]: any;
207
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
207
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
208
208
  type: 'post';
209
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
209
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
210
210
  type: 'note';
211
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
211
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
212
212
  type: 'page';
213
213
  })> & {
214
214
  /**
@@ -217,11 +217,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
217
217
  raw?: any;
218
218
  };
219
219
  } : ResponseWrapper extends {
220
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
220
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
221
221
  type: 'post';
222
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
222
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
223
223
  type: 'note';
224
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
224
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
225
225
  type: 'page';
226
226
  })> & {
227
227
  /**
@@ -230,11 +230,11 @@ export declare class SearchController<ResponseWrapper> implements IController {
230
230
  raw?: any;
231
231
  };
232
232
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
233
- data: PaginateResult<(Pick<PostModel, "id" | "title" | "slug" | "modified" | "created" | "category"> & {
233
+ data: PaginateResult<(Pick<PostModel, "category" | "id" | "title" | "slug" | "created" | "modified"> & {
234
234
  type: 'post';
235
- }) | (Pick<NoteModel, "id" | "title" | "modified" | "created" | "nid"> & {
235
+ }) | (Pick<NoteModel, "id" | "title" | "created" | "modified" | "nid"> & {
236
236
  type: 'note';
237
- }) | (Pick<PageModel, "id" | "title" | "slug" | "modified" | "created"> & {
237
+ }) | (Pick<PageModel, "id" | "title" | "slug" | "created" | "modified"> & {
238
238
  type: 'page';
239
239
  })> & {
240
240
  /**
@@ -0,0 +1,24 @@
1
+ import { HTTPClient } from '../core';
2
+ import { IRequestAdapter } from '../interfaces/adapter';
3
+ import { IController } from '../interfaces/controller';
4
+ import { IRequestHandler } from '../interfaces/request';
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
+ }
@@ -1,8 +1,8 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler } from '../interfaces/request';
4
5
  import { SnippetModel } from '../models/snippet';
5
- import { HTTPClient } from '../core';
6
6
  declare module '../core/client' {
7
7
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
8
  snippet: SnippetController<ResponseWrapper>;
@@ -14,13 +14,13 @@ export declare class SnippetController<ResponseWrapper> implements IController {
14
14
  name: string;
15
15
  constructor(client: HTTPClient);
16
16
  get proxy(): IRequestHandler<ResponseWrapper>;
17
- getById<T = unknown>(id: string): import("../interfaces/request").RequestProxyResult<SnippetModel<T>, ResponseWrapper, ResponseWrapper extends unknown ? {
17
+ getById(id: string): import("../interfaces/request").RequestProxyResult<Omit<SnippetModel<unknown>, "data">, ResponseWrapper, ResponseWrapper extends unknown ? {
18
18
  [key: string]: any;
19
- data: SnippetModel<T>;
19
+ data: Omit<SnippetModel<unknown>, "data">;
20
20
  } : ResponseWrapper extends {
21
- data: SnippetModel<T>;
21
+ data: Omit<SnippetModel<unknown>, "data">;
22
22
  } ? ResponseWrapper : Omit<ResponseWrapper, "data"> & {
23
- data: SnippetModel<T>;
23
+ data: Omit<SnippetModel<unknown>, "data">;
24
24
  }>;
25
25
  getByReferenceAndName<T = unknown>(reference: string, name: string): import("../interfaces/request").RequestProxyResult<T, ResponseWrapper, ResponseWrapper extends unknown ? {
26
26
  [key: string]: any;
@@ -1,8 +1,8 @@
1
+ import { HTTPClient } from '../core';
1
2
  import { IRequestAdapter } from '../interfaces/adapter';
2
3
  import { IController } from '../interfaces/controller';
3
4
  import { IRequestHandler } from '../interfaces/request';
4
5
  import { TLogin, UserModel } from '../models/user';
5
- import { HTTPClient } from '../core';
6
6
  declare module '../core/client' {
7
7
  interface HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWrapper = unknown> {
8
8
  user: UserController<ResponseWrapper>;
@@ -21,7 +21,6 @@ declare class HTTPClient<T extends IRequestAdapter = IRequestAdapter, ResponseWr
21
21
  params?: any;
22
22
  }): Promise<IAdaptorRequestResponseType<any>>;
23
23
  get proxy(): IRequestHandler<ResponseWrapper>;
24
- private resolveFullPath;
25
24
  private buildRoute;
26
25
  }
27
26
  export declare function createClient<T extends IRequestAdapter>(adapter: T): <ResponseWrapper = T extends {
@@ -17,4 +17,5 @@ export interface LinkModel extends BaseModel {
17
17
  type: LinkType;
18
18
  state: LinkState;
19
19
  hide: boolean;
20
+ email: string;
20
21
  }
@@ -12,5 +12,6 @@ export interface SnippetModel<T = unknown> extends BaseModel {
12
12
  reference: string;
13
13
  comment?: string;
14
14
  metatype?: string;
15
+ schema?: string;
15
16
  data: T;
16
17
  }
@@ -0,0 +1 @@
1
+ export declare const resolveFullPath: (endpoint: string, path: string) => string;