summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/Provider/npm/node_modules/funcaptcha/src/http.ts')
-rw-r--r--g4f/Provider/npm/node_modules/funcaptcha/src/http.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts b/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts
new file mode 100644
index 00000000..e0fa3acb
--- /dev/null
+++ b/g4f/Provider/npm/node_modules/funcaptcha/src/http.ts
@@ -0,0 +1,28 @@
+import { request, ProxyAgent } from "undici";
+// @ts-ignore
+import { RequestOptions } from "undici/types/dispatcher";
+
+async function req(url: string, options: RequestOptions, proxy?: string) {
+ let auth = undefined;
+ if (proxy) {
+ let proxyUrl = new URL(proxy);
+ if(proxyUrl.username && proxyUrl.password) {
+ auth = Buffer.from(proxyUrl.username + ":" + proxyUrl.password).toString("base64")
+ }
+ }
+ let dispatcher = proxy ? new ProxyAgent({
+ uri: proxy,
+ auth
+ }) : undefined;
+
+ let req = await request(url, {
+ ...options,
+ dispatcher,
+ });
+ return {
+ headers: req.headers,
+ body: Buffer.from(await req.body.arrayBuffer()),
+ };
+}
+
+export default req;