Socket
Socket
Sign inDemoInstall

cookiefile

Package Overview
Dependencies
2
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    cookiefile

Package for operating with Netscape HTTP Cookie File


Version published
Weekly downloads
30K
decreased by-20.24%
Maintainers
1
Install size
75.4 kB
Created
Weekly downloads
 

Readme

Source

node-cookiefile

Package for operating with Netscape HTTP Cookie File using Node.JS

It can read and create Netscape HTTP Cookie File like this:

# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by node-httpcookie! Edit at your own risk

#HttpOnly_horatius.pro	FALSE	/	FALSE	0	httpOnlyCookie	httponly
horatius.pro	false	/	false	0	testKey	testValue
google.com   false	/	false	0	secondKey	secondValue

In addition to this it can read and create HTTP Response and Request (only generate) headers:

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Cookie: name=value; test=horatius

Max-Age and Same-Site directives is not supported in actual version If you are interested to use it please make pull request

Install

npm install cookiefile --save

Usage

Loading library
let {Cookie, CookieMap, CookieError} = require('http-cookiefile')

It will provide JavaScript Map object with overloaded .set method

let cookie = new Cookie({
    domain: ".google.com",
    name: "testKey",
    value: "textValue",
    https: false, // default
    httpOnly: false, //default
    crossDomain: false, // default
    expire: Date.now() + 600 // default: 0
});
Reading Netscape Cookiefile

You can just enter your cookiefile path to load it into Map object

let cookieFile = new CookieMap('curl.cookiefile');

Or you can initialize it

let cookieFile = new CookieFile([
    cookie // Here is array of Cookie objects
]);

To read from Set-Cookie response header please use header method of CookieMap

const cookiesParsed = new CookieMap();
cookiesParsed.header('Set-Cookie: id=a3fWa');

Also, you can load cookie from request header Cookie: a=b;d=c:

const requestParsed = new CookieMap();

let options = {
    domain: ".google.com",
    secure: true,
}; // Options, which will be send to Cookie constructor

CookieMap.generate('Cookie: a=b;d=c', {htt})
Adding new cookies

Overloaded Map.set method. It will get name for the row from cookie object

cookieFile.set(cookie);
Reading values

You are able to use default Map methods like get, has, clear, and others.

let cookieValue = cookieFile.get('testKey')

You can specify new name for new cookiefile. If you create CookieMap using filename it will be used by default.

cookieFile.save('new.cookiefile');
cookieFile.save(); // If you had specify filename when create object
toString methods

You are able to use toString methods for Cookie object

cookie.toString()

will return string like

google.com   false	/	false	0	secondKey	secondValue

For CookieMap toString is available too

cookieFile.toString();

will return string will full cookiefile

In addition to this you are able to use toRequestHeader and toResponseHeader method of CookieMap and Cookie objects:

cookieFile.toRequestHeader({http: true, secure:false});
cookieFile.toResponseHeader();

It will generate something like this:

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Cookie: name=value; test=horatius

Tests

You are able to test this package using mocha

git clone https://github.com/horat1us/node-cookiefile
cd node-cookiefile
npm install
npm test

Keywords

FAQs

Last updated on 13 Oct 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc