Sidecar Logo

middleware/platformextractors/dealercenter.ts

Configuration

/**
 * Sidecar Config for middleware/platformextractors/dealercenter.ts
 */
module.exports = {
  title: "dealercenter.ts",
  description: "Auto-generated draft",
};

Route Flow Map

--- title: "Route Flow: ssutil/src/middleware/platformextractors/dealercenter.ts" --- flowchart TD title["Route Flow: ssutil/src/middleware/platformextractors/dealercenter.ts"] style title fill:none,stroke:none,color:#B4976A,font-size:18px extractDealerCenter{{"extractDealerCenter"}} style extractDealerCenter fill:#161b22,color:#fff,stroke:#c2a35d linkStyle default stroke:#c2a35d,stroke-width:2px,color:#fff classDef default color:#fff

AST Code Structure

--- title: "AST Structure: ssutil/src/middleware/platformextractors/dealercenter.ts" --- graph TD n0["SF"] n1["ID"] n0 --> n1 n3["ScrapeResult"] n1 --> n3 n3 --> n2 style n3 stroke-dasharray:5,stroke:#B4976A n2["../platformscrape"] style n2 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1 n4["ID"] n0 --> n4 n6["decodeCloudflareEmail"] n4 --> n6 n6 --> n5 style n6 stroke-dasharray:5,stroke:#B4976A n7["cleanDealerName"] n4 --> n7 n7 --> n5 style n7 stroke-dasharray:5,stroke:#B4976A n8["cleanAddressField"] n4 --> n8 n8 --> n5 style n8 stroke-dasharray:5,stroke:#B4976A n5["./utils"] style n5 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1 n9["VS"] n0 --> n9 n12["VD: DEALERCENTER_PATTERNS"] n9 --> n12 n60["FD: extractDealerCenter"] n0 --> n60 n71["VS"] n60 --> n71 n73["VD: extracted"] n71 --> n73 n80["VS"] n60 --> n80 n82["VD: dcidMatch"] n80 --> n82 n84["CE: html.match"] n82 --> n84 n91["IS"] n60 --> n91 n94["BE"] n91 --> n94 n102["VS"] n60 --> n102 n104["VD: blogIdMatch"] n102 --> n104 n106["CE: html.match"] n104 --> n106 n113["IS"] n60 --> n113 n116["BE"] n113 --> n116 n124["VS"] n60 --> n124 n126["VD: jsonLdMatch"] n124 --> n126 n128["CE: html.match"] n126 --> n128 n135["IS"] n60 --> n135 n138["TS"] n135 --> n138 n140["VS"] n138 --> n140 n142["VD: jsonData"] n140 --> n142 n144["CE: JSON.parse"] n142 --> n144 n145["VS"] n138 --> n145 n147["VD: extractBusinessData"] n145 --> n147 n149["AF"] n147 --> n149 n150["IS"] n138 --> n150 n151["BE"] n150 --> n151 n156["CE: Array.isArray"] n151 --> n156 n158["VS"] n150 --> n158 n160["VD: automotiveBusiness"] n158 --> n160 n161["IS"] n150 --> n161 n165["CE: extractBusinessData"] n161 --> n165 n166["IS"] n150 --> n166 n167["BE"] n166 --> n167 n169["VS"] n166 --> n169 n170["IS"] n166 --> n170 n171["IS"] n150 --> n171 n176["IS"] n171 --> n176 n178["VD: e"] n138 --> n178 n181["IS"] n60 --> n181 n187["VS"] n181 --> n187 n189["VD: nameFromMeta"] n187 --> n189 n191["CE: html.match"] n189 --> n191 n198["IS"] n181 --> n198 n199["BE"] n198 --> n199 n207["BE"] n198 --> n207 n212["CE: cleanDealerName"] n207 --> n212 n218["VS"] n198 --> n218 n220["VD: nameFromLogo"] n218 --> n220 n222["CE: html.match"] n220 --> n222 n223["IS"] n198 --> n223 n224["BE"] n223 --> n224 n232["BE"] n223 --> n232 n237["CE: cleanDealerName"] n232 --> n237 n238["IS"] n60 --> n238 n244["VS"] n238 --> n244 n246["VD: contactMatch"] n244 --> n246 n248["CE: html.match"] n246 --> n248 n253["IS"] n238 --> n253 n256["VS"] n253 --> n256 n258["VD: contactHtml"] n256 --> n258 n263["VS"] n253 --> n263 n265["VD: telMatches"] n263 --> n265 n269["CE: contactHtml.matchAll"] n265 --> n269 n270["IS"] n253 --> n270 n271["BE"] n270 --> n271 n278["VS"] n270 --> n278 n280["VD: phoneMatch"] n278 --> n280 n281["IS"] n270 --> n281 n286["BE"] n281 --> n286 n287["IS"] n270 --> n287 n288["BE"] n287 --> n288 n291["BE"] n287 --> n291 n292["IS"] n270 --> n292 n295["VS"] n292 --> n295 n296["VS"] n292 --> n296 n297["IS"] n292 --> n297 n298["IS"] n238 --> n298 n304["VS"] n298 --> n304 n306["VD: telMatch"] n304 --> n306 n308["CE: html.match"] n306 --> n308 n309["IS"] n298 --> n309 n312["VS"] n309 --> n312 n314["VD: phoneText"] n312 --> n314 n315["VS"] n309 --> n315 n317["VD: phoneMatch2"] n315 --> n317 n318["IS"] n309 --> n318 n322["BE"] n318 --> n322 n325["BE"] n318 --> n325 n326["IS"] n60 --> n326 n332["VS"] n326 --> n332 n334["VD: emailFromAria"] n332 --> n334 n336["CE: html.match"] n334 --> n336 n343["IS"] n326 --> n343 n344["BE"] n343 --> n344 n352["BE"] n343 --> n352 n357["CE: emailFromAria[1].trim"] n352 --> n357 n364["VS"] n343 --> n364 n366["VD: cfEmailMatch"] n364 --> n366 n368["CE: html.match"] n366 --> n368 n369["IS"] n343 --> n369 n370["BE"] n369 --> n370 n377["VS"] n369 --> n377 n379["VD: decoded"] n377 --> n379 n380["IS"] n369 --> n380 n384["BE"] n380 --> n384 n386["VS"] n369 --> n386 n388["VD: emailMatch"] n386 --> n388 n389["IS"] n369 --> n389 n393["BE"] n389 --> n393 n394["IS"] n60 --> n394 n400["VS"] n394 --> n400 n402["VD: streetMatch"] n400 --> n402 n404["CE: html.match"] n402 --> n404 n411["VS"] n394 --> n411 n413["VD: cityMatch"] n411 --> n413 n415["CE: html.match"] n413 --> n415 n422["VS"] n394 --> n422 n424["VD: stateMatch"] n422 --> n424 n426["CE: html.match"] n424 --> n426 n433["VS"] n394 --> n433 n435["VD: zipMatch"] n433 --> n435 n437["CE: html.match"] n435 --> n437 n444["IS"] n394 --> n444 n445["BE"] n444 --> n445 n451["BE"] n444 --> n451 n463["CE: cleanAddressField"] n451 --> n463 n465["CE: streetMatch[1].replace"] n463 --> n465 n473["CE: cleanAddressField"] n451 --> n473 n475["CE: cityMatch[1].replace"] n473 --> n475 n483["CE: cleanAddressField"] n451 --> n483 n495["CE: cleanAddressField"] n451 --> n495 n505["IS"] n60 --> n505 n511["VS"] n505 --> n511 n513["VD: logoImgMatch"] n511 --> n513 n515["CE: html.match"] n513 --> n515 n522["IS"] n505 --> n522 n523["BE"] n522 --> n523 n531["BE"] n522 --> n531 n540["VS"] n522 --> n540 n542["VD: logoFromMetaMatch"] n540 --> n542 n544["CE: html.match"] n542 --> n544 n545["IS"] n522 --> n545 n546["BE"] n545 --> n546 n554["BE"] n545 --> n554 n562["RS"] n60 --> n562 style n0 fill:#5E377B,color:#fff,stroke:#B4976A linkStyle default stroke:#c2a35d,stroke-width:1px,opacity:0.6
AF ArrowFunctionBE BinaryExpressionCE CallExpressionFD FunctionDeclarationIS IfStatementID ImportDeclarationRS ReturnStatementSF SourceFileTS TryStatementVD VariableDeclarationVS VariableStatement