joepie91 / node-bhttp

A sane HTTP client library for Node.js with Streams2 support.
62 stars 12 forks source link

bumped `tough-cookie` version to 2.3.1 to resolve nsp vulnerability #25

Closed CodisRedding closed 7 years ago

CodisRedding commented 7 years ago

nsp vulnerability: https://nodesecurity.io/advisories/130

in node-bhttp/ v4.4.7  on master
› coffee test-progress.coffee
Starting upload...
0.0039450175406565025% 121 3067160
0.004173241695901095% 128 3067160
0.008183466138056053% 251 3067160
0.008411690293300644% 258 3067160
0.01255232853845251% 385 3067160
0.012813156144446329% 393 3067160
0.016953794389598195% 520 3067160
0.01721462199559201% 528 3067160
0.02040976016901629% 626 3067160
0.02063798432426088% 633 3067160
0.025365484682898835% 778 3067160
2.162065232984259% 66314 3067160
4.298764981285619% 131850 3067160
6.435464729586979% 197386 3067160
8.57216447788834% 262922 3067160
10.7088642261897% 328458 3067160
12.845563974491059% 393994 3067160
14.982263722792421% 459530 3067160
17.11896347109378% 525066 3067160
19.255663219395142% 590602 3067160
21.392362967696503% 656138 3067160
23.52906271599786% 721674 3067160
25.66576246429922% 787210 3067160
27.80246221260058% 852746 3067160
29.939161960901945% 918282 3067160
32.0758617092033% 983818 3067160
34.21256145750466% 1049354 3067160
36.34926120580602% 1114890 3067160
38.485960954107384% 1180426 3067160
40.622660702408744% 1245962 3067160
42.759360450710105% 1311498 3067160
44.89606019901146% 1377034 3067160
47.032759947312826% 1442570 3067160
49.16945969561418% 1508106 3067160
51.30615944391555% 1573642 3067160
53.44285919221691% 1639178 3067160
55.57955894051827% 1704714 3067160
57.71625868881962% 1770250 3067160
59.85295843712098% 1835786 3067160
61.98965818542235% 1901322 3067160
64.12635793372371% 1966858 3067160
66.26305768202506% 2032394 3067160
68.39975743032642% 2097930 3067160
70.53645717862778% 2163466 3067160
72.67315692692915% 2229002 3067160
74.8098566752305% 2294538 3067160
76.94655642353186% 2360074 3067160
79.08325617183323% 2425610 3067160
81.2199559201346% 2491146 3067160
83.35665566843595% 2556682 3067160
85.4933554167373% 2622218 3067160
87.63005516503867% 2687754 3067160
89.76675491334004% 2753290 3067160
91.90345466164139% 2818826 3067160
94.04015440994274% 2884362 3067160
96.17685415824411% 2949898 3067160
98.31355390654547% 3015434 3067160
99.99850024126553% 3067114 3067160
100% 3067160 3067160
POST multipart Successfully dumped 4 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.21.581922845115\nPost body was 0 chars long.
Starting download...
Got response
100% 354 354
Completed response download

in node-bhttp/ v4.4.7  on master
› coffee test-https-stream.coffee
Got response IncomingMessage {
  _readableState:
   ReadableState {
     objectMode: false,
     highWaterMark: 16384,
     buffer: [],
     length: 0,
     pipes: null,
     pipesCount: 0,
     flowing: false,
     ended: true,
     endEmitted: true,
     reading: false,
     sync: false,
     needReadable: false,
     emittedReadable: false,
     readableListening: false,
     resumeScheduled: false,
     defaultEncoding: 'utf8',
     ranOut: false,
     awaitDrain: 0,
     readingMore: false,
     decoder: null,
     encoding: null },
  readable: false,
  domain: null,
  _events: { end: [ [Function: responseOnEnd] ], error: [Function] },
  _eventsCount: 2,
  _maxListeners: undefined,
  socket:
   TLSSocket {
     _tlsOptions:
      { pipe: null,
        secureContext: [Object],
        isServer: false,
        requestCert: true,
        rejectUnauthorized: true,
        session: undefined,
        NPNProtocols: undefined,
        requestOCSP: undefined },
     _secureEstablished: true,
     _securePending: false,
     _newSessionPending: false,
     _controlReleased: true,
     _SNICallback: null,
     servername: null,
     npnProtocol: false,
     authorized: true,
     authorizationError: null,
     encrypted: true,
     _events:
      { close: [Object],
        end: [Object],
        finish: [Function: onSocketFinish],
        _socketEnd: [Function: onSocketEnd],
        secure: [Function],
        free: [Function: onFree],
        agentRemove: [Function: onRemove],
        drain: [Function: ondrain],
        error: [Function: socketErrorListener],
        data: [Function: socketOnData] },
     _eventsCount: 10,
     _connecting: false,
     _hadError: false,
     _handle: null,
     _parent: null,
     _host: 'www.google.com',
     _readableState:
      ReadableState {
        objectMode: false,
        highWaterMark: 16384,
        buffer: [],
        length: 0,
        pipes: null,
        pipesCount: 0,
        flowing: true,
        ended: true,
        endEmitted: true,
        reading: false,
        sync: false,
        needReadable: false,
        emittedReadable: false,
        readableListening: false,
        resumeScheduled: false,
        defaultEncoding: 'utf8',
        ranOut: false,
        awaitDrain: 0,
        readingMore: false,
        decoder: null,
        encoding: null },
     readable: false,
     domain: null,
     _maxListeners: undefined,
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        needDrain: false,
        ending: true,
        ended: true,
        finished: true,
        decodeStrings: false,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: false,
        bufferProcessing: false,
        onwrite: [Function],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: true,
        errorEmitted: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: false,
     allowHalfOpen: false,
     destroyed: true,
     _bytesDispatched: 84,
     _sockname: null,
     _pendingData: null,
     _pendingEncoding: '',
     server: undefined,
     _server: null,
     ssl: null,
     _requestCert: true,
     _rejectUnauthorized: true,
     parser: null,
     _httpMessage:
      ClientRequest {
        domain: null,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedHeader: {},
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Circular],
        connection: [Circular],
        _header: 'GET / HTTP/1.1\r\nuser-agent: bhttp/1.2.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n',
        _headers: [Object],
        _headerNames: [Object],
        _onPendingData: null,
        agent: [Object],
        socketPath: undefined,
        method: 'GET',
        path: '/',
        parser: null,
        res: [Circular] },
     read: [Function],
     _consuming: true,
     write: [Function: writeAfterFIN],
     _idleNext: null,
     _idlePrev: null,
     _idleTimeout: -1 },
  connection:
   TLSSocket {
     _tlsOptions:
      { pipe: null,
        secureContext: [Object],
        isServer: false,
        requestCert: true,
        rejectUnauthorized: true,
        session: undefined,
        NPNProtocols: undefined,
        requestOCSP: undefined },
     _secureEstablished: true,
     _securePending: false,
     _newSessionPending: false,
     _controlReleased: true,
     _SNICallback: null,
     servername: null,
     npnProtocol: false,
     authorized: true,
     authorizationError: null,
     encrypted: true,
     _events:
      { close: [Object],
        end: [Object],
        finish: [Function: onSocketFinish],
        _socketEnd: [Function: onSocketEnd],
        secure: [Function],
        free: [Function: onFree],
        agentRemove: [Function: onRemove],
        drain: [Function: ondrain],
        error: [Function: socketErrorListener],
        data: [Function: socketOnData] },
     _eventsCount: 10,
     _connecting: false,
     _hadError: false,
     _handle: null,
     _parent: null,
     _host: 'www.google.com',
     _readableState:
      ReadableState {
        objectMode: false,
        highWaterMark: 16384,
        buffer: [],
        length: 0,
        pipes: null,
        pipesCount: 0,
        flowing: true,
        ended: true,
        endEmitted: true,
        reading: false,
        sync: false,
        needReadable: false,
        emittedReadable: false,
        readableListening: false,
        resumeScheduled: false,
        defaultEncoding: 'utf8',
        ranOut: false,
        awaitDrain: 0,
        readingMore: false,
        decoder: null,
        encoding: null },
     readable: false,
     domain: null,
     _maxListeners: undefined,
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        needDrain: false,
        ending: true,
        ended: true,
        finished: true,
        decodeStrings: false,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: false,
        bufferProcessing: false,
        onwrite: [Function],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: true,
        errorEmitted: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: false,
     allowHalfOpen: false,
     destroyed: true,
     _bytesDispatched: 84,
     _sockname: null,
     _pendingData: null,
     _pendingEncoding: '',
     server: undefined,
     _server: null,
     ssl: null,
     _requestCert: true,
     _rejectUnauthorized: true,
     parser: null,
     _httpMessage:
      ClientRequest {
        domain: null,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedHeader: {},
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Circular],
        connection: [Circular],
        _header: 'GET / HTTP/1.1\r\nuser-agent: bhttp/1.2.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n',
        _headers: [Object],
        _headerNames: [Object],
        _onPendingData: null,
        agent: [Object],
        socketPath: undefined,
        method: 'GET',
        path: '/',
        parser: null,
        res: [Circular] },
     read: [Function],
     _consuming: true,
     write: [Function: writeAfterFIN],
     _idleNext: null,
     _idlePrev: null,
     _idleTimeout: -1 },
  httpVersionMajor: 1,
  httpVersionMinor: 1,
  httpVersion: '1.1',
  complete: true,
  headers:
   { date: 'Thu, 11 Aug 2016 17:22:08 GMT',
     expires: '-1',
     'cache-control': 'private, max-age=0',
     'content-type': 'text/html; charset=ISO-8859-1',
     p3p: 'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."',
     server: 'gws',
     'x-xss-protection': '1; mode=block',
     'x-frame-options': 'SAMEORIGIN',
     'set-cookie': [ 'NID=84=lmAobeqdI12VM9Z0Ld_wQVWwEkeC1VkKJPqterI0c6mHc1ri07kC0oS61KIf0qV0MhwQ72EgYfiI2reP_AqvHq15DdO9QjvwFmZgu9arYeo3g30zAARhpv_Kk7qkW-0YX0RAGTorc890ZKQ; expires=Fri, 10-Feb-2017 17:22:08 GMT; path=/; domain=.google.com; HttpOnly' ],
     'alternate-protocol': '443:quic',
     'alt-svc': 'quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"',
     'accept-ranges': 'none',
     vary: 'Accept-Encoding',
     connection: 'close' },
  rawHeaders:
   [ 'Date',
     'Thu, 11 Aug 2016 17:22:08 GMT',
     'Expires',
     '-1',
     'Cache-Control',
     'private, max-age=0',
     'Content-Type',
     'text/html; charset=ISO-8859-1',
     'P3P',
     'CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info."',
     'Server',
     'gws',
     'X-XSS-Protection',
     '1; mode=block',
     'X-Frame-Options',
     'SAMEORIGIN',
     'Set-Cookie',
     'NID=84=lmAobeqdI12VM9Z0Ld_wQVWwEkeC1VkKJPqterI0c6mHc1ri07kC0oS61KIf0qV0MhwQ72EgYfiI2reP_AqvHq15DdO9QjvwFmZgu9arYeo3g30zAARhpv_Kk7qkW-0YX0RAGTorc890ZKQ; expires=Fri, 10-Feb-2017 17:22:08 GMT; path=/; domain=.google.com; HttpOnly',
     'Alternate-Protocol',
     '443:quic',
     'Alt-Svc',
     'quic=":443"; ma=2592000; v="36,35,34,33,32,31,30"',
     'Accept-Ranges',
     'none',
     'Vary',
     'Accept-Encoding',
     'Connection',
     'close' ],
  trailers: {},
  rawTrailers: [],
  upgrade: false,
  url: '',
  method: null,
  statusCode: 200,
  statusMessage: 'OK',
  client:
   TLSSocket {
     _tlsOptions:
      { pipe: null,
        secureContext: [Object],
        isServer: false,
        requestCert: true,
        rejectUnauthorized: true,
        session: undefined,
        NPNProtocols: undefined,
        requestOCSP: undefined },
     _secureEstablished: true,
     _securePending: false,
     _newSessionPending: false,
     _controlReleased: true,
     _SNICallback: null,
     servername: null,
     npnProtocol: false,
     authorized: true,
     authorizationError: null,
     encrypted: true,
     _events:
      { close: [Object],
        end: [Object],
        finish: [Function: onSocketFinish],
        _socketEnd: [Function: onSocketEnd],
        secure: [Function],
        free: [Function: onFree],
        agentRemove: [Function: onRemove],
        drain: [Function: ondrain],
        error: [Function: socketErrorListener],
        data: [Function: socketOnData] },
     _eventsCount: 10,
     _connecting: false,
     _hadError: false,
     _handle: null,
     _parent: null,
     _host: 'www.google.com',
     _readableState:
      ReadableState {
        objectMode: false,
        highWaterMark: 16384,
        buffer: [],
        length: 0,
        pipes: null,
        pipesCount: 0,
        flowing: true,
        ended: true,
        endEmitted: true,
        reading: false,
        sync: false,
        needReadable: false,
        emittedReadable: false,
        readableListening: false,
        resumeScheduled: false,
        defaultEncoding: 'utf8',
        ranOut: false,
        awaitDrain: 0,
        readingMore: false,
        decoder: null,
        encoding: null },
     readable: false,
     domain: null,
     _maxListeners: undefined,
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        needDrain: false,
        ending: true,
        ended: true,
        finished: true,
        decodeStrings: false,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: false,
        bufferProcessing: false,
        onwrite: [Function],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: true,
        errorEmitted: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: false,
     allowHalfOpen: false,
     destroyed: true,
     _bytesDispatched: 84,
     _sockname: null,
     _pendingData: null,
     _pendingEncoding: '',
     server: undefined,
     _server: null,
     ssl: null,
     _requestCert: true,
     _rejectUnauthorized: true,
     parser: null,
     _httpMessage:
      ClientRequest {
        domain: null,
        _events: [Object],
        _eventsCount: 2,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedHeader: {},
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Circular],
        connection: [Circular],
        _header: 'GET / HTTP/1.1\r\nuser-agent: bhttp/1.2.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n',
        _headers: [Object],
        _headerNames: [Object],
        _onPendingData: null,
        agent: [Object],
        socketPath: undefined,
        method: 'GET',
        path: '/',
        parser: null,
        res: [Circular] },
     read: [Function],
     _consuming: true,
     write: [Function: writeAfterFIN],
     _idleNext: null,
     _idlePrev: null,
     _idleTimeout: -1 },
  _consuming: true,
  _dumped: false,
  req:
   ClientRequest {
     domain: null,
     _events: { error: [Function], response: [Function] },
     _eventsCount: 2,
     _maxListeners: undefined,
     output: [],
     outputEncodings: [],
     outputCallbacks: [],
     outputSize: 0,
     writable: true,
     _last: true,
     chunkedEncoding: false,
     shouldKeepAlive: false,
     useChunkedEncodingByDefault: false,
     sendDate: false,
     _removedHeader: {},
     _contentLength: 0,
     _hasBody: true,
     _trailer: '',
     finished: true,
     _headerSent: true,
     socket:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: null,
        npnProtocol: false,
        authorized: true,
        authorizationError: null,
        encrypted: true,
        _events: [Object],
        _eventsCount: 10,
        _connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: 'www.google.com',
        _readableState: [Object],
        readable: false,
        domain: null,
        _maxListeners: undefined,
        _writableState: [Object],
        writable: false,
        allowHalfOpen: false,
        destroyed: true,
        _bytesDispatched: 84,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: true,
        parser: null,
        _httpMessage: [Circular],
        read: [Function],
        _consuming: true,
        write: [Function: writeAfterFIN],
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1 },
     connection:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: null,
        npnProtocol: false,
        authorized: true,
        authorizationError: null,
        encrypted: true,
        _events: [Object],
        _eventsCount: 10,
        _connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: 'www.google.com',
        _readableState: [Object],
        readable: false,
        domain: null,
        _maxListeners: undefined,
        _writableState: [Object],
        writable: false,
        allowHalfOpen: false,
        destroyed: true,
        _bytesDispatched: 84,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: true,
        parser: null,
        _httpMessage: [Circular],
        read: [Function],
        _consuming: true,
        write: [Function: writeAfterFIN],
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1 },
     _header: 'GET / HTTP/1.1\r\nuser-agent: bhttp/1.2.1\r\nHost: www.google.com\r\nConnection: close\r\n\r\n',
     _headers: { 'user-agent': 'bhttp/1.2.1', host: 'www.google.com' },
     _headerNames: { 'user-agent': 'user-agent', host: 'Host' },
     _onPendingData: null,
     agent:
      Agent {
        domain: null,
        _events: [Object],
        _eventsCount: 1,
        _maxListeners: undefined,
        defaultPort: 443,
        protocol: 'https:',
        options: [Object],
        requests: {},
        sockets: [Object],
        freeSockets: {},
        keepAliveMsecs: 1000,
        keepAlive: false,
        maxSockets: Infinity,
        maxFreeSockets: 256,
        maxCachedSessions: 100,
        _sessionCache: [Object] },
     socketPath: undefined,
     method: 'GET',
     path: '/',
     parser: null,
     res: [Circular] },
  read: [Function],
  request:
   { url: 'https://www.google.com/',
     options:
      { method: 'get',
        headers: [Object],
        hostname: 'www.google.com',
        port: 443,
        path: '/' },
     responseOptions:
      { discardResponse: false,
        keepRedirectResponses: false,
        followRedirects: true,
        noDecode: false,
        decodeJSON: false,
        stream: false,
        justPrepare: false,
        redirectLimit: 10,
        onDownloadProgress: undefined,
        responseTimeout: undefined },
     protocol: 'https',
     protocolModule:
      { Server: [Object],
        createServer: [Function],
        globalAgent: [Object],
        Agent: [Object],
        request: [Function],
        get: [Function] },
     onUploadProgress: undefined },
  requestState:
   { originalOptions: { method: 'get' },
     redirectHistory: [ [Object] ],
     sessionOptions: {} },
  redirectHistory:
   [ IncomingMessage {
       _readableState: [Object],
       readable: false,
       domain: null,
       _events: [Object],
       _eventsCount: 1,
       _maxListeners: undefined,
       socket: [Object],
       connection: [Object],
       httpVersionMajor: 1,
       httpVersionMinor: 1,
       httpVersion: '1.1',
       complete: true,
       headers: [Object],
       rawHeaders: [Object],
       trailers: {},
       rawTrailers: [],
       upgrade: false,
       url: '',
       method: null,
       statusCode: 301,
       statusMessage: 'Moved Permanently',
       client: [Object],
       _consuming: true,
       _dumped: false,
       req: [Object],
       request: [Object],
       requestState: [Object],
       redirectHistory: [Circular],
       read: [Function] } ],
  on: [Function],
  resume: [Function],
  body: <Buffer 3c 21 64 6f 63 74 79 70 65 20 68 74 6d 6c 3e 3c 68 74 6d 6c 20 69 74 65 6d 73 63 6f 70 65 3d 22 22 20 69 74 65 6d 74 79 70 65 3d 22 68 74 74 70 3a 2f ... > }

in node-bhttp/ v4.4.7  on master
› coffee test-cookies.coffee
Making first request...
Making first-and-a-half request...
Making second request...
testkey1=testvalue1; testkey2=testvalue2

in node-bhttp/ v4.4.7  on master
› coffee test-bhttp.coffee https://posttestserver.com/post.php
REDIR undefined 1
NO-REDIR http://www.html-kit.com/tools/cookietester/
POST buffer Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.29214240149\nPost body was 20 chars long.
POST url-encoded Successfully dumped 3 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.2912324960\nPost body was 0 chars long.
DELETE Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.29118715651\nPost body was 0 chars long.
PATCH buffer Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.291963035882\nPost body was 0 chars long.
GET Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.291408665622\nPost body was 0 chars long.
PUT buffer Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.292067558819\nPost body was 0 chars long.
COOKIE1 [ 'testkey1=testvalue1; Domain=www.html-kit.com; Expires=Sat, 13-Aug-2016 17:22:55 GMT; Path=/' ]
COOKIE2c [ 'testkey2=testvalue2; Domain=www.html-kit.com; Expires=Sat, 13-Aug-2016 17:22:56 GMT; Path=/' ]
COOKIE2h { 'x-test-header': 'some value',
  cookie: 'testkey2=testvalue2',
  'user-agent': 'bhttp/1.2.1' }
COOKIE2h { 'x-test-header': 'some value',
  cookie: '',
  'user-agent': 'bhttp/1.2.1',
  'content-type': 'application/x-www-form-urlencoded',
  'content-length': 25 }
NON-COOKIE SET [ 'testkey3=testvalue4; Domain=www.html-kit.com; Expires=Sat, 13-Aug-2016 17:22:57 GMT; Path=/' ]
NON-COOKIE GET undefined
POST multipart Successfully dumped 4 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.321476992623\nPost body was 0 chars long.
POST stream Successfully dumped 0 post variables.\nView it at http://www.posttestserver.com/data/2016/08/11/10.22.341875385697\nPost body was 3066336 chars long.
GET STREAM ok
joepie91 commented 7 years ago

Thanks. For reference purposes, the breaking changes in tough-cookie that had to be reviewed (but were not documented) are now listed here.

KarbonDallas commented 7 years ago

@joepie91 I'm working on coordinating a CHANGELOG being a thing for tough-cookie. Thanks for all the hard work! 😸

joepie91 commented 7 years ago

@emilyrose Thanks :)