docgen-utils 1.0.32 → 1.0.33
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/bundle.js +215 -48
- package/dist/bundle.min.js +101 -101
- package/dist/cli.js +96 -15
- package/dist/packages/cli/commands/export-slides.d.ts.map +1 -1
- package/dist/packages/cli/commands/export-slides.js +10 -1
- package/dist/packages/cli/commands/export-slides.js.map +1 -1
- package/dist/packages/shared/fetch-with-proxy.d.ts +6 -1
- package/dist/packages/shared/fetch-with-proxy.d.ts.map +1 -1
- package/dist/packages/shared/fetch-with-proxy.js +103 -30
- package/dist/packages/shared/fetch-with-proxy.js.map +1 -1
- package/dist/packages/slides/convert.js +3 -3
- package/dist/packages/slides/parse.d.ts.map +1 -1
- package/dist/packages/slides/parse.js +211 -8
- package/dist/packages/slides/parse.js.map +1 -1
- package/package.json +3 -2
package/dist/cli.js
CHANGED
|
@@ -74935,6 +74935,70 @@ import * as http from "node:http";
|
|
|
74935
74935
|
import * as tls from "node:tls";
|
|
74936
74936
|
import { URL } from "node:url";
|
|
74937
74937
|
var userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
74938
|
+
var MAX_REDIRECTS = 5;
|
|
74939
|
+
function fetchViaForwardProxy(proxy, targetUrl, redirectCount = 0) {
|
|
74940
|
+
return new Promise((resolve5, reject) => {
|
|
74941
|
+
const target = new URL(targetUrl);
|
|
74942
|
+
const req = http.request(
|
|
74943
|
+
{
|
|
74944
|
+
host: proxy.hostname,
|
|
74945
|
+
port: Number(proxy.port) || 80,
|
|
74946
|
+
method: "GET",
|
|
74947
|
+
path: targetUrl,
|
|
74948
|
+
// Full URL as path for forward proxy
|
|
74949
|
+
headers: {
|
|
74950
|
+
Host: target.hostname,
|
|
74951
|
+
"User-Agent": userAgent,
|
|
74952
|
+
Connection: "close"
|
|
74953
|
+
}
|
|
74954
|
+
},
|
|
74955
|
+
(res) => {
|
|
74956
|
+
const chunks = [];
|
|
74957
|
+
res.on("data", (chunk) => chunks.push(chunk));
|
|
74958
|
+
res.on("end", () => {
|
|
74959
|
+
const statusCode = res.statusCode ?? 0;
|
|
74960
|
+
if (statusCode >= 301 && statusCode <= 308 && statusCode !== 304 && res.headers.location) {
|
|
74961
|
+
if (redirectCount >= MAX_REDIRECTS) {
|
|
74962
|
+
reject(new Error(`Too many redirects (max ${MAX_REDIRECTS})`));
|
|
74963
|
+
return;
|
|
74964
|
+
}
|
|
74965
|
+
const redirectUrl = new URL(
|
|
74966
|
+
res.headers.location,
|
|
74967
|
+
targetUrl
|
|
74968
|
+
).toString();
|
|
74969
|
+
resolve5(fetchViaForwardProxy(proxy, redirectUrl, redirectCount + 1));
|
|
74970
|
+
return;
|
|
74971
|
+
}
|
|
74972
|
+
const body = Buffer.concat(chunks);
|
|
74973
|
+
const headers = {};
|
|
74974
|
+
for (const [key2, value] of Object.entries(res.headers)) {
|
|
74975
|
+
if (typeof value === "string") {
|
|
74976
|
+
headers[key2.toLowerCase()] = value;
|
|
74977
|
+
} else if (Array.isArray(value)) {
|
|
74978
|
+
headers[key2.toLowerCase()] = value.join(", ");
|
|
74979
|
+
}
|
|
74980
|
+
}
|
|
74981
|
+
resolve5({
|
|
74982
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
74983
|
+
status: statusCode,
|
|
74984
|
+
statusText: res.statusMessage ?? "",
|
|
74985
|
+
headers: new Headers(headers),
|
|
74986
|
+
arrayBuffer: () => Promise.resolve(
|
|
74987
|
+
body.buffer.slice(
|
|
74988
|
+
body.byteOffset,
|
|
74989
|
+
body.byteOffset + body.byteLength
|
|
74990
|
+
)
|
|
74991
|
+
),
|
|
74992
|
+
text: () => Promise.resolve(body.toString("utf-8"))
|
|
74993
|
+
});
|
|
74994
|
+
});
|
|
74995
|
+
res.on("error", reject);
|
|
74996
|
+
}
|
|
74997
|
+
);
|
|
74998
|
+
req.on("error", reject);
|
|
74999
|
+
req.end();
|
|
75000
|
+
});
|
|
75001
|
+
}
|
|
74938
75002
|
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
74939
75003
|
return new Promise((resolve5, reject) => {
|
|
74940
75004
|
const req = http.request({
|
|
@@ -75079,22 +75143,33 @@ function parseHttpResponse(tlsSocket) {
|
|
|
75079
75143
|
});
|
|
75080
75144
|
});
|
|
75081
75145
|
}
|
|
75082
|
-
async function
|
|
75083
|
-
const
|
|
75084
|
-
|
|
75085
|
-
|
|
75086
|
-
|
|
75087
|
-
const target = new URL(url);
|
|
75088
|
-
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
75089
|
-
const tlsSocket = await upgradeTls(rawSocket, target.hostname, false);
|
|
75090
|
-
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r
|
|
75146
|
+
async function fetchViaConnectTunnel(proxy, targetUrl) {
|
|
75147
|
+
const target = new URL(targetUrl);
|
|
75148
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
75149
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname, false);
|
|
75150
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r
|
|
75091
75151
|
Host: ${target.hostname}\r
|
|
75092
75152
|
User-Agent: ${userAgent}\r
|
|
75093
75153
|
Connection: close\r
|
|
75094
75154
|
\r
|
|
75095
75155
|
`;
|
|
75096
|
-
|
|
75097
|
-
|
|
75156
|
+
tlsSocket.write(requestLine);
|
|
75157
|
+
return parseHttpResponse(tlsSocket);
|
|
75158
|
+
}
|
|
75159
|
+
async function fetchWithProxy(url) {
|
|
75160
|
+
const proxyUrl = process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.https_proxy || process.env.http_proxy;
|
|
75161
|
+
if (proxyUrl) {
|
|
75162
|
+
const normalizedProxyUrl = proxyUrl.includes("://") ? proxyUrl : `http://${proxyUrl}`;
|
|
75163
|
+
const proxy = new URL(normalizedProxyUrl);
|
|
75164
|
+
try {
|
|
75165
|
+
return await fetchViaForwardProxy(proxy, url);
|
|
75166
|
+
} catch (forwardError) {
|
|
75167
|
+
try {
|
|
75168
|
+
return await fetchViaConnectTunnel(proxy, url);
|
|
75169
|
+
} catch {
|
|
75170
|
+
throw forwardError;
|
|
75171
|
+
}
|
|
75172
|
+
}
|
|
75098
75173
|
}
|
|
75099
75174
|
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
75100
75175
|
}
|
|
@@ -81069,7 +81144,7 @@ async function addElementsToSlide(elements, slide, pres) {
|
|
|
81069
81144
|
if (el.type === "slideBackgroundImage") {
|
|
81070
81145
|
const imgSrc = getCachedImageSource(el.src);
|
|
81071
81146
|
if (!imgSrc) {
|
|
81072
|
-
console.warn(`Skipping slide background image (
|
|
81147
|
+
console.warn(`Skipping slide background image (fetch failed): ${el.src}`);
|
|
81073
81148
|
continue;
|
|
81074
81149
|
}
|
|
81075
81150
|
const imageOptions = {
|
|
@@ -81116,7 +81191,7 @@ async function addElementsToSlide(elements, slide, pres) {
|
|
|
81116
81191
|
if (el.type === "image") {
|
|
81117
81192
|
const imgSrc = getCachedImageSource(el.src);
|
|
81118
81193
|
if (!imgSrc) {
|
|
81119
|
-
console.warn(`Skipping image (
|
|
81194
|
+
console.warn(`Skipping image (fetch failed): ${el.src}`);
|
|
81120
81195
|
continue;
|
|
81121
81196
|
}
|
|
81122
81197
|
const imageOptions = {
|
|
@@ -81151,7 +81226,7 @@ async function addElementsToSlide(elements, slide, pres) {
|
|
|
81151
81226
|
} else if (el.type === "backgroundImage") {
|
|
81152
81227
|
const imgSrc = getCachedImageSource(el.src);
|
|
81153
81228
|
if (!imgSrc) {
|
|
81154
|
-
console.warn(`Skipping background image (
|
|
81229
|
+
console.warn(`Skipping background image (fetch failed): ${el.src}`);
|
|
81155
81230
|
continue;
|
|
81156
81231
|
}
|
|
81157
81232
|
const imageOptions = {
|
|
@@ -81513,11 +81588,14 @@ async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
81513
81588
|
const bundleJs = fs5.readFileSync(bundlePath, "utf-8");
|
|
81514
81589
|
const imageCache = /* @__PURE__ */ new Map();
|
|
81515
81590
|
const imageFetchPromises = /* @__PURE__ */ new Map();
|
|
81591
|
+
const failedImages = /* @__PURE__ */ new Set();
|
|
81516
81592
|
function startImageFetch(url) {
|
|
81517
81593
|
if (imageFetchPromises.has(url)) return;
|
|
81518
81594
|
const promise = fetchImageAsDataUrlNode(url).then((dataUrl) => {
|
|
81519
81595
|
imageCache.set(url, dataUrl);
|
|
81520
|
-
}).catch(() => {
|
|
81596
|
+
}).catch((err) => {
|
|
81597
|
+
console.error(` Failed to fetch image: ${url} - ${err.message}`);
|
|
81598
|
+
failedImages.add(url);
|
|
81521
81599
|
});
|
|
81522
81600
|
imageFetchPromises.set(url, promise);
|
|
81523
81601
|
}
|
|
@@ -81675,6 +81753,9 @@ async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
81675
81753
|
await context.close();
|
|
81676
81754
|
await browser2.close();
|
|
81677
81755
|
await generationChain;
|
|
81756
|
+
if (failedImages.size > 0) {
|
|
81757
|
+
console.error(`Warning: Failed to fetch ${failedImages.size} image(s)`);
|
|
81758
|
+
}
|
|
81678
81759
|
const base64 = await pptx.write({ outputType: "base64" });
|
|
81679
81760
|
const pptxBuffer = Buffer.from(base64, "base64");
|
|
81680
81761
|
const firstBaseName = path5.basename(absolutePaths[0], ".html");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"export-slides.d.ts","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6EH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAmRhI"}
|
|
@@ -101,13 +101,18 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
101
101
|
// Shared image cache - populated as images are fetched
|
|
102
102
|
const imageCache = new Map();
|
|
103
103
|
const imageFetchPromises = new Map();
|
|
104
|
+
// Track failed image fetches
|
|
105
|
+
const failedImages = new Set();
|
|
104
106
|
// Start fetching an image if not already fetching
|
|
105
107
|
function startImageFetch(url) {
|
|
106
108
|
if (imageFetchPromises.has(url))
|
|
107
109
|
return;
|
|
108
110
|
const promise = fetchImageAsDataUrlNode(url)
|
|
109
111
|
.then(dataUrl => { imageCache.set(url, dataUrl); })
|
|
110
|
-
.catch(() => {
|
|
112
|
+
.catch((err) => {
|
|
113
|
+
console.error(` Failed to fetch image: ${url} - ${err.message}`);
|
|
114
|
+
failedImages.add(url);
|
|
115
|
+
});
|
|
111
116
|
imageFetchPromises.set(url, promise);
|
|
112
117
|
}
|
|
113
118
|
// Wait for all images needed by a slide
|
|
@@ -281,6 +286,10 @@ export async function exportSlides(filePaths, outDir, outputName, pdf = false) {
|
|
|
281
286
|
await browser.close();
|
|
282
287
|
// Wait for all slide generation to complete
|
|
283
288
|
await generationChain;
|
|
289
|
+
// Report any images that failed to fetch
|
|
290
|
+
if (failedImages.size > 0) {
|
|
291
|
+
console.error(`Warning: Failed to fetch ${failedImages.size} image(s)`);
|
|
292
|
+
}
|
|
284
293
|
// Write final PPTX
|
|
285
294
|
const base64 = await pptx.write({ outputType: "base64" });
|
|
286
295
|
const pptxBuffer = Buffer.from(base64, "base64");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-slides.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"export-slides.js","sourceRoot":"","sources":["../../../../packages/cli/commands/export-slides.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAiB,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG3E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,KAAK,UAAU,uBAAuB,CAAC,GAAW;IAChD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,sDAAsD;IACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,WAAW,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,QAAQ,WAAW,WAAW,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAsB;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,mBAAmB;IACnB,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC/F,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,SAAsB,EAAE,UAA+B;IAClF,mBAAmB;IACnB,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,OAAO;YAAE,SAAS,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;IACnD,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC/F,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,OAAO;oBAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAmB,EAAE,MAAc,EAAE,UAAmB,EAAE,MAAe,KAAK;IAC/G,4EAA4E;IAC5E,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2BAA2B;IAC3B,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAErF,8CAA8C;IAC9C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,8BAA8B,CAAC,CAAC;IACjF,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtD,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE5D,6BAA6B;IAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvC,kDAAkD;IAClD,SAAS,eAAe,CAAC,GAAW;QAClC,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACxC,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC;aACzC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAClD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACL,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,wCAAwC;IACxC,KAAK,UAAU,kBAAkB,CAAC,SAAsB;QACtD,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1F,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,wBAAwB;IACxB,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC;IAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;IAE5B,2EAA2E;IAC3E,MAAM,UAAU,GAA2E,EAAE,CAAC;IAC9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,iBAAiB;IACjB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,8CAA8C;IAC9C,MAAM,YAAY,GAAiF,EAAE,CAAC;IAEtG,wEAAwE;IACxE,IAAI,eAAe,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAEvD,SAAS,eAAe;QACtB,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAChD,OAAO,IAAI,EAAE,CAAC;gBACZ,2BAA2B;gBAC3B,MAAM,SAAS,GAAG,cAAc,CAAC;gBACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;gBAC5D,IAAI,CAAC,KAAK;oBAAE,MAAM;gBAElB,+BAA+B;gBAC/B,MAAM,KAAK,CAAC,WAAW,CAAC;gBAExB,iBAAiB;gBACjB,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;gBAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAE,CAAC;gBAEpC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC3C,MAAM,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxD,MAAM,kBAAkB,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC/D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,cAAc,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,IAAI,aAAa,CAAC,MAAM,OAAO,CAAC,CAAC;YACxE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,MAAM,aAAa,GAAkB;QACnC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,CAAC,wBAAwB,CAAC;KACjC,CAAC;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAC3H,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACvC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACrC,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE;YAClC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAE1B,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,EAAE,KAAK,OAAO,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,MAAM,cAAc,GAAG,CAAC,CAAC;QAEzB,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,IAAI,cAAc,EAAE,CAAC;YACzF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,cAAc,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAE7D,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;gBACnE,MAAM,KAAK,GAAG,UAAU,GAAG,UAAU,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAE9B,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC1E,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC/C,MAAM,IAAI,CAAC,eAAe,CAAC,sCAAsC,CAAC,CAAC;gBAEnE,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;;;;aAOf,CAAC,CAAC;gBAEP,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAmDrC,CAAC,CAAC;gBAEP,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEnB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,GAAG,CAAC,KAAK,SAAS,gBAAgB,CAAC,CAAC;gBACpF,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAuB,CAAC,CAAC;gBACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,GAAG,CAAC,KAAK,SAAS,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxF,CAAC;gBAED,MAAM,SAAS,GAAG,MAAqB,CAAC;gBACxC,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;gBAE/D,mDAAmD;gBACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1C,wEAAwE;gBACxE,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAElD,sCAAsC;gBACtC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;gBACrD,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAEtB,4CAA4C;QAC5C,MAAM,eAAe,CAAC;QAEtB,yCAAyC;QACzC,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,IAAI,WAAW,CAAC,CAAC;QAC1E,CAAC;QAED,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAW,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;QAE9D,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAE7C,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,MAAM,OAAO,GAAG,kBAAkB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YAC3D,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
|
|
@@ -8,7 +8,12 @@ interface ProxyResponse {
|
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Fetch a URL with optional proxy support.
|
|
11
|
-
*
|
|
11
|
+
*
|
|
12
|
+
* Supports two proxy modes:
|
|
13
|
+
* 1. Forward proxy (default): Sends full URL to proxy, proxy handles TLS.
|
|
14
|
+
* Works with most proxies (Squid, corporate proxies, etc.)
|
|
15
|
+
* 2. CONNECT tunnel (fallback): Establishes tunnel, client handles TLS.
|
|
16
|
+
* Used when forward proxy fails or for CONNECT-only proxies.
|
|
12
17
|
*
|
|
13
18
|
* @param url - The URL to fetch
|
|
14
19
|
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-proxy.d.ts","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"fetch-with-proxy.d.ts","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AASA,UAAU,aAAa;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAoTD;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,CA8BnC"}
|
|
@@ -2,8 +2,72 @@ import * as http from "node:http";
|
|
|
2
2
|
import * as tls from "node:tls";
|
|
3
3
|
import { URL } from "node:url";
|
|
4
4
|
const userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
5
|
+
const MAX_REDIRECTS = 5;
|
|
6
|
+
/**
|
|
7
|
+
* Fetch via forward proxy - sends full URL to proxy, proxy handles TLS.
|
|
8
|
+
* This is the most common proxy type (e.g., Squid, corporate proxies).
|
|
9
|
+
* Automatically follows redirects up to MAX_REDIRECTS.
|
|
10
|
+
*/
|
|
11
|
+
function fetchViaForwardProxy(proxy, targetUrl, redirectCount = 0) {
|
|
12
|
+
return new Promise((resolve, reject) => {
|
|
13
|
+
const target = new URL(targetUrl);
|
|
14
|
+
const req = http.request({
|
|
15
|
+
host: proxy.hostname,
|
|
16
|
+
port: Number(proxy.port) || 80,
|
|
17
|
+
method: "GET",
|
|
18
|
+
path: targetUrl, // Full URL as path for forward proxy
|
|
19
|
+
headers: {
|
|
20
|
+
Host: target.hostname,
|
|
21
|
+
"User-Agent": userAgent,
|
|
22
|
+
Connection: "close",
|
|
23
|
+
},
|
|
24
|
+
}, (res) => {
|
|
25
|
+
const chunks = [];
|
|
26
|
+
res.on("data", (chunk) => chunks.push(chunk));
|
|
27
|
+
res.on("end", () => {
|
|
28
|
+
const statusCode = res.statusCode ?? 0;
|
|
29
|
+
// Handle redirects (301, 302, 303, 307, 308)
|
|
30
|
+
if (statusCode >= 301 &&
|
|
31
|
+
statusCode <= 308 &&
|
|
32
|
+
statusCode !== 304 &&
|
|
33
|
+
res.headers.location) {
|
|
34
|
+
if (redirectCount >= MAX_REDIRECTS) {
|
|
35
|
+
reject(new Error(`Too many redirects (max ${MAX_REDIRECTS})`));
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
// Resolve relative URLs against the current target
|
|
39
|
+
const redirectUrl = new URL(res.headers.location, targetUrl).toString();
|
|
40
|
+
resolve(fetchViaForwardProxy(proxy, redirectUrl, redirectCount + 1));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const body = Buffer.concat(chunks);
|
|
44
|
+
const headers = {};
|
|
45
|
+
for (const [key, value] of Object.entries(res.headers)) {
|
|
46
|
+
if (typeof value === "string") {
|
|
47
|
+
headers[key.toLowerCase()] = value;
|
|
48
|
+
}
|
|
49
|
+
else if (Array.isArray(value)) {
|
|
50
|
+
headers[key.toLowerCase()] = value.join(", ");
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
resolve({
|
|
54
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
55
|
+
status: statusCode,
|
|
56
|
+
statusText: res.statusMessage ?? "",
|
|
57
|
+
headers: new Headers(headers),
|
|
58
|
+
arrayBuffer: () => Promise.resolve(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)),
|
|
59
|
+
text: () => Promise.resolve(body.toString("utf-8")),
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
res.on("error", reject);
|
|
63
|
+
});
|
|
64
|
+
req.on("error", reject);
|
|
65
|
+
req.end();
|
|
66
|
+
});
|
|
67
|
+
}
|
|
5
68
|
/**
|
|
6
69
|
* Create a TCP tunnel through an HTTP proxy using the CONNECT method.
|
|
70
|
+
* Used for CONNECT-capable proxies (tunneling proxies).
|
|
7
71
|
*/
|
|
8
72
|
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
9
73
|
return new Promise((resolve, reject) => {
|
|
@@ -28,12 +92,6 @@ function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
|
28
92
|
}
|
|
29
93
|
/**
|
|
30
94
|
* Upgrade a raw TCP socket to TLS.
|
|
31
|
-
* Uses the documented tls.connect({ socket, servername }) API.
|
|
32
|
-
* @see https://nodejs.org/api/tls.html#tlsconnectoptions-callback
|
|
33
|
-
*
|
|
34
|
-
* @param rawSocket - The raw TCP socket from the proxy CONNECT tunnel
|
|
35
|
-
* @param servername - The target hostname for SNI
|
|
36
|
-
* @param rejectUnauthorized - Whether to verify the server certificate (default: true)
|
|
37
95
|
*/
|
|
38
96
|
function upgradeTls(rawSocket, servername, rejectUnauthorized = true) {
|
|
39
97
|
return new Promise((resolve, reject) => {
|
|
@@ -45,7 +103,6 @@ function upgradeTls(rawSocket, servername, rejectUnauthorized = true) {
|
|
|
45
103
|
}
|
|
46
104
|
/**
|
|
47
105
|
* Parse a raw HTTP/1.1 response from a TLS socket stream.
|
|
48
|
-
* Handles both Content-Length and chunked Transfer-Encoding.
|
|
49
106
|
*/
|
|
50
107
|
function parseHttpResponse(tlsSocket) {
|
|
51
108
|
return new Promise((resolve, reject) => {
|
|
@@ -67,14 +124,12 @@ function parseHttpResponse(tlsSocket) {
|
|
|
67
124
|
headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
|
|
68
125
|
const headerSection = str.slice(0, idx);
|
|
69
126
|
const lines = headerSection.split("\r\n");
|
|
70
|
-
// Parse status line: HTTP/1.1 200 OK
|
|
71
127
|
const statusLine = lines[0];
|
|
72
128
|
const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
|
|
73
129
|
if (match) {
|
|
74
130
|
statusCode = parseInt(match[1], 10);
|
|
75
131
|
statusText = match[2];
|
|
76
132
|
}
|
|
77
|
-
// Parse headers
|
|
78
133
|
for (let i = 1; i < lines.length; i++) {
|
|
79
134
|
const colonIdx = lines[i].indexOf(":");
|
|
80
135
|
if (colonIdx > 0) {
|
|
@@ -89,7 +144,6 @@ function parseHttpResponse(tlsSocket) {
|
|
|
89
144
|
else if (headers["content-length"]) {
|
|
90
145
|
contentLength = parseInt(headers["content-length"], 10);
|
|
91
146
|
}
|
|
92
|
-
// Push any leftover bytes after headers as body
|
|
93
147
|
const bodyStart = raw.slice(headerEndIndex);
|
|
94
148
|
if (bodyStart.length > 0) {
|
|
95
149
|
bodyChunks.push(bodyStart);
|
|
@@ -113,7 +167,7 @@ function parseHttpResponse(tlsSocket) {
|
|
|
113
167
|
if (chunkEnd > buf.length)
|
|
114
168
|
break;
|
|
115
169
|
parts.push(buf.slice(chunkStart, chunkEnd));
|
|
116
|
-
offset = chunkEnd + 2;
|
|
170
|
+
offset = chunkEnd + 2;
|
|
117
171
|
}
|
|
118
172
|
return Buffer.concat(parts);
|
|
119
173
|
}
|
|
@@ -122,7 +176,6 @@ function parseHttpResponse(tlsSocket) {
|
|
|
122
176
|
raw = Buffer.concat([raw, chunk]);
|
|
123
177
|
if (tryParseHeaders()) {
|
|
124
178
|
headerDone = true;
|
|
125
|
-
// Check if body is already complete
|
|
126
179
|
if (!isChunked &&
|
|
127
180
|
contentLength >= 0 &&
|
|
128
181
|
bodyBytesRead >= contentLength) {
|
|
@@ -170,9 +223,31 @@ function parseHttpResponse(tlsSocket) {
|
|
|
170
223
|
});
|
|
171
224
|
});
|
|
172
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Fetch via CONNECT tunnel - establishes tunnel, then does TLS handshake.
|
|
228
|
+
* Used for CONNECT-capable proxies.
|
|
229
|
+
*/
|
|
230
|
+
async function fetchViaConnectTunnel(proxy, targetUrl) {
|
|
231
|
+
const target = new URL(targetUrl);
|
|
232
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
233
|
+
// Disable certificate verification for proxy scenarios (MITM proxies)
|
|
234
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname, false);
|
|
235
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r\n` +
|
|
236
|
+
`Host: ${target.hostname}\r\n` +
|
|
237
|
+
`User-Agent: ${userAgent}\r\n` +
|
|
238
|
+
`Connection: close\r\n` +
|
|
239
|
+
`\r\n`;
|
|
240
|
+
tlsSocket.write(requestLine);
|
|
241
|
+
return parseHttpResponse(tlsSocket);
|
|
242
|
+
}
|
|
173
243
|
/**
|
|
174
244
|
* Fetch a URL with optional proxy support.
|
|
175
|
-
*
|
|
245
|
+
*
|
|
246
|
+
* Supports two proxy modes:
|
|
247
|
+
* 1. Forward proxy (default): Sends full URL to proxy, proxy handles TLS.
|
|
248
|
+
* Works with most proxies (Squid, corporate proxies, etc.)
|
|
249
|
+
* 2. CONNECT tunnel (fallback): Establishes tunnel, client handles TLS.
|
|
250
|
+
* Used when forward proxy fails or for CONNECT-only proxies.
|
|
176
251
|
*
|
|
177
252
|
* @param url - The URL to fetch
|
|
178
253
|
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
@@ -188,23 +263,21 @@ export async function fetchWithProxy(url) {
|
|
|
188
263
|
? proxyUrl
|
|
189
264
|
: `http://${proxyUrl}`;
|
|
190
265
|
const proxy = new URL(normalizedProxyUrl);
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
// 4. Parse raw HTTP response
|
|
207
|
-
return parseHttpResponse(tlsSocket);
|
|
266
|
+
// Try forward proxy first (most compatible with corporate/staging proxies)
|
|
267
|
+
try {
|
|
268
|
+
return await fetchViaForwardProxy(proxy, url);
|
|
269
|
+
}
|
|
270
|
+
catch (forwardError) {
|
|
271
|
+
// Fall back to CONNECT tunnel for CONNECT-capable proxies
|
|
272
|
+
try {
|
|
273
|
+
return await fetchViaConnectTunnel(proxy, url);
|
|
274
|
+
}
|
|
275
|
+
catch {
|
|
276
|
+
// Both methods failed, throw the forward proxy error
|
|
277
|
+
// (usually more informative for debugging)
|
|
278
|
+
throw forwardError;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
208
281
|
}
|
|
209
282
|
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
210
283
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAK/B,MAAM,SAAS,GAAG,uCAAuC,CAAC;AAW1D
|
|
1
|
+
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -261,7 +261,7 @@ pres) {
|
|
|
261
261
|
if (el.type === 'slideBackgroundImage') {
|
|
262
262
|
const imgSrc = getCachedImageSource(el.src);
|
|
263
263
|
if (!imgSrc) {
|
|
264
|
-
console.warn(`Skipping slide background image (
|
|
264
|
+
console.warn(`Skipping slide background image (fetch failed): ${el.src}`);
|
|
265
265
|
continue;
|
|
266
266
|
}
|
|
267
267
|
const imageOptions = {
|
|
@@ -323,7 +323,7 @@ pres) {
|
|
|
323
323
|
if (el.type === 'image') {
|
|
324
324
|
const imgSrc = getCachedImageSource(el.src);
|
|
325
325
|
if (!imgSrc) {
|
|
326
|
-
console.warn(`Skipping image (
|
|
326
|
+
console.warn(`Skipping image (fetch failed): ${el.src}`);
|
|
327
327
|
continue;
|
|
328
328
|
}
|
|
329
329
|
const imageOptions = {
|
|
@@ -363,7 +363,7 @@ pres) {
|
|
|
363
363
|
else if (el.type === 'backgroundImage') {
|
|
364
364
|
const imgSrc = getCachedImageSource(el.src);
|
|
365
365
|
if (!imgSrc) {
|
|
366
|
-
console.warn(`Skipping background image (
|
|
366
|
+
console.warn(`Skipping background image (fetch failed): ${el.src}`);
|
|
367
367
|
continue;
|
|
368
368
|
}
|
|
369
369
|
const imageOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../packages/slides/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EACV,WAAW,EAeZ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../packages/slides/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,KAAK,EACV,WAAW,EAeZ,MAAM,UAAU,CAAC;AAwmFlB;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW,CAyyKzD"}
|