@xapp/arachne-web-service 1.9.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -118,6 +118,18 @@ export interface WebsiteData {
118
118
  */
119
119
  failedRequests?: ArachneRequest[];
120
120
  }
121
+ export interface Callbacks {
122
+ /**
123
+ * A callback that will be called with partial data as it is collected.
124
+ *
125
+ * The point field is a reference to where the data was collected.
126
+ *
127
+ * @param data
128
+ * @param point
129
+ * @returns
130
+ */
131
+ onPartialData?: (data: Partial<WebsiteData>, point?: string) => void;
132
+ }
121
133
  export declare class ArachneWebService {
122
134
  /**
123
135
  * Get data on the provided website.
@@ -126,5 +138,5 @@ export declare class ArachneWebService {
126
138
  * @param options
127
139
  * @returns
128
140
  */
129
- getWebsiteData(url: string, options?: ArachneAppGetInfoOptions): Promise<WebsiteData>;
141
+ getWebsiteData(url: string, options?: ArachneAppGetInfoOptions, callbacks?: Callbacks): Promise<WebsiteData>;
130
142
  }
@@ -89,12 +89,18 @@ class ArachneWebService {
89
89
  * @returns
90
90
  */
91
91
  getWebsiteData(url_1) {
92
- return __awaiter(this, arguments, void 0, function* (url, options = {}) {
92
+ return __awaiter(this, arguments, void 0, function* (url, options = {}, callbacks) {
93
+ // Setup initial data structures, these will be populated as we gather more information
93
94
  const site = {};
94
95
  const detectedTechnologies = [];
95
96
  const schema = {};
96
97
  const screenshots = [];
97
98
  let business = {};
99
+ // if we have a callback, we will call it with partial data
100
+ let onPartialData = () => { };
101
+ if (typeof (callbacks === null || callbacks === void 0 ? void 0 : callbacks.onPartialData) === "function") {
102
+ onPartialData = callbacks.onPartialData;
103
+ }
98
104
  // use the one from options or default to defaultBrowserBuilder
99
105
  const { buildBrowser = defaultBrowserBuilder } = options;
100
106
  // first get the sitemap
@@ -147,7 +153,7 @@ class ArachneWebService {
147
153
  if (pageWait) {
148
154
  (0, stentor_logger_1.log)().info(`Waiting for ${pageWaitTime} ms for page to completely load.`);
149
155
  yield (0, arachne_1.autoScroll)(page, pageWaitTime);
150
- (0, stentor_logger_1.log)().info('...and done waiting.');
156
+ (0, stentor_logger_1.log)().info("...and done waiting.");
151
157
  }
152
158
  // Get the raw HTML
153
159
  // It is important to use page.content() versus response.text() since
@@ -155,73 +161,115 @@ class ArachneWebService {
155
161
  // on the page while response.text() only gives you the HTML from the original GET
156
162
  const html = yield page.content();
157
163
  const $ = cheerio.load(html);
158
- const description = $('meta[name="description"]').attr('content');
164
+ // SAVE HTML & MARKDOWN
165
+ (0, stentor_logger_1.log)().info(`Converting HTML to markdown...`);
166
+ // Convert to markdown
167
+ const markdown = new arachne_parsers_1.ArachneHTMLtoText({
168
+ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"],
169
+ }).convert(html, true);
170
+ (0, stentor_logger_1.log)().debug(`Markdown: ${markdown.length} characters`);
171
+ if (options.markdownPath) {
172
+ const path = (0, path_1.resolve)(options.markdownPath, `${fileName}.md`);
173
+ (0, stentor_logger_1.log)().debug(`Writing markdown to ${path}...`);
174
+ yield fs.promises.writeFile(path, markdown);
175
+ (0, stentor_logger_1.log)().debug(`Markdown written.`);
176
+ }
177
+ if (options.htmlPath) {
178
+ const path = (0, path_1.resolve)(options.htmlPath, `${fileName}.html`);
179
+ (0, stentor_logger_1.log)().debug(`Writing HTML to ${path}...`);
180
+ yield fs.promises.writeFile(path, html);
181
+ (0, stentor_logger_1.log)().debug(`HTML written.`);
182
+ }
183
+ // DONE SAVING MARKDOWN & HTML
184
+ const description = $('meta[name="description"]').attr("content");
159
185
  const htmlHasContactInfo = (0, extractContacts_1.hasContactInfo)(html);
160
186
  if (htmlHasContactInfo) {
161
187
  (0, stentor_logger_1.log)().info(`Contact information detected in the HTML.`);
162
188
  }
163
189
  const htmlExtractedContacts = (0, extractContacts_1.extractContacts)(html);
164
190
  const things = new arachne_parsers_1.ArachneJSONLD(html).getThings();
165
- let localBusiness;
166
- // TODO: Why aren't we using this?
167
- // let homeConstructionBusiness: HomeAndConstructionBusiness | undefined;
168
- (0, stentor_logger_1.log)().info('Looking through JSON Schema...');
191
+ (0, stentor_logger_1.log)().info("Looking through JSON Schema...");
169
192
  for (const thing of things) {
170
193
  if ((0, arachne_parsers_1.isLocalBusiness)(thing)) {
171
194
  (0, stentor_logger_1.log)().debug(`Found local business information`);
172
- localBusiness = thing;
173
195
  schema.localBusiness = thing;
174
196
  }
175
197
  else if ((0, arachne_parsers_1.isHomeConstructionBusiness)(thing)) {
176
198
  (0, stentor_logger_1.log)().debug(`Found home construction business`);
177
- // homeConstructionBusiness = thing;
178
199
  schema.homeConstructionBusiness = thing;
179
200
  }
201
+ else if ((0, arachne_parsers_1.isOrganization)(thing)) {
202
+ (0, stentor_logger_1.log)().debug(`Found organization information`);
203
+ schema.organization = thing;
204
+ }
180
205
  else {
181
206
  (0, stentor_logger_1.log)().debug(`Found JSON Schema ${thing["@id"]} ${thing["@type"]}`);
207
+ // console.log(thing);
182
208
  }
183
209
  }
184
- // We are going to try to figure out the icon!
185
- if (localBusiness && typeof localBusiness !== "string") {
186
- const localBusinessLogo = localBusiness.logo;
187
- if (typeof localBusinessLogo === "string") {
188
- try {
189
- const square = yield (0, image_1.imageIsSquare)(localBusinessLogo, 75);
190
- if (square) {
191
- (0, stentor_logger_1.log)().debug(`Found a square logo from json+ld ${localBusinessLogo}`);
192
- site.logo = localBusinessLogo;
193
- }
194
- }
195
- catch (e) {
196
- (0, stentor_logger_1.log)().debug(`Error determining if logo is square ${e}`);
197
- }
198
- }
199
- }
200
- // See if we are installed
210
+ // We now go through and try to find data from what we have!
211
+ const businessData = yield (0, getBusinessData_1.getBusinessDataFromSchema)(schema);
212
+ business = Object.assign({}, businessData);
201
213
  if (!site.logo) {
202
- // try to get the
214
+ // try to get the
203
215
  (0, stentor_logger_1.log)().debug(`Looking for logo from favicon`);
204
216
  const favicon = yield (0, findBestFaviconURL_1.findBestFaviconURL)(page, request.url);
205
217
  (0, stentor_logger_1.log)().debug(`Found a favicon ${favicon}, using it.`);
206
218
  // favicons are typically square, lets use it?
207
219
  site.logo = favicon;
208
220
  }
221
+ if (!business.logo && (site === null || site === void 0 ? void 0 : site.logo)) {
222
+ (0, stentor_logger_1.log)().info(`Setting business logo from site logo.`);
223
+ business.logo = site.logo;
224
+ }
225
+ if ((0, stentor_utils_1.existsAndNotEmpty)(business.phoneNumbers)) {
226
+ (0, stentor_logger_1.log)().info(`Phone numbers from schema ${(_a = business.phoneNumbers) === null || _a === void 0 ? void 0 : _a.map((p) => p.number).join(", ")}`);
227
+ }
228
+ // If we have no phone numbers from the schema, but we have some from the HTML
229
+ if (!(0, stentor_utils_1.existsAndNotEmpty)(business.phoneNumbers) &&
230
+ (0, stentor_utils_1.existsAndNotEmpty)(htmlExtractedContacts.phoneNumbers)) {
231
+ (0, stentor_logger_1.log)().info(`Updating business phone numbers from HTML. ${htmlExtractedContacts.phoneNumbers.join(", ")}`);
232
+ business.phoneNumbers = htmlExtractedContacts.phoneNumbers.map((p) => ({ number: p }));
233
+ }
234
+ // If we have no emails from the schema, but we have some from the HTML
235
+ if (!business.email && (0, stentor_utils_1.existsAndNotEmpty)(htmlExtractedContacts.emails)) {
236
+ (0, stentor_logger_1.log)().info(`Updating business email from HTML. ${htmlExtractedContacts.emails.join(", ")}`);
237
+ business.email = htmlExtractedContacts.emails.map((e) => ({ email: e }));
238
+ }
239
+ if (!business.category && ((schema === null || schema === void 0 ? void 0 : schema.localBusiness) || (schema === null || schema === void 0 ? void 0 : schema.homeConstructionBusiness))) {
240
+ business.category = (0, getBusinessCategoryFromSchema_1.getBusinessCategoryFromSchema)((schema === null || schema === void 0 ? void 0 : schema.localBusiness) || (schema === null || schema === void 0 ? void 0 : schema.homeConstructionBusiness));
241
+ }
242
+ /**
243
+ * PARTIAL DATA AVAILABLE
244
+ *
245
+ * Initial site load will have basic schema data and business data.
246
+ */
247
+ onPartialData({
248
+ url,
249
+ site,
250
+ detectedTechnologies,
251
+ business,
252
+ schema,
253
+ screenshots,
254
+ }, "AFTER_SITE_LOAD");
209
255
  // Try to figure out primary color, requires a screenshot saved to disk to analyze
210
256
  if (options.screenshotsPath) {
211
257
  const path = (0, path_1.resolve)(options.screenshotsPath, `${fileName}.png`);
212
258
  (0, stentor_logger_1.log)().debug(`Saving screenshot to ${path}`);
213
259
  const captureBeyondViewport = options.viewportSize ? false : true;
214
260
  const fullPage = options.viewportSize ? false : true;
215
- yield page.screenshot({
261
+ yield page
262
+ .screenshot({
216
263
  path,
217
264
  fullPage,
218
- captureBeyondViewport
219
- }).catch((e) => {
265
+ captureBeyondViewport,
266
+ })
267
+ .catch((e) => {
220
268
  (0, stentor_logger_1.log)().error(`Error saving screenshot`);
221
269
  console.error(e);
222
270
  });
223
271
  screenshots.push({
224
- filePath: path
272
+ filePath: path,
225
273
  });
226
274
  (0, stentor_logger_1.log)().debug(`Screenshot saved.`);
227
275
  (0, stentor_logger_1.log)().debug(`Analyzing colors...`);
@@ -259,7 +307,7 @@ class ArachneWebService {
259
307
  continue;
260
308
  default:
261
309
  }
262
- const debugPreview = '\x1b[48;2;' + (0, image_1.hexToRGB)(current === null || current === void 0 ? void 0 : current.hex) + 'm \x1b[0m';
310
+ const debugPreview = "\x1b[48;2;" + (0, image_1.hexToRGB)(current === null || current === void 0 ? void 0 : current.hex) + "m \x1b[0m";
263
311
  debugSwatches = `${debugSwatches} ${swatch} (${current === null || current === void 0 ? void 0 : current.population}):${current === null || current === void 0 ? void 0 : current.hex} ${debugPreview} `;
264
312
  }
265
313
  }
@@ -271,9 +319,9 @@ class ArachneWebService {
271
319
  }
272
320
  site.primaryColor = mostPopular === null || mostPopular === void 0 ? void 0 : mostPopular.hex;
273
321
  site.secondaryColor = (0, image_1.complementHexColor)(site.primaryColor);
274
- const primaryPreview = '\x1b[48;2;' + (0, image_1.hexToRGB)(site.primaryColor) + 'm \x1b[0m';
275
- const secondaryPreview = '\x1b[48;2;' + (0, image_1.hexToRGB)(site.secondaryColor) + 'm \x1b[0m';
276
- const vibrantPreview = '\x1b[48;2;' + (0, image_1.hexToRGB)(site.vibrantColor) + 'm \x1b[0m';
322
+ const primaryPreview = "\x1b[48;2;" + (0, image_1.hexToRGB)(site.primaryColor) + "m \x1b[0m";
323
+ const secondaryPreview = "\x1b[48;2;" + (0, image_1.hexToRGB)(site.secondaryColor) + "m \x1b[0m";
324
+ const vibrantPreview = "\x1b[48;2;" + (0, image_1.hexToRGB)(site.vibrantColor) + "m \x1b[0m";
277
325
  (0, stentor_logger_1.log)().debug(`Primary color: ${site.primaryColor} ${primaryPreview}`);
278
326
  (0, stentor_logger_1.log)().debug(`Secondary color: ${site.secondaryColor} ${secondaryPreview}`);
279
327
  (0, stentor_logger_1.log)().debug(`Vibrant color: ${site.vibrantColor} ${vibrantPreview}`);
@@ -283,34 +331,33 @@ class ArachneWebService {
283
331
  else {
284
332
  (0, stentor_logger_1.log)().info(`screenshotsPath not provided, cannot determine primaryColor and secondaryColor`);
285
333
  }
286
- (0, stentor_logger_1.log)().info(`Converting HTML to markdown...`);
287
- // Convert to markdown
288
- const markdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"] }).convert(html, true);
289
- (0, stentor_logger_1.log)().debug(`Markdown: ${markdown.length} characters`);
290
- if (options.markdownPath) {
291
- const path = (0, path_1.resolve)(options.markdownPath, `${fileName}.md`);
292
- (0, stentor_logger_1.log)().debug(`Writing markdown to ${path}...`);
293
- yield fs.promises.writeFile(path, markdown);
294
- (0, stentor_logger_1.log)().debug(`Markdown written.`);
295
- }
296
- if (options.htmlPath) {
297
- const path = (0, path_1.resolve)(options.htmlPath, `${fileName}.html`);
298
- (0, stentor_logger_1.log)().debug(`Writing HTML to ${path}...`);
299
- yield fs.promises.writeFile(path, html);
300
- (0, stentor_logger_1.log)().debug(`HTML written.`);
301
- }
334
+ // Done looking for colors
335
+ /**
336
+ * PARTIAL DATA AVAILABLE
337
+ *
338
+ * We now have primaryColor, secondaryColor, and screenshots available.
339
+ */
340
+ onPartialData({
341
+ url,
342
+ site,
343
+ detectedTechnologies,
344
+ business,
345
+ schema,
346
+ screenshots,
347
+ }, "AFTER_COLORS");
302
348
  let aiData = undefined;
303
349
  const { openAIKey } = options;
304
350
  // Use OpenAI to determine Call To Action
305
351
  if (openAIKey) {
306
352
  (0, stentor_logger_1.log)().debug(`Calling GenerativeAI for website data...`);
307
353
  const genService = new GenerativeAIService_1.GenerativeAIService({
308
- key: openAIKey, page
354
+ key: openAIKey,
355
+ page,
309
356
  });
310
357
  aiData = yield genService.getWebsiteAI(markdown, {
311
358
  url,
312
359
  site,
313
- schema
360
+ schema,
314
361
  });
315
362
  if (!aiData) {
316
363
  (0, stentor_logger_1.log)().info(`No AI Data received from GenerativeAI.`);
@@ -325,19 +372,21 @@ class ArachneWebService {
325
372
  (0, stentor_logger_1.log)().warn(`No phone numbers detected in the markdown but AI found some, removing AI phone numbers.`);
326
373
  aiData.phone_numbers = [];
327
374
  }
328
- if (((_a = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _a === void 0 ? void 0 : _a.preferContactUsPage) && ((_b = site.pages) === null || _b === void 0 ? void 0 : _b.contactUs)) {
375
+ if (((_b = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _b === void 0 ? void 0 : _b.preferContactUsPage) && ((_c = site.pages) === null || _c === void 0 ? void 0 : _c.contactUs)) {
329
376
  (0, stentor_logger_1.log)().info(`Using Contact Us page for data.`);
330
377
  const contactUsPageUrl = site.pages.contactUs;
331
378
  yield page.goto(contactUsPageUrl);
332
379
  const contactUsHTML = yield page.content();
333
- const contactUsMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"] }).convert(contactUsHTML, true);
380
+ const contactUsMarkdown = new arachne_parsers_1.ArachneHTMLtoText({
381
+ stripTags: [...arachne_parsers_1.DEFAULT_STRIP_TAGS, "head", "img", "iframe", "style"],
382
+ }).convert(contactUsHTML, true);
334
383
  if ((0, extractContacts_1.hasContactInfo)(contactUsMarkdown)) {
335
384
  const extractedContacts = (0, extractContacts_1.extractContacts)(contactUsMarkdown);
336
385
  const contactUsData = yield genService.getWebsiteAI(contactUsMarkdown, {
337
- url: contactUsPageUrl
386
+ url: contactUsPageUrl,
338
387
  });
339
- const contactEmail = (_c = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.email) === null || _c === void 0 ? void 0 : _c.filter((e) => e.email.length > 0);
340
- const contactPhoneNumbers = (_d = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.phone_numbers) === null || _d === void 0 ? void 0 : _d.filter((p) => p.number.length > 0);
388
+ const contactEmail = (_d = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.email) === null || _d === void 0 ? void 0 : _d.filter((e) => e.email.length > 0);
389
+ const contactPhoneNumbers = (_e = contactUsData === null || contactUsData === void 0 ? void 0 : contactUsData.phone_numbers) === null || _e === void 0 ? void 0 : _e.filter((p) => p.number.length > 0);
341
390
  if ((0, stentor_utils_1.existsAndNotEmpty)(contactPhoneNumbers) && aiData) {
342
391
  (0, stentor_logger_1.log)().info(`Updating with contact us phone numbers.\n${JSON.stringify(contactPhoneNumbers)}`);
343
392
  aiData.phone_numbers = contactPhoneNumbers;
@@ -357,17 +406,19 @@ class ArachneWebService {
357
406
  (0, stentor_logger_1.log)().info(`No detected contact information in the Contact Us page`);
358
407
  }
359
408
  }
360
- if ((_e = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _e === void 0 ? void 0 : _e.preferHeaderInfo) {
409
+ if ((_f = options === null || options === void 0 ? void 0 : options.dataOptions) === null || _f === void 0 ? void 0 : _f.preferHeaderInfo) {
361
410
  (0, stentor_logger_1.log)().info(`Looking at header information for data.`);
362
- const headerHTML = yield page.evaluate(() => { var _a; return (_a = document.querySelector('header')) === null || _a === void 0 ? void 0 : _a.outerHTML; });
411
+ const headerHTML = yield page.evaluate(() => { var _a; return (_a = document.querySelector("header")) === null || _a === void 0 ? void 0 : _a.outerHTML; });
363
412
  if (headerHTML) {
364
- const headerMarkdown = new arachne_parsers_1.ArachneHTMLtoText({ stripTags: ["script", "head", "img", "iframe", "style"] }).convert(headerHTML, true);
413
+ const headerMarkdown = new arachne_parsers_1.ArachneHTMLtoText({
414
+ stripTags: ["script", "head", "img", "iframe", "style"],
415
+ }).convert(headerHTML, true);
365
416
  if ((0, extractContacts_1.hasContactInfo)(headerMarkdown)) {
366
417
  const headerData = yield genService.getWebsiteAI(headerMarkdown, {
367
- url
418
+ url,
368
419
  });
369
- const headerEmails = (_f = headerData === null || headerData === void 0 ? void 0 : headerData.email) === null || _f === void 0 ? void 0 : _f.filter((e) => e.email.length > 0);
370
- const headerPhoneNumbers = (_g = headerData === null || headerData === void 0 ? void 0 : headerData.phone_numbers) === null || _g === void 0 ? void 0 : _g.filter((p) => p.number.length > 0);
420
+ const headerEmails = (_g = headerData === null || headerData === void 0 ? void 0 : headerData.email) === null || _g === void 0 ? void 0 : _g.filter((e) => e.email.length > 0);
421
+ const headerPhoneNumbers = (_h = headerData === null || headerData === void 0 ? void 0 : headerData.phone_numbers) === null || _h === void 0 ? void 0 : _h.filter((p) => p.number.length > 0);
371
422
  if ((0, stentor_utils_1.existsAndNotEmpty)(headerPhoneNumbers) && aiData) {
372
423
  (0, stentor_logger_1.log)().info(`Updating with header phone numbers.\n${JSON.stringify(headerPhoneNumbers)}`);
373
424
  aiData.phone_numbers = headerPhoneNumbers;
@@ -402,8 +453,63 @@ class ArachneWebService {
402
453
  else {
403
454
  (0, stentor_logger_1.log)().info(`OpenAI key not provided, not calling GenerativeAIService.`);
404
455
  }
456
+ // Find some AI overrides (if we have the aiData)
457
+ if (aiData === null || aiData === void 0 ? void 0 : aiData.organization_name) {
458
+ business.name = aiData.organization_name;
459
+ }
460
+ if ((aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers) && (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers)) {
461
+ (0, stentor_logger_1.log)().info(`Updating business phone numbers from AI data. ${(_j = aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers) === null || _j === void 0 ? void 0 : _j.map((p) => p.number).join(", ")}`);
462
+ business.phoneNumbers = aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers;
463
+ }
464
+ if ((aiData === null || aiData === void 0 ? void 0 : aiData.email) && (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.email)) {
465
+ (0, stentor_logger_1.log)().info(`Updating business email from AI data. ${(_k = aiData === null || aiData === void 0 ? void 0 : aiData.email) === null || _k === void 0 ? void 0 : _k.map((p) => p.email).join(", ")}`);
466
+ business.email = aiData === null || aiData === void 0 ? void 0 : aiData.email;
467
+ }
468
+ if (aiData === null || aiData === void 0 ? void 0 : aiData.industry_category) {
469
+ // It isn't perfect so we need to clean it
470
+ const category = aiData.industry_category; //.replace("_", "-").replace(" ", "-").toLowerCase() as BusinessCategory;
471
+ business.category = category;
472
+ }
473
+ // if no business addresses from schema, look on AI data
474
+ if (!(0, stentor_utils_1.existsAndNotEmpty)(business.addresses) &&
475
+ (aiData === null || aiData === void 0 ? void 0 : aiData.addresses) &&
476
+ (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.addresses)) {
477
+ (0, stentor_logger_1.log)().info(`Updating business addresses from AI data.`);
478
+ business.addresses = aiData.addresses;
479
+ }
480
+ // Set some items
481
+ if (aiData === null || aiData === void 0 ? void 0 : aiData.description) {
482
+ site.description = aiData.description;
483
+ }
484
+ else {
485
+ site.description = description;
486
+ }
487
+ if (typeof (aiData === null || aiData === void 0 ? void 0 : aiData.parked_domain) === "boolean") {
488
+ site.parkedDomain = aiData.parked_domain;
489
+ }
490
+ if (aiData === null || aiData === void 0 ? void 0 : aiData.calls_to_action) {
491
+ site.callsToAction = aiData.calls_to_action;
492
+ }
493
+ else {
494
+ site.callsToAction = (0, getCallToAction_1.getCallToAction)(html);
495
+ }
496
+ /**
497
+ * PARTIAL DATA AVAILABLE
498
+ *
499
+ * We now have primaryColor, secondaryColor, and screenshots available.
500
+ */
501
+ onPartialData({
502
+ url,
503
+ site,
504
+ detectedTechnologies,
505
+ business,
506
+ schema,
507
+ screenshots,
508
+ }, "AFTER_AI");
405
509
  (0, stentor_logger_1.log)().debug(`Preparing detectors...`);
406
- const detectors = (0, stentor_utils_1.existsAndNotEmpty)(options.detectors) ? options.detectors || [] : contants_1.DEFAULT_DETECTORS;
510
+ const detectors = (0, stentor_utils_1.existsAndNotEmpty)(options.detectors)
511
+ ? options.detectors || []
512
+ : contants_1.DEFAULT_DETECTORS;
407
513
  (0, stentor_logger_1.log)().info(`Detecting ${detectors.length} technologies...`);
408
514
  // go through and detect each
409
515
  for (const detector of detectors) {
@@ -436,69 +542,25 @@ class ArachneWebService {
436
542
  console.error(e);
437
543
  }
438
544
  }
439
- // We now go through and try to find data from what we have!
440
- const businessData = (0, getBusinessData_1.getBusinessData)(schema.localBusiness || schema.homeConstructionBusiness);
441
- business = Object.assign({}, businessData);
442
- if ((0, stentor_utils_1.existsAndNotEmpty)(business.phoneNumbers)) {
443
- (0, stentor_logger_1.log)().info(`Phone numbers from schema ${(_h = business.phoneNumbers) === null || _h === void 0 ? void 0 : _h.map((p) => p.number).join(", ")}`);
444
- }
445
- // Find some AI overrides (if we have the aiData)
446
- if (aiData === null || aiData === void 0 ? void 0 : aiData.organization_name) {
447
- business.name = aiData.organization_name;
448
- }
449
- if ((aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers) && (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers)) {
450
- (0, stentor_logger_1.log)().info(`Updating business phone numbers from AI data. ${(_j = aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers) === null || _j === void 0 ? void 0 : _j.map((p) => p.number).join(", ")}`);
451
- business.phoneNumbers = aiData === null || aiData === void 0 ? void 0 : aiData.phone_numbers;
452
- }
453
- // If we have no phone numbers from the schema, but we have some from the HTML
454
- if (!(0, stentor_utils_1.existsAndNotEmpty)(business.phoneNumbers) && (0, stentor_utils_1.existsAndNotEmpty)(htmlExtractedContacts.phoneNumbers)) {
455
- (0, stentor_logger_1.log)().info(`Updating business phone numbers from HTML. ${htmlExtractedContacts.phoneNumbers.join(", ")}`);
456
- business.phoneNumbers = htmlExtractedContacts.phoneNumbers.map((p) => ({ number: p }));
457
- }
458
- if ((aiData === null || aiData === void 0 ? void 0 : aiData.email) && (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.email)) {
459
- (0, stentor_logger_1.log)().info(`Updating business email from AI data. ${(_k = aiData === null || aiData === void 0 ? void 0 : aiData.email) === null || _k === void 0 ? void 0 : _k.map((p) => p.email).join(", ")}`);
460
- business.email = aiData === null || aiData === void 0 ? void 0 : aiData.email;
461
- }
462
- // If we have no emails from the schema, but we have some from the HTML
463
- if (!business.email && (0, stentor_utils_1.existsAndNotEmpty)(htmlExtractedContacts.emails)) {
464
- (0, stentor_logger_1.log)().info(`Updating business email from HTML. ${htmlExtractedContacts.emails.join(", ")}`);
465
- business.email = htmlExtractedContacts.emails.map((e) => ({ email: e }));
466
- }
467
- if (aiData === null || aiData === void 0 ? void 0 : aiData.industry_category) {
468
- // It isn't perfect so we need to clean it
469
- const category = aiData.industry_category; //.replace("_", "-").replace(" ", "-").toLowerCase() as BusinessCategory;
470
- business.category = category;
471
- }
472
- if (!business.category && ((schema === null || schema === void 0 ? void 0 : schema.localBusiness) || (schema === null || schema === void 0 ? void 0 : schema.homeConstructionBusiness))) {
473
- business.category = (0, getBusinessCategoryFromSchema_1.getBusinessCategoryFromSchema)((schema === null || schema === void 0 ? void 0 : schema.localBusiness) || (schema === null || schema === void 0 ? void 0 : schema.homeConstructionBusiness));
474
- }
475
- // if no business addresses from schema, look on AI data
476
- if (!(0, stentor_utils_1.existsAndNotEmpty)(business.addresses) && (aiData === null || aiData === void 0 ? void 0 : aiData.addresses) && (0, stentor_utils_1.existsAndNotEmpty)(aiData === null || aiData === void 0 ? void 0 : aiData.addresses)) {
477
- (0, stentor_logger_1.log)().info(`Updating business addresses from AI data.`);
478
- business.addresses = aiData.addresses;
479
- }
480
- // Set some items
481
- if (aiData === null || aiData === void 0 ? void 0 : aiData.description) {
482
- site.description = aiData.description;
483
- }
484
- else {
485
- site.description = description;
486
- }
487
- if (typeof (aiData === null || aiData === void 0 ? void 0 : aiData.parked_domain) === "boolean") {
488
- site.parkedDomain = aiData.parked_domain;
489
- }
490
545
  const godaddyParked = detectedTechnologies.find((d) => d.technology === arachne_parsers_1.GODADDY_PARKED_DOMAIN);
491
546
  if (godaddyParked === null || godaddyParked === void 0 ? void 0 : godaddyParked.installed) {
492
547
  // little override here, in case we find the parked domain
493
548
  site.parkedDomain = true;
494
549
  }
495
- if (aiData === null || aiData === void 0 ? void 0 : aiData.calls_to_action) {
496
- site.callsToAction = aiData.calls_to_action;
497
- }
498
- else {
499
- site.callsToAction = (0, getCallToAction_1.getCallToAction)(html);
500
- }
501
- }) // end of the page handler
550
+ /**
551
+ * PARTIAL DATA AVAILABLE
552
+ *
553
+ * We now have primaryColor, secondaryColor, and screenshots available.
554
+ */
555
+ onPartialData({
556
+ url,
557
+ site,
558
+ detectedTechnologies,
559
+ business,
560
+ schema,
561
+ screenshots,
562
+ }, "AFTER_DETECTORS");
563
+ }), // end of the page handler
502
564
  });
503
565
  yield crawler.run();
504
566
  // see if things failed or not
@@ -514,7 +576,7 @@ class ArachneWebService {
514
576
  screenshots,
515
577
  business,
516
578
  failed,
517
- failedRequests
579
+ failedRequests,
518
580
  };
519
581
  });
520
582
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArachneWebService.js","sourceRoot":"","sources":["../src/ArachneWebService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArachneWebService.js","sourceRoot":"","sources":["../src/ArachneWebService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAkC;AAClC,4BAA0B,CAAC,0CAA0C;AACrE,+BAA+B;AAC/B,uCAAyB;AACzB,iDAAmC;AAEnC,2CAAqG;AACrG,2DAS+B;AAE/B,mDAAqC;AACrC,iDAAkD;AAIlD,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEhD,gEAAmC;AAEnC,yCAAoE;AACpE,+DAAuE;AAEvE,mEAAgE;AAChE,yCAA6D;AAC7D,+CAA4C;AAC5C,mDAAoD;AACpD,6DAAoE;AACpE,6DAA0D;AAC1D,yFAAsF;AACtF,6DAAoG;AAmIpG,MAAM,qBAAqB,GAAqB,GAAS,EAAE;IACvD,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IAElF,oFAAoF;IACpF,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;IAEvD,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;IAErD,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,cAAc;QACd,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAEF,MAAa,iBAAiB;IAC1B;;;;;;OAMG;IACU,cAAc;6DACvB,GAAW,EACX,UAAoC,EAAE,EACtC,SAAqB;YAErB,uFAAuF;YACvF,MAAM,IAAI,GAA2B,EAAE,CAAC;YACxC,MAAM,oBAAoB,GAAqB,EAAE,CAAC;YAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,MAAM,WAAW,GAAyB,EAAE,CAAC;YAC7C,IAAI,QAAQ,GAAiB,EAAE,CAAC;YAEhC,2DAA2D;YAC3D,IAAI,aAAa,GAAyD,GAAG,EAAE,GAAE,CAAC,CAAC;YACnF,IAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,aAAa,CAAA,KAAK,UAAU,EAAE,CAAC;gBACjD,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;YAC5C,CAAC;YAED,+DAA+D;YAC/D,MAAM,EAAE,YAAY,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC;YAEzD,wBAAwB;YACxB,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAc,EAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,qBACH,WAAW,CACjB,CAAC;YACN,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,4BAAkB,EAAE,CAAC;YACvC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAE1B,MAAM,aAAa,GAAkB;gBACjC,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,OAAO,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;aAC5E,CAAC;YAEF,MAAM,QAAQ,GAAY,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC9E,MAAM,YAAY,GAAW,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;YAEnD,IAAI,CAAC,IAAA,mBAAQ,GAAE,EAAE,CAAC;gBACd,8BAA8B;gBAC9B,aAAa,CAAC,cAAc,GAAG,wBAAwB,CAAC;YAC5D,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACvB,aAAa,CAAC,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;gBACrD,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACxG,CAAC;YAED,IAAI,OAAiE,CAAC;YAEtE,IAAI,CAAC;gBACD,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,kGAAkG,CACrG,CAAC;gBACF,IAAI,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;wBACrB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC1C,CAAC;oBACD,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YAED,MAAM,kBAAkB,GACpB,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;YAExF,MAAM,OAAO,GAAG,iBAAO,CAAC,OAAO,CAAC;gBAC5B,OAAO,EAAE,IAAI;gBACb,aAAa;gBACb,KAAK;gBACL,OAAO;gBACP,kBAAkB;gBAClB,WAAW,EAAE,CAAO,IAAiB,EAAE,OAAuB,EAAE,EAAE;;oBAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;oBACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;oBACpE,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC;oBAE/C,IAAI,QAAQ,EAAE,CAAC;wBACX,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,eAAe,YAAY,kCAAkC,CAAC,CAAC;wBAC1E,MAAM,IAAA,oBAAU,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;wBACrC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBACvC,CAAC;oBAED,mBAAmB;oBACnB,qEAAqE;oBACrE,gFAAgF;oBAChF,kFAAkF;oBAClF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,MAAM,CAAC,GAAiB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAE3C,uBAAuB;oBAEvB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBAC7C,sBAAsB;oBACtB,MAAM,QAAQ,GAAG,IAAI,mCAAiB,CAAC;wBACnC,SAAS,EAAE,CAAC,GAAG,oCAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;qBACvE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;oBAEvB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC;oBAEvD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;wBACvB,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,YAAY,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;wBAC7D,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,CAAC;wBAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBAC5C,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;oBACrC,CAAC;oBAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACnB,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;wBAC3D,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,KAAK,CAAC,CAAC;wBAC1C,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACxC,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBACjC,CAAC;oBACD,8BAA8B;oBAE9B,MAAM,WAAW,GAAG,CAAC,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAElE,MAAM,kBAAkB,GAAG,IAAA,gCAAc,EAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,kBAAkB,EAAE,CAAC;wBACrB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;oBAC5D,CAAC;oBACD,MAAM,qBAAqB,GAAG,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC;oBAEpD,MAAM,MAAM,GAAG,IAAI,+BAAa,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAEnD,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBACzB,IAAI,IAAA,iCAAe,EAAC,KAAK,CAAC,EAAE,CAAC;4BACzB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;4BAChD,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;wBACjC,CAAC;6BAAM,IAAI,IAAA,4CAA0B,EAAC,KAAK,CAAC,EAAE,CAAC;4BAC3C,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;4BAChD,MAAM,CAAC,wBAAwB,GAAG,KAAK,CAAC;wBAC5C,CAAC;6BAAM,IAAI,IAAA,gCAAc,EAAC,KAAK,CAAC,EAAE,CAAC;4BAC/B,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;4BAC9C,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACJ,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;4BACnE,sBAAsB;wBAC1B,CAAC;oBACL,CAAC;oBAED,4DAA4D;oBAC5D,MAAM,YAAY,GAAG,MAAM,IAAA,2CAAyB,EAAC,MAAM,CAAC,CAAC;oBAE7D,QAAQ,qBACD,YAAY,CAClB,CAAC;oBAEF,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACb,iBAAiB;wBACjB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;wBAE7C,MAAM,OAAO,GAAG,MAAM,IAAA,uCAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wBAC5D,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,mBAAmB,OAAO,aAAa,CAAC,CAAC;wBACrD,8CAA8C;wBAC9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;oBACxB,CAAC;oBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,EAAE,CAAC;wBAC/B,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;wBACpD,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9B,CAAC;oBAED,IAAI,IAAA,iCAAiB,EAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC3C,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,6BAA6B,MAAA,QAAQ,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACtG,CAAC;oBAED,8EAA8E;oBAC9E,IACI,CAAC,IAAA,iCAAiB,EAAC,QAAQ,CAAC,YAAY,CAAC;wBACzC,IAAA,iCAAiB,EAAC,qBAAqB,CAAC,YAAY,CAAC,EACvD,CAAC;wBACC,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,8CAA8C,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;wBACF,QAAQ,CAAC,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC3F,CAAC;oBAED,uEAAuE;oBACvE,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAA,iCAAiB,EAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;wBACrE,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,sCAAsC,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC5F,QAAQ,CAAC,KAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC7E,CAAC;oBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,wBAAwB,CAAA,CAAC,EAAE,CAAC;wBACpF,QAAQ,CAAC,QAAQ,GAAG,IAAA,6DAA6B,EAC7C,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,wBAAwB,CAAA,CAC5D,CAAC;oBACN,CAAC;oBAED;;;;uBAIG;oBACH,aAAa,CACT;wBACI,GAAG;wBACH,IAAI;wBACJ,oBAAoB;wBACpB,QAAQ;wBACR,MAAM;wBACN,WAAW;qBACd,EACD,iBAAiB,CACpB,CAAC;oBAEF,kFAAkF;oBAClF,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;wBAC1B,MAAM,IAAI,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,eAAe,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;wBAEjE,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;wBAE5C,MAAM,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;wBAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;wBAErD,MAAM,IAAI;6BACL,UAAU,CAAC;4BACR,IAAI;4BACJ,QAAQ;4BACR,qBAAqB;yBACxB,CAAC;6BACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;4BACT,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;4BACvC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC,CAAC,CAAC;wBAEP,WAAW,CAAC,IAAI,CAAC;4BACb,QAAQ,EAAE,IAAI;yBACjB,CAAC,CAAC;wBACH,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;wBAEjC,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBACnC,IAAI,CAAC,GAAwB,SAAS,CAAC;wBACvC,IAAI,CAAC;4BACD,CAAC,GAAG,IAAI,sBAAO,CAAC,IAAI,CAAC,CAAC;wBAC1B,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;4BACjD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;wBAED,IAAI,CAAC,EAAE,CAAC;4BACJ,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;4BACrC,IAAI,UAAU,GAAuB,SAAS,CAAC;4BAC/C,IAAI,WAAW,CAAC;4BAChB,IAAI,aAAa,GAAG,EAAE,CAAC;4BAEvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gCAC3B,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oCACpD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oCAChC,IAAI,CAAC,WAAW,EAAE,CAAC;wCACf,UAAU,GAAG,MAAM,CAAC;wCACpB,WAAW,GAAG,OAAO,CAAC;oCAC1B,CAAC;yCAAM,IAAI,OAAO,IAAI,WAAW,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;wCAChE,UAAU,GAAG,MAAM,CAAC;wCACpB,WAAW,GAAG,OAAO,CAAC;oCAC1B,CAAC;oCAED,QAAQ,MAAM,EAAE,CAAC;wCACb,KAAK,cAAc,CAAC;wCACpB,KAAK,SAAS;4CACV,IAAI,CAAC,YAAY,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC;4CACjC,SAAS;wCACb,KAAK,aAAa;4CACd,IAAI,CAAC,gBAAgB,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC;4CACrC,SAAS;wCACb,QAAQ;oCACZ,CAAC;oCAED,MAAM,YAAY,GAAG,YAAY,GAAG,IAAA,gBAAQ,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC;oCAC9E,aAAa,GAAG,GAAG,aAAa,IAAI,MAAM,KAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,IAAI,YAAY,GAAG,CAAC;gCAC3G,CAAC;4BACL,CAAC;4BACD,IAAI,UAAU,EAAE,CAAC;gCACb,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,uBAAuB,UAAU,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,EAAE,CAAC,CAAC;4BACzE,CAAC;iCAAM,CAAC;gCACJ,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;4BACzD,CAAC;4BAED,IAAI,CAAC,YAAY,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,GAAG,CAAC;4BACrC,IAAI,CAAC,cAAc,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;4BAE5D,MAAM,cAAc,GAAG,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;4BACrF,MAAM,gBAAgB,GAAG,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,cAAc,CAAC,GAAG,gBAAgB,CAAC;4BACzF,MAAM,cAAc,GAAG,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC;4BAErF,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;4BACrE,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,cAAc,IAAI,gBAAgB,EAAE,CAAC,CAAC;4BAC3E,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,YAAY,IAAI,cAAc,EAAE,CAAC,CAAC;4BACrE,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;wBACtD,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,gFAAgF,CAAC,CAAC;oBACjG,CAAC;oBACD,0BAA0B;oBAE1B;;;;uBAIG;oBACH,aAAa,CACT;wBACI,GAAG;wBACH,IAAI;wBACJ,oBAAoB;wBACpB,QAAQ;wBACR,MAAM;wBACN,WAAW;qBACd,EACD,cAAc,CACjB,CAAC;oBAEF,IAAI,MAAM,GAA0B,SAAS,CAAC;oBAE9C,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;oBAE9B,yCAAyC;oBACzC,IAAI,SAAS,EAAE,CAAC;wBACZ,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;wBAExD,MAAM,UAAU,GAAG,IAAI,yCAAmB,CAAC;4BACvC,GAAG,EAAE,SAAS;4BACd,IAAI;yBACP,CAAC,CAAC;wBAEH,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE;4BAC7C,GAAG;4BACH,IAAI;4BACJ,MAAM;yBACT,CAAC,CAAC;wBAEH,IAAI,CAAC,MAAM,EAAE,CAAC;4BACV,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;4BACrD,+CAA+C;4BAC/C,MAAM,GAAG,EAAE,CAAC;wBAChB,CAAC;wBAED,IAAI,CAAC,IAAA,0BAAQ,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAiB,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC;4BAC1D,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;4BACxF,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;wBACtB,CAAC;wBAED,IAAI,CAAC,IAAA,gCAAc,EAAC,QAAQ,CAAC,IAAI,IAAA,iCAAiB,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAE,CAAC;4BACxE,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,yFAAyF,CAC5F,CAAC;4BACF,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;wBAC9B,CAAC;wBAED,IAAI,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,mBAAmB,MAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,CAAA,EAAE,CAAC;4BACrE,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;4BAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;4BAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;4BAClC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;4BAE3C,MAAM,iBAAiB,GAAG,IAAI,mCAAiB,CAAC;gCAC5C,SAAS,EAAE,CAAC,GAAG,oCAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;6BACvE,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;4BAEhC,IAAI,IAAA,gCAAc,EAAC,iBAAiB,CAAC,EAAE,CAAC;gCACpC,MAAM,iBAAiB,GAAG,IAAA,iCAAe,EAAC,iBAAiB,CAAC,CAAC;gCAE7D,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,iBAAiB,EAAE;oCACnE,GAAG,EAAE,gBAAgB;iCACxB,CAAC,CAAC;gCAEH,MAAM,YAAY,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCAC7E,MAAM,mBAAmB,GAAG,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,0CAAE,MAAM,CAC5D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;gCAEF,IAAI,IAAA,iCAAiB,EAAC,mBAAmB,CAAC,IAAI,MAAM,EAAE,CAAC;oCACnD,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,4CAA4C,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,CACpF,CAAC;oCACF,MAAM,CAAC,aAAa,GAAG,mBAAmB,CAAC;gCAC/C,CAAC;qCAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACnD,QAAQ,CAAC,YAAY,GAAG,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCACvF,CAAC;gCAED,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;oCAC5C,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;oCAChF,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;gCAChC,CAAC;qCAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCAC7C,QAAQ,CAAC,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCACzE,CAAC;4BACL,CAAC;iCAAM,CAAC;gCACJ,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;4BACzE,CAAC;wBACL,CAAC;wBAED,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,0CAAE,gBAAgB,EAAE,CAAC;4BACzC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;4BACtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,0CAAE,SAAS,CAAA,EAAA,CAAC,CAAC;4BAE1F,IAAI,UAAU,EAAE,CAAC;gCACb,MAAM,cAAc,GAAG,IAAI,mCAAiB,CAAC;oCACzC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;iCAC1D,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gCAE7B,IAAI,IAAA,gCAAc,EAAC,cAAc,CAAC,EAAE,CAAC;oCACjC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE;wCAC7D,GAAG;qCACN,CAAC,CAAC;oCACH,MAAM,YAAY,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oCAC1E,MAAM,kBAAkB,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,0CAAE,MAAM,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAC7B,CAAC;oCAEF,IAAI,IAAA,iCAAiB,EAAC,kBAAkB,CAAC,IAAI,MAAM,EAAE,CAAC;wCAClD,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,wCAAwC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAC/E,CAAC;wCACF,MAAM,CAAC,aAAa,GAAG,kBAAkB,CAAC;oCAC9C,CAAC;oCAED,IAAI,IAAA,iCAAiB,EAAC,YAAY,CAAC,IAAI,MAAM,EAAE,CAAC;wCAC5C,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;wCAC5E,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC;oCAChC,CAAC;gCACL,CAAC;qCAAM,CAAC;oCACJ,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;gCACjE,CAAC;4BACL,CAAC;wBACL,CAAC;wBAED,wGAAwG;wBACxG,sBAAsB;wBACtB,IAAI,MAAM,CAAC,KAAK,IAAI,IAAA,iCAAiB,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;4BAClD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;4BAChD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACnF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACzB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,8BAA8B,CAAC,CAAC;4BAC1E,CAAC;wBACL,CAAC;wBAED,IAAI,MAAM,CAAC,aAAa,IAAI,IAAA,iCAAiB,EAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;4BAClE,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;4BAC/D,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChD,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjD,CAAC;4BACF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC/B,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,SAAS,iBAAiB,CAAC,MAAM,qCAAqC,CAAC,CAAC;4BACvF,CAAC;wBACL,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACJ,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;oBAC5E,CAAC;oBAED,iDAAiD;oBACjD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,CAAC;wBAC5B,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;oBAC7C,CAAC;oBAED,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,KAAI,IAAA,iCAAiB,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC,EAAE,CAAC;wBACpE,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,iDAAiD,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,0CAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EACpB,IAAI,CAAC,IAAI,CAAC,EAAE,CACpB,CAAC;wBACF,QAAQ,CAAC,YAAY,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAC;oBAClD,CAAC;oBAED,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,KAAI,IAAA,iCAAiB,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,EAAE,CAAC;wBACpD,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,yCAAyC,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAC;wBACF,QAAQ,CAAC,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;oBACnC,CAAC;oBAED,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,CAAC;wBAC5B,0CAA0C;wBAC1C,MAAM,QAAQ,GAAqB,MAAM,CAAC,iBAAiB,CAAC,CAAC,yEAAyE;wBACtI,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBACjC,CAAC;oBAED,wDAAwD;oBACxD,IACI,CAAC,IAAA,iCAAiB,EAAC,QAAQ,CAAC,SAAS,CAAC;yBACtC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;wBACjB,IAAA,iCAAiB,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAC,EACtC,CAAC;wBACC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;wBACxD,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;oBAC1C,CAAC;oBAED,iBAAiB;oBACjB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;wBACtB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;oBACnC,CAAC;oBAED,IAAI,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAA,KAAK,SAAS,EAAE,CAAC;wBAC7C,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC;oBAC7C,CAAC;oBAED,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,eAAe,EAAE,CAAC;wBAC1B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACJ,IAAI,CAAC,aAAa,GAAG,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC;oBAC/C,CAAC;oBAED;;;;uBAIG;oBACH,aAAa,CACT;wBACI,GAAG;wBACH,IAAI;wBACJ,oBAAoB;wBACpB,QAAQ;wBACR,MAAM;wBACN,WAAW;qBACd,EACD,UAAU,CACb,CAAC;oBAEF,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;oBAEtC,MAAM,SAAS,GAA0B,IAAA,iCAAiB,EAAC,OAAO,CAAC,SAAS,CAAC;wBACzE,CAAC,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE;wBACzB,CAAC,CAAC,4BAAiB,CAAC;oBAExB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,aAAa,SAAS,CAAC,MAAM,kBAAkB,CAAC,CAAC;oBAE5D,6BAA6B;oBAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBAC/B,IAAI,CAAC;4BACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;gCACzC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;4BACvD,CAAC;4BACD,oCAAoC;4BACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACzB,MAAM,cAAc,GAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;4BAC/D,uCAAuC;4BACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACvB,MAAM,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;4BAE7B,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;gCACzC,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,IAAI,SAAS,QAAQ,YAAY,CAAC,CAAC;gCACnE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gCAC5D,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAC5E,IAAA,oBAAG,GAAE,CAAC,IAAI,CACN,YAAY,QAAQ,CAAC,IAAI,UAAU,SAAS,CAAC,MAAM,qBAAqB,qBAAqB,EAAE,CAClG,CAAC;4BACN,CAAC;4BAED,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;gCACjB,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,YAAY,QAAQ,CAAC,IAAI,SAAS,QAAQ,YAAY,CAAC,CAAC;4BACxE,CAAC;4BACD,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;gCACjB,IAAA,oBAAG,GAAE,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,IAAI,SAAS,QAAQ,YAAY,CAAC,CAAC;4BACvE,CAAC;4BACD,oBAAoB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;wBACjD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACT,IAAA,oBAAG,GAAE,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;4BAC3D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC;oBACL,CAAC;oBAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,uCAAqB,CAAC,CAAC;oBAC/F,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,SAAS,EAAE,CAAC;wBAC3B,0DAA0D;wBAC1D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC7B,CAAC;oBAED;;;;uBAIG;oBACH,aAAa,CACT;wBACI,GAAG;wBACH,IAAI;wBACJ,oBAAoB;wBACpB,QAAQ;wBACR,MAAM;wBACN,WAAW;qBACd,EACD,iBAAiB,CACpB,CAAC;gBACN,CAAC,CAAA,EAAE,0BAA0B;aAChC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;YAEpB,8BAA8B;YAC9B,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,IAAA,iCAAiB,EAAC,cAAc,CAAC,CAAC;YAEjD,kBAAkB;YAElB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAErB,OAAO;gBACH,GAAG;gBACH,IAAI;gBACJ,oBAAoB;gBACpB,MAAM;gBACN,WAAW;gBACX,QAAQ;gBACR,MAAM;gBACN,cAAc;aACjB,CAAC;QACN,CAAC;KAAA;CACJ;AA/mBD,8CA+mBC"}
package/lib/models.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /*! Copyright (c) 2023, XAPP AI */
2
- import { HomeAndConstructionBusiness, LocalBusiness } from "schema-dts";
2
+ import { HomeAndConstructionBusiness, LocalBusiness, Organization } from "schema-dts";
3
3
  import { SiteMapData } from "./utils/getSiteMap";
4
4
  export interface WebsiteSchema {
5
5
  localBusiness?: LocalBusiness;
6
6
  homeConstructionBusiness?: HomeAndConstructionBusiness;
7
+ organization?: Organization;
7
8
  }
8
9
  export interface WebsiteDescriptiveData {
9
10
  /**
@@ -111,6 +112,10 @@ export interface BusinessData {
111
112
  * Name of the business
112
113
  */
113
114
  name?: string;
115
+ /**
116
+ * A square image that most likely is the logo.
117
+ */
118
+ logo?: string;
114
119
  /**
115
120
  * Category of the business.
116
121
  */
@@ -21,7 +21,7 @@ export declare function hasEmail(text: string): boolean;
21
21
  */
22
22
  export declare function hasPhoneNumber(text: string): boolean;
23
23
  /**
24
- * Checks if the given text contains emails or phone numbers.
24
+ * Checks if the given text contains emails or phone numbers (filtering out hallucinated numbers).
25
25
  *
26
26
  * @param text The text to be checked.
27
27
  * @returns An object containing arrays of found emails and phone numbers.
@@ -39,7 +39,7 @@ function hasPhoneNumber(text) {
39
39
  return extractContacts(text).phoneNumbers.length > 0;
40
40
  }
41
41
  /**
42
- * Checks if the given text contains emails or phone numbers.
42
+ * Checks if the given text contains emails or phone numbers (filtering out hallucinated numbers).
43
43
  *
44
44
  * @param text The text to be checked.
45
45
  * @returns An object containing arrays of found emails and phone numbers.
@@ -49,7 +49,9 @@ function extractContacts(text) {
49
49
  const phoneRegex = /\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/g;
50
50
  const foundEmails = text.match(emailRegex) || [];
51
51
  // remove any emails that end in .png or .jpg, .webp, jpeg, avif, svg, gif
52
- const filtered = foundEmails.filter(email => !email.match(/\.(png|jpg|webp|jpeg|avif|svg|bmp|gif)$/)).filter(email => !(0, arachne_utils_1.isHallucinatedPhoneNumber)(email));
52
+ const filtered = foundEmails
53
+ .filter((email) => !email.match(/\.(png|jpg|webp|jpeg|avif|svg|bmp|gif)$/))
54
+ .filter((email) => !(0, arachne_utils_1.isHallucinatedPhoneNumber)(email));
53
55
  // and dedupe emails
54
56
  const emails = Array.from(new Set(filtered));
55
57
  const phoneNumbersMatches = text.match(phoneRegex) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"extractContacts.js","sourceRoot":"","sources":["../../src/utils/extractContacts.ts"],"names":[],"mappings":";AAAA,kCAAkC;;AAUlC,wCASC;AAQD,4BAEC;AAQD,wCAEC;AAQD,0CAkBC;AA/DD,uDAAgE;AAEhE;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,uCAAuC;IAEvC,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACjC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,sDAAsD,CAAC;IAC1E,MAAM,UAAU,GAAG,gCAAgC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEjD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAA,yCAAyB,EAAC,KAAK,CAAC,CAAC,CAAC;IAEzJ,oBAAoB;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEzD,kDAAkD;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAA,yCAAyB,EAAC,MAAM,CAAC,CAAC,CAAC;IAErH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"extractContacts.js","sourceRoot":"","sources":["../../src/utils/extractContacts.ts"],"names":[],"mappings":";AAAA,kCAAkC;;AAUlC,wCASC;AAQD,4BAEC;AAQD,wCAEC;AAQD,0CAsBC;AAnED,uDAAgE;AAEhE;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,uCAAuC;IAEvC,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,iBAAiB,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACjC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAAY;IACvC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAY;IACxC,MAAM,UAAU,GAAG,sDAAsD,CAAC;IAC1E,MAAM,UAAU,GAAG,gCAAgC,CAAC;IAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEjD,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,WAAW;SACvB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC1E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAA,yCAAyB,EAAC,KAAK,CAAC,CAAC,CAAC;IAE1D,oBAAoB;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7C,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAEzD,kDAAkD;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAChE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAA,yCAAyB,EAAC,MAAM,CAAC,CACjD,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACpC,CAAC"}
@@ -10,7 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.findBestFaviconURL = findBestFaviconURL;
13
- const getDOMElementHREF_1 = require("./getDOMElementHREF");
14
13
  /**
15
14
  * For the given page, find the best favicon URL.
16
15
  *
@@ -22,19 +21,52 @@ const getDOMElementHREF_1 = require("./getDOMElementHREF");
22
21
  */
23
22
  function findBestFaviconURL(page, pageUrl) {
24
23
  return __awaiter(this, void 0, void 0, function* () {
25
- const rootUrl = (new URL(pageUrl)).protocol + "//" + (new URL(pageUrl)).host;
26
- const selectorsToTry = [
27
- `link[rel="icon"]`,
28
- `link[rel="shortcut icon"]`
29
- ];
24
+ var _a;
25
+ const rootUrl = new URL(pageUrl).protocol + "//" + new URL(pageUrl).host;
30
26
  let faviconUrlFromDocument = null;
31
- for (let i = 0; i < selectorsToTry.length; i++) {
32
- const href = yield (0, getDOMElementHREF_1.getDOMElementHREF)(page, selectorsToTry[i]);
33
- if (typeof href === 'undefined' || href === null || href.length === 0) {
34
- continue;
27
+ // look for apple-touch-icon && msapplication-TileImage, these are high res icons
28
+ const highResIcons = yield page.evaluate(() => {
29
+ const icons = document.querySelectorAll(`link[rel="apple-touch-icon"], link[rel="msapplication-TileImage"], link[rel="icon"], link[rel="shortcut icon"]`);
30
+ // return an array of hrefs & sizes
31
+ return Array.from(icons).map((icon) => {
32
+ return {
33
+ href: icon.getAttribute("href"),
34
+ sizes: icon.getAttribute("sizes"),
35
+ };
36
+ });
37
+ });
38
+ // now, look for the highest res icon, not more than 192x192, if we can't find one we just default to the first one we find
39
+ let bestIcon = null;
40
+ for (const icon of highResIcons) {
41
+ if (icon.sizes) {
42
+ const sizes = icon.sizes.split("x");
43
+ if (sizes.length === 2) {
44
+ const width = parseInt(sizes[0]);
45
+ const height = parseInt(sizes[1]);
46
+ if (width <= 192 && height <= 192) {
47
+ if (bestIcon === null) {
48
+ bestIcon = icon;
49
+ }
50
+ else {
51
+ const bestIconSizes = (_a = bestIcon.sizes) === null || _a === void 0 ? void 0 : _a.split("x");
52
+ if (bestIconSizes) {
53
+ const bestWidth = parseInt(bestIconSizes[0]);
54
+ const bestHeight = parseInt(bestIconSizes[1]);
55
+ if (width > bestWidth && height > bestHeight) {
56
+ bestIcon = icon;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
35
62
  }
36
- faviconUrlFromDocument = href;
37
- break;
63
+ }
64
+ if (bestIcon) {
65
+ faviconUrlFromDocument = bestIcon.href;
66
+ }
67
+ else {
68
+ // no high res icon found, just use the first one we found
69
+ faviconUrlFromDocument = highResIcons[0].href;
38
70
  }
39
71
  if (faviconUrlFromDocument === null) {
40
72
  // No favicon link found in document, best URL is likley favicon.ico at root
@@ -47,13 +79,13 @@ function findBestFaviconURL(page, pageUrl) {
47
79
  // absolute url
48
80
  return faviconUrlFromDocument;
49
81
  }
50
- else if (faviconUrlFromDocument.substr(0, 1) === '/') {
82
+ else if (faviconUrlFromDocument.substr(0, 1) === "/") {
51
83
  // favicon relative to root
52
- return (rootUrl + faviconUrlFromDocument);
84
+ return rootUrl + faviconUrlFromDocument;
53
85
  }
54
86
  else {
55
87
  // favicon relative to current (pageUrl) URL
56
- return (pageUrl + "/" + faviconUrlFromDocument);
88
+ return pageUrl + "/" + faviconUrlFromDocument;
57
89
  }
58
90
  });
59
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"findBestFaviconURL.js","sourceRoot":"","sources":["../../src/utils/findBestFaviconURL.ts"],"names":[],"mappings":";;;;;;;;;;;AAcA,gDAoCC;AA/CD,2DAAwD;AAExD;;;;;;;;GAQG;AACH,SAAsB,kBAAkB,CAAC,IAAiB,EAAE,OAAe;;QAEvE,MAAM,OAAO,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,cAAc,GAAG;YACnB,kBAAkB;YAClB,2BAA2B;SAC9B,CAAC;QAEF,IAAI,sBAAsB,GAAG,IAAI,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,IAAA,qCAAiB,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpE,SAAS;YACb,CAAC;YAED,sBAAsB,GAAG,IAAI,CAAC;YAC9B,MAAM;QACV,CAAC;QAED,IAAI,sBAAsB,KAAK,IAAI,EAAE,CAAC;YAClC,4EAA4E;YAC5E,OAAO,OAAO,GAAG,cAAc,CAAC;QACpC,CAAC;QAED,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,sBAAsB,EAAE,CAAC;QACnE,CAAC;aAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YACxD,eAAe;YACf,OAAO,sBAAsB,CAAC;QAClC,CAAC;aAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrD,2BAA2B;YAC3B,OAAO,CAAC,OAAO,GAAG,sBAAsB,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACJ,4CAA4C;YAC5C,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,sBAAsB,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;CAAA"}
1
+ {"version":3,"file":"findBestFaviconURL.js","sourceRoot":"","sources":["../../src/utils/findBestFaviconURL.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright (c) 2023, XAPP AI */
2
- import { HomeAndConstructionBusiness, LocalBusiness } from "schema-dts";
2
+ import { HomeAndConstructionBusiness, LocalBusiness, Organization } from "schema-dts";
3
3
  import { BusinessCategory } from "../models";
4
- export declare function getBusinessCategoryFromSchema(schema: LocalBusiness | HomeAndConstructionBusiness | undefined): BusinessCategory | undefined;
4
+ export declare function getBusinessCategoryFromSchema(schema: LocalBusiness | HomeAndConstructionBusiness | Organization | undefined): BusinessCategory | undefined;
@@ -15,28 +15,28 @@ function getBusinessCategoryFromSchema(schema) {
15
15
  }
16
16
  }
17
17
  switch (type) {
18
- case 'ProfessionalService':
19
- return 'consulting';
20
- case 'FinancialService':
21
- return 'financial-services';
18
+ case "ProfessionalService":
19
+ return "consulting";
20
+ case "FinancialService":
21
+ return "financial-services";
22
22
  case "Electrician":
23
23
  case "GeneralContractor":
24
24
  case "Plumber":
25
25
  case "HVACBusiness":
26
26
  case "RoofingContractor":
27
27
  case "HousePainter":
28
- case 'HomeAndConstructionBusiness':
29
- return 'home-services-contractors';
30
- case 'InsuranceAgency':
31
- return 'insurance';
32
- case 'LegalService':
33
- return 'legal-services';
34
- case 'RealEstateAgent':
35
- return 'real-estate';
36
- case 'InternetCafe':
37
- return 'technology-services';
38
- case 'TravelAgency':
39
- return 'travel';
28
+ case "HomeAndConstructionBusiness":
29
+ return "home-services-contractors";
30
+ case "InsuranceAgency":
31
+ return "insurance";
32
+ case "LegalService":
33
+ return "legal-services";
34
+ case "RealEstateAgent":
35
+ return "real-estate";
36
+ case "InternetCafe":
37
+ return "technology-services";
38
+ case "TravelAgency":
39
+ return "travel";
40
40
  default:
41
41
  return undefined;
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getBusinessCategoryFromSchema.js","sourceRoot":"","sources":["../../src/utils/getBusinessCategoryFromSchema.ts"],"names":[],"mappings":";AAAA,kCAAkC;;AAMlC,sEAsCC;AAxCD,2DAAgD;AAEhD,SAAgB,6BAA6B,CAAC,MAA+D;IAEzG,IAAI,IAAI,GAAW,EAAE,CAAC;IACtB,IAAI,IAAA,yBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,UAAU,CAAC;QACtB,CAAC;IACL,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,qBAAqB;YACtB,OAAO,YAAY,CAAC;QACxB,KAAK,kBAAkB;YACnB,OAAO,oBAAoB,CAAC;QAChC,KAAK,aAAa,CAAC;QACnB,KAAK,mBAAmB,CAAC;QACzB,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB,CAAC;QACzB,KAAK,cAAc,CAAC;QACpB,KAAK,6BAA6B;YAC9B,OAAO,2BAA2B,CAAC;QACvC,KAAK,iBAAiB;YAClB,OAAO,WAAW,CAAC;QACvB,KAAK,cAAc;YACf,OAAO,gBAAgB,CAAC;QAC5B,KAAK,iBAAiB;YAClB,OAAO,aAAa,CAAC;QACzB,KAAK,cAAc;YACf,OAAO,qBAAqB,CAAC;QACjC,KAAK,cAAc;YACf,OAAO,QAAQ,CAAC;QACpB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"getBusinessCategoryFromSchema.js","sourceRoot":"","sources":["../../src/utils/getBusinessCategoryFromSchema.ts"],"names":[],"mappings":";AAAA,kCAAkC;;AAMlC,sEAuCC;AAzCD,2DAAgD;AAEhD,SAAgB,6BAA6B,CACzC,MAA8E;IAE9E,IAAI,IAAI,GAAW,EAAE,CAAC;IACtB,IAAI,IAAA,yBAAO,EAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,UAAU,CAAC;QACtB,CAAC;IACL,CAAC;IAED,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,qBAAqB;YACtB,OAAO,YAAY,CAAC;QACxB,KAAK,kBAAkB;YACnB,OAAO,oBAAoB,CAAC;QAChC,KAAK,aAAa,CAAC;QACnB,KAAK,mBAAmB,CAAC;QACzB,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB,CAAC;QACzB,KAAK,cAAc,CAAC;QACpB,KAAK,6BAA6B;YAC9B,OAAO,2BAA2B,CAAC;QACvC,KAAK,iBAAiB;YAClB,OAAO,WAAW,CAAC;QACvB,KAAK,cAAc;YACf,OAAO,gBAAgB,CAAC;QAC5B,KAAK,iBAAiB;YAClB,OAAO,aAAa,CAAC;QACzB,KAAK,cAAc;YACf,OAAO,qBAAqB,CAAC;QACjC,KAAK,cAAc;YACf,OAAO,QAAQ,CAAC;QACpB;YACI,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC"}
@@ -1,10 +1,10 @@
1
- /*! Copyright (c) 2023, XAPP AI */
2
- import { HomeAndConstructionBusiness, LocalBusiness } from "schema-dts";
3
- import { BusinessData } from "../models";
1
+ import { HomeAndConstructionBusiness, LocalBusiness, Organization } from "schema-dts";
2
+ import { BusinessData, WebsiteSchema } from "../models";
4
3
  /**
5
4
  * Will attempt to extract business data from a schema.org schema.
6
5
  *
7
6
  * @param schema
8
7
  * @returns
9
8
  */
10
- export declare function getBusinessData(schema: LocalBusiness | HomeAndConstructionBusiness | undefined): Partial<BusinessData>;
9
+ export declare function getBusinessData(schema: LocalBusiness | HomeAndConstructionBusiness | Organization | undefined): Promise<Partial<BusinessData>>;
10
+ export declare function getBusinessDataFromSchema(schema: WebsiteSchema): Promise<Partial<BusinessData>>;
@@ -1,7 +1,21 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.getBusinessData = getBusinessData;
13
+ exports.getBusinessDataFromSchema = getBusinessDataFromSchema;
14
+ /*! Copyright (c) 2023, XAPP AI */
4
15
  const arachne_parsers_1 = require("@xapp/arachne-parsers");
16
+ const stentor_logger_1 = require("stentor-logger");
17
+ const image_1 = require("./image");
18
+ const getBusinessCategoryFromSchema_1 = require("./getBusinessCategoryFromSchema");
5
19
  /**
6
20
  * Will attempt to extract business data from a schema.org schema.
7
21
  *
@@ -9,37 +23,60 @@ const arachne_parsers_1 = require("@xapp/arachne-parsers");
9
23
  * @returns
10
24
  */
11
25
  function getBusinessData(schema) {
12
- if (!schema) {
13
- return {};
14
- }
15
- const partial = {};
16
- if (schema && typeof schema === "object") {
17
- // try to get it from JSON?
18
- if (typeof schema.name === "string") {
19
- partial.name = schema === null || schema === void 0 ? void 0 : schema.name;
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ if (!schema) {
28
+ return {};
20
29
  }
21
- if (typeof schema.telephone === "string") {
22
- partial.phoneNumbers = [{ number: schema.telephone }];
23
- }
24
- if ((0, arachne_parsers_1.isTyped)(schema.address)) {
25
- const address = schema.address;
26
- if ((0, arachne_parsers_1.isPostalAddress)(address)) {
27
- const bizAddress = {};
28
- if (address.addressLocality && typeof address.addressLocality === "string") {
29
- bizAddress.locality = address.addressLocality;
30
- }
31
- if (address.streetAddress && typeof address.streetAddress === "string") {
32
- bizAddress.streetAddress = address.streetAddress;
30
+ const partial = {};
31
+ if (schema && typeof schema === "object") {
32
+ // try to get it from JSON?
33
+ if (typeof schema.name === "string") {
34
+ partial.name = schema === null || schema === void 0 ? void 0 : schema.name;
35
+ }
36
+ if (typeof schema.telephone === "string") {
37
+ partial.phoneNumbers = [{ number: schema.telephone }];
38
+ }
39
+ if (typeof schema.logo === "string") {
40
+ try {
41
+ const square = yield (0, image_1.imageIsSquare)(schema.logo, 75);
42
+ if (square) {
43
+ (0, stentor_logger_1.log)().debug(`Found a square logo from json+ld ${schema.logo}`);
44
+ partial.logo = schema.logo;
45
+ }
33
46
  }
34
- if (address.postalCode && typeof address.postalCode === "string") {
35
- bizAddress.postalCode = address.postalCode;
47
+ catch (e) {
48
+ (0, stentor_logger_1.log)().debug(`Error determining if logo is square ${e}`);
36
49
  }
37
- if (Object.keys(bizAddress).length > 0) {
38
- partial.addresses = [bizAddress];
50
+ }
51
+ if ((0, arachne_parsers_1.isTyped)(schema.address)) {
52
+ const address = schema.address;
53
+ if ((0, arachne_parsers_1.isPostalAddress)(address)) {
54
+ const bizAddress = {};
55
+ if (address.addressLocality && typeof address.addressLocality === "string") {
56
+ bizAddress.locality = address.addressLocality;
57
+ }
58
+ if (address.streetAddress && typeof address.streetAddress === "string") {
59
+ bizAddress.streetAddress = address.streetAddress;
60
+ }
61
+ if (address.postalCode && typeof address.postalCode === "string") {
62
+ bizAddress.postalCode = address.postalCode;
63
+ }
64
+ if (Object.keys(bizAddress).length > 0) {
65
+ partial.addresses = [bizAddress];
66
+ }
39
67
  }
40
68
  }
41
69
  }
42
- }
43
- return partial;
70
+ partial.category = (0, getBusinessCategoryFromSchema_1.getBusinessCategoryFromSchema)(schema);
71
+ return partial;
72
+ });
73
+ }
74
+ function getBusinessDataFromSchema(schema) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ const localBusiness = yield getBusinessData(schema.localBusiness);
77
+ const organization = yield getBusinessData(schema.organization);
78
+ const homeAndConstructionBusiness = yield getBusinessData(schema.homeConstructionBusiness);
79
+ return Object.assign(Object.assign(Object.assign({}, homeAndConstructionBusiness), localBusiness), organization);
80
+ });
44
81
  }
45
82
  //# sourceMappingURL=getBusinessData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBusinessData.js","sourceRoot":"","sources":["../../src/utils/getBusinessData.ts"],"names":[],"mappings":";;AAWA,0CA8CC;AAtDD,2DAAiE;AAEjE;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,MAA+D;IAE3F,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAA0B,EAAE,CAAC;IAE1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAEvC,2BAA2B;QAC3B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,CAAC,YAAY,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAA;QACzD,CAAC;QAED,IAAI,IAAA,yBAAO,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAE/B,IAAI,IAAA,iCAAe,EAAC,OAAO,CAAC,EAAE,CAAC;gBAE3B,MAAM,UAAU,GAAoB,EAAE,CAAC;gBACvC,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACzE,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC;gBAClD,CAAC;gBAED,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;oBACrE,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;gBACrD,CAAC;gBAED,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;oBAC/D,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;gBAC/C,CAAC;gBAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,SAAS,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"getBusinessData.js","sourceRoot":"","sources":["../../src/utils/getBusinessData.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xapp/arachne-web-service",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "types": "lib/index",
5
5
  "main": "lib/index",
6
6
  "files": [
@@ -14,27 +14,27 @@
14
14
  "node": "^14 || ^16 || ^18 || ^20.0.0"
15
15
  },
16
16
  "devDependencies": {
17
- "@microsoft/api-extractor": "7.48.1",
17
+ "@microsoft/api-extractor": "7.49.2",
18
18
  "@sparticuz/chromium": "131.0.1",
19
19
  "@types/chai": "4.3.20",
20
20
  "@types/mocha": "10.0.10",
21
- "@types/node": "20.17.6",
21
+ "@types/node": "20.17.17",
22
22
  "@types/sinon": "17.0.3",
23
23
  "@types/sinon-chai": "3.2.12",
24
24
  "@xapp/config": "0.2.3",
25
25
  "chai": "4.5.0",
26
26
  "dotenv": "16.4.7",
27
27
  "mocha": "10.8.2",
28
- "puppeteer-core": "23.10.2",
28
+ "puppeteer-core": "24.1.1",
29
29
  "sinon": "18.0.1",
30
30
  "sinon-chai": "3.7.0",
31
31
  "ts-node": "10.9.2",
32
32
  "tslib": "2.8.1",
33
- "typescript": "5.7.2"
33
+ "typescript": "5.7.3"
34
34
  },
35
35
  "dependencies": {
36
- "@xapp/arachne": "1.9.0",
37
- "@xapp/arachne-parsers": "1.9.0",
36
+ "@xapp/arachne": "1.9.1",
37
+ "@xapp/arachne-parsers": "1.9.1",
38
38
  "abort-controller": "3.0.0",
39
39
  "gpt-3-encoder": "1.1.4",
40
40
  "ico-to-png": "0.2.2",
@@ -42,9 +42,9 @@
42
42
  "node-vibrant": "3.2.1-alpha.1",
43
43
  "schema-dts": "1.1.2",
44
44
  "sharp": "0.33.5",
45
- "stentor-logger": "1.59.141",
46
- "stentor-models": "1.59.139",
47
- "stentor-utils": "1.59.141"
45
+ "stentor-logger": "1.59.144",
46
+ "stentor-models": "1.59.144",
47
+ "stentor-utils": "1.59.144"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "puppeteer-core": "23.10.2"
@@ -56,5 +56,5 @@
56
56
  "test": "mocha --recursive -r ts-node/register \"./src/**/*.test.ts\"",
57
57
  "test:f": "mocha --recursive -r ts-node/register \"./src/**/*.ftest.ts\""
58
58
  },
59
- "gitHead": "03d067aefa9a6da1c91ee44eea950ad00f5bd39a"
59
+ "gitHead": "c8ed6c0412c3eeb6706f1555d9a553ac35952840"
60
60
  }