@mx-space/api-client 0.0.5 → 0.3.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 (170) hide show
  1. package/build/index.cjs.js +411 -53
  2. package/build/index.cjs.js.map +1 -1
  3. package/build/index.cjs.min.js +1 -1
  4. package/build/index.cjs.min.js.map +1 -1
  5. package/build/index.d.ts +463 -108
  6. package/build/index.esm.js +411 -53
  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 +411 -53
  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/esm/core/attachRequest.js +4 -0
  15. package/esm/core/attachRequest.js.map +1 -1
  16. package/esm/core/client.d.ts +2 -9
  17. package/esm/core/client.js +16 -2
  18. package/esm/core/client.js.map +1 -1
  19. package/esm/core/controllers/aggregate.d.ts +44 -0
  20. package/esm/core/controllers/aggregate.js +40 -0
  21. package/esm/core/controllers/aggregate.js.map +1 -0
  22. package/esm/core/controllers/all.d.ts +13 -2
  23. package/esm/core/controllers/all.js +38 -9
  24. package/esm/core/controllers/all.js.map +1 -1
  25. package/esm/core/controllers/base.d.ts +29 -0
  26. package/esm/core/controllers/base.js +25 -0
  27. package/esm/core/controllers/base.js.map +1 -0
  28. package/esm/core/controllers/category.d.ts +44 -0
  29. package/esm/core/controllers/category.js +66 -0
  30. package/esm/core/controllers/category.js.map +1 -0
  31. package/esm/core/controllers/index.d.ts +0 -2
  32. package/esm/core/controllers/index.js +0 -3
  33. package/esm/core/controllers/index.js.map +1 -1
  34. package/esm/core/controllers/link.d.ts +9 -0
  35. package/esm/core/controllers/link.js +10 -0
  36. package/esm/core/controllers/link.js.map +1 -0
  37. package/esm/core/controllers/project.d.ts +9 -0
  38. package/esm/core/controllers/project.js +10 -0
  39. package/esm/core/controllers/project.js.map +1 -0
  40. package/esm/core/controllers/recently.d.ts +33 -0
  41. package/esm/core/controllers/recently.js +32 -0
  42. package/esm/core/controllers/recently.js.map +1 -0
  43. package/esm/core/controllers/say.d.ts +22 -0
  44. package/esm/core/controllers/say.js +19 -0
  45. package/esm/core/controllers/say.js.map +1 -0
  46. package/esm/core/controllers/search.d.ts +58 -0
  47. package/esm/core/controllers/search.js +26 -0
  48. package/esm/core/controllers/search.js.map +1 -0
  49. package/esm/core/controllers/snippet.d.ts +18 -0
  50. package/esm/core/controllers/snippet.js +17 -0
  51. package/esm/core/controllers/snippet.js.map +1 -0
  52. package/esm/core/controllers/user.d.ts +28 -0
  53. package/esm/core/controllers/user.js +29 -0
  54. package/esm/core/controllers/user.js.map +1 -0
  55. package/esm/core/define.d.ts +19 -0
  56. package/esm/core/define.js +12 -0
  57. package/esm/core/define.js.map +1 -0
  58. package/esm/interfaces/options.d.ts +1 -0
  59. package/esm/interfaces/options.js +2 -0
  60. package/esm/interfaces/options.js.map +1 -0
  61. package/esm/interfaces/request.d.ts +9 -3
  62. package/esm/models/aggregate.d.ts +47 -0
  63. package/esm/models/aggregate.js +6 -0
  64. package/esm/models/aggregate.js.map +1 -0
  65. package/esm/models/category.d.ts +24 -0
  66. package/esm/models/category.js +6 -0
  67. package/esm/models/category.js.map +1 -0
  68. package/esm/models/link.d.ts +17 -0
  69. package/esm/models/link.js +11 -0
  70. package/esm/models/link.js.map +1 -0
  71. package/esm/models/project.d.ts +16 -0
  72. package/esm/models/project.js +2 -0
  73. package/esm/models/project.js.map +1 -0
  74. package/esm/models/recently.d.ts +5 -0
  75. package/esm/models/recently.js +2 -0
  76. package/esm/models/recently.js.map +1 -0
  77. package/esm/models/say.d.ts +6 -0
  78. package/esm/models/say.js +2 -0
  79. package/esm/models/say.js.map +1 -0
  80. package/esm/models/setting.d.ts +66 -0
  81. package/esm/models/setting.js +2 -0
  82. package/esm/models/setting.js.map +1 -0
  83. package/esm/models/snippet.d.ts +14 -0
  84. package/esm/models/snippet.js +7 -0
  85. package/esm/models/snippet.js.map +1 -0
  86. package/esm/models/user.d.ts +29 -0
  87. package/esm/models/user.js +2 -0
  88. package/esm/models/user.js.map +1 -0
  89. package/esm/utils/index.d.ts +4 -0
  90. package/esm/utils/index.js +38 -0
  91. package/esm/utils/index.js.map +1 -1
  92. package/lib/core/attachRequest.js +4 -0
  93. package/lib/core/attachRequest.js.map +1 -1
  94. package/lib/core/client.d.ts +2 -9
  95. package/lib/core/client.js +16 -2
  96. package/lib/core/client.js.map +1 -1
  97. package/lib/core/controllers/aggregate.d.ts +44 -0
  98. package/lib/core/controllers/aggregate.js +44 -0
  99. package/lib/core/controllers/aggregate.js.map +1 -0
  100. package/lib/core/controllers/all.d.ts +13 -2
  101. package/lib/core/controllers/all.js +52 -11
  102. package/lib/core/controllers/all.js.map +1 -1
  103. package/lib/core/controllers/base.d.ts +29 -0
  104. package/lib/core/controllers/base.js +29 -0
  105. package/lib/core/controllers/base.js.map +1 -0
  106. package/lib/core/controllers/category.d.ts +44 -0
  107. package/lib/core/controllers/category.js +70 -0
  108. package/lib/core/controllers/category.js.map +1 -0
  109. package/lib/core/controllers/index.d.ts +0 -2
  110. package/lib/core/controllers/index.js +0 -3
  111. package/lib/core/controllers/index.js.map +1 -1
  112. package/lib/core/controllers/link.d.ts +9 -0
  113. package/lib/core/controllers/link.js +14 -0
  114. package/lib/core/controllers/link.js.map +1 -0
  115. package/lib/core/controllers/project.d.ts +9 -0
  116. package/lib/core/controllers/project.js +14 -0
  117. package/lib/core/controllers/project.js.map +1 -0
  118. package/lib/core/controllers/recently.d.ts +33 -0
  119. package/lib/core/controllers/recently.js +36 -0
  120. package/lib/core/controllers/recently.js.map +1 -0
  121. package/lib/core/controllers/say.d.ts +22 -0
  122. package/lib/core/controllers/say.js +23 -0
  123. package/lib/core/controllers/say.js.map +1 -0
  124. package/lib/core/controllers/search.d.ts +58 -0
  125. package/lib/core/controllers/search.js +30 -0
  126. package/lib/core/controllers/search.js.map +1 -0
  127. package/lib/core/controllers/snippet.d.ts +18 -0
  128. package/lib/core/controllers/snippet.js +21 -0
  129. package/lib/core/controllers/snippet.js.map +1 -0
  130. package/lib/core/controllers/user.d.ts +28 -0
  131. package/lib/core/controllers/user.js +33 -0
  132. package/lib/core/controllers/user.js.map +1 -0
  133. package/lib/core/define.d.ts +19 -0
  134. package/lib/core/define.js +16 -0
  135. package/lib/core/define.js.map +1 -0
  136. package/lib/interfaces/options.d.ts +1 -0
  137. package/lib/interfaces/options.js +3 -0
  138. package/lib/interfaces/options.js.map +1 -0
  139. package/lib/interfaces/request.d.ts +9 -3
  140. package/lib/models/aggregate.d.ts +47 -0
  141. package/lib/models/aggregate.js +9 -0
  142. package/lib/models/aggregate.js.map +1 -0
  143. package/lib/models/category.d.ts +24 -0
  144. package/lib/models/category.js +9 -0
  145. package/lib/models/category.js.map +1 -0
  146. package/lib/models/link.d.ts +17 -0
  147. package/lib/models/link.js +14 -0
  148. package/lib/models/link.js.map +1 -0
  149. package/lib/models/project.d.ts +16 -0
  150. package/lib/models/project.js +3 -0
  151. package/lib/models/project.js.map +1 -0
  152. package/lib/models/recently.d.ts +5 -0
  153. package/lib/models/recently.js +3 -0
  154. package/lib/models/recently.js.map +1 -0
  155. package/lib/models/say.d.ts +6 -0
  156. package/lib/models/say.js +3 -0
  157. package/lib/models/say.js.map +1 -0
  158. package/lib/models/setting.d.ts +66 -0
  159. package/lib/models/setting.js +3 -0
  160. package/lib/models/setting.js.map +1 -0
  161. package/lib/models/snippet.d.ts +14 -0
  162. package/lib/models/snippet.js +10 -0
  163. package/lib/models/snippet.js.map +1 -0
  164. package/lib/models/user.d.ts +29 -0
  165. package/lib/models/user.js +3 -0
  166. package/lib/models/user.js.map +1 -0
  167. package/lib/utils/index.d.ts +4 -0
  168. package/lib/utils/index.js +42 -1
  169. package/lib/utils/index.js.map +1 -1
  170. package/package.json +11 -11
@@ -1,16 +1,45 @@
1
- import { NoteController, PostController } from '.';
1
+ import { AggregateController } from './aggregate';
2
+ import { CategoryController } from './category';
2
3
  import { CommentController } from './comment';
4
+ import { LinkController } from './link';
5
+ import { NoteController } from './note';
3
6
  import { PageController } from './page';
7
+ import { PostController } from './post';
8
+ import { ProjectController } from './project';
9
+ import { RecentlyController } from './recently';
10
+ import { SayController } from './say';
11
+ import { SearchController } from './search';
12
+ import { SnippetController } from './snippet';
13
+ import { UserController } from './user';
4
14
  export const allControllers = [
15
+ AggregateController,
16
+ CategoryController,
17
+ CommentController,
18
+ LinkController,
5
19
  NoteController,
6
- PostController,
7
20
  PageController,
8
- CommentController,
21
+ PostController,
22
+ ProjectController,
23
+ RecentlyController,
24
+ SayController,
25
+ SearchController,
26
+ SnippetController,
27
+ UserController,
28
+ ];
29
+ export const allContollerNames = [
30
+ 'aggregate',
31
+ 'category',
32
+ 'comment',
33
+ 'link',
34
+ 'note',
35
+ 'page',
36
+ 'post',
37
+ 'project',
38
+ 'recently',
39
+ 'say',
40
+ 'search',
41
+ 'snippet',
42
+ 'user',
9
43
  ];
10
- // export const allClientName = allClients.map((c) =>
11
- // c.name.replace('Client', '').toLowerCase(),
12
- // )
13
- // Why not code like before
14
- // In order to tree shake unnecessary client
15
- export const allContollerNames = ['note', 'post', 'page', 'comment'];
44
+ export { AggregateController, CategoryController, CommentController, LinkController, NoteController, PageController, PostController, ProjectController, RecentlyController, SayController, SearchController, SnippetController, UserController, };
16
45
  //# sourceMappingURL=all.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../../src/core/controllers/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;CAClB,CAAA;AAED,qDAAqD;AACrD,gDAAgD;AAChD,IAAI;AACJ,2BAA2B;AAC3B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"all.js","sourceRoot":"","sources":["../../../src/core/controllers/all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAEvC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,mBAAmB;IACnB,kBAAkB;IAClB,iBAAiB;IACjB,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,iBAAiB;IACjB,kBAAkB;IAClB,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;CACf,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW;IACX,UAAU;IACV,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,UAAU;IACV,KAAK;IACL,QAAQ;IACR,SAAS;IACT,MAAM;CACP,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,GACf,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { PaginateResult } from "../../models/base";
2
+ import { HTTPClient } from '..';
3
+ export declare abstract class BaseCrudController<T> {
4
+ protected client: HTTPClient;
5
+ base: string;
6
+ constructor(client: HTTPClient);
7
+ protected get proxy(): import("../../interfaces/request").IRequestHandler;
8
+ getById(id: string): import("../../interfaces/request").RequestProxyResult<T, {
9
+ [key: string]: any;
10
+ data: T;
11
+ }>;
12
+ getAll(): import("../../interfaces/request").RequestProxyResult<{
13
+ data: T[];
14
+ }, {
15
+ [key: string]: any;
16
+ data: {
17
+ data: T[];
18
+ };
19
+ }>;
20
+ /**
21
+ * 带分页的查询
22
+ * @param page
23
+ * @param perPage
24
+ */
25
+ getAllPaginated(page?: number, perPage?: number): import("../../interfaces/request").RequestProxyResult<PaginateResult<T>, {
26
+ [key: string]: any;
27
+ data: PaginateResult<T>;
28
+ }>;
29
+ }
@@ -0,0 +1,25 @@
1
+ export class BaseCrudController {
2
+ constructor(client) {
3
+ this.client = client;
4
+ }
5
+ get proxy() {
6
+ return this.client.proxy(this.base);
7
+ }
8
+ getById(id) {
9
+ return this.proxy(id).get();
10
+ }
11
+ getAll() {
12
+ return this.proxy.all.get();
13
+ }
14
+ /**
15
+ * 带分页的查询
16
+ * @param page
17
+ * @param perPage
18
+ */
19
+ getAllPaginated(page, perPage) {
20
+ return this.proxy.get({
21
+ params: { page, size: perPage },
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/core/controllers/base.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,kBAAkB;IAEtC,YAAsB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAC5C,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAK,CAAA;IAChC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAiB,CAAA;IAC5C,CAAC;IACD;;;;OAIG;IACH,eAAe,CAAC,IAAa,EAAE,OAAgB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB;YACvC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;SAChC,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,44 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { ResponseProxyExtraRaw } from "../../interfaces/request";
3
+ import { CategoryWithChildrenModel, TagModel } from "../../models/category";
4
+ import { CategoryModel, PostModel } from "../../models/post";
5
+ import { HTTPClient } from '..';
6
+ export declare class CategoryController implements IController {
7
+ private client;
8
+ name: string;
9
+ base: string;
10
+ constructor(client: HTTPClient);
11
+ private get proxy();
12
+ getAllCategories(): import("../../interfaces/request").RequestProxyResult<{
13
+ data: CategoryModel[];
14
+ }, {
15
+ [key: string]: any;
16
+ data: {
17
+ data: CategoryModel[];
18
+ };
19
+ }>;
20
+ getAllTags(): import("../../interfaces/request").RequestProxyResult<{
21
+ data: TagModel[];
22
+ }, {
23
+ [key: string]: any;
24
+ data: {
25
+ data: TagModel[];
26
+ };
27
+ }>;
28
+ getCategoryDetail(id: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel>>;
29
+ getCategoryDetail(ids: string[]): Promise<ResponseProxyExtraRaw<Map<string, CategoryWithChildrenModel>>>;
30
+ getCategoryByIdOrSlug(idOrSlug: string): Promise<ResponseProxyExtraRaw<CategoryWithChildrenModel, {
31
+ [key: string]: any;
32
+ data: CategoryWithChildrenModel;
33
+ }>>;
34
+ getTagByName(name: string): Promise<ResponseProxyExtraRaw<{
35
+ tag: string;
36
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
37
+ }, {
38
+ [key: string]: any;
39
+ data: {
40
+ tag: string;
41
+ data: Pick<PostModel, 'id' | 'title' | 'slug' | 'category' | 'created'>[];
42
+ };
43
+ }>>;
44
+ }
@@ -0,0 +1,66 @@
1
+ import { CategoryType, } from "../../models/category";
2
+ import { attachRawFromOneToAnthor, destructureData } from "../../utils";
3
+ import { RequestError } from '..';
4
+ export class CategoryController {
5
+ constructor(client) {
6
+ this.client = client;
7
+ this.name = 'category';
8
+ this.base = 'categories';
9
+ }
10
+ get proxy() {
11
+ return this.client.proxy(this.base);
12
+ }
13
+ getAllCategories() {
14
+ return this.proxy.get({
15
+ params: {
16
+ type: CategoryType.Category,
17
+ },
18
+ });
19
+ }
20
+ getAllTags() {
21
+ return this.proxy.get({
22
+ params: {
23
+ type: CategoryType.Tag,
24
+ },
25
+ });
26
+ }
27
+ async getCategoryDetail(ids) {
28
+ if (typeof ids === 'string') {
29
+ const data = await this.proxy.get({
30
+ params: {
31
+ ids: ids,
32
+ },
33
+ });
34
+ const result = Object.values(data.entries)[0];
35
+ attachRawFromOneToAnthor(data, result);
36
+ return result;
37
+ }
38
+ else if (Array.isArray(ids)) {
39
+ const data = await this.proxy.get({
40
+ params: {
41
+ ids: ids.join(','),
42
+ },
43
+ });
44
+ const entries = data === null || data === void 0 ? void 0 : data.entries;
45
+ if (!entries) {
46
+ throw new RequestError('data structure error', 500, data.$request.path, data);
47
+ }
48
+ const map = new Map(Object.entries(entries).map(([id, value]) => [id.toLowerCase(), value]));
49
+ attachRawFromOneToAnthor(data, map);
50
+ return map;
51
+ }
52
+ }
53
+ async getCategoryByIdOrSlug(idOrSlug) {
54
+ const res = await this.proxy(idOrSlug).get();
55
+ return destructureData(res);
56
+ }
57
+ async getTagByName(name) {
58
+ const res = await this.proxy(name).get({
59
+ params: {
60
+ tag: 1,
61
+ },
62
+ });
63
+ return res;
64
+ }
65
+ }
66
+ //# sourceMappingURL=category.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.js","sourceRoot":"","sources":["../../../src/core/controllers/category.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,GAGb,8BAAyB;AAE1B,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,oBAAe;AACnE,OAAO,EAAc,YAAY,EAAE,MAAM,IAAI,CAAA;AAE7C,MAAM,OAAO,kBAAkB;IAG7B,YAAoB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAFtC,SAAI,GAAG,UAAU,CAAA;QACjB,SAAI,GAAG,YAAY,CAAA;IACsB,CAAC;IAE1C,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B;YAC/C,MAAM,EAAE;gBACN,IAAI,EAAE,YAAY,CAAC,QAAQ;aAC5B;SACF,CAAC,CAAA;IACJ,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAuB;YAC1C,MAAM,EAAE;gBACN,IAAI,EAAE,YAAY,CAAC,GAAG;aACvB;SACF,CAAC,CAAA;IACJ,CAAC;IAQD,KAAK,CAAC,iBAAiB,CAAC,GAAsB;QAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB;gBACjD,MAAM,EAAE;oBACN,GAAG,EAAE,GAAG;iBACT;aACF,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACtC,OAAO,MAAM,CAAA;SACd;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB;gBACjD,MAAM,EAAE;oBACN,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;iBACnB;aACF,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA;YAC7B,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,YAAY,CACpB,sBAAsB,EACtB,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,IAAI,CACL,CAAA;aACF;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC,CACxE,CAAA;YAED,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACnC,OAAO,GAAG,CAAA;SACX;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QAC1C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAA6B,CAAA;QACvE,OAAO,eAAe,CAAC,GAAG,CAAe,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAGnC;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,CAAC;aACP;SACF,CAAC,CAAA;QAEF,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -1,3 +1 @@
1
- export * from './note';
2
- export * from './post';
3
1
  export * from './all';
@@ -1,5 +1,2 @@
1
- export * from './note';
2
- export * from './post';
3
- // organize-imports-ignore
4
1
  export * from './all';
5
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,0BAA0B;AAC1B,cAAc,OAAO,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { LinkModel } from "../../models/link";
2
+ import { HTTPClient } from '..';
3
+ import { BaseCrudController } from './base';
4
+ export declare class LinkController extends BaseCrudController<LinkModel> {
5
+ protected readonly client: HTTPClient;
6
+ constructor(client: HTTPClient);
7
+ name: string;
8
+ base: string;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseCrudController } from './base';
2
+ export class LinkController extends BaseCrudController {
3
+ constructor(client) {
4
+ super(client);
5
+ this.client = client;
6
+ this.name = 'link';
7
+ this.base = 'links';
8
+ }
9
+ }
10
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/core/controllers/link.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,OAAO,cAAe,SAAQ,kBAA6B;IAC/D,YAA+B,MAAkB;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAA;QADgB,WAAM,GAAN,MAAM,CAAY;QAIjD,SAAI,GAAG,MAAM,CAAA;QACb,SAAI,GAAG,OAAO,CAAA;IAHd,CAAC;CAIF"}
@@ -0,0 +1,9 @@
1
+ import { ProjectModel } from "../../models/project";
2
+ import { HTTPClient } from '..';
3
+ import { BaseCrudController } from './base';
4
+ export declare class ProjectController extends BaseCrudController<ProjectModel> {
5
+ protected readonly client: HTTPClient;
6
+ constructor(client: HTTPClient);
7
+ base: string;
8
+ name: string;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseCrudController } from './base';
2
+ export class ProjectController extends BaseCrudController {
3
+ constructor(client) {
4
+ super(client);
5
+ this.client = client;
6
+ this.base = 'projects';
7
+ this.name = 'project';
8
+ }
9
+ }
10
+ //# sourceMappingURL=project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/core/controllers/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,OAAO,iBAAkB,SAAQ,kBAAgC;IACrE,YAA+B,MAAkB;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAA;QADgB,WAAM,GAAN,MAAM,CAAY;QAIjD,SAAI,GAAG,UAAU,CAAA;QACjB,SAAI,GAAG,SAAS,CAAA;IAHhB,CAAC;CAIF"}
@@ -0,0 +1,33 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { RecentlyModel } from "../../models/recently";
3
+ import { HTTPClient } from '..';
4
+ export declare class RecentlyController implements IController {
5
+ private readonly client;
6
+ base: string;
7
+ name: string;
8
+ constructor(client: HTTPClient);
9
+ get proxy(): import("../../interfaces/request").IRequestHandler;
10
+ /**
11
+ * 获取最新一条
12
+ */
13
+ getLatestOne(): import("../../interfaces/request").RequestProxyResult<RecentlyModel, {
14
+ [key: string]: any;
15
+ data: RecentlyModel;
16
+ }>;
17
+ getAll(): import("../../interfaces/request").RequestProxyResult<{
18
+ data: RecentlyModel[];
19
+ }, {
20
+ [key: string]: any;
21
+ data: {
22
+ data: RecentlyModel[];
23
+ };
24
+ }>;
25
+ getList(before?: string | undefined, after?: string | undefined, size?: number | number): import("../../interfaces/request").RequestProxyResult<{
26
+ data: RecentlyModel[];
27
+ }, {
28
+ [key: string]: any;
29
+ data: {
30
+ data: RecentlyModel[];
31
+ };
32
+ }>;
33
+ }
@@ -0,0 +1,32 @@
1
+ export class RecentlyController {
2
+ constructor(client) {
3
+ this.client = client;
4
+ this.base = 'recently';
5
+ this.name = 'recently';
6
+ }
7
+ get proxy() {
8
+ return this.client.proxy(this.base);
9
+ }
10
+ /**
11
+ * 获取最新一条
12
+ */
13
+ getLatestOne() {
14
+ return this.proxy.latest.get();
15
+ }
16
+ getAll() {
17
+ return this.proxy.all.get();
18
+ }
19
+ getList(before, after, size) {
20
+ if (!before && !after) {
21
+ throw new Error('you can only choose `before` or `after`');
22
+ }
23
+ return this.proxy.get({
24
+ params: {
25
+ before,
26
+ after,
27
+ size,
28
+ },
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=recently.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recently.js","sourceRoot":"","sources":["../../../src/core/controllers/recently.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,kBAAkB;IAI7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAH/C,SAAI,GAAG,UAAU,CAAA;QACjB,SAAI,GAAG,UAAU,CAAA;IAEiC,CAAC;IAEnD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IACD;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAiB,CAAA;IAC/C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAA6B,CAAA;IACxD,CAAC;IAED,OAAO,CACL,MAA2B,EAC3B,KAA0B,EAC1B,IAAsB;QAEtB,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;SAC3D;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B;YAC/C,MAAM,EAAE;gBACN,MAAM;gBACN,KAAK;gBACL,IAAI;aACL;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { SayModel } from "../../models/say";
3
+ import { HTTPClient } from '..';
4
+ import { BaseCrudController } from './base';
5
+ export declare class SayController extends BaseCrudController<SayModel> implements IController {
6
+ protected client: HTTPClient;
7
+ base: string;
8
+ name: string;
9
+ constructor(client: HTTPClient);
10
+ protected get proxy(): import("../../interfaces/request").IRequestHandler;
11
+ /**
12
+ * 获取随机一条
13
+ */
14
+ getRandom(): import("../../interfaces/request").RequestProxyResult<{
15
+ data: SayModel | null;
16
+ }, {
17
+ [key: string]: any;
18
+ data: {
19
+ data: SayModel | null;
20
+ };
21
+ }>;
22
+ }
@@ -0,0 +1,19 @@
1
+ import { BaseCrudController } from './base';
2
+ export class SayController extends BaseCrudController {
3
+ constructor(client) {
4
+ super(client);
5
+ this.client = client;
6
+ this.base = 'says';
7
+ this.name = 'say';
8
+ }
9
+ get proxy() {
10
+ return this.client.proxy(this.base);
11
+ }
12
+ /**
13
+ * 获取随机一条
14
+ */
15
+ getRandom() {
16
+ return this.proxy.random.get();
17
+ }
18
+ }
19
+ //# sourceMappingURL=say.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"say.js","sourceRoot":"","sources":["../../../src/core/controllers/say.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAE3C,MAAM,OAAO,aACX,SAAQ,kBAA4B;IAMpC,YAAsB,MAAkB;QACtC,KAAK,CAAC,MAAM,CAAC,CAAA;QADO,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,MAAM,CAAA;QACb,SAAI,GAAG,KAAK,CAAA;IAIZ,CAAC;IAED,IAAc,KAAK;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAA6B,CAAA;IAC3D,CAAC;CACF"}
@@ -0,0 +1,58 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { RequestProxyResult } from "../../interfaces/request";
3
+ import { PaginateResult } from "../../models/base";
4
+ import { NoteModel } from "../../models/note";
5
+ import { PostModel } from "../../models/post";
6
+ import { HTTPClient } from '..';
7
+ declare type SearchOption = {
8
+ orderBy?: string;
9
+ order?: number;
10
+ rawAlgolia?: boolean;
11
+ };
12
+ export declare class SearchController implements IController {
13
+ private readonly client;
14
+ base: string;
15
+ name: string;
16
+ constructor(client: HTTPClient);
17
+ get proxy(): import("../../interfaces/request").IRequestHandler;
18
+ search(type: 'note', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'>): Promise<RequestProxyResult<PaginateResult<Pick<NoteModel, 'modified' | 'id' | 'title' | 'created' | 'nid'>>>>;
19
+ search(type: 'post', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'>): Promise<RequestProxyResult<PaginateResult<Pick<PostModel, 'modified' | 'id' | 'title' | 'created' | 'slug' | 'category'>>>>;
20
+ /**
21
+ * 从 algolya 搜索
22
+ * https://www.algolia.com/doc/api-reference/api-methods/search/
23
+ * @param keyword
24
+ * @param options
25
+ * @returns
26
+ */
27
+ searchByAlgolia(keyword: string, options?: SearchOption): RequestProxyResult<RequestProxyResult<PaginateResult<Pick<PostModel, "created" | "id" | "modified" | "title" | "slug" | "category">> & {
28
+ /**
29
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
30
+ */
31
+ raw?: any;
32
+ }, {
33
+ [key: string]: any;
34
+ data: PaginateResult<Pick<PostModel, "created" | "id" | "modified" | "title" | "slug" | "category">> & {
35
+ /**
36
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
37
+ */
38
+ raw?: any;
39
+ };
40
+ }>, {
41
+ [key: string]: any;
42
+ data: RequestProxyResult<PaginateResult<Pick<PostModel, "created" | "id" | "modified" | "title" | "slug" | "category">> & {
43
+ /**
44
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
45
+ */
46
+ raw?: any;
47
+ }, {
48
+ [key: string]: any;
49
+ data: PaginateResult<Pick<PostModel, "created" | "id" | "modified" | "title" | "slug" | "category">> & {
50
+ /**
51
+ * @see: algoliasearch <https://www.algolia.com/doc/api-reference/api-methods/search/>
52
+ */
53
+ raw?: any;
54
+ };
55
+ }>;
56
+ }>;
57
+ }
58
+ export {};
@@ -0,0 +1,26 @@
1
+ export class SearchController {
2
+ constructor(client) {
3
+ this.client = client;
4
+ this.base = 'search';
5
+ this.name = 'search';
6
+ }
7
+ get proxy() {
8
+ return this.client.proxy(this.base);
9
+ }
10
+ search(type, keyword, options = {}) {
11
+ return this.proxy(type).get({
12
+ params: Object.assign({ keyword }, options),
13
+ });
14
+ }
15
+ /**
16
+ * 从 algolya 搜索
17
+ * https://www.algolia.com/doc/api-reference/api-methods/search/
18
+ * @param keyword
19
+ * @param options
20
+ * @returns
21
+ */
22
+ searchByAlgolia(keyword, options) {
23
+ return this.proxy('algolia').get({ params: Object.assign({ keyword }, options) });
24
+ }
25
+ }
26
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/core/controllers/search.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,gBAAgB;IAI3B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAH/C,SAAI,GAAG,QAAQ,CAAA;QACf,SAAI,GAAG,QAAQ,CAAA;IAEmC,CAAC;IAEnD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IA2BD,MAAM,CACJ,IAAgB,EAChB,OAAe,EACf,UAA4C,EAAE;QAE9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;YAC1B,MAAM,kBAAI,OAAO,IAAK,OAAO,CAAE;SAChC,CAAC,CAAA;IACJ,CAAC;IACD;;;;;;OAMG;IACH,eAAe,CAAC,OAAe,EAAE,OAAsB;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAc9B,EAAE,MAAM,kBAAI,OAAO,IAAK,OAAO,CAAE,EAAE,CAAC,CAAA;IACxC,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { SnippetModel } from "../../models/snippet";
3
+ import { HTTPClient } from '..';
4
+ export declare class SnippetController implements IController {
5
+ protected client: HTTPClient;
6
+ base: string;
7
+ name: string;
8
+ constructor(client: HTTPClient);
9
+ get proxy(): import("../../interfaces/request").IRequestHandler;
10
+ getById(id: string): import("../../interfaces/request").RequestProxyResult<SnippetModel, {
11
+ [key: string]: any;
12
+ data: SnippetModel;
13
+ }>;
14
+ getByReferenceAndName(reference: string, name: string): import("../../interfaces/request").RequestProxyResult<SnippetModel, {
15
+ [key: string]: any;
16
+ data: SnippetModel;
17
+ }>;
18
+ }
@@ -0,0 +1,17 @@
1
+ export class SnippetController {
2
+ constructor(client) {
3
+ this.client = client;
4
+ this.base = 'snippets';
5
+ this.name = 'snippet';
6
+ }
7
+ get proxy() {
8
+ return this.client.proxy(this.base);
9
+ }
10
+ getById(id) {
11
+ return this.proxy(id).get();
12
+ }
13
+ getByReferenceAndName(reference, name) {
14
+ return this.proxy(reference)(name).get();
15
+ }
16
+ }
17
+ //# sourceMappingURL=snippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../../src/core/controllers/snippet.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,iBAAiB;IAI5B,YAAsB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAHxC,SAAI,GAAG,UAAU,CAAA;QACjB,SAAI,GAAG,SAAS,CAAA;IAE2B,CAAC;IAE5C,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,EAAgB,CAAA;IAC3C,CAAC;IAED,qBAAqB,CAAC,SAAiB,EAAE,IAAY;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAgB,CAAA;IACxD,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ import { IController } from "../../interfaces/controller";
2
+ import { TLogin, UserModel } from "../../models/user";
3
+ import { HTTPClient } from '..';
4
+ export declare class UserController implements IController {
5
+ private readonly client;
6
+ constructor(client: HTTPClient);
7
+ base: string;
8
+ name: string;
9
+ protected get proxy(): import("../../interfaces/request").IRequestHandler;
10
+ getMasterInfo(): import("../../interfaces/request").RequestProxyResult<UserModel, {
11
+ [key: string]: any;
12
+ data: UserModel;
13
+ }>;
14
+ login(username: string, password: string): import("../../interfaces/request").RequestProxyResult<TLogin, {
15
+ [key: string]: any;
16
+ data: TLogin;
17
+ }>;
18
+ checkTokenValid(token: string): import("../../interfaces/request").RequestProxyResult<{
19
+ ok: number;
20
+ isGuest: boolean;
21
+ }, {
22
+ [key: string]: any;
23
+ data: {
24
+ ok: number;
25
+ isGuest: boolean;
26
+ };
27
+ }>;
28
+ }
@@ -0,0 +1,29 @@
1
+ export class UserController {
2
+ constructor(client) {
3
+ this.client = client;
4
+ this.base = 'master';
5
+ this.name = 'user';
6
+ }
7
+ get proxy() {
8
+ return this.client.proxy(this.base);
9
+ }
10
+ getMasterInfo() {
11
+ return this.proxy.get();
12
+ }
13
+ login(username, password) {
14
+ return this.proxy.login.post({
15
+ data: {
16
+ username,
17
+ password,
18
+ },
19
+ });
20
+ }
21
+ checkTokenValid(token) {
22
+ return this.proxy.check_logged.get({
23
+ params: {
24
+ token,
25
+ },
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/core/controllers/user.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,cAAc;IACzB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;QAE/C,SAAI,GAAG,QAAQ,CAAA;QAEf,SAAI,GAAG,MAAM,CAAA;IAJqC,CAAC;IAMnD,IAAc,KAAK;QACjB,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,eAAe,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAmC;YACnE,MAAM,EAAE;gBACN,KAAK;aACN;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import { AggregateController, CategoryController, CommentController, LinkController, NoteController, PageController, PostController, ProjectController, RecentlyController, SayController, SearchController, SnippetController, UserController } from './controllers';
2
+ export declare class HTTPControllerDefine {
3
+ aggregate: AggregateController;
4
+ category: CategoryController;
5
+ comment: CommentController;
6
+ link: LinkController;
7
+ note: NoteController;
8
+ page: PageController;
9
+ post: PostController;
10
+ project: ProjectController;
11
+ recently: RecentlyController;
12
+ say: SayController;
13
+ search: SearchController;
14
+ snippet: SnippetController;
15
+ user: UserController;
16
+ get master(): UserController;
17
+ get friend(): LinkController;
18
+ get shorthand(): RecentlyController;
19
+ }