@accelerated-agency/visual-editor 0.4.0 → 0.4.2
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.
- package/dist/vite.cjs +67 -11
- package/dist/vite.js +67 -11
- package/package.json +1 -1
package/dist/vite.cjs
CHANGED
|
@@ -19,7 +19,7 @@ var SCRAPER_PROXY_USERNAME = process.env.SCRAPERAPI_PROXY_USERNAME || [
|
|
|
19
19
|
SCRAPER_PROXY_USERNAME_BASE,
|
|
20
20
|
SCRAPER_PROXY_USERNAME_PARAMS
|
|
21
21
|
].filter(Boolean).join(".");
|
|
22
|
-
var SCRAPER_PROXY_PASSWORD = process.env.SCRAPERAPI_PROXY_PASSWORD || process.env.SCRAPERAPI_API_KEY
|
|
22
|
+
var SCRAPER_PROXY_PASSWORD = process.env.SCRAPERAPI_PROXY_PASSWORD || process.env.SCRAPERAPI_API_KEY;
|
|
23
23
|
var SCRAPER_API_ENDPOINT = process.env.SCRAPERAPI_ENDPOINT || "https://api.scraperapi.com/";
|
|
24
24
|
var SCRAPER_REQUEST_TLS_REJECT_UNAUTHORIZED_RAW = process.env.SCRAPERAPI_REQUEST_TLS_REJECT_UNAUTHORIZED || "false";
|
|
25
25
|
var SCRAPER_REQUEST_TLS_REJECT_UNAUTHORIZED = !["0", "false", "no"].includes(
|
|
@@ -113,10 +113,12 @@ function stripTrackingScriptsFromScrapedHtml(html, markers) {
|
|
|
113
113
|
}
|
|
114
114
|
return out;
|
|
115
115
|
}
|
|
116
|
+
var SCRAPER_BILLING_ERROR_RE = /exhausted the api credits|upgrade your subscription|enable overages|dashboard\.scraperapi\.com\/billing|insufficient credits|billing/i;
|
|
116
117
|
var scraperProxyClientPromise = null;
|
|
117
118
|
async function getScraperProxyClient() {
|
|
118
119
|
if (scraperProxyClientPromise) return scraperProxyClientPromise;
|
|
119
120
|
scraperProxyClientPromise = (async () => {
|
|
121
|
+
if (!SCRAPER_PROXY_PASSWORD) return null;
|
|
120
122
|
try {
|
|
121
123
|
const undici = await import('undici');
|
|
122
124
|
const proxyUrl = "http://" + encodeURIComponent(SCRAPER_PROXY_USERNAME) + ":" + encodeURIComponent(SCRAPER_PROXY_PASSWORD) + "@" + SCRAPER_PROXY_HOST + ":" + String(SCRAPER_PROXY_PORT);
|
|
@@ -1139,12 +1141,36 @@ select.pr-inp{cursor:pointer;background:#fff}
|
|
|
1139
1141
|
|
|
1140
1142
|
<!-- CDN scripts -->
|
|
1141
1143
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
1142
|
-
<script
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1144
|
+
<script>
|
|
1145
|
+
window.__veLoadFallback = function(el, candidates){
|
|
1146
|
+
try{
|
|
1147
|
+
if(!el) return;
|
|
1148
|
+
var list = String(candidates || "").split("||").map(function(v){ return v.trim(); }).filter(Boolean);
|
|
1149
|
+
var idx = Number(el.getAttribute("data-fallback-idx") || "0");
|
|
1150
|
+
if(idx >= list.length) return;
|
|
1151
|
+
var next = list[idx];
|
|
1152
|
+
el.setAttribute("data-fallback-idx", String(idx + 1));
|
|
1153
|
+
el.src = next;
|
|
1154
|
+
}catch(_){}
|
|
1155
|
+
};
|
|
1156
|
+
</script>
|
|
1157
|
+
<script
|
|
1158
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/builder.js"
|
|
1159
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/builder.js||https://unpkg.com/vvvebjs@latest/libs/builder/builder.js')"
|
|
1160
|
+
></script>
|
|
1161
|
+
<script
|
|
1162
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/undo.js"
|
|
1163
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/undo.js||https://unpkg.com/vvvebjs@latest/libs/builder/undo.js')"
|
|
1164
|
+
></script>
|
|
1165
|
+
<script
|
|
1166
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/inputs.js"
|
|
1167
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/inputs.js||https://unpkg.com/vvvebjs@latest/libs/builder/inputs.js')"
|
|
1168
|
+
></script>
|
|
1169
|
+
<!-- components.js removed (frequently missing on npm CDN); safety stubs below prevent bootstrap/widgets loader errors -->
|
|
1170
|
+
// <script
|
|
1171
|
+
// src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js"
|
|
1172
|
+
// onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-widgets.js')"
|
|
1173
|
+
// ></script>
|
|
1148
1174
|
<script>
|
|
1149
1175
|
/* Safety stub: if components.js didn't define these, create empty arrays so
|
|
1150
1176
|
components-bootstrap5.js doesn't throw ReferenceError on load. */
|
|
@@ -1171,8 +1197,14 @@ if (window.Vvveb && window.Vvveb.Components) {
|
|
|
1171
1197
|
} catch(_) {}
|
|
1172
1198
|
}
|
|
1173
1199
|
</script>
|
|
1174
|
-
<script
|
|
1175
|
-
|
|
1200
|
+
<script
|
|
1201
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-bootstrap4.js"
|
|
1202
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-bootstrap4.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-bootstrap4.js')"
|
|
1203
|
+
></script>
|
|
1204
|
+
<script
|
|
1205
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js"
|
|
1206
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-widgets.js')"
|
|
1207
|
+
></script>
|
|
1176
1208
|
|
|
1177
1209
|
<script>
|
|
1178
1210
|
'use strict';
|
|
@@ -5520,8 +5552,9 @@ function createVisualEditorMiddleware(options) {
|
|
|
5520
5552
|
);
|
|
5521
5553
|
return;
|
|
5522
5554
|
}
|
|
5523
|
-
|
|
5524
|
-
const
|
|
5555
|
+
const directFetch = (input, init = {}) => fetch(input, init);
|
|
5556
|
+
const scraperFetch = (input, init = {}) => {
|
|
5557
|
+
if (!SCRAPER_PROXY_PASSWORD) return directFetch(input, init);
|
|
5525
5558
|
if (!useScraperProxy || !scraperProxyClient) {
|
|
5526
5559
|
const scraperUrl = new URL(SCRAPER_API_ENDPOINT);
|
|
5527
5560
|
scraperUrl.searchParams.set("api_key", SCRAPER_PROXY_PASSWORD);
|
|
@@ -5533,6 +5566,29 @@ function createVisualEditorMiddleware(options) {
|
|
|
5533
5566
|
dispatcher: scraperProxyClient.dispatcher
|
|
5534
5567
|
});
|
|
5535
5568
|
};
|
|
5569
|
+
const shouldFallbackFromScraper = async (resp) => {
|
|
5570
|
+
try {
|
|
5571
|
+
if (resp.ok) return false;
|
|
5572
|
+
const text = await resp.clone().text();
|
|
5573
|
+
return SCRAPER_BILLING_ERROR_RE.test(String(text || ""));
|
|
5574
|
+
} catch (_) {
|
|
5575
|
+
return false;
|
|
5576
|
+
}
|
|
5577
|
+
};
|
|
5578
|
+
const upstreamFetch = async (input, init = {}) => {
|
|
5579
|
+
const primary = await scraperFetch(input, init);
|
|
5580
|
+
if (!await shouldFallbackFromScraper(primary)) {
|
|
5581
|
+
return primary;
|
|
5582
|
+
}
|
|
5583
|
+
try {
|
|
5584
|
+
console.warn("[conversion-proxy] ScraperAPI billing/quota detected; falling back to direct fetch", {
|
|
5585
|
+
url: input,
|
|
5586
|
+
mode: useScraperProxy ? "proxy" : "simple"
|
|
5587
|
+
});
|
|
5588
|
+
} catch (_) {
|
|
5589
|
+
}
|
|
5590
|
+
return directFetch(input, init);
|
|
5591
|
+
};
|
|
5536
5592
|
const headers = {
|
|
5537
5593
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
|
|
5538
5594
|
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
|
package/dist/vite.js
CHANGED
|
@@ -11,7 +11,7 @@ var SCRAPER_PROXY_USERNAME = process.env.SCRAPERAPI_PROXY_USERNAME || [
|
|
|
11
11
|
SCRAPER_PROXY_USERNAME_BASE,
|
|
12
12
|
SCRAPER_PROXY_USERNAME_PARAMS
|
|
13
13
|
].filter(Boolean).join(".");
|
|
14
|
-
var SCRAPER_PROXY_PASSWORD = process.env.SCRAPERAPI_PROXY_PASSWORD || process.env.SCRAPERAPI_API_KEY
|
|
14
|
+
var SCRAPER_PROXY_PASSWORD = process.env.SCRAPERAPI_PROXY_PASSWORD || process.env.SCRAPERAPI_API_KEY;
|
|
15
15
|
var SCRAPER_API_ENDPOINT = process.env.SCRAPERAPI_ENDPOINT || "https://api.scraperapi.com/";
|
|
16
16
|
var SCRAPER_REQUEST_TLS_REJECT_UNAUTHORIZED_RAW = process.env.SCRAPERAPI_REQUEST_TLS_REJECT_UNAUTHORIZED || "false";
|
|
17
17
|
var SCRAPER_REQUEST_TLS_REJECT_UNAUTHORIZED = !["0", "false", "no"].includes(
|
|
@@ -105,10 +105,12 @@ function stripTrackingScriptsFromScrapedHtml(html, markers) {
|
|
|
105
105
|
}
|
|
106
106
|
return out;
|
|
107
107
|
}
|
|
108
|
+
var SCRAPER_BILLING_ERROR_RE = /exhausted the api credits|upgrade your subscription|enable overages|dashboard\.scraperapi\.com\/billing|insufficient credits|billing/i;
|
|
108
109
|
var scraperProxyClientPromise = null;
|
|
109
110
|
async function getScraperProxyClient() {
|
|
110
111
|
if (scraperProxyClientPromise) return scraperProxyClientPromise;
|
|
111
112
|
scraperProxyClientPromise = (async () => {
|
|
113
|
+
if (!SCRAPER_PROXY_PASSWORD) return null;
|
|
112
114
|
try {
|
|
113
115
|
const undici = await import('undici');
|
|
114
116
|
const proxyUrl = "http://" + encodeURIComponent(SCRAPER_PROXY_USERNAME) + ":" + encodeURIComponent(SCRAPER_PROXY_PASSWORD) + "@" + SCRAPER_PROXY_HOST + ":" + String(SCRAPER_PROXY_PORT);
|
|
@@ -1131,12 +1133,36 @@ select.pr-inp{cursor:pointer;background:#fff}
|
|
|
1131
1133
|
|
|
1132
1134
|
<!-- CDN scripts -->
|
|
1133
1135
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
1134
|
-
<script
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1136
|
+
<script>
|
|
1137
|
+
window.__veLoadFallback = function(el, candidates){
|
|
1138
|
+
try{
|
|
1139
|
+
if(!el) return;
|
|
1140
|
+
var list = String(candidates || "").split("||").map(function(v){ return v.trim(); }).filter(Boolean);
|
|
1141
|
+
var idx = Number(el.getAttribute("data-fallback-idx") || "0");
|
|
1142
|
+
if(idx >= list.length) return;
|
|
1143
|
+
var next = list[idx];
|
|
1144
|
+
el.setAttribute("data-fallback-idx", String(idx + 1));
|
|
1145
|
+
el.src = next;
|
|
1146
|
+
}catch(_){}
|
|
1147
|
+
};
|
|
1148
|
+
</script>
|
|
1149
|
+
<script
|
|
1150
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/builder.js"
|
|
1151
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/builder.js||https://unpkg.com/vvvebjs@latest/libs/builder/builder.js')"
|
|
1152
|
+
></script>
|
|
1153
|
+
<script
|
|
1154
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/undo.js"
|
|
1155
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/undo.js||https://unpkg.com/vvvebjs@latest/libs/builder/undo.js')"
|
|
1156
|
+
></script>
|
|
1157
|
+
<script
|
|
1158
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/inputs.js"
|
|
1159
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/inputs.js||https://unpkg.com/vvvebjs@latest/libs/builder/inputs.js')"
|
|
1160
|
+
></script>
|
|
1161
|
+
<!-- components.js removed (frequently missing on npm CDN); safety stubs below prevent bootstrap/widgets loader errors -->
|
|
1162
|
+
// <script
|
|
1163
|
+
// src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js"
|
|
1164
|
+
// onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-widgets.js')"
|
|
1165
|
+
// ></script>
|
|
1140
1166
|
<script>
|
|
1141
1167
|
/* Safety stub: if components.js didn't define these, create empty arrays so
|
|
1142
1168
|
components-bootstrap5.js doesn't throw ReferenceError on load. */
|
|
@@ -1163,8 +1189,14 @@ if (window.Vvveb && window.Vvveb.Components) {
|
|
|
1163
1189
|
} catch(_) {}
|
|
1164
1190
|
}
|
|
1165
1191
|
</script>
|
|
1166
|
-
<script
|
|
1167
|
-
|
|
1192
|
+
<script
|
|
1193
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-bootstrap4.js"
|
|
1194
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-bootstrap4.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-bootstrap4.js')"
|
|
1195
|
+
></script>
|
|
1196
|
+
<script
|
|
1197
|
+
src="https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js"
|
|
1198
|
+
onerror="window.__veLoadFallback(this,'https://cdn.jsdelivr.net/npm/vvvebjs@latest/libs/builder/components-widgets.js||https://unpkg.com/vvvebjs@latest/libs/builder/components-widgets.js')"
|
|
1199
|
+
></script>
|
|
1168
1200
|
|
|
1169
1201
|
<script>
|
|
1170
1202
|
'use strict';
|
|
@@ -5512,8 +5544,9 @@ function createVisualEditorMiddleware(options) {
|
|
|
5512
5544
|
);
|
|
5513
5545
|
return;
|
|
5514
5546
|
}
|
|
5515
|
-
|
|
5516
|
-
const
|
|
5547
|
+
const directFetch = (input, init = {}) => fetch(input, init);
|
|
5548
|
+
const scraperFetch = (input, init = {}) => {
|
|
5549
|
+
if (!SCRAPER_PROXY_PASSWORD) return directFetch(input, init);
|
|
5517
5550
|
if (!useScraperProxy || !scraperProxyClient) {
|
|
5518
5551
|
const scraperUrl = new URL(SCRAPER_API_ENDPOINT);
|
|
5519
5552
|
scraperUrl.searchParams.set("api_key", SCRAPER_PROXY_PASSWORD);
|
|
@@ -5525,6 +5558,29 @@ function createVisualEditorMiddleware(options) {
|
|
|
5525
5558
|
dispatcher: scraperProxyClient.dispatcher
|
|
5526
5559
|
});
|
|
5527
5560
|
};
|
|
5561
|
+
const shouldFallbackFromScraper = async (resp) => {
|
|
5562
|
+
try {
|
|
5563
|
+
if (resp.ok) return false;
|
|
5564
|
+
const text = await resp.clone().text();
|
|
5565
|
+
return SCRAPER_BILLING_ERROR_RE.test(String(text || ""));
|
|
5566
|
+
} catch (_) {
|
|
5567
|
+
return false;
|
|
5568
|
+
}
|
|
5569
|
+
};
|
|
5570
|
+
const upstreamFetch = async (input, init = {}) => {
|
|
5571
|
+
const primary = await scraperFetch(input, init);
|
|
5572
|
+
if (!await shouldFallbackFromScraper(primary)) {
|
|
5573
|
+
return primary;
|
|
5574
|
+
}
|
|
5575
|
+
try {
|
|
5576
|
+
console.warn("[conversion-proxy] ScraperAPI billing/quota detected; falling back to direct fetch", {
|
|
5577
|
+
url: input,
|
|
5578
|
+
mode: useScraperProxy ? "proxy" : "simple"
|
|
5579
|
+
});
|
|
5580
|
+
} catch (_) {
|
|
5581
|
+
}
|
|
5582
|
+
return directFetch(input, init);
|
|
5583
|
+
};
|
|
5528
5584
|
const headers = {
|
|
5529
5585
|
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36",
|
|
5530
5586
|
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
|