Configuration
/**
* Sidecar Config for middleware/platformextractors/dealercenter.ts
*/
module.exports = {
title: "dealercenter.ts",
description: "Auto-generated draft",
};
---
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
---
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