How sahil1337/node-tls-client works
node-tls-client is a Node.js HTTP client that delegates requests to a native tls-client library to reproduce browser-like TLS and HTTP/2 fingerprints. The main workflow is: initialize the native runtime, configure a Session with a browser profile and request options, build a native payload, dispatch it through a concurrency mode, then expose the native result as a Response while mirroring cookies. The graph also preserves documented fingerprint, proxy, HTTP/3, and concurrency capabilities. Some subsystem links are documented rather than verified in sampled implementation excerpts.
Main entry points: session.ts Session · runtime.ts Lifecycle Runtime · payload.ts Payload Builder · native-client.ts Native Client
Components 18
Session API
- Session
src/core/session.ts - Fetch API
src/core/fetch.ts - Response
src/core/response.ts - Cookie Mirror
src/core/cookie-mirror.ts
Request Modeling
- Payload Builder
src/core/payload.ts
Native Runtime
- Lifecycle Runtime
src/native/runtime.ts - Library Locate/Load
src/native/library/locate.ts - Native Loader
src/native/library/load.ts - Native Client
src/native/client/native-client.ts - Completion Queue
src/native/client/queue-client.ts - Threadpool Client
src/native/client/threadpool-client.ts
Configuration Types
- Request Options
src/types/request.ts - Session Options
src/types/session.ts - Browser Profiles
src/types/client-identifier.ts - Custom Fingerprints
src/types/fingerprint.ts
Other components
- Application
- Native TLS Library
- HTTP Server
Connections 21
- Application → Session: creates and uses
- Application → Lifecycle Runtime: initializes
- Session → Payload Builder: builds payload
src/core/session.ts - Session → Lifecycle Runtime: gets client
src/core/session.ts - Session → Cookie Mirror: records cookies
src/core/session.ts - Session → Response: wraps result
src/core/session.ts - Session → Request Options: accepts options
src/core/session.ts - Payload Builder → Session Options: encodes settings
src/core/payload.ts - Payload Builder → Request Options: encodes request
src/core/payload.ts - Payload Builder → Browser Profiles: selects profile
src/core/payload.ts - Payload Builder → Custom Fingerprints: encodes custom profile
src/core/payload.ts - Lifecycle Runtime → Library Locate/Load: locates library
src/native/runtime.ts - Lifecycle Runtime → Native Client: creates client
src/native/runtime.ts - Library Locate/Load → Native Loader: loads library
src/native/library/index.ts - Native Client → Native TLS Library: sends request
src/native/client/native-client.ts - Completion Queue → Native Client: extends
src/native/client/queue-client.ts - Threadpool Client → Native Client: extends
src/native/client/threadpool-client.ts - Lifecycle Runtime → Completion Queue: selects mode
src/native/runtime.ts - Lifecycle Runtime → Threadpool Client: selects mode
src/native/runtime.ts - Native TLS Library → HTTP Server: performs HTTP request
- Fetch API → Session: uses session