Skip to content
This repository has been archived by the owner on Jul 15, 2019. It is now read-only.

Commit

Permalink
Version 2.0 Major Release
Browse files Browse the repository at this point in the history
- added url filter
- added base url resolver
- broken down functions into separate files
- removed browserify
  • Loading branch information
adon committed Nov 2, 2015
1 parent 5aa08c5 commit 04041bf
Show file tree
Hide file tree
Showing 20 changed files with 2,590 additions and 1,916 deletions.
56 changes: 46 additions & 10 deletions Gruntfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(grunt) {
},
browserify: {
standalone: {
src: [ 'src/<%= pkg.name %>.js' ],
src: [ 'src/index-node.js' ],
dest: 'dist/<%= pkg.name %>.js',
options: {
browserifyOptions: {
Expand All @@ -48,23 +48,58 @@ module.exports = function(grunt) {
join_vars: true
}
},
buildBrowserified: {
src: 'dist/<%= pkg.name %>.js',
dest: 'dist/<%= pkg.name %>.min-browserified.js'
// buildBrowserified: {
// src: 'dist/<%= pkg.name %>.js',
// dest: 'dist/<%= pkg.name %>.min-browserified.js'
// },
buildUrlOnly: {
options: {
wrap: 'urlFilters'
},
src: [
'src/lib/urlFilters.js',
'src/lib/urlResolver.js'],
dest: 'dist/url-filters-only.min.<%= pkg.version %>.js'
},
buildXssOnly: {
options: {
wrap: 'xssFilters'
},
src: [
'src/index-browser.js',
'src/lib/htmlDecode.js',
'src/lib/xssFilters.priv.js',
'src/lib/xssFilters.js'
],
dest: 'dist/xss-filters.min.<%= pkg.version %>.js'
},
buildMin: {
options: {
wrap: 'xssFilters'
},
src: 'src/<%= pkg.name %>.js',
dest: 'dist/<%= pkg.name %>.min.js'
src: [
'src/index-browser.js',
'src/lib/urlFilters.js',
'src/lib/urlResolver.js',
'src/lib/htmlDecode.js',
'src/lib/xssFilters.priv.js',
'src/lib/xssFilters.js'
],
dest: 'dist/all-filters.min.js'
},
buildMinWithVersion: {
options: {
wrap: 'xssFilters'
},
src: 'src/<%= pkg.name %>.js',
dest: 'dist/<%= pkg.name %>.<%= pkg.version %>.min.js'
src: [
'src/index-browser.js',
'src/lib/urlFilters.js',
'src/lib/urlResolver.js',
'src/lib/htmlDecode.js',
'src/lib/xssFilters.priv.js',
'src/lib/xssFilters.js'
],
dest: 'dist/all-filters.min.<%= pkg.version %>.js'
}
},
mocha_istanbul: {
Expand Down Expand Up @@ -98,7 +133,7 @@ module.exports = function(grunt) {
});

grunt.loadNpmTasks('grunt-mocha-istanbul');
grunt.loadNpmTasks('grunt-browserify');
// grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-clean');
Expand All @@ -112,7 +147,8 @@ module.exports = function(grunt) {
testSet.push('dist', 'karma:ci');

grunt.registerTask('test', testSet);
grunt.registerTask('dist', ['browserify', 'uglify'])
// grunt.registerTask('dist', ['browserify', 'uglify'])
grunt.registerTask('dist', 'uglify')
grunt.registerTask('docs', ['jsdoc']);
grunt.registerTask('default', ['test', 'dist']);

Expand Down
5 changes: 0 additions & 5 deletions dist/xss-filters.min-browserified.js

This file was deleted.

4 changes: 2 additions & 2 deletions karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module.exports = function(config) {

if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
console.warn('No SAUCE credentials found (missing SAUCE_USERNAME and SAUCE_ACCESS_KEY env variables). Skipping SauceLabs testing.');
return;
// return;
}

// Browsers to run on Sauce Labs
Expand Down Expand Up @@ -103,7 +103,7 @@ module.exports = function(config) {
// list of files / patterns to load in the browser
files: [
'node_modules/expect.js/index.js',
'dist/xss-filters.min.js',
'dist/all-filters.min.js',
'tests/polyfills.js',
'tests/utils.js',
'tests/unit/*.js'
Expand Down
5 changes: 2 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "xss-filters",
"version": "1.2.6",
"version": "2.0.0",
"licenses": [
{
"type": "BSD",
Expand All @@ -23,7 +23,7 @@
"email": "[email protected]"
}
],
"main": "src/xss-filters.js",
"main": "src/index-node.js",
"scripts": {
"test": "grunt test",
"hint": "grunt jshint",
Expand All @@ -47,7 +47,6 @@
"devDependencies": {
"expect.js": "^0.3.1",
"grunt": "^0.4.5",
"grunt-browserify": "^3.8.0",
"grunt-cli": "^0.1.13",
"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-copy": "^0.7.0",
Expand Down
17 changes: 17 additions & 0 deletions src/index-browser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
Copyright (c) 2015, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
Authors: Adonis Fung <[email protected]>
Nera Liu <[email protected]>
Albert Yu <[email protected]>
*/

// This file is used only for building the min version with uglify
/*jshint esnext: true *//*jshint -W079 *//*jshint unused:false*/
const require = false;

exports._privFilters = {
urlFilters: (exports.urlFilters = {})
};
34 changes: 34 additions & 0 deletions src/index-node.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
Copyright (c) 2015, Yahoo! Inc. All rights reserved.
Copyrights licensed under the New BSD License.
See the accompanying LICENSE file for terms.
Authors: Nera Liu <[email protected]>
Adonis Fung <[email protected]>
Albert Yu <[email protected]>
*/
/**
* The following file serves the node.js version
*/

/*jshint node: true */

// populate the xss filters
module.exports = exports = require('./lib/xssFilters');

exports._privFilters.yHtmlDecode = require('./lib/htmlDecode').yHtmlDecode;

// the following is largely designed for secure-handlebars-helpers
exports._getPrivFilters = {
toString : function() {
var fs = require('fs');
return '(function(){var xssFilters={},exports={};' +
fs.readFileSync('./src/lib/htmlDecode.js', 'utf8') +
fs.readFileSync('./src/lib/xssFilters.priv.js', 'utf8') +
'return exports;})';
}
};


exports.urlFilters = require('./lib/urlFilters');
exports.urlFilters.yUrlResolver = require('./lib/urlResolver').yUrlResolver;
Loading

0 comments on commit 04041bf

Please sign in to comment.