offcourse 1.0.0 → 1.1.0
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.
- package/README.md +107 -8
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/inspect.js +1 -1
- package/dist/cli/commands/inspect.js.map +1 -1
- package/dist/cli/commands/sync.d.ts +1 -2
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +17 -15
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/syncHighLevel.d.ts +1 -2
- package/dist/cli/commands/syncHighLevel.d.ts.map +1 -1
- package/dist/cli/commands/syncHighLevel.js +8 -9
- package/dist/cli/commands/syncHighLevel.js.map +1 -1
- package/dist/cli/commands/syncLearningSuite.d.ts +35 -0
- package/dist/cli/commands/syncLearningSuite.d.ts.map +1 -0
- package/dist/cli/commands/syncLearningSuite.js +765 -0
- package/dist/cli/commands/syncLearningSuite.js.map +1 -0
- package/dist/cli/index.js +39 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/configManager.d.ts.map +1 -1
- package/dist/config/configManager.js +4 -0
- package/dist/config/configManager.js.map +1 -1
- package/dist/downloader/hlsDownloader.d.ts +10 -4
- package/dist/downloader/hlsDownloader.d.ts.map +1 -1
- package/dist/downloader/hlsDownloader.js +60 -29
- package/dist/downloader/hlsDownloader.js.map +1 -1
- package/dist/downloader/hlsValidator.d.ts.map +1 -1
- package/dist/downloader/hlsValidator.js +6 -2
- package/dist/downloader/hlsValidator.js.map +1 -1
- package/dist/downloader/index.d.ts +7 -0
- package/dist/downloader/index.d.ts.map +1 -1
- package/dist/downloader/index.js +9 -6
- package/dist/downloader/index.js.map +1 -1
- package/dist/downloader/loomDownloader.d.ts +1 -1
- package/dist/downloader/loomDownloader.d.ts.map +1 -1
- package/dist/downloader/loomDownloader.js +32 -27
- package/dist/downloader/loomDownloader.js.map +1 -1
- package/dist/downloader/queue.d.ts +4 -4
- package/dist/downloader/queue.d.ts.map +1 -1
- package/dist/downloader/queue.js.map +1 -1
- package/dist/downloader/vimeoDownloader.d.ts.map +1 -1
- package/dist/downloader/vimeoDownloader.js +7 -3
- package/dist/downloader/vimeoDownloader.js.map +1 -1
- package/dist/scraper/extractor.d.ts +4 -0
- package/dist/scraper/extractor.d.ts.map +1 -1
- package/dist/scraper/extractor.js +79 -79
- package/dist/scraper/extractor.js.map +1 -1
- package/dist/scraper/highlevel/extractor.d.ts +11 -19
- package/dist/scraper/highlevel/extractor.d.ts.map +1 -1
- package/dist/scraper/highlevel/extractor.js +72 -85
- package/dist/scraper/highlevel/extractor.js.map +1 -1
- package/dist/scraper/highlevel/navigator.d.ts +3 -10
- package/dist/scraper/highlevel/navigator.d.ts.map +1 -1
- package/dist/scraper/highlevel/navigator.js +140 -127
- package/dist/scraper/highlevel/navigator.js.map +1 -1
- package/dist/scraper/highlevel/schemas.d.ts +188 -0
- package/dist/scraper/highlevel/schemas.d.ts.map +1 -0
- package/dist/scraper/highlevel/schemas.js +139 -0
- package/dist/scraper/highlevel/schemas.js.map +1 -0
- package/dist/scraper/learningsuite/extractor.d.ts +50 -0
- package/dist/scraper/learningsuite/extractor.d.ts.map +1 -0
- package/dist/scraper/learningsuite/extractor.js +429 -0
- package/dist/scraper/learningsuite/extractor.js.map +1 -0
- package/dist/scraper/learningsuite/index.d.ts +4 -0
- package/dist/scraper/learningsuite/index.d.ts.map +1 -0
- package/dist/scraper/{ghl → learningsuite}/index.js +1 -1
- package/dist/scraper/learningsuite/index.js.map +1 -0
- package/dist/scraper/learningsuite/navigator.d.ts +122 -0
- package/dist/scraper/learningsuite/navigator.d.ts.map +1 -0
- package/dist/scraper/learningsuite/navigator.js +736 -0
- package/dist/scraper/learningsuite/navigator.js.map +1 -0
- package/dist/scraper/learningsuite/schemas.d.ts +270 -0
- package/dist/scraper/learningsuite/schemas.d.ts.map +1 -0
- package/dist/scraper/learningsuite/schemas.js +147 -0
- package/dist/scraper/learningsuite/schemas.js.map +1 -0
- package/dist/scraper/navigator.d.ts +14 -11
- package/dist/scraper/navigator.d.ts.map +1 -1
- package/dist/scraper/navigator.js +61 -104
- package/dist/scraper/navigator.js.map +1 -1
- package/dist/scraper/schemas.d.ts +57 -0
- package/dist/scraper/schemas.d.ts.map +1 -0
- package/dist/scraper/schemas.js +135 -0
- package/dist/scraper/schemas.js.map +1 -0
- package/dist/scraper/videoInterceptor.d.ts +4 -0
- package/dist/scraper/videoInterceptor.d.ts.map +1 -1
- package/dist/scraper/videoInterceptor.js +66 -51
- package/dist/scraper/videoInterceptor.js.map +1 -1
- package/dist/shared/auth.d.ts +9 -9
- package/dist/shared/auth.d.ts.map +1 -1
- package/dist/shared/auth.js +24 -38
- package/dist/shared/auth.js.map +1 -1
- package/dist/shared/firebase.d.ts +60 -0
- package/dist/shared/firebase.d.ts.map +1 -0
- package/dist/shared/firebase.js +102 -0
- package/dist/shared/firebase.js.map +1 -0
- package/dist/shared/fs.d.ts.map +1 -1
- package/dist/shared/fs.js +4 -0
- package/dist/shared/fs.js.map +1 -1
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +3 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/slug.d.ts +11 -0
- package/dist/shared/slug.d.ts.map +1 -0
- package/{src/shared/slug.ts → dist/shared/slug.js} +10 -11
- package/dist/shared/slug.js.map +1 -0
- package/dist/shared/url.d.ts +43 -0
- package/dist/shared/url.d.ts.map +1 -0
- package/{src/shared/url.ts → dist/shared/url.js} +12 -15
- package/dist/shared/url.js.map +1 -0
- package/dist/state/database.d.ts +1 -0
- package/dist/state/database.d.ts.map +1 -1
- package/dist/state/database.js +3 -0
- package/dist/state/database.js.map +1 -1
- package/dist/storage/fileSystem.d.ts +17 -17
- package/dist/storage/fileSystem.d.ts.map +1 -1
- package/dist/storage/fileSystem.js +39 -31
- package/dist/storage/fileSystem.js.map +1 -1
- package/package.json +5 -2
- package/.github/workflows/ci.yml +0 -50
- package/.husky/commit-msg +0 -2
- package/.husky/pre-commit +0 -1
- package/.husky/pre-push +0 -3
- package/.prettierrc +0 -8
- package/.release-it.json +0 -23
- package/ARCHITECTURE.md +0 -233
- package/CHANGELOG.md +0 -78
- package/commitlint.config.js +0 -4
- package/dist/ai/openRouter.d.ts +0 -47
- package/dist/ai/openRouter.d.ts.map +0 -1
- package/dist/ai/openRouter.js +0 -116
- package/dist/ai/openRouter.js.map +0 -1
- package/dist/ai/transcriptPolisher.d.ts +0 -24
- package/dist/ai/transcriptPolisher.d.ts.map +0 -1
- package/dist/ai/transcriptPolisher.js +0 -89
- package/dist/ai/transcriptPolisher.js.map +0 -1
- package/dist/cli/commands/enrich.d.ts +0 -14
- package/dist/cli/commands/enrich.d.ts.map +0 -1
- package/dist/cli/commands/enrich.js +0 -271
- package/dist/cli/commands/enrich.js.map +0 -1
- package/dist/cli/commands/syncGhl.d.ts +0 -20
- package/dist/cli/commands/syncGhl.d.ts.map +0 -1
- package/dist/cli/commands/syncGhl.js +0 -483
- package/dist/cli/commands/syncGhl.js.map +0 -1
- package/dist/cli/commands/syncHighLevel.test.d.ts +0 -2
- package/dist/cli/commands/syncHighLevel.test.d.ts.map +0 -1
- package/dist/cli/commands/syncHighLevel.test.js +0 -102
- package/dist/cli/commands/syncHighLevel.test.js.map +0 -1
- package/dist/config/paths.test.d.ts +0 -2
- package/dist/config/paths.test.d.ts.map +0 -1
- package/dist/config/paths.test.js +0 -70
- package/dist/config/paths.test.js.map +0 -1
- package/dist/config/schema.test.d.ts +0 -2
- package/dist/config/schema.test.d.ts.map +0 -1
- package/dist/config/schema.test.js +0 -151
- package/dist/config/schema.test.js.map +0 -1
- package/dist/downloader/hlsDownloader.test.d.ts +0 -2
- package/dist/downloader/hlsDownloader.test.d.ts.map +0 -1
- package/dist/downloader/hlsDownloader.test.js +0 -116
- package/dist/downloader/hlsDownloader.test.js.map +0 -1
- package/dist/downloader/loomDownloader.test.d.ts +0 -2
- package/dist/downloader/loomDownloader.test.d.ts.map +0 -1
- package/dist/downloader/loomDownloader.test.js +0 -36
- package/dist/downloader/loomDownloader.test.js.map +0 -1
- package/dist/downloader/queue.test.d.ts +0 -2
- package/dist/downloader/queue.test.d.ts.map +0 -1
- package/dist/downloader/queue.test.js +0 -158
- package/dist/downloader/queue.test.js.map +0 -1
- package/dist/downloader/videoDownloader.d.ts +0 -32
- package/dist/downloader/videoDownloader.d.ts.map +0 -1
- package/dist/downloader/videoDownloader.js +0 -173
- package/dist/downloader/videoDownloader.js.map +0 -1
- package/dist/downloader/vimeoDownloader.test.d.ts +0 -2
- package/dist/downloader/vimeoDownloader.test.d.ts.map +0 -1
- package/dist/downloader/vimeoDownloader.test.js +0 -51
- package/dist/downloader/vimeoDownloader.test.js.map +0 -1
- package/dist/scraper/auth.d.ts +0 -29
- package/dist/scraper/auth.d.ts.map +0 -1
- package/dist/scraper/auth.js +0 -115
- package/dist/scraper/auth.js.map +0 -1
- package/dist/scraper/extractor.test.d.ts +0 -2
- package/dist/scraper/extractor.test.d.ts.map +0 -1
- package/dist/scraper/extractor.test.js +0 -65
- package/dist/scraper/extractor.test.js.map +0 -1
- package/dist/scraper/ghl/auth.d.ts +0 -25
- package/dist/scraper/ghl/auth.d.ts.map +0 -1
- package/dist/scraper/ghl/auth.js +0 -187
- package/dist/scraper/ghl/auth.js.map +0 -1
- package/dist/scraper/ghl/extractor.d.ts +0 -96
- package/dist/scraper/ghl/extractor.d.ts.map +0 -1
- package/dist/scraper/ghl/extractor.js +0 -345
- package/dist/scraper/ghl/extractor.js.map +0 -1
- package/dist/scraper/ghl/index.d.ts +0 -4
- package/dist/scraper/ghl/index.d.ts.map +0 -1
- package/dist/scraper/ghl/index.js.map +0 -1
- package/dist/scraper/ghl/navigator.d.ts +0 -93
- package/dist/scraper/ghl/navigator.d.ts.map +0 -1
- package/dist/scraper/ghl/navigator.js +0 -447
- package/dist/scraper/ghl/navigator.js.map +0 -1
- package/dist/scraper/highlevel/auth.d.ts +0 -25
- package/dist/scraper/highlevel/auth.d.ts.map +0 -1
- package/dist/scraper/highlevel/auth.js +0 -189
- package/dist/scraper/highlevel/auth.js.map +0 -1
- package/dist/scraper/highlevel/extractor.test.d.ts +0 -2
- package/dist/scraper/highlevel/extractor.test.d.ts.map +0 -1
- package/dist/scraper/highlevel/extractor.test.js +0 -101
- package/dist/scraper/highlevel/extractor.test.js.map +0 -1
- package/dist/scraper/highlevel/navigator.test.d.ts +0 -2
- package/dist/scraper/highlevel/navigator.test.d.ts.map +0 -1
- package/dist/scraper/highlevel/navigator.test.js +0 -78
- package/dist/scraper/highlevel/navigator.test.js.map +0 -1
- package/dist/scraper/navigator.test.d.ts +0 -2
- package/dist/scraper/navigator.test.d.ts.map +0 -1
- package/dist/scraper/navigator.test.js +0 -63
- package/dist/scraper/navigator.test.js.map +0 -1
- package/dist/scraper/skoolApi.d.ts +0 -17
- package/dist/scraper/skoolApi.d.ts.map +0 -1
- package/dist/scraper/skoolApi.js +0 -72
- package/dist/scraper/skoolApi.js.map +0 -1
- package/dist/state/database.test.d.ts +0 -2
- package/dist/state/database.test.d.ts.map +0 -1
- package/dist/state/database.test.js +0 -34
- package/dist/state/database.test.js.map +0 -1
- package/dist/transcription/whisperService.d.ts +0 -27
- package/dist/transcription/whisperService.d.ts.map +0 -1
- package/dist/transcription/whisperService.js +0 -102
- package/dist/transcription/whisperService.js.map +0 -1
- package/eslint.config.js +0 -55
- package/src/__fixtures__/highlevel-post-response.json +0 -68
- package/src/__fixtures__/hls-master-playlist.m3u8 +0 -24
- package/src/cli/commands/__snapshots__/syncHighLevel.test.ts.snap +0 -38
- package/src/cli/commands/config.ts +0 -74
- package/src/cli/commands/inspect.ts +0 -441
- package/src/cli/commands/login.ts +0 -68
- package/src/cli/commands/status.ts +0 -147
- package/src/cli/commands/sync.ts +0 -1235
- package/src/cli/commands/syncHighLevel.test.ts +0 -144
- package/src/cli/commands/syncHighLevel.ts +0 -639
- package/src/cli/index.ts +0 -121
- package/src/config/configManager.ts +0 -75
- package/src/config/paths.test.ts +0 -83
- package/src/config/paths.ts +0 -36
- package/src/config/schema.test.ts +0 -173
- package/src/config/schema.ts +0 -65
- package/src/downloader/hlsDownloader.test.ts +0 -148
- package/src/downloader/hlsDownloader.ts +0 -327
- package/src/downloader/hlsValidator.ts +0 -196
- package/src/downloader/index.ts +0 -122
- package/src/downloader/loomDownloader.test.ts +0 -43
- package/src/downloader/loomDownloader.ts +0 -742
- package/src/downloader/queue.test.ts +0 -199
- package/src/downloader/queue.ts +0 -118
- package/src/downloader/vimeoDownloader.test.ts +0 -62
- package/src/downloader/vimeoDownloader.ts +0 -722
- package/src/scraper/extractor.test.ts +0 -124
- package/src/scraper/extractor.ts +0 -757
- package/src/scraper/highlevel/__snapshots__/extractor.test.ts.snap +0 -41
- package/src/scraper/highlevel/extractor.test.ts +0 -134
- package/src/scraper/highlevel/extractor.ts +0 -537
- package/src/scraper/highlevel/index.ts +0 -2
- package/src/scraper/highlevel/navigator.test.ts +0 -110
- package/src/scraper/highlevel/navigator.ts +0 -668
- package/src/scraper/highlevel/schemas.ts +0 -183
- package/src/scraper/navigator.test.ts +0 -122
- package/src/scraper/navigator.ts +0 -355
- package/src/scraper/schemas.ts +0 -177
- package/src/scraper/videoInterceptor.ts +0 -435
- package/src/shared/auth.test.ts +0 -58
- package/src/shared/auth.ts +0 -251
- package/src/shared/firebase.ts +0 -151
- package/src/shared/fs.ts +0 -80
- package/src/shared/http.ts +0 -34
- package/src/shared/index.ts +0 -6
- package/src/shared/url.test.ts +0 -122
- package/src/state/database.test.ts +0 -49
- package/src/state/database.ts +0 -919
- package/src/state/index.ts +0 -14
- package/src/storage/fileSystem.test.ts +0 -64
- package/src/storage/fileSystem.ts +0 -175
- package/tsconfig.json +0 -28
- package/vitest.config.ts +0 -29
|
@@ -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
|
|
32
|
-
|
|
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
|
-
})
|
|
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
|
|
42
|
-
|
|
43
|
-
|
|
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
|
|
50
|
-
|
|
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
|
-
})
|
|
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(
|
|
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(
|
|
80
|
+
if (video.currentSrc.includes(".m3u8")) {
|
|
75
81
|
result.hlsUrl = video.currentSrc;
|
|
76
82
|
}
|
|
77
|
-
else if (video.currentSrc.includes(
|
|
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(
|
|
89
|
+
if (video.src.includes(".m3u8")) {
|
|
84
90
|
result.hlsUrl = video.src;
|
|
85
91
|
}
|
|
86
|
-
else if (video.src.includes(
|
|
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(
|
|
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(
|
|
103
|
+
if (src?.includes(".m3u8")) {
|
|
98
104
|
result.hlsUrl = src;
|
|
99
105
|
break;
|
|
100
106
|
}
|
|
101
|
-
else if (src?.includes(
|
|
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
|
-
|
|
124
|
-
|
|
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
|
|
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(
|
|
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(
|
|
152
|
-
result.hlsUrl =
|
|
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(
|
|
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(
|
|
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(() => {
|
|
213
|
+
const timeout = setTimeout(() => {
|
|
214
|
+
resolve();
|
|
215
|
+
}, timeoutMs);
|
|
207
216
|
let hasMasterPlaylist = false;
|
|
208
|
-
client.on(
|
|
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:
|
|
234
|
+
await page.goto(embedUrl, { waitUntil: "domcontentloaded", timeout: 10000 });
|
|
226
235
|
// Mute the video immediately
|
|
227
|
-
await page
|
|
228
|
-
|
|
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
|
-
})
|
|
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
|
|
241
|
-
|
|
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
|
-
})
|
|
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
|
|
255
|
-
|
|
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
|
-
})
|
|
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(
|
|
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 {
|
|
299
|
+
catch {
|
|
300
|
+
/* ignore parse errors */
|
|
301
|
+
}
|
|
285
302
|
}
|
|
286
303
|
// Scan scripts for HLS URL
|
|
287
|
-
const scripts = Array.from(document.querySelectorAll(
|
|
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:
|
|
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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"}
|
package/dist/shared/auth.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|
package/dist/shared/auth.js
CHANGED
|
@@ -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
|
-
//
|
|
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
|
|
179
|
-
|
|
180
|
-
|
|
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
|
package/dist/shared/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAoBlF;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,SAAS;IACT,UAAU;IACV,QAAQ;IACR,uBAAuB;IACvB,kBAAkB;IAClB,OAAO;CACR,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAqB,sBAAsB;IAE3C,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc;IAClD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,OAAgB,EAAE,MAAc;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firebase Authentication utilities.
|
|
3
|
+
*
|
|
4
|
+
* Firebase Auth is used by many platforms (HighLevel, etc.) for user authentication.
|
|
5
|
+
* This module provides shared types, schemas, and utilities for Firebase Auth tokens
|
|
6
|
+
* stored in localStorage.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
import type { Page } from "playwright";
|
|
10
|
+
/**
|
|
11
|
+
* Zod schema for validated Firebase auth token from localStorage.
|
|
12
|
+
* Use this after parsing to ensure the token has all required fields.
|
|
13
|
+
*/
|
|
14
|
+
export declare const FirebaseAuthTokenSchema: z.ZodObject<{
|
|
15
|
+
stsTokenManager: z.ZodObject<{
|
|
16
|
+
accessToken: z.ZodString;
|
|
17
|
+
expirationTime: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
refreshToken: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
}, z.core.$strip>;
|
|
21
|
+
export type FirebaseAuthToken = z.infer<typeof FirebaseAuthTokenSchema>;
|
|
22
|
+
/**
|
|
23
|
+
* Raw Firebase auth data structure from localStorage (before validation).
|
|
24
|
+
* Use this type when parsing JSON from localStorage.
|
|
25
|
+
*/
|
|
26
|
+
export interface FirebaseAuthRaw {
|
|
27
|
+
stsTokenManager?: {
|
|
28
|
+
accessToken?: string;
|
|
29
|
+
expirationTime?: number;
|
|
30
|
+
refreshToken?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The localStorage key pattern for Firebase auth tokens.
|
|
35
|
+
* Firebase stores auth tokens with keys like "firebase:authUser:API_KEY:[DEFAULT]"
|
|
36
|
+
*/
|
|
37
|
+
export declare const FIREBASE_AUTH_KEY_PATTERN = "firebase:authUser";
|
|
38
|
+
/**
|
|
39
|
+
* Finds the Firebase auth token key in localStorage.
|
|
40
|
+
* Returns null if no Firebase auth token is found.
|
|
41
|
+
*/
|
|
42
|
+
export declare function findFirebaseAuthKey(storage: Storage): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Checks if a Firebase auth token is expired.
|
|
45
|
+
*/
|
|
46
|
+
export declare function isTokenExpired(token: FirebaseAuthRaw): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Extracts the access token from Firebase auth data.
|
|
49
|
+
*/
|
|
50
|
+
export declare function getAccessToken(token: FirebaseAuthRaw): string | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Checks if the page has a valid (non-expired) Firebase auth token in localStorage.
|
|
53
|
+
*/
|
|
54
|
+
export declare function hasValidFirebaseToken(page: Page): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Extracts the Firebase auth token from the page's localStorage.
|
|
57
|
+
* Returns the raw token data or null if not found.
|
|
58
|
+
*/
|
|
59
|
+
export declare function extractFirebaseAuthFromPage(page: Page): Promise<FirebaseAuthRaw | null>;
|
|
60
|
+
//# sourceMappingURL=firebase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase.d.ts","sourceRoot":"","sources":["../../src/shared/firebase.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMvC;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAMD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEnE;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAQ9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS,CAEzE;AAQD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BxE;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAsB7F"}
|