canvaslms-cli 1.5.1 → 1.6.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 (42) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/dist/commands/announcements.d.ts.map +1 -1
  3. package/dist/commands/announcements.js +28 -62
  4. package/dist/commands/announcements.js.map +1 -1
  5. package/dist/commands/assignments.d.ts +1 -1
  6. package/dist/commands/assignments.d.ts.map +1 -1
  7. package/dist/commands/assignments.js +30 -78
  8. package/dist/commands/assignments.js.map +1 -1
  9. package/dist/commands/config.d.ts.map +1 -1
  10. package/dist/commands/config.js +0 -13
  11. package/dist/commands/config.js.map +1 -1
  12. package/dist/commands/coursenames.d.ts +15 -0
  13. package/dist/commands/coursenames.d.ts.map +1 -0
  14. package/dist/commands/coursenames.js +150 -0
  15. package/dist/commands/coursenames.js.map +1 -0
  16. package/dist/commands/grades.d.ts.map +1 -1
  17. package/dist/commands/grades.js +52 -58
  18. package/dist/commands/grades.js.map +1 -1
  19. package/dist/commands/list.d.ts.map +1 -1
  20. package/dist/commands/list.js +13 -35
  21. package/dist/commands/list.js.map +1 -1
  22. package/dist/commands/profile.d.ts.map +1 -1
  23. package/dist/commands/profile.js +44 -16
  24. package/dist/commands/profile.js.map +1 -1
  25. package/dist/commands/submit.d.ts +1 -0
  26. package/dist/commands/submit.d.ts.map +1 -1
  27. package/dist/commands/submit.js +28 -89
  28. package/dist/commands/submit.js.map +1 -1
  29. package/dist/lib/course-utils.d.ts +6 -0
  30. package/dist/lib/course-utils.d.ts.map +1 -0
  31. package/dist/lib/course-utils.js +17 -0
  32. package/dist/lib/course-utils.js.map +1 -0
  33. package/dist/lib/display.d.ts +78 -0
  34. package/dist/lib/display.d.ts.map +1 -0
  35. package/dist/lib/display.js +507 -0
  36. package/dist/lib/display.js.map +1 -0
  37. package/dist/lib/interactive.d.ts.map +1 -1
  38. package/dist/lib/interactive.js +9 -1
  39. package/dist/lib/interactive.js.map +1 -1
  40. package/dist/src/index.js +30 -29
  41. package/dist/src/index.js.map +1 -1
  42. package/package.json +1 -1
@@ -1,11 +1,9 @@
1
1
  import { makeCanvasRequest } from '../lib/api-client.js';
2
2
  import { uploadSingleFileToCanvas, submitAssignmentWithFiles } from '../lib/file-upload.js';
3
3
  import { createReadlineInterface, selectFilesKeyboard, askQuestion, askConfirmation } from '../lib/interactive.js';
4
+ import { displaySubmitAssignments } from '../lib/display.js';
4
5
  import chalk from 'chalk';
5
6
  import path from 'path';
6
- function pad(str, len) {
7
- return str + ' '.repeat(Math.max(0, len - str.length));
8
- }
9
7
  function clearLines(count = 1) {
10
8
  if (!process.stdout.isTTY)
11
9
  return;
@@ -15,6 +13,9 @@ function clearLines(count = 1) {
15
13
  }
16
14
  }
17
15
  export async function submitAssignment(options) {
16
+ if (options.dryRun) {
17
+ console.log(chalk.bgRedBright('Dry run mode - no actual submission will be made'));
18
+ }
18
19
  let rl = createReadlineInterface();
19
20
  let rlForConfirm = rl;
20
21
  process.on('SIGINT', () => {
@@ -104,89 +105,17 @@ export async function submitAssignment(options) {
104
105
  return -1;
105
106
  return new Date(a.due_at).getTime() - new Date(b.due_at).getTime();
106
107
  });
107
- console.log(chalk.white(`\nFound ${uploadableAssignments.length} assignment(s) that accept file uploads:`));
108
- console.log();
109
- const colNo = 5;
110
- const colName = 40;
111
- const colType = 18;
112
- const colDate = 26;
113
- const colStatus = 15;
114
- console.log(chalk.gray('┌─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┬─') +
115
- chalk.gray('─'.repeat(colName)) + chalk.gray('┬─') +
116
- chalk.gray('─'.repeat(colType)) + chalk.gray('┬─') +
117
- chalk.gray('─'.repeat(colDate)) + chalk.gray('┬─') +
118
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┐'));
119
- console.log(chalk.gray('│ ') + chalk.cyan.bold(pad('No', colNo)) + chalk.gray('│ ') +
120
- chalk.cyan.bold(pad('Assignment Name', colName)) + chalk.gray('│ ') +
121
- chalk.cyan.bold(pad('Type', colType)) + chalk.gray('│ ') +
122
- chalk.cyan.bold(pad('Due Date', colDate)) + chalk.gray('│ ') +
123
- chalk.cyan.bold(pad('Status', colStatus)) + chalk.gray('│'));
124
- console.log(chalk.gray('├─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┼─') +
125
- chalk.gray('─'.repeat(colName)) + chalk.gray('┼─') +
126
- chalk.gray('─'.repeat(colType)) + chalk.gray('┼─') +
127
- chalk.gray('─'.repeat(colDate)) + chalk.gray('┼─') +
128
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┤'));
129
- uploadableAssignments.forEach((assignment, index) => {
130
- const submission = assignment.submission;
131
- const isSubmitted = submission && submission.submitted_at;
132
- const statusPlainText = isSubmitted ? '✓ Submitted' : 'Not submitted';
133
- const statusColored = isSubmitted
134
- ? chalk.green(statusPlainText)
135
- : chalk.yellow(statusPlainText);
136
- const dueDateText = assignment.due_at
137
- ? new Date(assignment.due_at).toLocaleString()
138
- : 'No due date';
139
- let typeText = 'Unknown';
140
- if (assignment.submission_types && assignment.submission_types.length > 0) {
141
- const types = assignment.submission_types;
142
- if (types.includes('online_quiz')) {
143
- typeText = 'Quiz';
144
- }
145
- else if (types.includes('online_upload')) {
146
- if (assignment.allowed_extensions && assignment.allowed_extensions.length > 0) {
147
- const exts = assignment.allowed_extensions.slice(0, 3);
148
- const extList = exts.join(', ');
149
- const suffix = assignment.allowed_extensions.length > 3 ? '...' : '';
150
- typeText = `${extList}${suffix}`;
151
- }
152
- else {
153
- typeText = 'Any file';
154
- }
155
- }
156
- else if (types.includes('online_text_entry')) {
157
- typeText = 'Text Entry';
158
- }
159
- else if (types.includes('online_url')) {
160
- typeText = 'URL';
161
- }
162
- else if (types.includes('external_tool')) {
163
- typeText = 'External Tool';
164
- }
165
- else if (types.includes('media_recording')) {
166
- typeText = 'Media';
167
- }
168
- else if (types[0]) {
169
- typeText = types[0].replace(/_/g, ' ');
170
- }
171
- }
172
- let displayName = assignment.name;
173
- if (displayName.length > colName) {
174
- displayName = displayName.substring(0, colName - 3) + '...';
175
- }
176
- console.log(chalk.gray('│ ') + chalk.white(pad(`${index + 1}`, colNo)) + chalk.gray('│ ') +
177
- chalk.white(pad(displayName, colName)) + chalk.gray('│ ') +
178
- chalk.blue(pad(typeText, colType)) + chalk.gray('│ ') +
179
- chalk.gray(pad(dueDateText, colDate)) + chalk.gray('│ ') +
180
- statusColored + ' '.repeat(Math.max(0, colStatus - statusPlainText.length)) + chalk.gray('│'));
181
- });
182
- console.log(chalk.gray('└─') + chalk.gray('─'.repeat(colNo)) + chalk.gray('┴─') +
183
- chalk.gray('─'.repeat(colName)) + chalk.gray('┴─') +
184
- chalk.gray('─'.repeat(colType)) + chalk.gray('┴─') +
185
- chalk.gray('─'.repeat(colDate)) + chalk.gray('┴─') +
186
- chalk.gray('─'.repeat(colStatus)) + chalk.gray('┘'));
108
+ if (uploadableAssignments.length === 1) {
109
+ console.log(chalk.white(`\nFound ${uploadableAssignments.length} assignment that accept file uploads:`));
110
+ }
111
+ else {
112
+ console.log(chalk.white(`\nFound ${uploadableAssignments.length} assignment(s) that accept file uploads:`));
113
+ }
114
+ const assignmentTable = displaySubmitAssignments(uploadableAssignments);
187
115
  let selectedAssignment;
188
116
  while (true) {
189
117
  const assignmentChoice = await askQuestion(rl, chalk.white('\nEnter assignment number (or ".."/"back" to cancel): '));
118
+ assignmentTable.stopWatching();
190
119
  if (!assignmentChoice.trim() || assignmentChoice === '..' || assignmentChoice.toLowerCase() === 'back') {
191
120
  console.log(chalk.yellow('Submission cancelled.'));
192
121
  rl.close();
@@ -263,9 +192,14 @@ export async function submitAssignment(options) {
263
192
  continue;
264
193
  try {
265
194
  console.log(chalk.white(`Uploading ${i + 1}/${filesToSubmit.length}: ${path.basename(file)}...`));
266
- const fileId = await uploadSingleFileToCanvas(courseId, selectedAssignment.id, file);
267
- fileIds.push(fileId);
268
- console.log(chalk.green(`✓ Uploaded successfully (File ID: ${fileId})`));
195
+ if (!options.dryRun) {
196
+ const fileId = await uploadSingleFileToCanvas(courseId, selectedAssignment.id, file);
197
+ fileIds.push(fileId);
198
+ }
199
+ else {
200
+ fileIds.push(1);
201
+ }
202
+ console.log(chalk.green(`✓ Uploaded ${file} successfully`));
269
203
  }
270
204
  catch (error) {
271
205
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -288,24 +222,29 @@ export async function submitAssignment(options) {
288
222
  console.log(chalk.cyan('-'.repeat(60)));
289
223
  console.log(chalk.white('Finalizing submission...'));
290
224
  try {
291
- await submitAssignmentWithFiles(courseId, selectedAssignment.id, fileIds);
225
+ if (!options.dryRun) {
226
+ await submitAssignmentWithFiles(courseId, selectedAssignment.id, fileIds);
227
+ }
228
+ const config = await import('../lib/config.js').then(c => c.loadConfig());
229
+ const assignmentUrl = `https://${config.domain}/courses/${courseId}/assignments/${selectedAssignment.id}`;
292
230
  console.log(chalk.cyan('\n' + '='.repeat(60)));
293
231
  console.log(chalk.green.bold('Assignment submitted successfully!'));
294
232
  console.log(chalk.cyan('='.repeat(60)));
295
233
  console.log(chalk.white(`Course ID: ${courseId}`));
296
234
  console.log(chalk.white(`Assignment: ${selectedAssignment.name}`));
297
235
  console.log(chalk.white(`Files submitted: ${fileIds.length}`));
236
+ console.log(chalk.white('Assignment URL: '), chalk.blue(assignmentUrl));
298
237
  console.log(chalk.cyan('='.repeat(60)));
299
238
  }
300
239
  catch (error) {
301
240
  const errorMessage = error instanceof Error ? error.message : String(error);
302
- console.log(chalk.red('\n❌ Error submitting assignment: ' + errorMessage));
241
+ console.log(chalk.red('\nError submitting assignment: ' + errorMessage));
303
242
  console.log(chalk.yellow('Files were uploaded but submission failed. You may need to complete the submission manually in Canvas.'));
304
243
  }
305
244
  }
306
245
  catch (error) {
307
246
  const errorMessage = error instanceof Error ? error.message : String(error);
308
- console.error(chalk.red('\n❌ Error during submission process:'), errorMessage);
247
+ console.error(chalk.red('\nError during submission process:'), errorMessage);
309
248
  process.exit(1);
310
249
  }
311
250
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../commands/submit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function parseCourseNameFromHtml(html: string): string | null;
2
+ declare const _default: {
3
+ parseCourseNameFromHtml: typeof parseCourseNameFromHtml;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=course-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-utils.d.ts","sourceRoot":"","sources":["../../lib/course-utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnE;;;;AAED,wBAA2C"}
@@ -0,0 +1,17 @@
1
+ export function parseCourseNameFromHtml(html) {
2
+ if (!html)
3
+ return null;
4
+ const regex = /<a[^>]*class=["'][^"']*mobile-header-title[^"']*["'][^>]*>\s*<div[^>]*>([^<]+)<\/div>/i;
5
+ const match = html.match(regex);
6
+ if (match && match[1]) {
7
+ return match[1].trim();
8
+ }
9
+ const titleRegex = /<title>\s*([^<]+)\s*<\/title>/i;
10
+ const titleMatch = html.match(titleRegex);
11
+ if (titleMatch && titleMatch[1]) {
12
+ return titleMatch[1].trim();
13
+ }
14
+ return null;
15
+ }
16
+ export default { parseCourseNameFromHtml };
17
+ //# sourceMappingURL=course-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"course-utils.js","sourceRoot":"","sources":["../../lib/course-utils.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAIvB,MAAM,KAAK,GAAG,wFAAwF,CAAC;IACvG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAGD,MAAM,UAAU,GAAG,gCAAgC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import type { CanvasCourse, CanvasAssignment, CanvasAnnouncement } from '../types/index.js';
2
+ import { createReadlineInterface } from './interactive.js';
3
+ export interface ColumnDefinition {
4
+ key: string;
5
+ header: string;
6
+ width?: number;
7
+ minWidth?: number;
8
+ maxWidth?: number;
9
+ flex?: number;
10
+ align?: 'left' | 'right' | 'center';
11
+ color?: (value: string, row: Record<string, any>) => string;
12
+ }
13
+ export interface TableOptions {
14
+ title?: string;
15
+ showRowNumbers?: boolean;
16
+ rowNumberHeader?: string;
17
+ }
18
+ export declare function pad(str: string, len: number, align?: 'left' | 'right' | 'center'): string;
19
+ export declare function truncate(str: string, maxLen: number): string;
20
+ export declare class Table {
21
+ private columns;
22
+ private data;
23
+ private options;
24
+ private rowNumWidth;
25
+ constructor(columns: ColumnDefinition[], options?: TableOptions);
26
+ addRow(row: Record<string, any>): this;
27
+ addRows(rows: Record<string, any>[]): this;
28
+ render(): void;
29
+ renderWithResize(): void;
30
+ stopWatching(): void;
31
+ private renderTable;
32
+ private renderTopBorder;
33
+ private renderHeader;
34
+ private renderHeaderSeparator;
35
+ private renderRow;
36
+ private renderBottomBorder;
37
+ }
38
+ export interface CoursePickerOptions {
39
+ showAll?: boolean;
40
+ title?: string;
41
+ prompt?: string;
42
+ }
43
+ export interface CoursePickerResult {
44
+ course: CanvasCourse;
45
+ rl: ReturnType<typeof createReadlineInterface>;
46
+ }
47
+ export declare function displayCourses(courses: CanvasCourse[], options?: {
48
+ showId?: boolean;
49
+ }): void;
50
+ export declare function pickCourse(options?: CoursePickerOptions): Promise<CoursePickerResult | null>;
51
+ export interface AssignmentDisplayOptions {
52
+ showId?: boolean;
53
+ showGrade?: boolean;
54
+ showDueDate?: boolean;
55
+ showStatus?: boolean;
56
+ }
57
+ export declare function formatGrade(submission: any, pointsPossible: number): {
58
+ text: string;
59
+ color: (s: string) => string;
60
+ };
61
+ export declare function formatDueDate(dueAt: string | null): string;
62
+ export declare function displayAssignments(assignments: CanvasAssignment[], options?: AssignmentDisplayOptions): void;
63
+ export declare function displaySubmitAssignments(assignments: CanvasAssignment[]): Table;
64
+ export declare function displayAnnouncements(announcements: CanvasAnnouncement[]): Table;
65
+ export declare function printSeparator(char?: string, length?: number): void;
66
+ export declare function printHeader(title: string): void;
67
+ export declare function printSuccess(message: string): void;
68
+ export declare function printError(message: string): void;
69
+ export declare function printInfo(message: string): void;
70
+ export declare function printWarning(message: string): void;
71
+ export interface AnnouncementDetail {
72
+ title: string;
73
+ postedAt: string | null;
74
+ author: string;
75
+ message: string;
76
+ }
77
+ export declare function displayAnnouncementDetail(announcement: AnnouncementDetail): void;
78
+ //# sourceMappingURL=display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../lib/display.ts"],"names":[],"mappings":"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"}