docgen-utils 1.0.18 → 1.0.19
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/cli.js
CHANGED
|
@@ -73714,26 +73714,172 @@ async function createDocxBuffer(html, options = {}) {
|
|
|
73714
73714
|
}
|
|
73715
73715
|
|
|
73716
73716
|
// packages/shared/fetch-with-proxy.ts
|
|
73717
|
+
import * as http from "node:http";
|
|
73718
|
+
import * as tls from "node:tls";
|
|
73719
|
+
import { URL } from "node:url";
|
|
73717
73720
|
var userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
73718
|
-
|
|
73719
|
-
|
|
73720
|
-
|
|
73721
|
-
|
|
73722
|
-
|
|
73723
|
-
|
|
73724
|
-
|
|
73725
|
-
|
|
73726
|
-
|
|
73721
|
+
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
73722
|
+
return new Promise((resolve5, reject) => {
|
|
73723
|
+
const req = http.request({
|
|
73724
|
+
host: proxy.hostname,
|
|
73725
|
+
port: Number(proxy.port),
|
|
73726
|
+
method: "CONNECT",
|
|
73727
|
+
path: `${targetHost}:${targetPort}`
|
|
73728
|
+
});
|
|
73729
|
+
req.on("connect", (res, socket) => {
|
|
73730
|
+
if (res.statusCode === 200) {
|
|
73731
|
+
resolve5(socket);
|
|
73732
|
+
} else {
|
|
73733
|
+
socket.destroy();
|
|
73734
|
+
reject(
|
|
73735
|
+
new Error(`Proxy CONNECT failed with status ${res.statusCode}`)
|
|
73736
|
+
);
|
|
73727
73737
|
}
|
|
73728
73738
|
});
|
|
73729
|
-
|
|
73730
|
-
|
|
73731
|
-
|
|
73732
|
-
|
|
73733
|
-
|
|
73739
|
+
req.on("error", reject);
|
|
73740
|
+
req.end();
|
|
73741
|
+
});
|
|
73742
|
+
}
|
|
73743
|
+
function upgradeTls(rawSocket, servername) {
|
|
73744
|
+
return new Promise((resolve5, reject) => {
|
|
73745
|
+
const tlsSocket = tls.connect(
|
|
73746
|
+
{ socket: rawSocket, servername },
|
|
73747
|
+
() => {
|
|
73748
|
+
resolve5(tlsSocket);
|
|
73749
|
+
}
|
|
73750
|
+
);
|
|
73751
|
+
tlsSocket.on("error", reject);
|
|
73752
|
+
});
|
|
73753
|
+
}
|
|
73754
|
+
function parseHttpResponse(tlsSocket) {
|
|
73755
|
+
return new Promise((resolve5, reject) => {
|
|
73756
|
+
let headerDone = false;
|
|
73757
|
+
let raw = Buffer.alloc(0);
|
|
73758
|
+
let statusCode = 0;
|
|
73759
|
+
let statusText = "";
|
|
73760
|
+
const headers = {};
|
|
73761
|
+
const bodyChunks = [];
|
|
73762
|
+
let contentLength = -1;
|
|
73763
|
+
let isChunked = false;
|
|
73764
|
+
let bodyBytesRead = 0;
|
|
73765
|
+
let headerEndIndex = -1;
|
|
73766
|
+
function tryParseHeaders() {
|
|
73767
|
+
const str = raw.toString("utf-8");
|
|
73768
|
+
const idx = str.indexOf("\r\n\r\n");
|
|
73769
|
+
if (idx === -1) return false;
|
|
73770
|
+
headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
|
|
73771
|
+
const headerSection = str.slice(0, idx);
|
|
73772
|
+
const lines = headerSection.split("\r\n");
|
|
73773
|
+
const statusLine = lines[0];
|
|
73774
|
+
const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
|
|
73775
|
+
if (match) {
|
|
73776
|
+
statusCode = parseInt(match[1], 10);
|
|
73777
|
+
statusText = match[2];
|
|
73778
|
+
}
|
|
73779
|
+
for (let i = 1; i < lines.length; i++) {
|
|
73780
|
+
const colonIdx = lines[i].indexOf(":");
|
|
73781
|
+
if (colonIdx > 0) {
|
|
73782
|
+
const key2 = lines[i].slice(0, colonIdx).trim().toLowerCase();
|
|
73783
|
+
const val = lines[i].slice(colonIdx + 1).trim();
|
|
73784
|
+
headers[key2] = val;
|
|
73785
|
+
}
|
|
73786
|
+
}
|
|
73787
|
+
if (headers["transfer-encoding"]?.includes("chunked")) {
|
|
73788
|
+
isChunked = true;
|
|
73789
|
+
} else if (headers["content-length"]) {
|
|
73790
|
+
contentLength = parseInt(headers["content-length"], 10);
|
|
73791
|
+
}
|
|
73792
|
+
const bodyStart = raw.slice(headerEndIndex);
|
|
73793
|
+
if (bodyStart.length > 0) {
|
|
73794
|
+
bodyChunks.push(bodyStart);
|
|
73795
|
+
bodyBytesRead += bodyStart.length;
|
|
73796
|
+
}
|
|
73797
|
+
return true;
|
|
73734
73798
|
}
|
|
73799
|
+
function decodeChunkedBody(buf) {
|
|
73800
|
+
const parts = [];
|
|
73801
|
+
let offset = 0;
|
|
73802
|
+
while (offset < buf.length) {
|
|
73803
|
+
const lineEnd = buf.indexOf(Buffer.from("\r\n"), offset);
|
|
73804
|
+
if (lineEnd === -1) break;
|
|
73805
|
+
const sizeHex = buf.slice(offset, lineEnd).toString("utf-8").trim();
|
|
73806
|
+
const chunkSize = parseInt(sizeHex, 16);
|
|
73807
|
+
if (chunkSize === 0) break;
|
|
73808
|
+
const chunkStart = lineEnd + 2;
|
|
73809
|
+
const chunkEnd = chunkStart + chunkSize;
|
|
73810
|
+
if (chunkEnd > buf.length) break;
|
|
73811
|
+
parts.push(buf.slice(chunkStart, chunkEnd));
|
|
73812
|
+
offset = chunkEnd + 2;
|
|
73813
|
+
}
|
|
73814
|
+
return Buffer.concat(parts);
|
|
73815
|
+
}
|
|
73816
|
+
tlsSocket.on("data", (chunk) => {
|
|
73817
|
+
if (!headerDone) {
|
|
73818
|
+
raw = Buffer.concat([raw, chunk]);
|
|
73819
|
+
if (tryParseHeaders()) {
|
|
73820
|
+
headerDone = true;
|
|
73821
|
+
if (!isChunked && contentLength >= 0 && bodyBytesRead >= contentLength) {
|
|
73822
|
+
tlsSocket.destroy();
|
|
73823
|
+
}
|
|
73824
|
+
}
|
|
73825
|
+
} else {
|
|
73826
|
+
bodyChunks.push(chunk);
|
|
73827
|
+
bodyBytesRead += chunk.length;
|
|
73828
|
+
if (!isChunked && contentLength >= 0 && bodyBytesRead >= contentLength) {
|
|
73829
|
+
tlsSocket.destroy();
|
|
73830
|
+
}
|
|
73831
|
+
}
|
|
73832
|
+
});
|
|
73833
|
+
tlsSocket.on("end", finish);
|
|
73834
|
+
tlsSocket.on("close", finish);
|
|
73835
|
+
let finished = false;
|
|
73836
|
+
function finish() {
|
|
73837
|
+
if (finished) return;
|
|
73838
|
+
finished = true;
|
|
73839
|
+
let body = Buffer.concat(bodyChunks);
|
|
73840
|
+
if (isChunked) {
|
|
73841
|
+
body = decodeChunkedBody(body);
|
|
73842
|
+
} else if (contentLength >= 0) {
|
|
73843
|
+
body = body.subarray(0, contentLength);
|
|
73844
|
+
}
|
|
73845
|
+
const responseHeaders = new Headers(headers);
|
|
73846
|
+
resolve5({
|
|
73847
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
73848
|
+
status: statusCode,
|
|
73849
|
+
statusText,
|
|
73850
|
+
headers: responseHeaders,
|
|
73851
|
+
arrayBuffer: () => Promise.resolve(
|
|
73852
|
+
body.buffer.slice(
|
|
73853
|
+
body.byteOffset,
|
|
73854
|
+
body.byteOffset + body.byteLength
|
|
73855
|
+
)
|
|
73856
|
+
),
|
|
73857
|
+
text: () => Promise.resolve(body.toString("utf-8"))
|
|
73858
|
+
});
|
|
73859
|
+
}
|
|
73860
|
+
tlsSocket.on("error", (err) => {
|
|
73861
|
+
if (!finished) reject(err);
|
|
73862
|
+
});
|
|
73735
73863
|
});
|
|
73736
73864
|
}
|
|
73865
|
+
async function fetchWithProxy(url) {
|
|
73866
|
+
const proxyUrl = process.env.HTTPS_PROXY || process.env.HTTP_PROXY || process.env.https_proxy || process.env.http_proxy;
|
|
73867
|
+
if (proxyUrl) {
|
|
73868
|
+
const proxy = new URL(proxyUrl);
|
|
73869
|
+
const target = new URL(url);
|
|
73870
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
73871
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname);
|
|
73872
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r
|
|
73873
|
+
Host: ${target.hostname}\r
|
|
73874
|
+
User-Agent: ${userAgent}\r
|
|
73875
|
+
Connection: close\r
|
|
73876
|
+
\r
|
|
73877
|
+
`;
|
|
73878
|
+
tlsSocket.write(requestLine);
|
|
73879
|
+
return parseHttpResponse(tlsSocket);
|
|
73880
|
+
}
|
|
73881
|
+
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
73882
|
+
}
|
|
73737
73883
|
|
|
73738
73884
|
// packages/cli/commands/export-docs.ts
|
|
73739
73885
|
var MAX_IMAGE_WIDTH = 624;
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
+
interface ProxyResponse {
|
|
2
|
+
ok: boolean;
|
|
3
|
+
status: number;
|
|
4
|
+
statusText: string;
|
|
5
|
+
headers: Headers;
|
|
6
|
+
arrayBuffer(): Promise<ArrayBuffer>;
|
|
7
|
+
text(): Promise<string>;
|
|
8
|
+
}
|
|
1
9
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Uses
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Fetch a URL with optional proxy support based on environment variables.
|
|
7
|
-
* Checks HTTPS_PROXY, HTTP_PROXY, https_proxy, and http_proxy.
|
|
10
|
+
* Fetch a URL with optional proxy support.
|
|
11
|
+
* Uses only documented Node.js APIs: http.CONNECT, tls.connect(), raw HTTP write.
|
|
8
12
|
*
|
|
9
13
|
* @param url - The URL to fetch
|
|
10
|
-
* @returns A Promise resolving to a Response
|
|
14
|
+
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
11
15
|
*/
|
|
12
|
-
export declare function fetchWithProxy(url: string): Promise<Response>;
|
|
16
|
+
export declare function fetchWithProxy(url: string): Promise<ProxyResponse | Response>;
|
|
17
|
+
export {};
|
|
13
18
|
//# sourceMappingURL=fetch-with-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-proxy.d.ts","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"
|
|
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;AAqMD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,GAAG,QAAQ,CAAC,CAgCnC"}
|
|
@@ -1,33 +1,200 @@
|
|
|
1
|
+
import * as http from "node:http";
|
|
2
|
+
import * as tls from "node:tls";
|
|
3
|
+
import { URL } from "node:url";
|
|
4
|
+
const userAgent = "Mozilla/5.0 (compatible; Copilot/1.0)";
|
|
1
5
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Uses undici ProxyAgent when HTTPS_PROXY or HTTP_PROXY environment variables are set.
|
|
6
|
+
* Create a TCP tunnel through an HTTP proxy using the CONNECT method.
|
|
4
7
|
*/
|
|
5
|
-
|
|
8
|
+
function connectThroughProxy(proxy, targetHost, targetPort) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const req = http.request({
|
|
11
|
+
host: proxy.hostname,
|
|
12
|
+
port: Number(proxy.port),
|
|
13
|
+
method: "CONNECT",
|
|
14
|
+
path: `${targetHost}:${targetPort}`,
|
|
15
|
+
});
|
|
16
|
+
req.on("connect", (res, socket) => {
|
|
17
|
+
if (res.statusCode === 200) {
|
|
18
|
+
resolve(socket);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
socket.destroy();
|
|
22
|
+
reject(new Error(`Proxy CONNECT failed with status ${res.statusCode}`));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
req.on("error", reject);
|
|
26
|
+
req.end();
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 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
|
+
function upgradeTls(rawSocket, servername) {
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
const tlsSocket = tls.connect({ socket: rawSocket, servername }, () => {
|
|
37
|
+
resolve(tlsSocket);
|
|
38
|
+
});
|
|
39
|
+
tlsSocket.on("error", reject);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
6
42
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
43
|
+
* Parse a raw HTTP/1.1 response from a TLS socket stream.
|
|
44
|
+
* Handles both Content-Length and chunked Transfer-Encoding.
|
|
45
|
+
*/
|
|
46
|
+
function parseHttpResponse(tlsSocket) {
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
let headerDone = false;
|
|
49
|
+
let raw = Buffer.alloc(0);
|
|
50
|
+
let statusCode = 0;
|
|
51
|
+
let statusText = "";
|
|
52
|
+
const headers = {};
|
|
53
|
+
const bodyChunks = [];
|
|
54
|
+
let contentLength = -1;
|
|
55
|
+
let isChunked = false;
|
|
56
|
+
let bodyBytesRead = 0;
|
|
57
|
+
let headerEndIndex = -1;
|
|
58
|
+
function tryParseHeaders() {
|
|
59
|
+
const str = raw.toString("utf-8");
|
|
60
|
+
const idx = str.indexOf("\r\n\r\n");
|
|
61
|
+
if (idx === -1)
|
|
62
|
+
return false;
|
|
63
|
+
headerEndIndex = Buffer.byteLength(str.slice(0, idx + 4), "utf-8");
|
|
64
|
+
const headerSection = str.slice(0, idx);
|
|
65
|
+
const lines = headerSection.split("\r\n");
|
|
66
|
+
// Parse status line: HTTP/1.1 200 OK
|
|
67
|
+
const statusLine = lines[0];
|
|
68
|
+
const match = statusLine.match(/^HTTP\/\d\.\d\s+(\d+)\s*(.*)/);
|
|
69
|
+
if (match) {
|
|
70
|
+
statusCode = parseInt(match[1], 10);
|
|
71
|
+
statusText = match[2];
|
|
72
|
+
}
|
|
73
|
+
// Parse headers
|
|
74
|
+
for (let i = 1; i < lines.length; i++) {
|
|
75
|
+
const colonIdx = lines[i].indexOf(":");
|
|
76
|
+
if (colonIdx > 0) {
|
|
77
|
+
const key = lines[i].slice(0, colonIdx).trim().toLowerCase();
|
|
78
|
+
const val = lines[i].slice(colonIdx + 1).trim();
|
|
79
|
+
headers[key] = val;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (headers["transfer-encoding"]?.includes("chunked")) {
|
|
83
|
+
isChunked = true;
|
|
84
|
+
}
|
|
85
|
+
else if (headers["content-length"]) {
|
|
86
|
+
contentLength = parseInt(headers["content-length"], 10);
|
|
87
|
+
}
|
|
88
|
+
// Push any leftover bytes after headers as body
|
|
89
|
+
const bodyStart = raw.slice(headerEndIndex);
|
|
90
|
+
if (bodyStart.length > 0) {
|
|
91
|
+
bodyChunks.push(bodyStart);
|
|
92
|
+
bodyBytesRead += bodyStart.length;
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
function decodeChunkedBody(buf) {
|
|
97
|
+
const parts = [];
|
|
98
|
+
let offset = 0;
|
|
99
|
+
while (offset < buf.length) {
|
|
100
|
+
const lineEnd = buf.indexOf(Buffer.from("\r\n"), offset);
|
|
101
|
+
if (lineEnd === -1)
|
|
102
|
+
break;
|
|
103
|
+
const sizeHex = buf.slice(offset, lineEnd).toString("utf-8").trim();
|
|
104
|
+
const chunkSize = parseInt(sizeHex, 16);
|
|
105
|
+
if (chunkSize === 0)
|
|
106
|
+
break;
|
|
107
|
+
const chunkStart = lineEnd + 2;
|
|
108
|
+
const chunkEnd = chunkStart + chunkSize;
|
|
109
|
+
if (chunkEnd > buf.length)
|
|
110
|
+
break;
|
|
111
|
+
parts.push(buf.slice(chunkStart, chunkEnd));
|
|
112
|
+
offset = chunkEnd + 2; // skip trailing \r\n
|
|
113
|
+
}
|
|
114
|
+
return Buffer.concat(parts);
|
|
115
|
+
}
|
|
116
|
+
tlsSocket.on("data", (chunk) => {
|
|
117
|
+
if (!headerDone) {
|
|
118
|
+
raw = Buffer.concat([raw, chunk]);
|
|
119
|
+
if (tryParseHeaders()) {
|
|
120
|
+
headerDone = true;
|
|
121
|
+
// Check if body is already complete
|
|
122
|
+
if (!isChunked &&
|
|
123
|
+
contentLength >= 0 &&
|
|
124
|
+
bodyBytesRead >= contentLength) {
|
|
125
|
+
tlsSocket.destroy();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
bodyChunks.push(chunk);
|
|
131
|
+
bodyBytesRead += chunk.length;
|
|
132
|
+
if (!isChunked &&
|
|
133
|
+
contentLength >= 0 &&
|
|
134
|
+
bodyBytesRead >= contentLength) {
|
|
135
|
+
tlsSocket.destroy();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
tlsSocket.on("end", finish);
|
|
140
|
+
tlsSocket.on("close", finish);
|
|
141
|
+
let finished = false;
|
|
142
|
+
function finish() {
|
|
143
|
+
if (finished)
|
|
144
|
+
return;
|
|
145
|
+
finished = true;
|
|
146
|
+
let body = Buffer.concat(bodyChunks);
|
|
147
|
+
if (isChunked) {
|
|
148
|
+
body = decodeChunkedBody(body);
|
|
149
|
+
}
|
|
150
|
+
else if (contentLength >= 0) {
|
|
151
|
+
body = body.subarray(0, contentLength);
|
|
152
|
+
}
|
|
153
|
+
const responseHeaders = new Headers(headers);
|
|
154
|
+
resolve({
|
|
155
|
+
ok: statusCode >= 200 && statusCode < 300,
|
|
156
|
+
status: statusCode,
|
|
157
|
+
statusText,
|
|
158
|
+
headers: responseHeaders,
|
|
159
|
+
arrayBuffer: () => Promise.resolve(body.buffer.slice(body.byteOffset, body.byteOffset + body.byteLength)),
|
|
160
|
+
text: () => Promise.resolve(body.toString("utf-8")),
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
tlsSocket.on("error", (err) => {
|
|
164
|
+
if (!finished)
|
|
165
|
+
reject(err);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Fetch a URL with optional proxy support.
|
|
171
|
+
* Uses only documented Node.js APIs: http.CONNECT, tls.connect(), raw HTTP write.
|
|
9
172
|
*
|
|
10
173
|
* @param url - The URL to fetch
|
|
11
|
-
* @returns A Promise resolving to a Response
|
|
174
|
+
* @returns A Promise resolving to a ProxyResponse or native Response
|
|
12
175
|
*/
|
|
13
176
|
export async function fetchWithProxy(url) {
|
|
14
|
-
const proxyUrl = process.env.HTTPS_PROXY ||
|
|
15
|
-
process.env.
|
|
177
|
+
const proxyUrl = process.env.HTTPS_PROXY ||
|
|
178
|
+
process.env.HTTP_PROXY ||
|
|
179
|
+
process.env.https_proxy ||
|
|
180
|
+
process.env.http_proxy;
|
|
16
181
|
if (proxyUrl) {
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
182
|
+
const proxy = new URL(proxyUrl);
|
|
183
|
+
const target = new URL(url);
|
|
184
|
+
// 1. Tunnel through proxy
|
|
185
|
+
const rawSocket = await connectThroughProxy(proxy, target.hostname, 443);
|
|
186
|
+
// 2. TLS handshake (documented: tls.connect with socket option)
|
|
187
|
+
const tlsSocket = await upgradeTls(rawSocket, target.hostname);
|
|
188
|
+
// 3. Write raw HTTP/1.1 request (per Node.js CONNECT docs pattern)
|
|
189
|
+
const requestLine = `GET ${target.pathname}${target.search} HTTP/1.1\r\n` +
|
|
190
|
+
`Host: ${target.hostname}\r\n` +
|
|
191
|
+
`User-Agent: ${userAgent}\r\n` +
|
|
192
|
+
`Connection: close\r\n` +
|
|
193
|
+
`\r\n`;
|
|
194
|
+
tlsSocket.write(requestLine);
|
|
195
|
+
// 4. Parse raw HTTP response
|
|
196
|
+
return parseHttpResponse(tlsSocket);
|
|
26
197
|
}
|
|
27
|
-
return fetch(url, {
|
|
28
|
-
headers: {
|
|
29
|
-
'User-Agent': userAgent,
|
|
30
|
-
},
|
|
31
|
-
});
|
|
198
|
+
return fetch(url, { headers: { "User-Agent": userAgent } });
|
|
32
199
|
}
|
|
33
200
|
//# sourceMappingURL=fetch-with-proxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-proxy.js","sourceRoot":"","sources":["../../../packages/shared/fetch-with-proxy.ts"],"names":[],"mappings":"AAAA
|
|
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;;GAEG;AACH,SAAS,mBAAmB,CAC1B,KAAU,EACV,UAAkB,EAClB,UAAkB;IAElB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,GAAG,UAAU,IAAI,UAAU,EAAE;SACpC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAoB,EAAE,MAAc,EAAE,EAAE;YACzD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CACJ,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,UAAU,EAAE,CAAC,CAChE,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,SAAiB,EAAE,UAAkB;IACvD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAC3B,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,EACjC,GAAG,EAAE;YACH,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;QACF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,SAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC;QAExB,SAAS,eAAe;YACtB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE7B,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEnE,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAE1C,qCAAqC;YACrC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC/D,IAAI,KAAK,EAAE,CAAC;gBACV,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;YAED,gBAAgB;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACrC,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,gDAAgD;YAChD,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC;YACpC,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,iBAAiB,CAAC,GAAW;YACpC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBACzD,IAAI,OAAO,KAAK,CAAC,CAAC;oBAAE,MAAM;gBAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpE,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxC,IAAI,SAAS,KAAK,CAAC;oBAAE,MAAM;gBAC3B,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;gBAC/B,MAAM,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;gBACxC,IAAI,QAAQ,GAAG,GAAG,CAAC,MAAM;oBAAE,MAAM;gBACjC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAC5C,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,qBAAqB;YAC9C,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACrC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClC,IAAI,eAAe,EAAE,EAAE,CAAC;oBACtB,UAAU,GAAG,IAAI,CAAC;oBAElB,oCAAoC;oBACpC,IACE,CAAC,SAAS;wBACV,aAAa,IAAI,CAAC;wBAClB,aAAa,IAAI,aAAa,EAC9B,CAAC;wBACD,SAAS,CAAC,OAAO,EAAE,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;gBAE9B,IACE,CAAC,SAAS;oBACV,aAAa,IAAI,CAAC;oBAClB,aAAa,IAAI,aAAa,EAC9B,CAAC;oBACD,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9B,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,SAAS,MAAM;YACb,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAEhB,IAAI,IAAI,GAAW,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAW,CAAC;YAC3C,CAAC;iBAAM,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAW,CAAC;YACnD,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC;gBACN,EAAE,EAAE,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG;gBACzC,MAAM,EAAE,UAAU;gBAClB,UAAU;gBACV,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,GAAG,EAAE,CAChB,OAAO,CAAC,OAAO,CACb,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CACnB,CACjB;gBACH,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aACpD,CAAC,CAAC;QACL,CAAC;QAED,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACnC,IAAI,CAAC,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW;IAEX,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,UAAU;QACtB,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzB,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,0BAA0B;QAC1B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEzE,gEAAgE;QAChE,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE/D,mEAAmE;QACnE,MAAM,WAAW,GACf,OAAO,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,eAAe;YACrD,SAAS,MAAM,CAAC,QAAQ,MAAM;YAC9B,eAAe,SAAS,MAAM;YAC9B,uBAAuB;YACvB,MAAM,CAAC;QAET,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7B,6BAA6B;QAC7B,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docgen-utils",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.19",
|
|
4
4
|
"description": "Utilities for converting HTML into DOCX and PPTX.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -43,8 +43,7 @@
|
|
|
43
43
|
"jszip": "^3.10.1",
|
|
44
44
|
"linkedom": "^0.16.8",
|
|
45
45
|
"playwright": "^1.58.0",
|
|
46
|
-
"rtf.js": "^3.0.9"
|
|
47
|
-
"undici": "^7.22.0"
|
|
46
|
+
"rtf.js": "^3.0.9"
|
|
48
47
|
},
|
|
49
48
|
"devDependencies": {
|
|
50
49
|
"@anthropic-ai/sdk": "^0.74.0",
|