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.
- package/CHANGELOG.md +210 -186
- package/README.md +131 -129
- package/dist/commands/announcements.d.ts +2 -2
- package/dist/commands/announcements.d.ts.map +1 -1
- package/dist/commands/announcements.js +43 -124
- package/dist/commands/announcements.js.map +1 -1
- package/dist/commands/api.d.ts +1 -1
- package/dist/commands/api.d.ts.map +1 -1
- package/dist/commands/api.js +1 -1
- package/dist/commands/api.js.map +1 -1
- package/dist/commands/assignments.d.ts +2 -2
- package/dist/commands/assignments.d.ts.map +1 -1
- package/dist/commands/assignments.js +40 -128
- package/dist/commands/assignments.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +102 -85
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/grades.d.ts +2 -2
- package/dist/commands/grades.d.ts.map +1 -1
- package/dist/commands/grades.js +296 -178
- package/dist/commands/grades.js.map +1 -1
- package/dist/commands/list.d.ts +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +26 -46
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +57 -32
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/submit.d.ts +2 -2
- package/dist/commands/submit.d.ts.map +1 -1
- package/dist/commands/submit.js +110 -165
- package/dist/commands/submit.js.map +1 -1
- package/dist/index.d.ts +14 -14
- package/dist/index.js +14 -14
- package/dist/lib/api-client.d.ts +3 -0
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +31 -16
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/config-validator.d.ts.map +1 -1
- package/dist/lib/config-validator.js +12 -12
- package/dist/lib/config-validator.js.map +1 -1
- package/dist/lib/config.d.ts +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +16 -14
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/display.d.ts +84 -0
- package/dist/lib/display.d.ts.map +1 -0
- package/dist/lib/display.js +603 -0
- package/dist/lib/display.js.map +1 -0
- package/dist/lib/file-upload.d.ts.map +1 -1
- package/dist/lib/file-upload.js +17 -17
- package/dist/lib/file-upload.js.map +1 -1
- package/dist/lib/interactive.d.ts +1 -1
- package/dist/lib/interactive.d.ts.map +1 -1
- package/dist/lib/interactive.js +200 -143
- package/dist/lib/interactive.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +62 -62
- package/dist/src/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/package.json +9 -4
- package/dist/commands/coursenames.d.ts +0 -15
- package/dist/commands/coursenames.d.ts.map +0 -1
- package/dist/commands/coursenames.js +0 -150
- package/dist/commands/coursenames.js.map +0 -1
- package/dist/lib/course-utils.d.ts +0 -6
- package/dist/lib/course-utils.d.ts.map +0 -1
- package/dist/lib/course-utils.js +0 -17
- 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
|
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
| `
|
|
106
|
-
| `
|
|
107
|
-
| `
|
|
108
|
-
| `
|
|
109
|
-
| `
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
|
2
|
-
export declare function showAnnouncements(
|
|
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":"
|
|
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
|
|
2
|
-
import { createReadlineInterface, askQuestion } from
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
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
|
|
11
|
-
if (!
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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 =
|
|
57
|
-
|
|
24
|
+
selectedCourseId = course.id.toString();
|
|
25
|
+
printSuccess(`✓ Using course: ${course.name}`);
|
|
26
|
+
rl = createReadlineInterface();
|
|
58
27
|
}
|
|
59
|
-
const limit = parseInt(options.limit ||
|
|
60
|
-
|
|
61
|
-
const announcements = await makeCanvasRequest(
|
|
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
|
-
|
|
64
|
-
rl
|
|
32
|
+
printWarning("No announcements found for this course.");
|
|
33
|
+
rl?.close();
|
|
65
34
|
return;
|
|
66
35
|
}
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
105
|
-
rl
|
|
47
|
+
printError("Invalid announcement selection.");
|
|
48
|
+
rl?.close();
|
|
106
49
|
return;
|
|
107
50
|
}
|
|
108
51
|
const ann = announcements[annIndex];
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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(
|
|
61
|
+
console.error(chalk.red("Error: Failed to fetch announcements: ") + errorMessage);
|
|
143
62
|
}
|
|
144
63
|
finally {
|
|
145
|
-
rl
|
|
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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"}
|
package/dist/commands/api.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { ApiQueryOptions } from
|
|
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,
|
|
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"}
|
package/dist/commands/api.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { makeCanvasRequest } from
|
|
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);
|
package/dist/commands/api.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
2
|
-
export declare function listAssignments(
|
|
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":"
|
|
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"}
|