@google-psat/analysis-utils 0.10.2 → 0.12.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.
@@ -36,13 +36,15 @@ const simple_cookie_1 = require("simple-cookie");
36
36
  const common_1 = require("@google-psat/common");
37
37
  const parseNetworkDataToCookieData_1 = require("./parseNetworkDataToCookieData");
38
38
  const collateCookieData_1 = __importDefault(require("./collateCookieData"));
39
+ const constants_1 = require("../constants");
39
40
  class BrowserManagement {
40
- constructor(viewportConfig, isHeadless, pageWaitTime, shouldLogDebug, indent, spinnies) {
41
+ constructor(viewportConfig, isHeadless, pageWaitTime, shouldLogDebug, indent, isSiteMap, spinnies, selectors) {
41
42
  this.indent = 0;
42
43
  this.viewportConfig = viewportConfig;
43
44
  this.browser = null;
44
45
  this.isHeadless = isHeadless;
45
46
  this.pageWaitTime = pageWaitTime;
47
+ this.isSiteMap = isSiteMap;
46
48
  this.pages = {};
47
49
  this.pageFrames = {};
48
50
  this.pageResponses = {};
@@ -51,13 +53,15 @@ class BrowserManagement {
51
53
  this.pageResourcesMaps = {};
52
54
  this.spinnies = spinnies;
53
55
  this.indent = indent;
56
+ this.selectors = selectors;
57
+ this.erroredOutUrls = {};
54
58
  }
55
- debugLog(msg) {
59
+ debugLog(msg, shouldShowWarning) {
56
60
  if (this.shouldLogDebug && this.spinnies) {
57
61
  this.spinnies.add(msg, {
58
62
  text: msg,
59
- //@ts-ignore
60
- succeedColor: 'white',
63
+ succeedColor: shouldShowWarning ? 'yellowBright' : 'white',
64
+ spinnerColor: shouldShowWarning ? 'yellowBright' : 'white',
61
65
  status: 'non-spinnable',
62
66
  indent: this.indent,
63
67
  });
@@ -75,45 +79,146 @@ class BrowserManagement {
75
79
  headless: this.isHeadless,
76
80
  args,
77
81
  });
78
- this.debugLog('Browser intialized');
82
+ this.debugLog('Browser initialized');
79
83
  });
80
84
  }
81
- clickOnAcceptBanner(url) {
85
+ clickOnButtonUsingCMPSelectors(page) {
82
86
  return __awaiter(this, void 0, void 0, function* () {
83
- const page = this.pages[url];
84
- if (!page) {
85
- throw new Error('No page with the provided id was found');
87
+ let clickedOnButton = false;
88
+ yield Promise.all(constants_1.CMP_SELECTORS.map((selector) => __awaiter(this, void 0, void 0, function* () {
89
+ const buttonToClick = yield page.$(selector);
90
+ if (buttonToClick) {
91
+ yield buttonToClick.click();
92
+ clickedOnButton = true;
93
+ }
94
+ })));
95
+ return clickedOnButton;
96
+ });
97
+ }
98
+ clickOnGDPRUsingTextSelectors(page, textSelectors) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ if (textSelectors.length === 0) {
101
+ return false;
86
102
  }
87
- yield page.evaluate(() => {
88
- var _a, _b;
89
- const bannerNodes = Array.from((((_a = document.querySelector('body')) === null || _a === void 0 ? void 0 : _a.childNodes) || []))
90
- .filter((node) => node && (node === null || node === void 0 ? void 0 : node.tagName) === 'DIV')
91
- .filter((node) => {
103
+ const result = yield page.evaluate((args) => {
104
+ var _a, _b, _c;
105
+ const bannerNodes = (_c = (_b = Array.from((((_a = document.querySelector('body')) === null || _a === void 0 ? void 0 : _a.childNodes) || []))) === null || _b === void 0 ? void 0 : _b.filter((node) => node && (node === null || node === void 0 ? void 0 : node.tagName) === 'DIV')) === null || _c === void 0 ? void 0 : _c.filter((node) => {
92
106
  if (!node || !(node === null || node === void 0 ? void 0 : node.textContent)) {
93
107
  return false;
94
108
  }
95
- const regex = /\b(consent|policy|cookie policy|privacy policy|personalize|preferences)\b/;
109
+ const regex = /\b(consent|policy|cookie policy|privacy policy|personalize|preferences|cookies)\b/;
96
110
  return regex.test(node.textContent.toLowerCase());
97
111
  });
98
- const buttonToClick = bannerNodes
99
- .map((node) => {
100
- const buttonNodes = Array.from(node.getElementsByTagName('button'));
101
- const isButtonForAccept = buttonNodes.filter((cnode) => cnode.textContent &&
102
- (cnode.textContent.toLowerCase().includes('accept') ||
103
- cnode.textContent.toLowerCase().includes('allow') ||
104
- cnode.textContent.toLowerCase().includes('agree')));
105
- return isButtonForAccept[0];
106
- })
107
- .filter((button) => button);
108
- (_b = buttonToClick[0]) === null || _b === void 0 ? void 0 : _b.click();
109
- });
110
- yield (0, common_1.delay)(this.pageWaitTime / 2);
112
+ return bannerNodes === null || bannerNodes === void 0 ? void 0 : bannerNodes.some((node) => {
113
+ const buttonNodes = Array.from(node === null || node === void 0 ? void 0 : node.getElementsByTagName('button'));
114
+ return buttonNodes === null || buttonNodes === void 0 ? void 0 : buttonNodes.some((cnode) => {
115
+ if (!(cnode === null || cnode === void 0 ? void 0 : cnode.textContent)) {
116
+ return false;
117
+ }
118
+ return args.some((text) => {
119
+ var _a;
120
+ if ((_a = cnode === null || cnode === void 0 ? void 0 : cnode.textContent) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(text)) {
121
+ cnode === null || cnode === void 0 ? void 0 : cnode.click();
122
+ return true;
123
+ }
124
+ return false;
125
+ });
126
+ });
127
+ });
128
+ }, textSelectors);
129
+ return result;
130
+ });
131
+ }
132
+ clickOnAcceptBanner(url) {
133
+ return __awaiter(this, void 0, void 0, function* () {
134
+ var _a;
135
+ try {
136
+ const page = this.pages[url];
137
+ if (!page) {
138
+ throw new Error('No page with the provided id was found');
139
+ }
140
+ const didSelectorsFromUserWork = yield this.useSelectorsToSelectGDPRBanner(page);
141
+ if (didSelectorsFromUserWork) {
142
+ this.debugLog('GDPR banner found and accepted');
143
+ yield (0, common_1.delay)(this.pageWaitTime / 2);
144
+ return;
145
+ }
146
+ // Click using CSS selectors.
147
+ const clickedUsingCMPCSSSelectors = yield this.clickOnButtonUsingCMPSelectors(page);
148
+ if (clickedUsingCMPCSSSelectors) {
149
+ this.debugLog('GDPR banner found and accepted');
150
+ yield (0, common_1.delay)(this.pageWaitTime / 2);
151
+ return;
152
+ }
153
+ const buttonClicked = yield this.clickOnGDPRUsingTextSelectors(page, constants_1.CMP_TEXT_SELECTORS);
154
+ if (buttonClicked) {
155
+ this.debugLog('GDPR banner found and accepted');
156
+ yield (0, common_1.delay)(this.pageWaitTime / 2);
157
+ return;
158
+ }
159
+ this.debugLog('GDPR banner could not be found');
160
+ yield (0, common_1.delay)(this.pageWaitTime / 2);
161
+ return;
162
+ }
163
+ catch (error) {
164
+ if (error instanceof Error) {
165
+ this.pushErrors(url, {
166
+ errorMessage: error.message,
167
+ stackTrace: (_a = error === null || error === void 0 ? void 0 : error.stack) !== null && _a !== void 0 ? _a : '',
168
+ errorName: error === null || error === void 0 ? void 0 : error.name,
169
+ });
170
+ }
171
+ }
172
+ });
173
+ }
174
+ useSelectorsToSelectGDPRBanner(page) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ var _a, _b, _c;
177
+ let clickedOnButton = false;
178
+ if (!this.selectors) {
179
+ return false;
180
+ }
181
+ yield Promise.all((_a = this.selectors) === null || _a === void 0 ? void 0 : _a.cssSelectors.map((selector) => __awaiter(this, void 0, void 0, function* () {
182
+ const buttonToClick = yield page.$(selector);
183
+ if (buttonToClick) {
184
+ clickedOnButton = true;
185
+ this.debugLog('GDPR banner found and accepted');
186
+ yield buttonToClick.click();
187
+ }
188
+ })));
189
+ if (clickedOnButton) {
190
+ return clickedOnButton;
191
+ }
192
+ clickedOnButton = yield page.evaluate((xPaths) => {
193
+ const rootElement = document.querySelector('html');
194
+ if (!rootElement) {
195
+ return false;
196
+ }
197
+ return xPaths.some((xPath) => {
198
+ const _acceptButton = document
199
+ .evaluate(xPath, rootElement)
200
+ .iterateNext();
201
+ if (!_acceptButton) {
202
+ return false;
203
+ }
204
+ if (_acceptButton instanceof HTMLElement) {
205
+ _acceptButton === null || _acceptButton === void 0 ? void 0 : _acceptButton.click();
206
+ return true;
207
+ }
208
+ return false;
209
+ });
210
+ }, (_b = this.selectors) === null || _b === void 0 ? void 0 : _b.xPath);
211
+ if (clickedOnButton) {
212
+ return clickedOnButton;
213
+ }
214
+ clickedOnButton = yield this.clickOnGDPRUsingTextSelectors(page, (_c = this.selectors) === null || _c === void 0 ? void 0 : _c.textSelectors);
215
+ return clickedOnButton;
111
216
  });
112
217
  }
113
218
  openPage() {
114
219
  return __awaiter(this, void 0, void 0, function* () {
115
220
  if (!this.browser) {
116
- throw new Error('Browser not intialized');
221
+ throw new Error('Browser not initialized');
117
222
  }
118
223
  const sitePage = yield this.browser.newPage();
119
224
  yield sitePage.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36');
@@ -126,20 +231,50 @@ class BrowserManagement {
126
231
  return sitePage;
127
232
  });
128
233
  }
234
+ pushErrors(url, objectToPushed) {
235
+ if (!this.erroredOutUrls[url]) {
236
+ this.erroredOutUrls[url] = [];
237
+ }
238
+ this.erroredOutUrls[url].push(objectToPushed);
239
+ }
129
240
  navigateToPage(url) {
130
241
  return __awaiter(this, void 0, void 0, function* () {
242
+ var _a;
131
243
  const page = this.pages[url];
132
244
  if (!page) {
133
- throw new Error('no page with the provided id was found');
245
+ throw new Error('No page with the provided ID was found');
134
246
  }
135
247
  this.debugLog(`Starting navigation to URL: ${url}`);
136
248
  try {
137
- yield page.goto(url, { timeout: 10000 });
249
+ const response = yield page.goto(url, {
250
+ timeout: 10000,
251
+ });
252
+ const SUCCESS_RESPONSE = 200;
253
+ if (response && response.status() !== SUCCESS_RESPONSE) {
254
+ this.pushErrors(url, {
255
+ errorMessage: `Invalid server response: ${response.status()}`,
256
+ errorCode: `${response.status()}`,
257
+ errorName: `INVALID_SERVER_RESPONSE`,
258
+ });
259
+ this.debugLog(`Warning: Server error found in URL: ${url}`, true);
260
+ if (!this.isSiteMap) {
261
+ throw new Error(`Invalid server response: ${response.status()}`);
262
+ }
263
+ }
138
264
  this.debugLog(`Navigation completed to URL: ${url}`);
139
265
  }
140
266
  catch (error) {
141
- this.debugLog(`Navigation did not finish in 10 seconds moving on to scrolling`);
142
- //ignore
267
+ if (error instanceof Error) {
268
+ this.pushErrors(url, {
269
+ errorMessage: error.message,
270
+ stackTrace: (_a = error === null || error === void 0 ? void 0 : error.stack) !== null && _a !== void 0 ? _a : '',
271
+ errorName: error === null || error === void 0 ? void 0 : error.name,
272
+ });
273
+ if ((error === null || error === void 0 ? void 0 : error.name) === 'TimeoutError' || (error === null || error === void 0 ? void 0 : error.name) === 'i') {
274
+ this.debugLog(`Navigation did not finish on URL ${url} in 10 seconds moving on to scrolling`);
275
+ }
276
+ throw error;
277
+ }
143
278
  }
144
279
  });
145
280
  }
@@ -147,7 +282,7 @@ class BrowserManagement {
147
282
  return __awaiter(this, void 0, void 0, function* () {
148
283
  const page = this.pages[url];
149
284
  if (!page) {
150
- throw new Error('no page with the provided id was found');
285
+ throw new Error('No page with the provided ID was found');
151
286
  }
152
287
  try {
153
288
  yield page.evaluate(() => {
@@ -155,7 +290,7 @@ class BrowserManagement {
155
290
  });
156
291
  }
157
292
  catch (error) {
158
- this.debugLog('Scrolled to end of page');
293
+ this.debugLog('Scrolled to the end of page');
159
294
  //ignore
160
295
  }
161
296
  this.debugLog(`Scrolling on URL: ${url}`);
@@ -372,9 +507,9 @@ class BrowserManagement {
372
507
  return __awaiter(this, void 0, void 0, function* () {
373
508
  const page = this.pages[pageId];
374
509
  if (!page) {
375
- throw new Error(`no page with the provided id was found:${pageId}`);
510
+ throw new Error(`No page with the provided ID was found:${pageId}`);
376
511
  }
377
- this.debugLog('Attaching network event listeners to page');
512
+ this.debugLog('Attaching network event listeners to the page');
378
513
  const cdpSession = yield page.createCDPSession();
379
514
  yield cdpSession.send('Target.setAutoAttach', {
380
515
  // If this is set to true, debugger will be attached to every new target that is added to the current target.
@@ -452,31 +587,45 @@ class BrowserManagement {
452
587
  }
453
588
  insertAndRunDOMQueryFunctions(url, Libraries) {
454
589
  return __awaiter(this, void 0, void 0, function* () {
455
- const page = this.pages[url];
456
- if (!page) {
457
- throw new Error('no page with the provided id was found');
590
+ var _a;
591
+ try {
592
+ const page = this.pages[url];
593
+ if (!page) {
594
+ throw new Error('No page with the provided ID was found');
595
+ }
596
+ const domQueryMatches = {};
597
+ yield Promise.all(Libraries.map((_a) => __awaiter(this, [_a], void 0, function* ({ domQueryFunction, name }) {
598
+ if (domQueryFunction && name) {
599
+ yield page.addScriptTag({
600
+ content: `window.${name.replaceAll('-', '')} = ${domQueryFunction}`,
601
+ });
602
+ const queryResult = yield page.evaluate((library) => {
603
+ //@ts-ignore
604
+ const functionDOMQuery = window[`${library}`];
605
+ if (!functionDOMQuery) {
606
+ return [];
607
+ }
608
+ return functionDOMQuery();
609
+ }, name.replaceAll('-', ''));
610
+ domQueryMatches[name] = {
611
+ domQuerymatches: queryResult,
612
+ };
613
+ }
614
+ })));
615
+ const mainFrameUrl = new URL(page.url()).origin;
616
+ return { [mainFrameUrl]: domQueryMatches };
458
617
  }
459
- const domQueryMatches = {};
460
- yield Promise.all(Libraries.map((_a) => __awaiter(this, [_a], void 0, function* ({ domQueryFunction, name }) {
461
- if (domQueryFunction && name) {
462
- yield page.addScriptTag({
463
- content: `window.${name.replaceAll('-', '')} = ${domQueryFunction}`,
618
+ catch (error) {
619
+ if (error instanceof Error) {
620
+ this.pushErrors(url, {
621
+ errorMessage: error.message,
622
+ stackTrace: (_a = error === null || error === void 0 ? void 0 : error.stack) !== null && _a !== void 0 ? _a : '',
623
+ errorName: error === null || error === void 0 ? void 0 : error.name,
464
624
  });
465
- const queryResult = yield page.evaluate((library) => {
466
- //@ts-ignore
467
- const functionDOMQuery = window[`${library}`];
468
- if (!functionDOMQuery) {
469
- return [];
470
- }
471
- return functionDOMQuery();
472
- }, name.replaceAll('-', ''));
473
- domQueryMatches[name] = {
474
- domQuerymatches: queryResult,
475
- };
625
+ throw error;
476
626
  }
477
- })));
478
- const mainFrameUrl = new URL(page.url()).origin;
479
- return { [mainFrameUrl]: domQueryMatches };
627
+ return {};
628
+ }
480
629
  });
481
630
  }
482
631
  analyzeCookies(userProvidedUrls, shouldSkipAcceptBanner, Libraries) {
@@ -489,26 +638,48 @@ class BrowserManagement {
489
638
  yield this.attachListenersToPage(url);
490
639
  })));
491
640
  // Navigate to URLs
492
- yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
493
- yield this.navigateToPage(url);
494
- })));
641
+ // eslint-disable-next-line no-useless-catch -- Because we are rethrowing the same error no need to create a new Error instance
642
+ try {
643
+ yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
644
+ yield this.navigateToPage(url);
645
+ })));
646
+ }
647
+ catch (error) {
648
+ if (!this.isSiteMap) {
649
+ throw error;
650
+ }
651
+ }
495
652
  // Delay for page to load resources
496
653
  yield (0, common_1.delay)(this.pageWaitTime / 2);
497
654
  // Accept Banners
498
655
  if (!shouldSkipAcceptBanner) {
499
656
  // delay
500
- yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
501
- yield this.clickOnAcceptBanner(url);
502
- })));
657
+ try {
658
+ yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
659
+ yield this.clickOnAcceptBanner(url);
660
+ })));
661
+ }
662
+ catch (error) {
663
+ if (!this.isSiteMap) {
664
+ throw error;
665
+ }
666
+ }
503
667
  }
504
668
  // Scroll to bottom of the page
505
669
  yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
506
670
  yield this.pageScroll(url);
507
671
  })));
508
- yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
509
- const newMatches = yield this.insertAndRunDOMQueryFunctions(url, Libraries);
510
- consolidatedDOMQueryMatches = Object.assign(Object.assign({}, consolidatedDOMQueryMatches), newMatches);
511
- })));
672
+ try {
673
+ yield Promise.all(userProvidedUrls.map((url) => __awaiter(this, void 0, void 0, function* () {
674
+ const newMatches = yield this.insertAndRunDOMQueryFunctions(url, Libraries);
675
+ consolidatedDOMQueryMatches = Object.assign(Object.assign({}, consolidatedDOMQueryMatches), newMatches);
676
+ })));
677
+ }
678
+ catch (error) {
679
+ if (!this.isSiteMap) {
680
+ throw error;
681
+ }
682
+ }
512
683
  // Delay for page to load more resources
513
684
  yield (0, common_1.delay)(this.pageWaitTime / 2);
514
685
  const mainFrameUrlIdMap = yield this.getMainframeIds();
@@ -543,7 +714,11 @@ class BrowserManagement {
543
714
  cookieData: collatedCookieData,
544
715
  };
545
716
  })));
546
- return { result, consolidatedDOMQueryMatches };
717
+ return {
718
+ result,
719
+ consolidatedDOMQueryMatches,
720
+ erroredOutUrls: this.erroredOutUrls,
721
+ };
547
722
  });
548
723
  }
549
724
  deinitialize() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browserManagement/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browserManagement/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CMP_TEXT_SELECTORS = exports.CMP_SELECTORS = void 0;
4
+ /*
5
+ * Copyright 2024 Google LLC
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * https://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ exports.CMP_SELECTORS = [
20
+ '.fc-cta-consent',
21
+ '.cky-btn-accept',
22
+ '.cc-accept-all',
23
+ '.cmplz-accept',
24
+ '.cc-allow',
25
+ '#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll',
26
+ '#CybotCookiebotDialog button[value=”accept”]',
27
+ '#onetrust-accept-btn-handler',
28
+ '.iubenda-cs-accept-btn',
29
+ ];
30
+ exports.CMP_TEXT_SELECTORS = ['accept', 'allow', 'agree', 'ok'];
31
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACU,QAAA,aAAa,GAAG;IAC3B,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,wDAAwD;IACxD,8CAA8C;IAC9C,8BAA8B;IAC9B,wBAAwB;CACzB,CAAC;AAEW,QAAA,kBAAkB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC"}
@@ -33,39 +33,46 @@ const common_1 = require("@google-psat/common");
33
33
  * Internal dependencies.
34
34
  */
35
35
  const browserManagement_1 = require("../browserManagement");
36
- const analyzeCookiesUrlsAndFetchResources = (urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, shouldSkipAcceptBanner_1, verbose_1, spinnies_1, ...args_1) => __awaiter(void 0, [urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, shouldSkipAcceptBanner_1, verbose_1, spinnies_1, ...args_1], void 0, function* (urls, Libraries, isHeadless, delayTime, cookieDictionary, shouldSkipAcceptBanner, verbose, spinnies, indent = 4) {
37
- const browser = new browserManagement_1.BrowserManagement({
38
- width: 1440,
39
- height: 790,
40
- deviceScaleFactor: 1,
41
- }, isHeadless, delayTime, verbose, indent, spinnies);
42
- yield browser.initializeBrowser(true);
43
- const { result: analysisCookieData, consolidatedDOMQueryMatches } = yield browser.analyzeCookies(urls, shouldSkipAcceptBanner, Libraries);
44
- const resources = browser.getResources(urls);
45
- const res = analysisCookieData.map(({ url: pageUrl, cookieData }) => {
46
- Object.entries(cookieData).forEach(([, frameData]) => {
47
- const frameCookies = frameData.frameCookies;
48
- Object.entries(frameCookies).forEach(([key, cookie]) => {
49
- const analytics = (0, common_1.findAnalyticsMatch)(cookie.parsedCookie.name, cookieDictionary);
50
- frameCookies[key.trim()].analytics = {
51
- platform: (analytics === null || analytics === void 0 ? void 0 : analytics.platform) || 'Unknown',
52
- category: (analytics === null || analytics === void 0 ? void 0 : analytics.category) || 'Uncategorized',
53
- gdprUrl: (analytics === null || analytics === void 0 ? void 0 : analytics.gdprUrl) || '',
54
- description: analytics === null || analytics === void 0 ? void 0 : analytics.description,
55
- };
56
- frameCookies[key.trim()].isFirstParty = (0, common_1.isFirstParty)(cookie.parsedCookie.domain, pageUrl);
57
- frameCookies[key.trim()].blockingStatus = (0, common_1.deriveBlockingStatus)(cookie.networkEvents);
36
+ const analyzeCookiesUrlsAndFetchResources = (urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, shouldSkipAcceptBanner_1, verbose_1, isSitemap_1, selectors_1, spinnies_1, ...args_1) => __awaiter(void 0, [urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, shouldSkipAcceptBanner_1, verbose_1, isSitemap_1, selectors_1, spinnies_1, ...args_1], void 0, function* (urls, Libraries, isHeadless, delayTime, cookieDictionary, shouldSkipAcceptBanner, verbose, isSitemap, selectors, spinnies, indent = 4) {
37
+ // eslint-disable-next-line no-useless-catch -- Because we are rethrowing the same error no need to create a new Error instance
38
+ try {
39
+ const browser = new browserManagement_1.BrowserManagement({
40
+ width: 1440,
41
+ height: 790,
42
+ deviceScaleFactor: 1,
43
+ }, isHeadless, delayTime, verbose, indent, isSitemap, spinnies, selectors);
44
+ yield browser.initializeBrowser(true);
45
+ const { result: analysisCookieData, consolidatedDOMQueryMatches, erroredOutUrls, } = yield browser.analyzeCookies(urls, shouldSkipAcceptBanner, Libraries);
46
+ const resources = browser.getResources(urls);
47
+ const res = analysisCookieData.map(({ url: pageUrl, cookieData }) => {
48
+ Object.entries(cookieData).forEach(([, frameData]) => {
49
+ const frameCookies = frameData.frameCookies;
50
+ Object.entries(frameCookies).forEach(([key, cookie]) => {
51
+ const analytics = (0, common_1.findAnalyticsMatch)(cookie.parsedCookie.name, cookieDictionary);
52
+ frameCookies[key.trim()].analytics = {
53
+ platform: (analytics === null || analytics === void 0 ? void 0 : analytics.platform) || 'Unknown',
54
+ category: (analytics === null || analytics === void 0 ? void 0 : analytics.category) || 'Uncategorized',
55
+ gdprUrl: (analytics === null || analytics === void 0 ? void 0 : analytics.gdprUrl) || '',
56
+ description: analytics === null || analytics === void 0 ? void 0 : analytics.description,
57
+ };
58
+ frameCookies[key.trim()].isFirstParty = (0, common_1.isFirstParty)(cookie.parsedCookie.domain, pageUrl);
59
+ frameCookies[key.trim()].blockingStatus = (0, common_1.deriveBlockingStatus)(cookie.networkEvents);
60
+ });
58
61
  });
62
+ return {
63
+ url: pageUrl,
64
+ cookieData,
65
+ resources: resources[pageUrl],
66
+ erroredOutUrls,
67
+ domQueryMatches: consolidatedDOMQueryMatches[pageUrl],
68
+ };
59
69
  });
60
- return {
61
- url: pageUrl,
62
- cookieData,
63
- resources: resources[pageUrl],
64
- domQueryMatches: consolidatedDOMQueryMatches[pageUrl],
65
- };
66
- });
67
- yield browser.deinitialize();
68
- return res;
70
+ yield browser.deinitialize();
71
+ return res;
72
+ }
73
+ catch (error) {
74
+ throw error;
75
+ }
69
76
  });
70
77
  exports.analyzeCookiesUrlsAndFetchResources = analyzeCookiesUrlsAndFetchResources;
71
78
  //# sourceMappingURL=analyzeCookiesUrlsAndFetchResources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeCookiesUrlsAndFetchResources.js","sourceRoot":"","sources":["../../src/procedures/analyzeCookiesUrlsAndFetchResources.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH;;GAEG;AACH,gDAM6B;AAE7B;;GAEG;AACH,4DAAyD;AAElD,MAAM,mCAAmC,GAAG,iIAUjD,EAAE,wKATF,IAAc,EACd,SAA4B,EAC5B,UAAmB,EACnB,SAAiB,EACjB,gBAAgC,EAChC,sBAA+B,EAC/B,OAAgB,EAChB,QAAmB,EACnB,MAAM,GAAG,CAAC;IAEV,MAAM,OAAO,GAAG,IAAI,qCAAiB,CACnC;QACE,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,GAAG;QACX,iBAAiB,EAAE,CAAC;KACrB,EACD,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,CACT,CAAC;IAEF,MAAM,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,GAC/D,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;QAClE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE;YACnD,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;gBACrD,MAAM,SAAS,GAAG,IAAA,2BAAkB,EAClC,MAAM,CAAC,YAAY,CAAC,IAAI,EACxB,gBAAgB,CACjB,CAAC;gBAEF,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,GAAG;oBACnC,QAAQ,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,KAAI,SAAS;oBAC1C,QAAQ,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,KAAI,eAAe;oBAChD,OAAO,EAAE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,KAAI,EAAE;oBACjC,WAAW,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW;iBACpC,CAAC;gBAEF,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,GAAG,IAAA,qBAAY,EAClD,MAAM,CAAC,YAAY,CAAC,MAAM,EAC1B,OAAO,CACR,CAAC;gBAEF,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,cAAc,GAAG,IAAA,6BAAoB,EAC5D,MAAM,CAAC,aAAa,CACrB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,EAAE,OAAO;YACZ,UAAU;YACV,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;YAC7B,eAAe,EAAE,2BAA2B,CAAC,OAAO,CAAC;SACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC;IAC7B,OAAO,GAAG,CAAC;AACb,CAAC,CAAA,CAAC;AAnEW,QAAA,mCAAmC,uCAmE9C"}
1
+ {"version":3,"file":"analyzeCookiesUrlsAndFetchResources.js","sourceRoot":"","sources":["../../src/procedures/analyzeCookiesUrlsAndFetchResources.ts"],"names":[],"mappings":"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"}
@@ -33,25 +33,31 @@ const common_1 = require("@google-psat/common");
33
33
  * Internal dependencies.
34
34
  */
35
35
  const analyzeCookiesUrlsAndFetchResources_1 = require("./analyzeCookiesUrlsAndFetchResources");
36
- const analyzeCookiesUrlsInBatchesAndFetchResources = (urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, ...args_1) => __awaiter(void 0, [urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, ...args_1], void 0, function* (urls, Libraries, isHeadless, delayTime, cookieDictionary, batchSize = 3, spinnies, shouldSkipAcceptBanner = false, verbose = false, indent = 4) {
37
- let report = [];
38
- for (let i = 0; i < urls.length; i += batchSize) {
39
- const start = i;
40
- const end = Math.min(urls.length - 1, i + batchSize - 1);
41
- spinnies &&
42
- indent === 4 &&
43
- spinnies.add(`cookie-batch-spinner${start + 1}-${end + 1}`, {
44
- text: `Analyzing cookies in URLs ${start + 1} - ${end + 1}`,
45
- indent,
46
- });
47
- const urlsWindow = urls.slice(start, end + 1);
48
- const cookieAnalysisAndFetchedResources = yield (0, analyzeCookiesUrlsAndFetchResources_1.analyzeCookiesUrlsAndFetchResources)(urlsWindow, Libraries, isHeadless, delayTime, cookieDictionary, shouldSkipAcceptBanner, verbose, spinnies);
49
- report = [...report, ...cookieAnalysisAndFetchedResources];
50
- spinnies &&
51
- indent === 4 &&
52
- (0, common_1.removeAndAddNewSpinnerText)(spinnies, `cookie-batch-spinner${start + 1}-${end + 1}`, `Done analyzing cookies in URLs ${start + 1} - ${end + 1}`, indent);
36
+ const analyzeCookiesUrlsInBatchesAndFetchResources = (urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, ...args_1) => __awaiter(void 0, [urls_1, Libraries_1, isHeadless_1, delayTime_1, cookieDictionary_1, ...args_1], void 0, function* (urls, Libraries, isHeadless, delayTime, cookieDictionary, batchSize = 3, spinnies, shouldSkipAcceptBanner = false, verbose = false, indent = 4, selectors) {
37
+ // eslint-disable-next-line no-useless-catch -- Because we are rethrowing the same error no need to create a new Error instance
38
+ try {
39
+ let report = [];
40
+ for (let i = 0; i < urls.length; i += batchSize) {
41
+ const start = i;
42
+ const end = Math.min(urls.length - 1, i + batchSize - 1);
43
+ spinnies &&
44
+ indent === 4 &&
45
+ spinnies.add(`cookie-batch-spinner${start + 1}-${end + 1}`, {
46
+ text: `Analyzing cookies in URLs ${start + 1} - ${end + 1}`,
47
+ indent,
48
+ });
49
+ const urlsWindow = urls.slice(start, end + 1);
50
+ const cookieAnalysisAndFetchedResources = yield (0, analyzeCookiesUrlsAndFetchResources_1.analyzeCookiesUrlsAndFetchResources)(urlsWindow, Libraries, isHeadless, delayTime, cookieDictionary, shouldSkipAcceptBanner, verbose, urls.length > 1, selectors, spinnies);
51
+ report = [...report, ...cookieAnalysisAndFetchedResources];
52
+ spinnies &&
53
+ indent === 4 &&
54
+ (0, common_1.removeAndAddNewSpinnerText)(spinnies, `cookie-batch-spinner${start + 1}-${end + 1}`, `Done analyzing cookies in URLs ${start + 1} - ${end + 1}`, indent);
55
+ }
56
+ return report;
57
+ }
58
+ catch (error) {
59
+ throw error;
53
60
  }
54
- return report;
55
61
  });
56
62
  exports.analyzeCookiesUrlsInBatchesAndFetchResources = analyzeCookiesUrlsInBatchesAndFetchResources;
57
63
  //# sourceMappingURL=analyzeCookiesUrlsInBatchesAndFetchResources.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzeCookiesUrlsInBatchesAndFetchResources.js","sourceRoot":"","sources":["../../src/procedures/analyzeCookiesUrlsInBatchesAndFetchResources.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH;;GAEG;AACH,gDAM6B;AAE7B;;GAEG;AACH,+FAA4F;AAErF,MAAM,4CAA4C,GAAG,gFAW1D,EAAE,uHAVF,IAAc,EACd,SAA4B,EAC5B,UAAmB,EACnB,SAAiB,EACjB,gBAAgC,EAChC,SAAS,GAAG,CAAC,EACb,QAAmB,EACnB,sBAAsB,GAAG,KAAK,EAC9B,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,CAAC;IAEV,IAAI,MAAM,GAeJ,EAAE,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;QAEzD,QAAQ;YACN,MAAM,KAAK,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE;gBAC1D,IAAI,EAAE,6BAA6B,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;gBAC3D,MAAM;aACP,CAAC,CAAC;QAEL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAE9C,MAAM,iCAAiC,GACrC,MAAM,IAAA,yEAAmC,EACvC,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,OAAO,EACP,QAAQ,CACT,CAAC;QAEJ,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,iCAAiC,CAAC,CAAC;QAE3D,QAAQ;YACN,MAAM,KAAK,CAAC;YACZ,IAAA,mCAA0B,EACxB,QAAQ,EACR,uBAAuB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAC7C,kCAAkC,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EAC1D,MAAM,CACP,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AAnEW,QAAA,4CAA4C,gDAmEvD"}
1
+ {"version":3,"file":"analyzeCookiesUrlsInBatchesAndFetchResources.js","sourceRoot":"","sources":["../../src/procedures/analyzeCookiesUrlsInBatchesAndFetchResources.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH;;GAEG;AACH,gDAQ6B;AAE7B;;GAEG;AACH,+FAA4F;AAErF,MAAM,4CAA4C,GAAG,gFAY1D,EAAE,uHAXF,IAAc,EACd,SAA4B,EAC5B,UAAmB,EACnB,SAAiB,EACjB,gBAAgC,EAChC,SAAS,GAAG,CAAC,EACb,QAAmB,EACnB,sBAAsB,GAAG,KAAK,EAC9B,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,CAAC,EACV,SAAqB;IAErB,+HAA+H;IAC/H,IAAI,CAAC;QACH,IAAI,MAAM,GAgBJ,EAAE,CAAC;QAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;YAEzD,QAAQ;gBACN,MAAM,KAAK,CAAC;gBACZ,QAAQ,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE;oBAC1D,IAAI,EAAE,6BAA6B,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;oBAC3D,MAAM;iBACP,CAAC,CAAC;YAEL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAE9C,MAAM,iCAAiC,GACrC,MAAM,IAAA,yEAAmC,EACvC,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,OAAO,EACP,IAAI,CAAC,MAAM,GAAG,CAAC,EACf,SAAS,EACT,QAAQ,CACT,CAAC;YAEJ,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,iCAAiC,CAAC,CAAC;YAE3D,QAAQ;gBACN,MAAM,KAAK,CAAC;gBACZ,IAAA,mCAA0B,EACxB,QAAQ,EACR,uBAAuB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAC7C,kCAAkC,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EAC1D,MAAM,CACP,CAAC;QACN,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAA,CAAC;AA5EW,QAAA,4CAA4C,gDA4EvD"}
@@ -15,11 +15,9 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.analyzeTechnologiesUrlsInBatches = exports.analyzeCookiesUrlsInBatchesAndFetchResources = exports.analyzeCookiesUrlsAndFetchResources = void 0;
18
+ exports.analyzeCookiesUrlsInBatchesAndFetchResources = exports.analyzeCookiesUrlsAndFetchResources = void 0;
19
19
  var analyzeCookiesUrlsAndFetchResources_1 = require("./analyzeCookiesUrlsAndFetchResources");
20
20
  Object.defineProperty(exports, "analyzeCookiesUrlsAndFetchResources", { enumerable: true, get: function () { return analyzeCookiesUrlsAndFetchResources_1.analyzeCookiesUrlsAndFetchResources; } });
21
21
  var analyzeCookiesUrlsInBatchesAndFetchResources_1 = require("./analyzeCookiesUrlsInBatchesAndFetchResources");
22
22
  Object.defineProperty(exports, "analyzeCookiesUrlsInBatchesAndFetchResources", { enumerable: true, get: function () { return analyzeCookiesUrlsInBatchesAndFetchResources_1.analyzeCookiesUrlsInBatchesAndFetchResources; } });
23
- var analyzeTechnologiesUrlsInBatches_1 = require("./analyzeTechnologiesUrlsInBatches");
24
- Object.defineProperty(exports, "analyzeTechnologiesUrlsInBatches", { enumerable: true, get: function () { return analyzeTechnologiesUrlsInBatches_1.analyzeTechnologiesUrlsInBatches; } });
25
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,6FAA4F;AAAnF,0JAAA,mCAAmC,OAAA;AAC5C,+GAA8G;AAArG,4KAAA,4CAA4C,OAAA;AACrD,uFAAsF;AAA7E,oJAAA,gCAAgC,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/procedures/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,6FAA4F;AAAnF,0JAAA,mCAAmC,OAAA;AAC5C,+GAA8G;AAArG,4KAAA,4CAA4C,OAAA"}
@@ -2,7 +2,7 @@
2
2
  * External dependencies.
3
3
  */
4
4
  import { Browser, HTTPResponse, Page, Protocol } from 'puppeteer';
5
- import { type ScriptTagUnderCheck, type LibraryData, type LibraryMatchers } from '@google-psat/common';
5
+ import { type ScriptTagUnderCheck, type LibraryData, type LibraryMatchers, type SingleURLError, type Selectors } from '@google-psat/common';
6
6
  /**
7
7
  * Internal dependencies.
8
8
  */
@@ -13,18 +13,25 @@ export declare class BrowserManagement {
13
13
  isHeadless: boolean;
14
14
  pageWaitTime: number;
15
15
  pages: Record<string, Page>;
16
+ erroredOutUrls: Record<string, SingleURLError[]>;
16
17
  pageFrames: Record<string, Record<string, string>>;
17
18
  pageResponses: Record<string, Record<string, ResponseData>>;
18
19
  pageRequests: Record<string, Record<string, RequestData>>;
19
20
  pageResourcesMaps: Record<string, Record<string, ScriptTagUnderCheck>>;
20
21
  shouldLogDebug: boolean;
21
22
  spinnies: Spinnies | undefined;
23
+ isSiteMap: boolean;
22
24
  indent: number;
23
- constructor(viewportConfig: ViewportConfig, isHeadless: boolean, pageWaitTime: number, shouldLogDebug: boolean, indent: number, spinnies?: Spinnies);
24
- debugLog(msg: any): void;
25
+ selectors: Selectors | undefined;
26
+ constructor(viewportConfig: ViewportConfig, isHeadless: boolean, pageWaitTime: number, shouldLogDebug: boolean, indent: number, isSiteMap: boolean, spinnies?: Spinnies, selectors?: Selectors);
27
+ debugLog(msg: string, shouldShowWarning?: boolean): void;
25
28
  initializeBrowser(enable3pCookiePhaseout: boolean): Promise<void>;
29
+ clickOnButtonUsingCMPSelectors(page: Page): Promise<boolean>;
30
+ clickOnGDPRUsingTextSelectors(page: Page, textSelectors: string[]): Promise<boolean>;
26
31
  clickOnAcceptBanner(url: string): Promise<void>;
32
+ useSelectorsToSelectGDPRBanner(page: Page): Promise<boolean>;
27
33
  openPage(): Promise<Page>;
34
+ pushErrors(url: string, objectToPushed: SingleURLError): void;
28
35
  navigateToPage(url: string): Promise<void>;
29
36
  pageScroll(url: string): Promise<void>;
30
37
  responseEventListener(pageId: string, response: HTTPResponse): void;
@@ -50,6 +57,7 @@ export declare class BrowserManagement {
50
57
  consolidatedDOMQueryMatches: {
51
58
  [key: string]: LibraryData;
52
59
  };
60
+ erroredOutUrls: Record<string, SingleURLError[]>;
53
61
  }>;
54
62
  deinitialize(): Promise<void>;
55
63
  }
@@ -0,0 +1,2 @@
1
+ export declare const CMP_SELECTORS: string[];
2
+ export declare const CMP_TEXT_SELECTORS: string[];
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * External dependencies.
3
3
  */
4
- import { type CookieDatabase, type LibraryMatchers } from '@google-psat/common';
5
- export declare const analyzeCookiesUrlsAndFetchResources: (urls: string[], Libraries: LibraryMatchers[], isHeadless: boolean, delayTime: number, cookieDictionary: CookieDatabase, shouldSkipAcceptBanner: boolean, verbose: boolean, spinnies?: Spinnies, indent?: number) => Promise<{
4
+ import { type CookieDatabase, type LibraryMatchers, type Selectors } from '@google-psat/common';
5
+ export declare const analyzeCookiesUrlsAndFetchResources: (urls: string[], Libraries: LibraryMatchers[], isHeadless: boolean, delayTime: number, cookieDictionary: CookieDatabase, shouldSkipAcceptBanner: boolean, verbose: boolean, isSitemap: boolean, selectors?: Selectors, spinnies?: Spinnies, indent?: number) => Promise<{
6
6
  url: string;
7
7
  cookieData: import("../browserManagement/types").CookieDataFromNetwork;
8
8
  resources: any;
9
+ erroredOutUrls: Record<string, import("@google-psat/common").SingleURLError[]>;
9
10
  domQueryMatches: import("@google-psat/common").LibraryData;
10
11
  }[]>;
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * External dependencies.
3
3
  */
4
- import { type CookieData, type CookieDatabase, LibraryData, type LibraryMatchers } from '@google-psat/common';
5
- export declare const analyzeCookiesUrlsInBatchesAndFetchResources: (urls: string[], Libraries: LibraryMatchers[], isHeadless: boolean, delayTime: number, cookieDictionary: CookieDatabase, batchSize?: number, spinnies?: Spinnies, shouldSkipAcceptBanner?: boolean, verbose?: boolean, indent?: number) => Promise<{
4
+ import { type CookieData, type CookieDatabase, LibraryData, type LibraryMatchers, type Selectors, type SingleURLError } from '@google-psat/common';
5
+ export declare const analyzeCookiesUrlsInBatchesAndFetchResources: (urls: string[], Libraries: LibraryMatchers[], isHeadless: boolean, delayTime: number, cookieDictionary: CookieDatabase, batchSize?: number, spinnies?: Spinnies, shouldSkipAcceptBanner?: boolean, verbose?: boolean, indent?: number, selectors?: Selectors) => Promise<{
6
6
  url: string;
7
7
  cookieData: {
8
8
  [frameUrl: string]: {
@@ -17,4 +17,5 @@ export declare const analyzeCookiesUrlsInBatchesAndFetchResources: (urls: string
17
17
  type?: string;
18
18
  }[];
19
19
  domQueryMatches: LibraryData;
20
+ erroredOutUrls: Record<string, SingleURLError[]>;
20
21
  }[]>;
@@ -1,3 +1,2 @@
1
1
  export { analyzeCookiesUrlsAndFetchResources } from './analyzeCookiesUrlsAndFetchResources';
2
2
  export { analyzeCookiesUrlsInBatchesAndFetchResources } from './analyzeCookiesUrlsInBatchesAndFetchResources';
3
- export { analyzeTechnologiesUrlsInBatches } from './analyzeTechnologiesUrlsInBatches';
@@ -13,11 +13,6 @@ export type CookiesObjects = {
13
13
  [key: string]: Cookie;
14
14
  };
15
15
  export type ParsedCookie = SimpleCookie;
16
- export interface TechnologyDetail {
17
- name: string;
18
- categories: string[];
19
- }
20
- export type TechnologyDetailList = Array<TechnologyDetail>;
21
16
  export interface CookieLogDetails extends Omit<Cookie, 'sameSite' | 'size' | 'session' | 'priority' | 'sameParty' | 'sourceScheme' | 'sourcePort'> {
22
17
  name: string;
23
18
  domain: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google-psat/analysis-utils",
3
- "version": "0.10.2",
3
+ "version": "0.12.0",
4
4
  "description": "A package for CLI analysis",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist-types/index.d.ts",
@@ -38,10 +38,9 @@
38
38
  "dependencies": {
39
39
  "@google-psat/common": "*",
40
40
  "chalk": "^5.3.0",
41
- "puppeteer": "^22.10.0",
41
+ "puppeteer": "22.15.0",
42
42
  "simple-cookie": "^1.0.15",
43
- "tldts": "^6.0.14",
44
- "wappalyzer": "^6.10.66"
43
+ "tldts": "^6.0.14"
45
44
  },
46
45
  "devDependencies": {
47
46
  "tsc-watch": "^6.0.4",
@@ -1,64 +0,0 @@
1
- "use strict";
2
- /*
3
- * Copyright 2023 Google LLC
4
- *
5
- * Licensed under the Apache License, Version 2.0 (the "License");
6
- * you may not use this file except in compliance with the License.
7
- * You may obtain a copy of the License at
8
- *
9
- * https://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software
12
- * distributed under the License is distributed on an "AS IS" BASIS,
13
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- * See the License for the specific language governing permissions and
15
- * limitations under the License.
16
- */
17
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
- return new (P || (P = Promise))(function (resolve, reject) {
20
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
- step((generator = generator.apply(thisArg, _arguments || [])).next());
24
- });
25
- };
26
- var __importDefault = (this && this.__importDefault) || function (mod) {
27
- return (mod && mod.__esModule) ? mod : { "default": mod };
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.analyzeTechnologiesUrlsInBatches = void 0;
31
- /**
32
- * External dependencies.
33
- */
34
- // @ts-ignore Package does not support typescript.
35
- const wappalyzer_1 = __importDefault(require("wappalyzer"));
36
- const common_1 = require("@google-psat/common");
37
- const analyzeTechnologiesUrlsInBatches = (urls_1, ...args_1) => __awaiter(void 0, [urls_1, ...args_1], void 0, function* (urls, batchSize = 3, spinnies, indent = 4) {
38
- const wappalyzer = new wappalyzer_1.default();
39
- let report = [];
40
- for (let i = 0; i < urls.length; i += batchSize) {
41
- const start = i;
42
- const end = Math.min(urls.length - 1, i + batchSize - 1);
43
- yield wappalyzer.init();
44
- spinnies &&
45
- indent === 4 &&
46
- spinnies.add(`tech-batch-spinner${start + 1}-${end + 1}`, {
47
- text: `Analyzing technologies in URLs ${start + 1} - ${end + 1}`,
48
- indent,
49
- });
50
- const urlsWindow = urls.slice(start, end + 1);
51
- const technologyAnalysis = yield Promise.all(urlsWindow.map((url) => __awaiter(void 0, void 0, void 0, function* () {
52
- const { technologies } = yield (yield wappalyzer.open(url)).analyze();
53
- return technologies;
54
- })));
55
- report = [...report, ...technologyAnalysis];
56
- spinnies &&
57
- indent === 4 &&
58
- (0, common_1.removeAndAddNewSpinnerText)(spinnies, `tech-batch-spinner${start + 1}-${end + 1}`, `Done analyzing technology in URLs ${start + 1} - ${end + 1}`, indent);
59
- yield wappalyzer.destroy();
60
- }
61
- return report;
62
- });
63
- exports.analyzeTechnologiesUrlsInBatches = analyzeTechnologiesUrlsInBatches;
64
- //# sourceMappingURL=analyzeTechnologiesUrlsInBatches.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeTechnologiesUrlsInBatches.js","sourceRoot":"","sources":["../../src/procedures/analyzeTechnologiesUrlsInBatches.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;AAEH;;GAEG;AACH,kDAAkD;AAClD,4DAAqC;AACrC,gDAAiE;AAO1D,MAAM,gCAAgC,GAAG,oBAKb,EAAE,2DAJnC,IAAmB,EACnB,SAAS,GAAG,CAAC,EACb,QAAkB,EAClB,MAAM,GAAG,CAAC;IAEV,MAAM,UAAU,GAAG,IAAI,oBAAW,EAAE,CAAC;IAErC,IAAI,MAAM,GAA2B,EAAE,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;QAExB,QAAQ;YACN,MAAM,KAAK,CAAC;YACZ,QAAQ,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAAE;gBACxD,IAAI,EAAE,kCAAkC,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;gBAChE,MAAM;aACP,CAAC,CAAC;QAEL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAE9C,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,UAAU,CAAC,GAAG,CAAC,CAAO,GAAG,EAAE,EAAE;YAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACtE,OAAO,YAAY,CAAC;QACtB,CAAC,CAAA,CAAC,CACH,CAAC;QAEF,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAE5C,QAAQ;YACN,MAAM,KAAK,CAAC;YACZ,IAAA,mCAA0B,EACxB,QAAQ,EACR,qBAAqB,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,EAC3C,qCAAqC,KAAK,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,EAC7D,MAAM,CACP,CAAC;QACJ,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AA7CW,QAAA,gCAAgC,oCA6C3C"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Internal dependencies.
3
- */
4
- import { TechnologyDetailList } from '../types';
5
- export declare const analyzeTechnologiesUrlsInBatches: (urls: Array<string>, batchSize: number | undefined, spinnies: Spinnies, indent?: number) => Promise<TechnologyDetailList[]>;