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,30 +1,30 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
2
- import { createReadlineInterface, askQuestionWithValidation } from '../lib/interactive.js';
3
- import { pad } from '../lib/display.js';
4
- import chalk from 'chalk';
1
+ import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
+ import { createReadlineInterface, askQuestionWithValidation, } from "../lib/interactive.js";
3
+ import { Table } from "../lib/display.js";
4
+ import chalk from "chalk";
5
5
  async function showDetailedGrades(courseId, options) {
6
- console.log(chalk.cyan.bold('\n' + '='.repeat(80)));
7
- console.log(chalk.cyan.bold('Loading course grades, please wait...'));
8
- const course = await makeCanvasRequest('get', `courses/${courseId}`);
9
- const enrollmentParams = ['user_id=self', 'include[]=total_scores'];
10
- enrollmentParams.push('state[]=active');
11
- enrollmentParams.push('state[]=invited');
12
- enrollmentParams.push('state[]=creation_pending');
13
- enrollmentParams.push('state[]=rejected');
14
- enrollmentParams.push('state[]=completed');
15
- enrollmentParams.push('state[]=inactive');
16
- const enrollments = await makeCanvasRequest('get', `courses/${courseId}/enrollments`, enrollmentParams);
6
+ console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
7
+ console.log(chalk.cyan.bold("Loading course grades, please wait..."));
8
+ const course = await makeCanvasRequest("get", `courses/${courseId}`);
9
+ const enrollmentParams = ["user_id=self", "include[]=total_scores"];
10
+ enrollmentParams.push("state[]=active");
11
+ enrollmentParams.push("state[]=invited");
12
+ enrollmentParams.push("state[]=creation_pending");
13
+ enrollmentParams.push("state[]=rejected");
14
+ enrollmentParams.push("state[]=completed");
15
+ enrollmentParams.push("state[]=inactive");
16
+ const enrollments = await makeCanvasRequest("get", `courses/${courseId}/enrollments`, enrollmentParams);
17
17
  if (!enrollments || enrollments.length === 0) {
18
- console.log(chalk.red('Error: No enrollment found for this course.'));
18
+ console.log(chalk.red("Error: No enrollment found for this course."));
19
19
  return;
20
20
  }
21
21
  const enrollment = enrollments[0];
22
22
  const grades = enrollment?.grades;
23
- const assignments = await makeCanvasRequest('get', `courses/${courseId}/assignments`, ['include[]=submission', 'per_page=100']);
24
- console.log(chalk.cyan.bold('\n' + '='.repeat(80)));
23
+ const assignments = await makeCanvasRequest("get", `courses/${courseId}/assignments`, ["include[]=submission", "per_page=100"]);
24
+ console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
25
25
  console.log(chalk.cyan.bold(`Course: ${course.name}`));
26
- console.log(chalk.cyan('='.repeat(80)));
27
- const assignmentGrades = assignments.map(assignment => {
26
+ console.log(chalk.cyan("=".repeat(80)));
27
+ const assignmentGrades = assignments.map((assignment) => {
28
28
  const submission = assignment.submission;
29
29
  return {
30
30
  name: assignment.name,
@@ -33,271 +33,226 @@ async function showDetailedGrades(courseId, options) {
33
33
  pointsPossible: assignment.points_possible || 0,
34
34
  submitted: !!(submission && submission.submitted_at),
35
35
  graded: submission?.score !== null && submission?.score !== undefined,
36
- dueAt: assignment.due_at
36
+ dueAt: assignment.due_at,
37
37
  };
38
38
  });
39
- const gradedAssignments = assignmentGrades.filter(a => a.graded);
39
+ const gradedAssignments = assignmentGrades.filter((a) => a.graded);
40
40
  const totalPointsEarned = gradedAssignments.reduce((sum, a) => sum + (a.score || 0), 0);
41
41
  const totalPointsPossible = gradedAssignments.reduce((sum, a) => sum + a.pointsPossible, 0);
42
42
  const calculatedPercentage = totalPointsPossible > 0
43
43
  ? ((totalPointsEarned / totalPointsPossible) * 100).toFixed(2)
44
- : 'N/A';
45
- console.log(chalk.white.bold('\nOverall Grades:'));
46
- const termWidth = process.stdout.columns || 80;
47
- const borderOverhead = 10;
48
- const availableWidth = Math.max(60, termWidth - borderOverhead);
49
- const colMetric = Math.max(18, Math.floor(availableWidth * 0.35));
50
- const colScore = Math.max(20, Math.floor(availableWidth * 0.40));
51
- const colStatus = Math.max(12, availableWidth - colMetric - colScore);
52
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colMetric)) + chalk.gray('┬─') +
53
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┬─') +
54
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('╮'));
55
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('Metric', colMetric)) + chalk.gray('│ ') +
56
- chalk.cyan.bold(pad('Score/Grade', colScore)) + chalk.gray('│ ') +
57
- chalk.cyan.bold(pad('Status', colStatus)) + chalk.gray('│'));
58
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colMetric)) + chalk.gray('┼─') +
59
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┼─') +
60
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┤'));
44
+ : "N/A";
45
+ console.log(chalk.white.bold("\nOverall Grades:"));
46
+ const overallTable = new Table([
47
+ { key: "metric", header: "Metric", flex: 1, minWidth: 15 },
48
+ { key: "score", header: "Score/Grade", width: 15 },
49
+ { key: "status", header: "Status", width: 12 },
50
+ ], { showRowNumbers: false });
61
51
  if (grades) {
62
- const currentScoreValue = grades.current_score !== null ? `${grades.current_score}%` : 'N/A';
63
- const finalScoreValue = grades.final_score !== null ? `${grades.final_score}%` : 'N/A';
64
- const currentGradeValue = grades.current_grade || 'N/A';
65
- const finalGradeValue = grades.final_grade || 'N/A';
66
- console.log(chalk.gray('│ ') + chalk.white(pad('Current Score', colMetric)) + chalk.gray('│ ') +
67
- chalk.green.bold(pad(currentScoreValue, colScore)) + chalk.gray('│ ') +
68
- chalk.gray(pad('Official', colStatus)) + chalk.gray('│'));
69
- console.log(chalk.gray('│ ') + chalk.white(pad('Final Score', colMetric)) + chalk.gray('│ ') +
70
- chalk.green.bold(pad(finalScoreValue, colScore)) + chalk.gray('│ ') +
71
- chalk.gray(pad('Official', colStatus)) + chalk.gray('│'));
72
- console.log(chalk.gray('│ ') + chalk.white(pad('Current Grade', colMetric)) + chalk.gray('│ ') +
73
- chalk.green.bold(pad(currentGradeValue, colScore)) + chalk.gray('│ ') +
74
- chalk.gray(pad('Letter Grade', colStatus)) + chalk.gray('│'));
75
- console.log(chalk.gray('│ ') + chalk.white(pad('Final Grade', colMetric)) + chalk.gray('│ ') +
76
- chalk.green.bold(pad(finalGradeValue, colScore)) + chalk.gray('│ ') +
77
- chalk.gray(pad('Letter Grade', colStatus)) + chalk.gray('│'));
78
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colMetric)) + chalk.gray('┼─') +
79
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┼─') +
80
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┤'));
52
+ overallTable.addRow({
53
+ metric: "Current Score",
54
+ score: grades.current_score !== null ? `${grades.current_score}%` : "N/A",
55
+ status: "Official",
56
+ });
57
+ overallTable.addRow({
58
+ metric: "Final Score",
59
+ score: grades.final_score !== null ? `${grades.final_score}%` : "N/A",
60
+ status: "Official",
61
+ });
62
+ overallTable.addRow({
63
+ metric: "Current Grade",
64
+ score: grades.current_grade || "N/A",
65
+ status: "Letter Grade",
66
+ });
67
+ overallTable.addRow({
68
+ metric: "Final Grade",
69
+ score: grades.final_grade || "N/A",
70
+ status: "Letter Grade",
71
+ });
81
72
  }
82
- console.log(chalk.gray('│ ') + chalk.white(pad('Graded Assignments', colMetric)) + chalk.gray('│ ') +
83
- chalk.cyan.bold(pad(`${gradedAssignments.length} / ${assignments.length}`, colScore)) + chalk.gray('│ ') +
84
- chalk.gray(pad('Completed', colStatus)) + chalk.gray('│'));
85
- console.log(chalk.gray('│ ') + chalk.white(pad('Points Earned', colMetric)) + chalk.gray('│ ') +
86
- chalk.cyan.bold(pad(`${totalPointsEarned.toFixed(2)} / ${totalPointsPossible.toFixed(2)}`, colScore)) + chalk.gray('│ ') +
87
- chalk.gray(pad('Total', colStatus)) + chalk.gray('│'));
88
- console.log(chalk.gray('│ ') + chalk.white(pad('Calculated Average', colMetric)) + chalk.gray('│ ') +
89
- chalk.cyan.bold(pad(typeof calculatedPercentage === 'string' ? calculatedPercentage : `${calculatedPercentage}%`, colScore)) + chalk.gray('│ ') +
90
- chalk.gray(pad('From Graded', colStatus)) + chalk.gray('│'));
91
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colMetric)) + chalk.gray('┴─') +
92
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┴─') +
93
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('╯'));
94
- console.log(chalk.white.bold('\nAssignment Breakdown:'));
73
+ overallTable.addRow({
74
+ metric: "Graded Assignments",
75
+ score: `${gradedAssignments.length} / ${assignments.length}`,
76
+ status: "Completed",
77
+ });
78
+ overallTable.addRow({
79
+ metric: "Points Earned",
80
+ score: `${totalPointsEarned.toFixed(1)} / ${totalPointsPossible.toFixed(1)}`,
81
+ status: "Total",
82
+ });
83
+ overallTable.addRow({
84
+ metric: "Calculated Average",
85
+ score: `${calculatedPercentage}%`,
86
+ status: "From Graded",
87
+ });
88
+ overallTable.renderWithResize();
89
+ console.log(chalk.white.bold("\nAssignment Breakdown:"));
95
90
  if (assignments.length === 0) {
96
- console.log(chalk.yellow(' No assignments found for this course.'));
91
+ console.log(chalk.yellow(" No assignments found for this course."));
97
92
  }
98
93
  else {
99
- const tw = process.stdout.columns || 100;
100
- const overhead = 16;
101
- const available = Math.max(80, tw - overhead);
102
- const colNo = Math.max(4, Math.min(6, Math.floor(available * 0.05)));
103
- const colScore = Math.max(10, Math.min(15, Math.floor(available * 0.12)));
104
- const colStatus = Math.max(10, Math.min(15, Math.floor(available * 0.12)));
105
- const colDate = Math.max(12, Math.min(20, Math.floor(available * 0.18)));
106
- const colName = Math.max(20, available - colNo - colScore - colStatus - colDate);
107
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┬─') +
108
- chalk.gray('─'.repeat(colName)) + chalk.gray('┬─') +
109
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┬─') +
110
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┬─') +
111
- chalk.gray('─'.repeat(colDate)) + chalk.gray('╮'));
112
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('#', colNo)) + chalk.gray('│ ') +
113
- chalk.cyan.bold(pad('Assignment Name', colName)) + chalk.gray('│ ') +
114
- chalk.cyan.bold(pad('Score', colScore)) + chalk.gray('│ ') +
115
- chalk.cyan.bold(pad('Status', colStatus)) + chalk.gray('│ ') +
116
- chalk.cyan.bold(pad('Due Date', colDate)) + chalk.gray('│'));
117
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┼─') +
118
- chalk.gray('─'.repeat(colName)) + chalk.gray('┼─') +
119
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┼─') +
120
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┼─') +
121
- chalk.gray('─'.repeat(colDate)) + chalk.gray('┤'));
122
- assignmentGrades.forEach((assignment, index) => {
94
+ const breakdownTable = new Table([
95
+ { key: "name", header: "Assignment Name", flex: 1, minWidth: 15 },
96
+ { key: "score", header: "Score", width: 10 },
97
+ {
98
+ key: "status",
99
+ header: "Status",
100
+ width: 10,
101
+ color: (value, row) => {
102
+ if (row._graded) {
103
+ const pct = row._percentage;
104
+ if (pct >= 80)
105
+ return chalk.green(value);
106
+ if (pct >= 50)
107
+ return chalk.yellow(value);
108
+ return chalk.red(value);
109
+ }
110
+ if (row._submitted)
111
+ return chalk.cyan(value);
112
+ return chalk.gray(value);
113
+ },
114
+ },
115
+ { key: "due", header: "Due", width: 10 },
116
+ ], { showRowNumbers: true });
117
+ assignmentGrades.forEach((assignment) => {
123
118
  const scoreDisplay = assignment.graded
124
119
  ? `${(assignment.score || 0).toFixed(1)}/${assignment.pointsPossible}`
125
120
  : assignment.pointsPossible > 0
126
121
  ? `–/${assignment.pointsPossible}`
127
- : 'N/A';
128
- let statusDisplay = '';
129
- let statusColor = chalk.gray;
122
+ : "N/A";
123
+ let statusDisplay = "";
130
124
  if (assignment.graded) {
131
- const percentage = assignment.pointsPossible > 0
132
- ? ((assignment.score || 0) / assignment.pointsPossible) * 100
133
- : 0;
134
- if (percentage >= 80) {
135
- statusDisplay = '✓ Graded';
136
- statusColor = chalk.green;
137
- }
138
- else if (percentage >= 50) {
139
- statusDisplay = '✓ Graded';
140
- statusColor = chalk.yellow;
141
- }
142
- else {
143
- statusDisplay = '✓ Graded';
144
- statusColor = chalk.red;
145
- }
125
+ statusDisplay = "✓ Graded";
146
126
  }
147
127
  else if (assignment.submitted) {
148
- statusDisplay = 'Pending';
149
- statusColor = chalk.cyan;
128
+ statusDisplay = "Pending";
150
129
  }
151
130
  else {
152
- statusDisplay = 'Not Done';
153
- statusColor = chalk.gray;
131
+ statusDisplay = "Not Done";
154
132
  }
155
- const dueDate = assignment.dueAt
156
- ? new Date(assignment.dueAt).toLocaleDateString()
157
- : 'No due date';
158
- let displayName = assignment.name;
159
- if (displayName.length > colName) {
160
- displayName = displayName.substring(0, colName - 3) + '...';
133
+ let dueDate = "No due";
134
+ if (assignment.dueAt) {
135
+ const d = new Date(assignment.dueAt);
136
+ dueDate = `${(d.getMonth() + 1).toString().padStart(2, "0")}/${d.getDate().toString().padStart(2, "0")}/${d.getFullYear()}`;
161
137
  }
162
- console.log(chalk.gray('│ ') + chalk.white(pad((index + 1).toString(), colNo)) + chalk.gray('│ ') +
163
- chalk.white(pad(displayName, colName)) + chalk.gray('│ ') +
164
- chalk.white(pad(scoreDisplay, colScore)) + chalk.gray('│ ') +
165
- statusColor(pad(statusDisplay, colStatus)) + chalk.gray('│ ') +
166
- chalk.gray(pad(dueDate, colDate)) + chalk.gray('│'));
138
+ const percentage = assignment.pointsPossible > 0
139
+ ? ((assignment.score || 0) / assignment.pointsPossible) * 100
140
+ : 0;
141
+ breakdownTable.addRow({
142
+ name: assignment.name,
143
+ score: scoreDisplay,
144
+ status: statusDisplay,
145
+ due: dueDate,
146
+ _graded: assignment.graded,
147
+ _submitted: assignment.submitted,
148
+ _percentage: percentage,
149
+ });
167
150
  });
168
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┴─') +
169
- chalk.gray('─'.repeat(colName)) + chalk.gray('┴─') +
170
- chalk.gray('─'.repeat(colScore)) + chalk.gray('┴─') +
171
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┴─') +
172
- chalk.gray('─'.repeat(colDate)) + chalk.gray('╯'));
151
+ breakdownTable.renderWithResize();
173
152
  }
174
- console.log(chalk.cyan('='.repeat(80)));
153
+ console.log(chalk.cyan("=".repeat(80)));
175
154
  if (options.verbose && enrollment) {
176
- console.log(chalk.cyan('\n' + '-'.repeat(80)));
177
- console.log(chalk.cyan.bold('Enrollment Details:'));
178
- console.log(chalk.white(' Enrollment ID: ') + enrollment.id);
179
- console.log(chalk.white(' Type: ') + enrollment.type);
180
- console.log(chalk.white(' State: ') + enrollment.enrollment_state);
181
- console.log(chalk.cyan('-'.repeat(80)));
155
+ console.log(chalk.cyan("\n" + "-".repeat(80)));
156
+ console.log(chalk.cyan.bold("Enrollment Details:"));
157
+ console.log(chalk.white(" Enrollment ID: ") + enrollment.id);
158
+ console.log(chalk.white(" Type: ") + enrollment.type);
159
+ console.log(chalk.white(" State: ") + enrollment.enrollment_state);
160
+ console.log(chalk.cyan("-".repeat(80)));
182
161
  }
183
162
  }
184
- export async function showGrades(courseId, options = {}) {
163
+ export async function showGrades(courseName, options = {}) {
185
164
  try {
186
- if (courseId) {
187
- await showDetailedGrades(courseId, options);
165
+ if (courseName) {
166
+ const course = await getCanvasCourse(courseName);
167
+ if (!course) {
168
+ console.log(chalk.red(`Error: Course "${courseName}" not found.`));
169
+ return;
170
+ }
171
+ console.log(chalk.green(`✓ Using course: ${course.name}`));
172
+ await showDetailedGrades(course.id.toString(), options);
188
173
  }
189
174
  else {
190
175
  const rl = createReadlineInterface();
191
- console.log(chalk.cyan.bold('\n' + '='.repeat(80)));
192
- console.log(chalk.cyan.bold('Loading your courses, please wait...'));
193
- const enrollmentState = options.all ? undefined : 'active';
176
+ console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
177
+ console.log(chalk.cyan.bold("Loading your courses, please wait..."));
178
+ const enrollmentState = options.all ? undefined : "active";
194
179
  const queryParams = [
195
- 'include[]=total_scores',
196
- 'include[]=current_grading_period_scores',
197
- 'per_page=100'
180
+ "include[]=total_scores",
181
+ "include[]=current_grading_period_scores",
182
+ "per_page=100",
198
183
  ];
199
184
  if (enrollmentState) {
200
185
  queryParams.unshift(`enrollment_state=${enrollmentState}`);
201
186
  }
202
- let courses = await makeCanvasRequest('get', 'courses', queryParams);
187
+ let courses = await makeCanvasRequest("get", "courses", queryParams);
203
188
  if (!courses || courses.length === 0) {
204
- console.log(chalk.red('Error: No courses found.'));
189
+ console.log(chalk.red("Error: No courses found."));
205
190
  rl.close();
206
191
  return;
207
192
  }
208
193
  if (courses.length === 0) {
209
- console.log(chalk.red('Error: No courses found (after filtering).'));
194
+ console.log(chalk.red("Error: No courses found (after filtering)."));
210
195
  rl.close();
211
196
  return;
212
197
  }
213
198
  const coursesWithGrades = [];
214
199
  for (const course of courses) {
215
200
  try {
216
- const enrollmentParams = ['user_id=self', 'include[]=total_scores'];
217
- enrollmentParams.push('state[]=active');
218
- enrollmentParams.push('state[]=invited');
219
- enrollmentParams.push('state[]=creation_pending');
220
- enrollmentParams.push('state[]=rejected');
221
- enrollmentParams.push('state[]=completed');
222
- enrollmentParams.push('state[]=inactive');
223
- const enrollments = await makeCanvasRequest('get', `courses/${course.id}/enrollments`, enrollmentParams);
201
+ const enrollmentParams = ["user_id=self", "include[]=total_scores"];
202
+ enrollmentParams.push("state[]=active");
203
+ enrollmentParams.push("state[]=invited");
204
+ enrollmentParams.push("state[]=creation_pending");
205
+ enrollmentParams.push("state[]=rejected");
206
+ enrollmentParams.push("state[]=completed");
207
+ enrollmentParams.push("state[]=inactive");
208
+ const enrollments = await makeCanvasRequest("get", `courses/${course.id}/enrollments`, enrollmentParams);
224
209
  coursesWithGrades.push({
225
210
  course,
226
- enrollment: enrollments[0] || null
211
+ enrollment: enrollments[0] || null,
227
212
  });
228
213
  }
229
- catch (error) {
214
+ catch {
230
215
  coursesWithGrades.push({
231
216
  course,
232
- enrollment: null
217
+ enrollment: null,
233
218
  });
234
219
  }
235
220
  }
236
- console.log(chalk.cyan.bold('\n' + '='.repeat(80)));
237
- console.log(chalk.cyan.bold('Your Courses - Grades Summary'));
238
- console.log(chalk.green(`✓ Found ${coursesWithGrades.length} course(s)${options.all ? ' (including inactive)' : ' (active only)'}.`));
239
- const colNo = Math.max(3, coursesWithGrades.length.toString().length + 1);
240
- const colStatus = Math.max(8, ...coursesWithGrades.map(c => (c.course.workflow_state === 'available' ? 'Active' : (c.course.workflow_state || 'Inactive')).length));
241
- const colCurrent = Math.max(9, ...coursesWithGrades.map(c => {
242
- const s = c.enrollment?.grades?.current_score;
243
- return s !== null && s !== undefined ? `${s}%`.length : 3;
244
- }));
245
- const colFinal = Math.max(7, ...coursesWithGrades.map(c => {
246
- const s = c.enrollment?.grades?.final_score;
247
- return s !== null && s !== undefined ? `${s}%`.length : 3;
248
- }));
249
- const terminalWidth = process.stdout.columns || 80;
250
- const overhead = 16;
251
- const availableForName = Math.max(20, terminalWidth - (colNo + colStatus + colCurrent + colFinal + overhead));
252
- const maxNameLength = Math.max(11, ...coursesWithGrades.map(c => c.course.name.length));
253
- const colName = Math.min(maxNameLength, availableForName);
254
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┬─') +
255
- chalk.gray('─'.repeat(colName)) + chalk.gray('┬─') +
256
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┬─') +
257
- chalk.gray('─'.repeat(colCurrent)) + chalk.gray('┬─') +
258
- chalk.gray('─'.repeat(colFinal)) + chalk.gray('╮'));
259
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('#', colNo)) + chalk.gray('│ ') +
260
- chalk.cyan.bold(pad('Course Name', colName)) + chalk.gray('│ ') +
261
- chalk.cyan.bold(pad('Status', colStatus)) + chalk.gray('│ ') +
262
- chalk.cyan.bold(pad('Current', colCurrent)) + chalk.gray('│ ') +
263
- chalk.cyan.bold(pad('Final', colFinal)) + chalk.gray('│'));
264
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┼─') +
265
- chalk.gray('─'.repeat(colName)) + chalk.gray('┼─') +
266
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┼─') +
267
- chalk.gray('─'.repeat(colCurrent)) + chalk.gray('┼─') +
268
- chalk.gray('─'.repeat(colFinal)) + chalk.gray('┤'));
269
- coursesWithGrades.forEach((item, index) => {
221
+ console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
222
+ console.log(chalk.cyan.bold("Your Courses - Grades Summary"));
223
+ console.log(chalk.green(`✓ Found ${coursesWithGrades.length} course(s)${options.all ? " (including inactive)" : " (active only)"}.`));
224
+ const summaryTable = new Table([
225
+ { key: "name", header: "Course Name", flex: 1, minWidth: 15 },
226
+ {
227
+ key: "status",
228
+ header: "Status",
229
+ width: 8,
230
+ color: (value, row) => row._isActive ? chalk.green(value) : chalk.gray(value),
231
+ },
232
+ { key: "current", header: "Current", width: 8 },
233
+ { key: "final", header: "Final", width: 8 },
234
+ ], { showRowNumbers: true });
235
+ coursesWithGrades.forEach((item) => {
270
236
  const { course, enrollment } = item;
271
237
  const grades = enrollment?.grades;
272
- const currentScore = grades?.current_score !== null && grades?.current_score !== undefined
273
- ? `${grades.current_score}%`
274
- : 'N/A';
275
- const finalScore = grades?.final_score !== null && grades?.final_score !== undefined
276
- ? `${grades.final_score}%`
277
- : 'N/A';
278
- const statusText = course.workflow_state === 'available' ? 'Active' : (course.workflow_state || 'Inactive');
279
- const statusColored = course.workflow_state === 'available' ?
280
- chalk.green(pad(statusText, colStatus)) :
281
- chalk.gray(pad(statusText, colStatus));
282
- let displayName = course.name;
283
- if (displayName.length > colName) {
284
- displayName = displayName.substring(0, colName - 3) + '...';
285
- }
286
- console.log(chalk.gray('│ ') + chalk.white(pad((index + 1).toString(), colNo)) + chalk.gray('│ ') +
287
- chalk.white(pad(displayName, colName)) + chalk.gray('│ ') +
288
- statusColored + chalk.gray('│ ') +
289
- chalk.white(pad(currentScore, colCurrent)) + chalk.gray('│ ') +
290
- chalk.white(pad(finalScore, colFinal)) + chalk.gray('│'));
238
+ summaryTable.addRow({
239
+ name: course.name,
240
+ status: course.workflow_state === "available" ? "Active" : "Inactive",
241
+ current: grades?.current_score !== null &&
242
+ grades?.current_score !== undefined
243
+ ? `${grades.current_score}%`
244
+ : "N/A",
245
+ final: grades?.final_score !== null && grades?.final_score !== undefined
246
+ ? `${grades.final_score}%`
247
+ : "N/A",
248
+ _isActive: course.workflow_state === "available",
249
+ });
291
250
  });
292
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┴─') +
293
- chalk.gray('─'.repeat(colName)) + chalk.gray('┴─') +
294
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┴─') +
295
- chalk.gray('─'.repeat(colCurrent)) + chalk.gray('┴─') +
296
- chalk.gray('─'.repeat(colFinal)) + chalk.gray('╯'));
297
- console.log(chalk.yellow('\nSelect a course to view detailed grades for all assignments.'));
298
- console.log(chalk.gray(' Or enter 0 to exit.'));
251
+ summaryTable.renderWithResize();
252
+ console.log(chalk.yellow("\nSelect a course to view detailed grades for all assignments."));
253
+ console.log(chalk.gray(" Or enter 0 to exit."));
299
254
  if (!options.all) {
300
- console.log(chalk.gray(' Tip: Use --all flag to include inactive courses.\n'));
255
+ console.log(chalk.gray(" Tip: Use --all flag to include inactive courses.\n"));
301
256
  }
302
257
  else {
303
258
  console.log();
@@ -306,11 +261,11 @@ export async function showGrades(courseId, options = {}) {
306
261
  const num = parseInt(input);
307
262
  return !isNaN(num) && num >= 0 && num <= coursesWithGrades.length;
308
263
  };
309
- const answer = await askQuestionWithValidation(rl, chalk.bold.cyan('Enter course number: '), validator, chalk.red(`Please enter a number between 0 and ${coursesWithGrades.length}.`));
264
+ const answer = await askQuestionWithValidation(rl, chalk.bold.cyan("Enter course number: "), validator, chalk.red(`Please enter a number between 0 and ${coursesWithGrades.length}.`));
310
265
  const choice = parseInt(answer);
311
266
  rl.close();
312
267
  if (choice === 0) {
313
- console.log(chalk.yellow('\nExiting grades viewer.'));
268
+ console.log(chalk.yellow("\nExiting grades viewer."));
314
269
  return;
315
270
  }
316
271
  const selectedCourse = coursesWithGrades[choice - 1];
@@ -322,7 +277,7 @@ export async function showGrades(courseId, options = {}) {
322
277
  }
323
278
  catch (error) {
324
279
  const errorMessage = error instanceof Error ? error.message : String(error);
325
- console.error(chalk.red('Error fetching grades:'), errorMessage);
280
+ console.error(chalk.red("Error fetching grades:"), errorMessage);
326
281
  process.exit(1);
327
282
  }
328
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grades.js","sourceRoot":"","sources":["../../commands/grades.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grades.js","sourceRoot":"","sources":["../../commands/grades.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { ListCoursesOptions } from '../types/index.js';
1
+ import type { ListCoursesOptions } from "../types/index.js";
2
2
  export declare function listCourses(options: ListCoursesOptions): Promise<void>;
3
3
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../commands/list.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+C5E"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../commands/list.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD5E"}