Configuration
/**
* Sidecar Config for middleware/platformextractors/dealercom.ts
*/
module.exports = {
title: "dealercom.ts",
description: "Auto-generated draft",
};
---
title: "Route Flow: ssutil/src/middleware/platformextractors/dealercom.ts"
---
flowchart TD
title["Route Flow: ssutil/src/middleware/platformextractors/dealercom.ts"]
style title fill:none,stroke:none,color:#B4976A,font-size:18px
extractDealerCom{{"extractDealerCom"}}
style extractDealerCom 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/dealercom.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["cleanPhone"]
n4 --> n6
n6 --> n5
style n6 stroke-dasharray:5,stroke:#B4976A
n7["unescapeJsString"]
n4 --> n7
n7 --> n5
style n7 stroke-dasharray:5,stroke:#B4976A
n8["cleanDealerName"]
n4 --> n8
n8 --> n5
style n8 stroke-dasharray:5,stroke:#B4976A
n9["cleanAddressField"]
n4 --> n9
n9 --> n5
style n9 stroke-dasharray:5,stroke:#B4976A
n5["./utils"]
style n5 fill:#ffffff10,stroke:#ffffff33,color:#a1a1a1
n10["VS"]
n0 --> n10
n13["VD: DDC_PATTERNS"]
n10 --> n13
n28["FD: extractDealerCom"]
n0 --> n28
n39["VS"]
n28 --> n39
n41["VD: extracted"]
n39 --> n41
n48["VS"]
n28 --> n48
n50["VD: dataLayerScripts"]
n48 --> n50
n55["VS"]
n28 --> n55
n57["VD: scriptMatch"]
n55 --> n57
n59["VS"]
n28 --> n59
n61["VD: scriptsPattern"]
n59 --> n61
n63["NE"]
n61 --> n63
n76["BE"]
n28 --> n76
n78["BE"]
n76 --> n78
n81["CE: scriptsPattern.exec"]
n78 --> n81
n90["CE: dataLayerScripts.push"]
n28 --> n90
n97["VS"]
n28 --> n97
n99["VD: dataLayerHtml"]
n97 --> n99
n102["BE"]
n99 --> n102
n109["CE: dataLayerScripts.join"]
n99 --> n109
n116["VS"]
n28 --> n116
n118["VD: dealership"]
n116 --> n118
n125["VS"]
n28 --> n125
n127["VD: match"]
n125 --> n127
n129["VS"]
n28 --> n129
n131["VD: dealershipPattern"]
n129 --> n131
n133["NE"]
n131 --> n133
n146["BE"]
n28 --> n146
n148["BE"]
n146 --> n148
n151["CE: dealershipPattern.exec"]
n148 --> n151
n160["BE"]
n28 --> n160
n167["CE: unescapeJsString"]
n160 --> n167
n172["VS"]
n28 --> n172
n174["VD: siteInfo"]
n172 --> n174
n181["VS"]
n28 --> n181
n183["VD: siteInfoPattern"]
n181 --> n183
n185["NE"]
n183 --> n185
n198["BE"]
n28 --> n198
n200["BE"]
n198 --> n200
n203["CE: siteInfoPattern.exec"]
n200 --> n203
n212["BE"]
n28 --> n212
n219["CE: unescapeJsString"]
n212 --> n219
n224["IS"]
n28 --> n224
n225["BE"]
n224 --> n225
n230["CE: dealership.dealershipName.trim"]
n225 --> n230
n238["BE"]
n224 --> n238
n243["CE: cleanDealerName"]
n238 --> n243
n248["IS"]
n224 --> n248
n249["BE"]
n248 --> n249
n254["CE: dealership.name.trim"]
n249 --> n254
n262["BE"]
n248 --> n262
n267["CE: cleanDealerName"]
n262 --> n267
n272["IS"]
n28 --> n272
n273["BE"]
n272 --> n273
n278["CE: dealership.phone1.trim"]
n273 --> n278
n286["BE"]
n272 --> n286
n291["CE: cleanPhone"]
n286 --> n291
n296["IS"]
n272 --> n296
n297["BE"]
n296 --> n297
n302["CE: dealership.phone.trim"]
n297 --> n302
n310["BE"]
n296 --> n310
n315["CE: cleanPhone"]
n310 --> n315
n320["IS"]
n296 --> n320
n321["BE"]
n320 --> n321
n326["CE: dealership.phoneMain.trim"]
n321 --> n326
n329["BE"]
n320 --> n329
n334["CE: cleanPhone"]
n329 --> n334
n335["IS"]
n28 --> n335
n336["BE"]
n335 --> n336
n341["CE: dealership.email.trim"]
n336 --> n341
n349["BE"]
n335 --> n349
n357["IS"]
n335 --> n357
n358["BE"]
n357 --> n358
n363["CE: dealership.emailMain.trim"]
n358 --> n363
n371["BE"]
n357 --> n371
n379["IS"]
n28 --> n379
n385["BE"]
n379 --> n385
n393["IS"]
n28 --> n393
n399["BE"]
n393 --> n399
n407["IS"]
n393 --> n407
n413["BE"]
n407 --> n413
n421["IS"]
n28 --> n421
n422["BE"]
n421 --> n422
n427["CE: siteInfo.domain.trim"]
n422 --> n427
n435["BE"]
n421 --> n435
n443["IS"]
n421 --> n443
n444["BE"]
n443 --> n444
n449["CE: dealership.website.trim"]
n444 --> n449
n457["BE"]
n443 --> n457
n465["IS"]
n28 --> n465
n466["BE"]
n465 --> n466
n471["CE: dealership.logo.trim"]
n466 --> n471
n479["BE"]
n465 --> n479
n487["IS"]
n465 --> n487
n488["BE"]
n487 --> n488
n493["CE: dealership.logoUrl.trim"]
n488 --> n493
n501["BE"]
n487 --> n501
n509["IS"]
n28 --> n509
n515["VS"]
n509 --> n515
n517["VD: jsonLdPattern"]
n515 --> n517
n519["NE"]
n517 --> n519
n526["BE"]
n519 --> n526
n527["VS"]
n509 --> n527
n529["VD: jsonLdMatch"]
n527 --> n529
n532["BE"]
n509 --> n532
n534["BE"]
n532 --> n534
n537["CE: jsonLdPattern.exec"]
n534 --> n537
n545["TS"]
n509 --> n545
n547["VS"]
n545 --> n547
n549["VD: jsonData"]
n547 --> n549
n551["CE: JSON.parse"]
n549 --> n551
n552["IS"]
n545 --> n552
n553["BE"]
n552 --> n553
n554["BE"]
n553 --> n554
n562["BE"]
n552 --> n562
n572["VD: e"]
n545 --> n572
n576["VS"]
n28 --> n576
n578["VD: streetAddress"]
n576 --> n578
n580["BE"]
n578 --> n580
n581["BE"]
n580 --> n581
n593["IS"]
n28 --> n593
n598["IS"]
n593 --> n598
n604["BE"]
n598 --> n604
n621["BE"]
n598 --> n621
n627["VS"]
n28 --> n627
n629["VD: addressFields"]
n627 --> n629
n634["CE: cleanAddressField"]
n629 --> n634
n639["CE: cleanAddressField"]
n629 --> n639
n646["CE: cleanAddressField"]
n629 --> n646
n648["BE"]
n646 --> n648
n649["BE"]
n648 --> n649
n656["CE: cleanAddressField"]
n629 --> n656
n658["BE"]
n656 --> n658
n659["BE"]
n658 --> n659
n666["CE: cleanAddressField"]
n629 --> n666
n671["IS"]
n28 --> n671
n672["BE"]
n671 --> n672
n682["BE"]
n671 --> n682
n691["BE"]
n682 --> n691
n699["BE"]
n682 --> n699
n707["BE"]
n682 --> n707
n715["BE"]
n682 --> n715
n723["BE"]
n682 --> n723
n729["RS"]
n28 --> n729
style n0 fill:#5E377B,color:#fff,stroke:#B4976A
linkStyle default stroke:#c2a35d,stroke-width:1px,opacity:0.6
BE BinaryExpressionCE CallExpressionFD FunctionDeclarationIS IfStatementID ImportDeclarationNE NewExpressionRS ReturnStatementSF SourceFileTS TryStatementVD VariableDeclarationVS VariableStatement