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
@@ -1,43 +1,45 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
2
- import { Table, printInfo, printError, printSuccess } from '../lib/display.js';
3
- import chalk from 'chalk';
1
+ import { makeCanvasRequest } from "../lib/api-client.js";
2
+ import { Table, printInfo, printError, printSuccess } from "../lib/display.js";
3
+ import chalk from "chalk";
4
4
  export async function listCourses(options) {
5
5
  try {
6
6
  const queryParams = [];
7
- queryParams.push('enrollment_state=active');
8
- queryParams.push('include[]=term');
9
- queryParams.push('include[]=course_progress');
10
- queryParams.push('include[]=total_students');
11
- queryParams.push('include[]=favorites');
12
- printInfo('\n' + '-'.repeat(60));
13
- printInfo('Loading courses, please wait...');
14
- const courses = await makeCanvasRequest('get', 'courses', queryParams);
7
+ queryParams.push("enrollment_state=active");
8
+ queryParams.push("include[]=term");
9
+ queryParams.push("include[]=course_progress");
10
+ queryParams.push("include[]=total_students");
11
+ queryParams.push("include[]=favorites");
12
+ printInfo("\n" + "-".repeat(60));
13
+ printInfo("Loading courses, please wait...");
14
+ const courses = await makeCanvasRequest("get", "courses", queryParams);
15
15
  if (!courses || courses.length === 0) {
16
- printError('No courses found.');
16
+ printError("No courses found.");
17
17
  return;
18
18
  }
19
19
  let filteredCourses = courses;
20
20
  if (!options.all) {
21
- filteredCourses = courses.filter(course => course.is_favorite);
21
+ filteredCourses = courses.filter((course) => course.is_favorite);
22
22
  if (filteredCourses.length === 0) {
23
- printError('No starred courses found. Use -a to see all courses.');
23
+ printError("No starred courses found. Use -a to see all courses.");
24
24
  return;
25
25
  }
26
26
  }
27
- const courseLabel = options.all ? 'enrolled course(s)' : 'starred course(s)';
27
+ const courseLabel = options.all
28
+ ? "enrolled course(s)"
29
+ : "starred course(s)";
28
30
  printSuccess(`Found ${filteredCourses.length} ${courseLabel}.`);
29
31
  const table = new Table([
30
- { key: 'name', header: 'Course Name', flex: 1, minWidth: 20 },
31
- { key: 'id', header: 'ID', minWidth: 6, maxWidth: 10 }
32
+ { key: "name", header: "Course Name", flex: 1, minWidth: 20 },
33
+ { key: "id", header: "ID", width: 8 },
32
34
  ]);
33
- filteredCourses.forEach(course => {
35
+ filteredCourses.forEach((course) => {
34
36
  table.addRow({ name: course.name, id: course.id });
35
37
  });
36
- table.render();
38
+ table.renderWithResize();
37
39
  }
38
40
  catch (error) {
39
41
  const errorMessage = error instanceof Error ? error.message : String(error);
40
- console.error(chalk.red('Error fetching courses:'), errorMessage);
42
+ console.error(chalk.red("Error fetching courses:"), errorMessage);
41
43
  process.exit(1);
42
44
  }
43
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../commands/list.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,IAAI,CAAC;QACH,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAExC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAiB,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEvF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,eAAe,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC/D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,sDAAsD,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAC7E,YAAY,CAAC,SAAS,eAAe,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7D,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;SACvD,CAAC,CAAC;QAEH,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC/B,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,MAAM,EAAE,CAAC;IAEjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,YAAY,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../commands/list.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,IAAI,CAAC;QACH,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC9C,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAExC,SAAS,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,KAAK,EACL,SAAS,EACT,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,eAAe,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACjE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,sDAAsD,CAAC,CAAC;gBACnE,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG;YAC7B,CAAC,CAAC,oBAAoB;YACtB,CAAC,CAAC,mBAAmB,CAAC;QACxB,YAAY,CAAC,SAAS,eAAe,CAAC,MAAM,IAAI,WAAW,GAAG,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7D,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;SACtC,CAAC,CAAC;QAEH,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACjC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,YAAY,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../commands/profile.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,wBAAsB,WAAW,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqF7E"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../commands/profile.ts"],"names":[],"mappings":"AAQA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,wBAAsB,WAAW,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgH7E"}
@@ -1,57 +1,82 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
2
- import chalk from 'chalk';
1
+ import { makeCanvasRequest } from "../lib/api-client.js";
2
+ import chalk from "chalk";
3
3
  function pad(str, len) {
4
- return str + ' '.repeat(Math.max(0, len - str.length));
4
+ return str + " ".repeat(Math.max(0, len - str.length));
5
5
  }
6
6
  export async function showProfile(options = {}) {
7
7
  try {
8
- console.log(chalk.cyan.bold('\nLoading profile, please wait...'));
9
- const user = await makeCanvasRequest('get', 'users/self', ['include[]=email', 'include[]=locale']);
10
- console.log(chalk.green('Profile loaded successfully.'));
8
+ console.log(chalk.cyan.bold("\nLoading profile, please wait..."));
9
+ const user = await makeCanvasRequest("get", "users/self", [
10
+ "include[]=email",
11
+ "include[]=locale",
12
+ ]);
13
+ console.log(chalk.green("Profile loaded successfully."));
11
14
  const basicFields = [
12
- ['Name', user.name || 'N/A'],
13
- ['ID', String(user.id)],
14
- ['Email', user.email || 'N/A'],
15
- ['Login ID', user.login_id || 'N/A'],
15
+ ["Name", user.name || "N/A"],
16
+ ["ID", String(user.id)],
17
+ ["Email", user.email || "N/A"],
18
+ ["Login ID", user.login_id || "N/A"],
16
19
  ];
17
20
  const verboseFields = [
18
- ['Short Name', user.short_name || 'N/A'],
19
- ['Sortable Name', user.sortable_name || 'N/A'],
20
- ['Locale', user.locale || 'N/A'],
21
- ['Time Zone', user.time_zone || 'N/A'],
22
- ['Created', user.created_at ? new Date(user.created_at).toLocaleString() : 'N/A'],
21
+ ["Short Name", user.short_name || "N/A"],
22
+ ["Sortable Name", user.sortable_name || "N/A"],
23
+ ["Locale", user.locale || "N/A"],
24
+ ["Time Zone", user.time_zone || "N/A"],
25
+ [
26
+ "Created",
27
+ user.created_at
28
+ ? new Date(user.created_at).toLocaleString()
29
+ : "N/A",
30
+ ],
23
31
  ];
24
- const fields = options.verbose ? [...basicFields, ...verboseFields] : basicFields;
32
+ const fields = options.verbose
33
+ ? [...basicFields, ...verboseFields]
34
+ : basicFields;
25
35
  const termWidth = process.stdout.columns || 80;
26
36
  const borderOverhead = 7;
27
37
  const available = Math.max(40, termWidth - borderOverhead);
28
- const maxLabelLen = Math.max(5, ...fields.map(f => f[0].length));
29
- const maxValueLen = Math.max(5, ...fields.map(f => f[1].length));
30
- const colLabel = Math.max(maxLabelLen + 1, Math.min(20, Math.floor(available * 0.30)));
38
+ const maxLabelLen = Math.max(5, ...fields.map((f) => f[0].length));
39
+ const maxValueLen = Math.max(5, ...fields.map((f) => f[1].length));
40
+ const colLabel = Math.max(maxLabelLen + 1, Math.min(20, Math.floor(available * 0.3)));
31
41
  const colValue = Math.max(maxValueLen + 1, available - colLabel);
32
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colLabel)) + chalk.gray('┬─') +
33
- chalk.gray(''.repeat(colValue)) + chalk.gray('╮'));
34
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('Field', colLabel)) + chalk.gray('│ ') +
35
- chalk.cyan.bold(pad('Value', colValue)) + chalk.gray('│'));
36
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colLabel)) + chalk.gray('┼─') +
37
- chalk.gray('─'.repeat(colValue)) + chalk.gray('┤'));
42
+ console.log(chalk.gray("╭─") +
43
+ chalk.gray("".repeat(colLabel)) +
44
+ chalk.gray("┬─") +
45
+ chalk.gray("─".repeat(colValue)) +
46
+ chalk.gray("╮"));
47
+ console.log(chalk.gray("│ ") +
48
+ chalk.cyan.bold(pad("Field", colLabel)) +
49
+ chalk.gray("│ ") +
50
+ chalk.cyan.bold(pad("Value", colValue)) +
51
+ chalk.gray("│"));
52
+ console.log(chalk.gray("├─") +
53
+ chalk.gray("─".repeat(colLabel)) +
54
+ chalk.gray("┼─") +
55
+ chalk.gray("─".repeat(colValue)) +
56
+ chalk.gray("┤"));
38
57
  fields.forEach(([label, value]) => {
39
58
  let displayValue = value;
40
59
  if (displayValue.length > colValue) {
41
- displayValue = displayValue.substring(0, colValue - 3) + '...';
60
+ displayValue = displayValue.substring(0, colValue - 3) + "...";
42
61
  }
43
- console.log(chalk.gray('') + chalk.white(pad(label, colLabel)) + chalk.gray('│ ') +
44
- chalk.white(pad(displayValue, colValue)) + chalk.gray('│'));
62
+ console.log(chalk.gray("") +
63
+ chalk.white(pad(label, colLabel)) +
64
+ chalk.gray("│ ") +
65
+ chalk.white(pad(displayValue, colValue)) +
66
+ chalk.gray("│"));
45
67
  });
46
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colLabel)) + chalk.gray('┴─') +
47
- chalk.gray(''.repeat(colValue)) + chalk.gray('╯'));
68
+ console.log(chalk.gray("╰─") +
69
+ chalk.gray("".repeat(colLabel)) +
70
+ chalk.gray("┴─") +
71
+ chalk.gray("─".repeat(colValue)) +
72
+ chalk.gray("╯"));
48
73
  if (options.verbose && user.avatar_url) {
49
- console.log(chalk.gray('\nAvatar URL: ') + chalk.dim(user.avatar_url));
74
+ console.log(chalk.gray("\nAvatar URL: ") + chalk.dim(user.avatar_url));
50
75
  }
51
76
  }
52
77
  catch (error) {
53
78
  const errorMessage = error instanceof Error ? error.message : String(error);
54
- console.error(chalk.red('Error: Failed to fetch profile: ') + errorMessage);
79
+ console.error(chalk.red("Error: Failed to fetch profile: ") + errorMessage);
55
80
  process.exit(1);
56
81
  }
57
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../commands/profile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../commands/profile.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  interface SubmitOptions {
2
- course?: string;
3
2
  file?: string;
4
3
  all?: boolean;
5
4
  dryRun?: boolean;
6
5
  }
7
- export declare function submitAssignment(options: SubmitOptions): Promise<void>;
6
+ export declare function submitAssignment(courseName?: string, options?: SubmitOptions): Promise<void>;
8
7
  export {};
9
8
  //# sourceMappingURL=submit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"AAiBA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4U5E"}
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"AAqBA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD,wBAAsB,gBAAgB,CACpC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAqYf"}
@@ -1,9 +1,10 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
2
- import { uploadSingleFileToCanvas, submitAssignmentWithFiles } from '../lib/file-upload.js';
3
- import { createReadlineInterface, selectFilesKeyboard, askQuestion, askConfirmation } from '../lib/interactive.js';
4
- import { displaySubmitAssignments } from '../lib/display.js';
5
- import chalk from 'chalk';
6
- import path from 'path';
1
+ import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
+ import { uploadSingleFileToCanvas, submitAssignmentWithFiles, } from "../lib/file-upload.js";
3
+ import { createReadlineInterface, selectFilesKeyboard, askQuestion, askConfirmation, } from "../lib/interactive.js";
4
+ import { displaySubmitAssignments } from "../lib/display.js";
5
+ import { getCanvasCourses } from "../lib/api-client.js";
6
+ import chalk from "chalk";
7
+ import path from "path";
7
8
  function clearLines(count = 1) {
8
9
  if (!process.stdout.isTTY)
9
10
  return;
@@ -12,14 +13,14 @@ function clearLines(count = 1) {
12
13
  process.stdout.clearLine(1);
13
14
  }
14
15
  }
15
- export async function submitAssignment(options) {
16
+ export async function submitAssignment(courseName, options = {}) {
16
17
  if (options.dryRun) {
17
- console.log(chalk.bgRedBright('Dry run mode - no actual submission will be made'));
18
+ console.log(chalk.bgRedBright("Dry run mode - no actual submission will be made"));
18
19
  }
19
20
  let rl = createReadlineInterface();
20
21
  let rlForConfirm = rl;
21
- process.on('SIGINT', () => {
22
- console.log(chalk.yellow('\n\nSubmission cancelled by user.'));
22
+ process.on("SIGINT", () => {
23
+ console.log(chalk.yellow("\n\nSubmission cancelled by user."));
23
24
  if (rl)
24
25
  rl.close();
25
26
  if (rlForConfirm && rlForConfirm !== rl)
@@ -27,49 +28,54 @@ export async function submitAssignment(options) {
27
28
  process.exit(0);
28
29
  });
29
30
  try {
30
- console.log(chalk.cyan.bold('\n' + '='.repeat(60)));
31
- console.log(chalk.cyan.bold('Canvas Assignment Submission'));
32
- console.log(chalk.cyan.bold('='.repeat(60)));
31
+ console.log(chalk.cyan.bold("\n" + "=".repeat(60)));
32
+ console.log(chalk.cyan.bold("Canvas Assignment Submission"));
33
+ console.log(chalk.cyan.bold("=".repeat(60)));
33
34
  let courseId;
34
- if (options.course) {
35
- courseId = parseInt(options.course);
36
- console.log(chalk.green(`✓ Using specified course ID: ${courseId}`));
35
+ if (courseName) {
36
+ const course = await getCanvasCourse(courseName);
37
+ if (!course) {
38
+ console.log(chalk.red(`Error: Course "${courseName}" not found.`));
39
+ rl.close();
40
+ return;
41
+ }
42
+ courseId = course.id;
43
+ console.log(chalk.green(`✓ Using course: ${courseName}`));
37
44
  }
38
45
  else {
39
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
40
- console.log(chalk.cyan.bold('Step 1: Select Course'));
41
- console.log(chalk.cyan('-'.repeat(60)));
42
- const queryParams = options.all
43
- ? ['enrollment_state=active', 'per_page=100', 'include[]=term', 'include[]=favorites']
44
- : ['enrollment_state=active', 'per_page=100', 'include[]=term', 'include[]=favorites'];
45
- const courses = await makeCanvasRequest('get', 'courses', queryParams);
46
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
47
+ console.log(chalk.cyan.bold("Step 1: Select Course"));
48
+ console.log(chalk.cyan("-".repeat(60)));
49
+ const courses = await getCanvasCourses(options.all ?? false);
46
50
  if (!courses || courses.length === 0) {
47
- console.log(chalk.red('Error: No courses found.'));
51
+ console.log(chalk.red("Error: No courses found."));
48
52
  rl.close();
49
53
  return;
50
54
  }
51
55
  let displayCourses = courses;
52
56
  if (!options.all) {
53
- displayCourses = courses.filter(c => c.is_favorite);
57
+ displayCourses = courses.filter((c) => c.is_favorite);
54
58
  if (displayCourses.length === 0) {
55
- console.log(chalk.yellow('No starred courses found. Showing all courses instead.'));
59
+ console.log(chalk.yellow("No starred courses found. Showing all courses instead."));
56
60
  displayCourses = courses;
57
61
  }
58
62
  }
59
63
  displayCourses.sort((a, b) => a.name.localeCompare(b.name));
60
- console.log(chalk.cyan.bold('Select a course:'));
64
+ console.log(chalk.cyan.bold("Select a course:"));
61
65
  displayCourses.forEach((course, index) => {
62
- console.log(chalk.white(`${index + 1}.`) + ' ' + course.name);
66
+ console.log(chalk.white(`${index + 1}.`) + " " + course.name);
63
67
  });
64
68
  const courseChoice = await askQuestion(rl, chalk.white('\nEnter course number (or ".."/"back" to cancel): '));
65
- if (!courseChoice.trim() || courseChoice === '..' || courseChoice.toLowerCase() === 'back') {
66
- console.log(chalk.yellow('Submission cancelled.'));
69
+ if (!courseChoice.trim() ||
70
+ courseChoice === ".." ||
71
+ courseChoice.toLowerCase() === "back") {
72
+ console.log(chalk.yellow("Submission cancelled."));
67
73
  rl.close();
68
74
  return;
69
75
  }
70
76
  const courseIndex = parseInt(courseChoice) - 1;
71
77
  if (courseIndex < 0 || courseIndex >= displayCourses.length) {
72
- console.log(chalk.red('Invalid course selection.'));
78
+ console.log(chalk.red("Invalid course selection."));
73
79
  rl.close();
74
80
  return;
75
81
  }
@@ -78,23 +84,20 @@ export async function submitAssignment(options) {
78
84
  clearLines(1);
79
85
  console.log(chalk.green(`✓ Selected course: ${selectedCourse.name}`));
80
86
  }
81
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
82
- console.log(chalk.cyan.bold('Step 2: Select Assignment'));
83
- console.log(chalk.cyan('-'.repeat(60)));
84
- console.log(chalk.white('Loading assignments...'));
85
- const assignmentParams = [
86
- 'include[]=submission',
87
- 'per_page=100'
88
- ];
89
- const assignments = await makeCanvasRequest('get', `courses/${courseId}/assignments`, assignmentParams);
87
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
88
+ console.log(chalk.cyan.bold("Step 2: Select Assignment"));
89
+ console.log(chalk.cyan("-".repeat(60)));
90
+ console.log(chalk.white("Loading assignments..."));
91
+ const assignmentParams = ["include[]=submission", "per_page=100"];
92
+ const assignments = await makeCanvasRequest("get", `courses/${courseId}/assignments`, assignmentParams);
90
93
  if (!assignments || assignments.length === 0) {
91
- console.log(chalk.red('Error: No assignments found for this course.'));
94
+ console.log(chalk.red("Error: No assignments found for this course."));
92
95
  rl.close();
93
96
  return;
94
97
  }
95
- const uploadableAssignments = assignments.filter(a => a.submission_types && a.submission_types.includes('online_upload'));
98
+ const uploadableAssignments = assignments.filter((a) => a.submission_types && a.submission_types.includes("online_upload"));
96
99
  if (uploadableAssignments.length === 0) {
97
- console.log(chalk.red('Error: No assignments accept file uploads in this course.'));
100
+ console.log(chalk.red("Error: No assignments accept file uploads in this course."));
98
101
  rl.close();
99
102
  return;
100
103
  }
@@ -116,14 +119,18 @@ export async function submitAssignment(options) {
116
119
  while (true) {
117
120
  const assignmentChoice = await askQuestion(rl, chalk.white('\nEnter assignment number (or ".."/"back" to cancel): '));
118
121
  assignmentTable.stopWatching();
119
- if (!assignmentChoice.trim() || assignmentChoice === '..' || assignmentChoice.toLowerCase() === 'back') {
120
- console.log(chalk.yellow('Submission cancelled.'));
122
+ if (!assignmentChoice.trim() ||
123
+ assignmentChoice === ".." ||
124
+ assignmentChoice.toLowerCase() === "back") {
125
+ console.log(chalk.yellow("Submission cancelled."));
121
126
  rl.close();
122
127
  return;
123
128
  }
124
129
  const assignmentIndex = parseInt(assignmentChoice) - 1;
125
- if (assignmentIndex < 0 || assignmentIndex >= uploadableAssignments.length || isNaN(assignmentIndex)) {
126
- console.log(chalk.red('Invalid assignment selection. Please try again.'));
130
+ if (assignmentIndex < 0 ||
131
+ assignmentIndex >= uploadableAssignments.length ||
132
+ isNaN(assignmentIndex)) {
133
+ console.log(chalk.red("Invalid assignment selection. Please try again."));
127
134
  continue;
128
135
  }
129
136
  selectedAssignment = uploadableAssignments[assignmentIndex];
@@ -131,9 +138,9 @@ export async function submitAssignment(options) {
131
138
  console.log(chalk.green(`✓ Selected assignment: ${selectedAssignment.name}`));
132
139
  break;
133
140
  }
134
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
135
- console.log(chalk.cyan.bold('Step 3: Select Files to Submit'));
136
- console.log(chalk.cyan('-'.repeat(60)));
141
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
142
+ console.log(chalk.cyan.bold("Step 3: Select Files to Submit"));
143
+ console.log(chalk.cyan("-".repeat(60)));
137
144
  let filesToSubmit = [];
138
145
  if (options.file) {
139
146
  const filePath = path.isAbsolute(options.file)
@@ -143,18 +150,20 @@ export async function submitAssignment(options) {
143
150
  console.log(chalk.green(`✓ Using specified file: ${path.basename(filePath)}`));
144
151
  }
145
152
  else {
146
- console.log(chalk.yellow('\n📂 Opening interactive file browser...'));
153
+ console.log(chalk.yellow("\n📂 Opening interactive file browser..."));
147
154
  rl.close();
148
155
  try {
149
- const allowed = (selectedAssignment && selectedAssignment.allowed_extensions) || undefined;
156
+ const allowed = (selectedAssignment &&
157
+ selectedAssignment.allowed_extensions) ||
158
+ undefined;
150
159
  filesToSubmit = await selectFilesKeyboard(rl, process.cwd(), allowed);
151
160
  if (!filesToSubmit || filesToSubmit.length === 0) {
152
- console.log(chalk.yellow('No files selected. Submission cancelled.'));
161
+ console.log(chalk.yellow("No files selected. Submission cancelled."));
153
162
  return;
154
163
  }
155
164
  }
156
165
  catch (error) {
157
- console.error(chalk.red('Error during file selection:'), error);
166
+ console.error(chalk.red("Error during file selection:"), error);
158
167
  if (process.stdin.isTTY) {
159
168
  process.stdin.setRawMode(false);
160
169
  }
@@ -164,27 +173,27 @@ export async function submitAssignment(options) {
164
173
  process.stdin.setRawMode(false);
165
174
  }
166
175
  process.stdin.resume();
167
- await new Promise(resolve => setTimeout(resolve, 150));
176
+ await new Promise((resolve) => setTimeout(resolve, 150));
168
177
  rlForConfirm = createReadlineInterface();
169
178
  }
170
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
171
- console.log(chalk.cyan.bold('Step 4: Confirm Submission'));
172
- console.log(chalk.cyan('-'.repeat(60)));
179
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
180
+ console.log(chalk.cyan.bold("Step 4: Confirm Submission"));
181
+ console.log(chalk.cyan("-".repeat(60)));
173
182
  console.log(chalk.white(`Course: ${courseId}`));
174
183
  console.log(chalk.white(`Assignment: ${selectedAssignment.name}`));
175
184
  console.log(chalk.white(`Files to submit (${filesToSubmit.length}):`));
176
185
  filesToSubmit.forEach((file, index) => {
177
186
  console.log(chalk.white(` ${index + 1}. ${path.basename(file)}`));
178
187
  });
179
- const confirmed = await askConfirmation(rlForConfirm, chalk.bold.yellow('\nProceed with submission?'), true);
188
+ const confirmed = await askConfirmation(rlForConfirm, chalk.bold.yellow("\nProceed with submission?"), true);
180
189
  if (!confirmed) {
181
- console.log(chalk.yellow('Submission cancelled.'));
190
+ console.log(chalk.yellow("Submission cancelled."));
182
191
  rlForConfirm.close();
183
192
  return;
184
193
  }
185
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
186
- console.log(chalk.cyan.bold('Step 5: Uploading Files'));
187
- console.log(chalk.cyan('-'.repeat(60)));
194
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
195
+ console.log(chalk.cyan.bold("Step 5: Uploading Files"));
196
+ console.log(chalk.cyan("-".repeat(60)));
188
197
  const fileIds = [];
189
198
  for (let i = 0; i < filesToSubmit.length; i++) {
190
199
  const file = filesToSubmit[i];
@@ -204,47 +213,47 @@ export async function submitAssignment(options) {
204
213
  catch (error) {
205
214
  const errorMessage = error instanceof Error ? error.message : String(error);
206
215
  console.log(chalk.red(`✗ Failed to upload ${path.basename(file)}: ${errorMessage}`));
207
- const continueUpload = await askConfirmation(rlForConfirm, chalk.yellow('Continue with remaining files?'), false);
216
+ const continueUpload = await askConfirmation(rlForConfirm, chalk.yellow("Continue with remaining files?"), false);
208
217
  if (!continueUpload) {
209
- console.log(chalk.yellow('Upload cancelled.'));
218
+ console.log(chalk.yellow("Upload cancelled."));
210
219
  rlForConfirm.close();
211
220
  return;
212
221
  }
213
222
  }
214
223
  }
215
224
  if (fileIds.length === 0) {
216
- console.log(chalk.red('Error: No files were successfully uploaded.'));
225
+ console.log(chalk.red("Error: No files were successfully uploaded."));
217
226
  rlForConfirm.close();
218
227
  return;
219
228
  }
220
- console.log(chalk.cyan('\n' + '-'.repeat(60)));
221
- console.log(chalk.cyan.bold('Submitting Assignment'));
222
- console.log(chalk.cyan('-'.repeat(60)));
223
- console.log(chalk.white('Finalizing submission...'));
229
+ console.log(chalk.cyan("\n" + "-".repeat(60)));
230
+ console.log(chalk.cyan.bold("Submitting Assignment"));
231
+ console.log(chalk.cyan("-".repeat(60)));
232
+ console.log(chalk.white("Finalizing submission..."));
224
233
  try {
225
234
  if (!options.dryRun) {
226
235
  await submitAssignmentWithFiles(courseId, selectedAssignment.id, fileIds);
227
236
  }
228
- const config = await import('../lib/config.js').then(c => c.loadConfig());
237
+ const config = await import("../lib/config.js").then((c) => c.loadConfig());
229
238
  const assignmentUrl = `https://${config.domain}/courses/${courseId}/assignments/${selectedAssignment.id}`;
230
- console.log(chalk.cyan('\n' + '='.repeat(60)));
231
- console.log(chalk.green.bold('Assignment submitted successfully!'));
232
- console.log(chalk.cyan('='.repeat(60)));
239
+ console.log(chalk.cyan("\n" + "=".repeat(60)));
240
+ console.log(chalk.green.bold("Assignment submitted successfully!"));
241
+ console.log(chalk.cyan("=".repeat(60)));
233
242
  console.log(chalk.white(`Course ID: ${courseId}`));
234
243
  console.log(chalk.white(`Assignment: ${selectedAssignment.name}`));
235
244
  console.log(chalk.white(`Files submitted: ${fileIds.length}`));
236
- console.log(chalk.white('Assignment URL: '), chalk.blue(assignmentUrl));
237
- console.log(chalk.cyan('='.repeat(60)));
245
+ console.log(chalk.white("Assignment URL: "), chalk.blue(assignmentUrl));
246
+ console.log(chalk.cyan("=".repeat(60)));
238
247
  }
239
248
  catch (error) {
240
249
  const errorMessage = error instanceof Error ? error.message : String(error);
241
- console.log(chalk.red('\nError submitting assignment: ' + errorMessage));
242
- console.log(chalk.yellow('Files were uploaded but submission failed. You may need to complete the submission manually in Canvas.'));
250
+ console.log(chalk.red("\nError submitting assignment: " + errorMessage));
251
+ console.log(chalk.yellow("Files were uploaded but submission failed. You may need to complete the submission manually in Canvas."));
243
252
  }
244
253
  }
245
254
  catch (error) {
246
255
  const errorMessage = error instanceof Error ? error.message : String(error);
247
- console.error(chalk.red('\nError during submission process:'), errorMessage);
256
+ console.error(chalk.red("\nError during submission process:"), errorMessage);
248
257
  process.exit(1);
249
258
  }
250
259
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"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"}