offcourse 1.0.0 → 1.0.1

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 (258) hide show
  1. package/dist/cli/commands/config.js.map +1 -1
  2. package/dist/cli/commands/inspect.js +1 -1
  3. package/dist/cli/commands/inspect.js.map +1 -1
  4. package/dist/cli/commands/sync.d.ts +1 -2
  5. package/dist/cli/commands/sync.d.ts.map +1 -1
  6. package/dist/cli/commands/sync.js +13 -14
  7. package/dist/cli/commands/sync.js.map +1 -1
  8. package/dist/cli/commands/syncHighLevel.d.ts +1 -2
  9. package/dist/cli/commands/syncHighLevel.d.ts.map +1 -1
  10. package/dist/cli/commands/syncHighLevel.js +4 -8
  11. package/dist/cli/commands/syncHighLevel.js.map +1 -1
  12. package/dist/cli/index.js +1 -1
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/config/configManager.d.ts.map +1 -1
  15. package/dist/config/configManager.js +4 -0
  16. package/dist/config/configManager.js.map +1 -1
  17. package/dist/downloader/hlsDownloader.d.ts.map +1 -1
  18. package/dist/downloader/hlsDownloader.js +23 -14
  19. package/dist/downloader/hlsDownloader.js.map +1 -1
  20. package/dist/downloader/hlsValidator.d.ts.map +1 -1
  21. package/dist/downloader/hlsValidator.js +6 -2
  22. package/dist/downloader/hlsValidator.js.map +1 -1
  23. package/dist/downloader/index.d.ts +3 -0
  24. package/dist/downloader/index.d.ts.map +1 -1
  25. package/dist/downloader/index.js +3 -0
  26. package/dist/downloader/index.js.map +1 -1
  27. package/dist/downloader/loomDownloader.d.ts.map +1 -1
  28. package/dist/downloader/loomDownloader.js +23 -20
  29. package/dist/downloader/loomDownloader.js.map +1 -1
  30. package/dist/downloader/queue.d.ts +4 -4
  31. package/dist/downloader/queue.d.ts.map +1 -1
  32. package/dist/downloader/queue.js.map +1 -1
  33. package/dist/downloader/vimeoDownloader.d.ts.map +1 -1
  34. package/dist/downloader/vimeoDownloader.js +7 -3
  35. package/dist/downloader/vimeoDownloader.js.map +1 -1
  36. package/dist/scraper/extractor.d.ts +4 -0
  37. package/dist/scraper/extractor.d.ts.map +1 -1
  38. package/dist/scraper/extractor.js +79 -79
  39. package/dist/scraper/extractor.js.map +1 -1
  40. package/dist/scraper/highlevel/extractor.d.ts +11 -19
  41. package/dist/scraper/highlevel/extractor.d.ts.map +1 -1
  42. package/dist/scraper/highlevel/extractor.js +72 -85
  43. package/dist/scraper/highlevel/extractor.js.map +1 -1
  44. package/dist/scraper/highlevel/navigator.d.ts +3 -10
  45. package/dist/scraper/highlevel/navigator.d.ts.map +1 -1
  46. package/dist/scraper/highlevel/navigator.js +140 -127
  47. package/dist/scraper/highlevel/navigator.js.map +1 -1
  48. package/dist/scraper/highlevel/schemas.d.ts +188 -0
  49. package/dist/scraper/highlevel/schemas.d.ts.map +1 -0
  50. package/dist/scraper/highlevel/schemas.js +139 -0
  51. package/dist/scraper/highlevel/schemas.js.map +1 -0
  52. package/dist/scraper/navigator.d.ts +14 -11
  53. package/dist/scraper/navigator.d.ts.map +1 -1
  54. package/dist/scraper/navigator.js +61 -104
  55. package/dist/scraper/navigator.js.map +1 -1
  56. package/dist/scraper/schemas.d.ts +57 -0
  57. package/dist/scraper/schemas.d.ts.map +1 -0
  58. package/dist/scraper/schemas.js +135 -0
  59. package/dist/scraper/schemas.js.map +1 -0
  60. package/dist/scraper/videoInterceptor.d.ts +4 -0
  61. package/dist/scraper/videoInterceptor.d.ts.map +1 -1
  62. package/dist/scraper/videoInterceptor.js +66 -51
  63. package/dist/scraper/videoInterceptor.js.map +1 -1
  64. package/dist/shared/auth.d.ts +9 -9
  65. package/dist/shared/auth.d.ts.map +1 -1
  66. package/dist/shared/auth.js +24 -38
  67. package/dist/shared/auth.js.map +1 -1
  68. package/dist/shared/firebase.d.ts +60 -0
  69. package/dist/shared/firebase.d.ts.map +1 -0
  70. package/dist/shared/firebase.js +102 -0
  71. package/dist/shared/firebase.js.map +1 -0
  72. package/dist/shared/fs.d.ts.map +1 -1
  73. package/dist/shared/fs.js +4 -0
  74. package/dist/shared/fs.js.map +1 -1
  75. package/dist/shared/index.d.ts +3 -0
  76. package/dist/shared/index.d.ts.map +1 -1
  77. package/dist/shared/index.js +3 -0
  78. package/dist/shared/index.js.map +1 -1
  79. package/dist/shared/slug.d.ts +11 -0
  80. package/dist/shared/slug.d.ts.map +1 -0
  81. package/{src/shared/slug.ts → dist/shared/slug.js} +10 -11
  82. package/dist/shared/slug.js.map +1 -0
  83. package/dist/shared/url.d.ts +43 -0
  84. package/dist/shared/url.d.ts.map +1 -0
  85. package/{src/shared/url.ts → dist/shared/url.js} +12 -15
  86. package/dist/shared/url.js.map +1 -0
  87. package/dist/state/database.d.ts +1 -0
  88. package/dist/state/database.d.ts.map +1 -1
  89. package/dist/state/database.js +3 -0
  90. package/dist/state/database.js.map +1 -1
  91. package/dist/storage/fileSystem.d.ts +17 -17
  92. package/dist/storage/fileSystem.d.ts.map +1 -1
  93. package/dist/storage/fileSystem.js +39 -31
  94. package/dist/storage/fileSystem.js.map +1 -1
  95. package/package.json +5 -2
  96. package/.github/workflows/ci.yml +0 -50
  97. package/.husky/commit-msg +0 -2
  98. package/.husky/pre-commit +0 -1
  99. package/.husky/pre-push +0 -3
  100. package/.prettierrc +0 -8
  101. package/.release-it.json +0 -23
  102. package/ARCHITECTURE.md +0 -233
  103. package/CHANGELOG.md +0 -78
  104. package/commitlint.config.js +0 -4
  105. package/dist/ai/openRouter.d.ts +0 -47
  106. package/dist/ai/openRouter.d.ts.map +0 -1
  107. package/dist/ai/openRouter.js +0 -116
  108. package/dist/ai/openRouter.js.map +0 -1
  109. package/dist/ai/transcriptPolisher.d.ts +0 -24
  110. package/dist/ai/transcriptPolisher.d.ts.map +0 -1
  111. package/dist/ai/transcriptPolisher.js +0 -89
  112. package/dist/ai/transcriptPolisher.js.map +0 -1
  113. package/dist/cli/commands/enrich.d.ts +0 -14
  114. package/dist/cli/commands/enrich.d.ts.map +0 -1
  115. package/dist/cli/commands/enrich.js +0 -271
  116. package/dist/cli/commands/enrich.js.map +0 -1
  117. package/dist/cli/commands/syncGhl.d.ts +0 -20
  118. package/dist/cli/commands/syncGhl.d.ts.map +0 -1
  119. package/dist/cli/commands/syncGhl.js +0 -483
  120. package/dist/cli/commands/syncGhl.js.map +0 -1
  121. package/dist/cli/commands/syncHighLevel.test.d.ts +0 -2
  122. package/dist/cli/commands/syncHighLevel.test.d.ts.map +0 -1
  123. package/dist/cli/commands/syncHighLevel.test.js +0 -102
  124. package/dist/cli/commands/syncHighLevel.test.js.map +0 -1
  125. package/dist/config/paths.test.d.ts +0 -2
  126. package/dist/config/paths.test.d.ts.map +0 -1
  127. package/dist/config/paths.test.js +0 -70
  128. package/dist/config/paths.test.js.map +0 -1
  129. package/dist/config/schema.test.d.ts +0 -2
  130. package/dist/config/schema.test.d.ts.map +0 -1
  131. package/dist/config/schema.test.js +0 -151
  132. package/dist/config/schema.test.js.map +0 -1
  133. package/dist/downloader/hlsDownloader.test.d.ts +0 -2
  134. package/dist/downloader/hlsDownloader.test.d.ts.map +0 -1
  135. package/dist/downloader/hlsDownloader.test.js +0 -116
  136. package/dist/downloader/hlsDownloader.test.js.map +0 -1
  137. package/dist/downloader/loomDownloader.test.d.ts +0 -2
  138. package/dist/downloader/loomDownloader.test.d.ts.map +0 -1
  139. package/dist/downloader/loomDownloader.test.js +0 -36
  140. package/dist/downloader/loomDownloader.test.js.map +0 -1
  141. package/dist/downloader/queue.test.d.ts +0 -2
  142. package/dist/downloader/queue.test.d.ts.map +0 -1
  143. package/dist/downloader/queue.test.js +0 -158
  144. package/dist/downloader/queue.test.js.map +0 -1
  145. package/dist/downloader/videoDownloader.d.ts +0 -32
  146. package/dist/downloader/videoDownloader.d.ts.map +0 -1
  147. package/dist/downloader/videoDownloader.js +0 -173
  148. package/dist/downloader/videoDownloader.js.map +0 -1
  149. package/dist/downloader/vimeoDownloader.test.d.ts +0 -2
  150. package/dist/downloader/vimeoDownloader.test.d.ts.map +0 -1
  151. package/dist/downloader/vimeoDownloader.test.js +0 -51
  152. package/dist/downloader/vimeoDownloader.test.js.map +0 -1
  153. package/dist/scraper/auth.d.ts +0 -29
  154. package/dist/scraper/auth.d.ts.map +0 -1
  155. package/dist/scraper/auth.js +0 -115
  156. package/dist/scraper/auth.js.map +0 -1
  157. package/dist/scraper/extractor.test.d.ts +0 -2
  158. package/dist/scraper/extractor.test.d.ts.map +0 -1
  159. package/dist/scraper/extractor.test.js +0 -65
  160. package/dist/scraper/extractor.test.js.map +0 -1
  161. package/dist/scraper/ghl/auth.d.ts +0 -25
  162. package/dist/scraper/ghl/auth.d.ts.map +0 -1
  163. package/dist/scraper/ghl/auth.js +0 -187
  164. package/dist/scraper/ghl/auth.js.map +0 -1
  165. package/dist/scraper/ghl/extractor.d.ts +0 -96
  166. package/dist/scraper/ghl/extractor.d.ts.map +0 -1
  167. package/dist/scraper/ghl/extractor.js +0 -345
  168. package/dist/scraper/ghl/extractor.js.map +0 -1
  169. package/dist/scraper/ghl/index.d.ts +0 -4
  170. package/dist/scraper/ghl/index.d.ts.map +0 -1
  171. package/dist/scraper/ghl/index.js +0 -4
  172. package/dist/scraper/ghl/index.js.map +0 -1
  173. package/dist/scraper/ghl/navigator.d.ts +0 -93
  174. package/dist/scraper/ghl/navigator.d.ts.map +0 -1
  175. package/dist/scraper/ghl/navigator.js +0 -447
  176. package/dist/scraper/ghl/navigator.js.map +0 -1
  177. package/dist/scraper/highlevel/auth.d.ts +0 -25
  178. package/dist/scraper/highlevel/auth.d.ts.map +0 -1
  179. package/dist/scraper/highlevel/auth.js +0 -189
  180. package/dist/scraper/highlevel/auth.js.map +0 -1
  181. package/dist/scraper/highlevel/extractor.test.d.ts +0 -2
  182. package/dist/scraper/highlevel/extractor.test.d.ts.map +0 -1
  183. package/dist/scraper/highlevel/extractor.test.js +0 -101
  184. package/dist/scraper/highlevel/extractor.test.js.map +0 -1
  185. package/dist/scraper/highlevel/navigator.test.d.ts +0 -2
  186. package/dist/scraper/highlevel/navigator.test.d.ts.map +0 -1
  187. package/dist/scraper/highlevel/navigator.test.js +0 -78
  188. package/dist/scraper/highlevel/navigator.test.js.map +0 -1
  189. package/dist/scraper/navigator.test.d.ts +0 -2
  190. package/dist/scraper/navigator.test.d.ts.map +0 -1
  191. package/dist/scraper/navigator.test.js +0 -63
  192. package/dist/scraper/navigator.test.js.map +0 -1
  193. package/dist/scraper/skoolApi.d.ts +0 -17
  194. package/dist/scraper/skoolApi.d.ts.map +0 -1
  195. package/dist/scraper/skoolApi.js +0 -72
  196. package/dist/scraper/skoolApi.js.map +0 -1
  197. package/dist/state/database.test.d.ts +0 -2
  198. package/dist/state/database.test.d.ts.map +0 -1
  199. package/dist/state/database.test.js +0 -34
  200. package/dist/state/database.test.js.map +0 -1
  201. package/dist/transcription/whisperService.d.ts +0 -27
  202. package/dist/transcription/whisperService.d.ts.map +0 -1
  203. package/dist/transcription/whisperService.js +0 -102
  204. package/dist/transcription/whisperService.js.map +0 -1
  205. package/eslint.config.js +0 -55
  206. package/src/__fixtures__/highlevel-post-response.json +0 -68
  207. package/src/__fixtures__/hls-master-playlist.m3u8 +0 -24
  208. package/src/cli/commands/__snapshots__/syncHighLevel.test.ts.snap +0 -38
  209. package/src/cli/commands/config.ts +0 -74
  210. package/src/cli/commands/inspect.ts +0 -441
  211. package/src/cli/commands/login.ts +0 -68
  212. package/src/cli/commands/status.ts +0 -147
  213. package/src/cli/commands/sync.ts +0 -1235
  214. package/src/cli/commands/syncHighLevel.test.ts +0 -144
  215. package/src/cli/commands/syncHighLevel.ts +0 -639
  216. package/src/cli/index.ts +0 -121
  217. package/src/config/configManager.ts +0 -75
  218. package/src/config/paths.test.ts +0 -83
  219. package/src/config/paths.ts +0 -36
  220. package/src/config/schema.test.ts +0 -173
  221. package/src/config/schema.ts +0 -65
  222. package/src/downloader/hlsDownloader.test.ts +0 -148
  223. package/src/downloader/hlsDownloader.ts +0 -327
  224. package/src/downloader/hlsValidator.ts +0 -196
  225. package/src/downloader/index.ts +0 -122
  226. package/src/downloader/loomDownloader.test.ts +0 -43
  227. package/src/downloader/loomDownloader.ts +0 -742
  228. package/src/downloader/queue.test.ts +0 -199
  229. package/src/downloader/queue.ts +0 -118
  230. package/src/downloader/vimeoDownloader.test.ts +0 -62
  231. package/src/downloader/vimeoDownloader.ts +0 -722
  232. package/src/scraper/extractor.test.ts +0 -124
  233. package/src/scraper/extractor.ts +0 -757
  234. package/src/scraper/highlevel/__snapshots__/extractor.test.ts.snap +0 -41
  235. package/src/scraper/highlevel/extractor.test.ts +0 -134
  236. package/src/scraper/highlevel/extractor.ts +0 -537
  237. package/src/scraper/highlevel/index.ts +0 -2
  238. package/src/scraper/highlevel/navigator.test.ts +0 -110
  239. package/src/scraper/highlevel/navigator.ts +0 -668
  240. package/src/scraper/highlevel/schemas.ts +0 -183
  241. package/src/scraper/navigator.test.ts +0 -122
  242. package/src/scraper/navigator.ts +0 -355
  243. package/src/scraper/schemas.ts +0 -177
  244. package/src/scraper/videoInterceptor.ts +0 -435
  245. package/src/shared/auth.test.ts +0 -58
  246. package/src/shared/auth.ts +0 -251
  247. package/src/shared/firebase.ts +0 -151
  248. package/src/shared/fs.ts +0 -80
  249. package/src/shared/http.ts +0 -34
  250. package/src/shared/index.ts +0 -6
  251. package/src/shared/url.test.ts +0 -122
  252. package/src/state/database.test.ts +0 -49
  253. package/src/state/database.ts +0 -919
  254. package/src/state/index.ts +0 -14
  255. package/src/storage/fileSystem.test.ts +0 -64
  256. package/src/storage/fileSystem.ts +0 -175
  257. package/tsconfig.json +0 -28
  258. package/vitest.config.ts +0 -29
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Zod schemas for Skool/Next.js __NEXT_DATA__ responses.
3
+ * These validate only the fields we actually use, ignoring everything else.
4
+ */
5
+ import { z } from "zod";
6
+ // ============================================================================
7
+ // Skool Course Child (Module/Lesson)
8
+ // ============================================================================
9
+ const CourseMetadataSchema = z.looseObject({
10
+ title: z.string().optional(),
11
+ videoLink: z.string().optional(),
12
+ });
13
+ const CourseInfoSchema = z.looseObject({
14
+ id: z.string().optional(),
15
+ name: z.string().optional(), // 8-char hex slug
16
+ metadata: CourseMetadataSchema.optional(),
17
+ });
18
+ const CourseChildSchema = z.looseObject({
19
+ course: CourseInfoSchema.optional(),
20
+ hasAccess: z.boolean().optional(),
21
+ });
22
+ // ============================================================================
23
+ // Skool __NEXT_DATA__ PageProps
24
+ // ============================================================================
25
+ const SkoolCourseSchema = z.looseObject({
26
+ children: z.array(CourseChildSchema).optional(),
27
+ });
28
+ const SkoolPagePropsSchema = z.looseObject({
29
+ course: SkoolCourseSchema.optional(),
30
+ selectedModule: z.string().optional(),
31
+ });
32
+ export const SkoolNextDataSchema = z.looseObject({
33
+ props: z
34
+ .looseObject({
35
+ pageProps: SkoolPagePropsSchema.optional(),
36
+ })
37
+ .optional(),
38
+ });
39
+ // ============================================================================
40
+ // Helper Functions
41
+ // ============================================================================
42
+ /**
43
+ * Safely parses __NEXT_DATA__ JSON from a script element.
44
+ * Returns null if parsing fails.
45
+ */
46
+ export function parseNextData(json) {
47
+ try {
48
+ const data = JSON.parse(json);
49
+ const result = SkoolNextDataSchema.safeParse(data);
50
+ if (result.success) {
51
+ return result.data;
52
+ }
53
+ console.warn("[parseNextData] Validation failed:", z.treeifyError(result.error));
54
+ return null;
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ }
60
+ /**
61
+ * Extracts modules from parsed __NEXT_DATA__.
62
+ */
63
+ export function extractModulesFromNextData(data) {
64
+ const children = data.props?.pageProps?.course?.children;
65
+ if (!Array.isArray(children))
66
+ return [];
67
+ const modules = [];
68
+ const seen = new Set();
69
+ for (const child of children) {
70
+ const course = child.course;
71
+ if (!course?.name)
72
+ continue;
73
+ // Skool module slugs are 8-char hex strings
74
+ if (!/^[a-f0-9]{8}$/.test(course.name))
75
+ continue;
76
+ if (seen.has(course.name))
77
+ continue;
78
+ seen.add(course.name);
79
+ modules.push({
80
+ slug: course.name,
81
+ title: course.metadata?.title ?? `Module ${modules.length + 1}`,
82
+ hasAccess: child.hasAccess !== false,
83
+ });
84
+ }
85
+ return modules;
86
+ }
87
+ /**
88
+ * Extracts lesson access info from parsed __NEXT_DATA__.
89
+ */
90
+ export function extractLessonAccessFromNextData(data) {
91
+ const accessMap = new Map();
92
+ const children = data.props?.pageProps?.course?.children;
93
+ if (!Array.isArray(children))
94
+ return accessMap;
95
+ for (const child of children) {
96
+ const id = child.course?.id;
97
+ const hasAccess = child.hasAccess;
98
+ if (id && typeof hasAccess === "boolean") {
99
+ accessMap.set(id, hasAccess);
100
+ }
101
+ }
102
+ return accessMap;
103
+ }
104
+ /**
105
+ * Extracts video URL from parsed __NEXT_DATA__ for a specific module.
106
+ */
107
+ export function extractVideoFromNextData(data, selectedModuleId) {
108
+ const children = data.props?.pageProps?.course?.children;
109
+ if (!Array.isArray(children))
110
+ return null;
111
+ for (const child of children) {
112
+ if (child.course?.id === selectedModuleId) {
113
+ const videoLink = child.course.metadata?.videoLink;
114
+ if (!videoLink)
115
+ return null;
116
+ // Determine video type
117
+ if (videoLink.includes("loom.com")) {
118
+ const embedUrl = videoLink.replace("/share/", "/embed/").split("?")[0];
119
+ return { url: embedUrl ?? videoLink, type: "loom" };
120
+ }
121
+ if (videoLink.includes("vimeo.com")) {
122
+ return { url: videoLink, type: "vimeo" };
123
+ }
124
+ if (videoLink.includes("youtube.com") || videoLink.includes("youtu.be")) {
125
+ return { url: videoLink, type: "youtube" };
126
+ }
127
+ if (videoLink.includes("wistia")) {
128
+ return { url: videoLink, type: "wistia" };
129
+ }
130
+ return { url: videoLink, type: "unknown" };
131
+ }
132
+ }
133
+ return null;
134
+ }
135
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/scraper/schemas.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Browser-based video URL interception - requires Playwright.
3
+ * Excluded from coverage via vitest.config.ts.
4
+ */
1
5
  import type { Page } from "playwright";
2
6
  /**
3
7
  * Captures Vimeo video URL by extracting it from the running player.
@@ -1 +1 @@
1
- {"version":3,"file":"videoInterceptor.d.ts","sourceRoot":"","sources":["../../src/scraper/videoInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAQ,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0MnF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,SAAS,SAAQ,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsIpD"}
1
+ {"version":3,"file":"videoInterceptor.d.ts","sourceRoot":"","sources":["../../src/scraper/videoInterceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAsDvC;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAQ,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqNnF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,EACf,SAAS,SAAQ,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiJpD"}
@@ -28,31 +28,37 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
28
28
  return { hlsUrl: null, progressiveUrl: null, error: "Vimeo iframe not found after waiting" };
29
29
  }
30
30
  // Step 3: Mute the video before playing (we don't want audio!)
31
- await vimeoFrame.evaluate(() => {
32
- const video = document.querySelector('video');
31
+ await vimeoFrame
32
+ .evaluate(() => {
33
+ const video = document.querySelector("video");
33
34
  if (video) {
34
35
  video.muted = true;
35
36
  video.volume = 0;
36
37
  }
37
- }).catch(() => { });
38
+ })
39
+ .catch(() => { });
38
40
  // Step 4: Click play button in the iframe to start video
39
41
  try {
40
42
  // Multiple selectors for Vimeo's play button
41
- await vimeoFrame.click('.vp-controls button, .play-icon, [aria-label="Play"], .vp-big-play-button, button', {
42
- timeout: 2000
43
- }).catch(() => { });
43
+ await vimeoFrame
44
+ .click('.vp-controls button, .play-icon, [aria-label="Play"], .vp-big-play-button, button', {
45
+ timeout: 2000,
46
+ })
47
+ .catch(() => { });
44
48
  }
45
49
  catch {
46
50
  // Video might auto-play
47
51
  }
48
52
  // Ensure video stays muted
49
- await vimeoFrame.evaluate(() => {
50
- const video = document.querySelector('video');
53
+ await vimeoFrame
54
+ .evaluate(() => {
55
+ const video = document.querySelector("video");
51
56
  if (video) {
52
57
  video.muted = true;
53
58
  video.volume = 0;
54
59
  }
55
- }).catch(() => { });
60
+ })
61
+ .catch(() => { });
56
62
  // Step 4: Wait for video to actually start playing and get the URL
57
63
  let hlsUrl = null;
58
64
  let progressiveUrl = null;
@@ -62,43 +68,43 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
62
68
  const result = {
63
69
  hlsUrl: null,
64
70
  progressiveUrl: null,
65
- debug: []
71
+ debug: [],
66
72
  };
67
73
  // Method 1: Get URL directly from video element
68
- const video = document.querySelector('video');
74
+ const video = document.querySelector("video");
69
75
  if (video) {
70
76
  result.debug.push(`Video element found, src length: ${video.src?.length ?? 0}`);
71
77
  // Check currentSrc (what's actually playing)
72
78
  if (video.currentSrc) {
73
79
  result.debug.push(`currentSrc: ${video.currentSrc.substring(0, 80)}`);
74
- if (video.currentSrc.includes('.m3u8')) {
80
+ if (video.currentSrc.includes(".m3u8")) {
75
81
  result.hlsUrl = video.currentSrc;
76
82
  }
77
- else if (video.currentSrc.includes('.mp4')) {
83
+ else if (video.currentSrc.includes(".mp4")) {
78
84
  result.progressiveUrl = video.currentSrc;
79
85
  }
80
86
  }
81
87
  // Also check src attribute
82
88
  if (!result.hlsUrl && !result.progressiveUrl && video.src) {
83
- if (video.src.includes('.m3u8')) {
89
+ if (video.src.includes(".m3u8")) {
84
90
  result.hlsUrl = video.src;
85
91
  }
86
- else if (video.src.includes('.mp4')) {
92
+ else if (video.src.includes(".mp4")) {
87
93
  result.progressiveUrl = video.src;
88
94
  }
89
95
  }
90
96
  }
91
97
  // Method 2: Check source elements
92
98
  if (!result.hlsUrl && !result.progressiveUrl) {
93
- const sources = document.querySelectorAll('video source');
99
+ const sources = document.querySelectorAll("video source");
94
100
  result.debug.push(`Found ${sources.length} source elements`);
95
101
  for (const source of Array.from(sources)) {
96
102
  const src = source.src;
97
- if (src?.includes('.m3u8')) {
103
+ if (src?.includes(".m3u8")) {
98
104
  result.hlsUrl = src;
99
105
  break;
100
106
  }
101
- else if (src?.includes('.mp4') && !result.progressiveUrl) {
107
+ else if (src?.includes(".mp4") && !result.progressiveUrl) {
102
108
  result.progressiveUrl = src;
103
109
  }
104
110
  }
@@ -120,19 +126,20 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
120
126
  if (files.hls?.cdns) {
121
127
  const cdns = files.hls.cdns;
122
128
  for (const cdn of Object.keys(cdns)) {
123
- if (cdns[cdn]?.url) {
124
- result.hlsUrl = cdns[cdn].url;
129
+ const cdnEntry = cdns[cdn];
130
+ if (cdnEntry?.url) {
131
+ result.hlsUrl = cdnEntry.url;
125
132
  result.debug.push(`Found HLS in playerConfig.${cdn}`);
126
133
  break;
127
134
  }
128
135
  }
129
136
  }
130
137
  // Progressive MP4
131
- if (!result.progressiveUrl && files.progressive?.length > 0) {
138
+ if (!result.progressiveUrl && files.progressive && files.progressive.length > 0) {
132
139
  const sorted = [...files.progressive].sort((a, b) => (b.height ?? 0) - (a.height ?? 0));
133
140
  result.progressiveUrl = sorted[0]?.url ?? null;
134
141
  if (result.progressiveUrl) {
135
- result.debug.push('Found progressive in playerConfig');
142
+ result.debug.push("Found progressive in playerConfig");
136
143
  }
137
144
  }
138
145
  if (result.hlsUrl || result.progressiveUrl)
@@ -140,18 +147,18 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
140
147
  }
141
148
  }
142
149
  catch (e) {
143
- result.debug.push(`Config extraction error: ${e}`);
150
+ result.debug.push(`Config extraction error: ${e instanceof Error ? e.message : String(e)}`);
144
151
  }
145
152
  }
146
153
  // Method 4: Network request URLs might be in DOM attributes
147
154
  if (!result.hlsUrl && !result.progressiveUrl) {
148
- const allElements = document.querySelectorAll('*');
155
+ const allElements = document.querySelectorAll("*");
149
156
  for (const el of Array.from(allElements)) {
150
157
  for (const attr of Array.from(el.attributes)) {
151
- if (attr.value.includes('vimeocdn.com') && attr.value.includes('.m3u8')) {
152
- result.hlsUrl = (/https:\/\/[^\s"']+\.m3u8[^\s"']*/.exec(attr.value))?.[0] ?? null;
158
+ if (attr.value.includes("vimeocdn.com") && attr.value.includes(".m3u8")) {
159
+ result.hlsUrl = /https:\/\/[^\s"']+\.m3u8[^\s"']*/.exec(attr.value)?.[0] ?? null;
153
160
  if (result.hlsUrl) {
154
- result.debug.push('Found HLS in element attribute');
161
+ result.debug.push("Found HLS in element attribute");
155
162
  break;
156
163
  }
157
164
  }
@@ -166,7 +173,7 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
166
173
  progressiveUrl = urls.progressiveUrl;
167
174
  if (!hlsUrl && !progressiveUrl) {
168
175
  // Wait and try again
169
- await new Promise(r => setTimeout(r, 1000));
176
+ await new Promise((r) => setTimeout(r, 1000));
170
177
  }
171
178
  }
172
179
  if (hlsUrl || progressiveUrl) {
@@ -175,14 +182,14 @@ export async function captureVimeoConfig(page, _videoId, timeoutMs = 20000) {
175
182
  return {
176
183
  hlsUrl: null,
177
184
  progressiveUrl: null,
178
- error: "Could not extract video URL from Vimeo player"
185
+ error: "Could not extract video URL from Vimeo player",
179
186
  };
180
187
  }
181
188
  catch (error) {
182
189
  return {
183
190
  hlsUrl: null,
184
191
  progressiveUrl: null,
185
- error: `Vimeo extraction failed: ${error}`,
192
+ error: `Vimeo extraction failed: ${error instanceof Error ? error.message : String(error)}`,
186
193
  };
187
194
  }
188
195
  }
@@ -196,16 +203,18 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
196
203
  try {
197
204
  // Use CDP to intercept network responses
198
205
  const client = await page.context().newCDPSession(page);
199
- await client.send('Network.enable');
206
+ await client.send("Network.enable");
200
207
  // Match HLS playlists from Loom's CDN
201
208
  // Prefer master playlist (playlist.m3u8) over media playlists (mediaplaylist-*.m3u8)
202
209
  const masterPattern = /luna\.loom\.com.*\/playlist\.m3u8/;
203
210
  const anyHlsPattern = /luna\.loom\.com.*\.m3u8/;
204
211
  // Set up listener before navigation
205
212
  const responsePromise = new Promise((resolve) => {
206
- const timeout = setTimeout(() => { resolve(); }, timeoutMs);
213
+ const timeout = setTimeout(() => {
214
+ resolve();
215
+ }, timeoutMs);
207
216
  let hasMasterPlaylist = false;
208
- client.on('Network.responseReceived', (event) => {
217
+ client.on("Network.responseReceived", (event) => {
209
218
  const url = event.response.url;
210
219
  // Always prefer master playlist
211
220
  if (masterPattern.test(url)) {
@@ -222,28 +231,32 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
222
231
  });
223
232
  // Navigate directly to Loom embed with autoplay (muted)
224
233
  const embedUrl = `https://www.loom.com/embed/${videoId}?autoplay=1`;
225
- await page.goto(embedUrl, { waitUntil: 'domcontentloaded', timeout: 10000 });
234
+ await page.goto(embedUrl, { waitUntil: "domcontentloaded", timeout: 10000 });
226
235
  // Mute the video immediately
227
- await page.evaluate(() => {
228
- const video = document.querySelector('video');
236
+ await page
237
+ .evaluate(() => {
238
+ const video = document.querySelector("video");
229
239
  if (video) {
230
240
  video.muted = true;
231
241
  video.volume = 0;
232
242
  }
233
- }).catch(() => { });
243
+ })
244
+ .catch(() => { });
234
245
  // Try to click play button if video doesn't autoplay
235
246
  try {
236
247
  await page.waitForTimeout(2000);
237
248
  const playButton = await page.$('[data-testid="play-button"], .PlayButton, [aria-label="Play"], button[class*="play"]');
238
249
  if (playButton) {
239
250
  // Mute again before clicking play
240
- await page.evaluate(() => {
241
- const video = document.querySelector('video');
251
+ await page
252
+ .evaluate(() => {
253
+ const video = document.querySelector("video");
242
254
  if (video) {
243
255
  video.muted = true;
244
256
  video.volume = 0;
245
257
  }
246
- }).catch(() => { });
258
+ })
259
+ .catch(() => { });
247
260
  await playButton.click();
248
261
  }
249
262
  }
@@ -251,13 +264,15 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
251
264
  // No play button or click failed
252
265
  }
253
266
  // Ensure video stays muted after play
254
- await page.evaluate(() => {
255
- const video = document.querySelector('video');
267
+ await page
268
+ .evaluate(() => {
269
+ const video = document.querySelector("video");
256
270
  if (video) {
257
271
  video.muted = true;
258
272
  video.volume = 0;
259
273
  }
260
- }).catch(() => { });
274
+ })
275
+ .catch(() => { });
261
276
  // Wait for HLS to be captured
262
277
  await responsePromise;
263
278
  // Also try to extract from page JS if not found via network
@@ -269,7 +284,7 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
269
284
  return win.__LOOM_SSR_STATE__.video.asset_urls.hls_url;
270
285
  }
271
286
  // Check for Next.js data
272
- const nextData = document.getElementById('__NEXT_DATA__');
287
+ const nextData = document.getElementById("__NEXT_DATA__");
273
288
  if (nextData?.textContent) {
274
289
  try {
275
290
  const data = JSON.parse(nextData.textContent);
@@ -281,12 +296,14 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
281
296
  if (videoData?.[1])
282
297
  return videoData[1];
283
298
  }
284
- catch { /* ignore parse errors */ }
299
+ catch {
300
+ /* ignore parse errors */
301
+ }
285
302
  }
286
303
  // Scan scripts for HLS URL
287
- const scripts = Array.from(document.querySelectorAll('script'));
304
+ const scripts = Array.from(document.querySelectorAll("script"));
288
305
  for (const script of scripts) {
289
- const match = /https:\/\/luna\.loom\.com[^"'\s]+\.m3u8[^"'\s]*/.exec(script.textContent);
306
+ const match = /https:\/\/luna\.loom\.com[^"'\s]+\.m3u8[^"'\s]*/.exec(script.textContent ?? "");
290
307
  if (match)
291
308
  return match[0];
292
309
  }
@@ -303,13 +320,11 @@ export async function captureLoomHls(page, videoId, timeoutMs = 15000) {
303
320
  }
304
321
  // Navigate back to original page
305
322
  try {
306
- await page.goto(originalUrl, { waitUntil: 'domcontentloaded', timeout: 10000 });
323
+ await page.goto(originalUrl, { waitUntil: "domcontentloaded", timeout: 10000 });
307
324
  }
308
325
  catch {
309
326
  // Failed to navigate back
310
327
  }
311
- return capturedUrl
312
- ? { hlsUrl: capturedUrl }
313
- : { hlsUrl: null, error: "HLS URL not captured" };
328
+ return capturedUrl ? { hlsUrl: capturedUrl } : { hlsUrl: null, error: "HLS URL not captured" };
314
329
  }
315
330
  //# sourceMappingURL=videoInterceptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"videoInterceptor.js","sourceRoot":"","sources":["../../src/scraper/videoInterceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"videoInterceptor.js","sourceRoot":"","sources":["../../src/scraper/videoInterceptor.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,14 @@ export interface AuthConfig {
19
19
  * Creates a login page checker from patterns.
20
20
  */
21
21
  export declare function createLoginChecker(patterns?: RegExp[]): (url: string) => boolean;
22
+ /**
23
+ * Skool-specific login page checker.
24
+ */
25
+ export declare const isSkoolLoginPage: (url: string) => boolean;
26
+ /**
27
+ * HighLevel-specific login page checker.
28
+ */
29
+ export declare const isHighLevelLoginPage: (url: string) => boolean;
22
30
  /**
23
31
  * Checks if a valid session exists for the given domain.
24
32
  */
@@ -46,13 +54,5 @@ export declare function clearSession(domain: string): Promise<boolean>;
46
54
  * Checks if the page has a valid Firebase auth token.
47
55
  * Used by HighLevel/GoHighLevel portals.
48
56
  */
49
- export declare function hasValidFirebaseToken(page: Page): Promise<boolean>;
50
- /**
51
- * Skool-specific login page checker.
52
- */
53
- export declare const isSkoolLoginPage: (url: string) => boolean;
54
- /**
55
- * HighLevel-specific login page checker.
56
- */
57
- export declare const isHighLevelLoginPage: (url: string) => boolean;
57
+ export { hasValidFirebaseToken } from "./firebase.js";
58
58
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKhE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,qEAAqE;IACrE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,GAAE,MAAM,EAA2B,GAC1C,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAE1B;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAyBD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAoDtF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CAwErD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnE;AAMD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBxE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,QApNpB,MAAM,KAAK,OAoNoE,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAzNxB,MAAM,KAAK,OAgOlB,CAAC"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAKhE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,UAAU;IACzB,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,qEAAqE;IACrE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAcD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,GAAE,MAAM,EAA2B,GAC1C,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAE1B;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAPpB,MAAM,KAAK,OAOoE,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAZxB,MAAM,KAAK,OAmBlB,CAAC;AAOH;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGtE;AAyBD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAoDtF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACzD,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CAwErD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnE;AAED;;;GAGG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
@@ -18,6 +18,25 @@ const DEFAULT_LOGIN_PATTERNS = [
18
18
  export function createLoginChecker(patterns = DEFAULT_LOGIN_PATTERNS) {
19
19
  return (url) => patterns.some((p) => p.test(url));
20
20
  }
21
+ /**
22
+ * Skool-specific login page checker.
23
+ */
24
+ export const isSkoolLoginPage = createLoginChecker([/\/login/, /accounts\.google\.com/]);
25
+ /**
26
+ * HighLevel-specific login page checker.
27
+ */
28
+ export const isHighLevelLoginPage = createLoginChecker([
29
+ /sso\.clientclub\.net/,
30
+ /\/login/,
31
+ /\/signin/,
32
+ /\/auth/,
33
+ /accounts\.google\.com/,
34
+ /firebaseapp\.com/,
35
+ ]);
36
+ // ============================================
37
+ // Browser automation - not unit testable
38
+ // ============================================
39
+ /* v8 ignore start */
21
40
  /**
22
41
  * Checks if a valid session exists for the given domain.
23
42
  */
@@ -30,12 +49,12 @@ export async function hasValidSession(domain) {
30
49
  */
31
50
  async function loadSession(browser, domain) {
32
51
  const sessionPath = getSessionPath(domain);
52
+ // Playwright's storageState type is complex, we load it as-is from JSON
33
53
  const storageState = await readJson(sessionPath);
34
54
  if (!storageState) {
35
55
  throw new Error("Session file not found or invalid");
36
56
  }
37
- // Cast to any since Playwright's storageState type is complex
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any
39
58
  return browser.newContext({ storageState: storageState });
40
59
  }
41
60
  /**
@@ -168,44 +187,11 @@ export async function clearSession(domain) {
168
187
  const sessionPath = getSessionPath(domain);
169
188
  return removeFile(sessionPath);
170
189
  }
171
- // ============================================
172
- // Platform-specific helpers
173
- // ============================================
174
190
  /**
175
191
  * Checks if the page has a valid Firebase auth token.
176
192
  * Used by HighLevel/GoHighLevel portals.
177
193
  */
178
- export async function hasValidFirebaseToken(page) {
179
- try {
180
- return await page.evaluate(() => {
181
- const tokenKey = Object.keys(localStorage).find((k) => k.includes("firebase:authUser"));
182
- if (!tokenKey)
183
- return false;
184
- const tokenData = JSON.parse(localStorage.getItem(tokenKey) ?? "{}");
185
- const expirationTime = tokenData?.stsTokenManager?.expirationTime;
186
- if (expirationTime) {
187
- return Date.now() < expirationTime;
188
- }
189
- return !!tokenData?.stsTokenManager?.accessToken;
190
- });
191
- }
192
- catch {
193
- return false;
194
- }
195
- }
196
- /**
197
- * Skool-specific login page checker.
198
- */
199
- export const isSkoolLoginPage = createLoginChecker([/\/login/, /accounts\.google\.com/]);
200
- /**
201
- * HighLevel-specific login page checker.
202
- */
203
- export const isHighLevelLoginPage = createLoginChecker([
204
- /sso\.clientclub\.net/,
205
- /\/login/,
206
- /\/signin/,
207
- /\/auth/,
208
- /accounts\.google\.com/,
209
- /firebaseapp\.com/,
210
- ]);
194
+ // Re-export Firebase auth utilities (used by multiple platforms)
195
+ export { hasValidFirebaseToken } from "./firebase.js";
196
+ /* v8 ignore stop */
211
197
  //# sourceMappingURL=auth.js.map