@cosmocoder/mcp-web-docs 2.1.10 → 2.2.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 (50) hide show
  1. package/build/crawler/browser-config.js +3 -2
  2. package/build/crawler/browser-config.js.map +1 -1
  3. package/build/crawler/crawlee-crawler.d.ts +15 -9
  4. package/build/crawler/crawlee-crawler.js +106 -69
  5. package/build/crawler/crawlee-crawler.js.map +1 -1
  6. package/build/crawler/crawlee-crawler.test.js +279 -101
  7. package/build/crawler/crawlee-crawler.test.js.map +1 -1
  8. package/build/crawler/docs-crawler.d.ts +3 -0
  9. package/build/crawler/docs-crawler.js +7 -0
  10. package/build/crawler/docs-crawler.js.map +1 -1
  11. package/build/crawler/docs-crawler.test.js +37 -0
  12. package/build/crawler/docs-crawler.test.js.map +1 -1
  13. package/build/crawler/login-page-signals.d.ts +6 -7
  14. package/build/crawler/login-page-signals.js +4 -16
  15. package/build/crawler/login-page-signals.js.map +1 -1
  16. package/build/crawler/login-page-signals.test.js +13 -32
  17. package/build/crawler/login-page-signals.test.js.map +1 -1
  18. package/build/crawler/queue-manager.d.ts +2 -2
  19. package/build/crawler/queue-manager.js +5 -4
  20. package/build/crawler/queue-manager.js.map +1 -1
  21. package/build/crawler/queue-manager.test.js +27 -41
  22. package/build/crawler/queue-manager.test.js.map +1 -1
  23. package/build/crawler/site-rules.d.ts +1 -2
  24. package/build/crawler/site-rules.js +3 -2
  25. package/build/crawler/site-rules.js.map +1 -1
  26. package/build/crawler/site-rules.test.js +3 -9
  27. package/build/crawler/site-rules.test.js.map +1 -1
  28. package/build/index.test.js +40 -4
  29. package/build/index.test.js.map +1 -1
  30. package/build/indexing/status.d.ts +1 -7
  31. package/build/indexing/status.js +38 -3
  32. package/build/indexing/status.js.map +1 -1
  33. package/build/indexing/status.test.js +69 -0
  34. package/build/indexing/status.test.js.map +1 -1
  35. package/build/indexing/workflow.d.ts +1 -1
  36. package/build/indexing/workflow.js +27 -7
  37. package/build/indexing/workflow.js.map +1 -1
  38. package/build/indexing/workflow.test.js +53 -6
  39. package/build/indexing/workflow.test.js.map +1 -1
  40. package/build/server.js +10 -2
  41. package/build/server.js.map +1 -1
  42. package/build/server.test.js +19 -0
  43. package/build/server.test.js.map +1 -1
  44. package/build/types.d.ts +4 -0
  45. package/build/util/security.d.ts +13 -3
  46. package/build/util/security.js +38 -6
  47. package/build/util/security.js.map +1 -1
  48. package/build/util/security.test.js +28 -4
  49. package/build/util/security.test.js.map +1 -1
  50. package/package.json +2 -2
@@ -1,7 +1,8 @@
1
1
  import { log } from 'crawlee';
2
2
  import { getOutboundProxyUrl } from '../util/outbound-request.js';
3
- // Suppress Crawlee's stdout logging for MCP compatibility
4
- // MCP servers must only output JSON-RPC messages to stdout
3
+ // MCP servers must write nothing but JSON-RPC to stdout, and Crawlee's logger sends its info and
4
+ // debug lines there. Off rather than raised to warning, because this project logs through
5
+ // util/logger, which writes to stderr - a Crawlee line would be a second, unprefixed channel.
5
6
  log.setLevel(log.LEVELS.OFF);
6
7
  export const getBrowserConfig = async (requestQueue) => ({
7
8
  maxRequestsPerCrawl: 1000,
@@ -1 +1 @@
1
- {"version":3,"file":"browser-config.js","sourceRoot":"","sources":["../../src/crawler/browser-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,GAAG,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,0DAA0D;AAC1D,2DAA2D;AAC3D,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,YAAsD,EACV,EAAE,CAAC,CAAC;IAChD,mBAAmB,EAAE,IAAI;IACzB,YAAY;IACZ,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,EAAE;IACzB,yBAAyB,EAAE,EAAE;IAC7B,aAAa,EAAE;QACb,aAAa,EAAE;YACb,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,mBAAmB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;SACtE;KACF;IACD,kBAAkB,EAAE;QAClB,sBAAsB,EAAE,CAAC;QACzB,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,EAAE;QACxB,6BAA6B,EAAE,EAAE;KAClC;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,iBAAiB,EAAE,gBAAgB;gBACnC,MAAM,EAAE,4EAA4E;aACrF,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"browser-config.js","sourceRoot":"","sources":["../../src/crawler/browser-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,GAAG,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,iGAAiG;AACjG,0FAA0F;AAC1F,8FAA8F;AAC9F,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,YAAsD,EACV,EAAE,CAAC,CAAC;IAChD,mBAAmB,EAAE,IAAI;IACzB,YAAY;IACZ,cAAc,EAAE,CAAC;IACjB,oBAAoB,EAAE,GAAG;IACzB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,EAAE;IACzB,yBAAyB,EAAE,EAAE;IAC7B,aAAa,EAAE;QACb,aAAa,EAAE;YACb,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,mBAAmB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;SACtE;KACF;IACD,kBAAkB,EAAE;QAClB,sBAAsB,EAAE,CAAC;QACzB,eAAe,EAAE,IAAI;QACrB,oBAAoB,EAAE,EAAE;QACxB,6BAA6B,EAAE,EAAE;KAClC;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACjB,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,iBAAiB,EAAE,gBAAgB;gBACnC,MAAM,EAAE,4EAA4E;aACrF,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC,CAAC"}
@@ -5,15 +5,21 @@ export declare class CrawleeCrawler extends BaseCrawler {
5
5
  private crawler;
6
6
  private queueManager;
7
7
  private storageState?;
8
- private sessionExpiredError;
9
- /** How many pages each distinct login page has answered, and how many pages were checked at all */
10
- private loginPageCounts;
11
- private pagesChecked;
8
+ private loginPageError;
9
+ /**
10
+ * Whether each URL the check looked at turned out to be a login wall, in the order they were first
11
+ * seen. Keyed by the requested URL, so a page the crawl retried is one page and a wall reached by
12
+ * redirect from several URLs is several.
13
+ */
14
+ private wallByRequestedUrl;
12
15
  private expectedUrl;
13
16
  /** The allowed hostname for crawling - pages outside this domain are skipped */
14
17
  private allowedHostname;
15
18
  /** Track pages skipped due to domain mismatch */
16
19
  private skippedExternalPages;
20
+ private skippedLoginUrls;
21
+ /** Login walls this crawl left out of the index. Only meaningful once crawl() has finished. */
22
+ get skippedLoginPageUrls(): string[];
17
23
  /** Optional path prefix to restrict crawling */
18
24
  private pathPrefix?;
19
25
  private terminalRootFailure?;
@@ -36,9 +42,9 @@ export declare class CrawleeCrawler extends BaseCrawler {
36
42
  * @returns true if the URL is within the allowed domain
37
43
  */
38
44
  private isWithinAllowedDomain;
45
+ private loginPageMessage;
39
46
  /**
40
- * The error to fail the crawl with if this page shows the session has expired, else null. Only
41
- * consulted when we authenticated, so a login page here means the session died.
47
+ * What to do with this page: nothing, keep it out of the index, or stop the crawl.
42
48
  *
43
49
  * Scored on content alone: a URL match is worth three of the detector's six indicators, enough on
44
50
  * its own, so every /oauth or /sso documentation page would score as a login page, as would every
@@ -46,10 +52,10 @@ export declare class CrawleeCrawler extends BaseCrawler {
46
52
  */
47
53
  private checkForLoginPage;
48
54
  /**
49
- * A crawl can end before any login page repeats often enough to be caught above - a short site, or
50
- * a session that died near the end. One login page being most of what the crawl saw says the same.
55
+ * A crawl can end before the window fills - a short site, or a session that died near the end. Walls
56
+ * being most of what the crawl saw at all says the same thing after the fact.
51
57
  */
52
- private sessionExpiredAcrossCrawl;
58
+ private loginPageErrorAcrossCrawl;
53
59
  /**
54
60
  * Wait for the page to fully stabilize after navigation, handling:
55
61
  * - Client-side redirects (meta-refresh, JavaScript location changes) common in Docusaurus
@@ -5,8 +5,8 @@ import { QueueManager } from './queue-manager.js';
5
5
  import { getBrowserConfig } from './browser-config.js';
6
6
  import { cleanContent } from './content-utils.js';
7
7
  import { logger } from '../util/logger.js';
8
- import { LOGIN_PAGE_CONFIDENCE, pageIdentity, readLoginPageSignals } from './login-page-signals.js';
9
- import { detectLoginPage, SessionExpiredError } from '../util/security.js';
8
+ import { isLoginWall, LOGIN_PAGE_CONFIDENCE, readLoginPageSignals } from './login-page-signals.js';
9
+ import { detectLoginPage, redactUrlSecrets, LoginPageServedError } from '../util/security.js';
10
10
  import { BlockedOutboundRequestError, classifyOutboundFailure, getOutboundResponseError, isNavigationCancellationError, OutboundRequestFailedError, } from '../util/outbound-request.js';
11
11
  function normalizeOutboundFailure(error, seen = new Set()) {
12
12
  if (error instanceof OutboundRequestFailedError) {
@@ -35,25 +35,36 @@ function normalizeQueuedUrl(url) {
35
35
  const MIN_TOLERATED_FAILED_PAGES = 5;
36
36
  const MAX_TOLERATED_FAILED_PAGE_RATIO = 0.02;
37
37
  /**
38
- * How many times one login page must come back before the session is called dead. One is not enough:
39
- * documentation about signing in scores the same. What it does not do is answer several URLs alike.
38
+ * A session that has died answers page after page with a wall, so what gives it away is a run of them
39
+ * among the pages the crawl is currently seeing - not one page, which a public site's own /login also
40
+ * is, and not a total spread over a whole crawl, which a handful of scattered sign-up pages would
41
+ * reach on a large site. Five of the last eight means a wall is most of what the crawl can still see.
40
42
  */
41
- const REPEATED_LOGIN_PAGES_BEFORE_SESSION_EXPIRED = 3;
42
- /** At one, a two-page site whose second page documents signing in would be "mostly login pages" */
43
- const MIN_REPEATS_FOR_MOSTLY_LOGIN_PAGES = 2;
43
+ const LOGIN_WALL_WINDOW = 8;
44
+ const LOGIN_WALLS_IN_WINDOW_BEFORE_SESSION_EXPIRED = 5;
45
+ /** A crawl too short to fill the window says the same thing by proportion. Two, or /login alone counts. */
46
+ const MIN_WALLS_FOR_MOSTLY_WALLS = 2;
44
47
  export class CrawleeCrawler extends BaseCrawler {
45
48
  crawler = null;
46
49
  queueManager = new QueueManager();
47
50
  storageState;
48
- sessionExpiredError = null;
49
- /** How many pages each distinct login page has answered, and how many pages were checked at all */
50
- loginPageCounts = new Map();
51
- pagesChecked = 0;
51
+ loginPageError = null;
52
+ /**
53
+ * Whether each URL the check looked at turned out to be a login wall, in the order they were first
54
+ * seen. Keyed by the requested URL, so a page the crawl retried is one page and a wall reached by
55
+ * redirect from several URLs is several.
56
+ */
57
+ wallByRequestedUrl = new Map();
52
58
  expectedUrl = '';
53
59
  /** The allowed hostname for crawling - pages outside this domain are skipped */
54
60
  allowedHostname = '';
55
61
  /** Track pages skipped due to domain mismatch */
56
62
  skippedExternalPages = 0;
63
+ skippedLoginUrls = [];
64
+ /** Login walls this crawl left out of the index. Only meaningful once crawl() has finished. */
65
+ get skippedLoginPageUrls() {
66
+ return [...this.skippedLoginUrls];
67
+ }
57
68
  /** Optional path prefix to restrict crawling */
58
69
  pathPrefix;
59
70
  terminalRootFailure;
@@ -105,16 +116,20 @@ export class CrawleeCrawler extends BaseCrawler {
105
116
  return false;
106
117
  }
107
118
  }
119
+ loginPageMessage(what) {
120
+ return this.storageState ? `Authentication session expired during the crawl - ${what}` : `This site requires authentication - ${what}`;
121
+ }
108
122
  /**
109
- * The error to fail the crawl with if this page shows the session has expired, else null. Only
110
- * consulted when we authenticated, so a login page here means the session died.
123
+ * What to do with this page: nothing, keep it out of the index, or stop the crawl.
111
124
  *
112
125
  * Scored on content alone: a URL match is worth three of the detector's six indicators, enough on
113
126
  * its own, so every /oauth or /sso documentation page would score as a login page, as would every
114
127
  * page on a host like auth.example.com.
115
128
  */
116
- async checkForLoginPage(page, isEntryPage) {
117
- this.pagesChecked++;
129
+ async checkForLoginPage(page, requestedUrl, isEntryPage) {
130
+ // Recorded before anything can return: the rules below count walls among the pages the crawl
131
+ // looked at, not among the ones that got this far. Set() keeps a retried URL where it first was.
132
+ this.wallByRequestedUrl.set(requestedUrl, this.wallByRequestedUrl.get(requestedUrl) ?? false);
118
133
  let observed;
119
134
  let detection;
120
135
  try {
@@ -134,41 +149,51 @@ export class CrawleeCrawler extends BaseCrawler {
134
149
  if (detection.confidence < LOGIN_PAGE_CONFIDENCE) {
135
150
  return null;
136
151
  }
137
- if (isEntryPage) {
152
+ // With a session, a login page where documentation was asked for means the session is dead in
153
+ // whatever shape it arrives - an SSO wall can be a branded button with no password field. Without
154
+ // one it has to be a wall: a code sample containing type="password" is worth two of the detector's
155
+ // six indicators, so an article about building login forms would fail the crawl.
156
+ if (isEntryPage && (this.storageState || isLoginWall(observed))) {
138
157
  logger.warn(`[CrawleeCrawler] First page appears to be a login page (confidence: ${detection.confidence.toFixed(2)})`);
139
158
  logger.debug(`[CrawleeCrawler] Detection reasons: ${detection.reasons.join(', ')}`);
140
- return new SessionExpiredError(`Authentication session has expired - crawled page is a login page`, this.expectedUrl, page.url(), detection);
159
+ return new LoginPageServedError(this.loginPageMessage('the page the crawl was asked for is a login page'), this.expectedUrl, page.url(), detection);
141
160
  }
142
- // Only a page actually asking for credentials counts as a login page coming back. Shape alone
143
- // gives genuinely different documentation pages one identity; none of them ask for a password.
144
- if (!observed.hasPasswordInput) {
161
+ // Anything the detector flagged that is not a wall is left alone: a sign-in box in the site's
162
+ // furniture reads as a login page on wording, and so does documentation about signing in.
163
+ if (!isLoginWall(observed)) {
145
164
  return null;
146
165
  }
147
- // Counted per distinct page rather than in a row: handlers run concurrently, so "in a row"
148
- // would mean "in the order five lanes happened to finish"
149
- const identity = pageIdentity(observed.headings, observed.text, page.url());
150
- if (identity === null) {
151
- return null;
152
- }
153
- const timesServed = (this.loginPageCounts.get(identity) ?? 0) + 1;
154
- this.loginPageCounts.set(identity, timesServed);
155
- if (timesServed < REPEATED_LOGIN_PAGES_BEFORE_SESSION_EXPIRED) {
156
- return null;
166
+ // Deleted first so the wall takes the position the crawl found it in: a page recorded by an
167
+ // earlier attempt that could not be read would otherwise sit outside every window that follows.
168
+ this.wallByRequestedUrl.delete(requestedUrl);
169
+ this.wallByRequestedUrl.set(requestedUrl, true);
170
+ // Never indexed - it is not documentation.
171
+ //
172
+ // This rule and the proportion rule below are both for a crawl that authenticated. Without a session
173
+ // nothing can have expired, and a public site has login pages in it by design - a /login, a /signup,
174
+ // one per gated area, all hanging off the same nav and so arriving together. Only the entry rule
175
+ // above fails such a crawl; every other wall is kept out of the index and reported.
176
+ const recent = [...this.wallByRequestedUrl.values()].slice(-LOGIN_WALL_WINDOW);
177
+ const walls = recent.filter(Boolean).length;
178
+ if (walls < LOGIN_WALLS_IN_WINDOW_BEFORE_SESSION_EXPIRED || !this.storageState) {
179
+ return 'skip';
157
180
  }
158
- logger.warn(`[CrawleeCrawler] One login page has answered ${timesServed} URLs - the session expired mid-crawl`);
159
- return new SessionExpiredError(`Authentication session expired during the crawl - one login page answered ${timesServed} different URLs`, this.expectedUrl, page.url(), detection);
181
+ logger.warn(`[CrawleeCrawler] ${walls} of the last ${recent.length} pages were login walls - the session expired mid-crawl`);
182
+ return new LoginPageServedError(this.loginPageMessage(`${walls} of the last ${recent.length} pages the crawl saw were login walls`), this.expectedUrl, page.url(), detection);
160
183
  }
161
184
  /**
162
- * A crawl can end before any login page repeats often enough to be caught above - a short site, or
163
- * a session that died near the end. One login page being most of what the crawl saw says the same.
185
+ * A crawl can end before the window fills - a short site, or a session that died near the end. Walls
186
+ * being most of what the crawl saw at all says the same thing after the fact.
164
187
  */
165
- sessionExpiredAcrossCrawl() {
166
- const timesServed = Math.max(0, ...this.loginPageCounts.values());
167
- if (timesServed < MIN_REPEATS_FOR_MOSTLY_LOGIN_PAGES || timesServed * 2 < this.pagesChecked) {
188
+ loginPageErrorAcrossCrawl() {
189
+ const checked = this.wallByRequestedUrl.size;
190
+ const walls = [...this.wallByRequestedUrl.values()].filter(Boolean).length;
191
+ // A crawl that authenticated, for the reason given at the window rule
192
+ if (!this.storageState || walls < MIN_WALLS_FOR_MOSTLY_WALLS || walls * 2 < checked) {
168
193
  return null;
169
194
  }
170
- logger.warn(`[CrawleeCrawler] One login page answered ${timesServed} of ${this.pagesChecked} crawled URLs`);
171
- return new SessionExpiredError(`Authentication session expired during the crawl - one login page answered ${timesServed} of ${this.pagesChecked} URLs`, this.expectedUrl, this.expectedUrl, { isLoginPage: true, confidence: 1, reasons: [`${timesServed} of ${this.pagesChecked} crawled pages were one login page`] });
195
+ logger.warn(`[CrawleeCrawler] ${walls} of ${checked} crawled pages were login walls`);
196
+ return new LoginPageServedError(this.loginPageMessage(`${walls} of the ${checked} pages the crawl saw were login walls`), this.expectedUrl, this.expectedUrl, { isLoginPage: true, confidence: 1, reasons: [`${walls} of ${checked} crawled pages were login walls`] });
172
197
  }
173
198
  /**
174
199
  * Wait for the page to fully stabilize after navigation, handling:
@@ -324,15 +349,15 @@ export class CrawleeCrawler extends BaseCrawler {
324
349
  async *crawl(url) {
325
350
  logger.debug(`[${this.constructor.name}] Starting crawl of: ${url}`);
326
351
  // Reset state for this crawl
327
- this.sessionExpiredError = null;
328
- this.loginPageCounts.clear();
329
- this.pagesChecked = 0;
352
+ this.loginPageError = null;
353
+ this.wallByRequestedUrl.clear();
330
354
  this.terminalRootFailure = undefined;
331
355
  this.rootPageFailed = false;
332
356
  this.failedPages = 0;
333
357
  this.navigationAttempts = new WeakMap();
334
358
  this.expectedUrl = normalizeQueuedUrl(url);
335
359
  this.skippedExternalPages = 0;
360
+ this.skippedLoginUrls = [];
336
361
  // Extract and store the allowed hostname from the initial URL
337
362
  try {
338
363
  this.allowedHostname = new URL(url).hostname;
@@ -430,7 +455,7 @@ export class CrawleeCrawler extends BaseCrawler {
430
455
  this.navigationAttempts.delete(requestKey);
431
456
  await crawlerOptions.failedRequestHandler?.(context, error);
432
457
  },
433
- requestHandler: async ({ request, response, page, enqueueLinks, log }) => {
458
+ requestHandler: async ({ request, response, page, enqueueLinks }) => {
434
459
  const requestKey = request;
435
460
  this.cleanupNavigationListener(requestKey);
436
461
  this.navigationAttempts.delete(requestKey);
@@ -467,14 +492,14 @@ export class CrawleeCrawler extends BaseCrawler {
467
492
  await Promise.all(pendingNavigationChecks);
468
493
  if (mainFrameNavigationError) {
469
494
  if (mainFrameNavigationError instanceof BlockedOutboundRequestError) {
470
- log.warning(`Skipping blocked outbound destination: ${request.url}`);
495
+ logger.warn(`[CrawleeCrawler] Skipping blocked outbound destination: ${redactUrlSecrets(request.url)}`);
471
496
  return true;
472
497
  }
473
498
  throw mainFrameNavigationError;
474
499
  }
475
500
  const outboundError = await getOutboundResponseError(latestMainFrameResponse);
476
501
  if (outboundError instanceof BlockedOutboundRequestError) {
477
- log.warning(`Skipping blocked outbound destination: ${request.url}`);
502
+ logger.warn(`[CrawleeCrawler] Skipping blocked outbound destination: ${redactUrlSecrets(request.url)}`);
478
503
  return true;
479
504
  }
480
505
  if (outboundError) {
@@ -484,7 +509,7 @@ export class CrawleeCrawler extends BaseCrawler {
484
509
  };
485
510
  try {
486
511
  if (this.isAborting) {
487
- log.debug('Crawl aborted');
512
+ logger.debug('[CrawleeCrawler] Crawl aborted');
488
513
  return;
489
514
  }
490
515
  if (await shouldSkipNavigation()) {
@@ -493,7 +518,9 @@ export class CrawleeCrawler extends BaseCrawler {
493
518
  // Wait for initial page load
494
519
  await Promise.all([
495
520
  page.waitForLoadState('domcontentloaded'),
496
- page.waitForLoadState('networkidle', { timeout: 5000 }).catch(() => log.debug('Network idle timeout - continuing anyway')),
521
+ page
522
+ .waitForLoadState('networkidle', { timeout: 5000 })
523
+ .catch(() => logger.debug('[CrawleeCrawler] Network idle timeout - continuing anyway')),
497
524
  ]);
498
525
  // Handle client-side redirects (Docusaurus) and Cloudflare challenges
499
526
  await this.waitForPageStabilization(page);
@@ -510,18 +537,16 @@ export class CrawleeCrawler extends BaseCrawler {
510
537
  const requestedHostname = new URL(request.url).hostname;
511
538
  const actualHostname = new URL(actualUrl).hostname;
512
539
  if (isEntryPage) {
513
- // First page redirected outside domain - likely auth redirect (session expired)
514
540
  logger.warn(`[CrawleeCrawler] First page redirected outside allowed domain: ${requestedHostname} → ${actualHostname}`);
515
541
  if (this.storageState) {
516
- // We had auth but got redirected - session expired
517
- this.sessionExpiredError = new SessionExpiredError(`Authentication session has expired - page redirected to external domain (${actualHostname})`, this.expectedUrl, actualUrl, { isLoginPage: true, confidence: 1.0, reasons: [`Redirected from ${requestedHostname} to ${actualHostname}`] });
518
- log.error(`Session expired - redirected to external domain: ${actualHostname}. Aborting crawl.`);
542
+ this.loginPageError = new LoginPageServedError(`Authentication session has expired - page redirected to external domain (${actualHostname})`, this.expectedUrl, actualUrl, { isLoginPage: true, confidence: 1.0, reasons: [`Redirected from ${requestedHostname} to ${actualHostname}`] });
543
+ logger.error(`[CrawleeCrawler] Session expired - redirected to external domain: ${actualHostname}. Aborting crawl.`);
519
544
  this.abort();
520
545
  return;
521
546
  }
522
547
  else {
523
548
  // No auth but redirected - might be site misconfiguration
524
- log.error(`First page redirected to external domain: ${actualHostname}. Aborting crawl.`);
549
+ logger.error(`[CrawleeCrawler] First page redirected to external domain: ${actualHostname}. Aborting crawl.`);
525
550
  this.abort();
526
551
  return;
527
552
  }
@@ -529,26 +554,36 @@ export class CrawleeCrawler extends BaseCrawler {
529
554
  else {
530
555
  // Subsequent page redirected outside domain - skip it
531
556
  this.skippedExternalPages++;
532
- log.warning(`Skipping page that redirected outside domain: ${request.url} → ${actualUrl} (skipped ${this.skippedExternalPages} external pages)`);
557
+ logger.warn(`[CrawleeCrawler] Skipping page that redirected outside domain: ${request.url} → ${actualUrl} (skipped ${this.skippedExternalPages} external pages)`);
533
558
  return;
534
559
  }
535
560
  }
536
- if (this.storageState) {
537
- const expired = await this.checkForLoginPage(page, isEntryPage);
538
- if (expired) {
539
- this.sessionExpiredError = expired;
540
- log.error('Session appears expired - the crawl is being served login pages. Aborting crawl.');
541
- this.abort();
542
- return;
543
- }
561
+ // Every crawl, not only an authenticated one: indexing the wall as documentation is the bug
562
+ const verdict = await this.checkForLoginPage(page, normalizeQueuedUrl(request.url), isEntryPage);
563
+ if (verdict instanceof LoginPageServedError) {
564
+ this.loginPageError = verdict;
565
+ logger.error(`[CrawleeCrawler] ${verdict.message}. Aborting crawl.`);
566
+ this.abort();
567
+ return;
544
568
  }
545
569
  // Detect site type and get extractor
546
570
  for (const rule of siteRules) {
547
571
  if (await rule.detect(page)) {
548
572
  if (rule.prepare) {
549
- await rule.prepare(page, log);
573
+ await rule.prepare(page);
574
+ }
575
+ await this.queueManager.handleQueueAndLinks(enqueueLinks, rule);
576
+ // After the links, not before: a page skipped by mistake would otherwise take the whole
577
+ // section under it out of the crawl, and the sparse nav of a small section is exactly the
578
+ // page most likely to be mistaken for a wall.
579
+ if (verdict === 'skip') {
580
+ // Redacted once here, because the same string goes to the client and to stderr, and
581
+ // the logger's own redaction covers fewer parameter names than this one
582
+ const skipped = redactUrlSecrets(normalizeQueuedUrl(request.url));
583
+ this.skippedLoginUrls.push(skipped);
584
+ logger.warn(`[CrawleeCrawler] Not indexing ${skipped}: it asks for a password and has no content of its own`);
585
+ return;
550
586
  }
551
- await this.queueManager.handleQueueAndLinks(enqueueLinks, log, rule);
552
587
  const pageTitle = await page.title();
553
588
  const { content, contentFormat, extractorUsed, title } = await this.extractContent(page, rule.type, rule.extractor);
554
589
  const result = {
@@ -594,10 +629,13 @@ export class CrawleeCrawler extends BaseCrawler {
594
629
  if (this.skippedExternalPages > 0) {
595
630
  logger.warn(`[CrawleeCrawler] Skipped ${this.skippedExternalPages} pages that redirected outside the allowed domain (${this.allowedHostname})`);
596
631
  }
597
- // Check if we detected an expired session during crawling
598
- const sessionExpired = this.sessionExpiredError ?? this.sessionExpiredAcrossCrawl();
599
- if (sessionExpired) {
600
- throw sessionExpired;
632
+ if (this.skippedLoginUrls.length > 0) {
633
+ logger.warn(`[CrawleeCrawler] Left ${this.skippedLoginUrls.length} login ${this.skippedLoginUrls.length === 1 ? 'page' : 'pages'} out of the index; ` +
634
+ 'they had no content of their own');
635
+ }
636
+ const loginPage = this.loginPageError ?? this.loginPageErrorAcrossCrawl();
637
+ if (loginPage) {
638
+ throw loginPage;
601
639
  }
602
640
  if (finalStatistics.requestsFailed > 0) {
603
641
  // Losing the entry point is terminal however well the rest of the crawl went, and it is
@@ -620,8 +658,7 @@ export class CrawleeCrawler extends BaseCrawler {
620
658
  }
621
659
  }
622
660
  catch (error) {
623
- // Re-throw session expired errors as-is
624
- if (error instanceof SessionExpiredError) {
661
+ if (error instanceof LoginPageServedError) {
625
662
  throw error;
626
663
  }
627
664
  logger.debug('Crawler error:', error);
@@ -1 +1 @@
1
- {"version":3,"file":"crawlee-crawler.js","sourceRoot":"","sources":["../../src/crawler/crawlee-crawler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crawlee-crawler.js","sourceRoot":"","sources":["../../src/crawler/crawlee-crawler.ts"],"names":[],"mappings":"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"}