webpeel 0.17.24 → 0.17.26
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/core/auto-interact.d.ts +24 -0
- package/dist/core/auto-interact.d.ts.map +1 -0
- package/dist/core/auto-interact.js +247 -0
- package/dist/core/auto-interact.js.map +1 -0
- package/dist/core/browser-fetch.d.ts.map +1 -1
- package/dist/core/browser-fetch.js +21 -0
- package/dist/core/browser-fetch.js.map +1 -1
- package/dist/core/domain-extractors.d.ts +2 -0
- package/dist/core/domain-extractors.d.ts.map +1 -1
- package/dist/core/domain-extractors.js +3 -1
- package/dist/core/domain-extractors.js.map +1 -1
- package/dist/core/http-fetch.d.ts +2 -0
- package/dist/core/http-fetch.d.ts.map +1 -1
- package/dist/core/http-fetch.js.map +1 -1
- package/dist/core/pipeline.d.ts +2 -0
- package/dist/core/pipeline.d.ts.map +1 -1
- package/dist/core/pipeline.js +18 -0
- package/dist/core/pipeline.js.map +1 -1
- package/dist/core/search-provider.d.ts +35 -0
- package/dist/core/search-provider.d.ts.map +1 -1
- package/dist/core/search-provider.js +142 -26
- package/dist/core/search-provider.js.map +1 -1
- package/dist/core/watch-manager.d.ts +32 -0
- package/dist/core/watch-manager.d.ts.map +1 -1
- package/dist/core/watch-manager.js +42 -0
- package/dist/core/watch-manager.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server/routes/demo.d.ts +1 -1
- package/dist/server/routes/demo.d.ts.map +1 -1
- package/dist/server/routes/demo.js +162 -8
- package/dist/server/routes/demo.js.map +1 -1
- package/dist/server/routes/watch.d.ts.map +1 -1
- package/dist/server/routes/watch.js +37 -3
- package/dist/server/routes/watch.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-interact: automatically dismiss cookie banners, consent popups,
|
|
3
|
+
* overlay modals, and optionally click "load more" / "show all" buttons.
|
|
4
|
+
*
|
|
5
|
+
* Runs after page.goto() and before content extraction.
|
|
6
|
+
* Never blocks extraction — each interaction has a tight timeout.
|
|
7
|
+
* Total budget: 3s max.
|
|
8
|
+
*/
|
|
9
|
+
import type { Page } from 'playwright';
|
|
10
|
+
export interface AutoInteractResult {
|
|
11
|
+
cookieBannerDismissed: boolean;
|
|
12
|
+
consentHandled: boolean;
|
|
13
|
+
loadMoreClicked: number;
|
|
14
|
+
overlaysDismissed: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Automatically interact with the page to dismiss common UI overlays before
|
|
18
|
+
* content extraction. Never throws — all errors are swallowed.
|
|
19
|
+
*
|
|
20
|
+
* @param page - Playwright page (already navigated)
|
|
21
|
+
* @returns Summary of what was dismissed
|
|
22
|
+
*/
|
|
23
|
+
export declare function autoInteract(page: Page): Promise<AutoInteractResult>;
|
|
24
|
+
//# sourceMappingURL=auto-interact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-interact.d.ts","sourceRoot":"","sources":["../../src/core/auto-interact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAyKD;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2E1E"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-interact: automatically dismiss cookie banners, consent popups,
|
|
3
|
+
* overlay modals, and optionally click "load more" / "show all" buttons.
|
|
4
|
+
*
|
|
5
|
+
* Runs after page.goto() and before content extraction.
|
|
6
|
+
* Never blocks extraction — each interaction has a tight timeout.
|
|
7
|
+
* Total budget: 3s max.
|
|
8
|
+
*/
|
|
9
|
+
// ── Selector lists ─────────────────────────────────────────────────────────
|
|
10
|
+
const COOKIE_DISMISS_SELECTORS = [
|
|
11
|
+
// OneTrust (very common consent management platform)
|
|
12
|
+
'#onetrust-accept-btn-handler',
|
|
13
|
+
// Cookiebot
|
|
14
|
+
'#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll',
|
|
15
|
+
// Cookie Consent library
|
|
16
|
+
'.cc-btn.cc-dismiss',
|
|
17
|
+
'.cc-btn.cc-allow',
|
|
18
|
+
// Osano
|
|
19
|
+
'.osano-cm-accept',
|
|
20
|
+
'.osano-cm-accept-all',
|
|
21
|
+
// TrustArc
|
|
22
|
+
'#truste-consent-button',
|
|
23
|
+
// Quantcast
|
|
24
|
+
'#qc-cmp2-ui button[mode="primary"]',
|
|
25
|
+
// Didomi
|
|
26
|
+
'#didomi-notice-agree-button',
|
|
27
|
+
// Testing library markers
|
|
28
|
+
'[data-testid="cookie-policy-dialog-accept-button"]',
|
|
29
|
+
'[data-testid="accept-cookies"]',
|
|
30
|
+
'[data-testid="cookie-accept"]',
|
|
31
|
+
// ARIA labels
|
|
32
|
+
'button[aria-label*="cookie" i]',
|
|
33
|
+
'button[aria-label*="accept cookie" i]',
|
|
34
|
+
'button[aria-label*="agree" i]',
|
|
35
|
+
'button[aria-label*="consent" i]',
|
|
36
|
+
// Class-based matchers (broad)
|
|
37
|
+
'[class*="cookie"] button[class*="accept"]',
|
|
38
|
+
'[class*="cookie"] button[class*="dismiss"]',
|
|
39
|
+
'[class*="cookie"] button[class*="close"]',
|
|
40
|
+
'[class*="cookie"] button[class*="agree"]',
|
|
41
|
+
'[class*="cookie"] button[class*="allow"]',
|
|
42
|
+
'[class*="consent"] button[class*="accept"]',
|
|
43
|
+
'[class*="consent"] button[class*="agree"]',
|
|
44
|
+
'[class*="consent"] button[class*="allow"]',
|
|
45
|
+
'[id*="cookie"] button[class*="accept"]',
|
|
46
|
+
'[id*="cookie"] button[class*="agree"]',
|
|
47
|
+
'.cookie-banner button:first-of-type',
|
|
48
|
+
'.cookie-notice button:first-of-type',
|
|
49
|
+
'#cookie-notice button:first-of-type',
|
|
50
|
+
];
|
|
51
|
+
const CONSENT_SELECTORS = [
|
|
52
|
+
// GDPR / privacy
|
|
53
|
+
'[class*="gdpr"] button[class*="accept"]',
|
|
54
|
+
'[class*="gdpr"] button[class*="agree"]',
|
|
55
|
+
'[class*="privacy"] button[class*="accept"]',
|
|
56
|
+
'[class*="privacy"] button[class*="agree"]',
|
|
57
|
+
// Modal/overlay consent
|
|
58
|
+
'.modal-overlay [class*="accept"]',
|
|
59
|
+
'[role="dialog"] button[class*="accept"]',
|
|
60
|
+
'[role="dialog"] button[class*="agree"]',
|
|
61
|
+
'[role="alertdialog"] button[class*="accept"]',
|
|
62
|
+
// Age gates and terms
|
|
63
|
+
'[class*="age-gate"] button[class*="confirm"]',
|
|
64
|
+
'[class*="terms"] button[class*="accept"]',
|
|
65
|
+
];
|
|
66
|
+
const OVERLAY_DISMISS_SELECTORS = [
|
|
67
|
+
// Generic close buttons
|
|
68
|
+
'.modal-close',
|
|
69
|
+
'.overlay-close',
|
|
70
|
+
'[class*="modal"] [class*="close"]',
|
|
71
|
+
'[class*="modal"] button[aria-label="Close"]',
|
|
72
|
+
'[role="dialog"] [aria-label="Close"]',
|
|
73
|
+
'[role="dialog"] [aria-label="close"]',
|
|
74
|
+
'[role="dialog"] button[class*="close"]',
|
|
75
|
+
'[class*="popup"] [class*="close"]',
|
|
76
|
+
'[class*="popup"] button[aria-label="Close"]',
|
|
77
|
+
'button[class*="dismiss"]',
|
|
78
|
+
// Newsletter/email capture popups
|
|
79
|
+
'[class*="newsletter"] [class*="close"]',
|
|
80
|
+
'[class*="subscribe"] [class*="close"]',
|
|
81
|
+
'[class*="signup"] [class*="close"]',
|
|
82
|
+
// Survey/feedback popups
|
|
83
|
+
'[class*="survey"] [class*="close"]',
|
|
84
|
+
'[class*="feedback"] [class*="close"]',
|
|
85
|
+
// Notification/alert banners
|
|
86
|
+
'[class*="notification"] button[class*="close"]',
|
|
87
|
+
'[class*="alert"] button[class*="close"]',
|
|
88
|
+
'[class*="banner"] button[class*="close"]',
|
|
89
|
+
];
|
|
90
|
+
const LOAD_MORE_SELECTORS = [
|
|
91
|
+
'button[class*="load-more"]',
|
|
92
|
+
'button[class*="loadmore"]',
|
|
93
|
+
'button[class*="load_more"]',
|
|
94
|
+
'[class*="load-more"] button',
|
|
95
|
+
'a[class*="load-more"]',
|
|
96
|
+
'button[class*="show-more"]',
|
|
97
|
+
'button[class*="show_more"]',
|
|
98
|
+
'button[class*="showmore"]',
|
|
99
|
+
'[class*="show-more"] button',
|
|
100
|
+
'button[aria-label*="load more" i]',
|
|
101
|
+
'button[aria-label*="show more" i]',
|
|
102
|
+
'[data-testid*="load-more"]',
|
|
103
|
+
'[data-testid*="show-more"]',
|
|
104
|
+
];
|
|
105
|
+
// ── Helpers ────────────────────────────────────────────────────────────────
|
|
106
|
+
/**
|
|
107
|
+
* Check if an element is visible (has dimensions + not hidden).
|
|
108
|
+
* Returns false if the element doesn't exist or is invisible.
|
|
109
|
+
*/
|
|
110
|
+
async function isVisible(page, selector) {
|
|
111
|
+
try {
|
|
112
|
+
const visible = await page.evaluate((sel) => {
|
|
113
|
+
const el = document.querySelector(sel);
|
|
114
|
+
if (!el)
|
|
115
|
+
return false;
|
|
116
|
+
const rect = el.getBoundingClientRect();
|
|
117
|
+
if (rect.width === 0 || rect.height === 0)
|
|
118
|
+
return false;
|
|
119
|
+
const style = window.getComputedStyle(el);
|
|
120
|
+
if (style.display === 'none' || style.visibility === 'hidden' || style.opacity === '0')
|
|
121
|
+
return false;
|
|
122
|
+
return true;
|
|
123
|
+
}, selector);
|
|
124
|
+
return !!visible;
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Try to click a selector with a 1s timeout. Returns true if clicked.
|
|
132
|
+
*/
|
|
133
|
+
async function tryClick(page, selector) {
|
|
134
|
+
const CLICK_TIMEOUT_MS = 1000;
|
|
135
|
+
try {
|
|
136
|
+
const visible = await isVisible(page, selector);
|
|
137
|
+
if (!visible)
|
|
138
|
+
return false;
|
|
139
|
+
await Promise.race([
|
|
140
|
+
page.click(selector, { timeout: CLICK_TIMEOUT_MS }),
|
|
141
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('click timeout')), CLICK_TIMEOUT_MS)),
|
|
142
|
+
]);
|
|
143
|
+
// Brief pause to let DOM settle after click
|
|
144
|
+
await page.waitForTimeout(300).catch(() => { });
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Try each selector in the list; click the first visible one.
|
|
153
|
+
* Returns the selector that was clicked, or null.
|
|
154
|
+
*/
|
|
155
|
+
async function tryClickFirst(page, selectors) {
|
|
156
|
+
for (const selector of selectors) {
|
|
157
|
+
const clicked = await tryClick(page, selector);
|
|
158
|
+
if (clicked) {
|
|
159
|
+
if (process.env.DEBUG) {
|
|
160
|
+
console.debug('[webpeel:auto-interact]', 'clicked:', selector);
|
|
161
|
+
}
|
|
162
|
+
return selector;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
// ── Main export ────────────────────────────────────────────────────────────
|
|
168
|
+
/**
|
|
169
|
+
* Automatically interact with the page to dismiss common UI overlays before
|
|
170
|
+
* content extraction. Never throws — all errors are swallowed.
|
|
171
|
+
*
|
|
172
|
+
* @param page - Playwright page (already navigated)
|
|
173
|
+
* @returns Summary of what was dismissed
|
|
174
|
+
*/
|
|
175
|
+
export async function autoInteract(page) {
|
|
176
|
+
const TOTAL_BUDGET_MS = 3000;
|
|
177
|
+
const startTime = Date.now();
|
|
178
|
+
const result = {
|
|
179
|
+
cookieBannerDismissed: false,
|
|
180
|
+
consentHandled: false,
|
|
181
|
+
loadMoreClicked: 0,
|
|
182
|
+
overlaysDismissed: 0,
|
|
183
|
+
};
|
|
184
|
+
const remaining = () => TOTAL_BUDGET_MS - (Date.now() - startTime);
|
|
185
|
+
try {
|
|
186
|
+
// ── 1. Cookie banners ─────────────────────────────────────────────────
|
|
187
|
+
if (remaining() > 0) {
|
|
188
|
+
const clicked = await tryClickFirst(page, COOKIE_DISMISS_SELECTORS);
|
|
189
|
+
if (clicked) {
|
|
190
|
+
result.cookieBannerDismissed = true;
|
|
191
|
+
if (process.env.DEBUG)
|
|
192
|
+
console.debug('[webpeel:auto-interact]', 'cookie banner dismissed');
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ── 2. Consent popups ────────────────────────────────────────────────
|
|
196
|
+
if (remaining() > 500) {
|
|
197
|
+
const clicked = await tryClickFirst(page, CONSENT_SELECTORS);
|
|
198
|
+
if (clicked) {
|
|
199
|
+
result.consentHandled = true;
|
|
200
|
+
if (process.env.DEBUG)
|
|
201
|
+
console.debug('[webpeel:auto-interact]', 'consent handled');
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// ── 3. Overlay/modal dismiss ──────────────────────────────────────────
|
|
205
|
+
if (remaining() > 500) {
|
|
206
|
+
let dismissed = 0;
|
|
207
|
+
// Try up to 2 overlays to avoid infinite loops on persistent UI
|
|
208
|
+
for (let i = 0; i < 2 && remaining() > 300; i++) {
|
|
209
|
+
const clicked = await tryClickFirst(page, OVERLAY_DISMISS_SELECTORS);
|
|
210
|
+
if (!clicked)
|
|
211
|
+
break;
|
|
212
|
+
dismissed++;
|
|
213
|
+
}
|
|
214
|
+
result.overlaysDismissed = dismissed;
|
|
215
|
+
if (dismissed > 0 && process.env.DEBUG) {
|
|
216
|
+
console.debug('[webpeel:auto-interact]', `overlays dismissed: ${dismissed}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// ── 4. Load more (optional, only if budget remains) ───────────────────
|
|
220
|
+
if (remaining() > 500) {
|
|
221
|
+
let clicked = 0;
|
|
222
|
+
// Click at most 1 "load more" button to get more content without infinite looping
|
|
223
|
+
const loadMoreClicked = await tryClickFirst(page, LOAD_MORE_SELECTORS);
|
|
224
|
+
if (loadMoreClicked) {
|
|
225
|
+
clicked++;
|
|
226
|
+
// Wait briefly for new content to render
|
|
227
|
+
await page.waitForTimeout(500).catch(() => { });
|
|
228
|
+
}
|
|
229
|
+
result.loadMoreClicked = clicked;
|
|
230
|
+
if (clicked > 0 && process.env.DEBUG) {
|
|
231
|
+
console.debug('[webpeel:auto-interact]', `load-more clicked: ${clicked}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
catch (err) {
|
|
236
|
+
// Never block extraction due to auto-interact errors
|
|
237
|
+
if (process.env.DEBUG) {
|
|
238
|
+
console.debug('[webpeel:auto-interact]', 'error (ignored):', err instanceof Error ? err.message : err);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
const elapsed = Date.now() - startTime;
|
|
242
|
+
if (process.env.DEBUG) {
|
|
243
|
+
console.debug('[webpeel:auto-interact]', 'complete in', elapsed, 'ms', JSON.stringify(result));
|
|
244
|
+
}
|
|
245
|
+
return result;
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=auto-interact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-interact.js","sourceRoot":"","sources":["../../src/core/auto-interact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-fetch.d.ts","sourceRoot":"","sources":["../../src/core/browser-fetch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkB9C,OAAO,EAAoD,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-fetch.d.ts","sourceRoot":"","sources":["../../src/core/browser-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { getRealisticUserAgent } from './user-agents.js';
|
|
|
8
8
|
import { getRandomUserAgent, applyStealthScripts, takePooledPage, ensurePagePool, recyclePooledPage, getBrowser, getStealthBrowser, getProfileBrowser, PAGE_POOL_SIZE, MAX_CONCURRENT_PAGES, getPooledPagesCount, } from './browser-pool.js';
|
|
9
9
|
import { applyStealthPatches, applyAcceptLanguageHeader } from './stealth-patches.js';
|
|
10
10
|
import { validateUrl, validateUserAgent, createAbortError } from './http-fetch.js';
|
|
11
|
+
import { autoInteract } from './auto-interact.js';
|
|
11
12
|
// ── Concurrency state (owned by this module) ─────────────────────────────────
|
|
12
13
|
let activePagesCount = 0;
|
|
13
14
|
// ── browserFetch ──────────────────────────────────────────────────────────────
|
|
@@ -335,6 +336,22 @@ export async function browserFetch(url, options = {}) {
|
|
|
335
336
|
await page.waitForTimeout(waitMs);
|
|
336
337
|
throwIfAborted();
|
|
337
338
|
}
|
|
339
|
+
// Auto-interact: dismiss cookie banners, consent popups, overlays
|
|
340
|
+
// before content extraction. Runs before user-specified actions so
|
|
341
|
+
// that popups don't interfere with custom interactions.
|
|
342
|
+
let autoInteractResult;
|
|
343
|
+
if (!isBinaryDoc) {
|
|
344
|
+
try {
|
|
345
|
+
autoInteractResult = await Promise.race([
|
|
346
|
+
autoInteract(page),
|
|
347
|
+
new Promise((resolve) => setTimeout(() => resolve({ cookieBannerDismissed: false, consentHandled: false, loadMoreClicked: 0, overlaysDismissed: 0 }), 3500)),
|
|
348
|
+
]);
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
// Never block extraction
|
|
352
|
+
}
|
|
353
|
+
throwIfAborted();
|
|
354
|
+
}
|
|
338
355
|
// Execute page actions if provided
|
|
339
356
|
if (actions && actions.length > 0) {
|
|
340
357
|
const { executeActions } = await import('./actions.js');
|
|
@@ -370,6 +387,7 @@ export async function browserFetch(url, options = {}) {
|
|
|
370
387
|
finalUrl,
|
|
371
388
|
contentType,
|
|
372
389
|
statusCode: response?.status(),
|
|
390
|
+
autoInteractResult,
|
|
373
391
|
};
|
|
374
392
|
})();
|
|
375
393
|
let operationTimeout;
|
|
@@ -384,6 +402,7 @@ export async function browserFetch(url, options = {}) {
|
|
|
384
402
|
const fetchBuffer = 'buffer' in fetchData ? fetchData.buffer : undefined;
|
|
385
403
|
const fetchContentType = 'contentType' in fetchData ? fetchData.contentType : undefined;
|
|
386
404
|
const fetchStatusCode = 'statusCode' in fetchData ? fetchData.statusCode : undefined;
|
|
405
|
+
const fetchAutoInteract = 'autoInteractResult' in fetchData ? fetchData.autoInteractResult : undefined;
|
|
387
406
|
const isBinaryDoc = !!fetchBuffer;
|
|
388
407
|
// SECURITY: Limit HTML size (skip for binary documents where html is empty)
|
|
389
408
|
if (!isBinaryDoc) {
|
|
@@ -420,6 +439,7 @@ export async function browserFetch(url, options = {}) {
|
|
|
420
439
|
screenshot: screenshotBuffer,
|
|
421
440
|
page,
|
|
422
441
|
browser,
|
|
442
|
+
...(fetchAutoInteract !== undefined ? { autoInteract: fetchAutoInteract } : {}),
|
|
423
443
|
};
|
|
424
444
|
}
|
|
425
445
|
return {
|
|
@@ -429,6 +449,7 @@ export async function browserFetch(url, options = {}) {
|
|
|
429
449
|
statusCode: fetchStatusCode,
|
|
430
450
|
contentType: fetchContentType,
|
|
431
451
|
screenshot: screenshotBuffer,
|
|
452
|
+
...(fetchAutoInteract !== undefined ? { autoInteract: fetchAutoInteract } : {}),
|
|
432
453
|
};
|
|
433
454
|
}
|
|
434
455
|
catch (error) {
|