New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bilder-aws

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bilder-aws - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3

.jshintrc

3

package.json
{
"name": "bilder-aws",
"version": "0.1.2",
"version": "0.1.3",
"description": "aws tasks for bilder",

@@ -19,3 +19,2 @@ "scripts": {

"knox": "^0.8.9",
"debounce": "0.0.3",
"mime": "^1.2.11",

@@ -22,0 +21,0 @@ "tmp": "0.0.23",

@@ -1,10 +0,37 @@

module.exports = function(grunt, options) {
module.exports = function (grunt) {
'use strict';
var async = require('async');
var download = require('../lib/downloadFile');
var defaults = {
'destDir': 'build'
};
function S3DownloadTask () {
var that = this;
var options = that.options(defaults);
var done = that.async();
// init the downloader
download.init({
'key': options.key,
'secret': options.secret,
'bucket': options.bucket
});
var files = that.data.src;
var fn = function (file, callback) {
download(options, file, function () {
grunt.log.ok('\u2713'.green, file);
process.nextTick(callback);
});
};
async.forEachLimit(files, 4, fn, done);
}
grunt.registerTask('bilder/download', 'Get objects from a s3 bucket', S3DownloadTask);
grunt.registerMultiTask('bilder/download',
'Get objects from a s3 bucket', S3DownloadTask);
};

@@ -7,91 +7,12 @@ module.exports = function (grunt) {

var path = require('path');
var crypto = require('crypto');
var zlib = require('zlib');
var async = require('async');
var mime = require('mime');
var knox = require('knox');
var debounce = require('debounce');
var tmp = require('tmp');
tmp.setGracefulCleanup();
var defaults = require('../lib/defaults');
var hashFile = require('../lib/hashFile');
var gzipFile = require('../lib/gzipFile');
var upload = require('../lib/uploadFile');
var cache;
var cacheFile = path.resolve(process.env.HOME, '.s3.cache.json');
try {
cache = require(cacheFile);
} catch (e) {
cache = {};
}
var defaults = {
'throttle': 10,
'hash': true,
'gzip': false,
'baseDir': 'public',
'buildDir': 'build',
'prefix': ''
};
var encodingOptions = { 'encoding': 'utf8' };
var updateCache = debounce(function (key) {
if (key) {
cache[key] = true;
}
var data = JSON.stringify(cache, null, 2);
fs.writeFileSync(cacheFile, data, encodingOptions);
}, 50, true);
function hashFile (local, callback) {
var shasum = crypto.createHash('sha1');
var stream = fs.ReadStream(local);
stream.on('data', shasum.update.bind(shasum));
stream.on('end', function() {
callback(null, shasum.digest('hex'));
});
}
function gzipFile (local, callback) {
tmp.file(function (err, gzipped) {
var gzip = zlib.createGzip();
var inStream = fs.ReadStream(local);
var outStream = fs.WriteStream(gzipped);
inStream.pipe(gzip).pipe(outStream);
inStream.on('end', function() {
setTimeout(function () {
callback(null, gzipped);
}, 100);
});
});
}
var uploader;
function upload (name, local, remote, isGzip, callback) {
var headers = {
'Content-Type': mime.lookup(name),
'Content-Length': fs.statSync(local).size,
'x-amz-acl': 'public-read',
'Access-Control-Allow-Origin': '*'
};
if (isGzip) {
headers['Content-Encoding'] = 'gzip';
}
var stream = fs.ReadStream(local);
uploader.putStream(stream, remote, headers, function (err, response) {
if (err || response.statusCode !== 200) {
// TODO: add re-trial
grunt.log.error('\u2717'.red, name);
} else {
grunt.log.ok('\u2713'.green, name);
updateCache(remote);
process.nextTick(function () {
callback(null, remote);
});
}
});
}
function processFile (options, file, callback) {

@@ -110,2 +31,11 @@ // get the absolute path

function done (err, remote) {
if (err) {
grunt.log.error('\u2717'.red, name);
} else {
grunt.log.ok('\u2713'.green, name);
}
callback(null, remote);
}
var prefix = options.prefix;

@@ -117,3 +47,3 @@ var args = [

!!options.gzip,
callback
done
];

@@ -128,3 +58,3 @@

// skip upload, if already uploaded
if (options.hash && cache[remote]) {
if (options.hash && upload.cache[remote]) {
grunt.log.debug('\u25C8'.yellow, name);

@@ -159,6 +89,4 @@ return callback(null, remote);

var fn = processFile.bind(null, options);
// init the uploader
uploader = knox.createClient({
upload.init({
'key': options.key,

@@ -170,10 +98,16 @@ 'secret': options.secret,

var max = options.throttle;
var fn = processFile.bind(null, options);
async.mapLimit(files, max, fn, function (err, remotes) {
var map = {};
remotes.forEach(function (remote, index) {
map[files[index]] = remote;
});
var mapFile = path.resolve(options.buildDir, that.target + '.json');
fs.writeFileSync(mapFile, JSON.stringify(map, null, 2), encodingOptions);
// save the hashes
if (options.hash) {
var map = {};
remotes.forEach(function (remote, index) {
map[files[index]] = remote;
});
var mapFile = path.resolve(options.buildDir, that.target + '.json');
var data = JSON.stringify(map, null, 2);
fs.writeFileSync(mapFile, data, encodingOptions);
}
setTimeout(done, 200);

@@ -183,3 +117,4 @@ });

grunt.registerMultiTask('bilder/upload', 'Upload to a S3 bucket', S3UploadTask);
grunt.registerMultiTask('bilder/upload',
'Upload to a S3 bucket', S3UploadTask);
};
SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc