@cosmocoder/mcp-web-docs 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 (84) hide show
  1. package/README.md +132 -10
  2. package/build/crawler/auth.d.ts +17 -6
  3. package/build/crawler/auth.js +166 -31
  4. package/build/crawler/auth.js.map +1 -1
  5. package/build/crawler/auth.test.js +197 -33
  6. package/build/crawler/auth.test.js.map +1 -1
  7. package/build/index.js +68 -16
  8. package/build/index.js.map +1 -1
  9. package/build/index.test.js +134 -0
  10. package/build/index.test.js.map +1 -1
  11. package/build/storage/storage.d.ts +17 -0
  12. package/build/storage/storage.js +102 -5
  13. package/build/storage/storage.js.map +1 -1
  14. package/build/storage/storage.test.js +91 -0
  15. package/build/storage/storage.test.js.map +1 -1
  16. package/build/types.d.ts +4 -0
  17. package/build/util/security.js +8 -0
  18. package/build/util/security.js.map +1 -1
  19. package/build/util/security.test.js +18 -0
  20. package/build/util/security.test.js.map +1 -1
  21. package/package.json +11 -2
  22. package/build/crawler/cheerio.d.ts +0 -11
  23. package/build/crawler/cheerio.js +0 -134
  24. package/build/crawler/cheerio.js.map +0 -1
  25. package/build/crawler/chromium.d.ts +0 -21
  26. package/build/crawler/chromium.js +0 -596
  27. package/build/crawler/chromium.js.map +0 -1
  28. package/build/crawler/default.d.ts +0 -11
  29. package/build/crawler/default.js +0 -138
  30. package/build/crawler/default.js.map +0 -1
  31. package/build/crawler/factory.d.ts +0 -6
  32. package/build/crawler/factory.js +0 -83
  33. package/build/crawler/factory.js.map +0 -1
  34. package/build/crawler/puppeteer.d.ts +0 -16
  35. package/build/crawler/puppeteer.js +0 -191
  36. package/build/crawler/puppeteer.js.map +0 -1
  37. package/build/embeddings/openai.d.ts +0 -8
  38. package/build/embeddings/openai.js +0 -56
  39. package/build/embeddings/openai.js.map +0 -1
  40. package/build/rag/cache.d.ts +0 -10
  41. package/build/rag/cache.js +0 -10
  42. package/build/rag/cache.js.map +0 -1
  43. package/build/rag/code-generator.d.ts +0 -11
  44. package/build/rag/code-generator.js +0 -30
  45. package/build/rag/code-generator.js.map +0 -1
  46. package/build/rag/context-assembler.d.ts +0 -23
  47. package/build/rag/context-assembler.js +0 -113
  48. package/build/rag/context-assembler.js.map +0 -1
  49. package/build/rag/docs-search.d.ts +0 -55
  50. package/build/rag/docs-search.js +0 -380
  51. package/build/rag/docs-search.js.map +0 -1
  52. package/build/rag/pipeline.d.ts +0 -26
  53. package/build/rag/pipeline.js +0 -91
  54. package/build/rag/pipeline.js.map +0 -1
  55. package/build/rag/query-processor.d.ts +0 -14
  56. package/build/rag/query-processor.js +0 -57
  57. package/build/rag/query-processor.js.map +0 -1
  58. package/build/rag/reranker.d.ts +0 -55
  59. package/build/rag/reranker.js +0 -210
  60. package/build/rag/reranker.js.map +0 -1
  61. package/build/rag/response-generator.d.ts +0 -20
  62. package/build/rag/response-generator.js +0 -101
  63. package/build/rag/response-generator.js.map +0 -1
  64. package/build/rag/retriever.d.ts +0 -19
  65. package/build/rag/retriever.js +0 -111
  66. package/build/rag/retriever.js.map +0 -1
  67. package/build/rag/validator.d.ts +0 -22
  68. package/build/rag/validator.js +0 -128
  69. package/build/rag/validator.js.map +0 -1
  70. package/build/rag/version-manager.d.ts +0 -23
  71. package/build/rag/version-manager.js +0 -98
  72. package/build/rag/version-manager.js.map +0 -1
  73. package/build/types/rag.d.ts +0 -27
  74. package/build/types/rag.js +0 -2
  75. package/build/types/rag.js.map +0 -1
  76. package/build/util/content-utils.d.ts +0 -31
  77. package/build/util/content-utils.js +0 -120
  78. package/build/util/content-utils.js.map +0 -1
  79. package/build/util/content.d.ts +0 -1
  80. package/build/util/content.js +0 -16
  81. package/build/util/content.js.map +0 -1
  82. package/build/util/site-detector.d.ts +0 -22
  83. package/build/util/site-detector.js +0 -42
  84. package/build/util/site-detector.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # MCP Web Docs
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/@cosmocoder/mcp-web-docs.svg)](https://www.npmjs.com/package/@cosmocoder/mcp-web-docs)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@cosmocoder/mcp-web-docs.svg)](https://www.npmjs.com/package/@cosmocoder/mcp-web-docs)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
6
+ [![Node.js](https://img.shields.io/badge/node-%3E%3D22.19.0-brightgreen.svg)](https://nodejs.org/)
7
+ [![CI](https://github.com/cosmocoder/mcp-web-docs/actions/workflows/release.yml/badge.svg)](https://github.com/cosmocoder/mcp-web-docs/actions/workflows/release.yml)
8
+
3
9
  **Index Any Documentation. Search Locally. Stay Private.**
4
10
 
5
11
  A self-hosted Model Context Protocol (MCP) server that crawls, indexes, and searches documentation from *any* website. Unlike remote MCP servers limited to GitHub repos or pre-indexed libraries, web-docs gives you full control over what gets indexed — including private documentation behind authentication.
@@ -46,11 +52,21 @@ AI assistants struggle with documentation:
46
52
 
47
53
  - Node.js >= 22.19.0
48
54
 
49
- ### Setup
55
+ ### Option 1: Install from NPM (Recommended)
56
+
57
+ ```bash
58
+ npm install -g @cosmocoder/mcp-web-docs
59
+ ```
60
+
61
+ ### Option 2: Run with npx
62
+
63
+ No installation required - just configure your MCP client to use npx (see below).
64
+
65
+ ### Option 3: Build from Source
50
66
 
51
67
  ```bash
52
68
  # Clone the repository
53
- git clone https://github.com/user/mcp-web-docs.git
69
+ git clone https://github.com/cosmocoder/mcp-web-docs.git
54
70
  cd mcp-web-docs
55
71
 
56
72
  # Install dependencies (automatically installs Playwright browsers)
@@ -67,6 +83,30 @@ npm run build
67
83
 
68
84
  Add to your Cursor MCP settings (`~/.cursor/mcp.json`):
69
85
 
86
+ **Using npx (no install required):**
87
+ ```json
88
+ {
89
+ "mcpServers": {
90
+ "web-docs": {
91
+ "command": "npx",
92
+ "args": ["-y", "@cosmocoder/mcp-web-docs"]
93
+ }
94
+ }
95
+ }
96
+ ```
97
+
98
+ **Using global install:**
99
+ ```json
100
+ {
101
+ "mcpServers": {
102
+ "web-docs": {
103
+ "command": "mcp-web-docs"
104
+ }
105
+ }
106
+ }
107
+ ```
108
+
109
+ **Using local build:**
70
110
  ```json
71
111
  {
72
112
  "mcpServers": {
@@ -85,12 +125,24 @@ Add to your Cursor MCP settings (`~/.cursor/mcp.json`):
85
125
 
86
126
  Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
87
127
 
128
+ **Using npx:**
88
129
  ```json
89
130
  {
90
131
  "mcpServers": {
91
132
  "web-docs": {
92
- "command": "node",
93
- "args": ["/path/to/mcp-web-docs/build/index.js"]
133
+ "command": "npx",
134
+ "args": ["-y", "@cosmocoder/mcp-web-docs"]
135
+ }
136
+ }
137
+ }
138
+ ```
139
+
140
+ **Using global install:**
141
+ ```json
142
+ {
143
+ "mcpServers": {
144
+ "web-docs": {
145
+ "command": "mcp-web-docs"
94
146
  }
95
147
  }
96
148
  }
@@ -103,12 +155,24 @@ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_
103
155
 
104
156
  Add to `.vscode/mcp.json` in your workspace:
105
157
 
158
+ **Using npx:**
106
159
  ```json
107
160
  {
108
161
  "servers": {
109
162
  "web-docs": {
110
- "command": "node",
111
- "args": ["/path/to/mcp-web-docs/build/index.js"]
163
+ "command": "npx",
164
+ "args": ["-y", "@cosmocoder/mcp-web-docs"]
165
+ }
166
+ }
167
+ }
168
+ ```
169
+
170
+ **Using global install:**
171
+ ```json
172
+ {
173
+ "servers": {
174
+ "web-docs": {
175
+ "command": "mcp-web-docs"
112
176
  }
113
177
  }
114
178
  }
@@ -121,12 +185,24 @@ Add to `.vscode/mcp.json` in your workspace:
121
185
 
122
186
  Add to `~/.codeium/windsurf/mcp_config.json`:
123
187
 
188
+ **Using npx:**
124
189
  ```json
125
190
  {
126
191
  "mcpServers": {
127
192
  "web-docs": {
128
- "command": "node",
129
- "args": ["/path/to/mcp-web-docs/build/index.js"]
193
+ "command": "npx",
194
+ "args": ["-y", "@cosmocoder/mcp-web-docs"]
195
+ }
196
+ }
197
+ }
198
+ ```
199
+
200
+ **Using global install:**
201
+ ```json
202
+ {
203
+ "mcpServers": {
204
+ "web-docs": {
205
+ "command": "mcp-web-docs"
130
206
  }
131
207
  }
132
208
  }
@@ -139,12 +215,13 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
139
215
 
140
216
  Add to `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`:
141
217
 
218
+ **Using npx:**
142
219
  ```json
143
220
  {
144
221
  "mcpServers": {
145
222
  "web-docs": {
146
- "command": "node",
147
- "args": ["/path/to/mcp-web-docs/build/index.js"],
223
+ "command": "npx",
224
+ "args": ["-y", "@cosmocoder/mcp-web-docs"],
148
225
  "disabled": false,
149
226
  "autoApprove": []
150
227
  }
@@ -152,6 +229,51 @@ Add to `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude
152
229
  }
153
230
  ```
154
231
 
232
+ **Using global install:**
233
+ ```json
234
+ {
235
+ "mcpServers": {
236
+ "web-docs": {
237
+ "command": "mcp-web-docs",
238
+ "disabled": false,
239
+ "autoApprove": []
240
+ }
241
+ }
242
+ }
243
+ ```
244
+
245
+ </details>
246
+
247
+ <details>
248
+ <summary><b>RooCode</b></summary>
249
+
250
+ **Global configuration:** Open RooCode → Click MCP icon → "Edit Global MCP"
251
+
252
+ **Project-level configuration:** Create `.roo/mcp.json` at your project root
253
+
254
+ **Using npx:**
255
+ ```json
256
+ {
257
+ "mcpServers": {
258
+ "web-docs": {
259
+ "command": "npx",
260
+ "args": ["-y", "@cosmocoder/mcp-web-docs"]
261
+ }
262
+ }
263
+ }
264
+ ```
265
+
266
+ **Using global install:**
267
+ ```json
268
+ {
269
+ "mcpServers": {
270
+ "web-docs": {
271
+ "command": "mcp-web-docs"
272
+ }
273
+ }
274
+ }
275
+ ```
276
+
155
277
  </details>
156
278
 
157
279
  ---
@@ -55,13 +55,21 @@ export declare class AuthManager {
55
55
  */
56
56
  clearSession(url: string): Promise<void>;
57
57
  /**
58
- * Validate that a stored session is still valid by making a test request.
59
- * This detects expired sessions by checking for:
60
- * 1. Redirects to login/auth pages
61
- * 2. Login page content in the response
58
+ * Check if stored cookies have expired based on their expiration timestamps.
59
+ * This is a fast check that doesn't require launching a browser.
60
+ *
61
+ * @param storageStateJson - The decrypted storage state JSON
62
+ * @param domain - The domain to check cookies for
63
+ * @returns Object with expiration status and details
64
+ */
65
+ private checkCookieExpiration;
66
+ /**
67
+ * Validate that a stored session is still valid.
68
+ * First checks cookie expiration timestamps (fast, no network).
69
+ * Falls back to browser-based validation for edge cases.
62
70
  *
63
71
  * @param url - The protected URL to validate against
64
- * @param browserType - Browser type to use for validation
72
+ * @param browserType - Browser type to use for browser-based validation (if needed)
65
73
  * @returns Validation result indicating if session is still valid
66
74
  */
67
75
  validateSession(url: string, browserType?: BrowserType): Promise<{
@@ -111,7 +119,10 @@ export declare class AuthManager {
111
119
  * Detection methods (in order of priority):
112
120
  * 1. If successPattern is provided: wait for URL to match the regex
113
121
  * 2. If successSelector is provided: wait for the CSS selector to appear
114
- * 3. Default: poll for common login success indicators (logout button, user menu, URL change)
122
+ * 3. Default: poll for common login success indicators or return to target domain
123
+ *
124
+ * For multi-step OAuth flows (e.g., GitHub Pages → GitHub Login → Okta → back),
125
+ * the method tracks when the user returns to the original target domain.
115
126
  */
116
127
  private waitForLogin;
117
128
  /**
@@ -164,13 +164,72 @@ export class AuthManager {
164
164
  }
165
165
  }
166
166
  /**
167
- * Validate that a stored session is still valid by making a test request.
168
- * This detects expired sessions by checking for:
169
- * 1. Redirects to login/auth pages
170
- * 2. Login page content in the response
167
+ * Check if stored cookies have expired based on their expiration timestamps.
168
+ * This is a fast check that doesn't require launching a browser.
169
+ *
170
+ * @param storageStateJson - The decrypted storage state JSON
171
+ * @param domain - The domain to check cookies for
172
+ * @returns Object with expiration status and details
173
+ */
174
+ checkCookieExpiration(storageStateJson, domain) {
175
+ try {
176
+ const storageState = safeJsonParse(storageStateJson, StorageStateSchema);
177
+ const cookies = storageState.cookies || [];
178
+ const now = Date.now() / 1000; // Convert to seconds (cookie expires is in seconds)
179
+ // Filter cookies relevant to this domain
180
+ const domainLower = domain.toLowerCase();
181
+ const relevantCookies = cookies.filter((cookie) => {
182
+ const cookieDomain = cookie.domain.toLowerCase().replace(/^\./, ''); // Remove leading dot
183
+ return domainLower === cookieDomain || domainLower.endsWith('.' + cookieDomain);
184
+ });
185
+ if (relevantCookies.length === 0) {
186
+ // No domain-specific cookies, check all cookies
187
+ // This handles cases where auth cookies are on a different domain (e.g., github.com for github.io)
188
+ logger.debug(`[AuthManager] No cookies found for ${domain}, checking all ${cookies.length} cookies`);
189
+ }
190
+ const cookiesToCheck = relevantCookies.length > 0 ? relevantCookies : cookies;
191
+ let expiredCount = 0;
192
+ const details = [];
193
+ for (const cookie of cookiesToCheck) {
194
+ // Skip cookies without expiration (session cookies)
195
+ if (cookie.expires === undefined || cookie.expires === -1 || cookie.expires === 0) {
196
+ continue;
197
+ }
198
+ if (cookie.expires < now) {
199
+ expiredCount++;
200
+ const expiredAgo = Math.round((now - cookie.expires) / 3600); // Hours ago
201
+ details.push(`Cookie "${cookie.name}" expired ${expiredAgo}h ago`);
202
+ }
203
+ }
204
+ // Consider session expired if ANY auth-related cookies are expired
205
+ // Common auth cookie names
206
+ const authCookiePatterns = /session|auth|token|jwt|sid|login|user|identity|sso|saml|oauth/i;
207
+ const expiredAuthCookies = cookiesToCheck.filter((cookie) => {
208
+ if (!cookie.expires || cookie.expires === -1 || cookie.expires === 0)
209
+ return false;
210
+ return cookie.expires < now && authCookiePatterns.test(cookie.name);
211
+ });
212
+ return {
213
+ hasExpiredCookies: expiredCount > 0,
214
+ expiredCount,
215
+ totalCount: cookiesToCheck.length,
216
+ details: expiredAuthCookies.length > 0
217
+ ? details.filter((d) => expiredAuthCookies.some((c) => d.includes(c.name)))
218
+ : details.slice(0, 3), // Limit details
219
+ };
220
+ }
221
+ catch (error) {
222
+ logger.debug(`[AuthManager] Error checking cookie expiration:`, error);
223
+ return { hasExpiredCookies: false, expiredCount: 0, totalCount: 0, details: [] };
224
+ }
225
+ }
226
+ /**
227
+ * Validate that a stored session is still valid.
228
+ * First checks cookie expiration timestamps (fast, no network).
229
+ * Falls back to browser-based validation for edge cases.
171
230
  *
172
231
  * @param url - The protected URL to validate against
173
- * @param browserType - Browser type to use for validation
232
+ * @param browserType - Browser type to use for browser-based validation (if needed)
174
233
  * @returns Validation result indicating if session is still valid
175
234
  */
176
235
  async validateSession(url, browserType = 'chromium') {
@@ -181,6 +240,25 @@ export class AuthManager {
181
240
  logger.info(`[AuthManager] No stored session found for ${domain}`);
182
241
  return { isValid: false, reason: 'No stored session found' };
183
242
  }
243
+ // Fast check: Look at cookie expiration timestamps
244
+ const cookieCheck = this.checkCookieExpiration(storageStateJson, domain);
245
+ logger.debug(`[AuthManager] Cookie check: ${cookieCheck.expiredCount}/${cookieCheck.totalCount} expired`);
246
+ if (cookieCheck.hasExpiredCookies) {
247
+ const reason = `Session cookies have expired (${cookieCheck.expiredCount} expired). ${cookieCheck.details.join('; ')}`;
248
+ logger.warn(`[AuthManager] Session expired based on cookie timestamps: ${reason}`);
249
+ return {
250
+ isValid: false,
251
+ reason,
252
+ loginDetection: {
253
+ isLoginPage: false,
254
+ confidence: 1.0,
255
+ reasons: [`Cookie expiration check: ${cookieCheck.details.join(', ')}`],
256
+ },
257
+ };
258
+ }
259
+ // If no cookies have explicit expiration, or all have valid timestamps,
260
+ // do a quick browser-based check to be sure
261
+ logger.debug(`[AuthManager] Cookie timestamps look valid, performing browser-based validation...`);
184
262
  let browser = null;
185
263
  let context = null;
186
264
  try {
@@ -200,17 +278,26 @@ export class AuthManager {
200
278
  waitUntil: 'domcontentloaded',
201
279
  timeout: 30000,
202
280
  });
281
+ // Wait for potential JavaScript redirects
282
+ await page.waitForLoadState('networkidle', { timeout: 10000 }).catch(() => { });
283
+ // Additional wait for JS-based auth redirects (GitHub Pages, etc.)
284
+ await page.waitForTimeout(2000);
203
285
  const finalUrl = page.url();
204
286
  logger.debug(`[AuthManager] Final URL after navigation: ${finalUrl}`);
205
- // Check 1: Were we redirected to a login page?
206
- if (isLoginPageUrl(finalUrl) && finalUrl !== url) {
207
- logger.warn(`[AuthManager] Session appears expired - redirected to login page: ${finalUrl}`);
208
- return {
209
- isValid: false,
210
- reason: 'Redirected to login page - session has expired',
211
- finalUrl,
212
- loginDetection: { isLoginPage: true, confidence: 1.0, reasons: ['Redirected to login URL'] },
213
- };
287
+ // Check 1: Were we redirected to a different domain (likely auth)?
288
+ const finalDomain = new URL(finalUrl).hostname.toLowerCase();
289
+ const expectedDomain = domain.toLowerCase();
290
+ if (finalDomain !== expectedDomain && !finalDomain.endsWith('.' + expectedDomain)) {
291
+ // Redirected to a different domain - check if it's a login page
292
+ if (isLoginPageUrl(finalUrl)) {
293
+ logger.warn(`[AuthManager] Session appears expired - redirected to login page: ${finalUrl}`);
294
+ return {
295
+ isValid: false,
296
+ reason: `Redirected to login page on different domain (${finalDomain})`,
297
+ finalUrl,
298
+ loginDetection: { isLoginPage: true, confidence: 1.0, reasons: ['Redirected to external login URL'] },
299
+ };
300
+ }
214
301
  }
215
302
  // Check 2: Did we get an auth-related HTTP status?
216
303
  const status = response?.status();
@@ -223,8 +310,6 @@ export class AuthManager {
223
310
  };
224
311
  }
225
312
  // Check 3: Does the page content look like a login page?
226
- // Wait for content to load
227
- await page.waitForLoadState('networkidle', { timeout: 10000 }).catch(() => { });
228
313
  const pageContent = await page.content();
229
314
  const bodyText = await page.evaluate(() => document.body?.textContent || '');
230
315
  const loginDetection = detectLoginPage(bodyText + pageContent, finalUrl);
@@ -378,6 +463,7 @@ export class AuthManager {
378
463
  logger.info(`[AuthManager] ⏳ You have ${loginTimeoutSecs} seconds to complete login.`);
379
464
  // Wait for successful login
380
465
  const loginSuccess = await this.waitForLogin(page, {
466
+ targetUrl: url, // The original target URL to return to
381
467
  successPattern: loginSuccessPattern,
382
468
  successSelector: loginSuccessSelector,
383
469
  timeoutSecs: loginTimeoutSecs,
@@ -405,17 +491,28 @@ export class AuthManager {
405
491
  * Detection methods (in order of priority):
406
492
  * 1. If successPattern is provided: wait for URL to match the regex
407
493
  * 2. If successSelector is provided: wait for the CSS selector to appear
408
- * 3. Default: poll for common login success indicators (logout button, user menu, URL change)
494
+ * 3. Default: poll for common login success indicators or return to target domain
495
+ *
496
+ * For multi-step OAuth flows (e.g., GitHub Pages → GitHub Login → Okta → back),
497
+ * the method tracks when the user returns to the original target domain.
409
498
  */
410
499
  async waitForLogin(page, options) {
411
- const { successPattern, successSelector, timeoutSecs } = options;
500
+ const { targetUrl, successPattern, successSelector, timeoutSecs } = options;
412
501
  const startTime = Date.now();
413
502
  const timeoutMs = timeoutSecs * 1000;
503
+ // Extract target domain for multi-step OAuth flow detection
504
+ let targetDomain;
505
+ try {
506
+ targetDomain = new URL(targetUrl).hostname.toLowerCase();
507
+ }
508
+ catch {
509
+ targetDomain = '';
510
+ }
414
511
  logger.debug(`[AuthManager] Login detection method: ${successPattern
415
512
  ? `URL pattern: ${successPattern}`
416
513
  : successSelector
417
514
  ? `CSS selector: ${successSelector}`
418
- : 'auto-detect (looking for logout button, user menu, or URL change)'}`);
515
+ : `auto-detect (target domain: ${targetDomain})`}`);
419
516
  // If we have specific success criteria, wait for them
420
517
  if (successPattern) {
421
518
  // Validate the regex pattern to prevent ReDoS attacks
@@ -450,53 +547,90 @@ export class AuthManager {
450
547
  // Default: wait for navigation away from login page or for page to show logged-in state
451
548
  // Poll for changes that indicate successful login
452
549
  logger.info(`[AuthManager] Using auto-detection for login success...`);
550
+ logger.info(`[AuthManager] Target domain: ${targetDomain}`);
453
551
  logger.info(`[AuthManager] The browser will stay open until you login or ${timeoutSecs} seconds pass.`);
454
552
  let lastLogTime = 0;
455
553
  // Track the initial URL to detect navigation
456
554
  const initialUrl = page.url();
457
555
  let hasNavigatedAway = false;
458
556
  let wasOnLoginPage = false;
557
+ const visitedDomains = new Set();
558
+ // Enhanced login page URL pattern including common IdPs
559
+ const loginPagePattern = /login|signin|sign-in|auth|sso|oauth|session|okta|oktapreview|auth0|onelogin|pingone|pingidentity|pingfederate|duosecurity|adfs|saml|idp/i;
459
560
  while (Date.now() - startTime < timeoutMs) {
460
561
  try {
461
562
  const currentUrl = page.url();
462
563
  const elapsed = Math.round((Date.now() - startTime) / 1000);
564
+ // Extract current domain
565
+ let currentDomain;
566
+ try {
567
+ currentDomain = new URL(currentUrl).hostname.toLowerCase();
568
+ }
569
+ catch {
570
+ currentDomain = '';
571
+ }
572
+ // Track visited domains for debugging
573
+ if (currentDomain && !visitedDomains.has(currentDomain)) {
574
+ visitedDomains.add(currentDomain);
575
+ logger.debug(`[AuthManager] Visited new domain: ${currentDomain}`);
576
+ }
463
577
  // Log status every 10 seconds
464
578
  if (elapsed - lastLogTime >= 10) {
465
579
  logger.info(`[AuthManager] Still waiting for login... (${elapsed}s elapsed, current URL: ${currentUrl})`);
466
580
  lastLogTime = elapsed;
467
581
  }
468
- // Check if we're on a login-like page
469
- const isLoginPage = /login|signin|sign-in|auth|sso|oauth|session/i.test(currentUrl);
582
+ // Check if we're on a login-like page (URL-based detection)
583
+ const isLoginPageUrl = loginPagePattern.test(currentUrl);
584
+ // Check if we're on a known identity provider domain
585
+ const isIdpDomain = /okta|auth0|onelogin|pingidentity|duosecurity|microsoftonline|accounts\.google/i.test(currentDomain);
586
+ const isLoginPage = isLoginPageUrl || isIdpDomain;
470
587
  // Track if we've been to a login page (to know when we've successfully logged in)
471
588
  if (isLoginPage) {
472
589
  wasOnLoginPage = true;
473
- logger.debug(`[AuthManager] Detected login page: ${currentUrl}`);
590
+ logger.debug(`[AuthManager] Detected login/IdP page: ${currentUrl}`);
474
591
  }
475
592
  // Track navigation away from initial URL
476
593
  if (currentUrl !== initialUrl && !hasNavigatedAway) {
477
594
  hasNavigatedAway = true;
478
595
  logger.debug(`[AuthManager] Navigation detected: ${initialUrl} → ${currentUrl}`);
479
596
  }
597
+ // Check if we've returned to the target domain after visiting login pages
598
+ const isBackAtTargetDomain = targetDomain && (currentDomain === targetDomain || currentDomain.endsWith('.' + targetDomain));
480
599
  // Check for common logged-in indicators
481
600
  const hasLogoutButton = (await page.locator('text=/log\\s*out|sign\\s*out/i').count()) > 0;
482
601
  const hasUserMenu = (await page.locator('[class*="user"], [class*="avatar"], [class*="profile"]').count()) > 0;
483
- // Only consider login successful if:
484
- // 1. We're not on a login page, AND
485
- // 2. We have logged-in indicators OR we were on a login page and navigated away
602
+ // Success condition 1: Found logout button or user menu (and not on login page)
486
603
  if (!isLoginPage && (hasLogoutButton || hasUserMenu)) {
487
604
  logger.info(`[AuthManager] ✓ Login indicators found (logout button or user menu)`);
488
605
  await page.waitForTimeout(1000);
489
606
  return true;
490
607
  }
491
- // For GitHub Pages: only consider successful if we were on login page and came back
492
- if (currentUrl.includes('github.io') && wasOnLoginPage && !isLoginPage) {
493
- // We were redirected to login and now we're back on the github.io page
608
+ // Success condition 2: Returned to target domain after visiting login page(s)
609
+ // This handles multi-step OAuth flows (GitHub Pages GitHub → Okta → back to GitHub Pages)
610
+ if (isBackAtTargetDomain && wasOnLoginPage && !isLoginPage) {
611
+ // We were redirected to login/IdP and now we're back on the target domain
494
612
  const bodyText = (await page.locator('body').textContent()) || '';
495
613
  // Make sure it's not an error page
496
614
  if (bodyText.length > 100 && !bodyText.includes('404') && !bodyText.includes('not found')) {
497
- logger.info(`[AuthManager] ✓ Returned to GitHub Pages after login`);
498
- await page.waitForTimeout(1000);
499
- return true;
615
+ logger.info(`[AuthManager] ✓ Returned to target domain (${currentDomain}) after login. Visited ${visitedDomains.size} domains during auth flow.`);
616
+ // Wait a bit longer for any post-login redirects to settle
617
+ await page.waitForTimeout(2000);
618
+ // Double-check we're still on target domain after waiting
619
+ const finalUrl = page.url();
620
+ let finalDomain;
621
+ try {
622
+ finalDomain = new URL(finalUrl).hostname.toLowerCase();
623
+ }
624
+ catch {
625
+ finalDomain = '';
626
+ }
627
+ if (finalDomain === targetDomain || finalDomain.endsWith('.' + targetDomain)) {
628
+ logger.info(`[AuthManager] ✓ Confirmed on target domain: ${finalUrl}`);
629
+ return true;
630
+ }
631
+ else {
632
+ logger.debug(`[AuthManager] Redirected away from target domain after waiting, continuing...`);
633
+ }
500
634
  }
501
635
  }
502
636
  // Wait a bit before checking again
@@ -509,6 +643,7 @@ export class AuthManager {
509
643
  }
510
644
  }
511
645
  logger.warn(`[AuthManager] Login detection timed out after ${timeoutSecs} seconds`);
646
+ logger.debug(`[AuthManager] Visited ${visitedDomains.size} domains during auth flow`);
512
647
  return false;
513
648
  }
514
649
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/crawler/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/crawler/auth.ts"],"names":[],"mappings":"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"}