canvaslms-cli 1.8.0 → 1.9.2

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 (39) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/README.md +25 -0
  3. package/dist/commands/assignments.d.ts.map +1 -1
  4. package/dist/commands/assignments.js +150 -2
  5. package/dist/commands/assignments.js.map +1 -1
  6. package/dist/commands/download.d.ts +7 -0
  7. package/dist/commands/download.d.ts.map +1 -0
  8. package/dist/commands/download.js +157 -0
  9. package/dist/commands/download.js.map +1 -0
  10. package/dist/commands/files.js +3 -3
  11. package/dist/commands/files.js.map +1 -1
  12. package/dist/commands/gpa.d.ts +5 -0
  13. package/dist/commands/gpa.d.ts.map +1 -0
  14. package/dist/commands/gpa.js +334 -0
  15. package/dist/commands/gpa.js.map +1 -0
  16. package/dist/commands/groups.js +2 -2
  17. package/dist/commands/groups.js.map +1 -1
  18. package/dist/commands/submit.d.ts.map +1 -1
  19. package/dist/commands/submit.js +1 -1
  20. package/dist/commands/submit.js.map +1 -1
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/lib/api-client.d.ts.map +1 -1
  26. package/dist/lib/api-client.js +0 -2
  27. package/dist/lib/api-client.js.map +1 -1
  28. package/dist/lib/display.d.ts.map +1 -1
  29. package/dist/lib/display.js +8 -11
  30. package/dist/lib/display.js.map +1 -1
  31. package/dist/src/index.js +26 -1
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/types/index.d.ts +3 -0
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/package.json +5 -3
  36. package/dist/commands/api.d.ts +0 -3
  37. package/dist/commands/api.d.ts.map +0 -1
  38. package/dist/commands/api.js +0 -8
  39. package/dist/commands/api.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,62 @@ 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.9.1] - 2026-01-04
9
+
10
+ - Remove AI generated text from readme
11
+
12
+ ## [1.9.0] - 2026-01-04
13
+
14
+ ### Added
15
+
16
+ - **GPA Calculator**: New `canvas gpa` command to calculate overall GPA
17
+ - Calculate GPA across all active courses on 4.0 scale
18
+ - Option to include past/completed courses with `-p` flag
19
+ - Shows individual course grades, letter grades, and GPA points
20
+ - Summary table with total credits and quality points
21
+ - Letter grade to GPA conversion (A=4.0, B=3.0, etc.)
22
+ - Smart interpretation and feedback based on GPA
23
+
24
+ - **What-If Grade Calculator**: New `canvas what-if` command
25
+ - Calculate what grade you need on remaining work to achieve target grade
26
+ - Interactive prompts for current grade, weight, and desired final grade
27
+ - Clear feedback on achievability and difficulty
28
+ - Shows maximum possible grade if goal is unachievable
29
+ - Helpful color-coded results
30
+
31
+ - **Bulk File Download**: New `canvas download` command
32
+ - Download all files from a course at once
33
+ - Preserves Canvas folder structure locally
34
+ - Progress tracking for each file download
35
+ - Skips already downloaded files automatically
36
+ - Custom output directory support with `-o` flag
37
+ - Download summary with success/failure counts
38
+
39
+ - **Advanced Assignment Filtering**: Enhanced `canvas assignments` command
40
+ - New `--all-courses` (`-a`) flag to view assignments from all courses
41
+ - New `--missing` (`-m`) flag to show only missing assignments
42
+ - New `--due-this-week` (`-w`) flag to show assignments due within 7 days
43
+ - Combine filters (e.g., `-a -m` for all missing assignments)
44
+ - Smart sorting by due date
45
+ - Cross-course assignment view with course names
46
+ - Color-coded status indicators (submitted, missing, pending)
47
+
48
+ ### Changed
49
+
50
+ - **Assignment Display**: Improved multi-course assignment display
51
+ - Shows course code/name for each assignment
52
+ - Better status indicators with visual symbols (✓, ✗, ○)
53
+ - Color-coded due dates (red for overdue, yellow for soon, green for later)
54
+ - Enhanced table layout for cross-course views
55
+
56
+ ### Improved
57
+
58
+ - **README Documentation**: Added comprehensive documentation for new features
59
+ - Shield badges for npm version, license, workflow status, and downloads
60
+ - New features section highlighting recent additions
61
+ - Detailed usage examples for all new commands
62
+ - Command combinations and filter examples
63
+
8
64
  ## [1.8.0] - 2025-12-21
9
65
 
10
66
  ### Added
package/README.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Canvas CLI Tool
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/canvaslms-cli.svg)](https://www.npmjs.com/package/canvaslms-cli)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Node.js Package](https://github.com/caphefalumi/Canvas-CLI/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/caphefalumi/Canvas-CLI/actions/workflows/npm-publish.yml)
6
+ [![Downloads](https://img.shields.io/npm/dt/canvaslms-cli.svg)](https://www.npmjs.com/package/canvaslms-cli)
7
+
3
8
  A modern, user-friendly command-line interface for Canvas LMS. Manage courses, assignments, submissions, grades, and more directly from your terminal.
4
9
 
5
10
  ## Features
@@ -8,7 +13,11 @@ A modern, user-friendly command-line interface for Canvas LMS. Manage courses, a
8
13
  - Star/unstar courses to manage favorites
9
14
  - Interactive course selection for all commands
10
15
  - View assignments, grades, and submission status
16
+ - **Advanced assignment filtering** (missing, due this week, all courses)
11
17
  - Interactive file upload for assignments with visual file browser
18
+ - **Bulk download all course files** with organized folder structure
19
+ - **GPA Calculator** - Calculate overall GPA across all courses on 4.0 scale
20
+ - **What-if Grade Calculator** - Find out what you need on remaining work
12
21
  - View upcoming due dates and calendar events
13
22
  - Browse course modules and content
14
23
  - View course announcements
@@ -99,6 +108,11 @@ canvas assignments # Interactive course selection
99
108
  canvas assignments math # List assignments for course matching math
100
109
  canvas assignments -s # Show only submitted assignments
101
110
  canvas assignments -p # Show only pending assignments
111
+ canvas assignments -a # Show assignments from ALL courses
112
+ canvas assignments -m # Show MISSING assignments only
113
+ canvas assignments -w # Show assignments DUE THIS WEEK
114
+ canvas assignments -a -m # Show all missing assignments across all courses
115
+ canvas assignments -a -w # Show assignments due this week from all courses
102
116
 
103
117
  # Grades (supports course name instead of ID)
104
118
  canvas grades # Interactive course selection + detailed grades
@@ -106,6 +120,17 @@ canvas grades database # Show detailed grades for course matching databa
106
120
  canvas grades -a # Include inactive/completed courses
107
121
  canvas grades -v # Include verbose enrollment details
108
122
 
123
+ # GPA Calculator & What-If Scenarios
124
+ canvas gpa # Calculate overall GPA across all active courses
125
+ canvas gpa -p # Include past/completed courses in GPA calculation
126
+ canvas what-if # Calculate what grade you need on remaining work
127
+
128
+ # Bulk Download Files
129
+ canvas download # Interactive course selection for bulk download
130
+ canvas download math # Download all files from course matching math
131
+ canvas download -o ~/Downloads # Specify output directory
132
+ canvas download math -o ./files # Download to specific folder
133
+
109
134
  # Announcements (supports course name instead of ID)
110
135
  canvas announcements # Interactive course selection
111
136
  canvas announcements software # Show announcements for course matching software
@@ -1 +1 @@
1
- {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAkEf"}
1
+ {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAGV,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAuM3B,wBAAsB,eAAe,CACnC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC,CAuEf"}
@@ -1,9 +1,157 @@
1
1
  import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
2
  import { createReadlineInterface } from "../lib/interactive.js";
3
- import { pickCourse, displayAssignments, printInfo, printError, printSuccess, printSeparator, } from "../lib/display.js";
3
+ import { pickCourse, displayAssignments, printInfo, printError, printSuccess, printSeparator, Table, } from "../lib/display.js";
4
4
  import chalk from "chalk";
5
+ async function listAllCoursesAssignments(options = {}) {
6
+ try {
7
+ printSeparator("=");
8
+ printInfo("Loading assignments from all courses...");
9
+ printSeparator("=");
10
+ const queryParams = [
11
+ "enrollment_state=active",
12
+ "include[]=term",
13
+ "per_page=100",
14
+ ];
15
+ const courses = await makeCanvasRequest("get", "courses", queryParams);
16
+ if (!courses || courses.length === 0) {
17
+ printError("No courses found.");
18
+ return;
19
+ }
20
+ console.log(chalk.cyan(`Found ${courses.length} active course(s)\n`));
21
+ const allAssignments = [];
22
+ for (const course of courses) {
23
+ try {
24
+ const assignmentParams = ["include[]=submission", "per_page=100"];
25
+ const assignments = await makeCanvasRequest("get", `courses/${course.id}/assignments`, assignmentParams);
26
+ if (assignments && assignments.length > 0) {
27
+ for (const assignment of assignments) {
28
+ allAssignments.push({
29
+ ...assignment,
30
+ courseName: course.name,
31
+ courseCode: course.course_code,
32
+ });
33
+ }
34
+ }
35
+ }
36
+ catch {
37
+ continue;
38
+ }
39
+ }
40
+ if (allAssignments.length === 0) {
41
+ printError("No assignments found in any course.");
42
+ return;
43
+ }
44
+ let filteredAssignments = allAssignments;
45
+ if (options.missing) {
46
+ filteredAssignments = filteredAssignments.filter((a) => {
47
+ const submission = a.submission;
48
+ const isNotSubmitted = !submission || !submission.submitted_at;
49
+ const hasDueDate = a.due_at !== null;
50
+ return isNotSubmitted && hasDueDate;
51
+ });
52
+ }
53
+ if (options.submitted) {
54
+ filteredAssignments = filteredAssignments.filter((a) => a.submission && a.submission.submitted_at);
55
+ }
56
+ if (options.pending) {
57
+ filteredAssignments = filteredAssignments.filter((a) => !a.submission || !a.submission.submitted_at);
58
+ }
59
+ if (options.dueThisWeek) {
60
+ const now = new Date();
61
+ const oneWeekFromNow = new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
62
+ filteredAssignments = filteredAssignments.filter((a) => {
63
+ if (!a.due_at)
64
+ return false;
65
+ const dueDate = new Date(a.due_at);
66
+ return dueDate >= now && dueDate <= oneWeekFromNow;
67
+ });
68
+ }
69
+ filteredAssignments.sort((a, b) => {
70
+ if (!a.due_at)
71
+ return 1;
72
+ if (!b.due_at)
73
+ return -1;
74
+ return new Date(a.due_at).getTime() - new Date(b.due_at).getTime();
75
+ });
76
+ printSuccess(`Found ${filteredAssignments.length} assignment(s) matching criteria.\n`);
77
+ const table = new Table([
78
+ { key: "course", header: "Course", flex: 1.5, minWidth: 15 },
79
+ { key: "assignment", header: "Assignment", flex: 2.5, minWidth: 25 },
80
+ {
81
+ key: "due",
82
+ header: "Due Date",
83
+ flex: 1.2,
84
+ minWidth: 12,
85
+ color: (val) => {
86
+ if (val === "No due date")
87
+ return chalk.gray(val);
88
+ const dueDate = new Date(val);
89
+ const now = new Date();
90
+ const daysUntilDue = Math.ceil((dueDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
91
+ if (daysUntilDue < 0)
92
+ return chalk.red(val);
93
+ if (daysUntilDue <= 2)
94
+ return chalk.red.bold(val);
95
+ if (daysUntilDue <= 7)
96
+ return chalk.yellow(val);
97
+ return chalk.green(val);
98
+ },
99
+ },
100
+ {
101
+ key: "status",
102
+ header: "Status",
103
+ flex: 1,
104
+ minWidth: 10,
105
+ color: (val) => {
106
+ if (val.includes("✓"))
107
+ return chalk.green(val);
108
+ if (val.includes("✗"))
109
+ return chalk.red(val);
110
+ return chalk.yellow(val);
111
+ },
112
+ },
113
+ { key: "points", header: "Points", flex: 0.8, minWidth: 8 },
114
+ ], { showRowNumbers: true, title: undefined });
115
+ for (const assignment of filteredAssignments) {
116
+ const submission = assignment.submission;
117
+ const isSubmitted = submission && submission.submitted_at;
118
+ let statusText = "";
119
+ if (isSubmitted) {
120
+ const hasGrade = submission.score !== null && submission.score !== undefined;
121
+ statusText = hasGrade
122
+ ? `✓ Graded (${submission.score})`
123
+ : "✓ Submitted";
124
+ }
125
+ else {
126
+ const dueDate = assignment.due_at ? new Date(assignment.due_at) : null;
127
+ const isPastDue = dueDate && dueDate < new Date();
128
+ statusText = isPastDue ? "✗ Missing" : "○ Pending";
129
+ }
130
+ table.addRow({
131
+ course: assignment.courseCode ||
132
+ assignment.courseName?.substring(0, 15) ||
133
+ "Unknown",
134
+ assignment: assignment.name,
135
+ due: assignment.due_at
136
+ ? new Date(assignment.due_at).toLocaleDateString()
137
+ : "No due date",
138
+ status: statusText,
139
+ points: assignment.points_possible?.toString() || "N/A",
140
+ });
141
+ }
142
+ table.render();
143
+ printSeparator("=");
144
+ }
145
+ catch (error) {
146
+ const errorMessage = error instanceof Error ? error.message : String(error);
147
+ printError(`Error fetching assignments: ${errorMessage}`);
148
+ }
149
+ }
5
150
  export async function listAssignments(courseName, options = {}) {
6
151
  try {
152
+ if (options.allCourses) {
153
+ return await listAllCoursesAssignments(options);
154
+ }
7
155
  let course;
8
156
  let selectedCourseId;
9
157
  if (!courseName) {
@@ -24,7 +172,7 @@ export async function listAssignments(courseName, options = {}) {
24
172
  }
25
173
  selectedCourseId = course.id.toString();
26
174
  }
27
- printSeparator("─", 60);
175
+ printSeparator();
28
176
  const assignmentParams = ["include[]=submission", "per_page=100"];
29
177
  printInfo("Loading assignments, please wait...");
30
178
  const assignments = await makeCanvasRequest("get", `courses/${selectedCourseId}/assignments`, assignmentParams);
@@ -1 +1 @@
1
- {"version":3,"file":"assignments.js","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assignments.js","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ interface DownloadOptions {
2
+ all?: boolean;
3
+ output?: string;
4
+ }
5
+ export declare function bulkDownload(courseName?: string, options?: DownloadOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../commands/download.ts"],"names":[],"mappings":"AAoBA,UAAU,eAAe;IACvB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgGD,wBAAsB,YAAY,CAChC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0Hf"}
@@ -0,0 +1,157 @@
1
+ import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
+ import { pickCourse, printInfo, printError, printSuccess, printSeparator, } from "../lib/display.js";
3
+ import { createReadlineInterface } from "../lib/interactive.js";
4
+ import chalk from "chalk";
5
+ import fs from "fs";
6
+ import path from "path";
7
+ import https from "https";
8
+ import http from "http";
9
+ function sanitizeFileName(name) {
10
+ return name.replace(/[<>:"/\\|?*\x00-\x1F]/g, "_").trim();
11
+ }
12
+ async function downloadFile(url, outputPath, fileName) {
13
+ return new Promise((resolve) => {
14
+ const client = url.startsWith("https") ? https : http;
15
+ const request = client.get(url, (response) => {
16
+ if (response.statusCode === 301 ||
17
+ response.statusCode === 302 ||
18
+ response.statusCode === 307 ||
19
+ response.statusCode === 308) {
20
+ const redirectUrl = response.headers.location;
21
+ if (redirectUrl) {
22
+ downloadFile(redirectUrl, outputPath, fileName).then(resolve);
23
+ return;
24
+ }
25
+ }
26
+ if (response.statusCode !== 200) {
27
+ console.log(chalk.red(` ✗ Failed to download ${fileName}: HTTP ${response.statusCode}`));
28
+ resolve(false);
29
+ return;
30
+ }
31
+ const fileStream = fs.createWriteStream(outputPath);
32
+ response.pipe(fileStream);
33
+ fileStream.on("finish", () => {
34
+ fileStream.close();
35
+ console.log(chalk.green(` ✓ Downloaded: ${fileName}`));
36
+ resolve(true);
37
+ });
38
+ fileStream.on("error", (err) => {
39
+ fs.unlink(outputPath, () => { });
40
+ console.log(chalk.red(` ✗ Error downloading ${fileName}: ${err.message}`));
41
+ resolve(false);
42
+ });
43
+ });
44
+ request.on("error", (err) => {
45
+ console.log(chalk.red(` ✗ Error downloading ${fileName}: ${err.message}`));
46
+ resolve(false);
47
+ });
48
+ });
49
+ }
50
+ async function getAllFolders(courseId) {
51
+ try {
52
+ const folders = await makeCanvasRequest("get", `courses/${courseId}/folders`, ["per_page=100"]);
53
+ return folders || [];
54
+ }
55
+ catch {
56
+ return [];
57
+ }
58
+ }
59
+ async function getFilesInFolder(folderId) {
60
+ try {
61
+ const files = await makeCanvasRequest("get", `folders/${folderId}/files`, ["per_page=100"]);
62
+ return files || [];
63
+ }
64
+ catch {
65
+ return [];
66
+ }
67
+ }
68
+ export async function bulkDownload(courseName, options = {}) {
69
+ try {
70
+ let course;
71
+ let selectedCourseId;
72
+ if (!courseName) {
73
+ const result = await pickCourse({
74
+ title: "\nSelect course to download files from...",
75
+ showAll: options.all,
76
+ });
77
+ if (!result)
78
+ return;
79
+ course = result.course;
80
+ selectedCourseId = course.id.toString();
81
+ result.rl.close();
82
+ }
83
+ else {
84
+ const rl = createReadlineInterface();
85
+ course = await getCanvasCourse(courseName, rl);
86
+ if (!course) {
87
+ return;
88
+ }
89
+ selectedCourseId = course.id.toString();
90
+ rl.close();
91
+ }
92
+ printSeparator("=");
93
+ printInfo(`Downloading files from: ${course?.name || selectedCourseId}`);
94
+ printSeparator("=");
95
+ const sanitizedCourseName = sanitizeFileName(course?.name || `course_${selectedCourseId}`);
96
+ const baseOutputDir = options.output || process.cwd();
97
+ const outputDir = path.join(baseOutputDir, sanitizedCourseName);
98
+ if (!fs.existsSync(outputDir)) {
99
+ fs.mkdirSync(outputDir, { recursive: true });
100
+ }
101
+ console.log(chalk.cyan(`\nOutput directory: ${outputDir}\n`));
102
+ printInfo("Fetching folder structure...");
103
+ const folders = await getAllFolders(selectedCourseId);
104
+ if (folders.length === 0) {
105
+ printError("No folders found in this course.");
106
+ return;
107
+ }
108
+ console.log(chalk.cyan(`Found ${folders.length} folder(s)\n`));
109
+ let totalFiles = 0;
110
+ let downloadedFiles = 0;
111
+ let failedFiles = 0;
112
+ for (const folder of folders) {
113
+ const folderPath = folder.full_name || folder.name;
114
+ const sanitizedPath = sanitizeFileName(folderPath);
115
+ const folderOutputDir = path.join(outputDir, sanitizedPath);
116
+ if (!fs.existsSync(folderOutputDir)) {
117
+ fs.mkdirSync(folderOutputDir, { recursive: true });
118
+ }
119
+ const files = await getFilesInFolder(folder.id.toString());
120
+ if (files.length > 0) {
121
+ console.log(chalk.bold(`\n📁 ${folderPath} (${files.length} files):`));
122
+ totalFiles += files.length;
123
+ for (const file of files) {
124
+ const sanitizedFileName = sanitizeFileName(file.display_name || file.filename);
125
+ const filePath = path.join(folderOutputDir, sanitizedFileName);
126
+ if (fs.existsSync(filePath)) {
127
+ console.log(chalk.gray(` ⊙ Skipped (exists): ${sanitizedFileName}`));
128
+ downloadedFiles++;
129
+ continue;
130
+ }
131
+ const success = await downloadFile(file.url, filePath, sanitizedFileName);
132
+ if (success) {
133
+ downloadedFiles++;
134
+ }
135
+ else {
136
+ failedFiles++;
137
+ }
138
+ }
139
+ }
140
+ }
141
+ printSeparator("=");
142
+ console.log(chalk.white.bold("\n📊 Download Summary:\n"));
143
+ console.log(chalk.cyan(`Total files found: ${totalFiles}`));
144
+ console.log(chalk.green(`Successfully downloaded: ${downloadedFiles}`));
145
+ if (failedFiles > 0) {
146
+ console.log(chalk.red(`Failed: ${failedFiles}`));
147
+ }
148
+ console.log(chalk.cyan(`\nAll files saved to: ${outputDir}`));
149
+ printSeparator("=");
150
+ printSuccess("\nBulk download completed!");
151
+ }
152
+ catch (error) {
153
+ const errorMessage = error instanceof Error ? error.message : String(error);
154
+ printError(`Error during bulk download: ${errorMessage}`);
155
+ }
156
+ }
157
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../commands/download.ts"],"names":[],"mappings":"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"}
@@ -138,7 +138,7 @@ export async function browseFolder(courseId, folderId, courseName, folderPath =
138
138
  }
139
139
  console.log(chalk.cyan.bold(`\n${courseName}`));
140
140
  console.log(chalk.gray(` Path: ${folderPath}`));
141
- printSeparator("─", 60);
141
+ printSeparator();
142
142
  const menuItems = [];
143
143
  if (folderId) {
144
144
  menuItems.push({ type: "back", name: "📤 .. (Go back)" });
@@ -245,7 +245,7 @@ export async function showFiles(courseName, options = {}) {
245
245
  return;
246
246
  }
247
247
  }
248
- printSeparator("─", 60);
248
+ printSeparator();
249
249
  printInfo("Loading course files...");
250
250
  const files = await makeCanvasRequest("get", `courses/${course.id}/files`, ["per_page=100", "sort=updated_at", "order=desc"]);
251
251
  if (!files || files.length === 0) {
@@ -254,7 +254,7 @@ export async function showFiles(courseName, options = {}) {
254
254
  }
255
255
  console.log(chalk.cyan.bold(`\nFiles in: ${course.name}`));
256
256
  console.log(chalk.gray(` Total: ${files.length} file(s)`));
257
- printSeparator("─", 60);
257
+ printSeparator();
258
258
  const columns = [
259
259
  {
260
260
  key: "name",
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../commands/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../commands/files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function calculateWhatIfGrade(): Promise<void>;
2
+ export declare function calculateOverallGPA(options?: {
3
+ includePast?: boolean;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=gpa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpa.d.ts","sourceRoot":"","sources":["../../commands/gpa.ts"],"names":[],"mappings":"AA0EA,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgJ1D;AAKD,wBAAsB,mBAAmB,CACvC,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,IAAI,CAAC,CAkQf"}