Coder Social home page Coder Social logo

grunt-http's Introduction

grunt-http

Greenkeeper badge

Sends a HTTP request and deals with the response.

NPM

NPM

Getting Started

This plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-http --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-http');

The "http" task

Overview

In your project's Gruntfile, add a section named http to the data object passed into grunt.initConfig().

grunt.initConfig({
  http: {
    your_service: {
      options: {
        url: 'your/url.com',
      },
      dest: 'optional/file/to/save/response'
    }
  }
})

If you add a source file, the contents will be added to the body option unless another field is specified in the sourceField option.

Options

grunt-http uses the request module under the hood, and apart from a couple specific to grunt-http options, the rest get passed straight to it. Here's a copy of the of the module's option docs. Otherwise, go to the repo and have a look at what's it's capable of.

  • uri || url - fully qualified URI or a parsed URL object from url.parse(). REQUIRED.
  • callback - A function that will receive an error, response and body, after a response if finished
  • qs - object containing querystring values to be appended to the URI
  • method - http method, defaults to GET
  • headers - http headers, defaults to {}

  • qs - object containing querystring values to be appended to the uri
  • qsParseOptions - object containing options to pass to the qs.parse method. Alternatively pass options to the querystring.parse method using this format {sep:';', eq:':', options:{}}
  • qsStringifyOptions - object containing options to pass to the qs.stringify method. Alternatively pass options to the querystring.stringify method using this format {sep:';', eq:':', options:{}}. For example, to change the way arrays are converted to query strings using the qs module pass the arrayFormat option with one of indices|brackets|repeat
  • useQuerystring - If true, use querystring to stringify and parse querystrings, otherwise use qs (default: false). Set this option to true if you need arrays to be serialized as foo=bar&foo=baz instead of the default foo[0]=bar&foo[1]=baz.

  • body - entity body for PATCH, POST and PUT requests. Must be a Buffer or String, unless json is true. If json is true, then body must be a JSON-serializable object.
  • sourceField - A field in the body or form to add the source files' contents to. Can contain full stops to separate object path. IE "form.js_code".
  • form - When passed an object, this sets body to a querystring representation of value, and adds Content-type: application/x-www-form-urlencoded; charset=utf-8 header. When passed no options, a FormData instance is returned (and is piped to request). For multipart/form-data install the optional dependency npm i form-data.
  • formData - Data to pass for a multipart/form-data
  • multipart - array of objects which contain their own headers and body attributes. Sends a multipart/related request.
    • Alternatively you can pass in an object {chunked: false, data: []} where chunked is used to specify whether the request is sent in chunked transfer encoding In non-chunked requests, data items with body streams are not allowed.
  • reambleCRLF - append a newline/CRLF before the boundary of your multipart/form-data request.
  • postambleCRLF - append a newline/CRLF at the end of the boundary of your multipart/form-data request.
  • json - sets body but to JSON representation of value and adds Content-type: application/json header. Additionally, parses the response body as json. Must be buffer or string or a function returning a string or buffer.
  • jsonReviver - a reviver function that will be passed to JSON.parse() when parsing a JSON response body.

  • auth - A hash containing values user || username, password || pass, and sendImmediately (optional). See more info here.
  • oauth - Options for OAuth HMAC-SHA1 signing. See more info here. The oauth-sign module must be installed to use this functionality.
  • hawk - Options for Hawk signing. The credentials key must contain the necessary signing info, see hawk docs for details. You will need to install the hawk module to use this functionality.
  • aws - object containing AWS signing information. Should have the properties key, secret. Also requires the property bucket, unless you’re specifying your bucket as part of the path, or the request doesn’t use a bucket (i.e. GET Services)
  • httpSignature - Options for the HTTP Signature Scheme using Joyent's library. The http-signature module must be installed and the keyId and key properties must be specified.

  • followRedirect - follow HTTP 3xx responses as redirects. defaults to true.
  • followAllRedirects - follow non-GET HTTP 3xx responses as redirects. defaults to false.
  • maxRedirects - the maximum number of redirects to follow, defaults to 10.
  • removeRefererHeader - removes the referer header when a redirect happens (default: false). Note: if true, referer header set in the initial request is preserved during redirect chain.

  • encoding - Encoding to be used on setEncoding of response data. If set to null, the body is returned as a Buffer.
  • gzip - If true, add an Accept-Encoding header to request compressed content encodings from the server (if not already present) and decode supported content encodings in the response. Note: Automatic decoding of the response content is performed on the body data returned through request (both through the request stream and passed to the callback function) but is not performed on the response stream (available from the response event) which is the unmodified http.IncomingMessage object which may contain compressed data. See example below.
  • jar - If true, remember cookies for future use (or define your custom cookie jar; see mikeal/request's examples). To get either of these functions working you'll need to install an optional dependecy npm i tough-cookie.

  • agent - http(s).Agent instance to use
  • agentClass - alternatively specify your agent's class name
  • agentOptions - and pass its options. Note: for HTTPS see tls API doc for TLS/SSL options and the request.js docs
  • pool - An object describing which agents to use for the request. If this option is omitted the request will use the global agent (as long as your options allow for it). Otherwise, request will search the pool for your custom agent. If no custom agent is found, a new agent will be created and added to the pool. Note: pool is used only when the agent option is not specified.
    • A maxSockets property can also be provided on the pool object to set the max number of sockets for all agents created (ex: pool: {maxSockets: Infinity}).
    • Note that if you are sending multiple requests in a loop and creating multiple new pool objects, maxSockets will not work as intended. To work around this, either use request.defaults with your pool options or create the pool object with the maxSockets property outside of the loop.
  • timeout - Integer containing the number of milliseconds to wait for a request to respond before aborting the request

  • localAddress - Local interface to bind for network connections.
  • proxy - An HTTP proxy to be used. Support proxy Auth with Basic Auth the same way it's supported with the url parameter by embedding the auth info in the uri.
  • strictSSL - Set to true to require that SSL certificates be valid. Note: to use your own certificate authority, you need to specify an agent that was created with that ca as an option.
  • tunnel - controls the behavior of HTTP CONNECT tunneling as follows:
    • undefined (default) - true if the destination is https, false otherwise
    • true - always tunnel to the destination by making a CONNECT request to the proxy
    • false - request the destination as a GET request.
  • proxyHeaderWhiteList - A whitelist of headers to send to a tunneling proxy.
  • proxyHeaderExclusiveList - A whitelist of headers to send exclusively to a tunneling proxy and not to destination. There are a few optional dependencies you'll need to install to get certain functionality from this module.

  • time - If true, the request-response cycle (including all redirects) is timed at millisecond resolution, and the result provided on the response's elapsedTime property.

  • har - A HAR 1.2 Request Object, will be processed from HAR format into options overwriting matching values (see the HAR 1.2 section for details)

  • if you wish to use cookies (jar) install tough-cookie

  • if you want to pass multipart/form-data you'll need to install form-data

  • if you wish to tunnel your requests install tunnel-agent

  • if you want to use Joyent's HTTP Signature Scheme, install http-signature

  • if you require oauth signing, you need to install the oauth-sign module

  • to use Hawk signing, you must use the hawk module

  • if you want to use AWS signing, you must install the aws-sign2 module

Google Closure

In this example, we're using google's closure service to compile a JS file.

grunt.initConfig({
  http: {
    closure: {
      options: {
        url: 'http://closure-compiler.appspot.com/compile',
        method: 'POST',
        form: {
          output_info: 'compiled_code',
          output_format: 'text',
          compilation_level: 'SIMPLE_OPTIMIZATIONS',
          warning_level: 'default'
        },
        sourceField: 'form.js_code'
      },
      files: {
        'build/main.js': 'src/main.js'
      }
    }
  }
});

multipart/form-data

In this example we're going to access the form data object directly to add an image to the POST fields.

Note, you need to install the form-data package before you can use this method.

var path = require('path');

grunt.initConfig({
  http: {
    multipart: {
      options: {
        url: 'http://posttestserver.com/post.php?dir=grunt-http',
        method: 'POST',
        form: function (form) {
          form.append('file', grunt.file.read(path.join(__dirname, 'images', 'pic.png')));
        }
      }
    }
  }
});

Multiple target

This is just a reminder of how to use Grunt's multiple task syntax which is also available in grunt-http. If you want to specify more than one task you can list them like so:

grunt.initConfig({
  http: {
    myFirstService: {
      options: {
        url: 'http://my-first-url.com'
      }
    },
    mySecondService: {
      options: {
        url: 'http://my-second-url.com'
      }
    },
    myThirdService: {
      options: {
        url: 'http://my-third-url.com'
      }
    }
  }
});

With the above configuration you can call all 3 services with one command grunt http. Or, if you just want to call one; grunt http:mySecondService.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

grunt-http's People

Contributors

andyroyle avatar dbo avatar greenkeeper[bot] avatar greenkeeperio-bot avatar johngeorgewright avatar kozmic avatar martindoyleuk avatar maxcutler avatar pdehaan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

grunt-http's Issues

Version 10 of node.js has been released

Version 10 of Node.js (code name Dubnium) has been released! 🎊

To see what happens to your code in Node.js 10, Greenkeeper has created a branch with the following changes:

  • Replaced the old Node.js version in your .nvmrc with the new one
  • The new Node.js version is in-range for the engines in 1 of your package.json files, so that was left alone

If you’re interested in upgrading this repo to Node.js 10, you can open a PR with these changes. Please note that this issue is just intended as a friendly reminder and the PR as a possible starting point for getting your code running on Node.js 10.

More information on this issue

Greenkeeper has checked the engines key in any package.json file, the .nvmrc file, and the .travis.yml file, if present.

  • engines was only updated if it defined a single version, not a range.
  • .nvmrc was updated to Node.js 10
  • .travis.yml was only changed if there was a root-level node_js that didn’t already include Node.js 10, such as node or lts/*. In this case, the new version was appended to the list. We didn’t touch job or matrix configurations because these tend to be quite specific and complex, and it’s difficult to infer what the intentions were.

For many simpler .travis.yml configurations, this PR should suffice as-is, but depending on what you’re doing it may require additional work or may not be applicable at all. We’re also aware that you may have good reasons to not update to Node.js 10, which is why this was sent as an issue and not a pull request. Feel free to delete it without comment, I’m a humble robot and won’t feel rejected 🤖


FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Fatal error: tunneling socket could not be established, cause=Parse Error

am getting "Fatal error: tunneling socket could not be established, cause=Parse Error" while accessing internal corporate web services & verified with/without npm proxy and system proxy. still getting the same error but its working fine with others machines on same network. please help me to solve this problem.

machine: windows 7
grunt-cli v0.1.13
grunt v0.4.5
npm -v 2.14.7
node -v v4.2.2

Multiple services with multipart/form-data

Hello,

Is it possible to have multiple service endpoints when using the multipart/form-data, I can see that there is another one who have filed an issue:

grunt-http can't support multiple http requests?
#10

where you show how it is possible to have multiple service endpoints when not using multipart/form-data.

Is it possible - if yes how to? :)

Callback won´t be executed, if response doesn´t contain a body.

If there´s provided a callback function via options, it will only be executed, if the response contains a body. But there are status codes which may not or even must not contain a message body (e.g. 204, 401, ...).
The callback function should also be executed, if the body is empty.

'body' has no effect

Version 1.4.1 is being used...

The Following snippet does work perfectly fine, but the 'body' part does not cause the module to send the data (yes, the file ./dist/usher.min.js exists):

http: {
  local: {
    options: {
      url: 'http://0.0.0.0:8765/root/js',
      method: 'POST',
      headers: {
        'Content-Type': 'text/javascript'
      },
      body: function () {
        return grunt.file.read(path.join(__dirname, 'dist', 'usher.min.js'));
      },
      encoding: 'utf8',
      auth: {
        user: '<%= httpauth.HTTPUser %>',
        pass: '<%= httpauth.HTTPPass %>'
      }
    }
  }
}

Also, if I substitute the 'body' func with "body: 'test', ", the server still recieves an empty body.

An in-range update of http-signature is breaking the build 🚨

The optionalDependency http-signature was updated from 1.2.0 to 1.3.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

http-signature is a optionalDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 3 commits.

  • c8e8805 Bump version due to Signature header support (#83)
  • 2424e96 Updating sshpk version (#86)
  • 276bd13 Add Signature header support. (#83)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of sinon is breaking the build 🚨

The devDependency sinon was updated from 7.3.2 to 7.4.1.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

sinon is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 44 commits.

  • 671330c Update docs/changelog.md and set new release id in docs/_config.yml
  • dce58d4 Add release documentation for v7.4.1
  • 56b00a7 7.4.1
  • 7637eef Update CHANGELOG.md and AUTHORS for new release
  • 9b61f26 Update nise and lolex (minor versions)
  • e4f9ad4 Make eslint happy
  • a9fedea npm audit
  • 9a34598 Upgrade mocha to v6
  • 55231d5 Update @babel/core and babel-plugin-istanbul
  • 33f0163 Update @sinonjs/referee and fix deprecations
  • 6caa89b Update @sinonjs/samsam
  • 0bd5066 Update puppeteer and mochify
  • 985a827 Merge pull request #2063 from dustinfarris/pass-through-class
  • 85d3f2a add docs for callThroughWithNew
  • 8e00c22 use slice to convert arguments object into an array

There are 44 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of form-data is breaking the build 🚨

The devDependency form-data was updated from 2.3.2 to 2.3.3.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

form-data is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

how to execute callback?

how to execute callback function after http request complete?

I have to say, grunt-http document & example is not too much.

Error: Cannot find module 'form-data'

2 optional dependencies fail, which may or may not be ok. But I'm not able to use the plugin, getting a form-data error.

2 failing deps:

  • npm WARN optional dep failed, continuing hawk@~2.3.0
  • npm WARN optional dep failed, continuing [email protected]

An in-range update of grunt-contrib-nodeunit is breaking the build 🚨

The devDependency grunt-contrib-nodeunit was updated from 2.0.0 to 2.1.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

grunt-contrib-nodeunit is a devDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 3 commits.

  • d370717 v2.1.0
  • 02089d5 Clean up and update to latest contrib (#58)
  • deca505 Upgrade nodeunit-x from 0.12.1 to 0.13.0 and tap from ^12.0.1 to ^14.10.6 (#57)

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Issue in http index task

After run http:index I get this error:

Running "http:index" (http) task
Fatal error: 500 Error: connect ECONNREFUSED<br> &nbsp; &nbsp;at exports._errnoException (util.js:746:11)<br> &nbsp; &nbsp;at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)

File http.js:

module.exports = {
  index: {
    options: {
      url: 'http://<%= connect.fetch.options.hostname %>:<%= connect.fetch.options.port %>/'
    },
    dest: '.tmp/index.html'
  }
};

Any Idea about this issue? Thanks!

OSX 10.10

Unable to execute multiple HTTP Delete commands

I have a task that does the following:

  • Reads a collection using an HTTP GET
  • For each collection member, if it satisfies a certain criteria, issues an HTTP DELETE to remove.

The collection is read correctly and the first HTTP DELETE is also executed correctly. Then no additional HTTP DELETE commands are send. It appears that the first one never closes.

I included the code. The task in question is reset=images. Thanks in advance for your help!

Object.size = function(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};

module.exports = function(grunt) {
grunt.initConfig({
debug: {
options: {
open: false // do not open node-inspector in Chrome automatically
}
},
'read-person': {
options: {
id: '348920c8-fd34-40a8-98bf-6a412600c20c'
}
},
'read-people': {
options: {
id: '25d3ecdd-00e4-4e4c-98b1-35b487fd1cde'
}
},
'read-project': {
options: {
id: '25d3ecdd-00e4-4e4c-98b1-35b487fd1cde'
}
},
'reset-image': {
options: {
id: '503a7a1d-21a2-44b3-81f5-2e9f2b4b151f'
}
},
'config': grunt.file.readJSON('config.json'),
'personNames': grunt.file.readJSON('personNames.json'),
'personTitles': grunt.file.readJSON('personTitles.json'),
'companyNames': grunt.file.readJSON('companyNames.json'),
'projectNames': grunt.file.readJSON('projectNames.json')
});

// This property is required by all tasks
grunt.config.requires('config');
grunt.config.requires('personNames');
grunt.config.requires('personTitles');
grunt.config.requires('companyNames');
grunt.config.requires('projectNames');

var config = grunt.config.get('config'),
    personNames = grunt.config.get('personNames'),
    personTitles = grunt.config.get('personTitles'),
    companyNames = grunt.config.get('companyNames'),
    projectNames = grunt.config.get('projectNames');

grunt.loadNpmTasks('grunt-debug-task');
grunt.registerTask('reset-images', 'Reset Images', function(server){
    grunt.log.writeln('MD-INIT: Reset Images Host: ' + getHost(server, config));

    var $this = this,
        done = this.async(),
        http = require('http'),
        requestOptions = {
            //http://integration.markodojo.com/markodojo_solution/rest/person
            host: getHost(server, config),
            path: getPath(config, 'person', null),
            port: 80,
            method: 'GET'
        },
        imageDeleteHandler = function(bufferJson) {
            grunt.log.writeln("Deleted image for: " + bufferJson["id"])
        },
        readPeopleHandler = function  (bufferJson) {
            // show images that have and have not images
            var bufferJsonLength = bufferJson.length;
            for(var i=0; i<bufferJsonLength; i++) {
                var id = bufferJson[i]["id"];
                var name = bufferJson[i]["name"];
                var image = bufferJson[i]["image"];
                if (Object.size(image) != 4) {
                    grunt.log.writeln('MD-INIT: Reset Images Path: ' + getPath(config, 'image/' + image.id, null));
                    requestOptions = {
                        //http://integration.markodojo.com/markodojo_solution/rest/person
                        host: getHost(server, config),
                        path: getPath(config, 'image/' + image.id, null),
                        port: 80,
                        method: 'DELETE'
                    };
                    httpCmd(requestOptions, $this.async(), imageDeleteHandler);
                }
            }
        };
    httpCmd(requestOptions, done, readPeopleHandler);
});
 var getHost = function (server, config) {
    var host;

    if (server == null) server = config.server;
    host = server + "." + config.domain;

    return host;
};
var getPath = function (config, resource, taskProperty) {
    var path;

    path = '/';
    path += config.path;;
    path += '/' ;
    path += resource;
    if (taskProperty != null) {
        path += '/';
        path += grunt.config.get(taskProperty);
    }

    return path;
}
var httpCmd = function (requestOptions, done, callback) {
    grunt.log.writeln('Running request function');
    // https://www.npmjs.org/package/grunt-http
    var http = require('http') ,
        request = http.request(requestOptions, function(response) {
            var bufferJoined = '';
            //grunt.log.writeln('request');
            response.on('data', function(data){
                bufferJoined += data;
            });
            response.on('end', function() {
                grunt.log.writeln("Response status: " + response.statusCode);
                //grunt.log.writeln(bufferJoined);
                var bufferJson = JSON.parse(bufferJoined);
                done();
                callback(bufferJson)
            });
            response.on('finish', function(){
                callback(bufferJson);
            });
            response.on('close', function(){
                callback(bufferJson);
            });
        });
    if (requestOptions.method == "POST") {
        request.write(requestOptions.json);
    }
    request.end();
};
function getRandomArrayElement (array) {
    var arrayLength = array.length;
    var randomIndex = Math.floor(Math.random() * arrayLength);
    var  randomElement = array[randomIndex];
    return randomElement;
}

};

Setting body in runtime

Hello,

I would like to set the body (json, actually) of a POST request in runtime without using multipart forms. This seems to be impossible because body must be a constant and is set via options which is interpreted before tasks get to run.

Am I missing something obvious...? :)

If not, it would seem easy enough to implement in tasks/http.js:call:

if (typeof(options.body) === 'function') options.body = options.body();
if (typeof(options.json) === 'function') options.json = options.json();

Example in README not working

Hi,

I just want to grab a file via http and save it for further use in my Grunt task. I tried your example:

grunt.initConfig({
  http: {
    your_service: {
      options: {
        url: 'your/url.com',
      },
      dest: 'optional/file/to/save/response'
    }
  }
})

but got the following error: Cannot call method 'map' of undefined. (See https://github.com/johngeorgewright/grunt-http/blob/master/tasks/http.js#L63).

To get it working for now, I'm providing an empty src-array, which is – of cause – not ideal:

grunt.initConfig({
  http: {
    your_service: {
      options: {
        url: 'your/url.com',
      },
      src: [],
      dest: 'optional/file/to/save/response'
    }
  }
})

grunt-http method throwing "ESOCKETTIMEDOUT" error for some API

I'm using grunt-http to fetch some data during runtime.
On a some API calling I observe "ESOCKETTIMEDOUT" error as follows:

image

Now I observe grunt-http have dependency on request, which is deprecated now.
Also checked request.js in node_modules and observer the error as follows:
MicrosoftTeams-image

Check through postman it's working fine and when I'm configured same data through grunt it's not working. It was working previously, but from october,2023 I observe the issue.

Can you give me any suggestion, what is exact issue and how to resolve this?

An in-range update of tough-cookie is breaking the build 🚨

The optionalDependency tough-cookie was updated from 2.4.3 to 2.5.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

tough-cookie is a optionalDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 18 commits.

  • 7c1fdf1 2.5.0
  • 9ff4ba5 Qualify the store.removeAllCookies documentation
  • 1855bf3 Additional documentation for removeAllCookies
  • 5cc9bd2 Extract tests, cover multiple error path
  • 28f0808 Only call removeAllCookies if actually implemented
  • 62802ef remove all cookies from cookie jar at once (#115)
  • 8783d46 Remove left-over mention of MPL from README
  • 8302ebc Merge pull request #121 from salesforce/punycode-2.1
  • d6ea115 Merge pull request #120 from salesforce/no-package-lock
  • b897b49 Merge pull request #119 from salesforce/inline-version
  • 31ad267 Upgrade to punycode 2.1
  • 550f951 Purposefully don't lock dependencies
  • 3d8570c 2.4.4-1
  • 4cbd182 Merge pull request #118 from salesforce/deps-2018jul30
  • 55a41c1 inline package version using genversion

There are 18 commits in total.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Failing tests

Tried running the tests but kept failing when running "grunt default":

Running "jshint:all" (jshint) task
>> 3 files lint free.

Running "clean:tests" (clean) task
Cleaning "tmp"...OK

Running "http:basic" (http) task
>> 200

Running "http:closure" (http) task
>> 200

Running "http:bodyAtRuntime" (http) task
>> 200

Running "http:ignoreErrors" (http) task
>> 0

Running "http:multipart" (http) task
>> 200

Running "http:callback" (http) task
>> 200

Running "nodeunit:tests" (nodeunit) task
Testing http_test.jsFF...
>> http - it can fetch something just using a destination
>> Message: different content to what's been downloaded
>> Error: '<!DOCTYPE html><html><head><meta encoding="utf8"><meta name="robots" content="index, follow"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>John Wright | Web Developer | SEO Webmaster |
UX Designer</title><link rel="stylesheet" href="/stylesheets/base.css"><script>document.getElementsByTagName(\'html\')[0].className+=\'js-enabled js-loading\'\n</script></head><body><ul class="ah"><li><a href="#body">Skip to co
ntent</a></li></ul><div class="navbar navbar-fixed-top navbar-inverse"><div class="navbar-inner"><div class="container"><a data-toggle="collapse" data-target=".nav-collapse" href="#main-nav" class="btn btn-navbar">Menu</a><nav
id="main-nav"><a href="/" class="brand"><abbr title="John Wright"><span class="jw-logo-tag-delim">&lt;</span>j<span class="jw-logo-tag-delim">&gt;&lt;/</span>w<span class="jw-logo-tag-delim">&gt;</span></abbr></a><div class="na
v-collapse collapse"><ul class="nav pull-right"><!--mixin navItem(\'/professional-background\', \'Professional Background\')--><li class=""><a href="/portfolio">Portfolio</a></li><li class=""><a href="/technologies">Technologie
s</a></li><li class=""><a href="/prices">Prices</a></li><li class=""><a href="https://github.com/johngeorgewright">Find me on GitHub</a></li><li class=""><a href="/docs/CV.pdf">Download CV</a></li><li class=""><a href="mailto:j
[email protected]">Contact</a></li></ul></div></nav></div></div></div><div id="body" class="container"><article><header><div class="media header-media"><img src="http://www.gravatar.com/avatar/2ad6ebafae880b4bedcadb214
c558caa.png" alt="Wee Mee" class="img-rounded pull-left"><div class="media-body"><h1>Web Developer</h1><p class="lead">Specialising in profitable, commercial and communication solutions for you unique business requirements.</p>
</div></div></header><p>Hi there,</p><p>My name is John Wright and I\'m a freelance Web Developer. I\'ve had over 5 years experience with web sites large and small. I\'m senior in both backend and frontend development and I\'m
highly skilled in search engine optimisation helping you get the customers to your site.</p><p>If you\'d like to hire me, have any enquiries or just fancy a chat, please don\'t hesitate to&nbsp;<a href="mailto:johngeorge.wright
@gmail.com">contact me</a></p></article></div><script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script src="/javascripts/bootstrap-min.js"></script><script>jQuery(function(){jQuery(\'html\').add
Class(\'js-loaded\').removeClass(\'js-loading\')})\n</script></body></html>' == '<!DOCTYPE html><html><head><meta encoding="utf8"><meta name="robots" content="index, follow"><meta name="viewport" content="width=device-width, in
itial-scale=1.0"><title>John Wright | Web Developer | SEO Webmaster | UX Designer</title><link rel="stylesheet" href="/stylesheets/base.css"><script>document.getElementsByTagName(\'html\')[0].className+=\'js-enabled js-loading\
'\r\n</script></head><body><ul class="ah"><li><a href="#body">Skip to content</a></li></ul><div class="navbar navbar-fixed-top navbar-inverse"><div class="navbar-inner"><div class="container"><a data-toggle="collapse" data-targ
et=".nav-collapse" href="#main-nav" class="btn btn-navbar">Menu</a><nav id="main-nav"><a href="/" class="brand"><abbr title="John Wright"><span class="jw-logo-tag-delim">&lt;</span>j<span class="jw-logo-tag-delim">&gt;&lt;/</sp
an>w<span class="jw-logo-tag-delim">&gt;</span></abbr></a><div class="nav-collapse collapse"><ul class="nav pull-right"><!--mixin navItem(\'/professional-background\', \'Professional Background\')--><li class=""><a href="/portf
olio">Portfolio</a></li><li class=""><a href="/technologies">Technologies</a></li><li class=""><a href="/prices">Prices</a></li><li class=""><a href="https://github.com/johngeorgewright">Find me on GitHub</a></li><li class=""><
a href="/docs/CV.pdf">Download CV</a></li><li class=""><a href="mailto:[email protected]">Contact</a></li></ul></div></nav></div></div></div><div id="body" class="container"><article><header><div class="media header-m
edia"><img src="http://www.gravatar.com/avatar/2ad6ebafae880b4bedcadb214c558caa.png" alt="Wee Mee" class="img-rounded pull-left"><div class="media-body"><h1>Web Developer</h1><p class="lead">Specialising in profitable, commerci
al and communication solutions for you unique business requirements.</p></div></div></header><p>Hi there,</p><p>My name is John Wright and I\'m a freelance Web Developer. I\'ve had over 5 years experience with web sites large a
nd small. I\'m senior in both backend and frontend development and I\'m highly skilled in search engine optimisation helping you get the customers to your site.</p><p>If you\'d like to hire me, have any enquiries or just fancy
a chat, please don\'t hesitate to&nbsp;<a href="mailto:[email protected]">contact me</a></p></article></div><script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script><script src="/javascripts/b
ootstrap-min.js"></script><script>jQuery(function(){jQuery(\'html\').addClass(\'js-loaded\').removeClass(\'js-loading\')})\r\n</script></body></html>'
>> at Object.exports.http.it can fetch something just using a destination (test\http_test.js:9:10)

>> http - it should have downloaded compiled code from the closure service
>> Message: different content to what's been downloaded
>> Error: 'function hello(a){alert("Hello, "+a)}hello("New user");\n' == 'function hello(a){alert("Hello, "+a)}hello("New user");\r\n'
>> at Object.exports.http.it should have downloaded compiled code from the closure service (test\http_test.js:19:10)

Warning: 2/6 assertions failed (11ms) Use --force to continue.

Aborted due to warnings.

An in-range update of form-data is breaking the build 🚨

The optionalDependency form-data was updated from 2.3.3 to 2.4.0.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

form-data is a optionalDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build could not complete due to an error (Details).

Commits

The new version differs by 7 commits.

  • 8512eef Updated build/test/badges
  • 0f8da06 Bumped version 2.4.0
  • ff085f3 Merge pull request #419 from JBtje/add-getBuffer
  • 953a2af Merge pull request #425 from byr-gdp/feature/add-axios-integration-doc
  • 4e3954d docs(readme): remove unnecessary bracket
  • b729a7e docs(readme): add axios integration document
  • e90a76a Updated: Certificate

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

An in-range update of hawk is breaking the build 🚨

The optionalDependency hawk was updated from 7.0.7 to 7.0.9.

🚨 View failing branch.

This version is covered by your current version range and after updating it in your project the build failed.

hawk is a optionalDependency of this project. It might not break your production code or affect downstream projects, but probably breaks your build or test tools, which may prevent deploying or publishing.

Status Details
  • continuous-integration/travis-ci/push: The Travis CI build failed (Details).

Commits

The new version differs by 8 commits.

See the full diff

FAQ and help

There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper Bot 🌴

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.