@mo7yw4ng/openape 1.0.3 → 1.0.4

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 (79) hide show
  1. package/README.md +30 -5
  2. package/esm/deno.js +1 -1
  3. package/esm/src/commands/announcements.d.ts.map +1 -1
  4. package/esm/src/commands/announcements.js +13 -14
  5. package/esm/src/commands/assignments.d.ts +3 -0
  6. package/esm/src/commands/assignments.d.ts.map +1 -0
  7. package/esm/src/commands/assignments.js +230 -0
  8. package/esm/src/commands/auth.d.ts.map +1 -1
  9. package/esm/src/commands/auth.js +21 -1
  10. package/esm/src/commands/calendar.d.ts.map +1 -1
  11. package/esm/src/commands/calendar.js +17 -18
  12. package/esm/src/commands/courses.js +3 -3
  13. package/esm/src/commands/forums.d.ts.map +1 -1
  14. package/esm/src/commands/forums.js +125 -33
  15. package/esm/src/commands/materials.d.ts.map +1 -1
  16. package/esm/src/commands/materials.js +6 -38
  17. package/esm/src/commands/quizzes.d.ts.map +1 -1
  18. package/esm/src/commands/quizzes.js +165 -65
  19. package/esm/src/commands/skills.d.ts.map +1 -1
  20. package/esm/src/commands/skills.js +4 -8
  21. package/esm/src/commands/upload.d.ts +3 -0
  22. package/esm/src/commands/upload.d.ts.map +1 -0
  23. package/esm/src/commands/upload.js +58 -0
  24. package/esm/src/commands/videos.d.ts.map +1 -1
  25. package/esm/src/commands/videos.js +5 -4
  26. package/esm/src/index.d.ts.map +1 -1
  27. package/esm/src/index.js +12 -1
  28. package/esm/src/lib/auth.d.ts +23 -1
  29. package/esm/src/lib/auth.d.ts.map +1 -1
  30. package/esm/src/lib/auth.js +36 -3
  31. package/esm/src/lib/moodle.d.ts +179 -1
  32. package/esm/src/lib/moodle.d.ts.map +1 -1
  33. package/esm/src/lib/moodle.js +481 -13
  34. package/esm/src/lib/types.d.ts +81 -164
  35. package/esm/src/lib/types.d.ts.map +1 -1
  36. package/esm/src/lib/types.js +1 -0
  37. package/esm/src/lib/utils.d.ts +20 -0
  38. package/esm/src/lib/utils.d.ts.map +1 -1
  39. package/esm/src/lib/utils.js +48 -1
  40. package/package.json +1 -1
  41. package/script/deno.js +1 -1
  42. package/script/src/commands/announcements.d.ts.map +1 -1
  43. package/script/src/commands/announcements.js +12 -13
  44. package/script/src/commands/assignments.d.ts +3 -0
  45. package/script/src/commands/assignments.d.ts.map +1 -0
  46. package/script/src/commands/assignments.js +269 -0
  47. package/script/src/commands/auth.d.ts.map +1 -1
  48. package/script/src/commands/auth.js +20 -0
  49. package/script/src/commands/calendar.d.ts.map +1 -1
  50. package/script/src/commands/calendar.js +16 -17
  51. package/script/src/commands/courses.js +2 -2
  52. package/script/src/commands/forums.d.ts.map +1 -1
  53. package/script/src/commands/forums.js +125 -33
  54. package/script/src/commands/materials.d.ts.map +1 -1
  55. package/script/src/commands/materials.js +7 -39
  56. package/script/src/commands/quizzes.d.ts.map +1 -1
  57. package/script/src/commands/quizzes.js +163 -63
  58. package/script/src/commands/skills.d.ts.map +1 -1
  59. package/script/src/commands/skills.js +4 -8
  60. package/script/src/commands/upload.d.ts +3 -0
  61. package/script/src/commands/upload.d.ts.map +1 -0
  62. package/script/src/commands/upload.js +64 -0
  63. package/script/src/commands/videos.d.ts.map +1 -1
  64. package/script/src/commands/videos.js +5 -4
  65. package/script/src/index.d.ts.map +1 -1
  66. package/script/src/index.js +12 -1
  67. package/script/src/lib/auth.d.ts +23 -1
  68. package/script/src/lib/auth.d.ts.map +1 -1
  69. package/script/src/lib/auth.js +70 -3
  70. package/script/src/lib/moodle.d.ts +179 -1
  71. package/script/src/lib/moodle.d.ts.map +1 -1
  72. package/script/src/lib/moodle.js +493 -13
  73. package/script/src/lib/types.d.ts +81 -164
  74. package/script/src/lib/types.d.ts.map +1 -1
  75. package/script/src/lib/types.js +1 -0
  76. package/script/src/lib/utils.d.ts +20 -0
  77. package/script/src/lib/utils.d.ts.map +1 -1
  78. package/script/src/lib/utils.js +52 -0
  79. package/skills/openape/SKILL.md +73 -271
@@ -1,4 +1,3 @@
1
- import type { Page } from "playwright-core";
2
1
  export interface AppConfig {
3
2
  courseUrl: string;
4
3
  moodleBaseUrl: string;
@@ -21,6 +20,12 @@ export interface Logger {
21
20
  error: (msg: string) => void;
22
21
  debug: (msg: string) => void;
23
22
  }
23
+ export type OutputFormat = "json" | "csv" | "table" | "silent";
24
+ export interface OutputOptions {
25
+ format: OutputFormat;
26
+ fields?: string[];
27
+ pretty?: boolean;
28
+ }
24
29
  export interface EnrolledCourse {
25
30
  id: number;
26
31
  fullname: string;
@@ -38,28 +43,65 @@ export interface SuperVideoModule {
38
43
  instance?: number;
39
44
  isComplete: boolean;
40
45
  }
41
- export interface VideoActivity {
42
- name: string;
43
- url: string;
44
- viewId: number;
45
- duration: number;
46
- existingPercent: number;
47
- }
48
46
  export interface QuizModule {
49
- cmid: string;
47
+ quizid: string;
50
48
  name: string;
51
49
  url: string;
52
50
  isComplete: boolean;
51
+ attemptsUsed: number;
52
+ maxAttempts: number;
53
53
  timeOpen?: number;
54
54
  timeClose?: number;
55
55
  }
56
- export interface ForumModule {
57
- cmid: string;
58
- forumId: number;
59
- name: string;
60
- url: string;
61
- courseId: number;
62
- forumType: string;
56
+ export interface QuizAttempt {
57
+ attempt: number;
58
+ attemptid: number;
59
+ quizid: number;
60
+ userid: number;
61
+ attemptnumber: number;
62
+ state: string;
63
+ timestart: number;
64
+ timefinish?: number;
65
+ timemodified?: number;
66
+ timecheckstate?: number;
67
+ sumgrades?: number;
68
+ layout?: string;
69
+ uniqueid?: number;
70
+ preview?: boolean;
71
+ }
72
+ export interface QuizQuestion {
73
+ slot: number;
74
+ type: string;
75
+ typeid?: number;
76
+ id: number;
77
+ category?: number;
78
+ contextid?: number;
79
+ contextlevel?: string;
80
+ contextinstanceid?: number;
81
+ quizid: number;
82
+ maxmark: number;
83
+ minmark?: number;
84
+ number?: number;
85
+ page: number;
86
+ html?: string;
87
+ status?: string;
88
+ stateclass?: string;
89
+ sequencecheck?: number;
90
+ questionnumber?: string;
91
+ }
92
+ export interface QuizAttemptData {
93
+ attempt: QuizAttempt;
94
+ questions: Record<number, QuizQuestion>;
95
+ nextpage?: number;
96
+ prevpage?: number;
97
+ messages?: string[];
98
+ quizflags?: Record<number, boolean>;
99
+ }
100
+ export interface QuizStartResult {
101
+ attempt: QuizAttempt;
102
+ page?: number;
103
+ messages?: string[];
104
+ readonly?: boolean;
63
105
  }
64
106
  export interface ForumPost {
65
107
  id: number;
@@ -95,88 +137,24 @@ export interface ForumDiscussion {
95
137
  locked?: boolean;
96
138
  starred?: boolean;
97
139
  }
98
- export interface AnnouncementPost {
99
- id: number;
100
- subject: string;
101
- content: string;
102
- author: string;
103
- authorId?: number;
104
- courseId: number;
105
- createdAt: number;
106
- modifiedAt?: number;
107
- attachments?: AnnouncementAttachment[];
108
- unread?: boolean;
109
- }
110
- export interface AnnouncementAttachment {
111
- filename: string;
112
- url: string;
113
- filesize: number;
114
- mimetype: string;
115
- }
116
- export interface ResourceModule {
117
- cmid: string;
118
- name: string;
119
- url: string;
120
- courseId: number;
121
- modType: string;
122
- mimetype?: string;
123
- filesize?: number;
124
- modified?: number;
125
- }
126
- export interface FolderContents {
127
- files: ResourceFile[];
128
- folders: FolderInfo[];
129
- }
130
- export interface ResourceFile {
131
- filename: string;
132
- url: string;
133
- filesize: number;
134
- mimetype: string;
135
- modified: number;
136
- path?: string;
137
- }
138
- export interface FolderInfo {
139
- name: string;
140
+ export interface CalendarEvent {
140
141
  id: number;
141
- path: string;
142
- }
143
- export interface AssignmentModule {
144
- cmid: string;
145
142
  name: string;
146
- url: string;
147
- courseId: number;
148
- duedate?: number;
149
- cutoffdate?: number;
150
- allowSubmissionsFromDate?: number;
151
- gradingduedate?: number;
152
- submissionStatus?: string;
153
- grade?: GradeInfo;
154
- lateSubmission?: boolean;
155
- extensionduedate?: number;
156
- }
157
- export interface AssignmentSubmission {
158
- id: number;
159
- assignmentId: number;
160
- userId: number;
161
- timemodified: number;
162
- status: string;
163
- files?: SubmissionFile[];
164
- grade?: GradeInfo;
165
- feedback?: string;
166
- }
167
- export interface SubmissionFile {
168
- filename: string;
169
- url: string;
170
- filesize: number;
171
- mimetype: string;
172
- timemodified: number;
173
- }
174
- export interface GradeInfo {
175
- grade: string;
176
- gradeFormatted: string;
177
- grader?: string;
143
+ description?: string;
144
+ format: number;
145
+ courseid?: number;
146
+ categoryid?: number;
147
+ groupid?: number;
148
+ userid?: number;
149
+ moduleid?: number;
150
+ modulename?: string;
151
+ instance?: number;
152
+ eventtype: string;
153
+ timestart: number;
154
+ timeduration?: number;
178
155
  timedue?: number;
179
- timemodified?: number;
156
+ visible?: number;
157
+ location?: string;
180
158
  }
181
159
  export interface CourseGrade {
182
160
  courseId: number;
@@ -198,75 +176,14 @@ export interface GradeItem {
198
176
  feedback?: string;
199
177
  graded?: boolean;
200
178
  }
201
- export interface CalendarEvent {
202
- id: number;
179
+ export interface ResourceModule {
180
+ cmid: string;
203
181
  name: string;
204
- description?: string;
205
- format: number;
206
- courseid?: number;
207
- categoryid?: number;
208
- groupid?: number;
209
- userid?: number;
210
- moduleid?: number;
211
- modulename?: string;
212
- instance?: number;
213
- eventtype: string;
214
- timestart: number;
215
- timeduration?: number;
216
- timedue?: number;
217
- visible?: number;
218
- location?: string;
219
- }
220
- export interface QuestionParsing {
221
- id: string;
222
- text: string;
223
- options: {
224
- value: string;
225
- text: string;
226
- }[];
227
- type: "radio" | "checkbox";
228
- }
229
- export interface QuestionAnswer {
230
- questionId: string;
231
- reasoning: string;
232
- answerValues: string[];
233
- }
234
- export type OutputFormat = "json" | "csv" | "table" | "silent";
235
- export interface OutputOptions {
236
- format: OutputFormat;
237
- fields?: string[];
238
- pretty?: boolean;
239
- }
240
- export interface ProgressPayload {
241
- view_id: number;
242
- currenttime: number;
243
- duration: number;
244
- percent: number;
245
- mapa: string;
246
- }
247
- export interface AjaxResponse {
248
- error: boolean;
249
- data?: {
250
- success?: boolean;
251
- exec?: string;
252
- };
253
- exception?: {
254
- message: string;
255
- errorcode: string;
256
- };
257
- }
258
- export interface CommandContext {
259
- page: Page;
260
- session: SessionInfo;
261
- config: AppConfig;
262
- log: Logger;
263
- }
264
- export interface CommandOptions {
265
- output?: OutputFormat;
266
- courseUrl?: string;
267
- courseId?: number;
268
- verbose?: boolean;
269
- headed?: boolean;
270
- dryRun?: boolean;
182
+ url: string;
183
+ courseId: number;
184
+ modType: string;
185
+ mimetype?: string;
186
+ filesize?: number;
187
+ modified?: number;
271
188
  }
272
189
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ // ── Core Infrastructure ────────────────────────────────────────────────
1
2
  export {};
@@ -34,4 +34,24 @@ export declare function shouldSilenceLogs(outputFormat: OutputFormat, verbose?:
34
34
  * Replaces invalid characters with underscores and limits to maxLength.
35
35
  */
36
36
  export declare function sanitizeFilename(name: string, maxLength?: number): string;
37
+ /**
38
+ * Get the session storage file path.
39
+ */
40
+ export declare function getSessionPath(): string;
41
+ /**
42
+ * Format file size to KB with specified decimal places.
43
+ */
44
+ export declare function formatFileSize(bytes: number, decimals?: number): string;
45
+ /**
46
+ * Format Moodle timestamp to localized string.
47
+ */
48
+ export declare function formatMoodleDate(timestamp?: number): string;
49
+ /**
50
+ * 統一時間戳記轉換 (預設:本地時間字串)
51
+ */
52
+ export declare function formatTimestamp(timestamp: number | undefined | null, format?: "iso" | "local" | "relative"): string;
53
+ /**
54
+ * 相對時間格式 (e.g., "2 hours ago")
55
+ */
56
+ export declare function formatRelativeTime(timestamp: number): string;
37
57
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAcnC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,eAAe,IAAI;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,CAAA;CAAE,GAAG,YAAY,CAGvG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAExF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAK9E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAcnC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IAAE,eAAe,IAAI;QAAE,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,CAAA;CAAE,GAAG,YAAY,CAGvG;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAExF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAK9E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAE1E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,GAAE,KAAK,GAAG,OAAO,GAAG,UAAoB,GAAG,MAAM,CAQ5H;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM5D"}
@@ -1,5 +1,5 @@
1
1
  import * as dntShim from "../../_dnt.shims.js";
2
- import { dirname } from "node:path";
2
+ import { dirname, resolve } from "node:path";
3
3
  /**
4
4
  * Returns the base directory for config/storage resolving.
5
5
  * Handles both Deno (raw/compiled) and Node.js (npx).
@@ -80,3 +80,50 @@ export function sanitizeFilename(name, maxLength = 200) {
80
80
  .replace(/\s+/g, "_")
81
81
  .substring(0, maxLength);
82
82
  }
83
+ /**
84
+ * Get the session storage file path.
85
+ */
86
+ export function getSessionPath() {
87
+ const baseDir = getBaseDir();
88
+ return resolve(baseDir, ".auth", "storage-state.json");
89
+ }
90
+ /**
91
+ * Format file size to KB with specified decimal places.
92
+ */
93
+ export function formatFileSize(bytes, decimals = 2) {
94
+ return (bytes / 1024).toFixed(decimals);
95
+ }
96
+ /**
97
+ * Format Moodle timestamp to localized string.
98
+ */
99
+ export function formatMoodleDate(timestamp) {
100
+ if (!timestamp || timestamp === 0)
101
+ return "無期限";
102
+ return new Date(timestamp * 1000).toLocaleString("zh-TW");
103
+ }
104
+ /**
105
+ * 統一時間戳記轉換 (預設:本地時間字串)
106
+ */
107
+ export function formatTimestamp(timestamp, format = "local") {
108
+ if (!timestamp || timestamp === 0)
109
+ return "無期限";
110
+ const date = new Date(timestamp * 1000);
111
+ if (format === "iso")
112
+ return date.toISOString();
113
+ if (format === "relative")
114
+ return formatRelativeTime(timestamp);
115
+ return date.toLocaleString("zh-TW");
116
+ }
117
+ /**
118
+ * 相對時間格式 (e.g., "2 hours ago")
119
+ */
120
+ export function formatRelativeTime(timestamp) {
121
+ const seconds = Math.floor(Date.now() / 1000) - timestamp;
122
+ if (seconds < 60)
123
+ return `${seconds} seconds ago`;
124
+ if (seconds < 3600)
125
+ return `${Math.floor(seconds / 60)} minutes ago`;
126
+ if (seconds < 86400)
127
+ return `${Math.floor(seconds / 3600)} hours ago`;
128
+ return `${Math.floor(seconds / 86400)} days ago`;
129
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mo7yw4ng/openape",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "CLI tool for CYCU i-Learning platform",
5
5
  "keywords": [
6
6
  "ilearning",
package/script/deno.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  "name": "@openape/openape",
5
- "version": "1.0.3",
5
+ "version": "1.0.4",
6
6
  "description": "CLI tool for CYCU i-Learning platform",
7
7
  "license": "MIT",
8
8
  "exports": "./src/index.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../../src/src/commands/announcements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqJnE"}
1
+ {"version":3,"file":"announcements.d.ts","sourceRoot":"","sources":["../../../src/src/commands/announcements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoJnE"}
@@ -83,27 +83,26 @@ function registerAnnouncementsCommand(program) {
83
83
  allAnnouncements.sort((a, b) => b.createdAt - a.createdAt);
84
84
  // Apply limit
85
85
  let filteredAnnouncements = allAnnouncements.slice(0, limit);
86
- const output = {
86
+ console.log(JSON.stringify({
87
87
  status: "success",
88
88
  timestamp: new Date().toISOString(),
89
89
  level: options.level,
90
- announcements: filteredAnnouncements.map(a => ({
90
+ total_announcements: allAnnouncements.length,
91
+ shown: filteredAnnouncements.length,
92
+ }));
93
+ for (const a of filteredAnnouncements) {
94
+ console.log(JSON.stringify({
91
95
  course_id: a.course_id,
92
96
  course_name: a.course_name,
93
97
  id: a.id,
94
98
  subject: a.subject,
95
99
  author: a.author,
96
100
  author_id: a.authorId,
97
- created_at: new Date(a.createdAt * 1000).toISOString(),
98
- modified_at: new Date(a.modifiedAt * 1000).toISOString(),
101
+ created_at: (0, utils_js_1.formatTimestamp)(a.createdAt),
102
+ modified_at: (0, utils_js_1.formatTimestamp)(a.modifiedAt),
99
103
  unread: a.unread,
100
- })),
101
- summary: {
102
- total_announcements: allAnnouncements.length,
103
- shown: filteredAnnouncements.length,
104
- },
105
- };
106
- console.log(JSON.stringify(output));
104
+ }));
105
+ }
107
106
  });
108
107
  announcementsCmd
109
108
  .command("read")
@@ -131,8 +130,8 @@ function registerAnnouncementsCommand(program) {
131
130
  subject: firstPost.subject,
132
131
  author: firstPost.author,
133
132
  author_id: firstPost.authorId,
134
- created_at: new Date(firstPost.created * 1000).toISOString(),
135
- modified_at: new Date(firstPost.modified * 1000).toISOString(),
133
+ created_at: (0, utils_js_1.formatTimestamp)(firstPost.created),
134
+ modified_at: (0, utils_js_1.formatTimestamp)(firstPost.modified),
136
135
  message: firstPost.message,
137
136
  },
138
137
  };
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerAssignmentsCommand(program: Command): void;
3
+ //# sourceMappingURL=assignments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignments.d.ts","sourceRoot":"","sources":["../../../src/src/commands/assignments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0PjE"}