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

ngs3upload

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ngs3upload - npm Package Compare versions

Comparing version 0.0.5 to 0.1.1

src/ng-s3upload/services/s3-config.js

4

bower.json
{
"name": "ng-s3upload",
"version": "0.0.5",
"version": "0.1.1",
"main": "build/ng-s3upload.js",

@@ -13,2 +13,2 @@ "dependencies": {

}
}
}

@@ -29,3 +29,6 @@ (function(window, document) {

]);
angular.module('ngS3upload.services', []).
angular.module('ngS3upload.config', []).
constant('ngS3Config', {
theme: 'bootstrap2'
});angular.module('ngS3upload.services', []).
service('S3Uploader', ['$http', '$q', '$window', function ($http, $q, $window) {

@@ -143,3 +146,3 @@ this.uploads = 0;

angular.module('ngS3upload.directives', []).
directive('s3Upload', ['$parse', 'S3Uploader', function ($parse, S3Uploader) {
directive('s3Upload', ['$parse', 'S3Uploader', 'ngS3Config', function ($parse, S3Uploader, ngS3Config) {
return {

@@ -178,3 +181,4 @@ restrict: 'AC',

folder: '',
enableValidation: true
enableValidation: true,
targetFilename: null
}, opts);

@@ -206,3 +210,3 @@ var bucket = scope.$eval(attrs.bucket);

var s3Uri = 'https://' + bucket + '.s3.amazonaws.com/';
var key = opts.folder + (new Date()).getTime() + '-' + S3Uploader.randomString(16) + "." + ext;
var key = opts.targetFilename ? scope.$eval(opts.targetFilename) : opts.folder + (new Date()).getTime() + '-' + S3Uploader.randomString(16) + "." + ext;
S3Uploader.upload(scope,

@@ -256,12 +260,37 @@ s3Uri,

},
template: '<div class="upload-wrap">' +
'<button class="btn btn-primary" type="button"><span ng-if="!filename">Choose file</span><span ng-if="filename">Replace file</span></button>' +
'<a ng-href="{{ filename }}" target="_blank" class="" ng-if="filename" > Stored file </a>' +
'<div class="progress progress-striped" ng-class="{active: uploading}" ng-show="attempt" style="margin-top: 10px">' +
'<div class="bar" style="width: {{ progress }}%;" ng-class="barClass()"></div>' +
'</div>' +
'<input type="file" style="display: none"/>' +
'</div>'
templateUrl: function(elm, attrs) {
var theme = attrs.theme || ngS3Config.theme;
return 'theme/' + theme + '.html';
}
};
}]);
angular.module('ngS3upload').run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('theme/bootstrap2.html',
"<div class=\"upload-wrap\">\n" +
" <button class=\"btn btn-primary\" type=\"button\"><span ng-if=\"!filename\">Choose file</span><span ng-if=\"filename\">Replace file</span></button>\n" +
" <a ng-href=\"{{ filename }}\" target=\"_blank\" class=\"\" ng-if=\"filename\" > Stored file </a>\n" +
" <div class=\"progress progress-striped\" ng-class=\"{active: uploading}\" ng-show=\"attempt\" style=\"margin-top: 10px\">\n" +
" <div class=\"bar\" style=\"width: {{ progress }}%;\" ng-class=\"barClass()\"></div>\n" +
" </div>\n" +
" <input type=\"file\" style=\"display: none\"/>\n" +
"</div>"
);
$templateCache.put('theme/bootstrap3.html',
"<div class=\"upload-wrap\">\n" +
" <button class=\"btn btn-primary\" type=\"button\"><span ng-if=\"!filename\">Choose file</span><span ng-if=\"filename\">Replace file</span></button>\n" +
" <a ng-href=\"{{ filename }}\" target=\"_blank\" class=\"\" ng-if=\"filename\" > Stored file </a>\n" +
" <div class=\"progress\">\n" +
" <div class=\"progress-bar progress-bar-striped\" ng-class=\"{active: uploading}\" role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" style=\"width: {{ progress }}%; margin-top: 10px\" ng-class=\"barClass()\">\n" +
" <span class=\"sr-only\">{{progress}}% Complete</span>\n" +
" </div>\n" +
" </div>\n" +
" <input type=\"file\" style=\"display: none\"/>\n" +
"</div>"
);
}]);
})(window, document);

@@ -1,2 +0,2 @@

/*! ngs3upload 28-09-2014 */
!function(){angular.module("ngS3upload.config",[]).value("ngS3upload.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngS3upload.directives",[]),angular.module("ngS3upload",["ngS3upload.config","ngS3upload.directives","ngS3upload.services","ngSanitize"]),angular.module("ngS3upload.services",[]).service("S3Uploader",["$http","$q","$window",function(a,b){this.uploads=0;var c=this;this.getUploadOptions=function(c){var d=b.defer();return a.get(c).success(function(a){d.resolve(a)}).error(function(a){d.reject(a)}),d.promise},this.randomString=function(a){for(var b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",c="",d=a;d>0;--d)c+=b[Math.round(Math.random()*(b.length-1))];return c},this.upload=function(a,d,e,f,g,h,i,j,k){function l(b){a.$apply(function(){a.progress=b.lengthComputable?Math.round(100*b.loaded/b.total):"unable to compute";var c={type:"progress",value:a.progress};a.$emit("s3upload:progress",c),"function"==typeof p.notify&&p.notify(c)})}function m(b){var f=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,204===f.status?(a.success=!0,p.resolve(f),a.$emit("s3upload:success",f,{path:d+e})):(a.success=!1,p.reject(f),a.$emit("s3upload:error",f))})}function n(b){var d=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,a.success=!1,p.reject(d),a.$emit("s3upload:error",d)})}function o(b){var d=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,a.success=!1,p.reject(d),a.$emit("s3upload:abort",d)})}var p=b.defer();a.attempt=!0;var q=new FormData;q.append("key",e),q.append("acl",f),q.append("Content-Type",k.type),q.append("AWSAccessKeyId",h),q.append("policy",i),q.append("signature",j),q.append("file",k);var r=new XMLHttpRequest;return r.upload.addEventListener("progress",l,!1),r.addEventListener("load",m,!1),r.addEventListener("error",n,!1),r.addEventListener("abort",o,!1),a.$emit("s3upload:start",r),a.uploading=!0,this.uploads++,r.open("POST",d,!0),r.send(q),p.promise},this.isUploading=function(){return this.uploads>0}}]),angular.module("ngS3upload.directives",[]).directive("s3Upload",["$parse","S3Uploader",function(a,b){return{restrict:"AC",require:"?ngModel",replace:!0,transclude:!1,scope:!0,controller:["$scope","$element","$attrs","$transclude",function(a){a.attempt=!1,a.success=!1,a.uploading=!1,a.barClass=function(){return{"bar-success":a.attempt&&!a.uploading&&a.success}}}],compile:function(){return{pre:function(a,b,c){if(angular.isUndefined(c.bucket))throw Error("bucket is a mandatory attribute")},post:function(a,c,d,e){var f=angular.extend({},a.$eval(d.s3UploadOptions||d.options));f=angular.extend({submitOnChange:!0,getOptionsUri:"/getS3Options",acl:"public-read",uploadingKey:"uploading",folder:"",enableValidation:!0},f);var g=a.$eval(d.bucket),h=angular.element(c.children()[0]),i=angular.element(c.find("input")[0]);h.bind("click",function(){i[0].click()}),e.$render=function(){a.filename=e.$viewValue};var j=function(){var c=i[0].files[0],d=c.name,h=d.split(".").pop();b.getUploadOptions(f.getOptionsUri).then(function(d){f.enableValidation&&e.$setValidity("uploading",!1);var i="https://"+g+".s3.amazonaws.com/",j=f.folder+(new Date).getTime()+"-"+b.randomString(16)+"."+h;b.upload(a,i,j,f.acl,c.type,d.key,d.policy,d.signature,c).then(function(){e.$setViewValue(i+j),a.filename=e.$viewValue,f.enableValidation&&(e.$setValidity("uploading",!0),e.$setValidity("succeeded",!0))},function(){a.filename=e.$viewValue,f.enableValidation&&(e.$setValidity("uploading",!0),e.$setValidity("succeeded",!1))})},function(a){throw Error("Can't receive the needed options for S3 "+a)})};c.bind("change",function(){f.submitOnChange&&a.$apply(function(){j()})}),angular.isDefined(d.doUpload)&&a.$watch(d.doUpload,function(a){a&&j()})}}},template:'<div class="upload-wrap"><button class="btn btn-primary" type="button"><span ng-if="!filename">Choose file</span><span ng-if="filename">Replace file</span></button><a ng-href="{{ filename }}" target="_blank" class="" ng-if="filename" > Stored file </a><div class="progress progress-striped" ng-class="{active: uploading}" ng-show="attempt" style="margin-top: 10px"><div class="bar" style="width: {{ progress }}%;" ng-class="barClass()"></div></div><input type="file" style="display: none"/></div>'}}])}(window,document);
/*! ngs3upload 05-10-2014 */
!function(){angular.module("ngS3upload.config",[]).value("ngS3upload.config",{debug:!0}).config(["$compileProvider",function(a){angular.isDefined(a.urlSanitizationWhitelist)?a.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):a.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngS3upload.directives",[]),angular.module("ngS3upload",["ngS3upload.config","ngS3upload.directives","ngS3upload.services","ngSanitize"]),angular.module("ngS3upload.config",[]).constant("ngS3Config",{theme:"bootstrap2"}),angular.module("ngS3upload.services",[]).service("S3Uploader",["$http","$q","$window",function(a,b){this.uploads=0;var c=this;this.getUploadOptions=function(c){var d=b.defer();return a.get(c).success(function(a){d.resolve(a)}).error(function(a){d.reject(a)}),d.promise},this.randomString=function(a){for(var b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",c="",d=a;d>0;--d)c+=b[Math.round(Math.random()*(b.length-1))];return c},this.upload=function(a,d,e,f,g,h,i,j,k){function l(b){a.$apply(function(){a.progress=b.lengthComputable?Math.round(100*b.loaded/b.total):"unable to compute";var c={type:"progress",value:a.progress};a.$emit("s3upload:progress",c),"function"==typeof p.notify&&p.notify(c)})}function m(b){var f=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,204===f.status?(a.success=!0,p.resolve(f),a.$emit("s3upload:success",f,{path:d+e})):(a.success=!1,p.reject(f),a.$emit("s3upload:error",f))})}function n(b){var d=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,a.success=!1,p.reject(d),a.$emit("s3upload:error",d)})}function o(b){var d=b.srcElement||b.target;a.$apply(function(){c.uploads--,a.uploading=!1,a.success=!1,p.reject(d),a.$emit("s3upload:abort",d)})}var p=b.defer();a.attempt=!0;var q=new FormData;q.append("key",e),q.append("acl",f),q.append("Content-Type",k.type),q.append("AWSAccessKeyId",h),q.append("policy",i),q.append("signature",j),q.append("file",k);var r=new XMLHttpRequest;return r.upload.addEventListener("progress",l,!1),r.addEventListener("load",m,!1),r.addEventListener("error",n,!1),r.addEventListener("abort",o,!1),a.$emit("s3upload:start",r),a.uploading=!0,this.uploads++,r.open("POST",d,!0),r.send(q),p.promise},this.isUploading=function(){return this.uploads>0}}]),angular.module("ngS3upload.directives",[]).directive("s3Upload",["$parse","S3Uploader","ngS3Config",function(a,b,c){return{restrict:"AC",require:"?ngModel",replace:!0,transclude:!1,scope:!0,controller:["$scope","$element","$attrs","$transclude",function(a){a.attempt=!1,a.success=!1,a.uploading=!1,a.barClass=function(){return{"bar-success":a.attempt&&!a.uploading&&a.success}}}],compile:function(){return{pre:function(a,b,c){if(angular.isUndefined(c.bucket))throw Error("bucket is a mandatory attribute")},post:function(a,c,d,e){var f=angular.extend({},a.$eval(d.s3UploadOptions||d.options));f=angular.extend({submitOnChange:!0,getOptionsUri:"/getS3Options",acl:"public-read",uploadingKey:"uploading",folder:"",enableValidation:!0,targetFilename:null},f);var g=a.$eval(d.bucket),h=angular.element(c.children()[0]),i=angular.element(c.find("input")[0]);h.bind("click",function(){i[0].click()}),e.$render=function(){a.filename=e.$viewValue};var j=function(){var c=i[0].files[0],d=c.name,h=d.split(".").pop();b.getUploadOptions(f.getOptionsUri).then(function(d){f.enableValidation&&e.$setValidity("uploading",!1);var i="https://"+g+".s3.amazonaws.com/",j=f.targetFilename?a.$eval(f.targetFilename):f.folder+(new Date).getTime()+"-"+b.randomString(16)+"."+h;b.upload(a,i,j,f.acl,c.type,d.key,d.policy,d.signature,c).then(function(){e.$setViewValue(i+j),a.filename=e.$viewValue,f.enableValidation&&(e.$setValidity("uploading",!0),e.$setValidity("succeeded",!0))},function(){a.filename=e.$viewValue,f.enableValidation&&(e.$setValidity("uploading",!0),e.$setValidity("succeeded",!1))})},function(a){throw Error("Can't receive the needed options for S3 "+a)})};c.bind("change",function(){f.submitOnChange&&a.$apply(function(){j()})}),angular.isDefined(d.doUpload)&&a.$watch(d.doUpload,function(a){a&&j()})}}},templateUrl:function(a,b){var d=b.theme||c.theme;return"theme/"+d+".html"}}}]),angular.module("ngS3upload").run(["$templateCache",function(a){"use strict";a.put("theme/bootstrap2.html",'<div class="upload-wrap">\n <button class="btn btn-primary" type="button"><span ng-if="!filename">Choose file</span><span ng-if="filename">Replace file</span></button>\n <a ng-href="{{ filename }}" target="_blank" class="" ng-if="filename" > Stored file </a>\n <div class="progress progress-striped" ng-class="{active: uploading}" ng-show="attempt" style="margin-top: 10px">\n <div class="bar" style="width: {{ progress }}%;" ng-class="barClass()"></div>\n </div>\n <input type="file" style="display: none"/>\n</div>'),a.put("theme/bootstrap3.html",'<div class="upload-wrap">\n <button class="btn btn-primary" type="button"><span ng-if="!filename">Choose file</span><span ng-if="filename">Replace file</span></button>\n <a ng-href="{{ filename }}" target="_blank" class="" ng-if="filename" > Stored file </a>\n <div class="progress">\n <div class="progress-bar progress-bar-striped" ng-class="{active: uploading}" role="progressbar" aria-valuemin="0" aria-valuemax="100" style="width: {{ progress }}%; margin-top: 10px" ng-class="barClass()">\n <span class="sr-only">{{progress}}% Complete</span>\n </div>\n </div>\n <input type="file" style="display: none"/>\n</div>')}])}(window,document);

@@ -9,2 +9,12 @@ module.exports = function (grunt) {

library: grunt.file.readJSON('bower.json'),
ngtemplates: {
app: {
cwd: 'src/<%= library.name %>/templates',
src: 'theme/**.html',
dest: '.tmp/templates.js',
options: {
module: 'ngS3upload'
}
}
},
concat: {

@@ -21,2 +31,3 @@ options: {

'src/<%= library.name %>/filters/**/*.js',
'<%= ngtemplates.app.dest %>',
'src/<%= library.name %>/<%= library.name %>.suffix'

@@ -80,2 +91,13 @@ ],

tasks: ['default']
},
clean: {
dist: {
files: [{
dot: false,
src: [
'.tmp',
'build/'
]
}]
}
}

@@ -91,7 +113,9 @@ });

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-angular-templates');
grunt.registerTask('test', ['jshint', 'karma:unit']);
grunt.registerTask('default', ['jshint:beforeConcat', 'concat', 'jshint:afterConcat', 'uglify']);
grunt.registerTask('default', ['clean:dist','jshint:beforeConcat', 'ngtemplates', 'concat', 'jshint:afterConcat', 'uglify']);
grunt.registerTask('livereload', ['default', 'watch']);
};
{
"name": "ngs3upload",
"version": "0.0.5",
"dependencies": {},
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-compass": "~0.3.0",
"grunt-contrib-jshint": "~0.6.0",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-connect": "~0.3.0",
"grunt-contrib-clean": "~0.4.1",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-contrib-imagemin": "~0.1.4",
"grunt-contrib-watch": "~0.4.0",
"grunt-usemin": "~0.1.11",
"grunt-svgmin": "~0.2.0",
"grunt-rev": "~0.1.0",
"grunt-karma": "~0.4.3",
"grunt-open": "~0.2.0",
"grunt-concurrent": "~0.3.0",
"matchdep": "~0.1.2",
"connect-livereload": "~0.2.0",
"grunt-google-cdn": "~0.2.0",
"grunt-ngmin": "~0.0.2",
"karma": "~0.10",
"karma-jasmine": "~0.1.0"
},
"engines": {
"node": ">=0.8.0"
}
"name": "ngs3upload",
"version": "0.1.1",
"dependencies": {},
"devDependencies": {
"connect-livereload": "~0.2.0",
"grunt": "~0.4.1",
"grunt-angular-templates": "^0.5.7",
"grunt-concurrent": "~0.3.0",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-coffee": "~0.7.0",
"grunt-contrib-compass": "~0.3.0",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-connect": "~0.3.0",
"grunt-contrib-copy": "~0.4.1",
"grunt-contrib-cssmin": "~0.6.0",
"grunt-contrib-htmlmin": "~0.1.3",
"grunt-contrib-imagemin": "~0.1.4",
"grunt-contrib-jshint": "~0.6.0",
"grunt-contrib-uglify": "~0.2.0",
"grunt-contrib-watch": "~0.4.0",
"grunt-google-cdn": "~0.2.0",
"grunt-karma": "~0.4.3",
"grunt-ngmin": "~0.0.2",
"grunt-open": "~0.2.0",
"grunt-rev": "~0.1.0",
"grunt-svgmin": "~0.2.0",
"grunt-usemin": "~0.1.11",
"karma": "~0.10",
"karma-jasmine": "~0.1.0",
"matchdep": "~0.1.2"
},
"engines": {
"node": ">=0.8.0"
}
}

@@ -95,4 +95,19 @@ ng-s3upload - Upload to S3 using AngularJS

5. Download ng-s3upload.min.js and add it to your project or use bower (bower install ng-s3upload --save).
## How to get it ?
#### Manual Download
Download the from [here](https://github.com/asafdav/ng-s3upload/releases)
#### Bower
```
bower install ng-s3upload
```
#### Npm
```
npm install ng-s3upload
```
## Usage

@@ -115,7 +130,8 @@ 1. Add ng-s3upload.min.js to your main file (index.html)

attributes:
* bucket - Speificy the wanted bucket
* bucket - Specify the wanted bucket
* s3-upload-options - Provide additional options:
* getOptionsUri - The uri of the server service that is needed to sign the request (mentioned in section Setup#4) - Required.
* folder - optional, specifies a folder inside the bucket the save the file to
* enableValidation - optional, set to "false" in order to disable the field validation.
* enableValidation - optional, set to "false" in order to disable the field validation.
* targetFilename - An optional attribute for the target filename. if provided the file will be renamed to the provided value instead of having the file original filename.

@@ -122,0 +138,0 @@

angular.module('ngS3upload.directives', []).
directive('s3Upload', ['$parse', 'S3Uploader', function ($parse, S3Uploader) {
directive('s3Upload', ['$parse', 'S3Uploader', 'ngS3Config', function ($parse, S3Uploader, ngS3Config) {
return {

@@ -36,3 +36,4 @@ restrict: 'AC',

folder: '',
enableValidation: true
enableValidation: true,
targetFilename: null
}, opts);

@@ -64,3 +65,3 @@ var bucket = scope.$eval(attrs.bucket);

var s3Uri = 'https://' + bucket + '.s3.amazonaws.com/';
var key = opts.folder + (new Date()).getTime() + '-' + S3Uploader.randomString(16) + "." + ext;
var key = opts.targetFilename ? scope.$eval(opts.targetFilename) : opts.folder + (new Date()).getTime() + '-' + S3Uploader.randomString(16) + "." + ext;
S3Uploader.upload(scope,

@@ -114,11 +115,7 @@ s3Uri,

},
template: '<div class="upload-wrap">' +
'<button class="btn btn-primary" type="button"><span ng-if="!filename">Choose file</span><span ng-if="filename">Replace file</span></button>' +
'<a ng-href="{{ filename }}" target="_blank" class="" ng-if="filename" > Stored file </a>' +
'<div class="progress progress-striped" ng-class="{active: uploading}" ng-show="attempt" style="margin-top: 10px">' +
'<div class="bar" style="width: {{ progress }}%;" ng-class="barClass()"></div>' +
'</div>' +
'<input type="file" style="display: none"/>' +
'</div>'
templateUrl: function(elm, attrs) {
var theme = attrs.theme || ngS3Config.theme;
return 'theme/' + theme + '.html';
}
};
}]);

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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