canvaslms-cli 1.6.2 → 1.6.4

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 (69) hide show
  1. package/CHANGELOG.md +221 -195
  2. package/README.md +131 -129
  3. package/dist/commands/announcements.d.ts +2 -2
  4. package/dist/commands/announcements.d.ts.map +1 -1
  5. package/dist/commands/announcements.js +29 -20
  6. package/dist/commands/announcements.js.map +1 -1
  7. package/dist/commands/api.d.ts +1 -1
  8. package/dist/commands/api.d.ts.map +1 -1
  9. package/dist/commands/api.js +1 -1
  10. package/dist/commands/api.js.map +1 -1
  11. package/dist/commands/assignments.d.ts +2 -2
  12. package/dist/commands/assignments.d.ts.map +1 -1
  13. package/dist/commands/assignments.js +24 -19
  14. package/dist/commands/assignments.js.map +1 -1
  15. package/dist/commands/config.d.ts.map +1 -1
  16. package/dist/commands/config.js +102 -85
  17. package/dist/commands/config.js.map +1 -1
  18. package/dist/commands/grades.d.ts +2 -2
  19. package/dist/commands/grades.d.ts.map +1 -1
  20. package/dist/commands/grades.js +183 -228
  21. package/dist/commands/grades.js.map +1 -1
  22. package/dist/commands/list.d.ts +1 -1
  23. package/dist/commands/list.d.ts.map +1 -1
  24. package/dist/commands/list.js +22 -20
  25. package/dist/commands/list.js.map +1 -1
  26. package/dist/commands/profile.d.ts.map +1 -1
  27. package/dist/commands/profile.js +57 -32
  28. package/dist/commands/profile.js.map +1 -1
  29. package/dist/commands/submit.d.ts +1 -2
  30. package/dist/commands/submit.d.ts.map +1 -1
  31. package/dist/commands/submit.js +88 -79
  32. package/dist/commands/submit.js.map +1 -1
  33. package/dist/index.d.ts +14 -14
  34. package/dist/index.js +14 -14
  35. package/dist/lib/api-client.d.ts +3 -0
  36. package/dist/lib/api-client.d.ts.map +1 -1
  37. package/dist/lib/api-client.js +31 -16
  38. package/dist/lib/api-client.js.map +1 -1
  39. package/dist/lib/config-validator.d.ts.map +1 -1
  40. package/dist/lib/config-validator.js +12 -12
  41. package/dist/lib/config-validator.js.map +1 -1
  42. package/dist/lib/config.d.ts +1 -1
  43. package/dist/lib/config.d.ts.map +1 -1
  44. package/dist/lib/config.js +16 -14
  45. package/dist/lib/config.js.map +1 -1
  46. package/dist/lib/display.d.ts +11 -5
  47. package/dist/lib/display.d.ts.map +1 -1
  48. package/dist/lib/display.js +261 -169
  49. package/dist/lib/display.js.map +1 -1
  50. package/dist/lib/file-upload.d.ts.map +1 -1
  51. package/dist/lib/file-upload.js +17 -17
  52. package/dist/lib/file-upload.js.map +1 -1
  53. package/dist/lib/interactive.d.ts +1 -1
  54. package/dist/lib/interactive.d.ts.map +1 -1
  55. package/dist/lib/interactive.js +194 -144
  56. package/dist/lib/interactive.js.map +1 -1
  57. package/dist/src/index.d.ts +0 -1
  58. package/dist/src/index.js +62 -63
  59. package/dist/src/index.js.map +1 -1
  60. package/dist/types/index.d.ts +1 -1
  61. package/package.json +10 -3
  62. package/dist/commands/coursenames.d.ts +0 -15
  63. package/dist/commands/coursenames.d.ts.map +0 -1
  64. package/dist/commands/coursenames.js +0 -150
  65. package/dist/commands/coursenames.js.map +0 -1
  66. package/dist/lib/course-utils.d.ts +0 -6
  67. package/dist/lib/course-utils.d.ts.map +0 -1
  68. package/dist/lib/course-utils.js +0 -17
  69. package/dist/lib/course-utils.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,15 +1,15 @@
1
- export * from './lib/api-client.js';
2
- export * from './lib/config.js';
3
- export * from './lib/config-validator.js';
4
- export * from './lib/file-upload.js';
5
- export * from './lib/interactive.js';
6
- export * from './commands/list.js';
7
- export * from './commands/config.js';
8
- export * from './commands/assignments.js';
9
- export * from './commands/grades.js';
10
- export * from './commands/announcements.js';
11
- export * from './commands/profile.js';
12
- export * from './commands/submit.js';
13
- export * from './commands/api.js';
14
- export * from './types/index.js';
1
+ export * from "./lib/api-client.js";
2
+ export * from "./lib/config.js";
3
+ export * from "./lib/config-validator.js";
4
+ export * from "./lib/file-upload.js";
5
+ export * from "./lib/interactive.js";
6
+ export * from "./commands/list.js";
7
+ export * from "./commands/config.js";
8
+ export * from "./commands/assignments.js";
9
+ export * from "./commands/grades.js";
10
+ export * from "./commands/announcements.js";
11
+ export * from "./commands/profile.js";
12
+ export * from "./commands/submit.js";
13
+ export * from "./commands/api.js";
14
+ export * from "./types/index.js";
15
15
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
- export * from './lib/api-client.js';
2
- export * from './lib/config.js';
3
- export * from './lib/config-validator.js';
4
- export * from './lib/file-upload.js';
5
- export * from './lib/interactive.js';
6
- export * from './commands/list.js';
7
- export * from './commands/config.js';
8
- export * from './commands/assignments.js';
9
- export * from './commands/grades.js';
10
- export * from './commands/announcements.js';
11
- export * from './commands/profile.js';
12
- export * from './commands/submit.js';
13
- export * from './commands/api.js';
14
- export * from './types/index.js';
1
+ export * from "./lib/api-client.js";
2
+ export * from "./lib/config.js";
3
+ export * from "./lib/config-validator.js";
4
+ export * from "./lib/file-upload.js";
5
+ export * from "./lib/interactive.js";
6
+ export * from "./commands/list.js";
7
+ export * from "./commands/config.js";
8
+ export * from "./commands/assignments.js";
9
+ export * from "./commands/grades.js";
10
+ export * from "./commands/announcements.js";
11
+ export * from "./commands/profile.js";
12
+ export * from "./commands/submit.js";
13
+ export * from "./commands/api.js";
14
+ export * from "./types/index.js";
15
15
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,5 @@
1
+ import type { CanvasCourse } from "../types/index.js";
2
+ export declare function getCanvasCourse(courseName: string): Promise<CanvasCourse | undefined>;
3
+ export declare function getCanvasCourses(getAllCourse: boolean): Promise<CanvasCourse[]>;
1
4
  export declare function makeCanvasRequest<T = any>(method: string, endpoint: string, queryParams?: string[], requestBody?: string | null): Promise<T>;
2
5
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"AAWA,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAM,EAAO,EAC1B,WAAW,GAAE,MAAM,GAAG,IAAW,GAChC,OAAO,CAAC,CAAC,CAAC,CAgFZ"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAKnC;AAED,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,YAAY,EAAE,CAAC,CAezB;AAID,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAC7C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAM,EAAO,EAC1B,WAAW,GAAE,MAAM,GAAG,IAAW,GAChC,OAAO,CAAC,CAAC,CAAC,CA4FZ"}
@@ -1,35 +1,50 @@
1
- import axios from 'axios';
2
- import fs from 'fs';
3
- import { getInstanceConfig } from './config.js';
1
+ import axios from "axios";
2
+ import fs from "fs";
3
+ import { getInstanceConfig } from "./config.js";
4
+ export async function getCanvasCourse(courseName) {
5
+ const courses = await getCanvasCourses(true);
6
+ return courses.find((c) => c.name.toLowerCase().includes(courseName.toLowerCase()));
7
+ }
8
+ export async function getCanvasCourses(getAllCourse) {
9
+ const queryParams = [
10
+ "enrollment_state=active",
11
+ "per_page=100",
12
+ "include[]=term",
13
+ "include[]=favorites",
14
+ ];
15
+ const courses = await makeCanvasRequest("get", "courses", queryParams);
16
+ return getAllCourse ? courses : courses.filter((c) => c.is_favorite);
17
+ }
4
18
  export async function makeCanvasRequest(method, endpoint, queryParams = [], requestBody = null) {
5
19
  const instanceConfig = getInstanceConfig();
6
20
  const baseUrl = `https://${instanceConfig.domain}/api/v1`;
7
- const url = `${baseUrl}/${endpoint.replace(/^\//, '')}`;
21
+ const url = `${baseUrl}/${endpoint.replace(/^\//, "")}`;
8
22
  const config = {
9
23
  method: method.toLowerCase(),
10
24
  url: url,
11
25
  headers: {
12
- 'Authorization': `Bearer ${instanceConfig.token}`,
13
- 'Content-Type': 'application/json'
14
- }
26
+ Authorization: `Bearer ${instanceConfig.token}`,
27
+ "Content-Type": "application/json",
28
+ },
15
29
  };
16
30
  if (queryParams.length > 0) {
17
31
  const params = new URLSearchParams();
18
- queryParams.forEach(param => {
19
- const parts = param.split('=', 2);
32
+ queryParams.forEach((param) => {
33
+ const parts = param.split("=", 2);
20
34
  const key = parts[0];
21
- const value = parts[1] ?? '';
35
+ const value = parts[1] ?? "";
22
36
  if (key) {
23
37
  params.append(key, value);
24
38
  }
25
39
  });
26
40
  config.params = params;
27
41
  }
28
- if (requestBody && (method.toLowerCase() === 'post' || method.toLowerCase() === 'put')) {
29
- if (requestBody.startsWith('@')) {
42
+ if (requestBody &&
43
+ (method.toLowerCase() === "post" || method.toLowerCase() === "put")) {
44
+ if (requestBody.startsWith("@")) {
30
45
  const filename = requestBody.substring(1);
31
46
  try {
32
- config.data = JSON.parse(fs.readFileSync(filename, 'utf8'));
47
+ config.data = JSON.parse(fs.readFileSync(filename, "utf8"));
33
48
  }
34
49
  catch (error) {
35
50
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -50,11 +65,11 @@ export async function makeCanvasRequest(method, endpoint, queryParams = [], requ
50
65
  }
51
66
  try {
52
67
  const response = await axios(config);
53
- if (instanceConfig.domain === 'swinburne.instructure.com' &&
54
- endpoint === 'courses' &&
68
+ if (instanceConfig.domain === "swinburne.instructure.com" &&
69
+ endpoint === "courses" &&
55
70
  Array.isArray(response.data)) {
56
71
  const data = response.data;
57
- const filteredData = data.filter((item) => !item.name || !item.name.startsWith('ORG-'));
72
+ const filteredData = data.filter((item) => !item.name || !item.name.startsWith("ORG-"));
58
73
  return filteredData;
59
74
  }
60
75
  return response.data;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../lib/config-validator.ts"],"names":[],"mappings":"AAWA,iBAAe,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAmC9C;AAKD,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAKzE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../../lib/config-validator.ts"],"names":[],"mappings":"AAWA,iBAAe,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CA8C9C;AAKD,wBAAgB,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAKzE;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,24 +1,24 @@
1
- import { configExists, readConfig } from './config.js';
2
- import { createReadlineInterface, askQuestion } from './interactive.js';
1
+ import { configExists, readConfig } from "./config.js";
2
+ import { createReadlineInterface, askQuestion } from "./interactive.js";
3
3
  async function ensureConfig() {
4
4
  if (!configExists()) {
5
- console.log('No Canvas configuration found!');
6
- console.log('\nLet\'s set up your Canvas CLI configuration...\n');
5
+ console.log("No Canvas configuration found!");
6
+ console.log("\nLet's set up your Canvas CLI configuration...\n");
7
7
  const rl = createReadlineInterface();
8
- const setup = await askQuestion(rl, 'Would you like to set up your configuration now? (Y/n): ');
8
+ const setup = await askQuestion(rl, "Would you like to set up your configuration now? (Y/n): ");
9
9
  rl.close();
10
- if (setup.toLowerCase() === 'n' || setup.toLowerCase() === 'no') {
11
- console.log('\nTo set up later, run: canvas config setup');
12
- console.log('Or set environment variables: CANVAS_DOMAIN and CANVAS_API_TOKEN');
10
+ if (setup.toLowerCase() === "n" || setup.toLowerCase() === "no") {
11
+ console.log("\nTo set up later, run: canvas config setup");
12
+ console.log("Or set environment variables: CANVAS_DOMAIN and CANVAS_API_TOKEN");
13
13
  process.exit(1);
14
14
  }
15
- const { setupConfig } = await import('../commands/config.js');
15
+ const { setupConfig } = await import("../commands/config.js");
16
16
  await setupConfig();
17
17
  if (!configExists()) {
18
18
  console.log('\nConfiguration setup was not completed. Please run "canvas config setup" to try again.');
19
19
  process.exit(1);
20
20
  }
21
- console.log('\nConfiguration complete! You can now use Canvas CLI commands.');
21
+ console.log("\nConfiguration complete! You can now use Canvas CLI commands.");
22
22
  return true;
23
23
  }
24
24
  const config = readConfig();
@@ -29,10 +29,10 @@ async function ensureConfig() {
29
29
  return true;
30
30
  }
31
31
  export function requireConfig(fn) {
32
- return (async function (...args) {
32
+ return async function (...args) {
33
33
  await ensureConfig();
34
34
  return fn(...args);
35
- });
35
+ };
36
36
  }
37
37
  export { ensureConfig };
38
38
  //# sourceMappingURL=config-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../lib/config-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMxE,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAElE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,EAAE,EAAE,0DAA0D,CAAC,CAAC;QAChG,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;YACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,MAAM,GAAwB,UAAU,EAAE,CAAC;IACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,MAAM,UAAU,aAAa,CAAoC,EAAK;IACpE,OAAO,CAAC,KAAK,WAAU,GAAG,IAAmB;QAC3C,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,CAAC,CAAM,CAAC;AACV,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"config-validator.js","sourceRoot":"","sources":["../../lib/config-validator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAMxE,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAEjE,MAAM,EAAE,GAAG,uBAAuB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,EAAE,EACF,0DAA0D,CAC3D,CAAC;QACF,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CACT,kEAAkE,CACnE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QAC9D,MAAM,WAAW,EAAE,CAAC;QAEpB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CACT,yFAAyF,CAC1F,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,MAAM,GAAwB,UAAU,EAAE,CAAC;IACjD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CACT,+EAA+E,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,MAAM,UAAU,aAAa,CAAoC,EAAK;IACpE,OAAO,KAAK,WAAW,GAAG,IAAmB;QAC3C,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,CAAM,CAAC;AACT,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { CanvasConfig, InstanceConfig } from '../types/index.js';
1
+ import type { CanvasConfig, InstanceConfig } from "../types/index.js";
2
2
  export declare function getDefaultConfig(): CanvasConfig;
3
3
  export declare function loadConfig(): InstanceConfig;
4
4
  export declare function saveConfig(domain: string, token: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMtE,wBAAgB,gBAAgB,IAAI,YAAY,CAO/C;AAGD,wBAAgB,UAAU,IAAI,cAAc,CAoB3C;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAejE;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAGD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAYtC;AAGD,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAWhD;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAElD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMtE,wBAAgB,gBAAgB,IAAI,YAAY,CAO/C;AAGD,wBAAgB,UAAU,IAAI,cAAc,CA0B3C;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAejE;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAGD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAGD,wBAAgB,YAAY,IAAI,OAAO,CAYtC;AAGD,wBAAgB,UAAU,IAAI,YAAY,GAAG,IAAI,CAWhD;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAElD"}
@@ -1,25 +1,27 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import os from 'os';
4
- const CONFIG_FILE = path.join(os.homedir(), '.canvaslms-cli-config.json');
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import os from "os";
4
+ const CONFIG_FILE = path.join(os.homedir(), ".canvaslms-cli-config.json");
5
5
  export function getDefaultConfig() {
6
6
  return {
7
- domain: '',
8
- token: '',
7
+ domain: "",
8
+ token: "",
9
9
  createdAt: new Date().toISOString(),
10
- lastUpdated: new Date().toISOString()
10
+ lastUpdated: new Date().toISOString(),
11
11
  };
12
12
  }
13
13
  export function loadConfig() {
14
14
  try {
15
15
  if (fs.existsSync(CONFIG_FILE)) {
16
- const configData = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
16
+ const configData = JSON.parse(fs.readFileSync(CONFIG_FILE, "utf8"));
17
17
  if (configData.domain && configData.token) {
18
- const domain = configData.domain.replace(/^https?:\/\//, '').replace(/\/$/, '');
18
+ const domain = configData.domain
19
+ .replace(/^https?:\/\//, "")
20
+ .replace(/\/$/, "");
19
21
  return { domain, token: configData.token };
20
22
  }
21
23
  }
22
- console.error('No Canvas configuration found!');
24
+ console.error("No Canvas configuration found!");
23
25
  console.error('\nPlease run "canvas config setup" to configure your Canvas credentials.');
24
26
  process.exit(1);
25
27
  }
@@ -32,12 +34,12 @@ export function loadConfig() {
32
34
  export function saveConfig(domain, token) {
33
35
  try {
34
36
  const config = {
35
- domain: domain.replace(/^https?:\/\//, '').replace(/\/$/, ''),
37
+ domain: domain.replace(/^https?:\/\//, "").replace(/\/$/, ""),
36
38
  token,
37
39
  createdAt: new Date().toISOString(),
38
- lastUpdated: new Date().toISOString()
40
+ lastUpdated: new Date().toISOString(),
39
41
  };
40
- fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), 'utf8');
42
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), "utf8");
41
43
  return true;
42
44
  }
43
45
  catch (error) {
@@ -69,7 +71,7 @@ export function deleteConfig() {
69
71
  export function readConfig() {
70
72
  try {
71
73
  if (fs.existsSync(CONFIG_FILE)) {
72
- return JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8'));
74
+ return JSON.parse(fs.readFileSync(CONFIG_FILE, "utf8"));
73
75
  }
74
76
  return null;
75
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CanvasCourse, CanvasAssignment, CanvasAnnouncement } from '../types/index.js';
2
- import { createReadlineInterface } from './interactive.js';
1
+ import type { CanvasCourse, CanvasAssignment, CanvasAnnouncement } from "../types/index.js";
2
+ import { createReadlineInterface } from "./interactive.js";
3
3
  export interface ColumnDefinition {
4
4
  key: string;
5
5
  header: string;
@@ -7,7 +7,7 @@ export interface ColumnDefinition {
7
7
  minWidth?: number;
8
8
  maxWidth?: number;
9
9
  flex?: number;
10
- align?: 'left' | 'right' | 'center';
10
+ align?: "left" | "right" | "center";
11
11
  color?: (value: string, row: Record<string, any>) => string;
12
12
  }
13
13
  export interface TableOptions {
@@ -15,19 +15,25 @@ export interface TableOptions {
15
15
  showRowNumbers?: boolean;
16
16
  rowNumberHeader?: string;
17
17
  }
18
- export declare function pad(str: string, len: number, align?: 'left' | 'right' | 'center'): string;
18
+ export declare function pad(str: string, len: number, align?: "left" | "right" | "center"): string;
19
19
  export declare function truncate(str: string, maxLen: number): string;
20
20
  export declare class Table {
21
21
  private columns;
22
22
  private data;
23
23
  private options;
24
24
  private rowNumWidth;
25
+ private lastLineCount;
26
+ private lastTableWidth;
27
+ private resizeHandler;
28
+ private isWatching;
25
29
  constructor(columns: ColumnDefinition[], options?: TableOptions);
26
30
  addRow(row: Record<string, any>): this;
27
31
  addRows(rows: Record<string, any>[]): this;
28
32
  render(): void;
29
33
  renderWithResize(): void;
34
+ private startWatching;
30
35
  stopWatching(): void;
36
+ private clearTable;
31
37
  private renderTable;
32
38
  private renderTopBorder;
33
39
  private renderHeader;
@@ -59,7 +65,7 @@ export declare function formatGrade(submission: any, pointsPossible: number): {
59
65
  color: (s: string) => string;
60
66
  };
61
67
  export declare function formatDueDate(dueAt: string | null): string;
62
- export declare function displayAssignments(assignments: CanvasAssignment[], options?: AssignmentDisplayOptions): void;
68
+ export declare function displayAssignments(assignments: CanvasAssignment[], options?: AssignmentDisplayOptions): Table;
63
69
  export declare function displaySubmitAssignments(assignments: CanvasAssignment[]): Table;
64
70
  export declare function displayAnnouncements(announcements: CanvasAnnouncement[]): Table;
65
71
  export declare function printSeparator(char?: string, length?: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../lib/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../lib/display.ts"],"names":[],"mappings":"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"}