conversion from php to nodejs started

This commit is contained in:
Marc Wäckerlin
2016-01-14 15:34:50 +00:00
parent cc806e11f9
commit f6561405df
1236 changed files with 189580 additions and 0 deletions

92
nodejs/node_modules/stylus/lib/nodes/arguments.js generated vendored Normal file
View File

@@ -0,0 +1,92 @@
/*!
* Stylus - Arguments
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('../nodes')
, utils = require('../utils');
/**
* Initialize a new `Arguments`.
*
* @api public
*/
var Arguments = module.exports = function Arguments(){
nodes.Expression.call(this);
this.map = {};
};
/**
* Inherit from `nodes.Expression.prototype`.
*/
Arguments.prototype.__proto__ = nodes.Expression.prototype;
/**
* Initialize an `Arguments` object with the nodes
* from the given `expr`.
*
* @param {Expression} expr
* @return {Arguments}
* @api public
*/
Arguments.fromExpression = function(expr){
var args = new Arguments
, len = expr.nodes.length;
args.lineno = expr.lineno;
args.column = expr.column;
args.isList = expr.isList;
for (var i = 0; i < len; ++i) {
args.push(expr.nodes[i]);
}
return args;
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Arguments.prototype.clone = function(parent){
var clone = nodes.Expression.prototype.clone.call(this, parent);
clone.map = {};
for (var key in this.map) {
clone.map[key] = this.map[key].clone(parent, clone);
}
clone.isList = this.isList;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Arguments.prototype.toJSON = function(){
return {
__type: 'Arguments',
map: this.map,
isList: this.isList,
preserve: this.preserve,
lineno: this.lineno,
column: this.column,
filename: this.filename,
nodes: this.nodes
};
};

79
nodejs/node_modules/stylus/lib/nodes/atblock.js generated vendored Normal file
View File

@@ -0,0 +1,79 @@
/*!
* Stylus - @block
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `@block` node.
*
* @api public
*/
var Atblock = module.exports = function Atblock(){
Node.call(this);
};
/**
* Return `block` nodes.
*/
Atblock.prototype.__defineGetter__('nodes', function(){
return this.block.nodes;
});
/**
* Inherit from `Node.prototype`.
*/
Atblock.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Atblock.prototype.clone = function(parent){
var clone = new Atblock;
clone.block = this.block.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return @block.
*
* @return {String}
* @api public
*/
Atblock.prototype.toString = function(){
return '@block';
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Atblock.prototype.toJSON = function(){
return {
__type: 'Atblock',
block: this.block,
lineno: this.lineno,
column: this.column,
fileno: this.fileno
};
};

136
nodejs/node_modules/stylus/lib/nodes/atrule.js generated vendored Normal file
View File

@@ -0,0 +1,136 @@
/*!
* Stylus - at-rule
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new at-rule node.
*
* @param {String} type
* @api public
*/
var Atrule = module.exports = function Atrule(type){
Node.call(this);
this.type = type;
};
/**
* Inherit from `Node.prototype`.
*/
Atrule.prototype.__proto__ = Node.prototype;
/**
* Check if at-rule's block has only properties.
*
* @return {Boolean}
* @api public
*/
Atrule.prototype.__defineGetter__('hasOnlyProperties', function(){
if (!this.block) return false;
var nodes = this.block.nodes;
for (var i = 0, len = nodes.length; i < len; ++i) {
var nodeName = nodes[i].nodeName;
switch(nodes[i].nodeName) {
case 'property':
case 'expression':
case 'comment':
continue;
default:
return false;
}
}
return true;
});
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Atrule.prototype.clone = function(parent){
var clone = new Atrule(this.type);
if (this.block) clone.block = this.block.clone(parent, clone);
clone.segments = this.segments.map(function(node){ return node.clone(parent, clone); });
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Atrule.prototype.toJSON = function(){
var json = {
__type: 'Atrule',
type: this.type,
segments: this.segments,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.block) json.block = this.block;
return json;
};
/**
* Return @<type>.
*
* @return {String}
* @api public
*/
Atrule.prototype.toString = function(){
return '@' + this.type;
};
/**
* Check if the at-rule's block has output nodes.
*
* @return {Boolean}
* @api public
*/
Atrule.prototype.__defineGetter__('hasOutput', function(){
return !!this.block && hasOutput(this.block);
});
function hasOutput(block) {
var nodes = block.nodes;
// only placeholder selectors
if (nodes.every(function(node){
return 'group' == node.nodeName && node.hasOnlyPlaceholders;
})) return false;
// something visible
return nodes.some(function(node) {
switch (node.nodeName) {
case 'property':
case 'literal':
case 'import':
return true;
case 'block':
return hasOutput(node);
default:
if (node.block) return hasOutput(node.block);
}
});
}

83
nodejs/node_modules/stylus/lib/nodes/binop.js generated vendored Normal file
View File

@@ -0,0 +1,83 @@
/*!
* Stylus - BinOp
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `BinOp` with `op`, `left` and `right`.
*
* @param {String} op
* @param {Node} left
* @param {Node} right
* @api public
*/
var BinOp = module.exports = function BinOp(op, left, right){
Node.call(this);
this.op = op;
this.left = left;
this.right = right;
};
/**
* Inherit from `Node.prototype`.
*/
BinOp.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
BinOp.prototype.clone = function(parent){
var clone = new BinOp(this.op);
clone.left = this.left.clone(parent, clone);
clone.right = this.right && this.right.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
if (this.val) clone.val = this.val.clone(parent, clone);
return clone;
};
/**
* Return <left> <op> <right>
*
* @return {String}
* @api public
*/
BinOp.prototype.toString = function() {
return this.left.toString() + ' ' + this.op + ' ' + this.right.toString();
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
BinOp.prototype.toJSON = function(){
var json = {
__type: 'BinOp',
left: this.left,
right: this.right,
op: this.op,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.val) json.val = this.val;
return json;
};

127
nodejs/node_modules/stylus/lib/nodes/block.js generated vendored Normal file
View File

@@ -0,0 +1,127 @@
/*!
* Stylus - Block
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Block` node with `parent` Block.
*
* @param {Block} parent
* @api public
*/
var Block = module.exports = function Block(parent, node){
Node.call(this);
this.nodes = [];
this.parent = parent;
this.node = node;
this.scope = true;
};
/**
* Inherit from `Node.prototype`.
*/
Block.prototype.__proto__ = Node.prototype;
/**
* Check if this block has properties..
*
* @return {Boolean}
* @api public
*/
Block.prototype.__defineGetter__('hasProperties', function(){
for (var i = 0, len = this.nodes.length; i < len; ++i) {
if ('property' == this.nodes[i].nodeName) {
return true;
}
}
});
/**
* Check if this block has @media nodes.
*
* @return {Boolean}
* @api public
*/
Block.prototype.__defineGetter__('hasMedia', function(){
for (var i = 0, len = this.nodes.length; i < len; ++i) {
var nodeName = this.nodes[i].nodeName;
if ('media' == nodeName) {
return true;
}
}
return false;
});
/**
* Check if this block is empty.
*
* @return {Boolean}
* @api public
*/
Block.prototype.__defineGetter__('isEmpty', function(){
return !this.nodes.length;
});
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Block.prototype.clone = function(parent, node){
parent = parent || this.parent;
var clone = new Block(parent, node || this.node);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.scope = this.scope;
this.nodes.forEach(function(node){
clone.push(node.clone(clone, clone));
});
return clone;
};
/**
* Push a `node` to this block.
*
* @param {Node} node
* @api public
*/
Block.prototype.push = function(node){
this.nodes.push(node);
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Block.prototype.toJSON = function(){
return {
__type: 'Block',
// parent: this.parent,
// node: this.node,
scope: this.scope,
lineno: this.lineno,
column: this.column,
filename: this.filename,
nodes: this.nodes
};
};

117
nodejs/node_modules/stylus/lib/nodes/boolean.js generated vendored Normal file
View File

@@ -0,0 +1,117 @@
/*!
* Stylus - Boolean
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Boolean` node with the given `val`.
*
* @param {Boolean} val
* @api public
*/
var Boolean = module.exports = function Boolean(val){
Node.call(this);
if (this.nodeName) {
this.val = !!val;
} else {
return new Boolean(val);
}
};
/**
* Inherit from `Node.prototype`.
*/
Boolean.prototype.__proto__ = Node.prototype;
/**
* Return `this` node.
*
* @return {Boolean}
* @api public
*/
Boolean.prototype.toBoolean = function(){
return this;
};
/**
* Return `true` if this node represents `true`.
*
* @return {Boolean}
* @api public
*/
Boolean.prototype.__defineGetter__('isTrue', function(){
return this.val;
});
/**
* Return `true` if this node represents `false`.
*
* @return {Boolean}
* @api public
*/
Boolean.prototype.__defineGetter__('isFalse', function(){
return ! this.val;
});
/**
* Negate the value.
*
* @return {Boolean}
* @api public
*/
Boolean.prototype.negate = function(){
return new Boolean(!this.val);
};
/**
* Return 'Boolean'.
*
* @return {String}
* @api public
*/
Boolean.prototype.inspect = function(){
return '[Boolean ' + this.val + ']';
};
/**
* Return 'true' or 'false'.
*
* @return {String}
* @api public
*/
Boolean.prototype.toString = function(){
return this.val
? 'true'
: 'false';
};
/**
* Return a JSON representaiton of this node.
*
* @return {Object}
* @api public
*/
Boolean.prototype.toJSON = function(){
return {
__type: 'Boolean',
val: this.val
};
};

85
nodejs/node_modules/stylus/lib/nodes/call.js generated vendored Normal file
View File

@@ -0,0 +1,85 @@
/*!
* Stylus - Call
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Call` with `name` and `args`.
*
* @param {String} name
* @param {Expression} args
* @api public
*/
var Call = module.exports = function Call(name, args){
Node.call(this);
this.name = name;
this.args = args;
};
/**
* Inherit from `Node.prototype`.
*/
Call.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Call.prototype.clone = function(parent){
var clone = new Call(this.name);
clone.args = this.args.clone(parent, clone);
if (this.block) clone.block = this.block.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return <name>(param1, param2, ...).
*
* @return {String}
* @api public
*/
Call.prototype.toString = function(){
var args = this.args.nodes.map(function(node) {
var str = node.toString();
return str.slice(1, str.length - 1);
}).join(', ');
return this.name + '(' + args + ')';
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Call.prototype.toJSON = function(){
var json = {
__type: 'Call',
name: this.name,
args: this.args,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.block) json.block = this.block;
return json;
};

58
nodejs/node_modules/stylus/lib/nodes/charset.js generated vendored Normal file
View File

@@ -0,0 +1,58 @@
/*!
* Stylus - Charset
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Charset` with the given `val`
*
* @param {String} val
* @api public
*/
var Charset = module.exports = function Charset(val){
Node.call(this);
this.val = val;
};
/**
* Inherit from `Node.prototype`.
*/
Charset.prototype.__proto__ = Node.prototype;
/**
* Return @charset "val".
*
* @return {String}
* @api public
*/
Charset.prototype.toString = function(){
return '@charset ' + this.val;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Charset.prototype.toJSON = function(){
return {
__type: 'Charset',
val: this.val,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

64
nodejs/node_modules/stylus/lib/nodes/comment.js generated vendored Normal file
View File

@@ -0,0 +1,64 @@
/*!
* Stylus - Comment
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Comment` with the given `str`.
*
* @param {String} str
* @param {Boolean} suppress
* @param {Boolean} inline
* @api public
*/
var Comment = module.exports = function Comment(str, suppress, inline){
Node.call(this);
this.str = str;
this.suppress = suppress;
this.inline = inline;
};
/**
* Inherit from `Node.prototype`.
*/
Comment.prototype.__proto__ = Node.prototype;
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Comment.prototype.toJSON = function(){
return {
__type: 'Comment',
str: this.str,
suppress: this.suppress,
inline: this.inline,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return comment.
*
* @return {String}
* @api public
*/
Comment.prototype.toString = function(){
return this.str;
};

75
nodejs/node_modules/stylus/lib/nodes/each.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
/*!
* Stylus - Each
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Each` node with the given `val` name,
* `key` name, `expr`, and `block`.
*
* @param {String} val
* @param {String} key
* @param {Expression} expr
* @param {Block} block
* @api public
*/
var Each = module.exports = function Each(val, key, expr, block){
Node.call(this);
this.val = val;
this.key = key;
this.expr = expr;
this.block = block;
};
/**
* Inherit from `Node.prototype`.
*/
Each.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Each.prototype.clone = function(parent){
var clone = new Each(this.val, this.key);
clone.expr = this.expr.clone(parent, clone);
clone.block = this.block.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Each.prototype.toJSON = function(){
return {
__type: 'Each',
val: this.val,
key: this.key,
expr: this.expr,
block: this.block,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

220
nodejs/node_modules/stylus/lib/nodes/expression.js generated vendored Normal file
View File

@@ -0,0 +1,220 @@
/*!
* Stylus - Expression
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('../nodes')
, utils = require('../utils');
/**
* Initialize a new `Expression`.
*
* @param {Boolean} isList
* @api public
*/
var Expression = module.exports = function Expression(isList){
Node.call(this);
this.nodes = [];
this.isList = isList;
};
/**
* Check if the variable has a value.
*
* @return {Boolean}
* @api public
*/
Expression.prototype.__defineGetter__('isEmpty', function(){
return !this.nodes.length;
});
/**
* Return the first node in this expression.
*
* @return {Node}
* @api public
*/
Expression.prototype.__defineGetter__('first', function(){
return this.nodes[0]
? this.nodes[0].first
: nodes.null;
});
/**
* Hash all the nodes in order.
*
* @return {String}
* @api public
*/
Expression.prototype.__defineGetter__('hash', function(){
return this.nodes.map(function(node){
return node.hash;
}).join('::');
});
/**
* Inherit from `Node.prototype`.
*/
Expression.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Expression.prototype.clone = function(parent){
var clone = new this.constructor(this.isList);
clone.preserve = this.preserve;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.nodes = this.nodes.map(function(node) {
return node.clone(parent, clone);
});
return clone;
};
/**
* Push the given `node`.
*
* @param {Node} node
* @api public
*/
Expression.prototype.push = function(node){
this.nodes.push(node);
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Expression.prototype.operate = function(op, right, val){
switch (op) {
case '[]=':
var self = this
, range = utils.unwrap(right).nodes
, val = utils.unwrap(val)
, len
, node;
range.forEach(function(unit){
len = self.nodes.length;
if ('unit' == unit.nodeName) {
var i = unit.val < 0 ? len + unit.val : unit.val
, n = i;
while (i-- > len) self.nodes[i] = nodes.null;
self.nodes[n] = val;
} else if (unit.string) {
node = self.nodes[0];
if (node && 'object' == node.nodeName) node.set(unit.string, val.clone());
}
});
return val;
case '[]':
var expr = new nodes.Expression
, vals = utils.unwrap(this).nodes
, range = utils.unwrap(right).nodes
, node;
range.forEach(function(unit){
if ('unit' == unit.nodeName) {
node = vals[unit.val < 0 ? vals.length + unit.val : unit.val];
} else if ('object' == vals[0].nodeName) {
node = vals[0].get(unit.string);
}
if (node) expr.push(node);
});
return expr.isEmpty
? nodes.null
: utils.unwrap(expr);
case '||':
return this.toBoolean().isTrue
? this
: right;
case 'in':
return Node.prototype.operate.call(this, op, right);
case '!=':
return this.operate('==', right, val).negate();
case '==':
var len = this.nodes.length
, right = right.toExpression()
, a
, b;
if (len != right.nodes.length) return nodes.false;
for (var i = 0; i < len; ++i) {
a = this.nodes[i];
b = right.nodes[i];
if (a.operate(op, b).isTrue) continue;
return nodes.false;
}
return nodes.true;
break;
default:
return this.first.operate(op, right, val);
}
};
/**
* Expressions with length > 1 are truthy,
* otherwise the first value's toBoolean()
* method is invoked.
*
* @return {Boolean}
* @api public
*/
Expression.prototype.toBoolean = function(){
if (this.nodes.length > 1) return nodes.true;
return this.first.toBoolean();
};
/**
* Return "<a> <b> <c>" or "<a>, <b>, <c>" if
* the expression represents a list.
*
* @return {String}
* @api public
*/
Expression.prototype.toString = function(){
return '(' + this.nodes.map(function(node){
return node.toString();
}).join(this.isList ? ', ' : ' ') + ')';
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Expression.prototype.toJSON = function(){
return {
__type: 'Expression',
isList: this.isList,
preserve: this.preserve,
lineno: this.lineno,
column: this.column,
filename: this.filename,
nodes: this.nodes
};
};

69
nodejs/node_modules/stylus/lib/nodes/extend.js generated vendored Normal file
View File

@@ -0,0 +1,69 @@
/*!
* Stylus - Extend
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Extend` with the given `selectors` array.
*
* @param {Array} selectors array of the selectors
* @api public
*/
var Extend = module.exports = function Extend(selectors){
Node.call(this);
this.selectors = selectors;
};
/**
* Inherit from `Node.prototype`.
*/
Extend.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Extend.prototype.clone = function(){
return new Extend(this.selectors);
};
/**
* Return `@extend selectors`.
*
* @return {String}
* @api public
*/
Extend.prototype.toString = function(){
return '@extend ' + this.selectors.join(', ');
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Extend.prototype.toJSON = function(){
return {
__type: 'Extend',
selectors: this.selectors,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

84
nodejs/node_modules/stylus/lib/nodes/feature.js generated vendored Normal file
View File

@@ -0,0 +1,84 @@
/*!
* Stylus - Feature
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Feature` with the given `segs`.
*
* @param {Array} segs
* @api public
*/
var Feature = module.exports = function Feature(segs){
Node.call(this);
this.segments = segs;
this.expr = null;
};
/**
* Inherit from `Node.prototype`.
*/
Feature.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Feature.prototype.clone = function(parent){
var clone = new Feature;
clone.segments = this.segments.map(function(node){ return node.clone(parent, clone); });
if (this.expr) clone.expr = this.expr.clone(parent, clone);
if (this.name) clone.name = this.name;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return "<ident>" or "(<ident>: <expr>)"
*
* @return {String}
* @api public
*/
Feature.prototype.toString = function(){
if (this.expr) {
return '(' + this.segments.join('') + ': ' + this.expr.toString() + ')';
} else {
return this.segments.join('');
}
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Feature.prototype.toJSON = function(){
var json = {
__type: 'Feature',
segments: this.segments,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.expr) json.expr = this.expr;
if (this.name) json.name = this.name;
return json;
};

128
nodejs/node_modules/stylus/lib/nodes/function.js generated vendored Normal file
View File

@@ -0,0 +1,128 @@
/*!
* Stylus - Function
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Function` with `name`, `params`, and `body`.
*
* @param {String} name
* @param {Params|Function} params
* @param {Block} body
* @api public
*/
var Function = module.exports = function Function(name, params, body){
Node.call(this);
this.name = name;
this.params = params;
this.block = body;
if ('function' == typeof params) this.fn = params;
};
/**
* Check function arity.
*
* @return {Boolean}
* @api public
*/
Function.prototype.__defineGetter__('arity', function(){
return this.params.length;
});
/**
* Inherit from `Node.prototype`.
*/
Function.prototype.__proto__ = Node.prototype;
/**
* Return hash.
*
* @return {String}
* @api public
*/
Function.prototype.__defineGetter__('hash', function(){
return 'function ' + this.name;
});
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Function.prototype.clone = function(parent){
if (this.fn) {
var clone = new Function(
this.name
, this.fn);
} else {
var clone = new Function(this.name);
clone.params = this.params.clone(parent, clone);
clone.block = this.block.clone(parent, clone);
}
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return <name>(param1, param2, ...).
*
* @return {String}
* @api public
*/
Function.prototype.toString = function(){
if (this.fn) {
return this.name
+ '('
+ this.fn.toString()
.match(/^function *\w*\((.*?)\)/)
.slice(1)
.join(', ')
+ ')';
} else {
return this.name
+ '('
+ this.params.nodes.join(', ')
+ ')';
}
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Function.prototype.toJSON = function(){
var json = {
__type: 'Function',
name: this.name,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.fn) {
json.fn = this.fn;
} else {
json.params = this.params;
json.block = this.block;
}
return json;
};

110
nodejs/node_modules/stylus/lib/nodes/group.js generated vendored Normal file
View File

@@ -0,0 +1,110 @@
/*!
* Stylus - Group
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Group`.
*
* @api public
*/
var Group = module.exports = function Group(){
Node.call(this);
this.nodes = [];
this.extends = [];
};
/**
* Inherit from `Node.prototype`.
*/
Group.prototype.__proto__ = Node.prototype;
/**
* Push the given `selector` node.
*
* @param {Selector} selector
* @api public
*/
Group.prototype.push = function(selector){
this.nodes.push(selector);
};
/**
* Return this set's `Block`.
*/
Group.prototype.__defineGetter__('block', function(){
return this.nodes[0].block;
});
/**
* Assign `block` to each selector in this set.
*
* @param {Block} block
* @api public
*/
Group.prototype.__defineSetter__('block', function(block){
for (var i = 0, len = this.nodes.length; i < len; ++i) {
this.nodes[i].block = block;
}
});
/**
* Check if this set has only placeholders.
*
* @return {Boolean}
* @api public
*/
Group.prototype.__defineGetter__('hasOnlyPlaceholders', function(){
return this.nodes.every(function(selector) { return selector.isPlaceholder; });
});
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Group.prototype.clone = function(parent){
var clone = new Group;
clone.lineno = this.lineno;
clone.column = this.column;
this.nodes.forEach(function(node){
clone.push(node.clone(parent, clone));
});
clone.filename = this.filename;
clone.block = this.block.clone(parent, clone);
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Group.prototype.toJSON = function(){
return {
__type: 'Group',
nodes: this.nodes,
block: this.block,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

277
nodejs/node_modules/stylus/lib/nodes/hsla.js generated vendored Normal file
View File

@@ -0,0 +1,277 @@
/*!
* Stylus - HSLA
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `HSLA` with the given h,s,l,a component values.
*
* @param {Number} h
* @param {Number} s
* @param {Number} l
* @param {Number} a
* @api public
*/
var HSLA = exports = module.exports = function HSLA(h,s,l,a){
Node.call(this);
this.h = clampDegrees(h);
this.s = clampPercentage(s);
this.l = clampPercentage(l);
this.a = clampAlpha(a);
this.hsla = this;
};
/**
* Inherit from `Node.prototype`.
*/
HSLA.prototype.__proto__ = Node.prototype;
/**
* Return hsla(n,n,n,n).
*
* @return {String}
* @api public
*/
HSLA.prototype.toString = function(){
return 'hsla('
+ this.h + ','
+ this.s.toFixed(0) + '%,'
+ this.l.toFixed(0) + '%,'
+ this.a + ')';
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
HSLA.prototype.clone = function(parent){
var clone = new HSLA(
this.h
, this.s
, this.l
, this.a);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
HSLA.prototype.toJSON = function(){
return {
__type: 'HSLA',
h: this.h,
s: this.s,
l: this.l,
a: this.a,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return rgba `RGBA` representation.
*
* @return {RGBA}
* @api public
*/
HSLA.prototype.__defineGetter__('rgba', function(){
return nodes.RGBA.fromHSLA(this);
});
/**
* Return hash.
*
* @return {String}
* @api public
*/
HSLA.prototype.__defineGetter__('hash', function(){
return this.rgba.toString();
});
/**
* Add h,s,l to the current component values.
*
* @param {Number} h
* @param {Number} s
* @param {Number} l
* @return {HSLA} new node
* @api public
*/
HSLA.prototype.add = function(h,s,l){
return new HSLA(
this.h + h
, this.s + s
, this.l + l
, this.a);
};
/**
* Subtract h,s,l from the current component values.
*
* @param {Number} h
* @param {Number} s
* @param {Number} l
* @return {HSLA} new node
* @api public
*/
HSLA.prototype.sub = function(h,s,l){
return this.add(-h, -s, -l);
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
HSLA.prototype.operate = function(op, right){
switch (op) {
case '==':
case '!=':
case '<=':
case '>=':
case '<':
case '>':
case 'is a':
case '||':
case '&&':
return this.rgba.operate(op, right);
default:
return this.rgba.operate(op, right).hsla;
}
};
/**
* Return `HSLA` representation of the given `color`.
*
* @param {RGBA} color
* @return {HSLA}
* @api public
*/
exports.fromRGBA = function(rgba){
var r = rgba.r / 255
, g = rgba.g / 255
, b = rgba.b / 255
, a = rgba.a;
var min = Math.min(r,g,b)
, max = Math.max(r,g,b)
, l = (max + min) / 2
, d = max - min
, h, s;
switch (max) {
case min: h = 0; break;
case r: h = 60 * (g-b) / d; break;
case g: h = 60 * (b-r) / d + 120; break;
case b: h = 60 * (r-g) / d + 240; break;
}
if (max == min) {
s = 0;
} else if (l < .5) {
s = d / (2 * l);
} else {
s = d / (2 - 2 * l);
}
h %= 360;
s *= 100;
l *= 100;
return new HSLA(h,s,l,a);
};
/**
* Adjust lightness by `percent`.
*
* @param {Number} percent
* @return {HSLA} for chaining
* @api public
*/
HSLA.prototype.adjustLightness = function(percent){
this.l = clampPercentage(this.l + this.l * (percent / 100));
return this;
};
/**
* Adjust hue by `deg`.
*
* @param {Number} deg
* @return {HSLA} for chaining
* @api public
*/
HSLA.prototype.adjustHue = function(deg){
this.h = clampDegrees(this.h + deg);
return this;
};
/**
* Clamp degree `n` >= 0 and <= 360.
*
* @param {Number} n
* @return {Number}
* @api private
*/
function clampDegrees(n) {
n = n % 360;
return n >= 0 ? n : 360 + n;
}
/**
* Clamp percentage `n` >= 0 and <= 100.
*
* @param {Number} n
* @return {Number}
* @api private
*/
function clampPercentage(n) {
return Math.max(0, Math.min(n, 100));
}
/**
* Clamp alpha `n` >= 0 and <= 1.
*
* @param {Number} n
* @return {Number}
* @api private
*/
function clampAlpha(n) {
return Math.max(0, Math.min(n, 1));
}

156
nodejs/node_modules/stylus/lib/nodes/ident.js generated vendored Normal file
View File

@@ -0,0 +1,156 @@
/*!
* Stylus - Ident
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Ident` by `name` with the given `val` node.
*
* @param {String} name
* @param {Node} val
* @api public
*/
var Ident = module.exports = function Ident(name, val, mixin){
Node.call(this);
this.name = name;
this.string = name;
this.val = val || nodes.null;
this.mixin = !!mixin;
};
/**
* Check if the variable has a value.
*
* @return {Boolean}
* @api public
*/
Ident.prototype.__defineGetter__('isEmpty', function(){
return undefined == this.val;
});
/**
* Return hash.
*
* @return {String}
* @api public
*/
Ident.prototype.__defineGetter__('hash', function(){
return this.name;
});
/**
* Inherit from `Node.prototype`.
*/
Ident.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Ident.prototype.clone = function(parent){
var clone = new Ident(this.name);
clone.val = this.val.clone(parent, clone);
clone.mixin = this.mixin;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.property = this.property;
clone.rest = this.rest;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Ident.prototype.toJSON = function(){
return {
__type: 'Ident',
name: this.name,
val: this.val,
mixin: this.mixin,
property: this.property,
rest: this.rest,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return <name>.
*
* @return {String}
* @api public
*/
Ident.prototype.toString = function(){
return this.name;
};
/**
* Coerce `other` to an ident.
*
* @param {Node} other
* @return {String}
* @api public
*/
Ident.prototype.coerce = function(other){
switch (other.nodeName) {
case 'ident':
case 'string':
case 'literal':
return new Ident(other.string);
case 'unit':
return new Ident(other.toString());
default:
return Node.prototype.coerce.call(this, other);
}
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Ident.prototype.operate = function(op, right){
var val = right.first;
switch (op) {
case '-':
if ('unit' == val.nodeName) {
var expr = new nodes.Expression;
val = val.clone();
val.val = -val.val;
expr.push(this);
expr.push(val);
return expr;
}
case '+':
return new nodes.Ident(this.string + this.coerce(val).string);
}
return Node.prototype.operate.call(this, op, right);
};

78
nodejs/node_modules/stylus/lib/nodes/if.js generated vendored Normal file
View File

@@ -0,0 +1,78 @@
/*!
* Stylus - If
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `If` with the given `cond`.
*
* @param {Expression} cond
* @param {Boolean|Block} negate, block
* @api public
*/
var If = module.exports = function If(cond, negate){
Node.call(this);
this.cond = cond;
this.elses = [];
if (negate && negate.nodeName) {
this.block = negate;
} else {
this.negate = negate;
}
};
/**
* Inherit from `Node.prototype`.
*/
If.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
If.prototype.clone = function(parent){
var clone = new If();
clone.cond = this.cond.clone(parent, clone);
clone.block = this.block.clone(parent, clone);
clone.elses = this.elses.map(function(node){ return node.clone(parent, clone); });
clone.negate = this.negate;
clone.postfix = this.postfix;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
If.prototype.toJSON = function(){
return {
__type: 'If',
cond: this.cond,
block: this.block,
elses: this.elses,
negate: this.negate,
postfix: this.postfix,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

68
nodejs/node_modules/stylus/lib/nodes/import.js generated vendored Normal file
View File

@@ -0,0 +1,68 @@
/*!
* Stylus - Import
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Import` with the given `expr`.
*
* @param {Expression} expr
* @api public
*/
var Import = module.exports = function Import(expr, once){
Node.call(this);
this.path = expr;
this.once = once || false;
};
/**
* Inherit from `Node.prototype`.
*/
Import.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Import.prototype.clone = function(parent){
var clone = new Import();
clone.path = this.path.nodeName ? this.path.clone(parent, clone) : this.path;
clone.once = this.once;
clone.mtime = this.mtime;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Import.prototype.toJSON = function(){
return {
__type: 'Import',
path: this.path,
once: this.once,
mtime: this.mtime,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

59
nodejs/node_modules/stylus/lib/nodes/index.js generated vendored Normal file
View File

@@ -0,0 +1,59 @@
/*!
* Stylus - nodes
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Constructors
*/
exports.Node = require('./node');
exports.Root = require('./root');
exports.Null = require('./null');
exports.Each = require('./each');
exports.If = require('./if');
exports.Call = require('./call');
exports.UnaryOp = require('./unaryop');
exports.BinOp = require('./binop');
exports.Ternary = require('./ternary');
exports.Block = require('./block');
exports.Unit = require('./unit');
exports.String = require('./string');
exports.HSLA = require('./hsla');
exports.RGBA = require('./rgba');
exports.Ident = require('./ident');
exports.Group = require('./group');
exports.Literal = require('./literal');
exports.Boolean = require('./boolean');
exports.Return = require('./return');
exports.Media = require('./media');
exports.QueryList = require('./query-list');
exports.Query = require('./query');
exports.Feature = require('./feature');
exports.Params = require('./params');
exports.Comment = require('./comment');
exports.Keyframes = require('./keyframes');
exports.Member = require('./member');
exports.Charset = require('./charset');
exports.Namespace = require('./namespace');
exports.Import = require('./import');
exports.Extend = require('./extend');
exports.Object = require('./object');
exports.Function = require('./function');
exports.Property = require('./property');
exports.Selector = require('./selector');
exports.Expression = require('./expression');
exports.Arguments = require('./arguments');
exports.Atblock = require('./atblock');
exports.Atrule = require('./atrule');
exports.Supports = require('./supports');
/**
* Singletons.
*/
exports.true = new exports.Boolean(true);
exports.false = new exports.Boolean(false);
exports.null = new exports.Null;

81
nodejs/node_modules/stylus/lib/nodes/keyframes.js generated vendored Normal file
View File

@@ -0,0 +1,81 @@
/*!
* Stylus - Keyframes
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Atrule = require('./atrule');
/**
* Initialize a new `Keyframes` with the given `segs`,
* and optional vendor `prefix`.
*
* @param {Array} segs
* @param {String} prefix
* @api public
*/
var Keyframes = module.exports = function Keyframes(segs, prefix){
Atrule.call(this, 'keyframes');
this.segments = segs;
this.prefix = prefix || 'official';
};
/**
* Inherit from `Atrule.prototype`.
*/
Keyframes.prototype.__proto__ = Atrule.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Keyframes.prototype.clone = function(parent){
var clone = new Keyframes;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.segments = this.segments.map(function(node) { return node.clone(parent, clone); });
clone.prefix = this.prefix;
clone.block = this.block.clone(parent, clone);
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Keyframes.prototype.toJSON = function(){
return {
__type: 'Keyframes',
segments: this.segments,
prefix: this.prefix,
block: this.block,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return `@keyframes name`.
*
* @return {String}
* @api public
*/
Keyframes.prototype.toString = function(){
return '@keyframes ' + this.segments.join('');
};

112
nodejs/node_modules/stylus/lib/nodes/literal.js generated vendored Normal file
View File

@@ -0,0 +1,112 @@
/*!
* Stylus - Literal
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Literal` with the given `str`.
*
* @param {String} str
* @api public
*/
var Literal = module.exports = function Literal(str){
Node.call(this);
this.val = str;
this.string = str;
this.prefixed = false;
};
/**
* Inherit from `Node.prototype`.
*/
Literal.prototype.__proto__ = Node.prototype;
/**
* Return hash.
*
* @return {String}
* @api public
*/
Literal.prototype.__defineGetter__('hash', function(){
return this.val;
});
/**
* Return literal value.
*
* @return {String}
* @api public
*/
Literal.prototype.toString = function(){
return this.val;
};
/**
* Coerce `other` to a literal.
*
* @param {Node} other
* @return {String}
* @api public
*/
Literal.prototype.coerce = function(other){
switch (other.nodeName) {
case 'ident':
case 'string':
case 'literal':
return new Literal(other.string);
default:
return Node.prototype.coerce.call(this, other);
}
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Literal.prototype.operate = function(op, right){
var val = right.first;
switch (op) {
case '+':
return new nodes.Literal(this.string + this.coerce(val).string);
default:
return Node.prototype.operate.call(this, op, right);
}
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Literal.prototype.toJSON = function(){
return {
__type: 'Literal',
val: this.val,
string: this.string,
prefixed: this.prefixed,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

76
nodejs/node_modules/stylus/lib/nodes/media.js generated vendored Normal file
View File

@@ -0,0 +1,76 @@
/*!
* Stylus - Media
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Atrule = require('./atrule');
/**
* Initialize a new `Media` with the given `val`
*
* @param {String} val
* @api public
*/
var Media = module.exports = function Media(val){
Atrule.call(this, 'media');
this.val = val;
};
/**
* Inherit from `Atrule.prototype`.
*/
Media.prototype.__proto__ = Atrule.prototype;
/**
* Clone this node.
*
* @return {Media}
* @api public
*/
Media.prototype.clone = function(parent){
var clone = new Media;
clone.val = this.val.clone(parent, clone);
clone.block = this.block.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Media.prototype.toJSON = function(){
return {
__type: 'Media',
val: this.val,
block: this.block,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return @media "val".
*
* @return {String}
* @api public
*/
Media.prototype.toString = function(){
return '@media ' + this.val;
};

82
nodejs/node_modules/stylus/lib/nodes/member.js generated vendored Normal file
View File

@@ -0,0 +1,82 @@
/*!
* Stylus - Member
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Member` with `left` and `right`.
*
* @param {Node} left
* @param {Node} right
* @api public
*/
var Member = module.exports = function Member(left, right){
Node.call(this);
this.left = left;
this.right = right;
};
/**
* Inherit from `Node.prototype`.
*/
Member.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Member.prototype.clone = function(parent){
var clone = new Member;
clone.left = this.left.clone(parent, clone);
clone.right = this.right.clone(parent, clone);
if (this.val) clone.val = this.val.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Member.prototype.toJSON = function(){
var json = {
__type: 'Member',
left: this.left,
right: this.right,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.val) json.val = this.val;
return json;
};
/**
* Return a string representation of this node.
*
* @return {String}
* @api public
*/
Member.prototype.toString = function(){
return this.left.toString()
+ '.' + this.right.toString();
};

60
nodejs/node_modules/stylus/lib/nodes/namespace.js generated vendored Normal file
View File

@@ -0,0 +1,60 @@
/*!
* Stylus - Namespace
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Namespace` with the given `val` and `prefix`
*
* @param {String|Call} val
* @param {String} [prefix]
* @api public
*/
var Namespace = module.exports = function Namespace(val, prefix){
Node.call(this);
this.val = val;
this.prefix = prefix;
};
/**
* Inherit from `Node.prototype`.
*/
Namespace.prototype.__proto__ = Node.prototype;
/**
* Return @namespace "val".
*
* @return {String}
* @api public
*/
Namespace.prototype.toString = function(){
return '@namespace ' + (this.prefix ? this.prefix + ' ' : '') + this.val;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Namespace.prototype.toJSON = function(){
return {
__type: 'Namespace',
val: this.val,
prefix: this.prefix,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

250
nodejs/node_modules/stylus/lib/nodes/node.js generated vendored Normal file
View File

@@ -0,0 +1,250 @@
/*!
* Stylus - Node
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Evaluator = require('../visitor/evaluator')
, utils = require('../utils')
, nodes = require('./');
/**
* Initialize a new `CoercionError` with the given `msg`.
*
* @param {String} msg
* @api private
*/
function CoercionError(msg) {
this.name = 'CoercionError'
this.message = msg
Error.captureStackTrace(this, CoercionError);
}
/**
* Inherit from `Error.prototype`.
*/
CoercionError.prototype.__proto__ = Error.prototype;
/**
* Node constructor.
*
* @api public
*/
var Node = module.exports = function Node(){
this.lineno = nodes.lineno || 1;
this.column = nodes.column || 1;
this.filename = nodes.filename;
};
Node.prototype = {
constructor: Node,
/**
* Return this node.
*
* @return {Node}
* @api public
*/
get first() {
return this;
},
/**
* Return hash.
*
* @return {String}
* @api public
*/
get hash() {
return this.val;
},
/**
* Return node name.
*
* @return {String}
* @api public
*/
get nodeName() {
return this.constructor.name.toLowerCase();
},
/**
* Return this node.
*
* @return {Node}
* @api public
*/
clone: function(){
return this;
},
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
toJSON: function(){
return {
lineno: this.lineno,
column: this.column,
filename: this.filename
};
},
/**
* Nodes by default evaluate to themselves.
*
* @return {Node}
* @api public
*/
eval: function(){
return new Evaluator(this).evaluate();
},
/**
* Return true.
*
* @return {Boolean}
* @api public
*/
toBoolean: function(){
return nodes.true;
},
/**
* Return the expression, or wrap this node in an expression.
*
* @return {Expression}
* @api public
*/
toExpression: function(){
if ('expression' == this.nodeName) return this;
var expr = new nodes.Expression;
expr.push(this);
return expr;
},
/**
* Return false if `op` is generally not coerced.
*
* @param {String} op
* @return {Boolean}
* @api private
*/
shouldCoerce: function(op){
switch (op) {
case 'is a':
case 'in':
case '||':
case '&&':
return false;
default:
return true;
}
},
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
operate: function(op, right){
switch (op) {
case 'is a':
if ('string' == right.nodeName) {
return nodes.Boolean(this.nodeName == right.val);
} else {
throw new Error('"is a" expects a string, got ' + right.toString());
}
case '==':
return nodes.Boolean(this.hash == right.hash);
case '!=':
return nodes.Boolean(this.hash != right.hash);
case '>=':
return nodes.Boolean(this.hash >= right.hash);
case '<=':
return nodes.Boolean(this.hash <= right.hash);
case '>':
return nodes.Boolean(this.hash > right.hash);
case '<':
return nodes.Boolean(this.hash < right.hash);
case '||':
return this.toBoolean().isTrue
? this
: right;
case 'in':
var vals = utils.unwrap(right).nodes
, len = vals && vals.length
, hash = this.hash;
if (!vals) throw new Error('"in" given invalid right-hand operand, expecting an expression');
// 'prop' in obj
if (1 == len && 'object' == vals[0].nodeName) {
return nodes.Boolean(vals[0].has(this.hash));
}
for (var i = 0; i < len; ++i) {
if (hash == vals[i].hash) {
return nodes.true;
}
}
return nodes.false;
case '&&':
var a = this.toBoolean()
, b = right.toBoolean();
return a.isTrue && b.isTrue
? right
: a.isFalse
? this
: right;
default:
if ('[]' == op) {
var msg = 'cannot perform '
+ this
+ '[' + right + ']';
} else {
var msg = 'cannot perform'
+ ' ' + this
+ ' ' + op
+ ' ' + right;
}
throw new Error(msg);
}
},
/**
* Default coercion throws.
*
* @param {Node} other
* @return {Node}
* @api public
*/
coerce: function(other){
if (other.nodeName == this.nodeName) return other;
throw new CoercionError('cannot coerce ' + other + ' to ' + this.nodeName);
}
};

88
nodejs/node_modules/stylus/lib/nodes/null.js generated vendored Normal file
View File

@@ -0,0 +1,88 @@
/*!
* Stylus - Null
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Null` node.
*
* @api public
*/
var Null = module.exports = function Null(){};
/**
* Inherit from `Node.prototype`.
*/
Null.prototype.__proto__ = Node.prototype;
/**
* Return 'Null'.
*
* @return {String}
* @api public
*/
Null.prototype.inspect =
Null.prototype.toString = function(){
return 'null';
};
/**
* Return false.
*
* @return {Boolean}
* @api public
*/
Null.prototype.toBoolean = function(){
return nodes.false;
};
/**
* Check if the node is a null node.
*
* @return {Boolean}
* @api public
*/
Null.prototype.__defineGetter__('isNull', function(){
return true;
});
/**
* Return hash.
*
* @return {String}
* @api public
*/
Null.prototype.__defineGetter__('hash', function(){
return null;
});
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Null.prototype.toJSON = function(){
return {
__type: 'Null',
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

213
nodejs/node_modules/stylus/lib/nodes/object.js generated vendored Normal file
View File

@@ -0,0 +1,213 @@
/*!
* Stylus - Object
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./')
, nativeObj = {}.constructor;
/**
* Initialize a new `Object`.
*
* @api public
*/
var Object = module.exports = function Object(){
Node.call(this);
this.vals = {};
};
/**
* Inherit from `Node.prototype`.
*/
Object.prototype.__proto__ = Node.prototype;
/**
* Set `key` to `val`.
*
* @param {String} key
* @param {Node} val
* @return {Object} for chaining
* @api public
*/
Object.prototype.set = function(key, val){
this.vals[key] = val;
return this;
};
/**
* Return length.
*
* @return {Number}
* @api public
*/
Object.prototype.__defineGetter__('length', function() {
return nativeObj.keys(this.vals).length;
});
/**
* Get `key`.
*
* @param {String} key
* @return {Node}
* @api public
*/
Object.prototype.get = function(key){
return this.vals[key] || nodes.null;
};
/**
* Has `key`?
*
* @param {String} key
* @return {Boolean}
* @api public
*/
Object.prototype.has = function(key){
return key in this.vals;
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Object.prototype.operate = function(op, right){
switch (op) {
case '.':
case '[]':
return this.get(right.hash);
case '==':
var vals = this.vals
, a
, b;
if ('object' != right.nodeName || this.length != right.length)
return nodes.false;
for (var key in vals) {
a = vals[key];
b = right.vals[key];
if (a.operate(op, b).isFalse)
return nodes.false;
}
return nodes.true;
case '!=':
return this.operate('==', right).negate();
default:
return Node.prototype.operate.call(this, op, right);
}
};
/**
* Return Boolean based on the length of this object.
*
* @return {Boolean}
* @api public
*/
Object.prototype.toBoolean = function(){
return nodes.Boolean(this.length);
};
/**
* Convert object to string with properties.
*
* @return {String}
* @api private
*/
Object.prototype.toBlock = function(){
var str = '{'
, key
, val;
for (key in this.vals) {
val = this.get(key);
if ('object' == val.first.nodeName) {
str += key + ' ' + val.first.toBlock();
} else {
switch (key) {
case '@charset':
str += key + ' ' + val.first.toString() + ';';
break;
default:
str += key + ':' + toString(val) + ';';
}
}
}
str += '}';
return str;
function toString(node) {
if (node.nodes) {
return node.nodes.map(toString).join(node.isList ? ',' : ' ');
} else if ('literal' == node.nodeName && ',' == node.val) {
return '\\,';
}
return node.toString();
}
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Object.prototype.clone = function(parent){
var clone = new Object;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
for (var key in this.vals) {
clone.vals[key] = this.vals[key].clone(parent, clone);
}
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Object.prototype.toJSON = function(){
return {
__type: 'Object',
vals: this.vals,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return "{ <prop>: <val> }"
*
* @return {String}
* @api public
*/
Object.prototype.toString = function(){
var obj = {};
for (var prop in this.vals) {
obj[prop] = this.vals[prop].toString();
}
return JSON.stringify(obj);
};

90
nodejs/node_modules/stylus/lib/nodes/params.js generated vendored Normal file
View File

@@ -0,0 +1,90 @@
/*!
* Stylus - Params
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Params` with `name`, `params`, and `body`.
*
* @param {String} name
* @param {Params} params
* @param {Expression} body
* @api public
*/
var Params = module.exports = function Params(){
Node.call(this);
this.nodes = [];
};
/**
* Check function arity.
*
* @return {Boolean}
* @api public
*/
Params.prototype.__defineGetter__('length', function(){
return this.nodes.length;
});
/**
* Inherit from `Node.prototype`.
*/
Params.prototype.__proto__ = Node.prototype;
/**
* Push the given `node`.
*
* @param {Node} node
* @api public
*/
Params.prototype.push = function(node){
this.nodes.push(node);
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Params.prototype.clone = function(parent){
var clone = new Params;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
this.nodes.forEach(function(node){
clone.push(node.clone(parent, clone));
});
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Params.prototype.toJSON = function(){
return {
__type: 'Params',
nodes: this.nodes,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

96
nodejs/node_modules/stylus/lib/nodes/property.js generated vendored Normal file
View File

@@ -0,0 +1,96 @@
/*!
* Stylus - Property
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Property` with the given `segs` and optional `expr`.
*
* @param {Array} segs
* @param {Expression} expr
* @api public
*/
var Property = module.exports = function Property(segs, expr){
Node.call(this);
this.segments = segs;
this.expr = expr;
};
/**
* Inherit from `Node.prototype`.
*/
Property.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Property.prototype.clone = function(parent){
var clone = new Property(this.segments);
clone.name = this.name;
if (this.literal) clone.literal = this.literal;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.segments = this.segments.map(function(node){ return node.clone(parent, clone); });
if (this.expr) clone.expr = this.expr.clone(parent, clone);
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Property.prototype.toJSON = function(){
var json = {
__type: 'Property',
segments: this.segments,
name: this.name,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
if (this.expr) json.expr = this.expr;
if (this.literal) json.literal = this.literal;
return json;
};
/**
* Return string representation of this node.
*
* @return {String}
* @api public
*/
Property.prototype.toString = function(){
return 'property(' + this.segments.join('') + ', ' + this.expr + ')';
};
/**
* Operate on the property expression.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Property.prototype.operate = function(op, right, val){
return this.expr.operate(op, right, val);
};

108
nodejs/node_modules/stylus/lib/nodes/query-list.js generated vendored Normal file
View File

@@ -0,0 +1,108 @@
/*!
* Stylus - QueryList
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `QueryList`.
*
* @api public
*/
var QueryList = module.exports = function QueryList(){
Node.call(this);
this.nodes = [];
};
/**
* Inherit from `Node.prototype`.
*/
QueryList.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
QueryList.prototype.clone = function(parent){
var clone = new QueryList;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
for (var i = 0; i < this.nodes.length; ++i) {
clone.push(this.nodes[i].clone(parent, clone));
}
return clone;
};
/**
* Push the given `node`.
*
* @param {Node} node
* @api public
*/
QueryList.prototype.push = function(node){
this.nodes.push(node);
};
/**
* Merges this query list with the `other`.
*
* @param {QueryList} other
* @return {QueryList}
* @api private
*/
QueryList.prototype.merge = function(other){
var list = new QueryList
, merged;
this.nodes.forEach(function(query){
for (var i = 0, len = other.nodes.length; i < len; ++i){
merged = query.merge(other.nodes[i]);
if (merged) list.push(merged);
}
});
return list;
};
/**
* Return "<a>, <b>, <c>"
*
* @return {String}
* @api public
*/
QueryList.prototype.toString = function(){
return '(' + this.nodes.map(function(node){
return node.toString();
}).join(', ') + ')';
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
QueryList.prototype.toJSON = function(){
return {
__type: 'QueryList',
nodes: this.nodes,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

170
nodejs/node_modules/stylus/lib/nodes/query.js generated vendored Normal file
View File

@@ -0,0 +1,170 @@
/*!
* Stylus - Query
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Query`.
*
* @api public
*/
var Query = module.exports = function Query(){
Node.call(this);
this.nodes = [];
this.type = '';
this.predicate = '';
};
/**
* Inherit from `Node.prototype`.
*/
Query.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Query.prototype.clone = function(parent){
var clone = new Query;
clone.predicate = this.predicate;
clone.type = this.type;
for (var i = 0, len = this.nodes.length; i < len; ++i) {
clone.push(this.nodes[i].clone(parent, clone));
}
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Push the given `feature`.
*
* @param {Feature} feature
* @api public
*/
Query.prototype.push = function(feature){
this.nodes.push(feature);
};
/**
* Return resolved type of this query.
*
* @return {String}
* @api private
*/
Query.prototype.__defineGetter__('resolvedType', function(){
if (this.type) {
return this.type.nodeName
? this.type.string
: this.type;
}
});
/**
* Return resolved predicate of this query.
*
* @return {String}
* @api private
*/
Query.prototype.__defineGetter__('resolvedPredicate', function(){
if (this.predicate) {
return this.predicate.nodeName
? this.predicate.string
: this.predicate;
}
});
/**
* Merges this query with the `other`.
*
* @param {Query} other
* @return {Query}
* @api private
*/
Query.prototype.merge = function(other){
var query = new Query
, p1 = this.resolvedPredicate
, p2 = other.resolvedPredicate
, t1 = this.resolvedType
, t2 = other.resolvedType
, type, pred;
// Stolen from Sass :D
t1 = t1 || t2;
t2 = t2 || t1;
if (('not' == p1) ^ ('not' == p2)) {
if (t1 == t2) return;
type = ('not' == p1) ? t2 : t1;
pred = ('not' == p1) ? p2 : p1;
} else if (('not' == p1) && ('not' == p2)) {
if (t1 != t2) return;
type = t1;
pred = 'not';
} else if (t1 != t2) {
return;
} else {
type = t1;
pred = p1 || p2;
}
query.predicate = pred;
query.type = type;
query.nodes = this.nodes.concat(other.nodes);
return query;
};
/**
* Return "<a> and <b> and <c>"
*
* @return {String}
* @api public
*/
Query.prototype.toString = function(){
var pred = this.predicate ? this.predicate + ' ' : ''
, type = this.type || ''
, len = this.nodes.length
, str = pred + type;
if (len) {
str += (type && ' and ') + this.nodes.map(function(expr){
return expr.toString();
}).join(' and ');
}
return str;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Query.prototype.toJSON = function(){
return {
__type: 'Query',
predicate: this.predicate,
type: this.type,
nodes: this.nodes,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

63
nodejs/node_modules/stylus/lib/nodes/return.js generated vendored Normal file
View File

@@ -0,0 +1,63 @@
/*!
* Stylus - Return
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Initialize a new `Return` node with the given `expr`.
*
* @param {Expression} expr
* @api public
*/
var Return = module.exports = function Return(expr){
this.expr = expr || nodes.null;
};
/**
* Inherit from `Node.prototype`.
*/
Return.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Return.prototype.clone = function(parent){
var clone = new Return();
clone.expr = this.expr.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Return.prototype.toJSON = function(){
return {
__type: 'Return',
expr: this.expr,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

367
nodejs/node_modules/stylus/lib/nodes/rgba.js generated vendored Normal file
View File

@@ -0,0 +1,367 @@
/*!
* Stylus - RGBA
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, HSLA = require('./hsla')
, functions = require('../functions')
, adjust = functions.adjust
, nodes = require('./');
/**
* Initialize a new `RGBA` with the given r,g,b,a component values.
*
* @param {Number} r
* @param {Number} g
* @param {Number} b
* @param {Number} a
* @api public
*/
var RGBA = exports = module.exports = function RGBA(r,g,b,a){
Node.call(this);
this.r = clamp(r);
this.g = clamp(g);
this.b = clamp(b);
this.a = clampAlpha(a);
this.name = '';
this.rgba = this;
};
/**
* Inherit from `Node.prototype`.
*/
RGBA.prototype.__proto__ = Node.prototype;
/**
* Return an `RGBA` without clamping values.
*
* @param {Number} r
* @param {Number} g
* @param {Number} b
* @param {Number} a
* @return {RGBA}
* @api public
*/
RGBA.withoutClamping = function(r,g,b,a){
var rgba = new RGBA(0,0,0,0);
rgba.r = r;
rgba.g = g;
rgba.b = b;
rgba.a = a;
return rgba;
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
RGBA.prototype.clone = function(){
var clone = new RGBA(
this.r
, this.g
, this.b
, this.a);
clone.raw = this.raw;
clone.name = this.name;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
RGBA.prototype.toJSON = function(){
return {
__type: 'RGBA',
r: this.r,
g: this.g,
b: this.b,
a: this.a,
raw: this.raw,
name: this.name,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return true.
*
* @return {Boolean}
* @api public
*/
RGBA.prototype.toBoolean = function(){
return nodes.true;
};
/**
* Return `HSLA` representation.
*
* @return {HSLA}
* @api public
*/
RGBA.prototype.__defineGetter__('hsla', function(){
return HSLA.fromRGBA(this);
});
/**
* Return hash.
*
* @return {String}
* @api public
*/
RGBA.prototype.__defineGetter__('hash', function(){
return this.toString();
});
/**
* Add r,g,b,a to the current component values.
*
* @param {Number} r
* @param {Number} g
* @param {Number} b
* @param {Number} a
* @return {RGBA} new node
* @api public
*/
RGBA.prototype.add = function(r,g,b,a){
return new RGBA(
this.r + r
, this.g + g
, this.b + b
, this.a + a);
};
/**
* Subtract r,g,b,a from the current component values.
*
* @param {Number} r
* @param {Number} g
* @param {Number} b
* @param {Number} a
* @return {RGBA} new node
* @api public
*/
RGBA.prototype.sub = function(r,g,b,a){
return new RGBA(
this.r - r
, this.g - g
, this.b - b
, a == 1 ? this.a : this.a - a);
};
/**
* Multiply rgb components by `n`.
*
* @param {String} n
* @return {RGBA} new node
* @api public
*/
RGBA.prototype.multiply = function(n){
return new RGBA(
this.r * n
, this.g * n
, this.b * n
, this.a);
};
/**
* Divide rgb components by `n`.
*
* @param {String} n
* @return {RGBA} new node
* @api public
*/
RGBA.prototype.divide = function(n){
return new RGBA(
this.r / n
, this.g / n
, this.b / n
, this.a);
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
RGBA.prototype.operate = function(op, right){
if ('in' != op) right = right.first
switch (op) {
case 'is a':
if ('string' == right.nodeName && 'color' == right.string) {
return nodes.true;
}
break;
case '+':
switch (right.nodeName) {
case 'unit':
var n = right.val;
switch (right.type) {
case '%': return adjust(this, new nodes.String('lightness'), right);
case 'deg': return this.hsla.adjustHue(n).rgba;
default: return this.add(n,n,n,0);
}
case 'rgba':
return this.add(right.r, right.g, right.b, right.a);
case 'hsla':
return this.hsla.add(right.h, right.s, right.l);
}
break;
case '-':
switch (right.nodeName) {
case 'unit':
var n = right.val;
switch (right.type) {
case '%': return adjust(this, new nodes.String('lightness'), new nodes.Unit(-n, '%'));
case 'deg': return this.hsla.adjustHue(-n).rgba;
default: return this.sub(n,n,n,0);
}
case 'rgba':
return this.sub(right.r, right.g, right.b, right.a);
case 'hsla':
return this.hsla.sub(right.h, right.s, right.l);
}
break;
case '*':
switch (right.nodeName) {
case 'unit':
return this.multiply(right.val);
}
break;
case '/':
switch (right.nodeName) {
case 'unit':
return this.divide(right.val);
}
break;
}
return Node.prototype.operate.call(this, op, right);
};
/**
* Return #nnnnnn, #nnn, or rgba(n,n,n,n) string representation of the color.
*
* @return {String}
* @api public
*/
RGBA.prototype.toString = function(){
function pad(n) {
return n < 16
? '0' + n.toString(16)
: n.toString(16);
}
// special case for transparent named color
if ('transparent' == this.name)
return this.name;
if (1 == this.a) {
var r = pad(this.r)
, g = pad(this.g)
, b = pad(this.b);
// Compress
if (r[0] == r[1] && g[0] == g[1] && b[0] == b[1]) {
return '#' + r[0] + g[0] + b[0];
} else {
return '#' + r + g + b;
}
} else {
return 'rgba('
+ this.r + ','
+ this.g + ','
+ this.b + ','
+ (+this.a.toFixed(3)) + ')';
}
};
/**
* Return a `RGBA` from the given `hsla`.
*
* @param {HSLA} hsla
* @return {RGBA}
* @api public
*/
exports.fromHSLA = function(hsla){
var h = hsla.h / 360
, s = hsla.s / 100
, l = hsla.l / 100
, a = hsla.a;
var m2 = l <= .5 ? l * (s + 1) : l + s - l * s
, m1 = l * 2 - m2;
var r = hue(h + 1/3) * 0xff
, g = hue(h) * 0xff
, b = hue(h - 1/3) * 0xff;
function hue(h) {
if (h < 0) ++h;
if (h > 1) --h;
if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
if (h * 2 < 1) return m2;
if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;
return m1;
}
return new RGBA(r,g,b,a);
};
/**
* Clamp `n` >= 0 and <= 255.
*
* @param {Number} n
* @return {Number}
* @api private
*/
function clamp(n) {
return Math.max(0, Math.min(n.toFixed(0), 255));
}
/**
* Clamp alpha `n` >= 0 and <= 1.
*
* @param {Number} n
* @return {Number}
* @api private
*/
function clampAlpha(n) {
return Math.max(0, Math.min(n, 1));
}

96
nodejs/node_modules/stylus/lib/nodes/root.js generated vendored Normal file
View File

@@ -0,0 +1,96 @@
/*!
* Stylus - Root
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Root` node.
*
* @api public
*/
var Root = module.exports = function Root(){
this.nodes = [];
};
/**
* Inherit from `Node.prototype`.
*/
Root.prototype.__proto__ = Node.prototype;
/**
* Push a `node` to this block.
*
* @param {Node} node
* @api public
*/
Root.prototype.push = function(node){
this.nodes.push(node);
};
/**
* Unshift a `node` to this block.
*
* @param {Node} node
* @api public
*/
Root.prototype.unshift = function(node){
this.nodes.unshift(node);
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Root.prototype.clone = function(){
var clone = new Root();
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
this.nodes.forEach(function(node){
clone.push(node.clone(clone, clone));
});
return clone;
};
/**
* Return "root".
*
* @return {String}
* @api public
*/
Root.prototype.toString = function(){
return '[Root]';
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Root.prototype.toJSON = function(){
return {
__type: 'Root',
nodes: this.nodes,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

94
nodejs/node_modules/stylus/lib/nodes/selector.js generated vendored Normal file
View File

@@ -0,0 +1,94 @@
/*!
* Stylus - Selector
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Block = require('./block')
, Node = require('./node');
/**
* Initialize a new `Selector` with the given `segs`.
*
* @param {Array} segs
* @api public
*/
var Selector = module.exports = function Selector(segs){
Node.call(this);
this.inherits = true;
this.segments = segs;
this.optional = false;
};
/**
* Inherit from `Node.prototype`.
*/
Selector.prototype.__proto__ = Node.prototype;
/**
* Return the selector string.
*
* @return {String}
* @api public
*/
Selector.prototype.toString = function(){
return this.segments.join('') + (this.optional ? ' !optional' : '');
};
/**
* Check if this is placeholder selector.
*
* @return {Boolean}
* @api public
*/
Selector.prototype.__defineGetter__('isPlaceholder', function(){
return this.val && ~this.val.substr(0, 2).indexOf('$');
});
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Selector.prototype.clone = function(parent){
var clone = new Selector;
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
clone.inherits = this.inherits;
clone.val = this.val;
clone.segments = this.segments.map(function(node){ return node.clone(parent, clone); });
clone.optional = this.optional;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Selector.prototype.toJSON = function(){
return {
__type: 'Selector',
inherits: this.inherits,
segments: this.segments,
optional: this.optional,
val: this.val,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

147
nodejs/node_modules/stylus/lib/nodes/string.js generated vendored Normal file
View File

@@ -0,0 +1,147 @@
/*!
* Stylus - String
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, sprintf = require('../functions').s
, utils = require('../utils')
, nodes = require('./');
/**
* Initialize a new `String` with the given `val`.
*
* @param {String} val
* @param {String} quote
* @api public
*/
var String = module.exports = function String(val, quote){
Node.call(this);
this.val = val;
this.string = val;
this.prefixed = false;
if (typeof quote !== 'string') {
this.quote = "'";
} else {
this.quote = quote;
}
};
/**
* Inherit from `Node.prototype`.
*/
String.prototype.__proto__ = Node.prototype;
/**
* Return quoted string.
*
* @return {String}
* @api public
*/
String.prototype.toString = function(){
return this.quote + this.val + this.quote;
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
String.prototype.clone = function(){
var clone = new String(this.val, this.quote);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
String.prototype.toJSON = function(){
return {
__type: 'String',
val: this.val,
quote: this.quote,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return Boolean based on the length of this string.
*
* @return {Boolean}
* @api public
*/
String.prototype.toBoolean = function(){
return nodes.Boolean(this.val.length);
};
/**
* Coerce `other` to a string.
*
* @param {Node} other
* @return {String}
* @api public
*/
String.prototype.coerce = function(other){
switch (other.nodeName) {
case 'string':
return other;
case 'expression':
return new String(other.nodes.map(function(node){
return this.coerce(node).val;
}, this).join(' '));
default:
return new String(other.toString());
}
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
String.prototype.operate = function(op, right){
switch (op) {
case '%':
var expr = new nodes.Expression;
expr.push(this);
// constructargs
var args = 'expression' == right.nodeName
? utils.unwrap(right).nodes
: [right];
// apply
return sprintf.apply(null, [expr].concat(args));
case '+':
var expr = new nodes.Expression;
expr.push(new String(this.val + this.coerce(right).val));
return expr;
default:
return Node.prototype.operate.call(this, op, right);
}
};

75
nodejs/node_modules/stylus/lib/nodes/supports.js generated vendored Normal file
View File

@@ -0,0 +1,75 @@
/*!
* Stylus - supports
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Atrule = require('./atrule');
/**
* Initialize a new supports node.
*
* @param {Expression} condition
* @api public
*/
var Supports = module.exports = function Supports(condition){
Atrule.call(this, 'supports');
this.condition = condition;
};
/**
* Inherit from `Atrule.prototype`.
*/
Supports.prototype.__proto__ = Atrule.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Supports.prototype.clone = function(parent){
var clone = new Supports;
clone.condition = this.condition.clone(parent, clone);
clone.block = this.block.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Supports.prototype.toJSON = function(){
return {
__type: 'Supports',
condition: this.condition,
block: this.block,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Return @supports
*
* @return {String}
* @api public
*/
Supports.prototype.toString = function(){
return '@supports ' + this.condition;
};

71
nodejs/node_modules/stylus/lib/nodes/ternary.js generated vendored Normal file
View File

@@ -0,0 +1,71 @@
/*!
* Stylus - Ternary
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `Ternary` with `cond`, `trueExpr` and `falseExpr`.
*
* @param {Expression} cond
* @param {Expression} trueExpr
* @param {Expression} falseExpr
* @api public
*/
var Ternary = module.exports = function Ternary(cond, trueExpr, falseExpr){
Node.call(this);
this.cond = cond;
this.trueExpr = trueExpr;
this.falseExpr = falseExpr;
};
/**
* Inherit from `Node.prototype`.
*/
Ternary.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Ternary.prototype.clone = function(parent){
var clone = new Ternary();
clone.cond = this.cond.clone(parent, clone);
clone.trueExpr = this.trueExpr.clone(parent, clone);
clone.falseExpr = this.falseExpr.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Ternary.prototype.toJSON = function(){
return {
__type: 'Ternary',
cond: this.cond,
trueExpr: this.trueExpr,
falseExpr: this.falseExpr,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

66
nodejs/node_modules/stylus/lib/nodes/unaryop.js generated vendored Normal file
View File

@@ -0,0 +1,66 @@
/*!
* Stylus - UnaryOp
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node');
/**
* Initialize a new `UnaryOp` with `op`, and `expr`.
*
* @param {String} op
* @param {Node} expr
* @api public
*/
var UnaryOp = module.exports = function UnaryOp(op, expr){
Node.call(this);
this.op = op;
this.expr = expr;
};
/**
* Inherit from `Node.prototype`.
*/
UnaryOp.prototype.__proto__ = Node.prototype;
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
UnaryOp.prototype.clone = function(parent){
var clone = new UnaryOp(this.op);
clone.expr = this.expr.clone(parent, clone);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
UnaryOp.prototype.toJSON = function(){
return {
__type: 'UnaryOp',
op: this.op,
expr: this.expr,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};

214
nodejs/node_modules/stylus/lib/nodes/unit.js generated vendored Normal file
View File

@@ -0,0 +1,214 @@
/*!
* Stylus - Unit
* Copyright (c) Automattic <developer.wordpress.com>
* MIT Licensed
*/
/**
* Module dependencies.
*/
var Node = require('./node')
, nodes = require('./');
/**
* Unit conversion table.
*/
var FACTOR_TABLE = {
'mm': {val: 1, label: 'mm'},
'cm': {val: 10, label: 'mm'},
'in': {val: 25.4, label: 'mm'},
'pt': {val: 25.4/72, label: 'mm'},
'ms': {val: 1, label: 'ms'},
's': {val: 1000, label: 'ms'},
'Hz': {val: 1, label: 'Hz'},
'kHz': {val: 1000, label: 'Hz'}
};
/**
* Initialize a new `Unit` with the given `val` and unit `type`
* such as "px", "pt", "in", etc.
*
* @param {String} val
* @param {String} type
* @api public
*/
var Unit = module.exports = function Unit(val, type){
Node.call(this);
this.val = val;
this.type = type;
};
/**
* Inherit from `Node.prototype`.
*/
Unit.prototype.__proto__ = Node.prototype;
/**
* Return Boolean based on the unit value.
*
* @return {Boolean}
* @api public
*/
Unit.prototype.toBoolean = function(){
return nodes.Boolean(this.type
? true
: this.val);
};
/**
* Return unit string.
*
* @return {String}
* @api public
*/
Unit.prototype.toString = function(){
return this.val + (this.type || '');
};
/**
* Return a clone of this node.
*
* @return {Node}
* @api public
*/
Unit.prototype.clone = function(){
var clone = new Unit(this.val, this.type);
clone.lineno = this.lineno;
clone.column = this.column;
clone.filename = this.filename;
return clone;
};
/**
* Return a JSON representation of this node.
*
* @return {Object}
* @api public
*/
Unit.prototype.toJSON = function(){
return {
__type: 'Unit',
val: this.val,
type: this.type,
lineno: this.lineno,
column: this.column,
filename: this.filename
};
};
/**
* Operate on `right` with the given `op`.
*
* @param {String} op
* @param {Node} right
* @return {Node}
* @api public
*/
Unit.prototype.operate = function(op, right){
var type = this.type || right.first.type;
// swap color
if ('rgba' == right.nodeName || 'hsla' == right.nodeName) {
return right.operate(op, this);
}
// operate
if (this.shouldCoerce(op)) {
right = right.first;
// percentages
if ('%' != this.type && ('-' == op || '+' == op) && '%' == right.type) {
right = new Unit(this.val * (right.val / 100), '%');
} else {
right = this.coerce(right);
}
switch (op) {
case '-':
return new Unit(this.val - right.val, type);
case '+':
// keyframes interpolation
type = type || (right.type == '%' && right.type);
return new Unit(this.val + right.val, type);
case '/':
return new Unit(this.val / right.val, type);
case '*':
return new Unit(this.val * right.val, type);
case '%':
return new Unit(this.val % right.val, type);
case '**':
return new Unit(Math.pow(this.val, right.val), type);
case '..':
case '...':
var start = this.val
, end = right.val
, expr = new nodes.Expression
, inclusive = '..' == op;
if (start < end) {
do {
expr.push(new nodes.Unit(start));
} while (inclusive ? ++start <= end : ++start < end);
} else {
do {
expr.push(new nodes.Unit(start));
} while (inclusive ? --start >= end : --start > end);
}
return expr;
}
}
return Node.prototype.operate.call(this, op, right);
};
/**
* Coerce `other` unit to the same type as `this` unit.
*
* Supports:
*
* mm -> cm | in
* cm -> mm | in
* in -> mm | cm
*
* ms -> s
* s -> ms
*
* Hz -> kHz
* kHz -> Hz
*
* @param {Unit} other
* @return {Unit}
* @api public
*/
Unit.prototype.coerce = function(other){
if ('unit' == other.nodeName) {
var a = this
, b = other
, factorA = FACTOR_TABLE[a.type]
, factorB = FACTOR_TABLE[b.type];
if (factorA && factorB && (factorA.label == factorB.label)) {
var bVal = b.val * (factorB.val / factorA.val);
return new nodes.Unit(bVal, a.type);
} else {
return new nodes.Unit(b.val, a.type);
}
} else if ('string' == other.nodeName) {
// keyframes interpolation
if ('%' == other.val) return new nodes.Unit(0, '%');
var val = parseFloat(other.val);
if (isNaN(val)) Node.prototype.coerce.call(this, other);
return new nodes.Unit(val);
} else {
return Node.prototype.coerce.call(this, other);
}
};