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
@@ -0,0 +1,603 @@
1
+ import chalk from "chalk";
2
+ import { makeCanvasRequest } from "./api-client.js";
3
+ import { createReadlineInterface, askQuestion } from "./interactive.js";
4
+ export function pad(str, len, align = "left") {
5
+ const strLen = stripAnsi(str).length;
6
+ const padding = Math.max(0, len - strLen);
7
+ if (align === "right") {
8
+ return " ".repeat(padding) + str;
9
+ }
10
+ else if (align === "center") {
11
+ const leftPad = Math.floor(padding / 2);
12
+ const rightPad = padding - leftPad;
13
+ return " ".repeat(leftPad) + str + " ".repeat(rightPad);
14
+ }
15
+ return str + " ".repeat(padding);
16
+ }
17
+ function stripAnsi(str) {
18
+ return str.replace(/\x1B\[[0-9;]*[a-zA-Z]/g, "");
19
+ }
20
+ export function truncate(str, maxLen) {
21
+ const visible = stripAnsi(str);
22
+ if (visible.length <= maxLen)
23
+ return str;
24
+ if (maxLen <= 3)
25
+ return visible.substring(0, maxLen);
26
+ const truncatedVisible = visible.substring(0, Math.max(0, maxLen - 3)) + "...";
27
+ return truncatedVisible;
28
+ }
29
+ function calculateColumnWidths(columns, data, terminalWidth, showRowNumbers) {
30
+ const numCols = columns.length;
31
+ const borderOverhead = 2 * numCols + 1;
32
+ const rowNumWidth = showRowNumbers
33
+ ? Math.max(3, String(data.length).length + 1)
34
+ : 0;
35
+ const rowNumOverhead = showRowNumbers ? 2 + rowNumWidth : 0;
36
+ const effectiveTermWidth = Math.min(terminalWidth, 240);
37
+ const availableWidth = Math.max(numCols * 4, effectiveTermWidth - borderOverhead - rowNumOverhead);
38
+ let widths = [];
39
+ const contentWidths = [];
40
+ let fixedWidthTotal = 0;
41
+ let totalFlex = 0;
42
+ columns.forEach((col, i) => {
43
+ const headerLen = stripAnsi(col.header).length;
44
+ const maxContentLen = Math.max(headerLen, ...data.map((row) => stripAnsi(String(row[col.key] ?? "")).length));
45
+ contentWidths[i] = maxContentLen;
46
+ if (col.width) {
47
+ widths[i] = col.width;
48
+ fixedWidthTotal += col.width;
49
+ }
50
+ else if (col.flex) {
51
+ const minW = col.minWidth || 4;
52
+ widths[i] = minW;
53
+ fixedWidthTotal += minW;
54
+ totalFlex += col.flex;
55
+ }
56
+ else {
57
+ const minW = col.minWidth || 4;
58
+ const maxW = col.maxWidth || maxContentLen;
59
+ widths[i] = Math.min(maxW, Math.max(minW, maxContentLen));
60
+ fixedWidthTotal += widths[i];
61
+ }
62
+ });
63
+ const remainingWidth = Math.max(0, availableWidth - fixedWidthTotal);
64
+ if (totalFlex > 0 && remainingWidth > 0) {
65
+ columns.forEach((col, i) => {
66
+ if (col.flex) {
67
+ const extraWidth = Math.floor((remainingWidth * col.flex) / totalFlex);
68
+ const maxW = col.maxWidth || 999;
69
+ widths[i] = Math.min((widths[i] ?? 0) + extraWidth, maxW);
70
+ }
71
+ });
72
+ }
73
+ let totalWidth = widths.reduce((sum, w) => sum + (w ?? 0), 0);
74
+ while (totalWidth > availableWidth && totalWidth > numCols * 4) {
75
+ let maxIdx = 0;
76
+ let maxW = widths[0] ?? 0;
77
+ for (let i = 1; i < widths.length; i++) {
78
+ if ((widths[i] ?? 0) > maxW) {
79
+ maxW = widths[i] ?? 0;
80
+ maxIdx = i;
81
+ }
82
+ }
83
+ if (maxW <= 4)
84
+ break;
85
+ widths[maxIdx] = Math.max(4, maxW - 1);
86
+ totalWidth--;
87
+ }
88
+ return widths;
89
+ }
90
+ export class Table {
91
+ columns;
92
+ data;
93
+ options;
94
+ rowNumWidth = 0;
95
+ lastLineCount = 0;
96
+ lastTableWidth = 0;
97
+ resizeHandler = null;
98
+ isWatching = false;
99
+ constructor(columns, options = {}) {
100
+ this.columns = columns;
101
+ this.data = [];
102
+ this.options = {
103
+ showRowNumbers: true,
104
+ rowNumberHeader: "#",
105
+ ...options,
106
+ };
107
+ }
108
+ addRow(row) {
109
+ this.data.push(row);
110
+ return this;
111
+ }
112
+ addRows(rows) {
113
+ this.data.push(...rows);
114
+ return this;
115
+ }
116
+ render() {
117
+ this.renderTable();
118
+ }
119
+ renderWithResize() {
120
+ this.renderTable();
121
+ this.startWatching();
122
+ }
123
+ startWatching() {
124
+ if (this.isWatching || !process.stdout.isTTY)
125
+ return;
126
+ this.resizeHandler = () => {
127
+ this.clearTable();
128
+ this.renderTable();
129
+ };
130
+ process.stdout.on("resize", this.resizeHandler);
131
+ this.isWatching = true;
132
+ }
133
+ stopWatching() {
134
+ if (!this.isWatching || !this.resizeHandler)
135
+ return;
136
+ process.stdout.removeListener("resize", this.resizeHandler);
137
+ this.resizeHandler = null;
138
+ this.isWatching = false;
139
+ }
140
+ clearTable() {
141
+ if (this.lastLineCount <= 0)
142
+ return;
143
+ const maxPossibleWraps = Math.ceil(this.lastTableWidth / 20);
144
+ const worstCaseLines = this.lastLineCount * Math.max(maxPossibleWraps, 3);
145
+ const linesToClear = Math.max(worstCaseLines, 60);
146
+ process.stdout.write("\x1b[2K");
147
+ for (let i = 0; i < linesToClear; i++) {
148
+ process.stdout.write("\x1b[1A");
149
+ process.stdout.write("\x1b[2K");
150
+ }
151
+ process.stdout.write("\x1b[G");
152
+ process.stdout.write("\x1b[0J");
153
+ }
154
+ renderTable() {
155
+ const terminalWidth = process.stdout.columns || 100;
156
+ const widths = calculateColumnWidths(this.columns, this.data, terminalWidth, this.options.showRowNumbers);
157
+ if (this.options.showRowNumbers) {
158
+ this.rowNumWidth = Math.max(3, String(this.data.length).length + 1);
159
+ }
160
+ const numCols = this.columns.length;
161
+ const borderWidth = 2 * numCols + 1;
162
+ const rowNumExtra = this.options.showRowNumbers ? 2 + this.rowNumWidth : 0;
163
+ const tableWidth = widths.reduce((a, b) => a + b, 0) + borderWidth + rowNumExtra;
164
+ this.lastTableWidth = tableWidth;
165
+ const linesPerRow = Math.max(1, Math.ceil(tableWidth / terminalWidth));
166
+ let lineCount = 0;
167
+ if (this.options.title) {
168
+ console.log(chalk.cyan.bold(`\n${this.options.title}`));
169
+ lineCount += 2;
170
+ }
171
+ this.renderTopBorder(widths);
172
+ lineCount += linesPerRow;
173
+ this.renderHeader(widths);
174
+ lineCount += linesPerRow;
175
+ this.renderHeaderSeparator(widths);
176
+ lineCount += linesPerRow;
177
+ this.data.forEach((row, index) => {
178
+ this.renderRow(row, index, widths);
179
+ lineCount += linesPerRow;
180
+ });
181
+ this.renderBottomBorder(widths);
182
+ lineCount += linesPerRow;
183
+ this.lastLineCount = lineCount;
184
+ }
185
+ renderTopBorder(widths) {
186
+ let border = chalk.gray("╭─");
187
+ if (this.options.showRowNumbers) {
188
+ border += chalk.gray("─".repeat(this.rowNumWidth)) + chalk.gray("┬─");
189
+ }
190
+ border += widths
191
+ .map((w) => chalk.gray("─".repeat(w)))
192
+ .join(chalk.gray("┬─"));
193
+ border += chalk.gray("╮");
194
+ console.log(border);
195
+ }
196
+ renderHeader(widths) {
197
+ let header = chalk.gray("│ ");
198
+ if (this.options.showRowNumbers) {
199
+ header +=
200
+ chalk.cyan.bold(pad(truncate(this.options.rowNumberHeader, this.rowNumWidth), this.rowNumWidth)) + chalk.gray("│ ");
201
+ }
202
+ header += this.columns
203
+ .map((col, i) => {
204
+ const colWidth = widths[i] || 10;
205
+ return chalk.cyan.bold(pad(truncate(col.header, colWidth), colWidth, col.align));
206
+ })
207
+ .join(chalk.gray("│ "));
208
+ header += chalk.gray("│");
209
+ console.log(header);
210
+ }
211
+ renderHeaderSeparator(widths) {
212
+ let separator = chalk.gray("├─");
213
+ if (this.options.showRowNumbers) {
214
+ separator += chalk.gray("─".repeat(this.rowNumWidth)) + chalk.gray("┼─");
215
+ }
216
+ separator += widths
217
+ .map((w) => chalk.gray("─".repeat(w)))
218
+ .join(chalk.gray("┼─"));
219
+ separator += chalk.gray("┤");
220
+ console.log(separator);
221
+ }
222
+ renderRow(row, index, widths) {
223
+ let rowStr = chalk.gray("│ ");
224
+ if (this.options.showRowNumbers) {
225
+ rowStr +=
226
+ chalk.white(pad(`${index + 1}.`, this.rowNumWidth)) + chalk.gray("│ ");
227
+ }
228
+ rowStr += this.columns
229
+ .map((col, i) => {
230
+ const colWidth = widths[i] || 10;
231
+ let value = String(row[col.key] ?? "");
232
+ value = truncate(value, colWidth);
233
+ value = pad(value, colWidth, col.align);
234
+ if (col.color) {
235
+ value = col.color(value, row);
236
+ }
237
+ else {
238
+ value = chalk.white(value);
239
+ }
240
+ return value;
241
+ })
242
+ .join(chalk.gray("│ "));
243
+ rowStr += chalk.gray("│");
244
+ console.log(rowStr);
245
+ }
246
+ renderBottomBorder(widths) {
247
+ let border = chalk.gray("╰─");
248
+ if (this.options.showRowNumbers) {
249
+ border += chalk.gray("─".repeat(this.rowNumWidth)) + chalk.gray("┴─");
250
+ }
251
+ border += widths
252
+ .map((w) => chalk.gray("─".repeat(w)))
253
+ .join(chalk.gray("┴─"));
254
+ border += chalk.gray("╯");
255
+ console.log(border);
256
+ }
257
+ }
258
+ export function displayCourses(courses, options = {}) {
259
+ const columns = [
260
+ { key: "name", header: "Course Name", flex: 1, minWidth: 15 },
261
+ ];
262
+ if (options.showId) {
263
+ columns.push({ key: "id", header: "ID", minWidth: 5, maxWidth: 10 });
264
+ }
265
+ const table = new Table(columns);
266
+ courses.forEach((course) => {
267
+ table.addRow({ name: course.name, id: course.id });
268
+ });
269
+ table.render();
270
+ }
271
+ export async function pickCourse(options = {}) {
272
+ const rl = createReadlineInterface();
273
+ console.log(chalk.cyan.bold(options.title || "\nLoading your courses, please wait..."));
274
+ const queryParams = ["enrollment_state=active", "include[]=favorites"];
275
+ const courses = await makeCanvasRequest("get", "courses", queryParams);
276
+ if (!courses || courses.length === 0) {
277
+ console.log(chalk.red("Error: No courses found."));
278
+ rl.close();
279
+ return null;
280
+ }
281
+ let displayCourses = courses;
282
+ if (!options.showAll) {
283
+ const starred = courses.filter((c) => c.is_favorite);
284
+ if (starred.length > 0) {
285
+ displayCourses = starred;
286
+ }
287
+ }
288
+ console.log(chalk.green(`✓ Found ${displayCourses.length} course(s).`));
289
+ const table = new Table([
290
+ { key: "name", header: "Course Name", flex: 1, minWidth: 15 },
291
+ ]);
292
+ displayCourses.forEach((course) => table.addRow({ name: course.name }));
293
+ table.renderWithResize();
294
+ const prompt = options.prompt || chalk.bold.cyan("\nEnter course number: ");
295
+ const courseChoice = await askQuestion(rl, prompt);
296
+ table.stopWatching();
297
+ if (!courseChoice.trim() ||
298
+ courseChoice === ".." ||
299
+ courseChoice.toLowerCase() === "back") {
300
+ console.log(chalk.red("No course selected. Exiting..."));
301
+ rl.close();
302
+ return null;
303
+ }
304
+ const courseIndex = parseInt(courseChoice) - 1;
305
+ if (courseIndex < 0 || courseIndex >= displayCourses.length) {
306
+ console.log(chalk.red("Invalid course selection."));
307
+ rl.close();
308
+ return null;
309
+ }
310
+ const selectedCourse = displayCourses[courseIndex];
311
+ console.log(chalk.green(`✓ Selected: ${selectedCourse.name}\n`));
312
+ return { course: selectedCourse, rl };
313
+ }
314
+ export function formatGrade(submission, pointsPossible) {
315
+ if (submission &&
316
+ submission.score !== null &&
317
+ submission.score !== undefined) {
318
+ const score = submission.score % 1 === 0
319
+ ? Math.round(submission.score)
320
+ : submission.score;
321
+ const text = `${score}/${pointsPossible}`;
322
+ const percentage = pointsPossible > 0 ? (score / pointsPossible) * 100 : 0;
323
+ let color = chalk.white;
324
+ if (percentage >= 80)
325
+ color = chalk.green;
326
+ else if (percentage >= 50)
327
+ color = chalk.yellow;
328
+ else
329
+ color = chalk.red;
330
+ return { text, color };
331
+ }
332
+ else if (submission && submission.excused) {
333
+ return { text: "Excused", color: chalk.blue };
334
+ }
335
+ else if (submission && submission.missing) {
336
+ return { text: "Missing", color: chalk.red };
337
+ }
338
+ else if (pointsPossible) {
339
+ return { text: `–/${pointsPossible}`, color: chalk.gray };
340
+ }
341
+ return { text: "N/A", color: chalk.gray };
342
+ }
343
+ export function formatDueDate(dueAt) {
344
+ if (!dueAt)
345
+ return "No due date";
346
+ return new Date(dueAt).toLocaleString();
347
+ }
348
+ export function displayAssignments(assignments, options = {}) {
349
+ const columns = [
350
+ {
351
+ key: "name",
352
+ header: "Assignment Name",
353
+ flex: 1,
354
+ minWidth: 15,
355
+ maxWidth: 35,
356
+ },
357
+ ];
358
+ if (options.showId) {
359
+ columns.push({ key: "id", header: "ID", width: 8 });
360
+ }
361
+ if (options.showGrade) {
362
+ columns.push({
363
+ key: "grade",
364
+ header: "Grade",
365
+ width: 10,
366
+ color: (value, row) => {
367
+ const gradeInfo = formatGrade(row._submission, row._pointsPossible);
368
+ return gradeInfo.color(value);
369
+ },
370
+ });
371
+ }
372
+ if (options.showDueDate) {
373
+ columns.push({
374
+ key: "dueDate",
375
+ header: "Due Date",
376
+ width: 16,
377
+ });
378
+ }
379
+ if (options.showStatus) {
380
+ columns.push({
381
+ key: "status",
382
+ header: "Status",
383
+ width: 12,
384
+ color: (value, row) => {
385
+ return row._isSubmitted ? chalk.green(value) : chalk.yellow(value);
386
+ },
387
+ });
388
+ }
389
+ const table = new Table(columns);
390
+ assignments.forEach((assignment) => {
391
+ const submission = assignment.submission;
392
+ const gradeInfo = formatGrade(submission, assignment.points_possible || 0);
393
+ const isSubmitted = !!(submission && submission.submitted_at);
394
+ table.addRow({
395
+ name: assignment.name,
396
+ id: assignment.id,
397
+ grade: gradeInfo.text,
398
+ dueDate: formatDueDate(assignment.due_at),
399
+ status: isSubmitted ? "✓ Submitted" : "Not submit",
400
+ _submission: submission,
401
+ _pointsPossible: assignment.points_possible || 0,
402
+ _isSubmitted: isSubmitted,
403
+ });
404
+ });
405
+ table.render();
406
+ }
407
+ function getAssignmentType(assignment) {
408
+ if (!assignment.submission_types ||
409
+ assignment.submission_types.length === 0) {
410
+ return "Unknown";
411
+ }
412
+ const types = assignment.submission_types;
413
+ if (types.includes("online_quiz")) {
414
+ return "Quiz";
415
+ }
416
+ else if (types.includes("online_upload")) {
417
+ if (assignment.allowed_extensions &&
418
+ assignment.allowed_extensions.length > 0) {
419
+ const exts = assignment.allowed_extensions.slice(0, 3);
420
+ const extList = exts.join(", ");
421
+ const suffix = assignment.allowed_extensions.length > 3 ? "..." : "";
422
+ return `${extList}${suffix}`;
423
+ }
424
+ return "Any file";
425
+ }
426
+ else if (types.includes("online_text_entry")) {
427
+ return "Text Entry";
428
+ }
429
+ else if (types.includes("online_url")) {
430
+ return "URL";
431
+ }
432
+ else if (types.includes("external_tool")) {
433
+ return "External Tool";
434
+ }
435
+ else if (types.includes("media_recording")) {
436
+ return "Media";
437
+ }
438
+ else if (types[0]) {
439
+ return types[0].replace(/_/g, " ");
440
+ }
441
+ return "Unknown";
442
+ }
443
+ export function displaySubmitAssignments(assignments) {
444
+ const columns = [
445
+ { key: "name", header: "Assignment Name", flex: 1, minWidth: 15 },
446
+ { key: "type", header: "Type", width: 8 },
447
+ { key: "dueDate", header: "Due", width: 10 },
448
+ {
449
+ key: "status",
450
+ header: "Status",
451
+ width: 10,
452
+ color: (value, row) => {
453
+ return row._isSubmitted ? chalk.green(value) : chalk.yellow(value);
454
+ },
455
+ },
456
+ ];
457
+ const table = new Table(columns);
458
+ assignments.forEach((assignment) => {
459
+ const submission = assignment.submission;
460
+ const isSubmitted = !!(submission && submission.submitted_at);
461
+ let dueDate = "No due date";
462
+ if (assignment.due_at) {
463
+ const d = new Date(assignment.due_at);
464
+ dueDate = `${(d.getMonth() + 1).toString().padStart(2, "0")}/${d.getDate().toString().padStart(2, "0")}/${d.getFullYear()}`;
465
+ }
466
+ table.addRow({
467
+ name: assignment.name,
468
+ type: getAssignmentType(assignment),
469
+ dueDate: dueDate,
470
+ status: isSubmitted ? "✓ Submitted" : "Not submit",
471
+ _isSubmitted: isSubmitted,
472
+ });
473
+ });
474
+ table.renderWithResize();
475
+ return table;
476
+ }
477
+ export function displayAnnouncements(announcements) {
478
+ const columns = [
479
+ { key: "title", header: "Title", flex: 1, minWidth: 15 },
480
+ { key: "posted", header: "Posted", width: 10 },
481
+ ];
482
+ const table = new Table(columns);
483
+ announcements.forEach((announcement) => {
484
+ const date = announcement.posted_at
485
+ ? new Date(announcement.posted_at).toLocaleDateString()
486
+ : "N/A";
487
+ table.addRow({
488
+ title: announcement.title || "Untitled",
489
+ posted: date,
490
+ });
491
+ });
492
+ table.renderWithResize();
493
+ return table;
494
+ }
495
+ export function printSeparator(char = "─", length) {
496
+ const width = length || process.stdout.columns || 60;
497
+ console.log(chalk.cyan.bold(char.repeat(width)));
498
+ }
499
+ export function printHeader(title) {
500
+ console.log(chalk.cyan.bold("\n" + "─".repeat(60)));
501
+ console.log(chalk.cyan.bold(title));
502
+ console.log(chalk.cyan.bold("─".repeat(60)));
503
+ }
504
+ export function printSuccess(message) {
505
+ console.log(chalk.green(`✓ ${message}`));
506
+ }
507
+ export function printError(message) {
508
+ console.log(chalk.red(`Error: ${message}`));
509
+ }
510
+ export function printInfo(message) {
511
+ console.log(chalk.cyan.bold(message));
512
+ }
513
+ export function printWarning(message) {
514
+ console.log(chalk.yellow(message));
515
+ }
516
+ function cleanHtmlContent(html) {
517
+ return (html
518
+ .replace(/&nbsp;/g, " ")
519
+ .replace(/&amp;/g, "&")
520
+ .replace(/&lt;/g, "<")
521
+ .replace(/&gt;/g, ">")
522
+ .replace(/&quot;/g, '"')
523
+ .replace(/&#39;/g, "'")
524
+ .replace(/&apos;/g, "'")
525
+ .replace(/<br\s*\/?>/gi, "\n")
526
+ .replace(/<\/(p|div|li|h[1-6])>/gi, "\n")
527
+ .replace(/<li[^>]*>/gi, "• ")
528
+ .replace(/<[^>]+>/g, "")
529
+ .replace(/\n{3,}/g, "\n\n")
530
+ .replace(/[ \t]+/g, " ")
531
+ .split("\n")
532
+ .map((line) => line.trim())
533
+ .join("\n")
534
+ .trim());
535
+ }
536
+ function wordWrap(text, maxWidth) {
537
+ const lines = [];
538
+ const paragraphs = text.split("\n");
539
+ for (const paragraph of paragraphs) {
540
+ if (paragraph.trim() === "") {
541
+ lines.push("");
542
+ continue;
543
+ }
544
+ const words = paragraph.split(" ").filter((w) => w.length > 0);
545
+ let currentLine = "";
546
+ for (const word of words) {
547
+ if (word.length > maxWidth) {
548
+ if (currentLine) {
549
+ lines.push(currentLine);
550
+ currentLine = "";
551
+ }
552
+ for (let i = 0; i < word.length; i += maxWidth) {
553
+ lines.push(word.substring(i, i + maxWidth));
554
+ }
555
+ continue;
556
+ }
557
+ const testLine = currentLine ? `${currentLine} ${word}` : word;
558
+ if (testLine.length <= maxWidth) {
559
+ currentLine = testLine;
560
+ }
561
+ else {
562
+ if (currentLine) {
563
+ lines.push(currentLine);
564
+ }
565
+ currentLine = word;
566
+ }
567
+ }
568
+ if (currentLine) {
569
+ lines.push(currentLine);
570
+ }
571
+ }
572
+ return lines;
573
+ }
574
+ export function displayAnnouncementDetail(announcement) {
575
+ const terminalWidth = process.stdout.columns || 80;
576
+ const boxWidth = Math.max(50, terminalWidth - 4);
577
+ const contentWidth = boxWidth - 4;
578
+ const title = announcement.title || "Untitled";
579
+ const date = announcement.postedAt
580
+ ? new Date(announcement.postedAt).toLocaleString()
581
+ : "N/A";
582
+ const author = announcement.author || "Unknown";
583
+ const cleanedMessage = cleanHtmlContent(announcement.message || "No content");
584
+ const titleLines = wordWrap(title, contentWidth);
585
+ const messageLines = wordWrap(cleanedMessage, contentWidth);
586
+ const printLine = (content, style = chalk.white) => {
587
+ const paddedContent = content.padEnd(contentWidth);
588
+ console.log(chalk.gray("│ ") + style(paddedContent) + chalk.gray(" │"));
589
+ };
590
+ console.log("\n" + chalk.gray("╭" + "─".repeat(boxWidth - 2) + "╮"));
591
+ for (const line of titleLines) {
592
+ printLine(line, chalk.bold.white);
593
+ }
594
+ console.log(chalk.gray("├" + "─".repeat(boxWidth - 2) + "┤"));
595
+ printLine(`Posted: ${date}`, chalk.gray);
596
+ printLine(`Author: ${author}`, chalk.gray);
597
+ console.log(chalk.gray("├" + "─".repeat(boxWidth - 2) + "┤"));
598
+ for (const line of messageLines) {
599
+ printLine(line, chalk.white);
600
+ }
601
+ console.log(chalk.gray("╰" + "─".repeat(boxWidth - 2) + "╯") + "\n");
602
+ }
603
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../lib/display.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../lib/file-upload.ts"],"names":[],"mappings":"AAcA,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAKD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,GAAG,CAAC,CAcd"}
1
+ {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../lib/file-upload.ts"],"names":[],"mappings":"AAcA,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAsDjB;AAKD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,GAAG,CAAC,CAcd"}