From 3a9f952d8bd937b72e7cffcff35242b11699198e Mon Sep 17 00:00:00 2001 From: John Mizerek Date: Sun, 1 Mar 2026 20:28:02 -0800 Subject: [PATCH] Fix Toast __OO_STATE__ extraction: remove tag stripping and var keywords Tag stripping via reReplace on 1.7M HTML was likely causing the silent failure on biz server. Brace-counting doesn't need tag stripping since HTML tags don't contain { or } and attribute quotes come in balanced pairs. Also removed var keywords from page-level cfscript (may not be supported in Lucee at template level) and added detailed error output to the cfcatch for debugging. Also auto-detect dev/prod environment from hostname instead of hardcoded flag. Co-Authored-By: Claude Opus 4.6 --- api/config/environment.cfm | 11 ++---- api/setup/analyzeMenuUrl.cfm | 71 ++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 46 deletions(-) diff --git a/api/config/environment.cfm b/api/config/environment.cfm index 4793cdc..45c3589 100644 --- a/api/config/environment.cfm +++ b/api/config/environment.cfm @@ -2,17 +2,14 @@ /** * Environment Configuration * - * Controls dev vs production behavior. - * This file should have DIFFERENT values on dev vs biz servers. - * - * dev.payfrit.com: isDevEnvironment = true - * biz.payfrit.com: isDevEnvironment = false + * Auto-detects dev vs production based on server hostname. + * No manual flag to change — safe to deploy via git pull to either server. */ // ============================================ -// ENVIRONMENT FLAG - CHANGE PER SERVER +// ENVIRONMENT FLAG - AUTO-DETECTED // ============================================ -isDevEnvironment = true; // Set to FALSE on biz.payfrit.com +isDevEnvironment = (createObject("java", "java.net.InetAddress").getLocalHost().getHostName() != "biz"); // ============================================ // ERROR HANDLING diff --git a/api/setup/analyzeMenuUrl.cfm b/api/setup/analyzeMenuUrl.cfm index 9eb5a55..6336968 100644 --- a/api/setup/analyzeMenuUrl.cfm +++ b/api/setup/analyzeMenuUrl.cfm @@ -278,20 +278,16 @@ - - - ]+>", "", "all")> - ooStateJson2 = ""; - ooStart2 = findNoCase("window.__OO_STATE__", ooExtractHtml2); + ooStart2 = findNoCase("window.__OO_STATE__", pageHtml); if (ooStart2 > 0) { - var bs2 = find("{", ooExtractHtml2, ooStart2); + bs2 = find("{", pageHtml, ooStart2); if (bs2 > 0) { - var d2 = 0; var inS2 = false; var esc2 = false; var be2 = 0; - for (var i2 = bs2; i2 <= len(ooExtractHtml2); i2++) { - var c2 = mid(ooExtractHtml2, i2, 1); + d2 = 0; inS2 = false; esc2 = false; be2 = 0; + totalLen2 = len(pageHtml); + for (i2 = bs2; i2 <= totalLen2; i2++) { + c2 = mid(pageHtml, i2, 1); if (esc2) { esc2 = false; continue; } if (c2 == chr(92) && inS2) { esc2 = true; continue; } if (c2 == '"') { inS2 = !inS2; continue; } @@ -300,7 +296,7 @@ else if (c2 == "}") { d2 = d2 - 1; if (d2 == 0) { be2 = i2; break; } } } } - if (be2 > 0) ooStateJson2 = mid(ooExtractHtml2, bs2, be2 - bs2 + 1); + if (be2 > 0) ooStateJson2 = mid(pageHtml, bs2, be2 - bs2 + 1); } } if (len(ooStateJson2)) { @@ -586,20 +582,16 @@ - - - ]+>", "", "all")> - otherOoJson = ""; - var otherOoStart = findNoCase("window.__OO_STATE__", otherCleanHtml); + otherOoStart = findNoCase("window.__OO_STATE__", otherHtml); if (otherOoStart > 0) { - var obs = find("{", otherCleanHtml, otherOoStart); + obs = find("{", otherHtml, otherOoStart); if (obs > 0) { - var od = 0; var ois = false; var oesc = false; var obe = 0; - for (var oi = obs; oi <= len(otherCleanHtml); oi++) { - var oc = mid(otherCleanHtml, oi, 1); + od = 0; ois = false; oesc = false; obe = 0; + otherLen = len(otherHtml); + for (oi = obs; oi <= otherLen; oi++) { + oc = mid(otherHtml, oi, 1); if (oesc) { oesc = false; continue; } if (oc == chr(92) && ois) { oesc = true; continue; } if (oc == '"') { ois = !ois; continue; } @@ -608,7 +600,7 @@ else if (oc == "}") { od = od - 1; if (od == 0) { obe = oi; break; } } } } - if (obe > 0) otherOoJson = mid(otherCleanHtml, obs, obe - obs + 1); + if (obe > 0) otherOoJson = mid(otherHtml, obs, obe - obs + 1); } } if (len(otherOoJson)) { @@ -998,25 +990,20 @@ - - - ]+>", "", "all")> - - + ooStateJson = ""; - ooStartPos = findNoCase("window.__OO_STATE__", ooExtractHtml); + ooStartPos = findNoCase("window.__OO_STATE__", pageHtml); if (ooStartPos > 0) { - braceStart = find("{", ooExtractHtml, ooStartPos); + braceStart = find("{", pageHtml, ooStartPos); if (braceStart > 0) { - var depth = 0; - var inStr = false; - var esc = false; - var braceEnd = 0; - var totalLen = len(ooExtractHtml); - for (var ci = braceStart; ci <= totalLen; ci++) { - var ch = mid(ooExtractHtml, ci, 1); + depth = 0; + inStr = false; + esc = false; + braceEnd = 0; + totalLen = len(pageHtml); + for (ci = braceStart; ci <= totalLen; ci++) { + ch = mid(pageHtml, ci, 1); if (esc) { esc = false; continue; } if (ch == chr(92) && inStr) { esc = true; continue; } if (ch == '"') { inStr = !inStr; continue; } @@ -1029,7 +1016,7 @@ } } if (braceEnd > 0) { - ooStateJson = mid(ooExtractHtml, braceStart, braceEnd - braceStart + 1); + ooStateJson = mid(pageHtml, braceStart, braceEnd - braceStart + 1); } } } @@ -1406,7 +1393,13 @@ - + + + + + + +