canvaslms-cli 1.6.9 → 1.7.0

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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.7.0] - 2025-12-17
9
+
10
+ ### Changed (1.7.0)
11
+
12
+ - **Grades Command**: Refactored to use `Table` class for consistent rendering across all grade displays
13
+ - Simplified overall grades display by showing only final scores/grades when available, or current scores/grades when course is in progress
14
+ - Removed calculated average metric to reduce redundancy with official Canvas grades
15
+ - Improved table responsiveness with flex-based column widths
16
+ - Enhanced status color coding for assignment breakdown
17
+
8
18
  ## [1.6.9] - 2025-12-16
9
19
 
10
20
  ### Fixed (1.6.9)
package/README.md CHANGED
@@ -14,6 +14,20 @@ A modern, user-friendly command-line interface for Canvas LMS. Manage courses, a
14
14
  - Modern table displays with adaptive column widths
15
15
  - Direct access to Canvas API endpoints
16
16
 
17
+ ## Preview
18
+
19
+ ### Interactive Files Selection
20
+
21
+ ![Interactive files selection](assets/interactive.png)
22
+
23
+ ### Assignment Submission Interface
24
+
25
+ ![Assignment submission interface](assets/assignment_selection.png)
26
+
27
+ ### Detailed Grades View
28
+
29
+ ![Detailed grades view](assets/grades_view.png)
30
+
17
31
  ## Installation
18
32
 
19
33
  ### Global (Recommended)
@@ -32,6 +46,9 @@ The setup wizard will guide you through:
32
46
  - Scroll down to "Approved Integrations"
33
47
  - Click "+ New Access Token"
34
48
  - Copy the generated token
49
+
50
+ ![Canvas Approved Integrations](assets/approved_integrations_canvas.png)
51
+
35
52
  2. **Configure the CLI**
36
53
 
37
54
  ```bash
@@ -102,78 +119,6 @@ canvas profile # Show user profile
102
119
  canvas profile -v # Show all profile fields
103
120
  ```
104
121
 
105
- ### Assignment Submission
106
-
107
- The submit command provides an interactive file selection experience with a visual file browser:
108
-
109
- ```bash
110
- canvas submit # Full interactive mode
111
- canvas submit "course name" # Specify course by name
112
- canvas submit -f <file> # Submit specific file
113
- canvas submit --dry-run # Test submission flow without uploading
114
- canvas submit -a # Show all courses (not just starred)
115
- ```
116
-
117
- ### Course Grades
118
-
119
- ```bash
120
- canvas grades # Interactive course selection (active courses)
121
- canvas grades "software" # View grades for course matching "software"
122
- canvas grades --all # Include inactive/completed courses
123
- canvas grades --verbose # Include enrollment details
124
- canvas grades -a -v # All courses with verbose details
125
- ```
126
-
127
- ### Calendar & Due Dates
128
-
129
- View upcoming assignments and events across all your courses:
130
-
131
- ```bash
132
- canvas calendar # Next 14 days (default)
133
- canvas calendar -d 30 # Next 30 days
134
- canvas calendar -p # Include past due (last 7 days)
135
- canvas calendar -a # Include all courses
136
- ```
137
-
138
- ### Course Modules
139
-
140
- Browse and explore course content and modules:
141
-
142
- ```bash
143
- canvas modules # Interactive course selection
144
- canvas modules "database" # Browse modules for specific course
145
- canvas modules -a # Show all courses
146
- ```
147
-
148
- ### Todo List
149
-
150
- See all your pending Canvas items in one place:
151
-
152
- ```bash
153
- canvas todo # View all pending items
154
- canvas todo -l 10 # Limit to 10 items
155
- ```
156
-
157
- ### Course Files
158
-
159
- Browse and download files from your courses:
160
-
161
- ```bash
162
- canvas files # Interactive course selection
163
- canvas files "course name" # Browse files for specific course
164
- canvas files -a # Show all courses
165
- ```
166
-
167
- ### Groups
168
-
169
- View your Canvas group memberships:
170
-
171
- ```bash
172
- canvas groups # View all groups
173
- canvas groups -m # Show group members
174
- canvas groups -v # Verbose mode with details
175
- ```
176
-
177
122
  ## License
178
123
 
179
124
  See [LICENSE](LICENSE) for details.
@@ -1 +1 @@
1
- {"version":3,"file":"grades.d.ts","sourceRoot":"","sources":["../../commands/grades.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAiZ3B,wBAAsB,UAAU,CAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmSf"}
1
+ {"version":3,"file":"grades.d.ts","sourceRoot":"","sources":["../../commands/grades.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAIV,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAwP3B,wBAAsB,UAAU,CAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA4Lf"}
@@ -1,6 +1,6 @@
1
1
  import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
2
  import { createReadlineInterface, askQuestionWithValidation, } from "../lib/interactive.js";
3
- import { pad } from "../lib/display.js";
3
+ import { Table } from "../lib/display.js";
4
4
  import chalk from "chalk";
5
5
  async function showDetailedGrades(courseId, options) {
6
6
  console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
@@ -39,217 +39,134 @@ async function showDetailedGrades(courseId, options) {
39
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
- const calculatedPercentage = totalPointsPossible > 0
43
- ? ((totalPointsEarned / totalPointsPossible) * 100).toFixed(2)
44
- : "N/A";
45
42
  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.4));
51
- const colStatus = Math.max(12, availableWidth - colMetric - colScore);
52
- console.log(chalk.gray("╭─") +
53
- chalk.gray("─".repeat(colMetric)) +
54
- chalk.gray("┬─") +
55
- chalk.gray("─".repeat(colScore)) +
56
- chalk.gray("┬─") +
57
- chalk.gray("─".repeat(colStatus)) +
58
- chalk.gray("╮"));
59
- console.log(chalk.gray("│ ") +
60
- chalk.cyan.bold(pad("Metric", colMetric)) +
61
- chalk.gray("│ ") +
62
- chalk.cyan.bold(pad("Score/Grade", colScore)) +
63
- chalk.gray("│ ") +
64
- chalk.cyan.bold(pad("Status", colStatus)) +
65
- chalk.gray("│"));
66
- console.log(chalk.gray("├─") +
67
- chalk.gray("─".repeat(colMetric)) +
68
- chalk.gray("┼─") +
69
- chalk.gray("─".repeat(colScore)) +
70
- chalk.gray("┼─") +
71
- chalk.gray("─".repeat(colStatus)) +
72
- chalk.gray("┤"));
43
+ const overallTable = new Table([
44
+ { key: "metric", header: "Metric", flex: 1.5, minWidth: 18 },
45
+ {
46
+ key: "value",
47
+ header: "Score/Grade",
48
+ flex: 2,
49
+ minWidth: 20,
50
+ color: (val, row) => {
51
+ if (row.metric.includes("Current") || row.metric.includes("Final")) {
52
+ return chalk.green.bold(val);
53
+ }
54
+ return chalk.cyan.bold(val);
55
+ },
56
+ },
57
+ { key: "status", header: "Status", flex: 1, minWidth: 12 },
58
+ ], { showRowNumbers: false, title: undefined });
73
59
  if (grades) {
74
- const currentScoreValue = grades.current_score !== null ? `${grades.current_score}%` : "N/A";
75
- const finalScoreValue = grades.final_score !== null ? `${grades.final_score}%` : "N/A";
76
- const currentGradeValue = grades.current_grade || "N/A";
77
- const finalGradeValue = grades.final_grade || "N/A";
78
- console.log(chalk.gray("│ ") +
79
- chalk.white(pad("Current Score", colMetric)) +
80
- chalk.gray("│ ") +
81
- chalk.green.bold(pad(currentScoreValue, colScore)) +
82
- chalk.gray("│ ") +
83
- chalk.gray(pad("Official", colStatus)) +
84
- chalk.gray("│"));
85
- console.log(chalk.gray("│ ") +
86
- chalk.white(pad("Final Score", colMetric)) +
87
- chalk.gray("│ ") +
88
- chalk.green.bold(pad(finalScoreValue, colScore)) +
89
- chalk.gray("│ ") +
90
- chalk.gray(pad("Official", colStatus)) +
91
- chalk.gray("│"));
92
- console.log(chalk.gray(" ") +
93
- chalk.white(pad("Current Grade", colMetric)) +
94
- chalk.gray("│ ") +
95
- chalk.green.bold(pad(currentGradeValue, colScore)) +
96
- chalk.gray("│ ") +
97
- chalk.gray(pad("Letter Grade", colStatus)) +
98
- chalk.gray("│"));
99
- console.log(chalk.gray(" ") +
100
- chalk.white(pad("Final Grade", colMetric)) +
101
- chalk.gray("│ ") +
102
- chalk.green.bold(pad(finalGradeValue, colScore)) +
103
- chalk.gray("│ ") +
104
- chalk.gray(pad("Letter Grade", colStatus)) +
105
- chalk.gray("│"));
106
- console.log(chalk.gray("├─") +
107
- chalk.gray("─".repeat(colMetric)) +
108
- chalk.gray("┼─") +
109
- chalk.gray("─".repeat(colScore)) +
110
- chalk.gray("┼─") +
111
- chalk.gray("─".repeat(colStatus)) +
112
- chalk.gray("┤"));
60
+ const hasFinalScore = grades.final_score !== null && grades.final_score !== undefined;
61
+ if (hasFinalScore) {
62
+ const finalScoreValue = `${grades.final_score}%`;
63
+ const finalGradeValue = grades.final_grade || "N/A";
64
+ overallTable.addRows([
65
+ { metric: "Final Score", value: finalScoreValue, status: "Official" },
66
+ {
67
+ metric: "Final Grade",
68
+ value: finalGradeValue,
69
+ status: "Letter Grade",
70
+ },
71
+ ]);
72
+ }
73
+ else {
74
+ const currentScoreValue = grades.current_score !== null ? `${grades.current_score}%` : "N/A";
75
+ const currentGradeValue = grades.current_grade || "N/A";
76
+ overallTable.addRows([
77
+ {
78
+ metric: "Current Score",
79
+ value: currentScoreValue,
80
+ status: "Official",
81
+ },
82
+ {
83
+ metric: "Current Grade",
84
+ value: currentGradeValue,
85
+ status: "Letter Grade",
86
+ },
87
+ ]);
88
+ }
113
89
  }
114
- console.log(chalk.gray("│ ") +
115
- chalk.white(pad("Graded Assignments", colMetric)) +
116
- chalk.gray(" ") +
117
- chalk.cyan.bold(pad(`${gradedAssignments.length} / ${assignments.length}`, colScore)) +
118
- chalk.gray("│ ") +
119
- chalk.gray(pad("Completed", colStatus)) +
120
- chalk.gray("│"));
121
- console.log(chalk.gray(" ") +
122
- chalk.white(pad("Points Earned", colMetric)) +
123
- chalk.gray("│ ") +
124
- chalk.cyan.bold(pad(`${totalPointsEarned.toFixed(2)} / ${totalPointsPossible.toFixed(2)}`, colScore)) +
125
- chalk.gray("│ ") +
126
- chalk.gray(pad("Total", colStatus)) +
127
- chalk.gray("│"));
128
- console.log(chalk.gray("│ ") +
129
- chalk.white(pad("Calculated Average", colMetric)) +
130
- chalk.gray("│ ") +
131
- chalk.cyan.bold(pad(typeof calculatedPercentage === "string"
132
- ? calculatedPercentage
133
- : `${calculatedPercentage}%`, colScore)) +
134
- chalk.gray("│ ") +
135
- chalk.gray(pad("From Graded", colStatus)) +
136
- chalk.gray("│"));
137
- console.log(chalk.gray("╰─") +
138
- chalk.gray("─".repeat(colMetric)) +
139
- chalk.gray("┴─") +
140
- chalk.gray("─".repeat(colScore)) +
141
- chalk.gray("┴─") +
142
- chalk.gray("─".repeat(colStatus)) +
143
- chalk.gray("╯"));
90
+ overallTable.addRows([
91
+ {
92
+ metric: "Graded Assignments",
93
+ value: `${gradedAssignments.length} / ${assignments.length}`,
94
+ status: "Completed",
95
+ },
96
+ {
97
+ metric: "Points Earned",
98
+ value: `${totalPointsEarned.toFixed(2)} / ${totalPointsPossible.toFixed(2)}`,
99
+ status: "Total",
100
+ },
101
+ ]);
102
+ overallTable.render();
144
103
  console.log(chalk.white.bold("\nAssignment Breakdown:"));
145
104
  if (assignments.length === 0) {
146
105
  console.log(chalk.yellow(" No assignments found for this course."));
147
106
  }
148
107
  else {
149
- const tw = process.stdout.columns || 100;
150
- const overhead = 16;
151
- const available = Math.max(80, tw - overhead);
152
- const colNo = Math.max(4, Math.min(6, Math.floor(available * 0.05)));
153
- const colScore = Math.max(10, Math.min(15, Math.floor(available * 0.12)));
154
- const colStatus = Math.max(10, Math.min(15, Math.floor(available * 0.12)));
155
- const colDate = Math.max(12, Math.min(20, Math.floor(available * 0.18)));
156
- const colName = Math.max(20, available - colNo - colScore - colStatus - colDate);
157
- console.log(chalk.gray("╭─") +
158
- chalk.gray("".repeat(colNo)) +
159
- chalk.gray("┬─") +
160
- chalk.gray("─".repeat(colName)) +
161
- chalk.gray("┬─") +
162
- chalk.gray("─".repeat(colScore)) +
163
- chalk.gray("┬─") +
164
- chalk.gray("─".repeat(colStatus)) +
165
- chalk.gray("┬─") +
166
- chalk.gray("".repeat(colDate)) +
167
- chalk.gray("╮"));
168
- console.log(chalk.gray("│ ") +
169
- chalk.cyan.bold(pad("#", colNo)) +
170
- chalk.gray("│ ") +
171
- chalk.cyan.bold(pad("Assignment Name", colName)) +
172
- chalk.gray(" ") +
173
- chalk.cyan.bold(pad("Score", colScore)) +
174
- chalk.gray("│ ") +
175
- chalk.cyan.bold(pad("Status", colStatus)) +
176
- chalk.gray("│ ") +
177
- chalk.cyan.bold(pad("Due Date", colDate)) +
178
- chalk.gray("│"));
179
- console.log(chalk.gray("├─") +
180
- chalk.gray("─".repeat(colNo)) +
181
- chalk.gray("┼─") +
182
- chalk.gray("─".repeat(colName)) +
183
- chalk.gray("┼─") +
184
- chalk.gray("─".repeat(colScore)) +
185
- chalk.gray("┼─") +
186
- chalk.gray("─".repeat(colStatus)) +
187
- chalk.gray("┼─") +
188
- chalk.gray("─".repeat(colDate)) +
189
- chalk.gray("┤"));
190
- assignmentGrades.forEach((assignment, index) => {
108
+ const assignmentTable = new Table([
109
+ { key: "name", header: "Assignment Name", flex: 3, minWidth: 20 },
110
+ { key: "score", header: "Score", minWidth: 10, maxWidth: 15 },
111
+ {
112
+ key: "status",
113
+ header: "Status",
114
+ minWidth: 10,
115
+ maxWidth: 15,
116
+ color: (val, row) => {
117
+ if (row.statusRaw === "graded") {
118
+ const percentage = row.percentageRaw || 0;
119
+ if (percentage >= 80)
120
+ return chalk.green(val);
121
+ if (percentage >= 50)
122
+ return chalk.yellow(val);
123
+ return chalk.red(val);
124
+ }
125
+ if (row.statusRaw === "submitted")
126
+ return chalk.cyan(val);
127
+ return chalk.gray(val);
128
+ },
129
+ },
130
+ { key: "dueDate", header: "Due Date", minWidth: 12, maxWidth: 20 },
131
+ ], { showRowNumbers: true, rowNumberHeader: "#" });
132
+ assignmentGrades.forEach((assignment) => {
191
133
  const scoreDisplay = assignment.graded
192
134
  ? `${(assignment.score || 0).toFixed(1)}/${assignment.pointsPossible}`
193
135
  : assignment.pointsPossible > 0
194
136
  ? `–/${assignment.pointsPossible}`
195
137
  : "N/A";
196
138
  let statusDisplay = "";
197
- let statusColor = chalk.gray;
139
+ let statusRaw = "";
140
+ let percentageRaw = 0;
198
141
  if (assignment.graded) {
199
- const percentage = assignment.pointsPossible > 0
200
- ? ((assignment.score || 0) / assignment.pointsPossible) * 100
201
- : 0;
202
- if (percentage >= 80) {
203
- statusDisplay = "✓ Graded";
204
- statusColor = chalk.green;
205
- }
206
- else if (percentage >= 50) {
207
- statusDisplay = "✓ Graded";
208
- statusColor = chalk.yellow;
209
- }
210
- else {
211
- statusDisplay = "✓ Graded";
212
- statusColor = chalk.red;
213
- }
142
+ statusRaw = "graded";
143
+ percentageRaw =
144
+ assignment.pointsPossible > 0
145
+ ? ((assignment.score || 0) / assignment.pointsPossible) * 100
146
+ : 0;
147
+ statusDisplay = "✓ Graded";
214
148
  }
215
149
  else if (assignment.submitted) {
150
+ statusRaw = "submitted";
216
151
  statusDisplay = "Pending";
217
- statusColor = chalk.cyan;
218
152
  }
219
153
  else {
154
+ statusRaw = "not-done";
220
155
  statusDisplay = "Not Done";
221
- statusColor = chalk.gray;
222
156
  }
223
157
  const dueDate = assignment.dueAt
224
158
  ? new Date(assignment.dueAt).toLocaleDateString()
225
159
  : "No due date";
226
- let displayName = assignment.name;
227
- if (displayName.length > colName) {
228
- displayName = displayName.substring(0, colName - 3) + "...";
229
- }
230
- console.log(chalk.gray("│ ") +
231
- chalk.white(pad((index + 1).toString(), colNo)) +
232
- chalk.gray("│ ") +
233
- chalk.white(pad(displayName, colName)) +
234
- chalk.gray("│ ") +
235
- chalk.white(pad(scoreDisplay, colScore)) +
236
- chalk.gray("│ ") +
237
- statusColor(pad(statusDisplay, colStatus)) +
238
- chalk.gray("│ ") +
239
- chalk.gray(pad(dueDate, colDate)) +
240
- chalk.gray("│"));
160
+ assignmentTable.addRow({
161
+ name: assignment.name,
162
+ score: scoreDisplay,
163
+ status: statusDisplay,
164
+ statusRaw,
165
+ percentageRaw,
166
+ dueDate,
167
+ });
241
168
  });
242
- console.log(chalk.gray("╰─") +
243
- chalk.gray("─".repeat(colNo)) +
244
- chalk.gray("┴─") +
245
- chalk.gray("─".repeat(colName)) +
246
- chalk.gray("┴─") +
247
- chalk.gray("─".repeat(colScore)) +
248
- chalk.gray("┴─") +
249
- chalk.gray("─".repeat(colStatus)) +
250
- chalk.gray("┴─") +
251
- chalk.gray("─".repeat(colDate)) +
252
- chalk.gray("╯"));
169
+ assignmentTable.render();
253
170
  }
254
171
  console.log(chalk.cyan("=".repeat(80)));
255
172
  if (options.verbose && enrollment) {
@@ -322,57 +239,22 @@ export async function showGrades(courseName, options = {}) {
322
239
  console.log(chalk.cyan.bold("\n" + "=".repeat(80)));
323
240
  console.log(chalk.cyan.bold("Your Courses - Grades Summary"));
324
241
  console.log(chalk.green(`✓ Found ${coursesWithGrades.length} course(s)${options.all ? " (including inactive)" : " (active only)"}.`));
325
- const colNo = Math.max(3, coursesWithGrades.length.toString().length + 1);
326
- const colStatus = Math.max(8, ...coursesWithGrades.map((c) => (c.course.workflow_state === "available"
327
- ? "Active"
328
- : c.course.workflow_state || "Inactive").length));
329
- const colCurrent = Math.max(9, ...coursesWithGrades.map((c) => {
330
- const s = c.enrollment?.grades?.current_score;
331
- return s !== null && s !== undefined ? `${s}%`.length : 3;
332
- }));
333
- const colFinal = Math.max(7, ...coursesWithGrades.map((c) => {
334
- const s = c.enrollment?.grades?.final_score;
335
- return s !== null && s !== undefined ? `${s}%`.length : 3;
336
- }));
337
- const terminalWidth = process.stdout.columns || 80;
338
- const overhead = 16;
339
- const availableForName = Math.max(20, terminalWidth - (colNo + colStatus + colCurrent + colFinal + overhead));
340
- const maxNameLength = Math.max(11, ...coursesWithGrades.map((c) => c.course.name.length));
341
- const colName = Math.min(maxNameLength, availableForName);
342
- console.log(chalk.gray("╭─") +
343
- chalk.gray("─".repeat(colNo)) +
344
- chalk.gray("┬─") +
345
- chalk.gray("─".repeat(colName)) +
346
- chalk.gray("┬─") +
347
- chalk.gray("─".repeat(colStatus)) +
348
- chalk.gray("┬─") +
349
- chalk.gray("─".repeat(colCurrent)) +
350
- chalk.gray("┬─") +
351
- chalk.gray("─".repeat(colFinal)) +
352
- chalk.gray("╮"));
353
- console.log(chalk.gray("│ ") +
354
- chalk.cyan.bold(pad("#", colNo)) +
355
- chalk.gray("│ ") +
356
- chalk.cyan.bold(pad("Course Name", colName)) +
357
- chalk.gray("│ ") +
358
- chalk.cyan.bold(pad("Status", colStatus)) +
359
- chalk.gray("│ ") +
360
- chalk.cyan.bold(pad("Current", colCurrent)) +
361
- chalk.gray("│ ") +
362
- chalk.cyan.bold(pad("Final", colFinal)) +
363
- chalk.gray("│"));
364
- console.log(chalk.gray("├─") +
365
- chalk.gray("─".repeat(colNo)) +
366
- chalk.gray("┼─") +
367
- chalk.gray("─".repeat(colName)) +
368
- chalk.gray("┼─") +
369
- chalk.gray("─".repeat(colStatus)) +
370
- chalk.gray("┼─") +
371
- chalk.gray("─".repeat(colCurrent)) +
372
- chalk.gray("┼─") +
373
- chalk.gray("─".repeat(colFinal)) +
374
- chalk.gray("┤"));
375
- coursesWithGrades.forEach((item, index) => {
242
+ const coursesTable = new Table([
243
+ { key: "name", header: "Course Name", flex: 3, minWidth: 20 },
244
+ {
245
+ key: "status",
246
+ header: "Status",
247
+ minWidth: 8,
248
+ color: (val, row) => {
249
+ return row.statusRaw === "available"
250
+ ? chalk.green(val)
251
+ : chalk.gray(val);
252
+ },
253
+ },
254
+ { key: "current", header: "Current", minWidth: 9 },
255
+ { key: "final", header: "Final", minWidth: 7 },
256
+ ], { showRowNumbers: true, rowNumberHeader: "#" });
257
+ coursesWithGrades.forEach((item) => {
376
258
  const { course, enrollment } = item;
377
259
  const grades = enrollment?.grades;
378
260
  const currentScore = grades?.current_score !== null && grades?.current_score !== undefined
@@ -384,36 +266,15 @@ export async function showGrades(courseName, options = {}) {
384
266
  const statusText = course.workflow_state === "available"
385
267
  ? "Active"
386
268
  : course.workflow_state || "Inactive";
387
- const statusColored = course.workflow_state === "available"
388
- ? chalk.green(pad(statusText, colStatus))
389
- : chalk.gray(pad(statusText, colStatus));
390
- let displayName = course.name;
391
- if (displayName.length > colName) {
392
- displayName = displayName.substring(0, colName - 3) + "...";
393
- }
394
- console.log(chalk.gray("│ ") +
395
- chalk.white(pad((index + 1).toString(), colNo)) +
396
- chalk.gray("│ ") +
397
- chalk.white(pad(displayName, colName)) +
398
- chalk.gray("│ ") +
399
- statusColored +
400
- chalk.gray("│ ") +
401
- chalk.white(pad(currentScore, colCurrent)) +
402
- chalk.gray("│ ") +
403
- chalk.white(pad(finalScore, colFinal)) +
404
- chalk.gray("│"));
269
+ coursesTable.addRow({
270
+ name: course.name,
271
+ status: statusText,
272
+ statusRaw: course.workflow_state,
273
+ current: currentScore,
274
+ final: finalScore,
275
+ });
405
276
  });
406
- console.log(chalk.gray("╰─") +
407
- chalk.gray("─".repeat(colNo)) +
408
- chalk.gray("┴─") +
409
- chalk.gray("─".repeat(colName)) +
410
- chalk.gray("┴─") +
411
- chalk.gray("─".repeat(colStatus)) +
412
- chalk.gray("┴─") +
413
- chalk.gray("─".repeat(colCurrent)) +
414
- chalk.gray("┴─") +
415
- chalk.gray("─".repeat(colFinal)) +
416
- chalk.gray("╯"));
277
+ coursesTable.render();
417
278
  console.log(chalk.yellow("\nSelect a course to view detailed grades for all assignments."));
418
279
  console.log(chalk.gray(" Or enter 0 to exit."));
419
280
  if (!options.all) {
@@ -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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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "canvaslms-cli",
3
- "version": "1.6.9",
3
+ "version": "1.7.0",
4
4
  "description": "A command line tool for interacting with Canvas LMS API",
5
5
  "keywords": [
6
+ "api",
6
7
  "canvas",
8
+ "canvas-lms",
7
9
  "cli",
8
- "api",
9
- "instructure",
10
- "lms",
11
10
  "education",
12
- "canvas-lms"
11
+ "instructure",
12
+ "lms"
13
13
  ],
14
14
  "homepage": "https://github.com/caphefalumi/Canvas-CLI#readme",
15
15
  "bugs": {
@@ -19,22 +19,22 @@
19
19
  "type": "git",
20
20
  "url": "git+https://github.com/caphefalumi/Canvas-CLI.git"
21
21
  },
22
- "license": "MIT",
23
22
  "author": {
24
23
  "name": "caphefalumi",
25
24
  "email": "dangduytoan13l@gmail.com"
26
25
  },
26
+ "license": "MIT",
27
27
  "type": "module",
28
28
  "main": "dist/index.js",
29
29
  "types": "dist/index.d.ts",
30
30
  "bin": {
31
- "canvaslms-cli": "dist/src/index.js",
32
- "canvas": "dist/src/index.js"
31
+ "canvas": "dist/src/index.js",
32
+ "canvaslms-cli": "dist/src/index.js"
33
33
  },
34
34
  "files": [
35
- "dist/",
35
+ "CHANGELOG.md",
36
36
  "README.md",
37
- "CHANGELOG.md"
37
+ "dist/"
38
38
  ],
39
39
  "scripts": {
40
40
  "build": "tsc",
@@ -43,33 +43,33 @@
43
43
  "lint": "oxlint --fix --fix-suggestions",
44
44
  "format": "oxfmt --config .oxfmtrc.jsonc",
45
45
  "test": "bun test",
46
- "test:watch": "bun test --watch",
47
- "prepublishOnly": "npm run build",
46
+ "test:coverage": "bun test --coverage",
47
+ "prepublishOnly": "bun test && bun run build",
48
48
  "prepare": "bunx husky"
49
49
  },
50
50
  "dependencies": {
51
- "axios": "^1.6.0",
52
- "chalk": "^5.4.1",
53
- "commander": "^11.1.0",
54
- "form-data": "^4.0.3"
51
+ "axios": "^1.13.2",
52
+ "chalk": "^5.6.2",
53
+ "commander": "^14.0.2",
54
+ "form-data": "^4.0.5"
55
55
  },
56
56
  "devDependencies": {
57
- "@types/bun": "latest",
57
+ "@types/bun": "^1.3.4",
58
58
  "@types/minimatch": "^6.0.0",
59
- "@types/node": "^24.10.0",
59
+ "@types/node": "^25.0.2",
60
60
  "husky": "^9.1.7",
61
- "oxfmt": "^0.17.0",
62
- "oxlint": "^1.32.0",
61
+ "oxfmt": "^0.18.0",
62
+ "oxlint": "^1.33.0",
63
63
  "typescript": "^5.9.3"
64
64
  },
65
65
  "engines": {
66
66
  "node": ">=14.0.0",
67
67
  "npm": ">=6.0.0"
68
68
  },
69
- "preferGlobal": true,
70
69
  "os": [
71
70
  "win32",
72
71
  "darwin",
73
72
  "linux"
74
- ]
73
+ ],
74
+ "preferGlobal": true
75
75
  }