foco-cli 0.1.5 → 0.1.9

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 (79) hide show
  1. package/dist/commands/activation-codes.d.ts +14 -0
  2. package/dist/commands/activation-codes.d.ts.map +1 -0
  3. package/dist/commands/activation-codes.js +29 -0
  4. package/dist/commands/activation-codes.js.map +1 -0
  5. package/dist/commands/admins.d.ts +12 -0
  6. package/dist/commands/admins.d.ts.map +1 -0
  7. package/dist/commands/admins.js +35 -0
  8. package/dist/commands/admins.js.map +1 -0
  9. package/dist/commands/changelogs.d.ts +12 -0
  10. package/dist/commands/changelogs.d.ts.map +1 -0
  11. package/dist/commands/changelogs.js +31 -0
  12. package/dist/commands/changelogs.js.map +1 -0
  13. package/dist/commands/dashboard.d.ts +11 -0
  14. package/dist/commands/dashboard.d.ts.map +1 -0
  15. package/dist/commands/dashboard.js +27 -0
  16. package/dist/commands/dashboard.js.map +1 -0
  17. package/dist/commands/exams.d.ts +22 -0
  18. package/dist/commands/exams.d.ts.map +1 -0
  19. package/dist/commands/exams.js +58 -0
  20. package/dist/commands/exams.js.map +1 -0
  21. package/dist/commands/feedback.d.ts +17 -0
  22. package/dist/commands/feedback.d.ts.map +1 -0
  23. package/dist/commands/feedback.js +43 -0
  24. package/dist/commands/feedback.js.map +1 -0
  25. package/dist/commands/help-articles.d.ts +28 -0
  26. package/dist/commands/help-articles.d.ts.map +1 -0
  27. package/dist/commands/help-articles.js +67 -0
  28. package/dist/commands/help-articles.js.map +1 -0
  29. package/dist/commands/knowledge-base.d.ts +28 -0
  30. package/dist/commands/knowledge-base.d.ts.map +1 -0
  31. package/dist/commands/knowledge-base.js +67 -0
  32. package/dist/commands/knowledge-base.js.map +1 -0
  33. package/dist/commands/knowledge-points.d.ts +29 -0
  34. package/dist/commands/knowledge-points.d.ts.map +1 -0
  35. package/dist/commands/knowledge-points.js +64 -0
  36. package/dist/commands/knowledge-points.js.map +1 -0
  37. package/dist/commands/login.d.ts +1 -6
  38. package/dist/commands/login.d.ts.map +1 -1
  39. package/dist/commands/login.js +13 -13
  40. package/dist/commands/login.js.map +1 -1
  41. package/dist/commands/orders.d.ts +9 -0
  42. package/dist/commands/orders.d.ts.map +1 -0
  43. package/dist/commands/orders.js +15 -0
  44. package/dist/commands/orders.js.map +1 -0
  45. package/dist/commands/products.d.ts +22 -0
  46. package/dist/commands/products.d.ts.map +1 -0
  47. package/dist/commands/products.js +54 -0
  48. package/dist/commands/products.js.map +1 -0
  49. package/dist/commands/projects.d.ts +24 -0
  50. package/dist/commands/projects.d.ts.map +1 -0
  51. package/dist/commands/projects.js +61 -0
  52. package/dist/commands/projects.js.map +1 -0
  53. package/dist/commands/resource-packs.d.ts +26 -0
  54. package/dist/commands/resource-packs.d.ts.map +1 -0
  55. package/dist/commands/resource-packs.js +64 -0
  56. package/dist/commands/resource-packs.js.map +1 -0
  57. package/dist/commands/stats.d.ts +2 -0
  58. package/dist/commands/stats.d.ts.map +1 -0
  59. package/dist/commands/stats.js +6 -0
  60. package/dist/commands/stats.js.map +1 -0
  61. package/dist/commands/syllabi.d.ts +26 -0
  62. package/dist/commands/syllabi.d.ts.map +1 -0
  63. package/dist/commands/syllabi.js +65 -0
  64. package/dist/commands/syllabi.js.map +1 -0
  65. package/dist/commands/threads.d.ts +13 -0
  66. package/dist/commands/threads.d.ts.map +1 -0
  67. package/dist/commands/threads.js +33 -0
  68. package/dist/commands/threads.js.map +1 -0
  69. package/dist/commands/users.d.ts +7 -0
  70. package/dist/commands/users.d.ts.map +1 -0
  71. package/dist/commands/users.js +13 -0
  72. package/dist/commands/users.js.map +1 -0
  73. package/dist/index.js +385 -71
  74. package/dist/index.js.map +1 -1
  75. package/dist/lib/auth.d.ts +7 -8
  76. package/dist/lib/auth.d.ts.map +1 -1
  77. package/dist/lib/auth.js +26 -80
  78. package/dist/lib/auth.js.map +1 -1
  79. package/package.json +1 -1
@@ -0,0 +1,64 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleKnowledgePointsList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/knowledge-points", {
4
+ params: {
5
+ bankId: options.bankId,
6
+ type: options.type,
7
+ status: options.status,
8
+ keyword: options.keyword,
9
+ page: options.page,
10
+ pageSize: options.pageSize,
11
+ },
12
+ });
13
+ outputJSON({ status: "ok", data });
14
+ }
15
+ export async function handleKnowledgePointCreate(options) {
16
+ const body = {
17
+ bankId: options.bankId,
18
+ type: options.type,
19
+ title: options.title,
20
+ content: options.content,
21
+ };
22
+ if (options.syllabusId)
23
+ body.syllabusId = options.syllabusId;
24
+ if (options.sectionId)
25
+ body.sectionId = options.sectionId;
26
+ if (options.sortOrder)
27
+ body.sortOrder = Number(options.sortOrder);
28
+ if (options.status)
29
+ body.status = options.status;
30
+ const { data } = await apiCall("/api/admin/v1/knowledge-points", {
31
+ method: "POST",
32
+ body,
33
+ });
34
+ outputJSON({ status: "ok", data });
35
+ }
36
+ export async function handleKnowledgePointUpdate(id, options) {
37
+ const body = {};
38
+ if (options.syllabusId !== undefined)
39
+ body.syllabusId = options.syllabusId || null;
40
+ if (options.sectionId !== undefined)
41
+ body.sectionId = options.sectionId || null;
42
+ if (options.type)
43
+ body.type = options.type;
44
+ if (options.title)
45
+ body.title = options.title;
46
+ if (options.content)
47
+ body.content = options.content;
48
+ if (options.sortOrder)
49
+ body.sortOrder = Number(options.sortOrder);
50
+ if (options.status)
51
+ body.status = options.status;
52
+ const { data } = await apiCall(`/api/admin/v1/knowledge-points/${id}`, {
53
+ method: "PATCH",
54
+ body,
55
+ });
56
+ outputJSON({ status: "ok", data });
57
+ }
58
+ export async function handleKnowledgePointDelete(id) {
59
+ const { data } = await apiCall(`/api/admin/v1/knowledge-points/${id}`, {
60
+ method: "DELETE",
61
+ });
62
+ outputJSON({ status: "ok", data });
63
+ }
64
+ //# sourceMappingURL=knowledge-points.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-points.js","sourceRoot":"","sources":["../../src/commands/knowledge-points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAiBpD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAO/C;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,gCAAgC,EAChC;QACE,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;KACF,CACF,CAAC;IAEF,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAShD;IACC,MAAM,IAAI,GAA4B;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;IAEF,IAAI,OAAO,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC7D,IAAI,OAAO,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC1D,IAAI,OAAO,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,gCAAgC,EAChC;QACE,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CACF,CAAC;IAEF,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,EAAU,EACV,OAQC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAAE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC;IACnF,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAChF,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,CAAC,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACpD,IAAI,OAAO,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,kCAAkC,EAAE,EAAE,EACtC;QACE,MAAM,EAAE,OAAO;QACf,IAAI;KACL,CACF,CAAC;IAEF,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAAU;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAC5B,kCAAkC,EAAE,EAAE,EACtC;QACE,MAAM,EAAE,QAAQ;KACjB,CACF,CAAC;IAEF,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -1,9 +1,4 @@
1
- /**
2
- * foco login — browser-based device auth (default)
3
- * foco login --token <token> — use existing token
4
- * foco login <apiUrl> — specify server URL
5
- */
6
- export declare function handleLogin(apiUrl?: string, token?: string, dev?: boolean): Promise<void>;
1
+ export declare function handleLogin(apiUrl?: string, dev?: boolean): Promise<void>;
7
2
  export declare function handleStatus(): Promise<void>;
8
3
  export declare function handleLogout(): Promise<void>;
9
4
  //# sourceMappingURL=login.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAC/B,MAAM,CAAC,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAElD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD"}
@@ -1,23 +1,23 @@
1
- import { browserLogin, tokenLogin } from "../lib/auth.js";
2
- import { outputJSON, printError, getConfigInfo } from "../lib/api.js";
1
+ import { passwordLogin, prompt } from "../lib/auth.js";
2
+ import { printError, getConfigInfo } from "../lib/api.js";
3
3
  import { loadConfig, saveConfig } from "../lib/config.js";
4
- /**
5
- * foco login browser-based device auth (default)
6
- * foco login --token <token> — use existing token
7
- * foco login <apiUrl> — specify server URL
8
- */
9
- export async function handleLogin(apiUrl, token, dev) {
4
+ import { outputJSON } from "../lib/api.js";
5
+ export async function handleLogin(apiUrl, dev) {
10
6
  const url = dev
11
7
  ? "http://localhost:3001"
12
8
  : apiUrl || process.env.FOCO_API_URL || "https://orthodox-taupe.vercel.app";
13
- const tkn = token || process.env.FOCO_TOKEN;
14
9
  try {
15
- if (tkn) {
16
- await tokenLogin(url, tkn);
10
+ const username = await prompt("用户名: ");
11
+ if (!username) {
12
+ printError("用户名不能为空");
13
+ process.exit(1);
17
14
  }
18
- else {
19
- await browserLogin(url);
15
+ const password = await prompt("密码: ");
16
+ if (!password) {
17
+ printError("密码不能为空");
18
+ process.exit(1);
20
19
  }
20
+ await passwordLogin(url, username, password);
21
21
  }
22
22
  catch (err) {
23
23
  const msg = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAe,EACf,KAAc,EACd,GAAa;IAEb,MAAM,GAAG,GAAG,GAAG;QACb,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,mCAAmC,CAAC;IAC9E,MAAM,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAE5C,IAAI,CAAC;QACH,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAe,EACf,GAAa;IAEb,MAAM,GAAG,GAAG,GAAG;QACb,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,mCAAmC,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QACzD,MAAM,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function handleOrdersList(options: {
2
+ status?: string;
3
+ orderType?: string;
4
+ userId?: string;
5
+ keyword?: string;
6
+ page?: string;
7
+ pageSize?: string;
8
+ }): Promise<void>;
9
+ //# sourceMappingURL=orders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/commands/orders.ts"],"names":[],"mappings":"AAcA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAahB"}
@@ -0,0 +1,15 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleOrdersList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/orders", {
4
+ params: {
5
+ status: options.status,
6
+ orderType: options.orderType,
7
+ userId: options.userId,
8
+ keyword: options.keyword,
9
+ page: options.page,
10
+ pageSize: options.pageSize,
11
+ },
12
+ });
13
+ outputJSON({ status: "ok", data });
14
+ }
15
+ //# sourceMappingURL=orders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/commands/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAOtC;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAuB,sBAAsB,EAAE;QAC3E,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,22 @@
1
+ export declare function handleProductsList(options: {
2
+ productType?: string;
3
+ status?: string;
4
+ keyword?: string;
5
+ page?: string;
6
+ pageSize?: string;
7
+ }): Promise<void>;
8
+ export declare function handleProductShow(id: string): Promise<void>;
9
+ export declare function handleProductCreate(options: {
10
+ productType: string;
11
+ refId: string;
12
+ title: string;
13
+ coverUrl?: string;
14
+ status?: string;
15
+ }): Promise<void>;
16
+ export declare function handleProductUpdate(id: string, options: {
17
+ title?: string;
18
+ coverUrl?: string;
19
+ status?: string;
20
+ }): Promise<void>;
21
+ export declare function handleProductDelete(id: string): Promise<void>;
22
+ //# sourceMappingURL=products.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../src/commands/products.ts"],"names":[],"mappings":"AAcA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhB;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE"}
@@ -0,0 +1,54 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleProductsList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/products", {
4
+ params: {
5
+ productType: options.productType,
6
+ status: options.status,
7
+ keyword: options.keyword,
8
+ page: options.page,
9
+ pageSize: options.pageSize,
10
+ },
11
+ });
12
+ outputJSON({ status: "ok", data });
13
+ }
14
+ export async function handleProductShow(id) {
15
+ const { data } = await apiCall(`/api/admin/v1/products/${id}`);
16
+ outputJSON({ status: "ok", data });
17
+ }
18
+ export async function handleProductCreate(options) {
19
+ const body = {
20
+ productType: options.productType,
21
+ refId: options.refId,
22
+ title: options.title,
23
+ };
24
+ if (options.coverUrl)
25
+ body.coverUrl = options.coverUrl;
26
+ if (options.status)
27
+ body.status = options.status;
28
+ const { data } = await apiCall("/api/admin/v1/products", {
29
+ method: "POST",
30
+ body,
31
+ });
32
+ outputJSON({ status: "ok", data });
33
+ }
34
+ export async function handleProductUpdate(id, options) {
35
+ const body = {};
36
+ if (options.title)
37
+ body.title = options.title;
38
+ if (options.coverUrl !== undefined)
39
+ body.coverUrl = options.coverUrl || null;
40
+ if (options.status)
41
+ body.status = options.status;
42
+ const { data } = await apiCall(`/api/admin/v1/products/${id}`, {
43
+ method: "PATCH",
44
+ body,
45
+ });
46
+ outputJSON({ status: "ok", data });
47
+ }
48
+ export async function handleProductDelete(id) {
49
+ const { data } = await apiCall(`/api/admin/v1/products/${id}`, {
50
+ method: "DELETE",
51
+ });
52
+ outputJSON({ status: "ok", data });
53
+ }
54
+ //# sourceMappingURL=products.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/commands/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAcpD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAMxC;IACC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAyB,wBAAwB,EAAE;QAC/E,MAAM,EAAE;YACN,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B;KACF,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAU,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAMzC;IACC,MAAM,IAAI,GAA4B;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,IAAI,OAAO,CAAC,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAU,wBAAwB,EAAE;QAChE,MAAM,EAAE,MAAM;QACd,IAAI;KACL,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAU,EACV,OAIC;IAED,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAU,0BAA0B,EAAE,EAAE,EAAE;QACtE,MAAM,EAAE,OAAO;QACf,IAAI;KACL,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAU;IAClD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAAO,0BAA0B,EAAE,EAAE,EAAE;QACnE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,24 @@
1
+ export declare function handleProjectsList(options: {
2
+ status?: string;
3
+ page?: string;
4
+ pageSize?: string;
5
+ }): Promise<void>;
6
+ export declare function handleProjectShow(id: string): Promise<void>;
7
+ export declare function handleProjectCreate(options: {
8
+ name: string;
9
+ slug: string;
10
+ description?: string;
11
+ icon?: string;
12
+ color?: string;
13
+ leadId?: string;
14
+ }): Promise<void>;
15
+ export declare function handleProjectUpdate(id: string, options: {
16
+ name?: string;
17
+ slug?: string;
18
+ description?: string;
19
+ icon?: string;
20
+ color?: string;
21
+ leadId?: string;
22
+ }): Promise<void>;
23
+ export declare function handleProjectDelete(id: string): Promise<void>;
24
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAGA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGjE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE"}
@@ -0,0 +1,61 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleProjectsList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/projects", {
4
+ params: {
5
+ status: options.status,
6
+ page: options.page,
7
+ pageSize: options.pageSize,
8
+ },
9
+ });
10
+ outputJSON({ status: "ok", data });
11
+ }
12
+ export async function handleProjectShow(id) {
13
+ const { data } = await apiCall(`/api/admin/v1/projects/${id}`);
14
+ outputJSON({ status: "ok", data });
15
+ }
16
+ export async function handleProjectCreate(options) {
17
+ const body = {
18
+ name: options.name,
19
+ slug: options.slug,
20
+ };
21
+ if (options.description)
22
+ body.description = options.description;
23
+ if (options.icon)
24
+ body.icon = options.icon;
25
+ if (options.color)
26
+ body.color = options.color;
27
+ if (options.leadId)
28
+ body.leadId = options.leadId;
29
+ const { data } = await apiCall("/api/admin/v1/projects", {
30
+ method: "POST",
31
+ body,
32
+ });
33
+ outputJSON({ status: "ok", data });
34
+ }
35
+ export async function handleProjectUpdate(id, options) {
36
+ const body = {};
37
+ if (options.name)
38
+ body.name = options.name;
39
+ if (options.slug)
40
+ body.slug = options.slug;
41
+ if (options.description !== undefined)
42
+ body.description = options.description;
43
+ if (options.icon !== undefined)
44
+ body.icon = options.icon;
45
+ if (options.color !== undefined)
46
+ body.color = options.color;
47
+ if (options.leadId !== undefined)
48
+ body.leadId = options.leadId || null;
49
+ const { data } = await apiCall(`/api/admin/v1/projects/${id}`, {
50
+ method: "PATCH",
51
+ body,
52
+ });
53
+ outputJSON({ status: "ok", data });
54
+ }
55
+ export async function handleProjectDelete(id) {
56
+ const { data } = await apiCall(`/api/admin/v1/projects/${id}`, {
57
+ method: "DELETE",
58
+ });
59
+ outputJSON({ status: "ok", data });
60
+ }
61
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export declare function handleResourcePacksList(options: {
2
+ status?: string;
3
+ bankId?: string;
4
+ keyword?: string;
5
+ page?: string;
6
+ pageSize?: string;
7
+ }): Promise<void>;
8
+ export declare function handleResourcePackShow(id: string): Promise<void>;
9
+ export declare function handleResourcePackCreate(options: {
10
+ title: string;
11
+ bankId?: string;
12
+ coverUrl?: string;
13
+ description?: string;
14
+ status?: string;
15
+ sortOrder?: string;
16
+ }): Promise<void>;
17
+ export declare function handleResourcePackUpdate(id: string, options: {
18
+ bankId?: string;
19
+ title?: string;
20
+ coverUrl?: string;
21
+ description?: string;
22
+ status?: string;
23
+ sortOrder?: string;
24
+ }): Promise<void>;
25
+ export declare function handleResourcePackDelete(id: string): Promise<void>;
26
+ //# sourceMappingURL=resource-packs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-packs.d.ts","sourceRoot":"","sources":["../../src/commands/resource-packs.ts"],"names":[],"mappings":"AAeA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAehB;AAED,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE;AAED,wBAAsB,wBAAwB,CAAC,OAAO,EAAE;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhB;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxE"}
@@ -0,0 +1,64 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleResourcePacksList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/resource-packs", {
4
+ params: {
5
+ status: options.status,
6
+ bankId: options.bankId,
7
+ keyword: options.keyword,
8
+ page: options.page,
9
+ pageSize: options.pageSize,
10
+ },
11
+ });
12
+ outputJSON({ status: "ok", data });
13
+ }
14
+ export async function handleResourcePackShow(id) {
15
+ const { data } = await apiCall(`/api/admin/v1/resource-packs/${id}`);
16
+ outputJSON({ status: "ok", data });
17
+ }
18
+ export async function handleResourcePackCreate(options) {
19
+ const body = {
20
+ title: options.title,
21
+ };
22
+ if (options.bankId)
23
+ body.bankId = options.bankId;
24
+ if (options.coverUrl)
25
+ body.coverUrl = options.coverUrl;
26
+ if (options.description)
27
+ body.description = options.description;
28
+ if (options.status)
29
+ body.status = options.status;
30
+ if (options.sortOrder)
31
+ body.sortOrder = Number(options.sortOrder);
32
+ const { data } = await apiCall("/api/admin/v1/resource-packs", {
33
+ method: "POST",
34
+ body,
35
+ });
36
+ outputJSON({ status: "ok", data });
37
+ }
38
+ export async function handleResourcePackUpdate(id, options) {
39
+ const body = {};
40
+ if (options.bankId !== undefined)
41
+ body.bankId = options.bankId || null;
42
+ if (options.title)
43
+ body.title = options.title;
44
+ if (options.coverUrl !== undefined)
45
+ body.coverUrl = options.coverUrl || null;
46
+ if (options.description !== undefined)
47
+ body.description = options.description || null;
48
+ if (options.status)
49
+ body.status = options.status;
50
+ if (options.sortOrder)
51
+ body.sortOrder = Number(options.sortOrder);
52
+ const { data } = await apiCall(`/api/admin/v1/resource-packs/${id}`, {
53
+ method: "PATCH",
54
+ body,
55
+ });
56
+ outputJSON({ status: "ok", data });
57
+ }
58
+ export async function handleResourcePackDelete(id) {
59
+ const { data } = await apiCall(`/api/admin/v1/resource-packs/${id}`, {
60
+ method: "DELETE",
61
+ });
62
+ outputJSON({ status: "ok", data });
63
+ }
64
+ //# sourceMappingURL=resource-packs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-packs.js","sourceRoot":"","sources":["../../src/commands/resource-packs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleStats(): Promise<void>;
2
+ //# sourceMappingURL=stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAGjD"}
@@ -0,0 +1,6 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleStats() {
3
+ const { data } = await apiCall("/api/admin/v1/stats");
4
+ outputJSON({ status: "ok", data });
5
+ }
6
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,CAA0B,qBAAqB,CAAC,CAAC;IAC/E,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare function handleSyllabiList(options: {
2
+ examId?: string;
3
+ page?: string;
4
+ pageSize?: string;
5
+ }): Promise<void>;
6
+ export declare function handleSyllabusShow(id: string): Promise<void>;
7
+ export declare function handleSyllabusCreate(options: {
8
+ examId: string;
9
+ name: string;
10
+ versionLabel?: string;
11
+ description?: string;
12
+ sortOrder?: string;
13
+ isTrial?: string;
14
+ isActive?: string;
15
+ }): Promise<void>;
16
+ export declare function handleSyllabusUpdate(id: string, options: {
17
+ examId?: string;
18
+ name?: string;
19
+ versionLabel?: string;
20
+ description?: string;
21
+ sortOrder?: string;
22
+ isTrial?: string;
23
+ isActive?: string;
24
+ }): Promise<void>;
25
+ export declare function handleSyllabusDelete(id: string): Promise<void>;
26
+ //# sourceMappingURL=syllabi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syllabi.d.ts","sourceRoot":"","sources":["../../src/commands/syllabi.ts"],"names":[],"mappings":"AAgBA,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlE;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBhB;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE"}
@@ -0,0 +1,65 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleSyllabiList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/syllabi", {
4
+ params: {
5
+ examId: options.examId,
6
+ page: options.page,
7
+ pageSize: options.pageSize,
8
+ },
9
+ });
10
+ outputJSON({ status: "ok", data });
11
+ }
12
+ export async function handleSyllabusShow(id) {
13
+ const { data } = await apiCall(`/api/admin/v1/syllabi/${id}`);
14
+ outputJSON({ status: "ok", data });
15
+ }
16
+ export async function handleSyllabusCreate(options) {
17
+ const body = {
18
+ examId: options.examId,
19
+ name: options.name,
20
+ };
21
+ if (options.versionLabel)
22
+ body.versionLabel = options.versionLabel;
23
+ if (options.description)
24
+ body.description = options.description;
25
+ if (options.sortOrder)
26
+ body.sortOrder = Number(options.sortOrder);
27
+ if (options.isTrial !== undefined)
28
+ body.isTrial = options.isTrial === "true";
29
+ if (options.isActive !== undefined)
30
+ body.isActive = options.isActive === "true";
31
+ const { data } = await apiCall("/api/admin/v1/syllabi", {
32
+ method: "POST",
33
+ body,
34
+ });
35
+ outputJSON({ status: "ok", data });
36
+ }
37
+ export async function handleSyllabusUpdate(id, options) {
38
+ const body = {};
39
+ if (options.examId)
40
+ body.examId = options.examId;
41
+ if (options.name)
42
+ body.name = options.name;
43
+ if (options.versionLabel !== undefined)
44
+ body.versionLabel = options.versionLabel || null;
45
+ if (options.description !== undefined)
46
+ body.description = options.description || null;
47
+ if (options.sortOrder)
48
+ body.sortOrder = Number(options.sortOrder);
49
+ if (options.isTrial !== undefined)
50
+ body.isTrial = options.isTrial === "true";
51
+ if (options.isActive !== undefined)
52
+ body.isActive = options.isActive === "true";
53
+ const { data } = await apiCall(`/api/admin/v1/syllabi/${id}`, {
54
+ method: "PATCH",
55
+ body,
56
+ });
57
+ outputJSON({ status: "ok", data });
58
+ }
59
+ export async function handleSyllabusDelete(id) {
60
+ const { data } = await apiCall(`/api/admin/v1/syllabi/${id}`, {
61
+ method: "DELETE",
62
+ });
63
+ outputJSON({ status: "ok", data });
64
+ }
65
+ //# sourceMappingURL=syllabi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syllabi.js","sourceRoot":"","sources":["../../src/commands/syllabi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare function handleThreadsList(options: {
2
+ status?: string;
3
+ page?: string;
4
+ pageSize?: string;
5
+ }): Promise<void>;
6
+ export declare function handleThreadShow(id: string): Promise<void>;
7
+ export declare function handleThreadUpdate(id: string, options: {
8
+ status?: string;
9
+ }): Promise<void>;
10
+ export declare function handleThreadReply(id: string, options: {
11
+ content: string;
12
+ }): Promise<void>;
13
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../src/commands/threads.ts"],"names":[],"mappings":"AAGA,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -0,0 +1,33 @@
1
+ import { apiCall, outputJSON } from "../lib/api.js";
2
+ export async function handleThreadsList(options) {
3
+ const { data } = await apiCall("/api/admin/v1/threads", {
4
+ params: {
5
+ status: options.status,
6
+ page: options.page,
7
+ pageSize: options.pageSize,
8
+ },
9
+ });
10
+ outputJSON({ status: "ok", data });
11
+ }
12
+ export async function handleThreadShow(id) {
13
+ const { data } = await apiCall(`/api/admin/v1/threads/${id}`);
14
+ outputJSON({ status: "ok", data });
15
+ }
16
+ export async function handleThreadUpdate(id, options) {
17
+ const body = {};
18
+ if (options.status)
19
+ body.status = options.status;
20
+ const { data } = await apiCall(`/api/admin/v1/threads/${id}`, {
21
+ method: "PATCH",
22
+ body,
23
+ });
24
+ outputJSON({ status: "ok", data });
25
+ }
26
+ export async function handleThreadReply(id, options) {
27
+ const { data } = await apiCall(`/api/admin/v1/threads/${id}/reply`, {
28
+ method: "POST",
29
+ body: { content: options.content },
30
+ });
31
+ outputJSON({ status: "ok", data });
32
+ }
33
+ //# sourceMappingURL=threads.js.map