You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by js...@apache.org on 2014/07/07 23:43:10 UTC
[04/51] [partial] CB-7087 Retire blackberry10/ directory
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/validator/validator.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/validator/validator.js b/blackberry10/node_modules/validator/validator.js
deleted file mode 100644
index ad4c205..0000000
--- a/blackberry10/node_modules/validator/validator.js
+++ /dev/null
@@ -1,865 +0,0 @@
-/*!
- * Copyright (c) 2010 Chris O'Hara <co...@gmail.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-(function(exports) {
-
- var entities = {
- ' ': '\u00a0',
- '¡': '\u00a1',
- '¢': '\u00a2',
- '£': '\u00a3',
- '¤': '\u20ac',
- '¥': '\u00a5',
- '¦': '\u0160',
- '§': '\u00a7',
- '¨': '\u0161',
- '©': '\u00a9',
- 'ª': '\u00aa',
- '«': '\u00ab',
- '¬': '\u00ac',
- '­': '\u00ad',
- '®': '\u00ae',
- '¯': '\u00af',
- '°': '\u00b0',
- '±': '\u00b1',
- '²': '\u00b2',
- '³': '\u00b3',
- '´': '\u017d',
- 'µ': '\u00b5',
- '¶': '\u00b6',
- '·': '\u00b7',
- '¸': '\u017e',
- '¹': '\u00b9',
- 'º': '\u00ba',
- '»': '\u00bb',
- '¼': '\u0152',
- '½': '\u0153',
- '¾': '\u0178',
- '¿': '\u00bf',
- 'À': '\u00c0',
- 'Á': '\u00c1',
- 'Â': '\u00c2',
- 'Ã': '\u00c3',
- 'Ä': '\u00c4',
- 'Å': '\u00c5',
- 'Æ': '\u00c6',
- 'Ç': '\u00c7',
- 'È': '\u00c8',
- 'É': '\u00c9',
- 'Ê': '\u00ca',
- 'Ë': '\u00cb',
- 'Ì': '\u00cc',
- 'Í': '\u00cd',
- 'Î': '\u00ce',
- 'Ï': '\u00cf',
- 'Ð': '\u00d0',
- 'Ñ': '\u00d1',
- 'Ò': '\u00d2',
- 'Ó': '\u00d3',
- 'Ô': '\u00d4',
- 'Õ': '\u00d5',
- 'Ö': '\u00d6',
- '×': '\u00d7',
- 'Ø': '\u00d8',
- 'Ù': '\u00d9',
- 'Ú': '\u00da',
- 'Û': '\u00db',
- 'Ü': '\u00dc',
- 'Ý': '\u00dd',
- 'Þ': '\u00de',
- 'ß': '\u00df',
- 'à': '\u00e0',
- 'á': '\u00e1',
- 'â': '\u00e2',
- 'ã': '\u00e3',
- 'ä': '\u00e4',
- 'å': '\u00e5',
- 'æ': '\u00e6',
- 'ç': '\u00e7',
- 'è': '\u00e8',
- 'é': '\u00e9',
- 'ê': '\u00ea',
- 'ë': '\u00eb',
- 'ì': '\u00ec',
- 'í': '\u00ed',
- 'î': '\u00ee',
- 'ï': '\u00ef',
- 'ð': '\u00f0',
- 'ñ': '\u00f1',
- 'ò': '\u00f2',
- 'ó': '\u00f3',
- 'ô': '\u00f4',
- 'õ': '\u00f5',
- 'ö': '\u00f6',
- '÷': '\u00f7',
- 'ø': '\u00f8',
- 'ù': '\u00f9',
- 'ú': '\u00fa',
- 'û': '\u00fb',
- 'ü': '\u00fc',
- 'ý': '\u00fd',
- 'þ': '\u00fe',
- 'ÿ': '\u00ff',
- '"': '\u0022',
- '<': '\u003c',
- '>': '\u003e',
- ''': '\u0027',
- '−': '\u2212',
- 'ˆ': '\u02c6',
- '˜': '\u02dc',
- 'Š': '\u0160',
- '‹': '\u2039',
- 'Œ': '\u0152',
- '‘': '\u2018',
- '’': '\u2019',
- '“': '\u201c',
- '”': '\u201d',
- '•': '\u2022',
- '–': '\u2013',
- '—': '\u2014',
- '™': '\u2122',
- 'š': '\u0161',
- '›': '\u203a',
- 'œ': '\u0153',
- 'Ÿ': '\u0178',
- 'ƒ': '\u0192',
- 'Α': '\u0391',
- 'Β': '\u0392',
- 'Γ': '\u0393',
- 'Δ': '\u0394',
- 'Ε': '\u0395',
- 'Ζ': '\u0396',
- 'Η': '\u0397',
- 'Θ': '\u0398',
- 'Ι': '\u0399',
- 'Κ': '\u039a',
- 'Λ': '\u039b',
- 'Μ': '\u039c',
- 'Ν': '\u039d',
- 'Ξ': '\u039e',
- 'Ο': '\u039f',
- 'Π': '\u03a0',
- 'Ρ': '\u03a1',
- 'Σ': '\u03a3',
- 'Τ': '\u03a4',
- 'Υ': '\u03a5',
- 'Φ': '\u03a6',
- 'Χ': '\u03a7',
- 'Ψ': '\u03a8',
- 'Ω': '\u03a9',
- 'α': '\u03b1',
- 'β': '\u03b2',
- 'γ': '\u03b3',
- 'δ': '\u03b4',
- 'ε': '\u03b5',
- 'ζ': '\u03b6',
- 'η': '\u03b7',
- 'θ': '\u03b8',
- 'ι': '\u03b9',
- 'κ': '\u03ba',
- 'λ': '\u03bb',
- 'μ': '\u03bc',
- 'ν': '\u03bd',
- 'ξ': '\u03be',
- 'ο': '\u03bf',
- 'π': '\u03c0',
- 'ρ': '\u03c1',
- 'ς': '\u03c2',
- 'σ': '\u03c3',
- 'τ': '\u03c4',
- 'υ': '\u03c5',
- 'φ': '\u03c6',
- 'χ': '\u03c7',
- 'ψ': '\u03c8',
- 'ω': '\u03c9',
- 'ϑ': '\u03d1',
- 'ϒ': '\u03d2',
- 'ϖ': '\u03d6',
- ' ': '\u2002',
- ' ': '\u2003',
- ' ': '\u2009',
- '‌': '\u200c',
- '‍': '\u200d',
- '‎': '\u200e',
- '‏': '\u200f',
- '‚': '\u201a',
- '„': '\u201e',
- '†': '\u2020',
- '‡': '\u2021',
- '…': '\u2026',
- '‰': '\u2030',
- '′': '\u2032',
- '″': '\u2033',
- '‾': '\u203e',
- '⁄': '\u2044',
- '€': '\u20ac',
- 'ℑ': '\u2111',
- '℘': '\u2118',
- 'ℜ': '\u211c',
- 'ℵ': '\u2135',
- '←': '\u2190',
- '↑': '\u2191',
- '→': '\u2192',
- '↓': '\u2193',
- '↔': '\u2194',
- '↵': '\u21b5',
- '⇐': '\u21d0',
- '⇑': '\u21d1',
- '⇒': '\u21d2',
- '⇓': '\u21d3',
- '⇔': '\u21d4',
- '∀': '\u2200',
- '∂': '\u2202',
- '∃': '\u2203',
- '∅': '\u2205',
- '∇': '\u2207',
- '∈': '\u2208',
- '∉': '\u2209',
- '∋': '\u220b',
- '∏': '\u220f',
- '∑': '\u2211',
- '∗': '\u2217',
- '√': '\u221a',
- '∝': '\u221d',
- '∞': '\u221e',
- '∠': '\u2220',
- '∧': '\u2227',
- '∨': '\u2228',
- '∩': '\u2229',
- '∪': '\u222a',
- '∫': '\u222b',
- '∴': '\u2234',
- '∼': '\u223c',
- '≅': '\u2245',
- '≈': '\u2248',
- '≠': '\u2260',
- '≡': '\u2261',
- '≤': '\u2264',
- '≥': '\u2265',
- '⊂': '\u2282',
- '⊃': '\u2283',
- '⊄': '\u2284',
- '⊆': '\u2286',
- '⊇': '\u2287',
- '⊕': '\u2295',
- '⊗': '\u2297',
- '⊥': '\u22a5',
- '⋅': '\u22c5',
- '⌈': '\u2308',
- '⌉': '\u2309',
- '⌊': '\u230a',
- '⌋': '\u230b',
- '⟨': '\u2329',
- '⟩': '\u232a',
- '◊': '\u25ca',
- '♠': '\u2660',
- '♣': '\u2663',
- '♥': '\u2665',
- '♦': '\u2666'
- };
-
- var decode = function (str) {
- if (!~str.indexOf('&')) return str;
-
- //Decode literal entities
- for (var i in entities) {
- str = str.replace(new RegExp(i, 'g'), entities[i]);
- }
-
- //Decode hex entities
- str = str.replace(/&#x(0*[0-9a-f]{2,5});?/gi, function (m, code) {
- return String.fromCharCode(parseInt(+code, 16));
- });
-
- //Decode numeric entities
- str = str.replace(/&#([0-9]{2,4});?/gi, function (m, code) {
- return String.fromCharCode(+code);
- });
-
- str = str.replace(/&/g, '&');
-
- return str;
- }
-
- var encode = function (str) {
- str = str.replace(/&/g, '&');
-
- //IE doesn't accept '
- str = str.replace(/'/g, ''');
-
- //Encode literal entities
- for (var i in entities) {
- str = str.replace(new RegExp(entities[i], 'g'), i);
- }
-
- return str;
- }
-
- exports.entities = {
- encode: encode,
- decode: decode
- }
-
- //This module is adapted from the CodeIgniter framework
- //The license is available at http://codeigniter.com/
-
- var never_allowed_str = {
- 'document.cookie': '[removed]',
- 'document.write': '[removed]',
- '.parentNode': '[removed]',
- '.innerHTML': '[removed]',
- 'window.location': '[removed]',
- '-moz-binding': '[removed]',
- '<!--': '<!--',
- '-->': '-->',
- '<![CDATA[': '<![CDATA['
- };
-
- var never_allowed_regex = {
- 'javascript\\s*:': '[removed]',
- 'expression\\s*(\\(|&\\#40;)': '[removed]',
- 'vbscript\\s*:': '[removed]',
- 'Redirect\\s+302': '[removed]'
- };
-
- var non_displayables = [
- /%0[0-8bcef]/g, // url encoded 00-08, 11, 12, 14, 15
- /%1[0-9a-f]/g, // url encoded 16-31
- /[\x00-\x08]/g, // 00-08
- /\x0b/g, /\x0c/g, // 11,12
- /[\x0e-\x1f]/g // 14-31
- ];
-
- var compact_words = [
- 'javascript', 'expression', 'vbscript',
- 'script', 'applet', 'alert', 'document',
- 'write', 'cookie', 'window'
- ];
-
- exports.xssClean = function(str, is_image) {
-
- //Recursively clean objects and arrays
- if (typeof str === 'object') {
- for (var i in str) {
- str[i] = exports.xssClean(str[i]);
- }
- return str;
- }
-
- //Remove invisible characters
- str = remove_invisible_characters(str);
-
- //Protect query string variables in URLs => 901119URL5918AMP18930PROTECT8198
- str = str.replace(/\&([a-z\_0-9]+)\=([a-z\_0-9]+)/i, xss_hash() + '$1=$2');
-
- //Validate standard character entities - add a semicolon if missing. We do this to enable
- //the conversion of entities to ASCII later.
- str = str.replace(/(&\#?[0-9a-z]{2,})([\x00-\x20])*;?/i, '$1;$2');
-
- //Validate UTF16 two byte encoding (x00) - just as above, adds a semicolon if missing.
- str = str.replace(/(&\#x?)([0-9A-F]+);?/i, '$1;$2');
-
- //Un-protect query string variables
- str = str.replace(xss_hash(), '&');
-
- //Decode just in case stuff like this is submitted:
- //<a href="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E%63%6F%6D">Google</a>
- try {
- str = decodeURIComponent(str);
- } catch (e) {
- // str was not actually URI-encoded
- }
-
- //Convert character entities to ASCII - this permits our tests below to work reliably.
- //We only convert entities that are within tags since these are the ones that will pose security problems.
- str = str.replace(/[a-z]+=([\'\"]).*?\1/gi, function(m, match) {
- return m.replace(match, convert_attribute(match));
- });
-
- //Remove invisible characters again
- str = remove_invisible_characters(str);
-
- //Convert tabs to spaces
- str = str.replace('\t', ' ');
-
- //Captured the converted string for later comparison
- var converted_string = str;
-
- //Remove strings that are never allowed
- for (var i in never_allowed_str) {
- str = str.replace(i, never_allowed_str[i]);
- }
-
- //Remove regex patterns that are never allowed
- for (var i in never_allowed_regex) {
- str = str.replace(new RegExp(i, 'i'), never_allowed_regex[i]);
- }
-
- //Compact any exploded words like: j a v a s c r i p t
- // We only want to do this when it is followed by a non-word character
- for (var i in compact_words) {
- var spacified = compact_words[i].split('').join('\\s*')+'\\s*';
-
- str = str.replace(new RegExp('('+spacified+')(\\W)', 'ig'), function(m, compat, after) {
- return compat.replace(/\s+/g, '') + after;
- });
- }
-
- //Remove disallowed Javascript in links or img tags
- do {
- var original = str;
-
- if (str.match(/<a/i)) {
- str = str.replace(/<a\s+([^>]*?)(>|$)/gi, function(m, attributes, end_tag) {
- attributes = filter_attributes(attributes.replace('<','').replace('>',''));
- return m.replace(attributes, attributes.replace(/href=.*?(alert\(|alert&\#40;|javascript\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)/gi, ''));
- });
- }
-
- if (str.match(/<img/i)) {
- str = str.replace(/<img\s+([^>]*?)(\s?\/?>|$)/gi, function(m, attributes, end_tag) {
- attributes = filter_attributes(attributes.replace('<','').replace('>',''));
- return m.replace(attributes, attributes.replace(/src=.*?(alert\(|alert&\#40;|javascript\:|charset\=|window\.|document\.|\.cookie|<script|<xss|base64\s*,)/gi, ''));
- });
- }
-
- if (str.match(/script/i) || str.match(/xss/i)) {
- str = str.replace(/<(\/*)(script|xss)(.*?)\>/gi, '[removed]');
- }
-
- } while(original != str);
-
- //Remove JavaScript Event Handlers - Note: This code is a little blunt. It removes the event
- //handler and anything up to the closing >, but it's unlikely to be a problem.
- event_handlers = ['[^a-z_\-]on\\w*'];
-
- //Adobe Photoshop puts XML metadata into JFIF images, including namespacing,
- //so we have to allow this for images
- if (!is_image) {
- event_handlers.push('xmlns');
- }
-
- str = str.replace(new RegExp("<([^><]+?)("+event_handlers.join('|')+")(\\s*=\\s*[^><]*)([><]*)", 'i'), '<$1$4');
-
- //Sanitize naughty HTML elements
- //If a tag containing any of the words in the list
- //below is found, the tag gets converted to entities.
- //So this: <blink>
- //Becomes: <blink>
- naughty = 'alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss';
- str = str.replace(new RegExp('<(/*\\s*)('+naughty+')([^><]*)([><]*)', 'gi'), function(m, a, b, c, d) {
- return '<' + a + b + c + d.replace('>','>').replace('<','<');
- });
-
- //Sanitize naughty scripting elements Similar to above, only instead of looking for
- //tags it looks for PHP and JavaScript commands that are disallowed. Rather than removing the
- //code, it simply converts the parenthesis to entities rendering the code un-executable.
- //For example: eval('some code')
- //Becomes: eval('some code')
- str = str.replace(/(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)/gi, '$1$2($3)');
-
- //This adds a bit of extra precaution in case something got through the above filters
- for (var i in never_allowed_str) {
- str = str.replace(i, never_allowed_str[i]);
- }
- for (var i in never_allowed_regex) {
- str = str.replace(new RegExp(i, 'i'), never_allowed_regex[i]);
- }
-
- //Images are handled in a special way
- if (is_image && str !== converted_string) {
- throw new Error('Image may contain XSS');
- }
-
- return str;
- }
-
- function remove_invisible_characters(str) {
- for (var i in non_displayables) {
- str = str.replace(non_displayables[i], '');
- }
- return str;
- }
-
- function xss_hash() {
- //TODO: Create a random hash
- return '!*$^#(@*#&';
- }
-
- function convert_attribute(str) {
- return str.replace('>','>').replace('<','<').replace('\\','\\\\');
- }
-
- //Filter Attributes - filters tag attributes for consistency and safety
- function filter_attributes(str) {
- out = '';
-
- str.replace(/\s*[a-z\-]+\s*=\s*(?:\042|\047)(?:[^\1]*?)\1/gi, function(m) {
- out += m.replace(/\/\*.*?\*\//g, '');
- });
-
- return out;
- }
-
- var Validator = exports.Validator = function() {}
-
- Validator.prototype.check = function(str, fail_msg) {
- this.str = str == null || (isNaN(str) && str.length == undefined) ? '' : str+'';
- this.msg = fail_msg;
- this._errors = [];
- return this;
- }
-
- //Create some aliases - may help code readability
- Validator.prototype.validate = Validator.prototype.check;
- Validator.prototype.assert = Validator.prototype.check;
-
- Validator.prototype.error = function(msg) {
- throw new Error(msg);
- }
-
- Validator.prototype.isEmail = function() {
- if (!this.str.match(/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!\.)){0,61}[a-zA-Z0-9]?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9\-](?!$)){0,61}[a-zA-Z0-9]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/)) {
- return this.error(this.msg || 'Invalid email');
- }
- return this;
- }
-
- //Will work against Visa, MasterCard, American Express, Discover, Diners Club, and JCB card numbering formats
- Validator.prototype.isCreditCard = function() {
- this.str = this.str.replace(/[^0-9]+/g, ''); //remove all dashes, spaces, etc.
- if (!this.str.match(/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/)) {
- return this.error(this.msg || 'Invalid credit card');
- }
- return this;
- }
-
- Validator.prototype.isUrl = function() {
- if (!this.str.match(/^(?:(?:ht|f)tp(?:s?)\:\/\/|~\/|\/)?(?:\w+:\w+@)?((?:(?:[-\w\d{1-3}]+\.)+(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|edu|co\.uk|ac\.uk|it|fr|tv|museum|asia|local|travel|[a-z]{2}))|((\b25[0-5]\b|\b[2][0-4][0-9]\b|\b[0-1]?[0-9]?[0-9]\b)(\.(\b25[0-5]\b|\b[2][0-4][0-9]\b|\b[0-1]?[0-9]?[0-9]\b)){3}))(?::[\d]{1,5})?(?:(?:(?:\/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?:#(?:[-\w~!$ |\/.,*:;=]|%[a-f\d]{2})*)?$/i) || this.str.length > 2083) {
- return this.error(this.msg || 'Invalid URL');
- }
- return this;
- }
-
- Validator.prototype.isIP = function() {
- if (!this.str.match(/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/)) {
- return this.error(this.msg || 'Invalid IP');
- }
- return this;
- }
-
- Validator.prototype.isAlpha = function() {
- if (!this.str.match(/^[a-zA-Z]+$/)) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.isAlphanumeric = function() {
- if (!this.str.match(/^[a-zA-Z0-9]+$/)) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.isNumeric = function() {
- if (!this.str.match(/^-?[0-9]+$/)) {
- return this.error(this.msg || 'Invalid number');
- }
- return this;
- }
-
- Validator.prototype.isLowercase = function() {
- if (!this.str.match(/^[a-z0-9]+$/)) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.isUppercase = function() {
- if (!this.str.match(/^[A-Z0-9]+$/)) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.isInt = function() {
- if (!this.str.match(/^(?:-?(?:0|[1-9][0-9]*))$/)) {
- return this.error(this.msg || 'Invalid integer');
- }
- return this;
- }
-
- Validator.prototype.isDecimal = function() {
- if (!this.str.match(/^(?:-?(?:0|[1-9][0-9]*))?(?:\.[0-9]*)?$/)) {
- return this.error(this.msg || 'Invalid decimal');
- }
- return this;
- }
-
- Validator.prototype.isFloat = function() {
- return this.isDecimal();
- }
-
- Validator.prototype.notNull = function() {
- if (this.str === '') {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.isNull = function() {
- if (this.str !== '') {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.notEmpty = function() {
- if (this.str.match(/^[\s\t\r\n]*$/)) {
- return this.error(this.msg || 'String is whitespace');
- }
- return this;
- }
-
- Validator.prototype.equals = function(equals) {
- if (this.str != equals) {
- return this.error(this.msg || 'Not equal');
- }
- return this;
- }
-
- Validator.prototype.contains = function(str) {
- if (this.str.indexOf(str) === -1) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.notContains = function(str) {
- if (this.str.indexOf(str) >= 0) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.regex = Validator.prototype.is = function(pattern, modifiers) {
- if (typeof pattern !== 'function') {
- pattern = new RegExp(pattern, modifiers);
- }
- if (! this.str.match(pattern)) {
- return this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.notRegex = Validator.prototype.not = function(pattern, modifiers) {
- if (typeof pattern !== 'function') {
- pattern = new RegExp(pattern, modifiers);
- }
- if (this.str.match(pattern)) {
- this.error(this.msg || 'Invalid characters');
- }
- return this;
- }
-
- Validator.prototype.len = function(min, max) {
- if (this.str.length < min) {
- this.error(this.msg || 'String is too small');
- }
- if (typeof max !== undefined && this.str.length > max) {
- return this.error(this.msg || 'String is too large');
- }
- return this;
- }
-
- //Thanks to github.com/sreuter for the idea.
- Validator.prototype.isUUID = function(version) {
- if (version == 3 || version == 'v3') {
- pattern = /[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
- } else if (version == 4 || version == 'v4') {
- pattern = /[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i;
- } else {
- pattern = /[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i;
- }
- if (!this.str.match(pattern)) {
- return this.error(this.msg || 'Not a UUID');
- }
- return this;
- }
-
- Validator.prototype.isDate = function() {
- var intDate = Date.parse(this.str);
- if (isNaN(intDate)) {
- return this.error(this.msg || 'Not a date');
- }
- return this;
- }
-
- Validator.prototype.isIn = function(options) {
- if (options && typeof options.indexOf === 'function') {
- if (!~options.indexOf(this.str)) {
- return this.error(this.msg || 'Unexpected value');
- }
- return this;
- } else {
- return this.error(this.msg || 'Invalid in() argument');
- }
- }
-
- Validator.prototype.notIn = function(options) {
- if (options && typeof options.indexOf === 'function') {
- if (options.indexOf(this.str) !== -1) {
- return this.error(this.msg || 'Unexpected value');
- }
- return this;
- } else {
- return this.error(this.msg || 'Invalid notIn() argument');
- }
- }
-
- Validator.prototype.min = function(val) {
- var number = parseFloat(this.str);
-
- if (!isNaN(number) && number < val) {
- return this.error(this.msg || 'Invalid number');
- }
-
- return this;
- }
-
- Validator.prototype.max = function(val) {
- var number = parseFloat(this.str);
- if (!isNaN(number) && number > val) {
- return this.error(this.msg || 'Invalid number');
- }
- return this;
- }
-
- Validator.prototype.isArray = function() {
- if (!Array.isArray(this.str)) {
- return this.error(this.msg || 'Not an array');
- }
- return this;
- }
-
- var Filter = exports.Filter = function() {}
-
- var whitespace = '\\r\\n\\t\\s';
-
- Filter.prototype.modify = function(str) {
- this.str = str;
- }
-
- //Create some aliases - may help code readability
- Filter.prototype.convert = Filter.prototype.sanitize = function(str) {
- this.str = str;
- return this;
- }
-
- Filter.prototype.xss = function(is_image) {
- this.modify(exports.xssClean(this.str, is_image));
- return this.str;
- }
-
- Filter.prototype.entityDecode = function() {
- this.modify(decode(this.str));
- return this.str;
- }
-
- Filter.prototype.entityEncode = function() {
- this.modify(encode(this.str));
- return this.str;
- }
-
- Filter.prototype.ltrim = function(chars) {
- chars = chars || whitespace;
- this.modify(this.str.replace(new RegExp('^['+chars+']+', 'g'), ''));
- return this.str;
- }
-
- Filter.prototype.rtrim = function(chars) {
- chars = chars || whitespace;
- this.modify(this.str.replace(new RegExp('['+chars+']+$', 'g'), ''));
- return this.str;
- }
-
- Filter.prototype.trim = function(chars) {
- chars = chars || whitespace;
- this.modify(this.str.replace(new RegExp('^['+chars+']+|['+chars+']+$', 'g'), ''));
- return this.str;
- }
-
- Filter.prototype.ifNull = function(replace) {
- if (!this.str || this.str === '') {
- this.modify(replace);
- }
- return this.str;
- }
-
- Filter.prototype.toFloat = function() {
- this.modify(parseFloat(this.str));
- return this.str;
- }
-
- Filter.prototype.toInt = function(radix) {
- radix = radix || 10;
- this.modify(parseInt(this.str), radix);
- return this.str;
- }
-
- //Any strings with length > 0 (except for '0' and 'false') are considered true,
- //all other strings are false
- Filter.prototype.toBoolean = function() {
- if (!this.str || this.str == '0' || this.str == 'false' || this.str == '') {
- this.modify(false);
- } else {
- this.modify(true);
- }
- return this.str;
- }
-
- //String must be equal to '1' or 'true' to be considered true, all other strings
- //are false
- Filter.prototype.toBooleanStrict = function() {
- if (this.str == '1' || this.str == 'true') {
- this.modify(true);
- } else {
- this.modify(false);
- }
- return this.str;
- }
-
- //Quick access methods
- exports.sanitize = exports.convert = function(str) {
- var filter = new exports.Filter();
- return filter.sanitize(str);
- }
-
- exports.check = exports.validate = exports.assert = function(str, fail_msg) {
- var validator = new exports.Validator();
- return validator.check(str, fail_msg);
- }
-
-})(typeof(exports) === 'undefined' ? window : exports);
-
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/.npmignore b/blackberry10/node_modules/wrench/.npmignore
deleted file mode 100644
index 93f1361..0000000
--- a/blackberry10/node_modules/wrench/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-npm-debug.log
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/LICENSE b/blackberry10/node_modules/wrench/LICENSE
deleted file mode 100644
index a85a94a..0000000
--- a/blackberry10/node_modules/wrench/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2010 Ryan McGrath
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/lib/wrench.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/lib/wrench.js b/blackberry10/node_modules/wrench/lib/wrench.js
deleted file mode 100644
index cc5c18b..0000000
--- a/blackberry10/node_modules/wrench/lib/wrench.js
+++ /dev/null
@@ -1,426 +0,0 @@
-/* wrench.js
- *
- * A collection of various utility functions I've found myself in need of
- * for use with Node.js (http://nodejs.org/). This includes things like:
- *
- * - Recursively deleting directories in Node.js (Sync, not Async)
- * - Recursively copying directories in Node.js (Sync, not Async)
- * - Recursively chmoding a directory structure from Node.js (Sync, not Async)
- * - Other things that I'll add here as time goes on. Shhhh...
- *
- * ~ Ryan McGrath (ryan [at] venodesigns.net)
- */
-
-var fs = require("fs"),
- _path = require("path");
-
-
-/* wrench.readdirSyncRecursive("directory_path");
- *
- * Recursively dives through directories and read the contents of all the
- * children directories.
- */
-exports.readdirSyncRecursive = function(baseDir) {
- baseDir = baseDir.replace(/\/$/, '');
-
- var readdirSyncRecursive = function(baseDir) {
- var files = [],
- curFiles,
- nextDirs,
- isDir = function(fname){
- return fs.statSync( _path.join(baseDir, fname) ).isDirectory();
- },
- prependBaseDir = function(fname){
- return _path.join(baseDir, fname);
- };
-
- curFiles = fs.readdirSync(baseDir);
- nextDirs = curFiles.filter(isDir);
- curFiles = curFiles.map(prependBaseDir);
-
- files = files.concat( curFiles );
-
- while (nextDirs.length) {
- files = files.concat( readdirSyncRecursive( _path.join(baseDir, nextDirs.shift()) ) );
- }
-
- return files;
- };
-
- // convert absolute paths to relative
- var fileList = readdirSyncRecursive(baseDir).map(function(val){
- return _path.relative(baseDir, val);
- });
-
- return fileList;
-};
-
-/* wrench.readdirRecursive("directory_path", function(error, files) {});
- *
- * Recursively dives through directories and read the contents of all the
- * children directories.
- *
- * Asynchronous, so returns results/error in callback.
- * Callback receives the of files in currently recursed directory.
- * When no more directories are left, callback is called with null for all arguments.
- *
- */
-exports.readdirRecursive = function(baseDir, fn) {
- baseDir = baseDir.replace(/\/$/, '');
-
- var waitCount = 0;
-
- function readdirRecursive(curDir) {
- var files = [],
- curFiles,
- nextDirs,
- prependcurDir = function(fname){
- return _path.join(curDir, fname);
- };
-
- waitCount++;
- fs.readdir(curDir, function(e, curFiles) {
- waitCount--;
-
- curFiles = curFiles.map(prependcurDir);
-
- curFiles.forEach(function(it) {
- waitCount++;
-
- fs.stat(it, function(e, stat) {
- waitCount--;
-
- if (e) {
- fn(e);
- } else {
- if (stat.isDirectory()) {
- readdirRecursive(it);
- }
- }
-
- if (waitCount == 0) {
- fn(null, null);
- }
- });
- });
-
- fn(null, curFiles.map(function(val) {
- // convert absolute paths to relative
- return _path.relative(baseDir, val);
- }));
-
- if (waitCount == 0) {
- fn(null, null);
- }
- });
- };
-
- readdirRecursive(baseDir);
-};
-
-
-
-/* wrench.rmdirSyncRecursive("directory_path", forceDelete, failSilent);
- *
- * Recursively dives through directories and obliterates everything about it. This is a
- * Sync-function, which blocks things until it's done. No idea why anybody would want an
- * Asynchronous version. :\
- */
-exports.rmdirSyncRecursive = function(path, failSilent) {
- var files;
-
- try {
- files = fs.readdirSync(path);
- } catch (err) {
- if(failSilent) return;
- throw new Error(err.message);
- }
-
- /* Loop through and delete everything in the sub-tree after checking it */
- for(var i = 0; i < files.length; i++) {
- var currFile = fs.lstatSync(_path.join(path, files[i]));
-
- if(currFile.isDirectory()) // Recursive function back to the beginning
- exports.rmdirSyncRecursive(_path.join(path, files[i]));
-
- else if(currFile.isSymbolicLink()) // Unlink symlinks
- fs.unlinkSync(_path.join(path, files[i]));
-
- else // Assume it's a file - perhaps a try/catch belongs here?
- fs.unlinkSync(_path.join(path, files[i]));
- }
-
- /* Now that we know everything in the sub-tree has been deleted, we can delete the main
- directory. Huzzah for the shopkeep. */
- return fs.rmdirSync(path);
-};
-
-/* wrench.copyDirSyncRecursive("directory_to_copy", "new_directory_location", opts);
- *
- * Recursively dives through a directory and moves all its files to a new location. This is a
- * Synchronous function, which blocks things until it's done. If you need/want to do this in
- * an Asynchronous manner, look at wrench.copyDirRecursively() below.
- *
- * Note: Directories should be passed to this function without a trailing slash.
- */
-exports.copyDirSyncRecursive = function(sourceDir, newDirLocation, opts) {
- if (!opts || !opts.preserve) {
- try {
- if(fs.statSync(newDirLocation).isDirectory()) exports.rmdirSyncRecursive(newDirLocation);
- } catch(e) { }
- }
-
- /* Create the directory where all our junk is moving to; read the mode of the source directory and mirror it */
- var checkDir = fs.statSync(sourceDir);
- try {
- fs.mkdirSync(newDirLocation, checkDir.mode);
- } catch (e) {
- //if the directory already exists, that's okay
- if (e.code !== 'EEXIST') throw e;
- }
-
- var files = fs.readdirSync(sourceDir);
-
- for(var i = 0; i < files.length; i++) {
- // ignores all files or directories which match the RegExp in opts.filter
- if(typeof opts !== 'undefined') {
- if(!opts.whitelist && opts.filter && files[i].match(opts.filter)) continue;
- // if opts.whitelist is true every file or directory which doesn't match opts.filter will be ignored
- if(opts.whitelist && opts.filter && !files[i].match(opts.filter)) continue;
- if (opts.excludeHiddenUnix && /^\./.test(files[i])) continue;
- }
-
- var currFile = fs.lstatSync(_path.join(sourceDir, files[i]));
-
- var fCopyFile = function(srcFile, destFile) {
- if(typeof opts !== 'undefined' && opts.preserveFiles && fs.existsSync(destFile)) return;
-
- var contents = fs.readFileSync(srcFile);
- fs.writeFileSync(destFile, contents);
- };
-
- if(currFile.isDirectory()) {
- /* recursion this thing right on back. */
- exports.copyDirSyncRecursive(_path.join(sourceDir, files[i]), _path.join(newDirLocation, files[i]), opts);
- } else if(currFile.isSymbolicLink()) {
- var symlinkFull = fs.readlinkSync(_path.join(sourceDir, files[i]));
-
- if (typeof opts !== 'undefined' && !opts.inflateSymlinks) {
- fs.symlinkSync(symlinkFull, _path.join(newDirLocation, files[i]));
- continue;
- }
-
- var tmpCurrFile = fs.lstatSync(_path.join(sourceDir, symlinkFull));
- if (tmpCurrFile.isDirectory()) {
- exports.copyDirSyncRecursive(_path.join(sourceDir, symlinkFull), _path.join(newDirLocation, files[i]), opts);
- } else {
- /* At this point, we've hit a file actually worth copying... so copy it on over. */
- fCopyFile(_path.join(sourceDir, symlinkFull), _path.join(newDirLocation, files[i]));
- }
- } else {
- /* At this point, we've hit a file actually worth copying... so copy it on over. */
- fCopyFile(_path.join(sourceDir, files[i]), _path.join(newDirLocation, files[i]));
- }
- }
-};
-
-/* wrench.chmodSyncRecursive("directory", filemode);
- *
- * Recursively dives through a directory and chmods everything to the desired mode. This is a
- * Synchronous function, which blocks things until it's done.
- *
- * Note: Directories should be passed to this function without a trailing slash.
- */
-exports.chmodSyncRecursive = function(sourceDir, filemode) {
- var files = fs.readdirSync(sourceDir);
-
- for(var i = 0; i < files.length; i++) {
- var currFile = fs.lstatSync(_path.join(sourceDir, files[i]));
-
- if(currFile.isDirectory()) {
- /* ...and recursion this thing right on back. */
- exports.chmodSyncRecursive(_path.join(sourceDir, files[i]), filemode);
- } else {
- /* At this point, we've hit a file actually worth copying... so copy it on over. */
- fs.chmod(_path.join(sourceDir, files[i]), filemode);
- }
- }
-
- /* Finally, chmod the parent directory */
- fs.chmod(sourceDir, filemode);
-};
-
-
-/* wrench.chownSyncRecursive("directory", uid, gid);
- *
- * Recursively dives through a directory and chowns everything to the desired user and group. This is a
- * Synchronous function, which blocks things until it's done.
- *
- * Note: Directories should be passed to this function without a trailing slash.
- */
-exports.chownSyncRecursive = function(sourceDir, uid, gid) {
- var files = fs.readdirSync(sourceDir);
-
- for(var i = 0; i < files.length; i++) {
- var currFile = fs.lstatSync(_path.join(sourceDir, files[i]));
-
- if(currFile.isDirectory()) {
- /* ...and recursion this thing right on back. */
- exports.chownSyncRecursive(_path.join(sourceDir, files[i]), uid, gid);
- } else {
- /* At this point, we've hit a file actually worth chowning... so own it. */
- fs.chownSync(_path.join(sourceDir, files[i]), uid, gid);
- }
- }
-
- /* Finally, chown the parent directory */
- fs.chownSync(sourceDir, uid, gid);
-};
-
-
-
-/* wrench.rmdirRecursive("directory_path", callback);
- *
- * Recursively dives through directories and obliterates everything about it.
- */
-exports.rmdirRecursive = function rmdirRecursive(dir, clbk){
- fs.readdir(dir, function(err, files){
- if (err) return clbk(err);
- (function rmFile(err){
- if (err) return clbk(err);
-
- var filename = files.shift();
- if (filename === null || typeof filename == 'undefined')
- return fs.rmdir(dir, clbk);
-
- var file = dir+'/'+filename;
- fs.lstat(file, function(err, stat){
- if (err) return clbk(err);
- if (stat.isDirectory())
- rmdirRecursive(file, rmFile);
- else
- fs.unlink(file, rmFile);
- });
- })();
- });
-};
-
-/* wrench.copyDirRecursive("directory_to_copy", "new_location", callback);
- *
- * Recursively dives through a directory and moves all its files to a new
- * location.
- *
- * Note: Directories should be passed to this function without a trailing slash.
- */
-exports.copyDirRecursive = function copyDirRecursive(srcDir, newDir, clbk) {
- fs.stat(newDir, function(err, newDirStat){
- if (!err) return exports.rmdirRecursive(newDir, function(err){
- copyDirRecursive(srcDir, newDir, clbk);
- });
-
- fs.stat(srcDir, function(err, srcDirStat){
- if (err) return clbk(err);
- fs.mkdir(newDir, srcDirStat.mode, function(err){
- if (err) return clbk(err);
- fs.readdir(srcDir, function(err, files){
- if (err) return clbk(err);
- (function copyFiles(err){
- if (err) return clbk(err);
-
- var filename = files.shift();
- if (filename === null || typeof filename == 'undefined')
- return clbk();
-
- var file = srcDir+'/'+filename,
- newFile = newDir+'/'+filename;
-
- fs.stat(file, function(err, fileStat){
- if (fileStat.isDirectory())
- copyDirRecursive(file, newFile, copyFiles);
- else if (fileStat.isSymbolicLink())
- fs.readlink(file, function(err, link){
- fs.symlink(link, newFile, copyFiles);
- });
- else
- fs.readFile(file, function(err, data){
- fs.writeFile(newFile, data, copyFiles);
- });
- });
- })();
- });
- });
- });
- });
-};
-
-var mkdirSyncRecursive = function(path, mode) {
- var self = this;
- path = _path.normalize(path)
-
- try {
- fs.mkdirSync(path, mode);
- } catch(err) {
- if(err.code == "ENOENT") {
- var slashIdx = path.lastIndexOf(_path.sep);
-
- if(slashIdx > 0) {
- var parentPath = path.substring(0, slashIdx);
- mkdirSyncRecursive(parentPath, mode);
- mkdirSyncRecursive(path, mode);
- } else {
- throw err;
- }
- } else if(err.code == "EEXIST") {
- return;
- } else {
- throw err;
- }
- }
-};
-exports.mkdirSyncRecursive = mkdirSyncRecursive;
-
-exports.LineReader = function(filename, bufferSize) {
- this.bufferSize = bufferSize || 8192;
- this.buffer = "";
- this.fd = fs.openSync(filename, "r");
- this.currentPosition = 0;
-};
-
-exports.LineReader.prototype = {
- close: function() {
- return fs.closeSync(this.fd);
- },
-
- getBufferAndSetCurrentPosition: function(position) {
- var res = fs.readSync(this.fd, this.bufferSize, position, "ascii");
-
- this.buffer += res[0];
- if(res[1] === 0) {
- this.currentPosition = -1;
- } else {
- this.currentPosition = position + res[1];
- }
-
- return this.currentPosition;
- },
-
- hasNextLine: function() {
- while(this.buffer.indexOf('\n') === -1) {
- this.getBufferAndSetCurrentPosition(this.currentPosition);
- if(this.currentPosition === -1) return false;
- }
-
- if(this.buffer.indexOf("\n") > -1) return true;
- return false;
- },
-
- getNextLine: function() {
- var lineEnd = this.buffer.indexOf("\n"),
- result = this.buffer.substring(0, lineEnd);
-
- this.buffer = this.buffer.substring(result.length + 1, this.buffer.length);
- return result;
- }
-};
-
-// vim: et ts=4 sw=4
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/lib/x.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/lib/x.js b/blackberry10/node_modules/wrench/lib/x.js
deleted file mode 100644
index 3ddffd6..0000000
--- a/blackberry10/node_modules/wrench/lib/x.js
+++ /dev/null
@@ -1 +0,0 @@
-require('./wrench').mkdirsSyncRecursive('x/lol/b', 777);
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/package.json
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/package.json b/blackberry10/node_modules/wrench/package.json
deleted file mode 100644
index c5e4397..0000000
--- a/blackberry10/node_modules/wrench/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "wrench",
- "description": "Recursive filesystem (and other) operations that Node *should* have.",
- "version": "1.4.4",
- "author": {
- "name": "Ryan McGrath",
- "email": "ryan@venodesigns.net"
- },
- "repository": {
- "type": "git",
- "url": "https://ryanmcgrath@github.com/ryanmcgrath/wrench-js.git"
- },
- "bugs": {
- "url": "http://github.com/ryanmcgrath/wrench-js/issues"
- },
- "directories": {
- "lib": "./lib/"
- },
- "dependencies": {},
- "devDependencies": {
- "nodeunit": ">= 0.6.4"
- },
- "main": "./lib/wrench",
- "engines": {
- "node": ">=0.1.97"
- },
- "scripts": {
- "test": "nodeunit tests/runner.js"
- },
- "licenses": [
- {
- "type": "MIT",
- "url": "http://github.com/ryanmcgrath/wrench-js/raw/master/LICENSE"
- }
- ],
- "readme": "wrench.js - Recursive file operations in Node.js\n----------------------------------------------------------------------------\nWhile I love Node.js, I've found myself missing some functions. Things like\nrecursively deleting/chmodding a directory (or even deep copying a directory),\nor even a basic line reader, shouldn't need to be re-invented time and time again.\n\nThat said, here's my attempt at a re-usable solution, at least until something\nmore formalized gets integrated into Node.js (*hint hint*). wrench.js is fairly simple\nto use - check out the documentation/examples below:\n\nInstallation\n-----------------------------------------------------------------------------\n\n npm install wrench\n\nUsage\n-----------------------------------------------------------------------------\n``` javascript\nvar wrench = require('wrench'),\n\tutil = require('util');\n```\n\n### Synchronous operations\n``` javascript\n// Recursively create directories, sub-trees and all.\n
wrench.mkdirSyncRecursive(dir, 0777);\n\n// Recursively delete the entire sub-tree of a directory, then kill the directory\nwrench.rmdirSyncRecursive('my_directory_name', failSilently);\n\n// Recursively read directories contents.\nwrench.readdirSyncRecursive('my_directory_name');\n\n// Recursively chmod the entire sub-tree of a directory\nwrench.chmodSyncRecursive('my_directory_name', 0755);\n\n// Recursively chown the entire sub-tree of a directory\nwrench.chownSyncRecursive(\"directory\", uid, gid);\n\n// Deep-copy an existing directory\nwrench.copyDirSyncRecursive('directory_to_copy', 'location_where_copy_should_end_up');\n\n// Read lines in from a file until you hit the end\nvar f = new wrench.LineReader('x.txt');\nwhile(f.hasNextLine()) {\n\tutil.puts(x.getNextLine());\n}\n\n// Note: You will need to close that above line reader at some point, otherwise\n// you will run into a \"too many open files\" error. f.close() or fs.closeSync(f.fd) are\n// your friends, as only you know
when it is safe to close.\n```\n\n### Asynchronous operations\n``` javascript\n// Recursively read directories contents\nvar files = [];\nwrench.readdirRecursive('my_directory_name', function(error, curFiles) {\n // curFiles is what you want\n});\n```\n\nQuestions, comments? Hit me up. (ryan [at] venodesigns.net | http://twitter.com/ryanmcgrath)\n",
- "readmeFilename": "readme.md",
- "_id": "wrench@1.4.4",
- "_from": "wrench@1.4.4"
-}
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/readme.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/readme.md b/blackberry10/node_modules/wrench/readme.md
deleted file mode 100644
index 243c0da..0000000
--- a/blackberry10/node_modules/wrench/readme.md
+++ /dev/null
@@ -1,63 +0,0 @@
-wrench.js - Recursive file operations in Node.js
-----------------------------------------------------------------------------
-While I love Node.js, I've found myself missing some functions. Things like
-recursively deleting/chmodding a directory (or even deep copying a directory),
-or even a basic line reader, shouldn't need to be re-invented time and time again.
-
-That said, here's my attempt at a re-usable solution, at least until something
-more formalized gets integrated into Node.js (*hint hint*). wrench.js is fairly simple
-to use - check out the documentation/examples below:
-
-Installation
------------------------------------------------------------------------------
-
- npm install wrench
-
-Usage
------------------------------------------------------------------------------
-``` javascript
-var wrench = require('wrench'),
- util = require('util');
-```
-
-### Synchronous operations
-``` javascript
-// Recursively create directories, sub-trees and all.
-wrench.mkdirSyncRecursive(dir, 0777);
-
-// Recursively delete the entire sub-tree of a directory, then kill the directory
-wrench.rmdirSyncRecursive('my_directory_name', failSilently);
-
-// Recursively read directories contents.
-wrench.readdirSyncRecursive('my_directory_name');
-
-// Recursively chmod the entire sub-tree of a directory
-wrench.chmodSyncRecursive('my_directory_name', 0755);
-
-// Recursively chown the entire sub-tree of a directory
-wrench.chownSyncRecursive("directory", uid, gid);
-
-// Deep-copy an existing directory
-wrench.copyDirSyncRecursive('directory_to_copy', 'location_where_copy_should_end_up');
-
-// Read lines in from a file until you hit the end
-var f = new wrench.LineReader('x.txt');
-while(f.hasNextLine()) {
- util.puts(x.getNextLine());
-}
-
-// Note: You will need to close that above line reader at some point, otherwise
-// you will run into a "too many open files" error. f.close() or fs.closeSync(f.fd) are
-// your friends, as only you know when it is safe to close.
-```
-
-### Asynchronous operations
-``` javascript
-// Recursively read directories contents
-var files = [];
-wrench.readdirRecursive('my_directory_name', function(error, curFiles) {
- // curFiles is what you want
-});
-```
-
-Questions, comments? Hit me up. (ryan [at] venodesigns.net | http://twitter.com/ryanmcgrath)
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/copydirsync_unix.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/copydirsync_unix.js b/blackberry10/node_modules/wrench/tests/copydirsync_unix.js
deleted file mode 100644
index 676c9fa..0000000
--- a/blackberry10/node_modules/wrench/tests/copydirsync_unix.js
+++ /dev/null
@@ -1,210 +0,0 @@
-var testCase = require('nodeunit').testCase;
-var fs = require('fs');
-var wrench = require('../lib/wrench');
-var path = require('path');
-
-function checkResultHidden(test, files) {
- var check = [
- '.hidden',
- '.hidden.txt',
- 'bar.txt',
- 'foo',
- path.join('.hidden', 'dolor.md'),
- path.join('foo', 'bar'),
- path.join('foo', 'dolor.md'),
- path.join('foo', 'lorem.txt'),
- path.join('foo', 'bar', 'ipsum.js')
- ];
-
- test.deepEqual(files, check);
-}
-
-function checkResultShown(test, files) {
- var check = [
- 'bar.txt',
- 'foo',
- path.join('foo', 'bar'),
- path.join('foo', 'dolor.md'),
- path.join('foo', 'lorem.txt'),
- path.join('foo', 'bar', 'ipsum.js')
- ];
-
- test.deepEqual(files, check);
-}
-
-function checkResultInflate(test, files) {
- var check = [
- '.hidden',
- 'bar.txt',
- 'test',
- path.join('.hidden', 'dolor.md')
- ];
-
- test.deepEqual(files, check);
-
- test.deepEqual(fs.lstatSync(path.join(__dirname, 'testdir/.hidden')).isSymbolicLink(), false);
- test.deepEqual(fs.lstatSync(path.join(__dirname, 'testdir/bar.txt')).isSymbolicLink(), false);
-}
-
-function checkResultDontInflate(test, files) {
- var check = [
- '.hidden',
- 'bar.txt',
- 'test',
- path.join('.hidden', 'dolor.md')
- ];
-
- test.deepEqual(files, check);
-
- test.deepEqual(fs.lstatSync(path.join(__dirname, 'testdir/.hidden')).isSymbolicLink(), true);
- test.deepEqual(fs.lstatSync(path.join(__dirname, 'testdir/bar.txt')).isSymbolicLink(), true);
-}
-
-function checkResultPreserveFiles(test, files) {
- checkResultHidden(test, files);
- var contents = fs.readFileSync(path.join(__dirname, path.join('testdir2', '.hidden.txt')), "utf8");
- test.deepEqual(contents, 'hidden file');
- contents = fs.readFileSync(path.join(__dirname, path.join('testdir2', 'bar.txt')), "utf8");
- test.deepEqual(contents, 'shown file');
-}
-
-function checkResultOverwriteFiles(test, files) {
- checkResultHidden(test, files);
- var contents = fs.readFileSync(path.join(__dirname, path.join('testdir2', '.hidden.txt')), "utf8");
- test.deepEqual(contents, 'just some text for .hidden.txt');
- contents = fs.readFileSync(path.join(__dirname, path.join('testdir2', 'bar.txt')), "utf8");
- test.deepEqual(contents, 'just some text for bar.txt');
-}
-
-module.exports = testCase({
- test_copyDirSyncRecursiveWithoutOptions: function(test) {
- var dir = path.join(__dirname, 'shown');
- var testdir = path.join(__dirname, 'testdir');
-
- wrench.copyDirSyncRecursive(dir, testdir);
-
- wrench.rmdirSyncRecursive(testdir);
- test.done();
- },
- test_copyDirSyncRecursiveHidden: function(test) {
- var dir = path.join(__dirname, 'shown');
- var testdir = path.join(__dirname, 'testdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir, 0777);
- wrench.copyDirSyncRecursive(dir, testdir, { excludeHiddenUnix: false });
-
- var files = wrench.readdirSyncRecursive(testdir);
-
- checkResultHidden(test, files);
-
- wrench.rmdirSyncRecursive(testdir);
-
- test.done();
- },
- test_copyDirSyncRecursiveShown: function(test) {
- var dir = path.join(__dirname, 'shown');
- var testdir = path.join(__dirname, 'testdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir, 0777);
- wrench.copyDirSyncRecursive(dir, testdir, { excludeHiddenUnix: true });
-
- var files = wrench.readdirSyncRecursive(testdir);
-
- checkResultShown(test, files);
-
- wrench.rmdirSyncRecursive(testdir);
-
- test.done();
- },
- test_copyDirSyncRecursiveInflate: function(test) {
- var dir = path.join(__dirname, 'withsymlinks');
- var testdir = path.join(__dirname, 'testdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir, 0777);
- wrench.copyDirSyncRecursive(dir, testdir, { excludeHiddenUnix: false, inflateSymlinks: true });
-
- var files = wrench.readdirSyncRecursive(testdir);
-
- checkResultInflate(test, files);
-
- wrench.rmdirSyncRecursive(testdir);
-
- test.done();
- },
- test_copyDirSyncRecursiveDontInflate: function(test) {
- var dir = path.join(__dirname, 'withsymlinks');
- var testdir = path.join(__dirname, 'testdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir, 0777);
- wrench.copyDirSyncRecursive(dir, testdir, { excludeHiddenUnix: false, inflateSymlinks: false });
-
- var files = wrench.readdirSyncRecursive(testdir);
-
- checkResultDontInflate(test, files);
-
- wrench.rmdirSyncRecursive(testdir);
-
- test.done();
- },
- test_copyDirSyncRecursivePreserveFiles: function(test) {
- var dir = path.join(__dirname, 'shown'),
- testdir1 = path.join(__dirname, 'testdir1'),
- testdir2 = path.join(__dirname, 'testdir2');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir1, 0777);
- wrench.copyDirSyncRecursive(dir, testdir1, { excludeHiddenUnix: false });
- wrench.copyDirSyncRecursive(dir, testdir2, { excludeHiddenUnix: false });
-
- fs.writeFileSync(path.join(testdir1, ".hidden.txt"), 'just some text for .hidden.txt');
- fs.writeFileSync(path.join(testdir1, "bar.txt"), 'just some text for bar.txt');
-
- wrench.copyDirSyncRecursive(testdir1, testdir2, { preserve: true, excludeHiddenUnix: false, preserveFiles: true });
-
- var files = wrench.readdirSyncRecursive(testdir2);
-
- checkResultPreserveFiles(test, files);
-
- wrench.rmdirSyncRecursive(testdir1);
- wrench.rmdirSyncRecursive(testdir2);
-
- test.done();
- },
- test_copyDirSyncRecursiveOverwriteFiles: function(test) {
- var dir = path.join(__dirname, 'shown'),
- testdir1 = path.join(__dirname, 'testdir1'),
- testdir2 = path.join(__dirname, 'testdir2');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- wrench.mkdirSyncRecursive(testdir1, 0777);
- wrench.copyDirSyncRecursive(dir, testdir1, { excludeHiddenUnix: false });
- wrench.copyDirSyncRecursive(dir, testdir2, { excludeHiddenUnix: false });
-
- fs.writeFileSync(path.join(testdir1, ".hidden.txt"), 'just some text for .hidden.txt');
- fs.writeFileSync(path.join(testdir1, "bar.txt"), 'just some text for bar.txt');
-
- wrench.copyDirSyncRecursive(testdir1, testdir2, { preserve: true, excludeHiddenUnix: false, preserveFiles: false });
-
- var files = wrench.readdirSyncRecursive(testdir2);
-
- checkResultOverwriteFiles(test, files);
-
- wrench.rmdirSyncRecursive(testdir1);
- wrench.rmdirSyncRecursive(testdir2);
-
- test.done();
- }
-
-});
-
-// vim: et ts=4 sw=4
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/mkdir.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/mkdir.js b/blackberry10/node_modules/wrench/tests/mkdir.js
deleted file mode 100644
index 933887b..0000000
--- a/blackberry10/node_modules/wrench/tests/mkdir.js
+++ /dev/null
@@ -1,26 +0,0 @@
-var testCase = require('nodeunit').testCase;
-var fs = require('fs');
-var wrench = require('../lib/wrench');
-var path = require('path');
-
-module.exports = testCase({
- test_mkdirSyncRecursive: function(test) {
- var dir = __dirname + '/_tmp/foo/bar';
-
- test.equals(fs.existsSync(dir), false, 'Dir shouldn\'t exist - clean it up manually?');
-
- wrench.mkdirSyncRecursive(dir, 0777);
-
- test.equals(fs.existsSync(dir), true, 'Dir should exist now');
-
- // clean up
- while (dir != __dirname) {
- fs.rmdirSync(dir);
- dir = path.dirname(dir);
- }
-
- test.done();
- },
-});
-
-// vim: et ts=4 sw=4
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/readdir.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/readdir.js b/blackberry10/node_modules/wrench/tests/readdir.js
deleted file mode 100644
index 2460203..0000000
--- a/blackberry10/node_modules/wrench/tests/readdir.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var testCase = require('nodeunit').testCase;
-var fs = require('fs');
-var wrench = require('../lib/wrench');
-var path = require('path');
-
-
-function checkResult(test, files) {
- var check = [
- 'bar.txt',
- 'foo',
- path.join('foo', 'bar'),
- path.join('foo', 'dolor.md'),
- path.join('foo', 'lorem.txt'),
- path.join('foo', 'bar', 'ipsum.js')
- ];
-
- test.deepEqual(files, check);
-
- test.done();
-}
-
-module.exports = testCase({
- test_readdirSyncRecursive: function(test) {
- var dir = path.join(__dirname, 'readdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- var files = wrench.readdirSyncRecursive(dir);
-
- checkResult(test, files);
- },
-
- test_readdirRecursive: function(test) {
- var dir = path.join(__dirname, 'readdir');
-
- test.ok(fs.existsSync(dir), 'Folders should exist');
-
- var allFiles = [];
-
- wrench.readdirRecursive(dir, function(e, files) {
- if (e) throw e;
-
- if (files) {
- allFiles = allFiles.concat(files);
- } else {
- checkResult(test, allFiles);
- }
- });
- }
-});
-
-// vim: et ts=4 sw=4
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/readdir/bar.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/readdir/bar.txt b/blackberry10/node_modules/wrench/tests/readdir/bar.txt
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/readdir/foo/bar/ipsum.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/readdir/foo/bar/ipsum.js b/blackberry10/node_modules/wrench/tests/readdir/foo/bar/ipsum.js
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/readdir/foo/dolor.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/readdir/foo/dolor.md b/blackberry10/node_modules/wrench/tests/readdir/foo/dolor.md
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/readdir/foo/lorem.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/readdir/foo/lorem.txt b/blackberry10/node_modules/wrench/tests/readdir/foo/lorem.txt
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/runner.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/runner.js b/blackberry10/node_modules/wrench/tests/runner.js
deleted file mode 100644
index 8f90dae..0000000
--- a/blackberry10/node_modules/wrench/tests/runner.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// `nodeunit tests/runner`
-// will run all the tests
-
-module.exports = {
- group_mkdir: require('./mkdir'),
- group_readdir: require('./readdir'),
- group_copydir: require('./copydirsync_unix')
-};
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/.hidden.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/.hidden.txt b/blackberry10/node_modules/wrench/tests/shown/.hidden.txt
deleted file mode 100644
index b96b725..0000000
--- a/blackberry10/node_modules/wrench/tests/shown/.hidden.txt
+++ /dev/null
@@ -1 +0,0 @@
-hidden file
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/.hidden/dolor.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/.hidden/dolor.md b/blackberry10/node_modules/wrench/tests/shown/.hidden/dolor.md
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/bar.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/bar.txt b/blackberry10/node_modules/wrench/tests/shown/bar.txt
deleted file mode 100644
index 3d36c5c..0000000
--- a/blackberry10/node_modules/wrench/tests/shown/bar.txt
+++ /dev/null
@@ -1 +0,0 @@
-shown file
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/foo/bar/ipsum.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/foo/bar/ipsum.js b/blackberry10/node_modules/wrench/tests/shown/foo/bar/ipsum.js
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/foo/dolor.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/foo/dolor.md b/blackberry10/node_modules/wrench/tests/shown/foo/dolor.md
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/shown/foo/lorem.txt
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/shown/foo/lorem.txt b/blackberry10/node_modules/wrench/tests/shown/foo/lorem.txt
deleted file mode 100644
index e69de29..0000000
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/wrench/tests/withsymlinks/test
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/wrench/tests/withsymlinks/test b/blackberry10/node_modules/wrench/tests/withsymlinks/test
deleted file mode 100644
index dba6882..0000000
--- a/blackberry10/node_modules/wrench/tests/withsymlinks/test
+++ /dev/null
@@ -1 +0,0 @@
-aaa bbb ccc ddd
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/.npmignore
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/.npmignore b/blackberry10/node_modules/xml2js/.npmignore
deleted file mode 100644
index c3c1388..0000000
--- a/blackberry10/node_modules/xml2js/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.swp
-node_modules
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/Cakefile
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/Cakefile b/blackberry10/node_modules/xml2js/Cakefile
deleted file mode 100644
index 1143442..0000000
--- a/blackberry10/node_modules/xml2js/Cakefile
+++ /dev/null
@@ -1,12 +0,0 @@
-{spawn, exec} = require 'child_process'
-
-task 'build', 'continually build the JavaScript code', ->
- coffee = spawn 'coffee', ['-cw', '-o', 'lib', 'src']
- coffee.stdout.on 'data', (data) -> console.log data.toString().trim()
-
-task 'doc', 'rebuild the Docco documentation', ->
- exec([
- 'docco src/xml2js.coffee'
- ].join(' && '), (err) ->
- throw err if err
- )
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/LICENSE b/blackberry10/node_modules/xml2js/LICENSE
deleted file mode 100644
index 83c3140..0000000
--- a/blackberry10/node_modules/xml2js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright 2010, 2011. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/README.md
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/README.md b/blackberry10/node_modules/xml2js/README.md
deleted file mode 100644
index 2765d8c..0000000
--- a/blackberry10/node_modules/xml2js/README.md
+++ /dev/null
@@ -1,139 +0,0 @@
-node-xml2js
-===========
-
-Ever had the urge to parse XML? And wanted to access the data in some sane,
-easy way? Don't want to compile a C parser, for whatever reason? Then xml2js is
-what you're looking for!
-
-Description
-===========
-
-Simple XML to JavaScript object converter. Uses
-[sax-js](https://github.com/isaacs/sax-js/).
-
-Note: If you're looking for a full DOM parser, you probably want
-[JSDom](https://github.com/tmpvar/jsdom).
-
-Installation
-============
-
-Simplest way to install `xml2js` is to use [npm](http://npmjs.org), just `npm
-install xml2js` which will download xml2js and all dependencies.
-
-Usage
-=====
-
-This will have to do, unless you're looking for some fancy extensive
-documentation. If you're looking for every single option and usage, see the
-unit tests.
-
-Simple as pie usage
--------------------
-
-The simplest way to use it, is to use the optional callback interface added in
-0.1.11. That's right, if you have been using xml-simple or a home-grown
-wrapper, this is for you:
-
-```javascript
-var fs = require('fs'),
- xml2js = require('xml2js');
-
-var parser = new xml2js.Parser();
-fs.readFile(__dirname + '/foo.xml', function(err, data) {
- parser.parseString(data, function (err, result) {
- console.dir(result);
- console.log('Done');
- });
-});
-```
-
-Look ma, no event listeners! Alternatively you can still use the traditional
-`addListener` variant:
-
-```javascript
-var fs = require('fs'),
- xml2js = require('xml2js');
-
-var parser = new xml2js.Parser();
-parser.addListener('end', function(result) {
- console.dir(result);
- console.log('Done.');
-});
-fs.readFile(__dirname + '/foo.xml', function(err, data) {
- parser.parseString(data);
-});
-```
-
-You can also use xml2js from
-[CoffeeScript](http://jashkenas.github.com/coffee-script/), further reducing
-the clutter:
-
-```coffeescript
-fs = require 'fs',
-xml2js = require 'xml2js'
-
-parser = new xml2js.Parser()
-fs.readFile __dirname + '/foo.xml', (err, data) ->
- parser.parseString data, (err, result) ->
- console.dir result
- console.log 'Done.'
-```
-
-So you wanna some JSON?
------------------------
-
-Just wrap the `result` object in a call to `JSON.stringify` like this
-`JSON.stringify(result)`. You get a string containing the JSON representation
-of the parsed object that you can feed to JSON-hungry consumers.
-
-Displaying results
-------------------
-
-You might wonder why, using `console.dir` or `console.log` the output at some
-level is only `[Object]`. Don't worry, this is not because xml2js got lazy.
-That's because Node uses `util.inspect` to convert the object into strings and
-that function stops after `depth=2` which is a bit low for most XML.
-
-To display the whole deal, you can use `console.log(util.inspect(result, false,
-null))`, which displays the whole result.
-
-So much for that, but what if you use
-[eyes](https://github.com/cloudhead/eyes.js) for nice colored output and it
-truncates the output with `…`? Don't fear, there's also a solution for that,
-you just need to increase the `maxLength` limit by creating a custom inspector
-`var inspect = require('eyes').inspector({maxLength: false})` and then you can
-easily `inspect(result)`.
-
-Options
-=======
-
-Apart from the default settings, there is a number of options that can be
-specified for the parser. Options are specified by ``new Parser({optionName:
-value})``. Possible options are:
-
- * `explicitCharkey` (default: `false`)
- * `trim` (default: `true`): Trim the whitespace at the beginning and end of
- text nodes.
- * `normalize` (default: `true`): Trim whitespaces inside text nodes.
- * `explicitRoot` (default: `false`): Set this if you want to get the root
- node in the resulting object.
- * `emptyTag` (default: `undefined`): what will the value of empty nodes be.
- Default is `{}`.
- * `explicitArray` (default: `false`): Always put child nodes in an array if
- true; otherwise an array is created only if there is more than one.
- * `ignoreAttrs` (default: `false`): Ignore all XML attributes and only create
- text nodes.
- * `mergeAttrs` (default: `false`): Merge attributes and child elements as
- properties of the parent, instead of keying attributes off a child
- attribute object. This option is ignored if `ignoreAttrs` is `false`.
-
-These default settings are for backward-compatibility (and might change in the
-future). For the most 'clean' parsing, you should disable `normalize` and
-`trimming` and enable `explicitRoot`.
-
-Running tests, development
-==========================
-
-The development requirements are handled by npm, you just need to install
-them. We also have a number of unit tests, they can be run using `zap`
-directly from the project root.
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/lib/xml2js.js
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/lib/xml2js.js b/blackberry10/node_modules/xml2js/lib/xml2js.js
deleted file mode 100644
index 0938746..0000000
--- a/blackberry10/node_modules/xml2js/lib/xml2js.js
+++ /dev/null
@@ -1,152 +0,0 @@
-(function() {
- var events, isEmpty, sax;
- var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor; child.__super__ = parent.prototype; return child; };
-
- sax = require('sax');
-
- events = require('events');
-
- isEmpty = function(thing) {
- return typeof thing === "object" && (thing != null) && Object.keys(thing).length === 0;
- };
-
- exports.Parser = (function() {
-
- __extends(Parser, events.EventEmitter);
-
- function Parser(opts) {
- this.parseString = __bind(this.parseString, this);
- this.reset = __bind(this.reset, this);
- var key, value;
- this.options = {
- explicitCharkey: false,
- trim: true,
- normalize: true,
- attrkey: "@",
- charkey: "#",
- explicitArray: false,
- ignoreAttrs: false,
- mergeAttrs: false
- };
- for (key in opts) {
- if (!__hasProp.call(opts, key)) continue;
- value = opts[key];
- this.options[key] = value;
- }
- this.reset();
- }
-
- Parser.prototype.reset = function() {
- var attrkey, charkey, err, stack;
- var _this = this;
- this.removeAllListeners();
- this.saxParser = sax.parser(true, {
- trim: false,
- normalize: false
- });
- err = false;
- this.saxParser.onerror = function(error) {
- if (!err) {
- err = true;
- return _this.emit("error", error);
- }
- };
- this.EXPLICIT_CHARKEY = this.options.explicitCharkey;
- this.resultObject = null;
- stack = [];
- attrkey = this.options.attrkey;
- charkey = this.options.charkey;
- this.saxParser.onopentag = function(node) {
- var key, obj, _ref;
- obj = {};
- obj[charkey] = "";
- if (!_this.options.ignoreAttrs) {
- _ref = node.attributes;
- for (key in _ref) {
- if (!__hasProp.call(_ref, key)) continue;
- if (!(attrkey in obj) && !_this.options.mergeAttrs) obj[attrkey] = {};
- if (_this.options.mergeAttrs) {
- obj[key] = node.attributes[key];
- } else {
- obj[attrkey][key] = node.attributes[key];
- }
- }
- }
- obj["#name"] = node.name;
- return stack.push(obj);
- };
- this.saxParser.onclosetag = function() {
- var nodeName, obj, old, s;
- obj = stack.pop();
- nodeName = obj["#name"];
- delete obj["#name"];
- s = stack[stack.length - 1];
- if (obj[charkey].match(/^\s*$/)) {
- delete obj[charkey];
- } else {
- if (_this.options.trim) obj[charkey] = obj[charkey].trim();
- if (_this.options.normalize) {
- obj[charkey] = obj[charkey].replace(/\s{2,}/g, " ").trim();
- }
- if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {
- obj = obj[charkey];
- }
- }
- if (_this.options.emptyTag !== void 0 && isEmpty(obj)) {
- obj = _this.options.emptyTag;
- }
- if (stack.length > 0) {
- if (!_this.options.explicitArray) {
- if (!(nodeName in s)) {
- return s[nodeName] = obj;
- } else if (s[nodeName] instanceof Array) {
- return s[nodeName].push(obj);
- } else {
- old = s[nodeName];
- s[nodeName] = [old];
- return s[nodeName].push(obj);
- }
- } else {
- if (!(s[nodeName] instanceof Array)) s[nodeName] = [];
- return s[nodeName].push(obj);
- }
- } else {
- if (_this.options.explicitRoot) {
- old = obj;
- obj = {};
- obj[nodeName] = old;
- }
- _this.resultObject = obj;
- return _this.emit("end", _this.resultObject);
- }
- };
- return this.saxParser.ontext = this.saxParser.oncdata = function(text) {
- var s;
- s = stack[stack.length - 1];
- if (s) return s[charkey] += text;
- };
- };
-
- Parser.prototype.parseString = function(str, cb) {
- if ((cb != null) && typeof cb === "function") {
- this.on("end", function(result) {
- this.reset();
- return cb(null, result);
- });
- this.on("error", function(err) {
- this.reset();
- return cb(err);
- });
- }
- if (str.toString().trim() === '') {
- this.emit("end", null);
- return true;
- }
- return this.saxParser.write(str.toString());
- };
-
- return Parser;
-
- })();
-
-}).call(this);
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/node_modules/sax/AUTHORS
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/node_modules/sax/AUTHORS b/blackberry10/node_modules/xml2js/node_modules/sax/AUTHORS
deleted file mode 100644
index 7145cbc..0000000
--- a/blackberry10/node_modules/xml2js/node_modules/sax/AUTHORS
+++ /dev/null
@@ -1,10 +0,0 @@
-# contributors sorted by whether or not they're me.
-Isaac Z. Schlueter <i...@izs.me>
-Stein Martin Hustad <st...@hustad.com>
-Mikeal Rogers <mi...@gmail.com>
-Laurie Harper <la...@holoweb.net>
-Jann Horn <ja...@Jann-PC.fritz.box>
-Elijah Insua <tm...@gmail.com>
-Henry Rawas <he...@schakra.com>
-Justin Makeig <jm...@makeig.com>
-Mike Schilling <mi...@emotive.com>
http://git-wip-us.apache.org/repos/asf/cordova-blackberry/blob/a6733a83/blackberry10/node_modules/xml2js/node_modules/sax/LICENSE
----------------------------------------------------------------------
diff --git a/blackberry10/node_modules/xml2js/node_modules/sax/LICENSE b/blackberry10/node_modules/xml2js/node_modules/sax/LICENSE
deleted file mode 100644
index 62e4ccf..0000000
--- a/blackberry10/node_modules/xml2js/node_modules/sax/LICENSE
+++ /dev/null
@@ -1,32 +0,0 @@
-Copyright (c) Isaac Z. Schlueter ("Author")
-All rights reserved.
-
-The BSD License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-The file "examples/strict.dtd" is licensed by the W3C and used according
-to the terms of the W3C SOFTWARE NOTICE AND LICENSE. See LICENSE-W3C.html
-for details.