Spaces:
Build error
Build error
curl-impersonate: add zstd compression options
Browse files
backend/functions/Dockerfile
CHANGED
|
@@ -8,7 +8,7 @@ RUN apt-get update \
|
|
| 8 |
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
|
| 9 |
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
|
| 10 |
&& apt-get update \
|
| 11 |
-
&& apt-get install -y google-chrome-stable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 \
|
| 12 |
--no-install-recommends \
|
| 13 |
&& rm -rf /var/lib/apt/lists/*
|
| 14 |
|
|
|
|
| 8 |
&& wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
|
| 9 |
&& sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
|
| 10 |
&& apt-get update \
|
| 11 |
+
&& apt-get install -y google-chrome-stable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 zstd \
|
| 12 |
--no-install-recommends \
|
| 13 |
&& rm -rf /var/lib/apt/lists/*
|
| 14 |
|
backend/functions/package-lock.json
CHANGED
|
@@ -40,6 +40,7 @@
|
|
| 40 |
"puppeteer-page-proxy": "^1.3.0",
|
| 41 |
"robots-parser": "^3.0.1",
|
| 42 |
"set-cookie-parser": "^2.6.0",
|
|
|
|
| 43 |
"stripe": "^11.11.0",
|
| 44 |
"tiktoken": "^1.0.16",
|
| 45 |
"tld-extract": "^2.1.0",
|
|
@@ -3701,9 +3702,7 @@
|
|
| 3701 |
"node_modules/buffer-from": {
|
| 3702 |
"version": "1.1.2",
|
| 3703 |
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
| 3704 |
-
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
|
| 3705 |
-
"dev": true,
|
| 3706 |
-
"peer": true
|
| 3707 |
},
|
| 3708 |
"node_modules/busboy": {
|
| 3709 |
"version": "1.6.0",
|
|
@@ -4761,6 +4760,12 @@
|
|
| 4761 |
"url": "https://github.com/fb55/domutils?sponsor=1"
|
| 4762 |
}
|
| 4763 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4764 |
"node_modules/duplexify": {
|
| 4765 |
"version": "4.1.3",
|
| 4766 |
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
|
|
@@ -7288,6 +7293,12 @@
|
|
| 7288 |
"url": "https://github.com/sponsors/ljharb"
|
| 7289 |
}
|
| 7290 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7291 |
"node_modules/isarray": {
|
| 7292 |
"version": "2.0.5",
|
| 7293 |
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
|
|
@@ -10043,6 +10054,75 @@
|
|
| 10043 |
"path2d": "^0.2.0"
|
| 10044 |
}
|
| 10045 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10046 |
"node_modules/pend": {
|
| 10047 |
"version": "1.2.0",
|
| 10048 |
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
@@ -10345,6 +10425,19 @@
|
|
| 10345 |
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
| 10346 |
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
| 10347 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10348 |
"node_modules/process-warning": {
|
| 10349 |
"version": "3.0.0",
|
| 10350 |
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
|
|
@@ -11576,6 +11669,18 @@
|
|
| 11576 |
"simple-concat": "^1.0.0"
|
| 11577 |
}
|
| 11578 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11579 |
"node_modules/sisteransi": {
|
| 11580 |
"version": "1.0.5",
|
| 11581 |
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
|
@@ -12932,6 +13037,15 @@
|
|
| 12932 |
"node": ">=4.0"
|
| 12933 |
}
|
| 12934 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12935 |
"node_modules/y18n": {
|
| 12936 |
"version": "5.0.8",
|
| 12937 |
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
|
|
|
| 40 |
"puppeteer-page-proxy": "^1.3.0",
|
| 41 |
"robots-parser": "^3.0.1",
|
| 42 |
"set-cookie-parser": "^2.6.0",
|
| 43 |
+
"simple-zstd": "^1.4.2",
|
| 44 |
"stripe": "^11.11.0",
|
| 45 |
"tiktoken": "^1.0.16",
|
| 46 |
"tld-extract": "^2.1.0",
|
|
|
|
| 3702 |
"node_modules/buffer-from": {
|
| 3703 |
"version": "1.1.2",
|
| 3704 |
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
| 3705 |
+
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
|
|
|
|
|
|
|
| 3706 |
},
|
| 3707 |
"node_modules/busboy": {
|
| 3708 |
"version": "1.6.0",
|
|
|
|
| 4760 |
"url": "https://github.com/fb55/domutils?sponsor=1"
|
| 4761 |
}
|
| 4762 |
},
|
| 4763 |
+
"node_modules/duplex-maker": {
|
| 4764 |
+
"version": "1.0.0",
|
| 4765 |
+
"resolved": "https://registry.npmjs.org/duplex-maker/-/duplex-maker-1.0.0.tgz",
|
| 4766 |
+
"integrity": "sha512-KoHuzggxg7f+vvjqOHfXxaQYI1POzBm+ah0eec7YDssZmbt6QFBI8d1nl5GQwAgR2f+VQCPvyvZtmWWqWuFtlA==",
|
| 4767 |
+
"license": "MIT"
|
| 4768 |
+
},
|
| 4769 |
"node_modules/duplexify": {
|
| 4770 |
"version": "4.1.3",
|
| 4771 |
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
|
|
|
|
| 7293 |
"url": "https://github.com/sponsors/ljharb"
|
| 7294 |
}
|
| 7295 |
},
|
| 7296 |
+
"node_modules/is-zst": {
|
| 7297 |
+
"version": "1.0.0",
|
| 7298 |
+
"resolved": "https://registry.npmjs.org/is-zst/-/is-zst-1.0.0.tgz",
|
| 7299 |
+
"integrity": "sha512-ZA5lvshKAl8z30dX7saXLpVhpsq3d2EHK9uf7qtUjnOtdw4XBpAoWb2RvZ5kyoaebdoidnGI0g2hn9Z7ObPbww==",
|
| 7300 |
+
"license": "MIT"
|
| 7301 |
+
},
|
| 7302 |
"node_modules/isarray": {
|
| 7303 |
"version": "2.0.5",
|
| 7304 |
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
|
|
|
|
| 10054 |
"path2d": "^0.2.0"
|
| 10055 |
}
|
| 10056 |
},
|
| 10057 |
+
"node_modules/peek-stream": {
|
| 10058 |
+
"version": "1.1.3",
|
| 10059 |
+
"resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz",
|
| 10060 |
+
"integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==",
|
| 10061 |
+
"license": "MIT",
|
| 10062 |
+
"dependencies": {
|
| 10063 |
+
"buffer-from": "^1.0.0",
|
| 10064 |
+
"duplexify": "^3.5.0",
|
| 10065 |
+
"through2": "^2.0.3"
|
| 10066 |
+
}
|
| 10067 |
+
},
|
| 10068 |
+
"node_modules/peek-stream/node_modules/duplexify": {
|
| 10069 |
+
"version": "3.7.1",
|
| 10070 |
+
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
|
| 10071 |
+
"integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
|
| 10072 |
+
"license": "MIT",
|
| 10073 |
+
"dependencies": {
|
| 10074 |
+
"end-of-stream": "^1.0.0",
|
| 10075 |
+
"inherits": "^2.0.1",
|
| 10076 |
+
"readable-stream": "^2.0.0",
|
| 10077 |
+
"stream-shift": "^1.0.0"
|
| 10078 |
+
}
|
| 10079 |
+
},
|
| 10080 |
+
"node_modules/peek-stream/node_modules/isarray": {
|
| 10081 |
+
"version": "1.0.0",
|
| 10082 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
| 10083 |
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
| 10084 |
+
"license": "MIT"
|
| 10085 |
+
},
|
| 10086 |
+
"node_modules/peek-stream/node_modules/readable-stream": {
|
| 10087 |
+
"version": "2.3.8",
|
| 10088 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
| 10089 |
+
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
| 10090 |
+
"license": "MIT",
|
| 10091 |
+
"dependencies": {
|
| 10092 |
+
"core-util-is": "~1.0.0",
|
| 10093 |
+
"inherits": "~2.0.3",
|
| 10094 |
+
"isarray": "~1.0.0",
|
| 10095 |
+
"process-nextick-args": "~2.0.0",
|
| 10096 |
+
"safe-buffer": "~5.1.1",
|
| 10097 |
+
"string_decoder": "~1.1.1",
|
| 10098 |
+
"util-deprecate": "~1.0.1"
|
| 10099 |
+
}
|
| 10100 |
+
},
|
| 10101 |
+
"node_modules/peek-stream/node_modules/safe-buffer": {
|
| 10102 |
+
"version": "5.1.2",
|
| 10103 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
| 10104 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
| 10105 |
+
"license": "MIT"
|
| 10106 |
+
},
|
| 10107 |
+
"node_modules/peek-stream/node_modules/string_decoder": {
|
| 10108 |
+
"version": "1.1.1",
|
| 10109 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
| 10110 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
| 10111 |
+
"license": "MIT",
|
| 10112 |
+
"dependencies": {
|
| 10113 |
+
"safe-buffer": "~5.1.0"
|
| 10114 |
+
}
|
| 10115 |
+
},
|
| 10116 |
+
"node_modules/peek-stream/node_modules/through2": {
|
| 10117 |
+
"version": "2.0.5",
|
| 10118 |
+
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
|
| 10119 |
+
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
|
| 10120 |
+
"license": "MIT",
|
| 10121 |
+
"dependencies": {
|
| 10122 |
+
"readable-stream": "~2.3.6",
|
| 10123 |
+
"xtend": "~4.0.1"
|
| 10124 |
+
}
|
| 10125 |
+
},
|
| 10126 |
"node_modules/pend": {
|
| 10127 |
"version": "1.2.0",
|
| 10128 |
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
|
|
|
| 10425 |
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
| 10426 |
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
| 10427 |
},
|
| 10428 |
+
"node_modules/process-streams": {
|
| 10429 |
+
"version": "1.0.3",
|
| 10430 |
+
"resolved": "https://registry.npmjs.org/process-streams/-/process-streams-1.0.3.tgz",
|
| 10431 |
+
"integrity": "sha512-xkIaM5vYnyekB88WyET78YEqXiaJRy0xcvIdE22n+myhvBT7LlLmX6iAtq7jDvVH8CUx2rqQsd32JdRyJMV3NA==",
|
| 10432 |
+
"funding": [
|
| 10433 |
+
"https://www.paypal.com/donate/?hosted_button_id=GB656ZSAEQEXN",
|
| 10434 |
+
"https://de.liberapay.com/nils.knappmeier/"
|
| 10435 |
+
],
|
| 10436 |
+
"license": "MIT",
|
| 10437 |
+
"dependencies": {
|
| 10438 |
+
"duplex-maker": "^1.0.0"
|
| 10439 |
+
}
|
| 10440 |
+
},
|
| 10441 |
"node_modules/process-warning": {
|
| 10442 |
"version": "3.0.0",
|
| 10443 |
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
|
|
|
|
| 11669 |
"simple-concat": "^1.0.0"
|
| 11670 |
}
|
| 11671 |
},
|
| 11672 |
+
"node_modules/simple-zstd": {
|
| 11673 |
+
"version": "1.4.2",
|
| 11674 |
+
"resolved": "https://registry.npmjs.org/simple-zstd/-/simple-zstd-1.4.2.tgz",
|
| 11675 |
+
"integrity": "sha512-kGYEvT33M5XfyQvvW4wxl3eKcWbdbCc1V7OZzuElnaXft0qbVzoIIXHXiCm3JCUki+MZKKmvjl8p2VGLJc5Y/A==",
|
| 11676 |
+
"license": "MIT",
|
| 11677 |
+
"dependencies": {
|
| 11678 |
+
"is-zst": "^1.0.0",
|
| 11679 |
+
"peek-stream": "^1.1.3",
|
| 11680 |
+
"process-streams": "^1.0.1",
|
| 11681 |
+
"through2": "^4.0.2"
|
| 11682 |
+
}
|
| 11683 |
+
},
|
| 11684 |
"node_modules/sisteransi": {
|
| 11685 |
"version": "1.0.5",
|
| 11686 |
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
|
|
|
| 13037 |
"node": ">=4.0"
|
| 13038 |
}
|
| 13039 |
},
|
| 13040 |
+
"node_modules/xtend": {
|
| 13041 |
+
"version": "4.0.2",
|
| 13042 |
+
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
| 13043 |
+
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
|
| 13044 |
+
"license": "MIT",
|
| 13045 |
+
"engines": {
|
| 13046 |
+
"node": ">=0.4"
|
| 13047 |
+
}
|
| 13048 |
+
},
|
| 13049 |
"node_modules/y18n": {
|
| 13050 |
"version": "5.0.8",
|
| 13051 |
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
backend/functions/package.json
CHANGED
|
@@ -60,6 +60,7 @@
|
|
| 60 |
"puppeteer-page-proxy": "^1.3.0",
|
| 61 |
"robots-parser": "^3.0.1",
|
| 62 |
"set-cookie-parser": "^2.6.0",
|
|
|
|
| 63 |
"stripe": "^11.11.0",
|
| 64 |
"tiktoken": "^1.0.16",
|
| 65 |
"tld-extract": "^2.1.0",
|
|
|
|
| 60 |
"puppeteer-page-proxy": "^1.3.0",
|
| 61 |
"robots-parser": "^3.0.1",
|
| 62 |
"set-cookie-parser": "^2.6.0",
|
| 63 |
+
"simple-zstd": "^1.4.2",
|
| 64 |
"stripe": "^11.11.0",
|
| 65 |
"tiktoken": "^1.0.16",
|
| 66 |
"tld-extract": "^2.1.0",
|
backend/functions/src/services/curl.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { TempFileManager } from '../shared';
|
|
| 11 |
import { readFile } from 'fs/promises';
|
| 12 |
import { pathToFileURL } from 'url';
|
| 13 |
import { createBrotliDecompress, createInflate, createGunzip } from 'zlib';
|
|
|
|
| 14 |
|
| 15 |
@singleton()
|
| 16 |
export class CurlControl extends AsyncService {
|
|
@@ -43,7 +44,7 @@ export class CurlControl extends AsyncService {
|
|
| 43 |
'Sec-Fetch-Mode': 'navigate',
|
| 44 |
'Sec-Fetch-User': '?1',
|
| 45 |
'Sec-Fetch-Dest': 'document',
|
| 46 |
-
'Accept-Encoding': 'gzip, deflate, br',
|
| 47 |
'Accept-Language': 'en-US,en;q=0.9',
|
| 48 |
};
|
| 49 |
|
|
@@ -157,6 +158,12 @@ export class CurlControl extends AsyncService {
|
|
| 157 |
stream = decompressed;
|
| 158 |
break;
|
| 159 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
default: {
|
| 161 |
break;
|
| 162 |
}
|
|
|
|
| 11 |
import { readFile } from 'fs/promises';
|
| 12 |
import { pathToFileURL } from 'url';
|
| 13 |
import { createBrotliDecompress, createInflate, createGunzip } from 'zlib';
|
| 14 |
+
import { ZSTDDecompress } from 'simple-zstd';
|
| 15 |
|
| 16 |
@singleton()
|
| 17 |
export class CurlControl extends AsyncService {
|
|
|
|
| 44 |
'Sec-Fetch-Mode': 'navigate',
|
| 45 |
'Sec-Fetch-User': '?1',
|
| 46 |
'Sec-Fetch-Dest': 'document',
|
| 47 |
+
'Accept-Encoding': 'gzip, deflate, br, zstd',
|
| 48 |
'Accept-Language': 'en-US,en;q=0.9',
|
| 49 |
};
|
| 50 |
|
|
|
|
| 158 |
stream = decompressed;
|
| 159 |
break;
|
| 160 |
}
|
| 161 |
+
case 'zstd': {
|
| 162 |
+
const decompressed = ZSTDDecompress();
|
| 163 |
+
stream.pipe(decompressed);
|
| 164 |
+
stream = decompressed;
|
| 165 |
+
break;
|
| 166 |
+
}
|
| 167 |
default: {
|
| 168 |
break;
|
| 169 |
}
|
backend/functions/src/types.d.ts
CHANGED
|
@@ -14,8 +14,15 @@ declare module 'jsdom' {
|
|
| 14 |
constructor(html: string, options?: any);
|
| 15 |
window: typeof window;
|
| 16 |
}
|
| 17 |
-
export class VirtualConsole extends EventEmitter{
|
| 18 |
constructor();
|
| 19 |
sendTo(console: any, options?: any);
|
| 20 |
}
|
| 21 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
constructor(html: string, options?: any);
|
| 15 |
window: typeof window;
|
| 16 |
}
|
| 17 |
+
export class VirtualConsole extends EventEmitter {
|
| 18 |
constructor();
|
| 19 |
sendTo(console: any, options?: any);
|
| 20 |
}
|
| 21 |
}
|
| 22 |
+
|
| 23 |
+
declare module 'simple-zstd' {
|
| 24 |
+
import { Duplex } from 'stream';
|
| 25 |
+
export function ZSTDCompress(lvl: Number): Duplex;
|
| 26 |
+
export function ZSTDDecompress(): Duplex;
|
| 27 |
+
export function ZSTDDecompressMaybe(): Duplex;
|
| 28 |
+
}
|