n8n-nodes-seo-scanner 1.2.39 → 1.2.40
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/dist/SeoScanner.node.js
CHANGED
|
@@ -49,7 +49,7 @@ const cheerio = __importStar(require("cheerio"));
|
|
|
49
49
|
const GOOGLEBOT_UA = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
|
|
50
50
|
const DEFAULT_APP_BASE_URL = 'https://uopix.com';
|
|
51
51
|
const MAX_VISUAL_PREVIEW_PAGES = 12;
|
|
52
|
-
const NODE_ENGINE_VERSION = 'seo-uopix-node/1.2.
|
|
52
|
+
const NODE_ENGINE_VERSION = 'seo-uopix-node/1.2.39';
|
|
53
53
|
const NON_PAGE_EXTENSIONS_REGEX = /\.(?:jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|ppt|pptx|zip|rar|7z|mp3|mp4|avi|mov|webm|css|js|json|xml|woff|woff2|ttf|eot|ico)(?:$|\?)/i;
|
|
54
54
|
function asDataObject(value) {
|
|
55
55
|
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
package/dist/networkUtils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CrawlExtras } from './types';
|
|
2
|
-
export declare const DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
2
|
+
export declare const DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
|
|
3
3
|
type PageResponse = {
|
|
4
4
|
html: string;
|
|
5
5
|
finalUrl: string;
|
package/dist/networkUtils.js
CHANGED
|
@@ -50,10 +50,15 @@ const tls = __importStar(require("tls"));
|
|
|
50
50
|
const zlib = __importStar(require("zlib"));
|
|
51
51
|
const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
52
52
|
const dnsPromises = dns.promises;
|
|
53
|
-
exports.DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
53
|
+
exports.DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36';
|
|
54
54
|
const WIKIMEDIA_USER_AGENT = 'UopixSeoScanner/1.2.37 (+https://uopix.com/contacto)';
|
|
55
55
|
const DEFAULT_ACCEPT_LANGUAGE = 'en-US,en;q=0.8,es;q=0.6';
|
|
56
56
|
const RETRYABLE_STATUS_CODES = new Set([403, 408, 425, 429, 500, 502, 503, 504]);
|
|
57
|
+
const FALLBACK_USER_AGENTS = [
|
|
58
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15',
|
|
59
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
|
|
60
|
+
'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
|
|
61
|
+
];
|
|
57
62
|
const originRequestTails = new Map();
|
|
58
63
|
const originLastRequestAt = new Map();
|
|
59
64
|
function sleep(ms) {
|
|
@@ -92,12 +97,33 @@ function effectiveUserAgent(url, userAgent) {
|
|
|
92
97
|
return WIKIMEDIA_USER_AGENT;
|
|
93
98
|
return userAgent || exports.DEFAULT_USER_AGENT;
|
|
94
99
|
}
|
|
95
|
-
function
|
|
96
|
-
return
|
|
97
|
-
|
|
100
|
+
function isChromeLikeUserAgent(userAgent) {
|
|
101
|
+
return /chrome\/\d/i.test(userAgent) && !/(googlebot|bingbot|bot|crawler|spider)/i.test(userAgent);
|
|
102
|
+
}
|
|
103
|
+
function buildHeaders(url, userAgent, acceptLanguage, accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.5', options = {}) {
|
|
104
|
+
const resolvedUserAgent = effectiveUserAgent(url, userAgent);
|
|
105
|
+
const headers = {
|
|
106
|
+
'User-Agent': resolvedUserAgent,
|
|
98
107
|
'Accept': accept,
|
|
99
108
|
'Accept-Language': acceptLanguage || DEFAULT_ACCEPT_LANGUAGE,
|
|
100
109
|
};
|
|
110
|
+
const isDocument = options.isDocument !== false && accept.includes('text/html');
|
|
111
|
+
if (isDocument) {
|
|
112
|
+
headers['Upgrade-Insecure-Requests'] = '1';
|
|
113
|
+
headers['Sec-Fetch-Dest'] = 'document';
|
|
114
|
+
headers['Sec-Fetch-Mode'] = 'navigate';
|
|
115
|
+
headers['Sec-Fetch-Site'] = options.referer ? 'same-origin' : 'none';
|
|
116
|
+
headers['Sec-Fetch-User'] = '?1';
|
|
117
|
+
}
|
|
118
|
+
if (isChromeLikeUserAgent(resolvedUserAgent)) {
|
|
119
|
+
const chromeMajor = resolvedUserAgent.match(/chrome\/(\d+)/i)?.[1] || '131';
|
|
120
|
+
headers['sec-ch-ua'] = `"Chromium";v="${chromeMajor}", "Not(A:Brand";v="24", "Google Chrome";v="${chromeMajor}"`;
|
|
121
|
+
headers['sec-ch-ua-mobile'] = '?0';
|
|
122
|
+
headers['sec-ch-ua-platform'] = '"Windows"';
|
|
123
|
+
}
|
|
124
|
+
if (options.referer)
|
|
125
|
+
headers['Referer'] = options.referer;
|
|
126
|
+
return headers;
|
|
101
127
|
}
|
|
102
128
|
function parseRetryAfterMs(response) {
|
|
103
129
|
const value = response.headers.get('retry-after')?.trim();
|
|
@@ -115,10 +141,22 @@ function retryDelayMs(response, attempt, timeoutMs) {
|
|
|
115
141
|
const jitter = Math.floor(Math.random() * 250);
|
|
116
142
|
return Math.min(Math.max(fromHeader ?? 0, exponential + jitter), Math.min(timeoutMs, 10000));
|
|
117
143
|
}
|
|
118
|
-
function
|
|
119
|
-
if (
|
|
120
|
-
return
|
|
121
|
-
|
|
144
|
+
function rotatedUserAgent(originalUserAgent, attempt) {
|
|
145
|
+
if (attempt <= 0)
|
|
146
|
+
return originalUserAgent;
|
|
147
|
+
const candidate = FALLBACK_USER_AGENTS[(attempt - 1) % FALLBACK_USER_AGENTS.length];
|
|
148
|
+
return candidate || originalUserAgent;
|
|
149
|
+
}
|
|
150
|
+
function applyUserAgentToInit(init, userAgent) {
|
|
151
|
+
const headers = init.headers;
|
|
152
|
+
if (headers && typeof headers === 'object' && !Array.isArray(headers)) {
|
|
153
|
+
headers['User-Agent'] = userAgent;
|
|
154
|
+
if (!isChromeLikeUserAgent(userAgent)) {
|
|
155
|
+
delete headers['sec-ch-ua'];
|
|
156
|
+
delete headers['sec-ch-ua-mobile'];
|
|
157
|
+
delete headers['sec-ch-ua-platform'];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
122
160
|
}
|
|
123
161
|
async function waitForOriginSlot(url, minIntervalMs) {
|
|
124
162
|
const origin = getOrigin(url);
|
|
@@ -142,6 +180,9 @@ async function fetchWithPolicy(url, init, policy) {
|
|
|
142
180
|
let lastError;
|
|
143
181
|
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
144
182
|
await waitForOriginSlot(url, policy.minOriginIntervalMs ?? (isWikimediaUrl(url) ? 500 : 150));
|
|
183
|
+
if (policy.rotateUserAgentOnBlock && attempt > 0) {
|
|
184
|
+
applyUserAgentToInit(init, rotatedUserAgent(policy.userAgent, attempt));
|
|
185
|
+
}
|
|
145
186
|
const controller = new AbortController();
|
|
146
187
|
const timeout = setTimeout(() => controller.abort(), policy.timeoutMs);
|
|
147
188
|
try {
|
|
@@ -149,8 +190,7 @@ async function fetchWithPolicy(url, init, policy) {
|
|
|
149
190
|
...init,
|
|
150
191
|
signal: controller.signal,
|
|
151
192
|
});
|
|
152
|
-
|
|
153
|
-
if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt >= allowedRetries) {
|
|
193
|
+
if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt >= retries) {
|
|
154
194
|
return {
|
|
155
195
|
response,
|
|
156
196
|
cleanup: () => clearTimeout(timeout),
|
|
@@ -238,12 +278,13 @@ async function fetchPage(url, timeoutMs, opts = {}) {
|
|
|
238
278
|
return fetchPageWithBrowser(url, timeoutMs, userAgent, acceptLanguage);
|
|
239
279
|
}
|
|
240
280
|
const managedResponse = await fetchWithPolicy(url, {
|
|
241
|
-
headers: buildHeaders(url, userAgent, acceptLanguage),
|
|
281
|
+
headers: buildHeaders(url, userAgent, acceptLanguage, undefined, { isDocument: true, referer: getOrigin(url) }),
|
|
242
282
|
redirect: followRedirects ? 'follow' : 'manual',
|
|
243
283
|
}, {
|
|
244
284
|
timeoutMs,
|
|
245
285
|
userAgent,
|
|
246
|
-
retries:
|
|
286
|
+
retries: 3,
|
|
287
|
+
rotateUserAgentOnBlock: true,
|
|
247
288
|
});
|
|
248
289
|
const { response } = managedResponse;
|
|
249
290
|
const timeToFirstByteMs = Date.now() - start;
|
|
@@ -254,7 +295,7 @@ async function fetchPage(url, timeoutMs, opts = {}) {
|
|
|
254
295
|
finally {
|
|
255
296
|
managedResponse.cleanup();
|
|
256
297
|
}
|
|
257
|
-
if (browserFallbackOnForbidden && isBrowserChallenge(response.status, html)) {
|
|
298
|
+
if (browserFallbackOnForbidden && (response.status === 403 || isBrowserChallenge(response.status, html))) {
|
|
258
299
|
try {
|
|
259
300
|
return await fetchPageWithBrowser(url, timeoutMs, userAgent, acceptLanguage, true);
|
|
260
301
|
}
|
|
@@ -427,6 +468,7 @@ async function fetchText(url, timeoutMs, userAgent) {
|
|
|
427
468
|
timeoutMs,
|
|
428
469
|
userAgent,
|
|
429
470
|
retries: 2,
|
|
471
|
+
rotateUserAgentOnBlock: true,
|
|
430
472
|
});
|
|
431
473
|
const { response } = managedResponse;
|
|
432
474
|
let text;
|
package/dist/networkUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkUtils.js","sourceRoot":"","sources":["../nodes/SeoScanner/networkUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgOA,8BA4DC;AAED,0CAEC;AAED,kDAyBC;AAED,4CAcC;AAED,gCA+BC;AAED,kCAsBC;AAED,sDAwBC;AA6BD,8BA8BC;AAzdD,yCAA2B;AAC3B,yCAA2B;AAC3B,2CAA6B;AAC7B,0DAAkC;AAGlC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpB,QAAA,kBAAkB,GAAG,iHAAiH,CAAC;AACpJ,MAAM,oBAAoB,GAAG,sDAAsD,CAAC;AACpF,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAC1D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACjF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAuBtD,SAAS,KAAK,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC7B,IAAI,CAAC;QACJ,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,CAAC;IACZ,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IAClC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO;YACN,eAAe;YACf,eAAe;YACf,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,gBAAgB;YAChB,eAAe;SACf,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,SAAiB;IACzD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,0BAAkB;QAAE,OAAO,oBAAoB,CAAC;IACzF,OAAO,SAAS,IAAI,0BAAkB,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CACpB,GAAW,EACX,SAAiB,EACjB,cAAuB,EACvB,MAAM,GAAG,kFAAkF;IAE3F,OAAO;QACN,YAAY,EAAE,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC;QAChD,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,cAAc,IAAI,uBAAuB;KAC5D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAkB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,QAAyB,EAAE,OAAe,EAAE,SAAiB;IAClF,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,iBAAyB;IACrE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,iBAAiB,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,aAAqB;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,QAAQ;SACtB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACtB,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACJ,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,CAAC;IACd,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO;QAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAiB,EAAE,MAAqB;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,iBAAiB,CACtB,GAAG,EACH,MAAM,CAAC,mBAAmB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAC/D,CAAC;QACF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACjC,GAAG,IAAI;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC/E,OAAO;oBACN,QAAQ;oBACR,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;iBACpC,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM,KAAK,CAAC;YACpC,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC;IAED,MAAM,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,IAAY;IAC3D,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,GAAW,EACX,SAAiB,EACjB,SAAiB,EACjB,cAAuB,EACvB,WAAW,GAAG,KAAK;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,mBAAS,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,EAAE,yBAAyB,CAAC;SAC7E,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC9B,iBAAiB,EAAE,cAAc,IAAI,uBAAuB;SAC5D,CAAC,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;;oBACjF,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACpE,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACxC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc;YAC5D,OAAO,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,IAAI,WAAW;YAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC/D,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5C,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAC1C,OAAO;YACN,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC7B,cAAc;YACd,iBAAiB,EAAE,iBAAiB,IAAI,cAAc;YACtD,eAAe;SACf,CAAC;IACH,CAAC;YAAS,CAAC;QACV,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,SAAS,CAC9B,GAAW,EACX,SAAiB,EACjB,OAMI,EAAE;IAEN,MAAM,EACL,SAAS,GAAG,0BAAkB,EAC9B,eAAe,GAAG,IAAI,EACtB,cAAc,EACd,cAAc,GAAG,KAAK,EACtB,0BAA0B,GAAG,IAAI,GACjC,GAAG,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;QAClD,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC;QACrD,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;KAC/C,EAAE;QACF,SAAS;QACT,SAAS;QACT,OAAO,EAAE,CAAC;KACV,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACJ,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACV,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,0BAA0B,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;QAC7E,IAAI,CAAC;YACJ,OAAO,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,OAAO;QACN,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAG;QAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAClC,iBAAiB;QACjB,eAAe;KACf,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3G,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACxC,GAAW,EACX,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC;YACrC,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACN,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAClG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,SAAiB;IAC9F,IAAI,GAAG,GAAkB,UAAU,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,OAAO,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC1F,KAAK,EAAE,CAAC;YACR,GAAG,GAAG,QAAQ,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YAC3F,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACR,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO,CAAC;oBACP,KAAK,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,MAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrH,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;iBACtB,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,WAAW,CAChC,GAAW,EACX,SAAiB,EACjB,OAA+B,EAAE;IAEjC,MAAM,EAAE,SAAS,GAAG,0BAAkB,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC;YACrC,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAC1C,GAAW,EACX,SAAiB,EACjB,YAAoB,0BAAkB;IAEtC,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;YACvD,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;YACV,mBAAmB,EAAE,GAAG;SACxB,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,WAA0B,EAAE,KAAa;IAC9E,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC;YACJ,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;WACvB,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;WACnC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,SAAiB,EAAE,SAAiB;IAChF,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,OAAO,EAAE,YAAY,CACpB,GAAG,EACH,SAAS,EACT,uBAAuB,EACvB,+DAA+D,CAC/D;YACD,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACV,eAAe,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;YACN,IAAI;YACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"networkUtils.js","sourceRoot":"","sources":["../nodes/SeoScanner/networkUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsRA,8BA+DC;AAED,0CAEC;AAED,kDAyBC;AAED,4CAcC;AAED,gCA+BC;AAED,kCAsBC;AAED,sDAwBC;AA6BD,8BA+BC;AAnhBD,yCAA2B;AAC3B,yCAA2B;AAC3B,2CAA6B;AAC7B,0DAAkC;AAGlC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;AACpB,QAAA,kBAAkB,GAAG,iHAAiH,CAAC;AACpJ,MAAM,oBAAoB,GAAG,sDAAsD,CAAC;AACpF,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAC1D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEjF,MAAM,oBAAoB,GAAG;IAC5B,uHAAuH;IACvH,kFAAkF;IAClF,0EAA0E;CAC1E,CAAC;AACF,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAC5D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAyBtD,SAAS,KAAK,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC7B,IAAI,CAAC;QACJ,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,CAAC;IACZ,CAAC;AACF,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IAClC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO;YACN,eAAe;YACf,eAAe;YACf,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,cAAc;YACd,iBAAiB;YACjB,gBAAgB;YAChB,eAAe;SACf,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,SAAiB;IACzD,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,SAAS,KAAK,0BAAkB;QAAE,OAAO,oBAAoB,CAAC;IACzF,OAAO,SAAS,IAAI,0BAAkB,CAAC;AACxC,CAAC;AAID,SAAS,qBAAqB,CAAC,SAAiB;IAC/C,OAAO,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,yCAAyC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,YAAY,CACpB,GAAW,EACX,SAAiB,EACjB,cAAuB,EACvB,MAAM,GAAG,kFAAkF,EAC3F,UAAsD,EAAE;IAExD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,OAAO,GAA2B;QACvC,YAAY,EAAE,iBAAiB;QAC/B,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,cAAc,IAAI,uBAAuB;KAC5D,CAAC;IAGF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,KAAK,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAChF,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,2BAA2B,CAAC,GAAG,GAAG,CAAC;QAC3C,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC;QACvC,OAAO,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC;QACvC,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAC5E,OAAO,CAAC,WAAW,CAAC,GAAG,iBAAiB,WAAW,+CAA+C,WAAW,GAAG,CAAC;QACjH,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QACnC,OAAO,CAAC,oBAAoB,CAAC,GAAG,WAAW,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1D,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAkB;IAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,QAAyB,EAAE,OAAe,EAAE,SAAiB;IAClF,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,gBAAgB,CAAC,iBAAyB,EAAE,OAAe;IACnE,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAC3C,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpF,OAAO,SAAS,IAAI,iBAAiB,CAAC;AACvC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAiB,EAAE,SAAiB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAkC,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;QAE9D,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAQ,OAAkC,CAAC,WAAW,CAAC,CAAC;YACxD,OAAQ,OAAkC,CAAC,kBAAkB,CAAC,CAAC;YAC/D,OAAQ,OAAkC,CAAC,oBAAoB,CAAC,CAAC;QAClE,CAAC;IACF,CAAC;AACF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW,EAAE,aAAqB;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,QAAQ;SACtB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;SACtB,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvE,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACJ,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,CAAC;IACd,IAAI,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,OAAO;QAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAiB,EAAE,MAAqB;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,SAAkB,CAAC;IAEvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QACrD,MAAM,iBAAiB,CACtB,GAAG,EACH,MAAM,CAAC,mBAAmB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAC/D,CAAC;QAEF,IAAI,MAAM,CAAC,sBAAsB,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAClD,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBACjC,GAAG,IAAI;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aACzB,CAAC,CAAC;YAGH,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBACxE,OAAO;oBACN,QAAQ;oBACR,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;iBACpC,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,OAAO,IAAI,OAAO;gBAAE,MAAM,KAAK,CAAC;YACpC,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC;IACF,CAAC;IAED,MAAM,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB,EAAE,IAAY;IAC3D,IAAI,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,2EAA2E,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,KAAK,UAAU,oBAAoB,CAClC,GAAW,EACX,SAAiB,EACjB,SAAiB,EACjB,cAAuB,EACvB,WAAW,GAAG,KAAK;IAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,mBAAS,CAAC,MAAM,CAAC;YAChC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,EAAE,yBAAyB,CAAC;SAC7E,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QAC5D,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC9B,iBAAiB,EAAE,cAAc,IAAI,uBAAuB;SAC5D,CAAC,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBAC9B,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAAE,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;;oBACjF,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAChC,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACpE,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACxC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc;YAC5D,OAAO,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,IAAI,WAAW;YAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,eAAe,GAA2B,EAAE,CAAC;QACnD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAC/D,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;QAC5C,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;QAC1C,OAAO;YACN,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE;YAC7B,cAAc;YACd,iBAAiB,EAAE,iBAAiB,IAAI,cAAc;YACtD,eAAe;SACf,CAAC;IACH,CAAC;YAAS,CAAC;QACV,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,SAAS,CAC9B,GAAW,EACX,SAAiB,EACjB,OAMI,EAAE;IAEN,MAAM,EACL,SAAS,GAAG,0BAAkB,EAC9B,eAAe,GAAG,IAAI,EACtB,cAAc,EACd,cAAc,GAAG,KAAK,EACtB,0BAA0B,GAAG,IAAI,GACjC,GAAG,IAAI,CAAC;IACT,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,IAAI,cAAc,EAAE,CAAC;QACpB,OAAO,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;QAClD,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/G,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;KAC/C,EAAE;QACF,SAAS;QACT,SAAS;QACT,OAAO,EAAE,CAAC;QACV,sBAAsB,EAAE,IAAI;KAC5B,CAAC,CAAC;IACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAC7C,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACJ,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACV,eAAe,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAGD,IAAI,0BAA0B,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1G,IAAI,CAAC;YACJ,OAAO,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QACpF,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IAED,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,OAAO;QACN,IAAI;QACJ,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAG;QAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;QAClC,iBAAiB;QACjB,eAAe;KACf,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,IAAY;IAC3C,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3G,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACxC,GAAW,EACX,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC;YACrC,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,OAAO;YACN,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SAClG,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,gBAAgB,CAAC,UAAkB,EAAE,SAAiB,EAAE,SAAiB;IAC9F,IAAI,GAAG,GAAkB,UAAU,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,OAAO,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QAC3B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC1F,KAAK,EAAE,CAAC;YACR,GAAG,GAAG,QAAQ,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,MAAM;QACP,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAgB,UAAU,CAAC,IAAY;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YAC3F,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACzC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;oBACd,OAAO;gBACR,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO,CAAC;oBACP,KAAK,EAAE,OAAO,GAAG,IAAI,IAAI,EAAE;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,MAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;oBACrH,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,OAAO,EAAE,IAAI,CAAC,QAAQ;iBACtB,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,WAAW,CAChC,GAAW,EACX,SAAiB,EACjB,OAA+B,EAAE;IAEjC,MAAM,EAAE,SAAS,GAAG,0BAAkB,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC;YACrC,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC1B,CAAC;AACF,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAC1C,GAAW,EACX,SAAiB,EACjB,YAAoB,0BAAkB;IAEtC,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC;YACvD,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;YACV,mBAAmB,EAAE,GAAG;SACxB,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC1D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,WAA0B,EAAE,KAAa;IAC9E,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC;YACJ,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IACL,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;WACvB,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;WACnC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACF,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,SAAiB,EAAE,SAAiB;IAChF,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE;YAClD,OAAO,EAAE,YAAY,CACpB,GAAG,EACH,SAAS,EACT,uBAAuB,EACvB,+DAA+D,CAC/D;YACD,QAAQ,EAAE,QAAQ;SAClB,EAAE;YACF,SAAS;YACT,SAAS;YACT,OAAO,EAAE,CAAC;YACV,sBAAsB,EAAE,IAAI;SAC5B,CAAC,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;QACrC,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACJ,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACV,eAAe,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO;YACN,IAAI;YACJ,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,UAAU,EAAE,QAAQ,CAAC,MAAM;SAC3B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC/C,CAAC;AACF,CAAC"}
|
|
@@ -49,7 +49,7 @@ const cheerio = __importStar(require("cheerio"));
|
|
|
49
49
|
const GOOGLEBOT_UA = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
|
|
50
50
|
const DEFAULT_APP_BASE_URL = 'https://uopix.com';
|
|
51
51
|
const MAX_VISUAL_PREVIEW_PAGES = 12;
|
|
52
|
-
const NODE_ENGINE_VERSION = 'seo-uopix-node/1.2.
|
|
52
|
+
const NODE_ENGINE_VERSION = 'seo-uopix-node/1.2.39';
|
|
53
53
|
const NON_PAGE_EXTENSIONS_REGEX = /\.(?:jpg|jpeg|png|gif|webp|svg|pdf|doc|docx|xls|xlsx|ppt|pptx|zip|rar|7z|mp3|mp4|avi|mov|webm|css|js|json|xml|woff|woff2|ttf|eot|ico)(?:$|\?)/i;
|
|
54
54
|
function asDataObject(value) {
|
|
55
55
|
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
@@ -50,10 +50,15 @@ const tls = __importStar(require("tls"));
|
|
|
50
50
|
const zlib = __importStar(require("zlib"));
|
|
51
51
|
const puppeteer_1 = __importDefault(require("puppeteer"));
|
|
52
52
|
const dnsPromises = dns.promises;
|
|
53
|
-
exports.DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/
|
|
53
|
+
exports.DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36';
|
|
54
54
|
const WIKIMEDIA_USER_AGENT = 'UopixSeoScanner/1.2.37 (+https://uopix.com/contacto)';
|
|
55
55
|
const DEFAULT_ACCEPT_LANGUAGE = 'en-US,en;q=0.8,es;q=0.6';
|
|
56
56
|
const RETRYABLE_STATUS_CODES = new Set([403, 408, 425, 429, 500, 502, 503, 504]);
|
|
57
|
+
const FALLBACK_USER_AGENTS = [
|
|
58
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15',
|
|
59
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
|
|
60
|
+
'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
|
|
61
|
+
];
|
|
57
62
|
const originRequestTails = new Map();
|
|
58
63
|
const originLastRequestAt = new Map();
|
|
59
64
|
function sleep(ms) {
|
|
@@ -92,12 +97,33 @@ function effectiveUserAgent(url, userAgent) {
|
|
|
92
97
|
return WIKIMEDIA_USER_AGENT;
|
|
93
98
|
return userAgent || exports.DEFAULT_USER_AGENT;
|
|
94
99
|
}
|
|
95
|
-
function
|
|
96
|
-
return
|
|
97
|
-
|
|
100
|
+
function isChromeLikeUserAgent(userAgent) {
|
|
101
|
+
return /chrome\/\d/i.test(userAgent) && !/(googlebot|bingbot|bot|crawler|spider)/i.test(userAgent);
|
|
102
|
+
}
|
|
103
|
+
function buildHeaders(url, userAgent, acceptLanguage, accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,text/plain;q=0.8,*/*;q=0.5', options = {}) {
|
|
104
|
+
const resolvedUserAgent = effectiveUserAgent(url, userAgent);
|
|
105
|
+
const headers = {
|
|
106
|
+
'User-Agent': resolvedUserAgent,
|
|
98
107
|
'Accept': accept,
|
|
99
108
|
'Accept-Language': acceptLanguage || DEFAULT_ACCEPT_LANGUAGE,
|
|
100
109
|
};
|
|
110
|
+
const isDocument = options.isDocument !== false && accept.includes('text/html');
|
|
111
|
+
if (isDocument) {
|
|
112
|
+
headers['Upgrade-Insecure-Requests'] = '1';
|
|
113
|
+
headers['Sec-Fetch-Dest'] = 'document';
|
|
114
|
+
headers['Sec-Fetch-Mode'] = 'navigate';
|
|
115
|
+
headers['Sec-Fetch-Site'] = options.referer ? 'same-origin' : 'none';
|
|
116
|
+
headers['Sec-Fetch-User'] = '?1';
|
|
117
|
+
}
|
|
118
|
+
if (isChromeLikeUserAgent(resolvedUserAgent)) {
|
|
119
|
+
const chromeMajor = resolvedUserAgent.match(/chrome\/(\d+)/i)?.[1] || '131';
|
|
120
|
+
headers['sec-ch-ua'] = `"Chromium";v="${chromeMajor}", "Not(A:Brand";v="24", "Google Chrome";v="${chromeMajor}"`;
|
|
121
|
+
headers['sec-ch-ua-mobile'] = '?0';
|
|
122
|
+
headers['sec-ch-ua-platform'] = '"Windows"';
|
|
123
|
+
}
|
|
124
|
+
if (options.referer)
|
|
125
|
+
headers['Referer'] = options.referer;
|
|
126
|
+
return headers;
|
|
101
127
|
}
|
|
102
128
|
function parseRetryAfterMs(response) {
|
|
103
129
|
const value = response.headers.get('retry-after')?.trim();
|
|
@@ -115,10 +141,22 @@ function retryDelayMs(response, attempt, timeoutMs) {
|
|
|
115
141
|
const jitter = Math.floor(Math.random() * 250);
|
|
116
142
|
return Math.min(Math.max(fromHeader ?? 0, exponential + jitter), Math.min(timeoutMs, 10000));
|
|
117
143
|
}
|
|
118
|
-
function
|
|
119
|
-
if (
|
|
120
|
-
return
|
|
121
|
-
|
|
144
|
+
function rotatedUserAgent(originalUserAgent, attempt) {
|
|
145
|
+
if (attempt <= 0)
|
|
146
|
+
return originalUserAgent;
|
|
147
|
+
const candidate = FALLBACK_USER_AGENTS[(attempt - 1) % FALLBACK_USER_AGENTS.length];
|
|
148
|
+
return candidate || originalUserAgent;
|
|
149
|
+
}
|
|
150
|
+
function applyUserAgentToInit(init, userAgent) {
|
|
151
|
+
const headers = init.headers;
|
|
152
|
+
if (headers && typeof headers === 'object' && !Array.isArray(headers)) {
|
|
153
|
+
headers['User-Agent'] = userAgent;
|
|
154
|
+
if (!isChromeLikeUserAgent(userAgent)) {
|
|
155
|
+
delete headers['sec-ch-ua'];
|
|
156
|
+
delete headers['sec-ch-ua-mobile'];
|
|
157
|
+
delete headers['sec-ch-ua-platform'];
|
|
158
|
+
}
|
|
159
|
+
}
|
|
122
160
|
}
|
|
123
161
|
async function waitForOriginSlot(url, minIntervalMs) {
|
|
124
162
|
const origin = getOrigin(url);
|
|
@@ -142,6 +180,9 @@ async function fetchWithPolicy(url, init, policy) {
|
|
|
142
180
|
let lastError;
|
|
143
181
|
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
144
182
|
await waitForOriginSlot(url, policy.minOriginIntervalMs ?? (isWikimediaUrl(url) ? 500 : 150));
|
|
183
|
+
if (policy.rotateUserAgentOnBlock && attempt > 0) {
|
|
184
|
+
applyUserAgentToInit(init, rotatedUserAgent(policy.userAgent, attempt));
|
|
185
|
+
}
|
|
145
186
|
const controller = new AbortController();
|
|
146
187
|
const timeout = setTimeout(() => controller.abort(), policy.timeoutMs);
|
|
147
188
|
try {
|
|
@@ -149,8 +190,7 @@ async function fetchWithPolicy(url, init, policy) {
|
|
|
149
190
|
...init,
|
|
150
191
|
signal: controller.signal,
|
|
151
192
|
});
|
|
152
|
-
|
|
153
|
-
if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt >= allowedRetries) {
|
|
193
|
+
if (!RETRYABLE_STATUS_CODES.has(response.status) || attempt >= retries) {
|
|
154
194
|
return {
|
|
155
195
|
response,
|
|
156
196
|
cleanup: () => clearTimeout(timeout),
|
|
@@ -238,12 +278,13 @@ async function fetchPage(url, timeoutMs, opts = {}) {
|
|
|
238
278
|
return fetchPageWithBrowser(url, timeoutMs, userAgent, acceptLanguage);
|
|
239
279
|
}
|
|
240
280
|
const managedResponse = await fetchWithPolicy(url, {
|
|
241
|
-
headers: buildHeaders(url, userAgent, acceptLanguage),
|
|
281
|
+
headers: buildHeaders(url, userAgent, acceptLanguage, undefined, { isDocument: true, referer: getOrigin(url) }),
|
|
242
282
|
redirect: followRedirects ? 'follow' : 'manual',
|
|
243
283
|
}, {
|
|
244
284
|
timeoutMs,
|
|
245
285
|
userAgent,
|
|
246
|
-
retries:
|
|
286
|
+
retries: 3,
|
|
287
|
+
rotateUserAgentOnBlock: true,
|
|
247
288
|
});
|
|
248
289
|
const { response } = managedResponse;
|
|
249
290
|
const timeToFirstByteMs = Date.now() - start;
|
|
@@ -254,7 +295,7 @@ async function fetchPage(url, timeoutMs, opts = {}) {
|
|
|
254
295
|
finally {
|
|
255
296
|
managedResponse.cleanup();
|
|
256
297
|
}
|
|
257
|
-
if (browserFallbackOnForbidden && isBrowserChallenge(response.status, html)) {
|
|
298
|
+
if (browserFallbackOnForbidden && (response.status === 403 || isBrowserChallenge(response.status, html))) {
|
|
258
299
|
try {
|
|
259
300
|
return await fetchPageWithBrowser(url, timeoutMs, userAgent, acceptLanguage, true);
|
|
260
301
|
}
|
|
@@ -427,6 +468,7 @@ async function fetchText(url, timeoutMs, userAgent) {
|
|
|
427
468
|
timeoutMs,
|
|
428
469
|
userAgent,
|
|
429
470
|
retries: 2,
|
|
471
|
+
rotateUserAgentOnBlock: true,
|
|
430
472
|
});
|
|
431
473
|
const { response } = managedResponse;
|
|
432
474
|
let text;
|
package/package.json
CHANGED