npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

turnt-tls

v1.1.2

Published

This is an advanced NodeJS implementation of Golang's utls repository with session support provided through [tough-cookie](https://www.npmjs.com/package/tough-cookie). It's syntax is similar to that of npm's popular (deprecated) request package. Additiona

Downloads

25

Readme

turnt-tls

This is an advanced NodeJS implementation of Golang's utls repository with session support provided through tough-cookie. It's syntax is similar to that of npm's popular (deprecated) request package. Additionally, it supports pseudo-header order, gzip, deflate, and brotli.

Installation

npm i turnt-tls

Setup

  1. Clone the repository
  2. Install the necessary dependencies with npm install
  3. Run and build the test case npm run start

What is TLS/SSL and why is it important?

Please read the following writeups for a better understanding of TLS/SSL Handshakes and why JA3 can fingerprint them.

  1. Salesforce Article
  2. Darktrace Article
  3. Medium Article

Support

Currently, the turnt-tls client supports the following methods: GET, POST, FORM, PUT, and PUTFORM.

Note: FORM is essentially a request with query parameters. We just decided this warranted a separate method.

Use Case

var turnt = require("turnt-tls");
var jar = require("tough-cookie");
var cookieJar = new jar.CookieJar();

async function checkTLS() {
    let options = {
        method: 'GET',
        cookieJar: cookieJar,
        headers: {
            'Connection': 'keep-alive',
            'Pragma': 'no-cache',
            'Cache-Control': 'no-cache',
            'sec-ch-ua': '"Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"',
            'sec-ch-ua-mobile': '?0',
            'DNT': '1',
            'Upgrade-Insecure-Requests': '1',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
            'Sec-Fetch-Site': 'none',
            'Sec-Fetch-Mode': 'navigate',
            'Sec-Fetch-User': '?1',
            'Sec-Fetch-Dest': 'document',
            'Accept-Language': 'en-US,en;q=0.9'
        },
        proxy: "user:pass@host:port",
    }
    
    let GetResp = await turnt.turnt("https://incolumitas.com/pages/TLS-Fingerprint/", options)

    console.log(GetResp.status)
}
checkTLS();

Notes

Much of the syntax is similar to the popular but deprecated requests package.

I have also taken the liberty to provide pre-made binaries that will run on MacOS, Linux, and Windows, however you are free to build your own. You can do so by running ./golang/build.bat. (Windows only)

Anyone is welcome to contribute to this module to implement any more http methods or functionality. Just make a pull request and I will review it :)

Reflections

I would like to give an enormous shoutout to Will for his contributions to this repository. Please go check out his work!