canvaslms-cli 1.6.0 → 1.6.3

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 +210 -186
  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 +43 -124
  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 +40 -128
  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 +296 -178
  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 +26 -46
  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 +2 -2
  30. package/dist/commands/submit.d.ts.map +1 -1
  31. package/dist/commands/submit.js +110 -165
  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 +84 -0
  47. package/dist/lib/display.d.ts.map +1 -0
  48. package/dist/lib/display.js +603 -0
  49. package/dist/lib/display.js.map +1 -0
  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 +200 -143
  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 -62
  59. package/dist/src/index.js.map +1 -1
  60. package/dist/types/index.d.ts +1 -1
  61. package/package.json +9 -4
  62. package/dist/commands/coursenames.d.ts +0 -15
  63. package/dist/commands/coursenames.d.ts.map +0 -1
  64. package/dist/commands/coursenames.js +0 -150
  65. package/dist/commands/coursenames.js.map +0 -1
  66. package/dist/lib/course-utils.d.ts +0 -6
  67. package/dist/lib/course-utils.d.ts.map +0 -1
  68. package/dist/lib/course-utils.js +0 -17
  69. package/dist/lib/course-utils.js.map +0 -1
package/README.md CHANGED
@@ -1,129 +1,131 @@
1
- # Canvas CLI Tool
2
-
3
- A modern, user-friendly command-line interface for Canvas LMS. Manage courses, assignments, submissions, grades, and more directly from your terminal.
4
-
5
- ## Features
6
-
7
- - List and filter enrolled/starred courses
8
- - View assignments, grades, and submission status
9
- - Interactive file upload for assignments
10
- - View course announcements
11
- - Display user profile information
12
- - Direct access to Canvas API endpoints
13
-
14
- ## Installation
15
-
16
- ### Global (Recommended)
17
-
18
- ```bash
19
- npm install -g canvaslms-cli
20
- ```
21
-
22
- ## Setup
23
-
24
- 1. **Get your Canvas API Token**
25
- - Log in to Canvas
26
- - Go to Account → Settings
27
- - Under Approved Integrations, click + New Access Token
28
- - Copy the generated token
29
-
30
- 2. **Configure the CLI**
31
-
32
- ```bash
33
- canvas config
34
- ```
35
-
36
- 3. **Environment Variables**
37
-
38
- Create a `.env` file in your project root:
39
-
40
- ```env
41
- CANVAS_DOMAIN=your-canvas-domain.instructure.com
42
- CANVAS_API_TOKEN=your-api-token
43
- ```
44
-
45
- ## Usage
46
-
47
- ### Common Commands
48
-
49
- ```bash
50
- canvas config # Configure domain and API token
51
- canvas list # List starred courses
52
- canvas list -a # List all enrolled courses
53
- canvas assignments <course> # List assignments for a course
54
- canvas grades # Interactive course selection + detailed grades
55
- canvas grades <course-id> # Show detailed grades for specific course
56
- canvas announcements # Show recent announcements
57
- canvas profile # Show user profile
58
- canvas submit # Interactive assignment submission
59
- ```
60
-
61
- ### Assignment Submission
62
-
63
- ```bash
64
- canvas submit # Interactive mode
65
- canvas submit -c <courseId> # Specify course
66
- canvas submit -a <assignmentId> # Specify assignment
67
- canvas submit -f <file> # Submit specific file
68
- ```
69
-
70
- ### Viewing Grades
71
-
72
- The grades command provides an enhanced, interactive experience:
73
-
74
- ```bash
75
- canvas grades # Interactive course selection (active courses)
76
- canvas grades --all # Include inactive/completed courses
77
- canvas grades <course-id> # Direct course grade view
78
- canvas grades --verbose # Include enrollment details
79
- canvas grades -a -v # All courses with verbose details
80
- ```
81
-
82
- **Features:**
83
- - 📊 Interactive course selection with grade summary table
84
- - 📝 Detailed assignment breakdown with scores
85
- - Color-coded status indicators (graded, pending, not done)
86
- - 📈 Calculated totals based on graded assignments
87
- - 📋 Table-formatted overall grades
88
- - 🔍 Option to view all courses including inactive ones
89
- - 🎯 Visual progress tracking with emojis
90
-
91
- **What you'll see:**
92
- 1. List of all courses with current/final scores
93
- 2. Select a course to view detailed breakdown
94
- 3. Overall grades (Canvas official + calculated average)
95
- 4. Complete assignment list with individual scores
96
- 5. Points earned vs points possible
97
- 6. Assignment submission status
98
-
99
- ## Command Reference
100
-
101
- | Command | Alias | Description |
102
- |-----------------|-----------|-----------------------------------|
103
- | `list` | `l` | List courses |
104
- | `assignments` | `assign` | List assignments |
105
- | `submit` | `sub` | Submit assignment files |
106
- | `grades` | `grade` | Show grades |
107
- | `announcements` | `announce`| Show announcements |
108
- | `profile` | `me` | Show user profile |
109
- | `config` | - | Show configuration |
110
-
111
- ## Requirements
112
-
113
- - Node.js >= 14.x
114
- - npm >= 6.x
115
- - Valid Canvas LMS API token
116
-
117
- ## Contributing
118
-
119
- 1. Fork the repository
120
- 2. Create a feature branch: `git checkout -b feature-name`
121
- 3. Make your changes
122
- 4. Run tests: `npm test`
123
- 5. Commit: `git commit -am 'Add feature'`
124
- 6. Push: `git push origin feature-name`
125
- 7. Submit a pull request
126
-
127
- ## License
128
-
129
- MIT License - see [LICENSE](LICENSE) for details.
1
+ # Canvas CLI Tool
2
+
3
+ A modern, user-friendly command-line interface for Canvas LMS. Manage courses, assignments, submissions, grades, and more directly from your terminal.
4
+
5
+ ## Features
6
+
7
+ - List and filter enrolled/starred courses
8
+ - View assignments, grades, and submission status
9
+ - Interactive file upload for assignments
10
+ - View course announcements
11
+ - Display user profile information
12
+ - Direct access to Canvas API endpoints
13
+
14
+ ## Installation
15
+
16
+ ### Global (Recommended)
17
+
18
+ ```bash
19
+ npm install -g canvaslms-cli
20
+ ```
21
+
22
+ ## Setup
23
+
24
+ 1. **Get your Canvas API Token**
25
+ - Log in to Canvas
26
+ - Go to Account → Settings
27
+ - Under Approved Integrations, click + New Access Token
28
+ - Copy the generated token
29
+
30
+ 2. **Configure the CLI**
31
+
32
+ ```bash
33
+ canvas config
34
+ ```
35
+
36
+ 3. **Environment Variables**
37
+
38
+ Create a `.env` file in your project root:
39
+
40
+ ```env
41
+ CANVAS_DOMAIN=your-canvas-domain.instructure.com
42
+ CANVAS_API_TOKEN=your-api-token
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ ### Common Commands
48
+
49
+ ```bash
50
+ canvas config # Configure domain and API token
51
+ canvas list # List starred courses
52
+ canvas list -a # List all enrolled courses
53
+ canvas assignments <course> # List assignments for a course
54
+ canvas grades # Interactive course selection + detailed grades
55
+ canvas grades <course-id> # Show detailed grades for specific course
56
+ canvas announcements # Show recent announcements
57
+ canvas profile # Show user profile
58
+ canvas submit # Interactive assignment submission
59
+ ```
60
+
61
+ ### Assignment Submission
62
+
63
+ ```bash
64
+ canvas submit # Interactive mode
65
+ canvas submit -c <courseId> # Specify course
66
+ canvas submit -a <assignmentId> # Specify assignment
67
+ canvas submit -f <file> # Submit specific file
68
+ ```
69
+
70
+ ### Viewing Grades
71
+
72
+ The grades command provides an enhanced, interactive experience:
73
+
74
+ ```bash
75
+ canvas grades # Interactive course selection (active courses)
76
+ canvas grades --all # Include inactive/completed courses
77
+ canvas grades <course-id> # Direct course grade view
78
+ canvas grades --verbose # Include enrollment details
79
+ canvas grades -a -v # All courses with verbose details
80
+ ```
81
+
82
+ **Features:**
83
+
84
+ - 📊 Interactive course selection with grade summary table
85
+ - 📝 Detailed assignment breakdown with scores
86
+ - Color-coded status indicators (graded, pending, not done)
87
+ - 📈 Calculated totals based on graded assignments
88
+ - 📋 Table-formatted overall grades
89
+ - 🔍 Option to view all courses including inactive ones
90
+ - 🎯 Visual progress tracking with emojis
91
+
92
+ **What you'll see:**
93
+
94
+ 1. List of all courses with current/final scores
95
+ 2. Select a course to view detailed breakdown
96
+ 3. Overall grades (Canvas official + calculated average)
97
+ 4. Complete assignment list with individual scores
98
+ 5. Points earned vs points possible
99
+ 6. Assignment submission status
100
+
101
+ ## Command Reference
102
+
103
+ | Command | Alias | Description |
104
+ | --------------- | ---------- | ----------------------- |
105
+ | `list` | `l` | List courses |
106
+ | `assignments` | `assign` | List assignments |
107
+ | `submit` | `sub` | Submit assignment files |
108
+ | `grades` | `grade` | Show grades |
109
+ | `announcements` | `announce` | Show announcements |
110
+ | `profile` | `me` | Show user profile |
111
+ | `config` | - | Show configuration |
112
+
113
+ ## Requirements
114
+
115
+ - Node.js >= 14.x
116
+ - npm >= 6.x
117
+ - Valid Canvas LMS API token
118
+
119
+ ## Contributing
120
+
121
+ 1. Fork the repository
122
+ 2. Create a feature branch: `git checkout -b feature-name`
123
+ 3. Make your changes
124
+ 4. Run tests: `npm test`
125
+ 5. Commit: `git commit -am 'Add feature'`
126
+ 6. Push: `git push origin feature-name`
127
+ 7. Submit a pull request
128
+
129
+ ## License
130
+
131
+ MIT License - see [LICENSE](LICENSE) for details.
@@ -1,3 +1,3 @@
1
- import type { ShowAnnouncementsOptions } from '../types/index.js';
2
- export declare function showAnnouncements(courseId?: string, options?: ShowAnnouncementsOptions): Promise<void>;
1
+ import type { ShowAnnouncementsOptions } from "../types/index.js";
2
+ export declare function showAnnouncements(courseName?: string, options?: ShowAnnouncementsOptions): Promise<void>;
3
3
  //# sourceMappingURL=announcements.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../commands/announcements.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoC,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAMpG,wBAAsB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CA+MhH"}
1
+ {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../commands/announcements.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,wBAAsB,iBAAiB,CACrC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CAiFf"}
@@ -1,148 +1,67 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
2
- import { createReadlineInterface, askQuestion } from '../lib/interactive.js';
3
- import chalk from 'chalk';
4
- function pad(str, len) {
5
- return str + ' '.repeat(Math.max(0, len - str.length));
6
- }
7
- export async function showAnnouncements(courseId, options = {}) {
8
- const rl = createReadlineInterface();
1
+ import { makeCanvasRequest, getCanvasCourse } from "../lib/api-client.js";
2
+ import { createReadlineInterface, askQuestion } from "../lib/interactive.js";
3
+ import { pickCourse, displayAnnouncements, displayAnnouncementDetail, printInfo, printError, printSuccess, printWarning, } from "../lib/display.js";
4
+ import chalk from "chalk";
5
+ export async function showAnnouncements(courseName, options = {}) {
6
+ let rl = null;
9
7
  try {
10
- let selectedCourseId = courseId;
11
- if (!selectedCourseId) {
12
- console.log(chalk.cyan.bold('\nLoading your courses, please wait...'));
13
- let courses = await makeCanvasRequest('get', 'courses', [
14
- 'enrollment_state=active',
15
- 'include[]=favorites'
16
- ]);
17
- if (!courses || courses.length === 0) {
18
- console.log(chalk.red('Error: No courses found.'));
19
- rl.close();
20
- return;
21
- }
22
- console.log(chalk.green(`✓ Found ${courses.length} course(s).`));
23
- const colNo = Math.max(3, String(courses.length).length + 1);
24
- const terminalWidth = process.stdout.columns || 80;
25
- const overhead = 10 + colNo;
26
- const maxNameLength = Math.max(11, ...courses.map(c => c.name.length));
27
- const colName = Math.min(maxNameLength, terminalWidth - overhead);
28
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┬─') +
29
- chalk.gray('─'.repeat(colName)) + chalk.gray('╮'));
30
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('#', colNo)) + chalk.gray('│ ') +
31
- chalk.cyan.bold(pad('Course Name', colName)) + chalk.gray('│'));
32
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┼─') +
33
- chalk.gray('─'.repeat(colName)) + chalk.gray('┤'));
34
- courses.forEach((course, index) => {
35
- let displayName = course.name;
36
- if (displayName.length > colName) {
37
- displayName = displayName.substring(0, colName - 3) + '...';
38
- }
39
- console.log(chalk.gray('│ ') + chalk.white(pad((index + 1) + '.', colNo)) + chalk.gray('│ ') +
40
- chalk.white(pad(displayName, colName)) + chalk.gray('│'));
8
+ let selectedCourseId;
9
+ if (!courseName) {
10
+ const result = await pickCourse({
11
+ title: "\nLoading your courses, please wait...",
41
12
  });
42
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┴─') +
43
- chalk.gray('─'.repeat(colName)) + chalk.gray('╯'));
44
- const courseChoice = await askQuestion(rl, chalk.bold.cyan('\nEnter course number: '));
45
- if (!courseChoice.trim()) {
46
- console.log(chalk.red('No course selected. Exiting...'));
47
- rl.close();
13
+ if (!result)
48
14
  return;
49
- }
50
- const courseIndex = parseInt(courseChoice) - 1;
51
- if (courseIndex < 0 || courseIndex >= courses.length) {
52
- console.log(chalk.red('Invalid course selection.'));
53
- rl.close();
15
+ selectedCourseId = result.course.id.toString();
16
+ rl = result.rl;
17
+ }
18
+ else {
19
+ const course = await getCanvasCourse(courseName);
20
+ if (!course) {
21
+ printError(`Course "${courseName}" not found.`);
54
22
  return;
55
23
  }
56
- selectedCourseId = String(courses[courseIndex]?.id);
57
- console.log(chalk.green(`✓ Selected: ${courses[courseIndex]?.name}\n`));
24
+ selectedCourseId = course.id.toString();
25
+ printSuccess(`✓ Using course: ${course.name}`);
26
+ rl = createReadlineInterface();
58
27
  }
59
- const limit = parseInt(options.limit || '5') || 5;
60
- console.log(chalk.cyan.bold('Loading announcements...'));
61
- const announcements = await makeCanvasRequest('get', `courses/${selectedCourseId}/discussion_topics`, [`only_announcements=true`, `per_page=${limit}`]);
28
+ const limit = parseInt(options.limit || "5") || 5;
29
+ printInfo("Loading announcements...");
30
+ const announcements = await makeCanvasRequest("get", `courses/${selectedCourseId}/discussion_topics`, [`only_announcements=true`, `per_page=${limit}`]);
62
31
  if (!announcements || announcements.length === 0) {
63
- console.log(chalk.yellow('No announcements found for this course.'));
64
- rl.close();
32
+ printWarning("No announcements found for this course.");
33
+ rl?.close();
65
34
  return;
66
35
  }
67
- console.log(chalk.green(`✓ Found ${announcements.length} announcement(s).`));
68
- const colNo = Math.max(3, String(announcements.length).length + 1);
69
- const colDate = 12;
70
- const terminalWidth = process.stdout.columns || 80;
71
- const overhead = 14 + colNo + colDate;
72
- const maxTitleLength = Math.max(5, ...announcements.map(a => (a.title || 'Untitled').length));
73
- const colTitle = Math.min(maxTitleLength, terminalWidth - overhead);
74
- console.log(chalk.gray('╭─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┬─') +
75
- chalk.gray('─'.repeat(colTitle)) + chalk.gray('┬─') +
76
- chalk.gray('─'.repeat(colDate)) + chalk.gray('╮'));
77
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('#', colNo)) + chalk.gray('│ ') +
78
- chalk.cyan.bold(pad('Title', colTitle)) + chalk.gray('│ ') +
79
- chalk.cyan.bold(pad('Posted', colDate)) + chalk.gray('│'));
80
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┼─') +
81
- chalk.gray('─'.repeat(colTitle)) + chalk.gray('┼─') +
82
- chalk.gray('─'.repeat(colDate)) + chalk.gray('┤'));
83
- announcements.forEach((a, i) => {
84
- let displayTitle = a.title || 'Untitled';
85
- if (displayTitle.length > colTitle) {
86
- displayTitle = displayTitle.substring(0, colTitle - 3) + '...';
87
- }
88
- const date = a.posted_at ? new Date(a.posted_at).toLocaleDateString() : 'N/A';
89
- console.log(chalk.gray('│ ') + chalk.white(pad((i + 1) + '.', colNo)) + chalk.gray('│ ') +
90
- chalk.white(pad(displayTitle, colTitle)) + chalk.gray('│ ') +
91
- chalk.gray(pad(date, colDate)) + chalk.gray('│'));
92
- });
93
- console.log(chalk.gray('╰─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┴─') +
94
- chalk.gray('─'.repeat(colTitle)) + chalk.gray('┴─') +
95
- chalk.gray('─'.repeat(colDate)) + chalk.gray('╯'));
96
- const annChoice = await askQuestion(rl, chalk.bold.cyan('\nEnter announcement number to view details (0 to exit): '));
97
- if (!annChoice.trim() || annChoice === '0') {
98
- console.log(chalk.yellow('Exiting announcements viewer.'));
99
- rl.close();
36
+ printSuccess(`Found ${announcements.length} announcement(s).`);
37
+ const announcementTable = displayAnnouncements(announcements);
38
+ const annChoice = await askQuestion(rl, chalk.bold.cyan("\nEnter announcement number to view details (0 to exit): "));
39
+ announcementTable.stopWatching();
40
+ if (!annChoice.trim() || annChoice === "0") {
41
+ printWarning("Exiting announcements viewer.");
42
+ rl?.close();
100
43
  return;
101
44
  }
102
45
  const annIndex = parseInt(annChoice) - 1;
103
46
  if (annIndex < 0 || annIndex >= announcements.length) {
104
- console.log(chalk.red('Invalid announcement selection.'));
105
- rl.close();
47
+ printError("Invalid announcement selection.");
48
+ rl?.close();
106
49
  return;
107
50
  }
108
51
  const ann = announcements[annIndex];
109
- const title = ann?.title || 'Untitled';
110
- const date = ann?.posted_at ? new Date(ann.posted_at).toLocaleString() : 'N/A';
111
- const author = ann?.author?.display_name || 'Unknown';
112
- const message = ann?.message?.replace(/<[^>]+>/g, '').trim() || 'No content';
113
- const detailTermWidth = process.stdout.columns || 80;
114
- const boxWidth = Math.max(50, Math.min(80, detailTermWidth - 4));
115
- console.log('\n' + chalk.cyan('╭' + '─'.repeat(boxWidth) + '╮'));
116
- console.log(chalk.cyan('│') + chalk.bold.white(' ' + title.substring(0, boxWidth - 2)).padEnd(boxWidth) + chalk.cyan('│'));
117
- console.log(chalk.cyan('├' + '─'.repeat(boxWidth) + '┤'));
118
- console.log(chalk.cyan('│') + chalk.gray(' Posted: ') + chalk.white(date).padEnd(boxWidth - 9) + chalk.cyan('│'));
119
- console.log(chalk.cyan('│') + chalk.gray(' Author: ') + chalk.white(author).padEnd(boxWidth - 9) + chalk.cyan('│'));
120
- console.log(chalk.cyan('├' + '─'.repeat(boxWidth) + '┤'));
121
- const contentWidth = boxWidth - 2;
122
- const words = message.split(' ');
123
- let currentLine = '';
124
- for (const word of words) {
125
- if ((currentLine + ' ' + word).trim().length <= contentWidth) {
126
- currentLine = (currentLine + ' ' + word).trim();
127
- }
128
- else {
129
- if (currentLine) {
130
- console.log(chalk.cyan('│') + ' ' + currentLine.padEnd(contentWidth) + chalk.cyan('│'));
131
- }
132
- currentLine = word;
133
- }
134
- }
135
- if (currentLine) {
136
- console.log(chalk.cyan('│') + ' ' + currentLine.padEnd(contentWidth) + chalk.cyan('│'));
137
- }
138
- console.log(chalk.cyan('╰' + '─'.repeat(boxWidth) + '╯') + '\n');
52
+ displayAnnouncementDetail({
53
+ title: ann?.title || "Untitled",
54
+ postedAt: ann?.posted_at || null,
55
+ author: ann?.author?.display_name || "Unknown",
56
+ message: ann?.message || "No content",
57
+ });
139
58
  }
140
59
  catch (error) {
141
60
  const errorMessage = error instanceof Error ? error.message : String(error);
142
- console.error(chalk.red('Error: Failed to fetch announcements: ') + errorMessage);
61
+ console.error(chalk.red("Error: Failed to fetch announcements: ") + errorMessage);
143
62
  }
144
63
  finally {
145
- rl.close();
64
+ rl?.close();
146
65
  }
147
66
  }
148
67
  //# sourceMappingURL=announcements.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"announcements.js","sourceRoot":"","sources":["../../commands/announcements.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announcements.js","sourceRoot":"","sources":["../../commands/announcements.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { ApiQueryOptions } from '../types/index.js';
1
+ import type { ApiQueryOptions } from "../types/index.js";
2
2
  export declare function createQueryHandler(method: string): (endpoint: string, options: ApiQueryOptions) => Promise<void>;
3
3
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../commands/api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,IACzB,UAAU,MAAM,EAAE,SAAS,eAAe,KAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../commands/api.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,IAE7C,UAAU,MAAM,EAChB,SAAS,eAAe,KACvB,OAAO,CAAC,IAAI,CAAC,CASjB"}
@@ -1,4 +1,4 @@
1
- import { makeCanvasRequest } from '../lib/api-client.js';
1
+ import { makeCanvasRequest } from "../lib/api-client.js";
2
2
  export function createQueryHandler(method) {
3
3
  return async function (endpoint, options) {
4
4
  const data = await makeCanvasRequest(method, endpoint, options.query || [], options.body || null);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../commands/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMzD,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,KAAK,WAAU,QAAgB,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAClG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../commands/api.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMzD,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,KAAK,WACV,QAAgB,EAChB,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAClC,MAAM,EACN,QAAQ,EACR,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,OAAO,CAAC,IAAI,IAAI,IAAI,CACrB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { ListAssignmentsOptions } from '../types/index.js';
2
- export declare function listAssignments(courseId: string, options: ListAssignmentsOptions): Promise<void>;
1
+ import type { ListAssignmentsOptions } from "../types/index.js";
2
+ export declare function listAssignments(courseName?: string, options?: ListAssignmentsOptions): Promise<void>;
3
3
  //# sourceMappingURL=assignments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkC,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMhG,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JtG"}
1
+ {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../commands/assignments.ts"],"names":[],"mappings":"AAcA,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,CAmEf"}