@cosmocoder/mcp-web-docs 2.1.9 → 2.2.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/build/crawler/crawlee-crawler.d.ts +13 -7
- package/build/crawler/crawlee-crawler.js +87 -48
- package/build/crawler/crawlee-crawler.js.map +1 -1
- package/build/crawler/crawlee-crawler.test.js +248 -85
- package/build/crawler/crawlee-crawler.test.js.map +1 -1
- package/build/crawler/docs-crawler.d.ts +3 -0
- package/build/crawler/docs-crawler.js +7 -0
- package/build/crawler/docs-crawler.js.map +1 -1
- package/build/crawler/docs-crawler.test.js +37 -0
- package/build/crawler/docs-crawler.test.js.map +1 -1
- package/build/crawler/login-page-signals.d.ts +6 -7
- package/build/crawler/login-page-signals.js +4 -16
- package/build/crawler/login-page-signals.js.map +1 -1
- package/build/crawler/login-page-signals.test.js +13 -32
- package/build/crawler/login-page-signals.test.js.map +1 -1
- package/build/index.test.js +38 -2
- package/build/index.test.js.map +1 -1
- package/build/indexing/status.d.ts +1 -7
- package/build/indexing/status.js +38 -3
- package/build/indexing/status.js.map +1 -1
- package/build/indexing/status.test.js +69 -0
- package/build/indexing/status.test.js.map +1 -1
- package/build/indexing/workflow.d.ts +1 -1
- package/build/indexing/workflow.js +26 -6
- package/build/indexing/workflow.js.map +1 -1
- package/build/indexing/workflow.test.js +52 -5
- package/build/indexing/workflow.test.js.map +1 -1
- package/build/server.js +10 -2
- package/build/server.js.map +1 -1
- package/build/server.test.js +19 -0
- package/build/server.test.js.map +1 -1
- package/build/types.d.ts +4 -0
- package/build/util/security.d.ts +9 -0
- package/build/util/security.js +29 -0
- package/build/util/security.js.map +1 -1
- package/build/util/security.test.js +21 -1
- package/build/util/security.test.js.map +1 -1
- package/package.json +4 -4
|
@@ -407,7 +407,8 @@ describe('CrawleeCrawler', () => {
|
|
|
407
407
|
: false));
|
|
408
408
|
return Object.assign(page, { content: vi.fn().mockResolvedValue(`<html><body>${bodyText}${html}</body></html>`) });
|
|
409
409
|
}
|
|
410
|
-
//
|
|
410
|
+
// Most of what the check decides turns on a session, so every case here starts from one. The cases
|
|
411
|
+
// that are about a crawl without one replace the crawler.
|
|
411
412
|
beforeEach(() => {
|
|
412
413
|
crawler.setStorageState({ cookies: [{ name: 'auth', value: 'token', domain: 'example.com', path: '/' }] });
|
|
413
414
|
});
|
|
@@ -425,15 +426,44 @@ describe('CrawleeCrawler', () => {
|
|
|
425
426
|
bodyText: `Ordinary content about topic ${n}`,
|
|
426
427
|
headings: [`Topic ${n}`],
|
|
427
428
|
});
|
|
428
|
-
//
|
|
429
|
+
// The furniture of a documentation site - nav, sidebar, footer - which a login page served inside
|
|
430
|
+
// that shell carries too. Long enough that the page is not bare, which is a separate rule.
|
|
431
|
+
const SHELL_TEXT = 'Guides Reference Tutorials API Changelog Support Status Community Careers Legal Privacy Terms. '.repeat(3);
|
|
432
|
+
// One login page, whatever URL it was asked for. Served inside the site's own shell, so only its
|
|
433
|
+
// repetition gives it away - a bare wall is caught on sight instead, by loginWall below.
|
|
429
434
|
const loginPage = (n) => ({
|
|
435
|
+
url: `https://example.com/docs/${n}`,
|
|
436
|
+
bodyText: `${LOGIN_BODY} ${SHELL_TEXT}`,
|
|
437
|
+
headings: ['Sign in'],
|
|
438
|
+
asksForPassword: true,
|
|
439
|
+
});
|
|
440
|
+
// Nothing but the form
|
|
441
|
+
const loginWall = (n) => ({
|
|
430
442
|
url: `https://example.com/docs/${n}`,
|
|
431
443
|
bodyText: LOGIN_BODY,
|
|
432
444
|
headings: ['Sign in'],
|
|
433
445
|
asksForPassword: true,
|
|
434
446
|
});
|
|
435
|
-
|
|
436
|
-
|
|
447
|
+
// The same wall answering a path of its own, where a test needs several walls that are not
|
|
448
|
+
// documentation URLs - a /login and a /signup rather than a /docs/2
|
|
449
|
+
const wallAt = (path) => ({ ...loginWall(0), url: `https://example.com/${path}` });
|
|
450
|
+
// A login page where the crawl asked for documentation fails it on sight, in whatever shape it
|
|
451
|
+
// arrives, and says which page that was rather than counting it as one wall among many.
|
|
452
|
+
it.each([
|
|
453
|
+
['wording alone', { url: 'https://example.com/docs', bodyText: LOGIN_BODY }],
|
|
454
|
+
['nothing but the form', { ...loginWall(1), url: 'https://example.com/docs' }],
|
|
455
|
+
// No wording and no password field: the markup is the only evidence, and reading the markup is
|
|
456
|
+
// what the crawl skips for a page showing no sign of a login
|
|
457
|
+
[
|
|
458
|
+
'a wordless SSO shell',
|
|
459
|
+
{
|
|
460
|
+
url: 'https://example.com/docs',
|
|
461
|
+
bodyText: 'Redirecting',
|
|
462
|
+
html: '<form action="/login"><input name="username"><img alt="Continue with Okta">',
|
|
463
|
+
},
|
|
464
|
+
],
|
|
465
|
+
])('fails an authenticated crawl whose entry page is a login page by %s', async (_label, entry) => {
|
|
466
|
+
await expect(crawlPages([entry])).rejects.toThrow(/the page the crawl was asked for is a login page/i);
|
|
437
467
|
});
|
|
438
468
|
// A URL match is worth three of the detector's six indicators, so scoring the URL would make
|
|
439
469
|
// every page of this host a login page and no authenticated crawl of it possible. The wording
|
|
@@ -447,26 +477,26 @@ describe('CrawleeCrawler', () => {
|
|
|
447
477
|
await expect(crawlPages(pages, 'https://auth.example.com/docs')).resolves.toBeUndefined();
|
|
448
478
|
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(3);
|
|
449
479
|
});
|
|
450
|
-
//
|
|
451
|
-
it.
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
await expect(crawlPages([docsPage(1), loginPage(2), loginPage(3)])).rejects.toThrow(/answered 2 of 3 URLs/i);
|
|
460
|
-
});
|
|
461
|
-
// Two indicators is the detector's bar but half of ours, or any page mentioning a username counts
|
|
462
|
-
it('ignores pages that only just trip the detector', async () => {
|
|
463
|
-
const pages = [1, 2, 3].map((n) => ({ ...loginPage(n), bodyText: 'Log in with your username.' }));
|
|
464
|
-
await expect(crawlPages([docsPage(0), ...pages])).resolves.toBeUndefined();
|
|
480
|
+
// A run of walls among the pages the crawl can currently see is what a dead session looks like.
|
|
481
|
+
// It stops there rather than at the end, so the pages after it are never fetched.
|
|
482
|
+
it('stops the crawl once walls are most of what it is seeing', async () => {
|
|
483
|
+
await expect(crawlPages([...[1, 2, 3].map(docsPage), ...[4, 5, 6, 7, 8].map(loginWall)])).rejects.toThrow(/5 of the last 8 pages the crawl saw were login walls/i);
|
|
484
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(3);
|
|
485
|
+
});
|
|
486
|
+
// Too short for the window to fill, but walls were still most of it
|
|
487
|
+
it('fails a short crawl that was mostly login walls', async () => {
|
|
488
|
+
await expect(crawlPages([docsPage(1), loginWall(2), loginWall(3)])).rejects.toThrow(/2 of the 3 pages the crawl saw were login walls/i);
|
|
465
489
|
});
|
|
466
|
-
//
|
|
490
|
+
// The accepted limit of the window: a session dying with only a few pages left is not caught. The
|
|
491
|
+
// walls are still kept out of the index, so nothing wrong is stored - those pages are just absent.
|
|
492
|
+
it('does not stop a long crawl whose session died in its last few pages', async () => {
|
|
493
|
+
await expect(crawlPages([...Array.from({ length: 10 }, (_, i) => docsPage(i + 1)), ...[11, 12, 13, 14].map(loginWall)])).resolves.toBeUndefined();
|
|
494
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(10);
|
|
495
|
+
});
|
|
496
|
+
// Too small a share of the crawl for the after-the-fact rule; only the window catches it
|
|
467
497
|
it('fails a long crawl where the session died near the end', async () => {
|
|
468
|
-
const tail = [1, 2, 3].map((n) => ({ ...
|
|
469
|
-
await expect(crawlPages([...[1, 2, 3, 4, 5, 6, 7, 8].map(docsPage), ...tail])).rejects.toThrow(/
|
|
498
|
+
const tail = [1, 2, 3, 4, 5].map((n) => ({ ...loginWall(n), url: `https://example.com/docs/late-${n}` }));
|
|
499
|
+
await expect(crawlPages([...[1, 2, 3, 4, 5, 6, 7, 8].map(docsPage), ...tail])).rejects.toThrow(/5 of the last 8 pages the crawl saw were login walls/i);
|
|
470
500
|
});
|
|
471
501
|
// One branded button, with the only real evidence in the markup
|
|
472
502
|
it.each([
|
|
@@ -476,14 +506,23 @@ describe('CrawleeCrawler', () => {
|
|
|
476
506
|
const pages = [1, 2, 3].map((n) => ({ url: `https://example.com/docs/${n}`, bodyText, html }));
|
|
477
507
|
await expect(crawlPages([docsPage(0), ...pages])).rejects.toThrow(SessionExpiredError);
|
|
478
508
|
});
|
|
479
|
-
//
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
509
|
+
// What a documentation site does that reads like a login page. Both clear the detector's own bar;
|
|
510
|
+
// what keeps them in the index is the wall rule, which needs a page with only the form on it.
|
|
511
|
+
it.each([
|
|
512
|
+
// A sign-in box in the site chrome, on every page
|
|
513
|
+
[
|
|
514
|
+
'carry a sign-in box in an article',
|
|
515
|
+
[1, 2, 3].map((n) => {
|
|
516
|
+
const served = loginPage(n);
|
|
517
|
+
return { ...served, bodyText: `${served.bodyText} Topic ${n}`, headings: [`Topic ${n}`] };
|
|
518
|
+
}),
|
|
519
|
+
],
|
|
520
|
+
// Bare, with a password box, but tripping only two of the detector's six indicators - short of the
|
|
521
|
+
// bar, and so not the crawl's business to judge. The accepted cost is a wall worded like this one.
|
|
522
|
+
["trip only two of the detector's indicators", [{ ...loginWall(1), bodyText: 'Sign in Username' }]],
|
|
523
|
+
])('keeps crawling documentation pages that %s', async (_label, pages) => {
|
|
524
|
+
await expect(crawlPages([docsPage(0), ...pages])).resolves.toBeUndefined();
|
|
525
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(pages.length + 1);
|
|
487
526
|
});
|
|
488
527
|
// By arrival order, one ordinary page reading as a login page would fail the crawl on its own,
|
|
489
528
|
// with none of the repetition the rule is built on
|
|
@@ -493,12 +532,6 @@ describe('CrawleeCrawler', () => {
|
|
|
493
532
|
{ url: 'https://example.com/docs', bodyText: 'Ordinary content on the page the crawl asked for' },
|
|
494
533
|
])).resolves.toBeUndefined();
|
|
495
534
|
});
|
|
496
|
-
// A login page's wording varies per request - a return parameter, a csrf token, an attempt
|
|
497
|
-
// counter - so the identity cannot rest on it. The form it puts in front of you does not vary.
|
|
498
|
-
it('fails the crawl when the login page varies by the text it carries', async () => {
|
|
499
|
-
const pages = [1, 2, 3].map((n) => ({ ...loginPage(n), bodyText: `${LOGIN_BODY} next=%2Fdocs%2F${n} token=a${n}f9c${n}` }));
|
|
500
|
-
await expect(crawlPages([docsPage(0), ...pages])).rejects.toThrow(/one login page answered 3 different URLs/i);
|
|
501
|
-
});
|
|
502
535
|
it('does not serialize the markup of a page with no sign of a login', async () => {
|
|
503
536
|
const ordinary = authenticatedPage(docsPage(1));
|
|
504
537
|
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
@@ -508,60 +541,190 @@ describe('CrawleeCrawler', () => {
|
|
|
508
541
|
await collect(crawler, 'https://example.com/docs');
|
|
509
542
|
expect(ordinary.content).not.toHaveBeenCalled();
|
|
510
543
|
});
|
|
511
|
-
//
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
'a
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
}));
|
|
536
|
-
await expect(crawlPages([docsPage(0), ...pages])).resolves.toBeUndefined();
|
|
537
|
-
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(4);
|
|
544
|
+
// A first attempt that cannot read the page still records it. Left in that older position, the wall
|
|
545
|
+
// can sit outside every window that follows, and a run of them slips both rules.
|
|
546
|
+
it('moves a wall to where the crawl found it when an earlier attempt could not be read', async () => {
|
|
547
|
+
const unreadable = () => {
|
|
548
|
+
const { page } = navigationPage(wallAt('a').url, () => { }, vi.fn(async (fn) => {
|
|
549
|
+
if (fn === readLoginPageSignals) {
|
|
550
|
+
throw new Error('execution context destroyed');
|
|
551
|
+
}
|
|
552
|
+
return false;
|
|
553
|
+
}));
|
|
554
|
+
return Object.assign(page, { content: vi.fn().mockResolvedValue('') });
|
|
555
|
+
};
|
|
556
|
+
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
557
|
+
await runRequestHandler(unreadable(), wallAt('a').url);
|
|
558
|
+
for (const n of [1, 2, 3, 4, 5, 6, 7]) {
|
|
559
|
+
await runRequestHandler(authenticatedPage(docsPage(n)), docsPage(n).url);
|
|
560
|
+
}
|
|
561
|
+
await runRequestHandler(authenticatedPage(wallAt('a')), wallAt('a').url);
|
|
562
|
+
for (const slug of ['b', 'c', 'd', 'e']) {
|
|
563
|
+
await runRequestHandler(authenticatedPage(wallAt(slug)), wallAt(slug).url);
|
|
564
|
+
}
|
|
565
|
+
return successfulRunStats;
|
|
566
|
+
});
|
|
567
|
+
await expect(collect(crawler, 'https://example.com/docs')).rejects.toThrow(/5 of the last 8 pages the crawl saw were login walls/i);
|
|
538
568
|
});
|
|
539
|
-
//
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
569
|
+
// One URL fetched twice can come back bare once and inside the shell once - a slow theme, a retry -
|
|
570
|
+
// and the second look must not un-learn the wall. Long enough that only the window can end it.
|
|
571
|
+
it('keeps a wall recorded when a later look at the same URL is not one', async () => {
|
|
572
|
+
const wallN = (n) => wallAt(`wall-${n}`);
|
|
573
|
+
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
574
|
+
for (const n of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) {
|
|
575
|
+
await runRequestHandler(authenticatedPage(docsPage(n)), docsPage(n).url);
|
|
576
|
+
}
|
|
577
|
+
for (const n of [1, 2, 3, 4]) {
|
|
578
|
+
await runRequestHandler(authenticatedPage(wallN(n)), wallN(n).url);
|
|
579
|
+
}
|
|
580
|
+
// The same URL again, this time rendered inside the site's shell rather than bare
|
|
581
|
+
await runRequestHandler(authenticatedPage({ ...loginPage(1), url: wallN(1).url }), wallN(1).url);
|
|
582
|
+
await runRequestHandler(authenticatedPage(wallN(5)), wallN(5).url);
|
|
583
|
+
return successfulRunStats;
|
|
584
|
+
});
|
|
585
|
+
await expect(collect(crawler, 'https://example.com/docs')).rejects.toThrow(/5 of the last 8 pages the crawl saw were login walls/i);
|
|
546
586
|
});
|
|
547
|
-
//
|
|
548
|
-
it('
|
|
549
|
-
|
|
587
|
+
// The crawl retries a failed page, and the wall it retries is not a second URL
|
|
588
|
+
it('does not count one wall URL twice when it is handled again', async () => {
|
|
589
|
+
const wall = loginWall(2);
|
|
590
|
+
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
591
|
+
await runRequestHandler(authenticatedPage(docsPage(1)), docsPage(1).url);
|
|
592
|
+
await runRequestHandler(authenticatedPage(wall), wall.url);
|
|
593
|
+
await runRequestHandler(authenticatedPage(wall), wall.url);
|
|
594
|
+
return successfulRunStats;
|
|
595
|
+
});
|
|
596
|
+
await expect(collect(crawler, 'https://example.com/docs')).resolves.toBeDefined();
|
|
597
|
+
});
|
|
598
|
+
// Two crawls on one instance: the wall the first one skipped must not be the first of two for the
|
|
599
|
+
// second, or a site crawled twice fails the second time for what the first one saw
|
|
600
|
+
it('starts each crawl from no login pages at all', async () => {
|
|
601
|
+
await crawlPages([docsPage(1), loginWall(2)]);
|
|
602
|
+
vi.mocked(logger.warn).mockClear();
|
|
603
|
+
await expect(crawlPages([docsPage(1), loginWall(3)])).resolves.toBeUndefined();
|
|
604
|
+
expect(logger.warn).toHaveBeenCalledWith(expect.stringContaining('Left 1 login page out of the index'));
|
|
605
|
+
});
|
|
606
|
+
// The page dropped from the index has to be named somewhere, or neither remedy can be applied to
|
|
607
|
+
// it, and it is normalized to match the key the window counts by.
|
|
608
|
+
it('reports the skipped URL redacted and normalized', async () => {
|
|
609
|
+
const wall = { ...loginWall(2), url: 'https://example.com/docs/2?token=abc123&next=%2Fdocs#top' };
|
|
610
|
+
await crawlPages([docsPage(1), wall]);
|
|
611
|
+
expect(crawler.skippedLoginPageUrls).toEqual(['https://example.com/docs/2?token=[REDACTED]&next=%2Fdocs']);
|
|
612
|
+
// The logger's own redaction covers fewer parameter names than this one, so logging the raw URL
|
|
613
|
+
// would echo what the report withheld
|
|
614
|
+
expect(logger.warn).toHaveBeenCalledWith(expect.stringContaining('Not indexing https://example.com/docs/2?token=[REDACTED]'));
|
|
615
|
+
expect(logger.warn).not.toHaveBeenCalledWith(expect.stringContaining('abc123'));
|
|
616
|
+
});
|
|
617
|
+
// The caller must not be able to reach into the crawl's own state through what it reads
|
|
618
|
+
it('hands out a copy of the skipped URLs', async () => {
|
|
619
|
+
await crawlPages([docsPage(1), loginWall(2)]);
|
|
620
|
+
crawler.skippedLoginPageUrls.push('https://example.com/injected');
|
|
621
|
+
expect(crawler.skippedLoginPageUrls).toEqual(['https://example.com/docs/2']);
|
|
622
|
+
});
|
|
623
|
+
// The links of a skipped page are still wanted: a sparse section index is exactly the page most
|
|
624
|
+
// likely to be mistaken for a wall, and its whole section hangs off it
|
|
625
|
+
it('still follows the links of a login page it left out', async () => {
|
|
626
|
+
await crawlPages([docsPage(1), loginWall(2), docsPage(3)]);
|
|
627
|
+
expect(mockQueueManager.handleQueueAndLinks).toHaveBeenCalledTimes(3);
|
|
628
|
+
});
|
|
629
|
+
// A public crawl is not failed over walls it found, so a site that gave up nothing else ends with
|
|
630
|
+
// nothing to index. The workflow fails the operation over that, counting the walls and naming one.
|
|
631
|
+
it('leaves a public site of nothing but login walls with no pages and every wall reported', async () => {
|
|
632
|
+
crawler = new CrawleeCrawler();
|
|
633
|
+
await expect(crawlPages([loginWall(1), loginWall(2)])).resolves.toBeUndefined();
|
|
634
|
+
expect(mockQueueManager.addResult).not.toHaveBeenCalled();
|
|
635
|
+
expect(crawler.skippedLoginPageUrls).toEqual(['https://example.com/docs/1', 'https://example.com/docs/2']);
|
|
550
636
|
});
|
|
551
|
-
//
|
|
552
|
-
//
|
|
553
|
-
it('
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
637
|
+
// Walls being half a small site is a public site with a /login and a /signup in its nav, not a dead
|
|
638
|
+
// session. Failing would throw away the documentation the crawl did index.
|
|
639
|
+
it('keeps a public site whose login pages are half of a short crawl', async () => {
|
|
640
|
+
crawler = new CrawleeCrawler();
|
|
641
|
+
await expect(crawlPages([docsPage(1), docsPage(2), wallAt('login'), wallAt('signup')])).resolves.toBeUndefined();
|
|
642
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(2);
|
|
643
|
+
});
|
|
644
|
+
// The nav enqueues its links together, so gated areas arrive as a run - here one long enough to fill
|
|
645
|
+
// the window on its own, which puts what the crawl indexed outside it. The whole crawl answers.
|
|
646
|
+
it('keeps a public site whose gated areas arrive as a run of login walls', async () => {
|
|
647
|
+
crawler = new CrawleeCrawler();
|
|
648
|
+
const walls = ['login', 'signup', 'admin/login', 'portal/login', 'legacy/login', 'shop/login', 'crm/login', 'wiki/login'];
|
|
649
|
+
await expect(crawlPages([...[1, 2, 3].map(docsPage), ...walls.map(wallAt)])).resolves.toBeUndefined();
|
|
650
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(3);
|
|
651
|
+
expect(crawler.skippedLoginPageUrls).toHaveLength(8);
|
|
652
|
+
});
|
|
653
|
+
// Five pages are in flight at once and a page is extracted after its links are enqueued, so a run of
|
|
654
|
+
// walls can finish while accepted documentation is still being extracted.
|
|
655
|
+
it('keeps a public crawl whose documentation is still being extracted when a run of walls arrives', async () => {
|
|
656
|
+
crawler = new CrawleeCrawler();
|
|
657
|
+
const extraction = Promise.withResolvers();
|
|
658
|
+
const reachedExtraction = Promise.withResolvers();
|
|
659
|
+
const entry = Object.assign(authenticatedPage({ url: 'https://example.com/docs', bodyText: 'Ordinary content' }), {
|
|
660
|
+
title: vi.fn(async () => {
|
|
661
|
+
reachedExtraction.resolve();
|
|
662
|
+
await extraction.promise;
|
|
663
|
+
return 'Docs';
|
|
664
|
+
}),
|
|
665
|
+
});
|
|
666
|
+
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
667
|
+
const inFlight = runRequestHandler(entry, 'https://example.com/docs');
|
|
668
|
+
await reachedExtraction.promise;
|
|
669
|
+
for (const path of ['login', 'signup', 'admin/login', 'portal/login', 'legacy/login']) {
|
|
670
|
+
await runRequestHandler(authenticatedPage(wallAt(path)), `https://example.com/${path}`);
|
|
671
|
+
}
|
|
672
|
+
extraction.resolve();
|
|
673
|
+
await inFlight;
|
|
674
|
+
return successfulRunStats;
|
|
675
|
+
});
|
|
676
|
+
await expect(collect(crawler, 'https://example.com/docs')).resolves.toBeDefined();
|
|
677
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(1);
|
|
678
|
+
expect(crawler.skippedLoginPageUrls).toHaveLength(5);
|
|
679
|
+
});
|
|
680
|
+
// A session that died is a different matter: the pages before it are stale, so the crawl fails even
|
|
681
|
+
// though it indexed some. Exactly half has to count, or a session dying at the midpoint of a short
|
|
682
|
+
// crawl passes. Interleaved, because where the walls fall makes no difference to this rule.
|
|
683
|
+
it('stops an authenticated crawl whose login walls are half of it', async () => {
|
|
684
|
+
await expect(crawlPages([docsPage(1), wallAt('a'), docsPage(2), wallAt('b')])).rejects.toThrow(/Authentication session expired during the crawl - 2 of the 4 pages the crawl saw were login walls/i);
|
|
560
685
|
});
|
|
561
|
-
|
|
562
|
-
it('does not check for login pages when the crawl never authenticated', async () => {
|
|
686
|
+
it('crawls an ordinary public site that was never authenticated', async () => {
|
|
563
687
|
crawler = new CrawleeCrawler();
|
|
564
|
-
await expect(crawlPages([
|
|
688
|
+
await expect(crawlPages([1, 2, 3].map(docsPage))).resolves.toBeUndefined();
|
|
689
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(3);
|
|
690
|
+
});
|
|
691
|
+
// Asking to index a site that turns out to need signing in - the likeliest way this is met, and
|
|
692
|
+
// the entry page is caught without a password field of its own
|
|
693
|
+
it('stops an unauthenticated crawl whose entry page is a login wall', async () => {
|
|
694
|
+
crawler = new CrawleeCrawler();
|
|
695
|
+
await expect(crawlPages([{ ...loginWall(1), url: 'https://example.com/docs' }])).rejects.toThrow(/This site requires authentication - the page the crawl was asked for is a login page/i);
|
|
696
|
+
});
|
|
697
|
+
// A public article about building login forms scores as a login page: a code sample containing
|
|
698
|
+
// type="password" is worth two of the detector's six indicators.
|
|
699
|
+
it('crawls a public site whose entry page documents authentication', async () => {
|
|
700
|
+
crawler = new CrawleeCrawler();
|
|
701
|
+
const article = {
|
|
702
|
+
url: 'https://example.com/docs',
|
|
703
|
+
bodyText: `Building a sign in form. ${'Explaining each field of the form at length. '.repeat(8)}`,
|
|
704
|
+
html: '<pre><input type="password" name="password"></pre>',
|
|
705
|
+
};
|
|
706
|
+
await expect(crawlPages([article, docsPage(2)])).resolves.toBeUndefined();
|
|
707
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(2);
|
|
708
|
+
});
|
|
709
|
+
// A public site's own /login is a wall, and a crawl without a pathPrefix reaches it from the nav.
|
|
710
|
+
// Leaving it out of the index is the whole fix; stopping the crawl over it costs far more.
|
|
711
|
+
it('leaves a single login wall out of the index and keeps crawling', async () => {
|
|
712
|
+
await expect(crawlPages([docsPage(1), loginWall(2), docsPage(3)])).resolves.toBeUndefined();
|
|
713
|
+
expect(mockQueueManager.addResult).toHaveBeenCalledTimes(2);
|
|
714
|
+
});
|
|
715
|
+
// A wall reached by redirect answers a URL that is not its own, and each of those is a page the
|
|
716
|
+
// crawl lost. Counting the page's own address instead would make any number of them one page.
|
|
717
|
+
it("counts every URL a wall was served for, not the wall's own address", async () => {
|
|
718
|
+
mockCrawlerRun.mockImplementationOnce(async () => {
|
|
719
|
+
for (const n of [1, 2, 3]) {
|
|
720
|
+
await runRequestHandler(authenticatedPage(docsPage(n)), docsPage(n).url);
|
|
721
|
+
}
|
|
722
|
+
for (const n of [4, 5, 6, 7, 8]) {
|
|
723
|
+
await runRequestHandler(authenticatedPage(wallAt('login')), `https://example.com/docs/${n}`);
|
|
724
|
+
}
|
|
725
|
+
return successfulRunStats;
|
|
726
|
+
});
|
|
727
|
+
await expect(collect(crawler, 'https://example.com/docs')).rejects.toThrow(/were login walls/i);
|
|
565
728
|
});
|
|
566
729
|
});
|
|
567
730
|
describe('authentication', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crawlee-crawler.test.js","sourceRoot":"","sources":["../../src/crawler/crawlee-crawler.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crawlee-crawler.test.js","sourceRoot":"","sources":["../../src/crawler/crawlee-crawler.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ export declare class DocsCrawler {
|
|
|
20
20
|
private failedPages;
|
|
21
21
|
/** Pages lost to a tolerated partial crawl. Only meaningful once crawl() has finished. */
|
|
22
22
|
get failedPageCount(): number;
|
|
23
|
+
private skippedLoginUrls;
|
|
24
|
+
/** Login walls left out of the index. Only meaningful once crawl() has finished. */
|
|
25
|
+
get skippedLoginPageUrls(): string[];
|
|
23
26
|
setStorageState(state: ValidatedStorageState): void;
|
|
24
27
|
crawl(url: string): AsyncGenerator<CrawlResult, void, unknown>;
|
|
25
28
|
abort(): void;
|
|
@@ -29,6 +29,11 @@ export class DocsCrawler {
|
|
|
29
29
|
get failedPageCount() {
|
|
30
30
|
return this.failedPages;
|
|
31
31
|
}
|
|
32
|
+
skippedLoginUrls = [];
|
|
33
|
+
/** Login walls left out of the index. Only meaningful once crawl() has finished. */
|
|
34
|
+
get skippedLoginPageUrls() {
|
|
35
|
+
return [...this.skippedLoginUrls];
|
|
36
|
+
}
|
|
32
37
|
setStorageState(state) {
|
|
33
38
|
this.storageState = state;
|
|
34
39
|
logger.info(`[DocsCrawler] Set storage state with ${state.cookies?.length || 0} cookies`);
|
|
@@ -37,6 +42,7 @@ export class DocsCrawler {
|
|
|
37
42
|
const startUrl = new URL(url);
|
|
38
43
|
logger.debug(`[DocsCrawler] Starting crawl of ${startUrl}`);
|
|
39
44
|
this.failedPages = 0;
|
|
45
|
+
this.skippedLoginUrls = [];
|
|
40
46
|
if (this.isAborting) {
|
|
41
47
|
logger.debug('[DocsCrawler] Crawl aborted');
|
|
42
48
|
return;
|
|
@@ -100,6 +106,7 @@ export class DocsCrawler {
|
|
|
100
106
|
}
|
|
101
107
|
finally {
|
|
102
108
|
this.failedPages = crawleeCrawler.failedPageCount;
|
|
109
|
+
this.skippedLoginUrls = crawleeCrawler.skippedLoginPageUrls;
|
|
103
110
|
if (this.activeCrawler === crawleeCrawler) {
|
|
104
111
|
this.activeCrawler = undefined;
|
|
105
112
|
}
|