@mo7yw4ng/openape 1.0.1 → 1.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 (132) hide show
  1. package/README.md +8 -5
  2. package/esm/_dnt.polyfills.d.ts +83 -6
  3. package/esm/_dnt.polyfills.d.ts.map +1 -0
  4. package/esm/_dnt.polyfills.js +127 -1
  5. package/esm/_dnt.shims.d.ts +1 -0
  6. package/esm/_dnt.shims.d.ts.map +1 -0
  7. package/esm/deno.d.ts +2 -0
  8. package/esm/deno.d.ts.map +1 -0
  9. package/esm/deno.js +2 -1
  10. package/esm/src/commands/announcements.d.ts +3 -0
  11. package/esm/src/commands/announcements.d.ts.map +1 -0
  12. package/esm/src/commands/announcements.js +135 -0
  13. package/esm/src/commands/auth.d.ts +3 -0
  14. package/esm/src/commands/auth.d.ts.map +1 -0
  15. package/esm/src/commands/auth.js +260 -0
  16. package/esm/src/commands/calendar.d.ts +3 -0
  17. package/esm/src/commands/calendar.d.ts.map +1 -0
  18. package/esm/src/commands/calendar.js +180 -0
  19. package/esm/src/commands/courses.d.ts +3 -0
  20. package/esm/src/commands/courses.d.ts.map +1 -0
  21. package/esm/src/commands/courses.js +348 -0
  22. package/esm/src/commands/forums.d.ts +3 -0
  23. package/esm/src/commands/forums.d.ts.map +1 -0
  24. package/esm/src/commands/forums.js +226 -0
  25. package/esm/src/commands/grades.d.ts +3 -0
  26. package/esm/src/commands/grades.d.ts.map +1 -0
  27. package/esm/src/commands/grades.js +121 -0
  28. package/esm/src/commands/materials.d.ts +3 -0
  29. package/esm/src/commands/materials.d.ts.map +1 -0
  30. package/esm/src/commands/materials.js +522 -0
  31. package/esm/src/commands/quizzes.d.ts +3 -0
  32. package/esm/src/commands/quizzes.d.ts.map +1 -0
  33. package/esm/src/commands/quizzes.js +160 -0
  34. package/esm/src/commands/skills.d.ts +3 -0
  35. package/esm/src/commands/skills.d.ts.map +1 -0
  36. package/esm/src/commands/skills.js +110 -0
  37. package/esm/src/commands/videos.d.ts +3 -0
  38. package/esm/src/commands/videos.d.ts.map +1 -0
  39. package/esm/src/commands/videos.js +335 -0
  40. package/esm/src/index.d.ts +27 -0
  41. package/esm/src/index.d.ts.map +1 -0
  42. package/esm/src/index.js +149 -0
  43. package/esm/src/lib/auth.d.ts +25 -0
  44. package/esm/src/lib/auth.d.ts.map +1 -0
  45. package/esm/src/lib/auth.js +194 -0
  46. package/esm/src/lib/config.d.ts +6 -0
  47. package/esm/src/lib/config.d.ts.map +1 -0
  48. package/esm/src/lib/config.js +36 -0
  49. package/esm/src/lib/logger.d.ts +3 -0
  50. package/esm/src/lib/logger.d.ts.map +1 -0
  51. package/esm/src/lib/logger.js +24 -0
  52. package/esm/src/lib/moodle.d.ts +251 -0
  53. package/esm/src/lib/moodle.d.ts.map +1 -0
  54. package/esm/src/lib/moodle.js +833 -0
  55. package/esm/src/lib/session.d.ts +8 -0
  56. package/esm/src/lib/session.d.ts.map +1 -0
  57. package/esm/src/lib/session.js +42 -0
  58. package/esm/src/lib/token.d.ts +38 -0
  59. package/esm/src/lib/token.d.ts.map +1 -0
  60. package/esm/src/lib/token.js +178 -0
  61. package/esm/src/lib/types.d.ts +272 -0
  62. package/esm/src/lib/types.d.ts.map +1 -0
  63. package/esm/src/lib/types.js +1 -0
  64. package/esm/src/lib/utils.d.ts +37 -0
  65. package/esm/src/lib/utils.d.ts.map +1 -0
  66. package/esm/src/lib/utils.js +82 -0
  67. package/package.json +4 -4
  68. package/script/_dnt.polyfills.d.ts +83 -6
  69. package/script/_dnt.polyfills.d.ts.map +1 -0
  70. package/script/_dnt.polyfills.js +128 -0
  71. package/script/_dnt.shims.d.ts +1 -0
  72. package/script/_dnt.shims.d.ts.map +1 -0
  73. package/script/deno.d.ts +2 -0
  74. package/script/deno.d.ts.map +1 -0
  75. package/script/deno.js +2 -1
  76. package/script/src/commands/announcements.d.ts +1 -0
  77. package/script/src/commands/announcements.d.ts.map +1 -0
  78. package/script/src/commands/announcements.js +75 -222
  79. package/script/src/commands/auth.d.ts +2 -1
  80. package/script/src/commands/auth.d.ts.map +1 -0
  81. package/script/src/commands/auth.js +52 -24
  82. package/script/src/commands/calendar.d.ts +1 -0
  83. package/script/src/commands/calendar.d.ts.map +1 -0
  84. package/script/src/commands/calendar.js +112 -301
  85. package/script/src/commands/courses.d.ts +1 -0
  86. package/script/src/commands/courses.d.ts.map +1 -0
  87. package/script/src/commands/courses.js +43 -173
  88. package/script/src/commands/forums.d.ts +1 -0
  89. package/script/src/commands/forums.d.ts.map +1 -0
  90. package/script/src/commands/forums.js +145 -316
  91. package/script/src/commands/grades.d.ts +1 -0
  92. package/script/src/commands/grades.d.ts.map +1 -0
  93. package/script/src/commands/grades.js +62 -194
  94. package/script/src/commands/materials.d.ts +1 -0
  95. package/script/src/commands/materials.d.ts.map +1 -0
  96. package/script/src/commands/materials.js +283 -178
  97. package/script/src/commands/quizzes.d.ts +1 -0
  98. package/script/src/commands/quizzes.d.ts.map +1 -0
  99. package/script/src/commands/quizzes.js +40 -102
  100. package/script/src/commands/skills.d.ts +1 -0
  101. package/script/src/commands/skills.d.ts.map +1 -0
  102. package/script/src/commands/skills.js +17 -18
  103. package/script/src/commands/videos.d.ts +1 -0
  104. package/script/src/commands/videos.d.ts.map +1 -0
  105. package/script/src/commands/videos.js +127 -120
  106. package/script/src/index.d.ts +1 -0
  107. package/script/src/index.d.ts.map +1 -0
  108. package/script/src/index.js +5 -5
  109. package/script/src/lib/auth.d.ts +1 -0
  110. package/script/src/lib/auth.d.ts.map +1 -0
  111. package/script/src/lib/auth.js +9 -10
  112. package/script/src/lib/config.d.ts +1 -0
  113. package/script/src/lib/config.d.ts.map +1 -0
  114. package/script/src/lib/config.js +6 -7
  115. package/script/src/lib/logger.d.ts +1 -0
  116. package/script/src/lib/logger.d.ts.map +1 -0
  117. package/script/src/lib/logger.js +1 -2
  118. package/script/src/lib/moodle.d.ts +72 -55
  119. package/script/src/lib/moodle.d.ts.map +1 -0
  120. package/script/src/lib/moodle.js +275 -350
  121. package/script/src/lib/session.d.ts +1 -0
  122. package/script/src/lib/session.d.ts.map +1 -0
  123. package/script/src/lib/session.js +3 -29
  124. package/script/src/lib/token.d.ts +16 -5
  125. package/script/src/lib/token.d.ts.map +1 -0
  126. package/script/src/lib/token.js +71 -36
  127. package/script/src/lib/types.d.ts +11 -0
  128. package/script/src/lib/types.d.ts.map +1 -0
  129. package/script/src/lib/utils.d.ts +32 -0
  130. package/script/src/lib/utils.d.ts.map +1 -0
  131. package/script/src/lib/utils.js +93 -13
  132. package/skills/openape/SKILL.md +6 -26
@@ -0,0 +1,251 @@
1
+ import type { Page } from "playwright-core";
2
+ import type { SessionInfo, Logger, EnrolledCourse, SuperVideoModule, QuizModule, 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
+ courseid: number;
57
+ timemodified: number;
58
+ }>>;
59
+ /**
60
+ * Get discussions in a forum via WS API (no browser required).
61
+ * Uses mod_forum_get_forum_discussions
62
+ */
63
+ export declare function getForumDiscussionsApi(session: {
64
+ wsToken: string;
65
+ moodleBaseUrl: string;
66
+ }, forumId: number, options?: {
67
+ sortorder?: number;
68
+ page?: number;
69
+ perpage?: number;
70
+ groupid?: number;
71
+ }): Promise<ForumDiscussion[]>;
72
+ /**
73
+ * Get posts in a discussion via WS API (no browser required).
74
+ * Uses mod_forum_get_forum_discussion_posts
75
+ */
76
+ export declare function getDiscussionPostsApi(session: {
77
+ wsToken: string;
78
+ moodleBaseUrl: string;
79
+ }, discussionId: number): Promise<ForumPost[]>;
80
+ /**
81
+ * Get all resource modules in a course.
82
+ */
83
+ export declare function getResourcesInCourse(page: Page, session: SessionInfo, courseId: number, log: Logger): Promise<ResourceModule[]>;
84
+ /**
85
+ * Get calendar events via pure WS API (no browser required).
86
+ * Fast and lightweight - uses HTTP fetch directly.
87
+ */
88
+ export declare function getCalendarEventsApi(session: {
89
+ wsToken: string;
90
+ moodleBaseUrl: string;
91
+ }, options?: {
92
+ courseId?: number;
93
+ startTime?: number;
94
+ endTime?: number;
95
+ events?: {
96
+ courseid?: number;
97
+ groupid?: number;
98
+ categoryid?: number;
99
+ }[];
100
+ }): Promise<CalendarEvent[]>;
101
+ /**
102
+ * Get course grades for the current user via pure WS API (no browser required).
103
+ * Fast and lightweight - uses HTTP fetch directly.
104
+ */
105
+ export declare function getCourseGradesApi(session: {
106
+ wsToken: string;
107
+ moodleBaseUrl: string;
108
+ }, courseId: number): Promise<CourseGrade>;
109
+ /**
110
+ * Visit a SuperVideo activity page and extract view_id + duration.
111
+ */
112
+ /**
113
+ * Optimized video metadata extraction - minimal page load overhead.
114
+ * Blocks images, fonts, stylesheets to speed up viewId extraction.
115
+ */
116
+ export declare function getVideoMetadata(page: Page, activityUrl: string, log: Logger): Promise<{
117
+ name: string;
118
+ url: string;
119
+ viewId: number;
120
+ duration: number;
121
+ existingPercent: number;
122
+ videoSources: string[];
123
+ youtubeIds?: string[];
124
+ }>;
125
+ /**
126
+ * Download a video from SuperVideo activity.
127
+ * Supports direct video URLs (pluginfile.php) and YouTube videos.
128
+ */
129
+ export declare function downloadVideo(page: Page, metadata: {
130
+ name: string;
131
+ videoSources: string[];
132
+ youtubeIds?: string[];
133
+ }, outputPath: string, log: Logger): Promise<{
134
+ success: boolean;
135
+ path?: string;
136
+ error?: string;
137
+ type?: string;
138
+ }>;
139
+ /**
140
+ * Complete a video using WS API (mobile service only).
141
+ * Uses mod_supervideo_progress_save_mobile which is accessible via moodle_mobile_app service token.
142
+ */
143
+ export declare function completeVideoApi(session: {
144
+ wsToken: string;
145
+ moodleBaseUrl: string;
146
+ }, video: {
147
+ viewId: number;
148
+ duration: number;
149
+ url: string;
150
+ cmid?: string;
151
+ }): Promise<{
152
+ success: boolean;
153
+ error?: string;
154
+ result?: any;
155
+ }>;
156
+ /**
157
+ * Complete a video by forging progress AJAX call (legacy, requires browser).
158
+ * Note: This uses sesskey-based AJAX which works for mod_supervideo_progress_save.
159
+ */
160
+ export declare function completeVideo(page: Page, session: SessionInfo, video: {
161
+ viewId: number;
162
+ duration: number;
163
+ url: string;
164
+ cmid?: string;
165
+ }, log: Logger): Promise<boolean>;
166
+ /**
167
+ * Update activity completion status manually via WS API.
168
+ * Used for marking resources as complete/incomplete.
169
+ */
170
+ export declare function updateActivityCompletionStatusManually(session: {
171
+ wsToken: string;
172
+ moodleBaseUrl: string;
173
+ }, cmid: number, completed: boolean): Promise<boolean>;
174
+ /**
175
+ * Get site info including current user ID via pure WS API.
176
+ * Results are cached for 5 minutes to avoid redundant calls.
177
+ */
178
+ export declare function getSiteInfoApi(session: {
179
+ wsToken: string;
180
+ moodleBaseUrl: string;
181
+ }): Promise<{
182
+ userid: number;
183
+ username: string;
184
+ fullname: string;
185
+ sitename: string;
186
+ }>;
187
+ /**
188
+ * Get incomplete supervideos with completion tracking enabled via WS API.
189
+ * Uses core_completion_get_activities_completion_status to get only videos that:
190
+ * 1. Have completion tracking enabled (hascompletion: true)
191
+ * 2. Are not yet completed (isoverallcomplete: false or state !== 1)
192
+ */
193
+ export declare function getIncompleteVideosApi(session: {
194
+ wsToken: string;
195
+ moodleBaseUrl: string;
196
+ }, courseId: number): Promise<Array<{
197
+ cmid: number;
198
+ name: string;
199
+ url: string;
200
+ }>>;
201
+ /**
202
+ * Get course contents and filter for SuperVideo modules via pure WS API.
203
+ */
204
+ export declare function getSupervideosInCourseApi(session: {
205
+ wsToken: string;
206
+ moodleBaseUrl: string;
207
+ }, courseId: number): Promise<SuperVideoModule[]>;
208
+ /**
209
+ * Extended QuizModule with courseId for API responses.
210
+ */
211
+ export interface QuizModuleWithCourse extends QuizModule {
212
+ courseId: number;
213
+ }
214
+ /**
215
+ * Get quizzes in courses via pure WS API.
216
+ */
217
+ export declare function getQuizzesByCoursesApi(session: {
218
+ wsToken: string;
219
+ moodleBaseUrl: string;
220
+ }, courseIds: number[]): Promise<QuizModuleWithCourse[]>;
221
+ /**
222
+ * Get resources in courses via pure WS API.
223
+ */
224
+ export declare function getResourcesByCoursesApi(session: {
225
+ wsToken: string;
226
+ moodleBaseUrl: string;
227
+ }, courseIds: number[]): Promise<ResourceModule[]>;
228
+ export interface Message {
229
+ id: number;
230
+ useridfrom: number;
231
+ useridto: number;
232
+ subject: string;
233
+ text: string;
234
+ timecreated: number;
235
+ fullmessage: string;
236
+ fullmessageformat: number;
237
+ fullmessagehtml: string;
238
+ }
239
+ /**
240
+ * Get messages for the current user via pure WS API.
241
+ */
242
+ export declare function getMessagesApi(session: {
243
+ wsToken: string;
244
+ moodleBaseUrl: string;
245
+ }, userIdTo: number, options?: {
246
+ useridfrom?: number;
247
+ read?: boolean;
248
+ limitfrom?: number;
249
+ limitnum?: number;
250
+ }): Promise<Message[]>;
251
+ //# sourceMappingURL=moodle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moodle.d.ts","sourceRoot":"","sources":["../../../src/src/lib/moodle.ts"],"names":[],"mappings":"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"}