@mo7yw4ng/openape 1.0.6 → 2.0.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 (152) hide show
  1. package/bin/openape +29 -0
  2. package/bin/openape.js +29 -0
  3. package/package.json +22 -28
  4. package/LICENSE +0 -21
  5. package/README.md +0 -138
  6. package/esm/_dnt.polyfills.d.ts +0 -101
  7. package/esm/_dnt.polyfills.d.ts.map +0 -1
  8. package/esm/_dnt.polyfills.js +0 -127
  9. package/esm/_dnt.shims.d.ts +0 -6
  10. package/esm/_dnt.shims.d.ts.map +0 -1
  11. package/esm/_dnt.shims.js +0 -61
  12. package/esm/deno.d.ts +0 -25
  13. package/esm/deno.d.ts.map +0 -1
  14. package/esm/deno.js +0 -23
  15. package/esm/package.json +0 -3
  16. package/esm/src/commands/announcements.d.ts +0 -3
  17. package/esm/src/commands/announcements.d.ts.map +0 -1
  18. package/esm/src/commands/announcements.js +0 -71
  19. package/esm/src/commands/assignments.d.ts +0 -3
  20. package/esm/src/commands/assignments.d.ts.map +0 -1
  21. package/esm/src/commands/assignments.js +0 -229
  22. package/esm/src/commands/auth.d.ts +0 -3
  23. package/esm/src/commands/auth.d.ts.map +0 -1
  24. package/esm/src/commands/auth.js +0 -290
  25. package/esm/src/commands/calendar.d.ts +0 -3
  26. package/esm/src/commands/calendar.d.ts.map +0 -1
  27. package/esm/src/commands/calendar.js +0 -127
  28. package/esm/src/commands/courses.d.ts +0 -3
  29. package/esm/src/commands/courses.d.ts.map +0 -1
  30. package/esm/src/commands/courses.js +0 -312
  31. package/esm/src/commands/forums.d.ts +0 -3
  32. package/esm/src/commands/forums.d.ts.map +0 -1
  33. package/esm/src/commands/forums.js +0 -190
  34. package/esm/src/commands/grades.d.ts +0 -3
  35. package/esm/src/commands/grades.d.ts.map +0 -1
  36. package/esm/src/commands/grades.js +0 -84
  37. package/esm/src/commands/materials.d.ts +0 -3
  38. package/esm/src/commands/materials.d.ts.map +0 -1
  39. package/esm/src/commands/materials.js +0 -402
  40. package/esm/src/commands/quizzes.d.ts +0 -3
  41. package/esm/src/commands/quizzes.d.ts.map +0 -1
  42. package/esm/src/commands/quizzes.js +0 -236
  43. package/esm/src/commands/skills.d.ts +0 -3
  44. package/esm/src/commands/skills.d.ts.map +0 -1
  45. package/esm/src/commands/skills.js +0 -106
  46. package/esm/src/commands/upload.d.ts +0 -3
  47. package/esm/src/commands/upload.d.ts.map +0 -1
  48. package/esm/src/commands/upload.js +0 -55
  49. package/esm/src/commands/videos.d.ts +0 -3
  50. package/esm/src/commands/videos.d.ts.map +0 -1
  51. package/esm/src/commands/videos.js +0 -266
  52. package/esm/src/index.d.ts +0 -28
  53. package/esm/src/index.d.ts.map +0 -1
  54. package/esm/src/index.js +0 -164
  55. package/esm/src/lib/auth.d.ts +0 -66
  56. package/esm/src/lib/auth.d.ts.map +0 -1
  57. package/esm/src/lib/auth.js +0 -286
  58. package/esm/src/lib/config.d.ts +0 -6
  59. package/esm/src/lib/config.d.ts.map +0 -1
  60. package/esm/src/lib/config.js +0 -36
  61. package/esm/src/lib/logger.d.ts +0 -3
  62. package/esm/src/lib/logger.d.ts.map +0 -1
  63. package/esm/src/lib/logger.js +0 -26
  64. package/esm/src/lib/moodle.d.ts +0 -447
  65. package/esm/src/lib/moodle.d.ts.map +0 -1
  66. package/esm/src/lib/moodle.js +0 -1353
  67. package/esm/src/lib/session.d.ts +0 -8
  68. package/esm/src/lib/session.d.ts.map +0 -1
  69. package/esm/src/lib/session.js +0 -42
  70. package/esm/src/lib/token.d.ts +0 -38
  71. package/esm/src/lib/token.d.ts.map +0 -1
  72. package/esm/src/lib/token.js +0 -178
  73. package/esm/src/lib/types.d.ts +0 -189
  74. package/esm/src/lib/types.d.ts.map +0 -1
  75. package/esm/src/lib/types.js +0 -2
  76. package/esm/src/lib/utils.d.ts +0 -52
  77. package/esm/src/lib/utils.d.ts.map +0 -1
  78. package/esm/src/lib/utils.js +0 -122
  79. package/script/_dnt.polyfills.d.ts +0 -101
  80. package/script/_dnt.polyfills.d.ts.map +0 -1
  81. package/script/_dnt.polyfills.js +0 -130
  82. package/script/_dnt.shims.d.ts +0 -6
  83. package/script/_dnt.shims.d.ts.map +0 -1
  84. package/script/_dnt.shims.js +0 -65
  85. package/script/deno.d.ts +0 -25
  86. package/script/deno.d.ts.map +0 -1
  87. package/script/deno.js +0 -25
  88. package/script/package.json +0 -3
  89. package/script/src/commands/announcements.d.ts +0 -3
  90. package/script/src/commands/announcements.d.ts.map +0 -1
  91. package/script/src/commands/announcements.js +0 -74
  92. package/script/src/commands/assignments.d.ts +0 -3
  93. package/script/src/commands/assignments.d.ts.map +0 -1
  94. package/script/src/commands/assignments.js +0 -268
  95. package/script/src/commands/auth.d.ts +0 -3
  96. package/script/src/commands/auth.d.ts.map +0 -1
  97. package/script/src/commands/auth.js +0 -296
  98. package/script/src/commands/calendar.d.ts +0 -3
  99. package/script/src/commands/calendar.d.ts.map +0 -1
  100. package/script/src/commands/calendar.js +0 -133
  101. package/script/src/commands/courses.d.ts +0 -3
  102. package/script/src/commands/courses.d.ts.map +0 -1
  103. package/script/src/commands/courses.js +0 -315
  104. package/script/src/commands/forums.d.ts +0 -3
  105. package/script/src/commands/forums.d.ts.map +0 -1
  106. package/script/src/commands/forums.js +0 -193
  107. package/script/src/commands/grades.d.ts +0 -3
  108. package/script/src/commands/grades.d.ts.map +0 -1
  109. package/script/src/commands/grades.js +0 -87
  110. package/script/src/commands/materials.d.ts +0 -3
  111. package/script/src/commands/materials.d.ts.map +0 -1
  112. package/script/src/commands/materials.js +0 -408
  113. package/script/src/commands/quizzes.d.ts +0 -3
  114. package/script/src/commands/quizzes.d.ts.map +0 -1
  115. package/script/src/commands/quizzes.js +0 -239
  116. package/script/src/commands/skills.d.ts +0 -3
  117. package/script/src/commands/skills.d.ts.map +0 -1
  118. package/script/src/commands/skills.js +0 -112
  119. package/script/src/commands/upload.d.ts +0 -3
  120. package/script/src/commands/upload.d.ts.map +0 -1
  121. package/script/src/commands/upload.js +0 -61
  122. package/script/src/commands/videos.d.ts +0 -3
  123. package/script/src/commands/videos.d.ts.map +0 -1
  124. package/script/src/commands/videos.js +0 -272
  125. package/script/src/index.d.ts +0 -28
  126. package/script/src/index.d.ts.map +0 -1
  127. package/script/src/index.js +0 -171
  128. package/script/src/lib/auth.d.ts +0 -66
  129. package/script/src/lib/auth.d.ts.map +0 -1
  130. package/script/src/lib/auth.js +0 -296
  131. package/script/src/lib/config.d.ts +0 -6
  132. package/script/src/lib/config.d.ts.map +0 -1
  133. package/script/src/lib/config.js +0 -42
  134. package/script/src/lib/logger.d.ts +0 -3
  135. package/script/src/lib/logger.d.ts.map +0 -1
  136. package/script/src/lib/logger.js +0 -29
  137. package/script/src/lib/moodle.d.ts +0 -447
  138. package/script/src/lib/moodle.d.ts.map +0 -1
  139. package/script/src/lib/moodle.js +0 -1425
  140. package/script/src/lib/session.d.ts +0 -8
  141. package/script/src/lib/session.d.ts.map +0 -1
  142. package/script/src/lib/session.js +0 -45
  143. package/script/src/lib/token.d.ts +0 -38
  144. package/script/src/lib/token.d.ts.map +0 -1
  145. package/script/src/lib/token.js +0 -189
  146. package/script/src/lib/types.d.ts +0 -189
  147. package/script/src/lib/types.d.ts.map +0 -1
  148. package/script/src/lib/types.js +0 -3
  149. package/script/src/lib/utils.d.ts +0 -52
  150. package/script/src/lib/utils.d.ts.map +0 -1
  151. package/script/src/lib/utils.js +0 -167
  152. package/skills/openape/SKILL.md +0 -115
@@ -1,447 +0,0 @@
1
- import type { Page } from "playwright-core";
2
- import type { SessionInfo, Logger, EnrolledCourse, SuperVideoModule, QuizModule, QuizAttemptData, QuizStartResult, ResourceModule, ForumDiscussion, ForumPost, CalendarEvent, CourseGrade } from "./types.js";
3
- /**
4
- * Direct HTTP API call without browser (for WS API only).
5
- * This is much faster than browser-based calls.
6
- */
7
- export declare function moodleApiCall<T = unknown>(session: {
8
- wsToken: string;
9
- moodleBaseUrl: string;
10
- }, methodname: string, args: Record<string, unknown>): Promise<T>;
11
- /**
12
- * Send a Moodle AJAX request and return the result.
13
- * Uses Web Service token if available AND the function is in WS_API_FUNCTIONS,
14
- * otherwise falls back to sesskey-based AJAX (via /lib/ajax/service.php).
15
- */
16
- export declare function moodleAjax<T = unknown>(page: Page, session: SessionInfo, methodname: string, args: Record<string, unknown>): Promise<T>;
17
- /**
18
- * Fetch enrolled courses via pure API (no browser required).
19
- * Fast and lightweight - uses HTTP fetch directly.
20
- */
21
- export declare function getEnrolledCoursesApi(session: {
22
- wsToken: string;
23
- moodleBaseUrl: string;
24
- }, options?: {
25
- classification?: "inprogress" | "past" | "future" | "all";
26
- limit?: number;
27
- }): Promise<EnrolledCourse[]>;
28
- /**
29
- * Fetch all enrolled courses via Moodle AJAX API.
30
- */
31
- export declare function getEnrolledCourses(page: Page, session: SessionInfo, log: Logger, options?: {
32
- classification?: "inprogress" | "past" | "future";
33
- limit?: number;
34
- }): Promise<EnrolledCourse[]>;
35
- /**
36
- * Get course state (modules) via core_courseformat_get_state.
37
- */
38
- export declare function getCourseState(page: Page, session: SessionInfo, courseId: number): Promise<any>;
39
- /**
40
- * Get all SuperVideo modules in a course.
41
- */
42
- export declare function getSupervideosInCourse(page: Page, session: SessionInfo, courseId: number, log: Logger, options?: {
43
- incompleteOnly?: boolean;
44
- }): Promise<SuperVideoModule[]>;
45
- /**
46
- * Get all forums via pure WS API (no browser required).
47
- * Fast and lightweight - uses HTTP fetch directly.
48
- */
49
- export declare function getForumsApi(session: {
50
- wsToken: string;
51
- moodleBaseUrl: string;
52
- }, courseIds: number[]): Promise<Array<{
53
- id: number;
54
- cmid: number;
55
- name: string;
56
- intro: string;
57
- courseid: number;
58
- timemodified: number;
59
- }>>;
60
- /**
61
- * Resolve a forum ID (cmid or instance ID) to a forum instance ID.
62
- * Tries cmid resolution first (via core_course_get_course_module) to get name/course info.
63
- * Falls back to treating the ID as a raw forum instance ID.
64
- */
65
- export declare function resolveForumId(session: {
66
- wsToken: string;
67
- moodleBaseUrl: string;
68
- }, id: string): Promise<{
69
- forumId: number;
70
- cmid?: number;
71
- name?: string;
72
- courseid?: number;
73
- } | null>;
74
- /**
75
- * Get discussions in a forum via WS API (no browser required).
76
- * Uses mod_forum_get_forum_discussions
77
- */
78
- export declare function getForumDiscussionsApi(session: {
79
- wsToken: string;
80
- moodleBaseUrl: string;
81
- }, forumId: number, options?: {
82
- sortorder?: number;
83
- page?: number;
84
- perpage?: number;
85
- groupid?: number;
86
- }): Promise<ForumDiscussion[]>;
87
- /**
88
- * Get posts in a discussion via WS API (no browser required).
89
- * Uses mod_forum_get_forum_discussion_posts
90
- */
91
- export declare function getDiscussionPostsApi(session: {
92
- wsToken: string;
93
- moodleBaseUrl: string;
94
- }, discussionId: number): Promise<ForumPost[]>;
95
- /**
96
- * Delete a forum post. If the post is a discussion's topic post,
97
- * the entire discussion is deleted.
98
- */
99
- export declare function deleteForumPostApi(session: {
100
- wsToken: string;
101
- moodleBaseUrl: string;
102
- }, postId: number): Promise<{
103
- success: boolean;
104
- error?: string;
105
- }>;
106
- /**
107
- * Add a new discussion to a forum.
108
- */
109
- export declare function addForumDiscussionApi(session: {
110
- wsToken: string;
111
- moodleBaseUrl: string;
112
- }, forumId: number, subject: string, message: string): Promise<{
113
- success: boolean;
114
- discussionId?: number;
115
- error?: string;
116
- }>;
117
- /**
118
- * Add a reply post to a discussion.
119
- */
120
- export declare function addForumPostApi(session: {
121
- wsToken: string;
122
- moodleBaseUrl: string;
123
- }, postId: number, // Parent post ID to reply to
124
- subject: string, message: string, options?: {
125
- inlineAttachmentId?: number;
126
- attachmentId?: number;
127
- }): Promise<{
128
- success: boolean;
129
- postId?: number;
130
- error?: string;
131
- }>;
132
- /**
133
- * Get all resource modules in a course.
134
- */
135
- export declare function getResourcesInCourse(page: Page, session: SessionInfo, courseId: number, log: Logger): Promise<ResourceModule[]>;
136
- /**
137
- * Get calendar events via pure WS API (no browser required).
138
- * Fast and lightweight - uses HTTP fetch directly.
139
- */
140
- export declare function getCalendarEventsApi(session: {
141
- wsToken: string;
142
- moodleBaseUrl: string;
143
- }, options?: {
144
- courseId?: number;
145
- startTime?: number;
146
- endTime?: number;
147
- events?: {
148
- courseid?: number;
149
- groupid?: number;
150
- categoryid?: number;
151
- }[];
152
- }): Promise<CalendarEvent[]>;
153
- /**
154
- * Get course grades for the current user via pure WS API (no browser required).
155
- * Fast and lightweight - uses HTTP fetch directly.
156
- */
157
- export declare function getCourseGradesApi(session: {
158
- wsToken: string;
159
- moodleBaseUrl: string;
160
- }, courseId: number): Promise<CourseGrade>;
161
- /**
162
- * Visit a SuperVideo activity page and extract view_id + duration.
163
- */
164
- /**
165
- * Optimized video metadata extraction - minimal page load overhead.
166
- * Blocks images, fonts, stylesheets to speed up viewId extraction.
167
- */
168
- export declare function getVideoMetadata(page: Page, activityUrl: string, log: Logger): Promise<{
169
- name: string;
170
- url: string;
171
- viewId: number;
172
- duration: number;
173
- existingPercent: number;
174
- videoSources: string[];
175
- youtubeIds?: string[];
176
- }>;
177
- /**
178
- * Download a video from SuperVideo activity.
179
- * Supports direct video URLs (pluginfile.php) and YouTube videos.
180
- */
181
- export declare function downloadVideo(page: Page, metadata: {
182
- name: string;
183
- videoSources: string[];
184
- youtubeIds?: string[];
185
- }, outputPath: string, log: Logger): Promise<{
186
- success: boolean;
187
- path?: string;
188
- error?: string;
189
- type?: string;
190
- }>;
191
- /**
192
- * Complete a video using WS API (mobile service only).
193
- * Uses mod_supervideo_progress_save_mobile which is accessible via moodle_mobile_app service token.
194
- */
195
- export declare function completeVideoApi(session: {
196
- wsToken: string;
197
- moodleBaseUrl: string;
198
- }, video: {
199
- viewId: number;
200
- duration: number;
201
- url: string;
202
- cmid?: string;
203
- }): Promise<{
204
- success: boolean;
205
- error?: string;
206
- result?: any;
207
- }>;
208
- /**
209
- * Complete a video by forging progress AJAX call (legacy, requires browser).
210
- * Note: This uses sesskey-based AJAX which works for mod_supervideo_progress_save.
211
- */
212
- export declare function completeVideo(page: Page, session: SessionInfo, video: {
213
- viewId: number;
214
- duration: number;
215
- url: string;
216
- cmid?: string;
217
- }, log: Logger): Promise<boolean>;
218
- /**
219
- * Update activity completion status manually via WS API.
220
- * Used for marking resources as complete/incomplete.
221
- */
222
- export declare function updateActivityCompletionStatusManually(session: {
223
- wsToken: string;
224
- moodleBaseUrl: string;
225
- }, cmid: number, completed: boolean): Promise<boolean>;
226
- /**
227
- * Get site info including current user ID via pure WS API.
228
- * Results are cached for 5 minutes to avoid redundant calls.
229
- */
230
- export declare function getSiteInfoApi(session: {
231
- wsToken: string;
232
- moodleBaseUrl: string;
233
- }): Promise<{
234
- userid: number;
235
- username: string;
236
- fullname: string;
237
- sitename: string;
238
- }>;
239
- /**
240
- * Get incomplete supervideos with completion tracking enabled via WS API.
241
- * Uses core_completion_get_activities_completion_status to get only videos that:
242
- * 1. Have completion tracking enabled (hascompletion: true)
243
- * 2. Are not yet completed (isoverallcomplete: false or state !== 1)
244
- */
245
- export declare function getIncompleteVideosApi(session: {
246
- wsToken: string;
247
- moodleBaseUrl: string;
248
- }, courseId: number): Promise<Array<{
249
- cmid: number;
250
- name: string;
251
- url: string;
252
- }>>;
253
- /**
254
- * Get course contents and filter for SuperVideo modules via pure WS API.
255
- */
256
- export declare function getSupervideosInCourseApi(session: {
257
- wsToken: string;
258
- moodleBaseUrl: string;
259
- }, courseId: number): Promise<SuperVideoModule[]>;
260
- /**
261
- * Extended QuizModule with courseId for API responses.
262
- */
263
- export interface QuizModuleWithCourse extends QuizModule {
264
- courseId: number;
265
- }
266
- /**
267
- * Get quizzes in courses via pure WS API.
268
- */
269
- export declare function getQuizzesByCoursesApi(session: {
270
- wsToken: string;
271
- moodleBaseUrl: string;
272
- }, courseIds: number[]): Promise<QuizModuleWithCourse[]>;
273
- /**
274
- * Start a new quiz attempt via pure WS API.
275
- */
276
- export declare function startQuizAttemptApi(session: {
277
- wsToken: string;
278
- moodleBaseUrl: string;
279
- }, quizId: string, options?: {
280
- forcenew?: boolean;
281
- precheck?: boolean;
282
- }): Promise<QuizStartResult>;
283
- /**
284
- * Get quiz attempt data including questions via pure WS API.
285
- */
286
- export declare function getAllQuizAttemptDataApi(session: {
287
- wsToken: string;
288
- moodleBaseUrl: string;
289
- }, attemptId: number): Promise<QuizAttemptData>;
290
- export declare function getQuizAttemptDataApi(session: {
291
- wsToken: string;
292
- moodleBaseUrl: string;
293
- }, attemptId: number, page?: number): Promise<QuizAttemptData>;
294
- /**
295
- * Process (save answers / finish) a quiz attempt via WS API.
296
- *
297
- * Answer formats:
298
- * - Single choice (multichoice): { slot, answer: "0" }
299
- * - Multiple choice (multichoices): { slot, answer: "0,2,3" } (comma-separated choice indices)
300
- * - Short answer (shortanswer): { slot, answer: "text answer" }
301
- *
302
- * @param session - WS session
303
- * @param attemptId - The attempt ID
304
- * @param uniqueId - The usage attempt uniqueid (from attempt data)
305
- * @param answers - Array of { slot, answer } pairs
306
- * @param sequenceChecks - Map of slot -> sequencecheck value (required for deferredfeedback)
307
- * @param finish - Whether to finish the attempt after saving
308
- */
309
- export declare function processQuizAttemptApi(session: {
310
- wsToken: string;
311
- moodleBaseUrl: string;
312
- }, attemptId: number, uniqueId: number, answers: Array<{
313
- slot: number;
314
- answer: string;
315
- }>, sequenceChecks: Map<number, number>, finish?: boolean): Promise<{
316
- state: string;
317
- warnings?: unknown[];
318
- }>;
319
- /**
320
- * Get resources in courses via pure WS API.
321
- */
322
- export declare function getResourcesByCoursesApi(session: {
323
- wsToken: string;
324
- moodleBaseUrl: string;
325
- }, courseIds: number[]): Promise<ResourceModule[]>;
326
- /**
327
- * Extended AssignmentModule with courseId for API responses.
328
- */
329
- export interface AssignmentModuleWithCourse {
330
- id: number;
331
- cmid: string;
332
- name: string;
333
- url: string;
334
- courseId: number;
335
- duedate?: number;
336
- cutoffdate?: number;
337
- allowSubmissionsFromDate?: number;
338
- gradingduedate?: number;
339
- lateSubmission?: boolean;
340
- extensionduedate?: number;
341
- }
342
- /**
343
- * Get assignments in courses via pure WS API.
344
- */
345
- export declare function getAssignmentsByCoursesApi(session: {
346
- wsToken: string;
347
- moodleBaseUrl: string;
348
- }, courseIds: number[]): Promise<AssignmentModuleWithCourse[]>;
349
- /**
350
- * Get assignment submission status via pure WS API.
351
- */
352
- export declare function getSubmissionStatusApi(session: {
353
- wsToken: string;
354
- moodleBaseUrl: string;
355
- }, assignmentId: number): Promise<{
356
- submitted: boolean;
357
- graded: boolean;
358
- grader: string | null;
359
- grade: string | null;
360
- feedback: string | null;
361
- lastModified: number | null;
362
- extensions: Array<{
363
- id: number;
364
- filename: string;
365
- filesize: number;
366
- }>;
367
- }>;
368
- /**
369
- * Save/submit an assignment via pure WS API.
370
- * Supports online text submissions and file submissions (by draft ID).
371
- */
372
- export declare function saveSubmissionApi(session: {
373
- wsToken: string;
374
- moodleBaseUrl: string;
375
- }, assignmentId: number, options: {
376
- onlineText?: {
377
- text: string;
378
- format?: number;
379
- };
380
- fileId?: number;
381
- plugintype?: "onlinetext" | "file" | "comments";
382
- }): Promise<{
383
- success: boolean;
384
- error?: string;
385
- }>;
386
- /**
387
- * Generate a unique draft item ID.
388
- * Uses timestamp (last 8 digits) to ensure uniqueness.
389
- */
390
- export declare function generateDraftItemId(): number;
391
- /**
392
- * Upload a file to Moodle draft area via pure WS API.
393
- * This is the first step before submitting files to assignments, forums, etc.
394
- *
395
- * Note: We generate our own draft item ID instead of asking Moodle for one.
396
- */
397
- export declare function uploadFileApi(session: {
398
- wsToken: string;
399
- moodleBaseUrl: string;
400
- }, filePath: string, options?: {
401
- draftId?: number;
402
- filename?: string;
403
- filepath?: string;
404
- }): Promise<{
405
- success: boolean;
406
- draftId?: number;
407
- error?: string;
408
- }>;
409
- /**
410
- * Get user's private files (not draft) via pure WS API.
411
- * Draft files are temporary and cannot be listed, but private files can.
412
- */
413
- export declare function getDraftFilesApi(session: {
414
- wsToken: string;
415
- moodleBaseUrl: string;
416
- }): Promise<Array<{
417
- itemId: number;
418
- filename: string;
419
- filesize: number;
420
- filepath: string;
421
- timeModified: number;
422
- url: string;
423
- }>>;
424
- export interface Message {
425
- id: number;
426
- useridfrom: number;
427
- useridto: number;
428
- subject: string;
429
- text: string;
430
- timecreated: number;
431
- fullmessage: string;
432
- fullmessageformat: number;
433
- fullmessagehtml: string;
434
- }
435
- /**
436
- * Get messages for the current user via pure WS API.
437
- */
438
- export declare function getMessagesApi(session: {
439
- wsToken: string;
440
- moodleBaseUrl: string;
441
- }, userIdTo: number, options?: {
442
- useridfrom?: number;
443
- read?: boolean;
444
- limitfrom?: number;
445
- limitnum?: number;
446
- }): Promise<Message[]>;
447
- //# sourceMappingURL=moodle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"moodle.d.ts","sourceRoot":"","sources":["../../../src/src/lib/moodle.ts"],"names":[],"mappings":"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"}