nlcurl 0.12.2 → 0.14.0
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/README.md +4 -15
- package/dist/cookies/psl-data.d.ts +2 -2
- package/dist/cookies/psl-data.d.ts.map +1 -1
- package/dist/cookies/psl-data.js +8 -2
- package/dist/cookies/psl-data.js.map +1 -1
- package/dist/dns/types.d.ts +0 -2
- package/dist/dns/types.d.ts.map +1 -1
- package/dist/dns/types.js.map +1 -1
- package/dist/fingerprints/extensions.d.ts +0 -6
- package/dist/fingerprints/extensions.d.ts.map +1 -1
- package/dist/fingerprints/extensions.js +0 -8
- package/dist/fingerprints/extensions.js.map +1 -1
- package/dist/fingerprints/ja3.d.ts +0 -14
- package/dist/fingerprints/ja3.d.ts.map +1 -1
- package/dist/fingerprints/ja3.js +0 -35
- package/dist/fingerprints/ja3.js.map +1 -1
- package/dist/http/h1/encoder.d.ts +0 -11
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +0 -51
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h2/frames.d.ts +0 -19
- package/dist/http/h2/frames.d.ts.map +1 -1
- package/dist/http/h2/frames.js +0 -32
- package/dist/http/h2/frames.js.map +1 -1
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -12
- package/dist/index.js.map +1 -1
- package/dist/tls/constants.d.ts +0 -7
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +0 -9
- package/dist/tls/constants.js.map +1 -1
- package/dist/tls/ech.d.ts.map +1 -1
- package/dist/tls/ech.js +0 -1
- package/dist/tls/ech.js.map +1 -1
- package/dist/tls/keylog.d.ts +0 -15
- package/dist/tls/keylog.d.ts.map +1 -1
- package/dist/tls/keylog.js +0 -19
- package/dist/tls/keylog.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +0 -11
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +0 -17
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/package.json +3 -3
- package/dist/cache/groups.d.ts +0 -75
- package/dist/cache/groups.d.ts.map +0 -1
- package/dist/cache/groups.js +0 -118
- package/dist/cache/groups.js.map +0 -1
- package/dist/cache/no-vary-search.d.ts +0 -33
- package/dist/cache/no-vary-search.d.ts.map +0 -1
- package/dist/cache/no-vary-search.js +0 -148
- package/dist/cache/no-vary-search.js.map +0 -1
- package/dist/cache/range.d.ts +0 -120
- package/dist/cache/range.d.ts.map +0 -1
- package/dist/cache/range.js +0 -192
- package/dist/cache/range.js.map +0 -1
- package/dist/dns/dot-resolver.d.ts +0 -89
- package/dist/dns/dot-resolver.d.ts.map +0 -1
- package/dist/dns/dot-resolver.js +0 -166
- package/dist/dns/dot-resolver.js.map +0 -1
- package/dist/http/resumable-upload.d.ts +0 -76
- package/dist/http/resumable-upload.d.ts.map +0 -1
- package/dist/http/resumable-upload.js +0 -104
- package/dist/http/resumable-upload.js.map +0 -1
- package/dist/http/trailers.d.ts +0 -29
- package/dist/http/trailers.d.ts.map +0 -1
- package/dist/http/trailers.js +0 -57
- package/dist/http/trailers.js.map +0 -1
- package/dist/middleware/circuit-breaker.d.ts +0 -44
- package/dist/middleware/circuit-breaker.d.ts.map +0 -1
- package/dist/middleware/circuit-breaker.js +0 -96
- package/dist/middleware/circuit-breaker.js.map +0 -1
- package/dist/tls/ct.d.ts +0 -78
- package/dist/tls/ct.d.ts.map +0 -1
- package/dist/tls/ct.js +0 -175
- package/dist/tls/ct.js.map +0 -1
- package/dist/tls/early-data.d.ts +0 -45
- package/dist/tls/early-data.d.ts.map +0 -1
- package/dist/tls/early-data.js +0 -46
- package/dist/tls/early-data.js.map +0 -1
- package/dist/tls/ocsp.d.ts +0 -55
- package/dist/tls/ocsp.d.ts.map +0 -1
- package/dist/tls/ocsp.js +0 -131
- package/dist/tls/ocsp.js.map +0 -1
- package/dist/utils/dictionary-transport.d.ts +0 -97
- package/dist/utils/dictionary-transport.d.ts.map +0 -1
- package/dist/utils/dictionary-transport.js +0 -171
- package/dist/utils/dictionary-transport.js.map +0 -1
- package/dist/utils/tcp-fast-open.d.ts +0 -30
- package/dist/utils/tcp-fast-open.d.ts.map +0 -1
- package/dist/utils/tcp-fast-open.js +0 -36
- package/dist/utils/tcp-fast-open.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@ NLcURL provides HTTP/1.1 and HTTP/2 request capabilities with a custom stealth T
|
|
|
6
6
|
|
|
7
7
|
> **Note:** HTTP/3 (QUIC) is not supported. NLcURL supports HTTP/1.1 and HTTP/2 only.
|
|
8
8
|
|
|
9
|
+
## Documentation
|
|
10
|
+
|
|
11
|
+
For full API reference, configuration options, and advanced usage examples, please visit the official documentation: [https://docs.alphasystem.dev/docs/nlcurl](https://docs.alphasystem.dev/docs/nlcurl).
|
|
12
|
+
|
|
9
13
|
## Features
|
|
10
14
|
|
|
11
15
|
- **TLS Fingerprint Impersonation** — Reproduce the exact TLS ClientHello of Chrome, Firefox, Safari, Edge, and Tor across 49 resolvable browser profiles, covering JA3, JA4, and Akamai HTTP/2 fingerprints.
|
|
@@ -16,7 +20,6 @@ NLcURL provides HTTP/1.1 and HTTP/2 request capabilities with a custom stealth T
|
|
|
16
20
|
- **HTTP Caching (RFC 9111)** — In-memory cache with multi-variant `Vary` support, `s-maxage`/`max-age` freshness, `ETag`/`Last-Modified` conditional revalidation, `Age` header, request-side `Cache-Control`, unsafe method invalidation, `stale-while-revalidate`, heuristic freshness, and five cache modes.
|
|
17
21
|
- **HSTS (RFC 6797)** — Automatic `http://` to `https://` upgrading with `includeSubDomains` support and configurable preload lists.
|
|
18
22
|
- **DNS-over-HTTPS (RFC 8484)** — Wire-format DoH with GET/POST methods, EDNS(0) with padding (RFC 6891/7830), bootstrap resolution, and integrated DNS caching.
|
|
19
|
-
- **DNS-over-TLS (RFC 7858)** — Secure DNS resolution over TLS port 853 with persistent connection support and pre-configured public resolvers.
|
|
20
23
|
- **HTTPS Resource Records (RFC 9460)** — SVCB/HTTPS DNS record resolution for ALPN hints, ECH config delivery, and address hints.
|
|
21
24
|
- **Proxy Support** — HTTP CONNECT tunneling, HTTPS proxies, SOCKS4/4a, and SOCKS5 with optional username/password authentication. Environment variable resolution (`HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY`).
|
|
22
25
|
- **WebSocket (RFC 6455)** — Full WebSocket client with TLS fingerprinting, per-message deflate compression (RFC 7692), control frame validation (≤125 bytes), ping/pong, and binary/text framing.
|
|
@@ -24,7 +27,6 @@ NLcURL provides HTTP/1.1 and HTTP/2 request capabilities with a custom stealth T
|
|
|
24
27
|
- **Request/Response Interceptors** — Middleware pipeline for modifying requests before send and responses after receipt.
|
|
25
28
|
- **Retry with Backoff** — Configurable automatic retry with linear or exponential backoff, jitter, `Retry-After` header respect, and custom retry predicates.
|
|
26
29
|
- **Rate Limiting** — Token-bucket rate limiter with configurable request quotas and automatic queuing.
|
|
27
|
-
- **Circuit Breaker** — Per-origin circuit breaker with configurable failure thresholds, half-open probing, and automatic recovery.
|
|
28
30
|
- **Request Body Compression** — Outgoing body compression with gzip, deflate, and Brotli.
|
|
29
31
|
- **Response Decompression** — Automatic decompression of gzip, deflate, Brotli, and zstd (Node.js 20.10+) with multi-layer encoding support.
|
|
30
32
|
- **Happy Eyeballs v2 (RFC 8305)** — Dual-stack connection racing with 250ms stagger for optimal latency.
|
|
@@ -132,17 +134,6 @@ nlcurl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://
|
|
|
132
134
|
nlcurl -x socks5://127.0.0.1:1080 https://example.com
|
|
133
135
|
```
|
|
134
136
|
|
|
135
|
-
## Documentation
|
|
136
|
-
|
|
137
|
-
| Document | Description |
|
|
138
|
-
|----------|-------------|
|
|
139
|
-
| [API Reference](docs/API.md) | Complete API for all exported classes, functions, types, and interfaces |
|
|
140
|
-
| [Configuration](docs/CONFIGURATION.md) | All configuration options for requests, sessions, TLS, DNS, caching, and proxies |
|
|
141
|
-
| [Examples](docs/EXAMPLES.md) | Practical usage patterns covering common and advanced scenarios |
|
|
142
|
-
| [Modules](docs/MODULES.md) | Architecture overview and detailed breakdown of every module |
|
|
143
|
-
| [Onboarding](docs/ONBOARDING.md) | Getting started guide for new contributors and integrators |
|
|
144
|
-
| [Setup](docs/SETUP.md) | Build, test, and development environment instructions |
|
|
145
|
-
|
|
146
137
|
## Browser Profiles
|
|
147
138
|
|
|
148
139
|
49 resolvable browser profile names across 5 browser families:
|
|
@@ -175,7 +166,6 @@ NLcURL implements or references the following RFCs and standards:
|
|
|
175
166
|
| RFC 6265 | HTTP Cookies — Set-Cookie parsing, domain/path scoping, prefixes |
|
|
176
167
|
| RFC 6797 | HSTS — Strict-Transport-Security header processing |
|
|
177
168
|
| RFC 8484 | DNS-over-HTTPS — wire-format queries, GET/POST methods |
|
|
178
|
-
| RFC 7858 | DNS-over-TLS — encrypted DNS over port 853 |
|
|
179
169
|
| RFC 9460 | SVCB/HTTPS DNS Records — service binding, ALPN, ECH delivery |
|
|
180
170
|
| RFC 8305 | Happy Eyeballs v2 — dual-stack connection racing |
|
|
181
171
|
| RFC 6455 | WebSocket — upgrade handshake, framing, close protocol |
|
|
@@ -186,7 +176,6 @@ NLcURL implements or references the following RFCs and standards:
|
|
|
186
176
|
| RFC 1928 | SOCKS5 — proxy protocol with auth negotiation |
|
|
187
177
|
| RFC 5869 | HKDF — key derivation for TLS key schedule |
|
|
188
178
|
| RFC 9180 | HPKE — Hybrid Public Key Encryption for ECH |
|
|
189
|
-
| RFC 7413 | TCP Fast Open — platform-aware TFO support |
|
|
190
179
|
| RFC 8297 | 103 Early Hints — Link header parsing |
|
|
191
180
|
| RFC 6891 | EDNS(0) — Extension Mechanisms for DNS OPT records |
|
|
192
181
|
| RFC 7830 | DNS Padding — query size obfuscation for privacy |
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Complete Mozilla Public Suffix List rules.
|
|
5
5
|
* Generated from: https://publicsuffix.org/list/public_suffix_list.dat
|
|
6
|
-
* Generated on: 2026-
|
|
7
|
-
* Total rules:
|
|
6
|
+
* Generated on: 2026-04-08T11:56:17.056Z
|
|
7
|
+
* Total rules: 10161
|
|
8
8
|
*
|
|
9
9
|
* To regenerate: npx tsx scripts/update-psl.ts
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psl-data.d.ts","sourceRoot":"","sources":["../../src/cookies/psl-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"psl-data.d.ts","sourceRoot":"","sources":["../../src/cookies/psl-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAk7TtC,CAAC"}
|
package/dist/cookies/psl-data.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Complete Mozilla Public Suffix List rules.
|
|
5
5
|
* Generated from: https://publicsuffix.org/list/public_suffix_list.dat
|
|
6
|
-
* Generated on: 2026-
|
|
7
|
-
* Total rules:
|
|
6
|
+
* Generated on: 2026-04-08T11:56:17.056Z
|
|
7
|
+
* Total rules: 10161
|
|
8
8
|
*
|
|
9
9
|
* To regenerate: npx tsx scripts/update-psl.ts
|
|
10
10
|
*/
|
|
11
|
+
// prettier-ignore
|
|
11
12
|
export const PSL_RULES = [
|
|
12
13
|
"ac",
|
|
13
14
|
"com.ac",
|
|
@@ -7851,6 +7852,7 @@ export const PSL_RULES = [
|
|
|
7851
7852
|
"transfer-webapp.cn-northwest-1.on.amazonwebservices.com.cn",
|
|
7852
7853
|
"eero.online",
|
|
7853
7854
|
"eero-stage.online",
|
|
7855
|
+
"opentunnel.xyz",
|
|
7854
7856
|
"antagonist.cloud",
|
|
7855
7857
|
"apigee.io",
|
|
7856
7858
|
"panel.dev",
|
|
@@ -8686,6 +8688,7 @@ export const PSL_RULES = [
|
|
|
8686
8688
|
"app.os.stg.fedoraproject.org",
|
|
8687
8689
|
"mydobiss.com",
|
|
8688
8690
|
"fh-muenster.io",
|
|
8691
|
+
"payload.dev",
|
|
8689
8692
|
"figma.site",
|
|
8690
8693
|
"figma-gov.site",
|
|
8691
8694
|
"preview.site",
|
|
@@ -8939,6 +8942,7 @@ export const PSL_RULES = [
|
|
|
8939
8942
|
"*.kin.one",
|
|
8940
8943
|
"*.id.pub",
|
|
8941
8944
|
"*.kin.pub",
|
|
8945
|
+
"seprox.hooc.me",
|
|
8942
8946
|
"hoplix.shop",
|
|
8943
8947
|
"orx.biz",
|
|
8944
8948
|
"biz.ng",
|
|
@@ -9555,6 +9559,7 @@ export const PSL_RULES = [
|
|
|
9555
9559
|
"gh.srv.us",
|
|
9556
9560
|
"gl.srv.us",
|
|
9557
9561
|
"mypep.link",
|
|
9562
|
+
"pplx.app",
|
|
9558
9563
|
"perspecta.cloud",
|
|
9559
9564
|
"forgeblocks.com",
|
|
9560
9565
|
"id.forgerock.io",
|
|
@@ -9915,6 +9920,7 @@ export const PSL_RULES = [
|
|
|
9915
9920
|
"stackit.rocks",
|
|
9916
9921
|
"stackit.run",
|
|
9917
9922
|
"stackit.zone",
|
|
9923
|
+
"sryze.cc",
|
|
9918
9924
|
"indevs.in",
|
|
9919
9925
|
"musician.io",
|
|
9920
9926
|
"novecore.site",
|