You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apex.apache.org by da...@apache.org on 2015/11/30 22:06:13 UTC

[07/98] [abbrv] [partial] incubator-apex-malhar git commit: Removing all web demos

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.h
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.h b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.h
deleted file mode 100644
index 13f0cc4..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.h
+++ /dev/null
@@ -1,278 +0,0 @@
-//===========================================================================
-
-#ifndef BSON_H_
-#define BSON_H_
-
-//===========================================================================
-
-#ifdef __arm__
-#define USE_MISALIGNED_MEMORY_ACCESS 0
-#else
-#define USE_MISALIGNED_MEMORY_ACCESS 1
-#endif
-
-#include <node.h>
-#include <node_object_wrap.h>
-#include <v8.h>
-#include "nan.h"
-
-using namespace v8;
-using namespace node;
-
-//===========================================================================
-
-enum BsonType
-{
-	BSON_TYPE_NUMBER		= 1,
-	BSON_TYPE_STRING		= 2,
-	BSON_TYPE_OBJECT		= 3,
-	BSON_TYPE_ARRAY			= 4,
-	BSON_TYPE_BINARY		= 5,
-	BSON_TYPE_UNDEFINED		= 6,
-	BSON_TYPE_OID			= 7,
-	BSON_TYPE_BOOLEAN		= 8,
-	BSON_TYPE_DATE			= 9,
-	BSON_TYPE_NULL			= 10,
-	BSON_TYPE_REGEXP		= 11,
-	BSON_TYPE_CODE			= 13,
-	BSON_TYPE_SYMBOL		= 14,
-	BSON_TYPE_CODE_W_SCOPE	= 15,
-	BSON_TYPE_INT			= 16,
-	BSON_TYPE_TIMESTAMP		= 17,
-	BSON_TYPE_LONG			= 18,
-	BSON_TYPE_MAX_KEY		= 0x7f,
-	BSON_TYPE_MIN_KEY		= 0xff
-};
-
-//===========================================================================
-
-template<typename T> class BSONSerializer;
-
-class BSON : public ObjectWrap {
-public:
-	BSON();
-	~BSON() {}
-
-	static void Initialize(Handle<Object> target);
-        static NAN_METHOD(BSONDeserializeStream);
-
-	// JS based objects
-	static NAN_METHOD(BSONSerialize);
-	static NAN_METHOD(BSONDeserialize);
-
-        // Calculate size of function
-	static NAN_METHOD(CalculateObjectSize);
-	static NAN_METHOD(SerializeWithBufferAndIndex);
-
-	// Constructor used for creating new BSON objects from C++
-	static Persistent<FunctionTemplate> constructor_template;
-
-private:
-	static NAN_METHOD(New);
-	static Handle<Value> deserialize(BSON *bson, char *data, uint32_t dataLength, uint32_t startIndex, bool is_array_item);
-
-	// BSON type instantiate functions
-	Persistent<Function> longConstructor;
-	Persistent<Function> objectIDConstructor;
-	Persistent<Function> binaryConstructor;
-	Persistent<Function> codeConstructor;
-	Persistent<Function> dbrefConstructor;
-	Persistent<Function> symbolConstructor;
-	Persistent<Function> doubleConstructor;
-	Persistent<Function> timestampConstructor;
-	Persistent<Function> minKeyConstructor;
-	Persistent<Function> maxKeyConstructor;
-
-	// Equality Objects
-	Persistent<String> longString;
-	Persistent<String> objectIDString;
-	Persistent<String> binaryString;
-	Persistent<String> codeString;
-	Persistent<String> dbrefString;
-	Persistent<String> symbolString;
-	Persistent<String> doubleString;
-	Persistent<String> timestampString;
-	Persistent<String> minKeyString;
-	Persistent<String> maxKeyString;
-
-	// Equality speed up comparison objects
-	Persistent<String> _bsontypeString;
-	Persistent<String> _longLowString;
-	Persistent<String> _longHighString;
-	Persistent<String> _objectIDidString;
-	Persistent<String> _binaryPositionString;
-	Persistent<String> _binarySubTypeString;
-	Persistent<String> _binaryBufferString;
-	Persistent<String> _doubleValueString;
-	Persistent<String> _symbolValueString;
-
-	Persistent<String> _dbRefRefString;
-	Persistent<String> _dbRefIdRefString;
-	Persistent<String> _dbRefDbRefString;
-	Persistent<String> _dbRefNamespaceString;
-	Persistent<String> _dbRefDbString;
-	Persistent<String> _dbRefOidString;
-
-	Persistent<String> _codeCodeString;
-	Persistent<String> _codeScopeString;
-	Persistent<String> _toBSONString;
-
-	Local<Object> GetSerializeObject(const Handle<Value>& object);
-
-	template<typename T> friend class BSONSerializer;
-	friend class BSONDeserializer;
-};
-
-//===========================================================================
-
-class CountStream
-{
-public:
-	CountStream() : count(0) { }
-
-	void	WriteByte(int value)									{ ++count; }
-	void	WriteByte(const Handle<Object>&, const Handle<String>&)	{ ++count; }
-	void	WriteBool(const Handle<Value>& value)					{ ++count; }
-	void	WriteInt32(int32_t value)								{ count += 4; }
-	void	WriteInt32(const Handle<Value>& value)					{ count += 4; }
-	void	WriteInt32(const Handle<Object>& object, const Handle<String>& key) { count += 4; }
-	void	WriteInt64(int64_t value)								{ count += 8; }
-	void	WriteInt64(const Handle<Value>& value)					{ count += 8; }
-	void	WriteDouble(double value)								{ count += 8; }
-	void	WriteDouble(const Handle<Value>& value)					{ count += 8; }
-	void	WriteDouble(const Handle<Object>&, const Handle<String>&) { count += 8; }
-	void	WriteUInt32String(uint32_t name)						{ char buffer[32]; count += sprintf(buffer, "%u", name) + 1; }
-	void	WriteLengthPrefixedString(const Local<String>& value)	{ count += value->Utf8Length()+5; }
-	void	WriteObjectId(const Handle<Object>& object, const Handle<String>& key)				{ count += 12; }
-	void	WriteString(const Local<String>& value)					{ count += value->Utf8Length() + 1; }	// This returns the number of bytes exclusive of the NULL terminator
-	void	WriteData(const char* data, size_t length)				{ count += length; }
-
-	void*	BeginWriteType()										{ ++count; return NULL; }
-	void	CommitType(void*, BsonType)								{ }
-	void*	BeginWriteSize()										{ count += 4; return NULL; }
-	void	CommitSize(void*)										{ }
-
-	size_t GetSerializeSize() const									{ return count; }
-
-	// Do nothing. CheckKey is implemented for DataStream
-	void	CheckKey(const Local<String>&)							{ }
-
-private:
-	size_t	count;
-};
-
-class DataStream
-{
-public:
-	DataStream(char* aDestinationBuffer) : destinationBuffer(aDestinationBuffer), p(aDestinationBuffer) { }
-
-	void	WriteByte(int value)									{ *p++ = value; }
-	void	WriteByte(const Handle<Object>& object, const Handle<String>& key)	{ *p++ = object->Get(key)->Int32Value(); }
-#if USE_MISALIGNED_MEMORY_ACCESS
-	void	WriteInt32(int32_t value)								{ *reinterpret_cast<int32_t*>(p) = value; p += 4; }
-	void	WriteInt64(int64_t value)								{ *reinterpret_cast<int64_t*>(p) = value; p += 8; }
-	void	WriteDouble(double value)								{ *reinterpret_cast<double*>(p) = value; p += 8; }
-#else
-	void	WriteInt32(int32_t value)								{ memcpy(p, &value, 4); p += 4; }
-	void	WriteInt64(int64_t value)								{ memcpy(p, &value, 8); p += 8; }
-	void	WriteDouble(double value)								{ memcpy(p, &value, 8); p += 8; }
-#endif
-	void	WriteBool(const Handle<Value>& value)					{ WriteByte(value->BooleanValue() ? 1 : 0); }
-	void	WriteInt32(const Handle<Value>& value)					{ WriteInt32(value->Int32Value());			}
-	void	WriteInt32(const Handle<Object>& object, const Handle<String>& key) { WriteInt32(object->Get(key)); }
-	void	WriteInt64(const Handle<Value>& value)					{ WriteInt64(value->IntegerValue());		}
-	void	WriteDouble(const Handle<Value>& value)					{ WriteDouble(value->NumberValue());		}
-	void	WriteDouble(const Handle<Object>& object, const Handle<String>& key) { WriteDouble(object->Get(key)); }
-	void	WriteUInt32String(uint32_t name)						{ p += sprintf(p, "%u", name) + 1;			}
-	void	WriteLengthPrefixedString(const Local<String>& value)	{ WriteInt32(value->Utf8Length()+1); WriteString(value); }
-	void	WriteObjectId(const Handle<Object>& object, const Handle<String>& key);
-	void	WriteString(const Local<String>& value)					{ p += value->WriteUtf8(p); }		// This returns the number of bytes inclusive of the NULL terminator.
-	void	WriteData(const char* data, size_t length)				{ memcpy(p, data, length); p += length; }
-
-	void*	BeginWriteType()										{ void* returnValue = p; p++; return returnValue; }
-	void	CommitType(void* beginPoint, BsonType value)			{ *reinterpret_cast<unsigned char*>(beginPoint) = value; }
-	void*	BeginWriteSize()										{ void* returnValue = p; p += 4; return returnValue; }
-
-#if USE_MISALIGNED_MEMORY_ACCESS
-	void	CommitSize(void* beginPoint)							{ *reinterpret_cast<int32_t*>(beginPoint) = (int32_t) (p - (char*) beginPoint); }
-#else
-	void	CommitSize(void* beginPoint)							{ int32_t value = (int32_t) (p - (char*) beginPoint); memcpy(beginPoint, &value, 4); }
-#endif
-
-	size_t GetSerializeSize() const									{ return p - destinationBuffer; }
-
-	void	CheckKey(const Local<String>& keyName);
-
-protected:
-	char *const	destinationBuffer;		// base, never changes
-	char*		p;						// cursor into buffer
-};
-
-template<typename T> class BSONSerializer : public T
-{
-private:
-	typedef T Inherited;
-
-public:
-	BSONSerializer(BSON* aBson, bool aCheckKeys, bool aSerializeFunctions) : Inherited(), checkKeys(aCheckKeys), serializeFunctions(aSerializeFunctions), bson(aBson) { }
-	BSONSerializer(BSON* aBson, bool aCheckKeys, bool aSerializeFunctions, char* parentParam) : Inherited(parentParam), checkKeys(aCheckKeys), serializeFunctions(aSerializeFunctions), bson(aBson) { }
-
-	void SerializeDocument(const Handle<Value>& value);
-	void SerializeArray(const Handle<Value>& value);
-	void SerializeValue(void* typeLocation, const Handle<Value>& value);
-
-private:
-	bool		checkKeys;
-	bool		serializeFunctions;
-	BSON*		bson;
-};
-
-//===========================================================================
-
-class BSONDeserializer
-{
-public:
-	BSONDeserializer(BSON* aBson, char* data, size_t length);
-	BSONDeserializer(BSONDeserializer& parentSerializer, size_t length);
-
-	Handle<Value> DeserializeDocument(bool promoteLongs);
-
-	bool			HasMoreData() const { return p < pEnd; }
-	Handle<Value>	ReadCString();
-	uint32_t		ReadIntegerString();
-	int32_t			ReadRegexOptions();
-	Local<String>	ReadString();
-	Local<String>	ReadObjectId();
-
-	unsigned char	ReadByte()			{ return *reinterpret_cast<unsigned char*>(p++); }
-#if USE_MISALIGNED_MEMORY_ACCESS
-	int32_t			ReadInt32()			{ int32_t returnValue = *reinterpret_cast<int32_t*>(p); p += 4; return returnValue; }
-	uint32_t		ReadUInt32()		{ uint32_t returnValue = *reinterpret_cast<uint32_t*>(p); p += 4; return returnValue; }
-	int64_t			ReadInt64()			{ int64_t returnValue = *reinterpret_cast<int64_t*>(p); p += 8; return returnValue; }
-	double			ReadDouble()		{ double returnValue = *reinterpret_cast<double*>(p); p += 8; return returnValue; }
-#else
-	int32_t			ReadInt32()			{ int32_t returnValue; memcpy(&returnValue, p, 4); p += 4; return returnValue; }
-	uint32_t		ReadUInt32()		{ uint32_t returnValue; memcpy(&returnValue, p, 4); p += 4; return returnValue; }
-	int64_t			ReadInt64()			{ int64_t returnValue; memcpy(&returnValue, p, 8); p += 8; return returnValue; }
-	double			ReadDouble()		{ double returnValue; memcpy(&returnValue, p, 8); p += 8; return returnValue; }
-#endif
-
-	size_t			GetSerializeSize() const { return p - pStart; }
-
-private:
-	Handle<Value> DeserializeArray(bool promoteLongs);
-	Handle<Value> DeserializeValue(BsonType type, bool promoteLongs);
-	Handle<Value> DeserializeDocumentInternal(bool promoteLongs);
-	Handle<Value> DeserializeArrayInternal(bool promoteLongs);
-
-	BSON*		bson;
-	char* const pStart;
-	char*		p;
-	char* const	pEnd;
-};
-
-//===========================================================================
-
-#endif  // BSON_H_
-
-//===========================================================================

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/index.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/index.js b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/index.js
deleted file mode 100644
index 65affae..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/index.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var bson = null;
-
-try {
-	// Load the precompiled win32 binary
-	if(process.platform == "win32" && process.arch == "x64") {
-	  bson = require('./win32/x64/bson');  
-	} else if(process.platform == "win32" && process.arch == "ia32") {
-	  bson = require('./win32/ia32/bson');  
-	} else {
-	  bson = require('../build/Release/bson');  
-	}	
-} catch(err) {
-	console.error("Failed to load c++ bson extension, using pure JS version");
-	bson = require('../lib/bson/bson');
-}
-
-exports.BSON = bson.BSON;
-exports.Long = require('../lib/bson/long').Long;
-exports.ObjectID = require('../lib/bson/objectid').ObjectID;
-exports.DBRef = require('../lib/bson/db_ref').DBRef;
-exports.Code = require('../lib/bson/code').Code;
-exports.Timestamp = require('../lib/bson/timestamp').Timestamp;
-exports.Binary = require('../lib/bson/binary').Binary;
-exports.Double = require('../lib/bson/double').Double;
-exports.MaxKey = require('../lib/bson/max_key').MaxKey;
-exports.MinKey = require('../lib/bson/min_key').MinKey;
-exports.Symbol = require('../lib/bson/symbol').Symbol;
-
-// Just add constants tot he Native BSON parser
-exports.BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0;
-exports.BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1;
-exports.BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
-exports.BSON.BSON_BINARY_SUBTYPE_UUID = 3;
-exports.BSON.BSON_BINARY_SUBTYPE_MD5 = 4;
-exports.BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/nan.h
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/nan.h b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/nan.h
deleted file mode 100644
index 822cb4d..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/nan.h
+++ /dev/null
@@ -1,1196 +0,0 @@
-/**********************************************************************************
- * NAN - Native Abstractions for Node.js
- *
- * Copyright (c) 2014 NAN contributors:
- *   - Rod Vagg <https://github.com/rvagg>
- *   - Benjamin Byholm <https://github.com/kkoopa>
- *   - Trevor Norris <https://github.com/trevnorris>
- *   - Nathan Rajlich <https://github.com/TooTallNate>
- *   - Brett Lawson <https://github.com/brett19>
- *   - Ben Noordhuis <https://github.com/bnoordhuis>
- *
- * MIT +no-false-attribs License <https://github.com/rvagg/nan/blob/master/LICENSE>
- *
- * Version 0.8.0 (current Node unstable: 0.11.10, Node stable: 0.10.24)
- *
- * ChangeLog:
- *  * 0.8.0 Jan 9 2014
- *    - NanDispose -> NanDisposePersistent, deprecate NanDispose
- *    - Extract _NAN_*_RETURN_TYPE, pull up NAN_*()
- *
- *  * 0.7.1 Jan 9 2014
- *    - Fixes to work against debug builds of Node
- *    - Safer NanPersistentToLocal (avoid reinterpret_cast)
- *    - Speed up common NanRawString case by only extracting flattened string when necessary
- *
- *  * 0.7.0 Dec 17 2013
- *    - New no-arg form of NanCallback() constructor.
- *    - NanCallback#Call takes Handle rather than Local
- *    - Removed deprecated NanCallback#Run method, use NanCallback#Call instead
- *    - Split off _NAN_*_ARGS_TYPE from _NAN_*_ARGS
- *    - Restore (unofficial) Node 0.6 compatibility at NanCallback#Call()
- *    - Introduce NanRawString() for char* (or appropriate void*) from v8::String
- *      (replacement for NanFromV8String)
- *    - Introduce NanCString() for null-terminated char* from v8::String
- *
- *  * 0.6.0 Nov 21 2013
- *    - Introduce NanNewLocal<T>(v8::Handle<T> value) for use in place of
- *      v8::Local<T>::New(...) since v8 started requiring isolate in Node 0.11.9
- *
- *  * 0.5.2 Nov 16 2013
- *    - Convert SavePersistent and GetFromPersistent in NanAsyncWorker from protected and public
- *
- *  * 0.5.1 Nov 12 2013
- *    - Use node::MakeCallback() instead of direct v8::Function::Call()
- *
- *  * 0.5.0 Nov 11 2013
- *    - Added @TooTallNate as collaborator
- *    - New, much simpler, "include_dirs" for binding.gyp
- *    - Added full range of NAN_INDEX_* macros to match NAN_PROPERTY_* macros
- *
- *  * 0.4.4 Nov 2 2013
- *    - Isolate argument from v8::Persistent::MakeWeak removed for 0.11.8+
- *
- *  * 0.4.3 Nov 2 2013
- *    - Include node_object_wrap.h, removed from node.h for Node 0.11.8.
- *
- *  * 0.4.2 Nov 2 2013
- *    - Handle deprecation of v8::Persistent::Dispose(v8::Isolate* isolate)) for
- *      Node 0.11.8 release.
- *
- *  * 0.4.1 Sep 16 2013
- *    - Added explicit `#include <uv.h>` as it was removed from node.h for v0.11.8
- *
- *  * 0.4.0 Sep 2 2013
- *    - Added NAN_INLINE and NAN_DEPRECATED and made use of them
- *    - Added NanError, NanTypeError and NanRangeError
- *    - Cleaned up code
- *
- *  * 0.3.2 Aug 30 2013
- *    - Fix missing scope declaration in GetFromPersistent() and SaveToPersistent
- *      in NanAsyncWorker
- *
- *  * 0.3.1 Aug 20 2013
- *    - fix "not all control paths return a value" compile warning on some platforms
- *
- *  * 0.3.0 Aug 19 2013
- *    - Made NAN work with NPM
- *    - Lots of fixes to NanFromV8String, pulling in features from new Node core
- *    - Changed node::encoding to Nan::Encoding in NanFromV8String to unify the API
- *    - Added optional error number argument for NanThrowError()
- *    - Added NanInitPersistent()
- *    - Added NanReturnNull() and NanReturnEmptyString()
- *    - Added NanLocker and NanUnlocker
- *    - Added missing scopes
- *    - Made sure to clear disposed Persistent handles
- *    - Changed NanAsyncWorker to allocate error messages on the heap
- *    - Changed NanThrowError(Local<Value>) to NanThrowError(Handle<Value>)
- *    - Fixed leak in NanAsyncWorker when errmsg is used
- *
- *  * 0.2.2 Aug 5 2013
- *    - Fixed usage of undefined variable with node::BASE64 in NanFromV8String()
- *
- *  * 0.2.1 Aug 5 2013
- *    - Fixed 0.8 breakage, node::BUFFER encoding type not available in 0.8 for
- *      NanFromV8String()
- *
- *  * 0.2.0 Aug 5 2013
- *    - Added NAN_PROPERTY_GETTER, NAN_PROPERTY_SETTER, NAN_PROPERTY_ENUMERATOR,
- *      NAN_PROPERTY_DELETER, NAN_PROPERTY_QUERY
- *    - Extracted _NAN_METHOD_ARGS, _NAN_GETTER_ARGS, _NAN_SETTER_ARGS,
- *      _NAN_PROPERTY_GETTER_ARGS, _NAN_PROPERTY_SETTER_ARGS,
- *      _NAN_PROPERTY_ENUMERATOR_ARGS, _NAN_PROPERTY_DELETER_ARGS,
- *      _NAN_PROPERTY_QUERY_ARGS
- *    - Added NanGetInternalFieldPointer, NanSetInternalFieldPointer
- *    - Added NAN_WEAK_CALLBACK, NAN_WEAK_CALLBACK_OBJECT,
- *      NAN_WEAK_CALLBACK_DATA, NanMakeWeak
- *    - Renamed THROW_ERROR to _NAN_THROW_ERROR
- *    - Added NanNewBufferHandle(char*, size_t, node::smalloc::FreeCallback, void*)
- *    - Added NanBufferUse(char*, uint32_t)
- *    - Added NanNewContextHandle(v8::ExtensionConfiguration*,
- *        v8::Handle<v8::ObjectTemplate>, v8::Handle<v8::Value>)
- *    - Fixed broken NanCallback#GetFunction()
- *    - Added optional encoding and size arguments to NanFromV8String()
- *    - Added NanGetPointerSafe() and NanSetPointerSafe()
- *    - Added initial test suite (to be expanded)
- *    - Allow NanUInt32OptionValue to convert any Number object
- *
- *  * 0.1.0 Jul 21 2013
- *    - Added `NAN_GETTER`, `NAN_SETTER`
- *    - Added `NanThrowError` with single Local<Value> argument
- *    - Added `NanNewBufferHandle` with single uint32_t argument
- *    - Added `NanHasInstance(Persistent<FunctionTemplate>&, Handle<Value>)`
- *    - Added `Local<Function> NanCallback#GetFunction()`
- *    - Added `NanCallback#Call(int, Local<Value>[])`
- *    - Deprecated `NanCallback#Run(int, Local<Value>[])` in favour of Call
- *
- * See https://github.com/rvagg/nan for the latest update to this file
- **********************************************************************************/
-
-#ifndef NAN_H
-#define NAN_H
-
-#include <uv.h>
-#include <node.h>
-#include <node_buffer.h>
-#include <node_version.h>
-#include <node_object_wrap.h>
-#include <string.h>
-
-#if defined(__GNUC__) && !defined(DEBUG)
-# define NAN_INLINE(declarator) inline __attribute__((always_inline)) declarator
-#elif defined(_MSC_VER) && !defined(DEBUG)
-# define NAN_INLINE(declarator) __forceinline declarator
-#else
-# define NAN_INLINE(declarator) inline declarator
-#endif
-
-#if defined(__GNUC__) && !V8_DISABLE_DEPRECATIONS
-# define NAN_DEPRECATED(declarator) __attribute__((deprecated)) declarator
-#elif defined(_MSC_VER) && !V8_DISABLE_DEPRECATIONS
-# define NAN_DEPRECATED(declarator) __declspec(deprecated) declarator
-#else
-# define NAN_DEPRECATED(declarator) declarator
-#endif
-
-// some generic helpers
-
-template<class T> static NAN_INLINE(bool NanSetPointerSafe(
-    T *var
-  , T val
-)) {
-  if (var) {
-    *var = val;
-    return true;
-  } else {
-    return false;
-  }
-}
-
-template<class T> static NAN_INLINE(T NanGetPointerSafe(
-    T *var
-  , T fallback = reinterpret_cast<T>(0)
-)) {
-  if (var) {
-    return *var;
-  } else {
-    return fallback;
-  }
-}
-
-#define NanSymbol(value) v8::String::NewSymbol(value)
-
-static NAN_INLINE(bool NanBooleanOptionValue(
-    v8::Local<v8::Object> optionsObj
-  , v8::Handle<v8::String> opt, bool def
-)) {
-  if (def) {
-    return optionsObj.IsEmpty()
-      || !optionsObj->Has(opt)
-      || optionsObj->Get(opt)->BooleanValue();
-  } else {
-    return !optionsObj.IsEmpty()
-      && optionsObj->Has(opt)
-      && optionsObj->Get(opt)->BooleanValue();
-  }
-}
-
-static NAN_INLINE(bool NanBooleanOptionValue(
-    v8::Local<v8::Object> optionsObj
-  , v8::Handle<v8::String> opt
-)) {
-  return NanBooleanOptionValue(optionsObj, opt, false);
-}
-
-static NAN_INLINE(uint32_t NanUInt32OptionValue(
-    v8::Local<v8::Object> optionsObj
-  , v8::Handle<v8::String> opt
-  , uint32_t def
-)) {
-  return !optionsObj.IsEmpty()
-    && optionsObj->Has(opt)
-    && optionsObj->Get(opt)->IsNumber()
-      ? optionsObj->Get(opt)->Uint32Value()
-      : def;
-}
-
-#if (NODE_MODULE_VERSION > 0x000B)
-// Node 0.11+ (0.11.3 and below won't compile with these)
-
-static v8::Isolate* nan_isolate = v8::Isolate::GetCurrent();
-
-# define _NAN_METHOD_ARGS_TYPE const v8::FunctionCallbackInfo<v8::Value>&
-# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
-# define _NAN_METHOD_RETURN_TYPE void
-
-# define _NAN_GETTER_ARGS_TYPE const v8::PropertyCallbackInfo<v8::Value>&
-# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
-# define _NAN_GETTER_RETURN_TYPE void
-
-# define _NAN_SETTER_ARGS_TYPE const v8::PropertyCallbackInfo<void>&
-# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
-# define _NAN_SETTER_RETURN_TYPE void
-
-# define _NAN_PROPERTY_GETTER_ARGS_TYPE                                        \
-    const v8::PropertyCallbackInfo<v8::Value>&
-# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
-# define _NAN_PROPERTY_GETTER_RETURN_TYPE void
-
-# define _NAN_PROPERTY_SETTER_ARGS_TYPE                                        \
-    const v8::PropertyCallbackInfo<v8::Value>&
-# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
-# define _NAN_PROPERTY_SETTER_RETURN_TYPE void
-
-# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE                                    \
-    const v8::PropertyCallbackInfo<v8::Array>&
-# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
-# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE void
-
-# define _NAN_PROPERTY_DELETER_ARGS_TYPE                                       \
-    const v8::PropertyCallbackInfo<v8::Boolean>&
-# define _NAN_PROPERTY_DELETER_ARGS                                            \
-    _NAN_PROPERTY_DELETER_ARGS_TYPE args
-# define _NAN_PROPERTY_DELETER_RETURN_TYPE void
-
-# define _NAN_PROPERTY_QUERY_ARGS_TYPE                                         \
-    const v8::PropertyCallbackInfo<v8::Integer>&
-# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
-# define _NAN_PROPERTY_QUERY_RETURN_TYPE void
-
-# define _NAN_INDEX_GETTER_ARGS_TYPE                                           \
-    const v8::PropertyCallbackInfo<v8::Value>&
-# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
-# define _NAN_INDEX_GETTER_RETURN_TYPE void
-
-# define _NAN_INDEX_SETTER_ARGS_TYPE                                           \
-    const v8::PropertyCallbackInfo<v8::Value>&
-# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
-# define _NAN_INDEX_SETTER_RETURN_TYPE void
-
-# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE                                       \
-    const v8::PropertyCallbackInfo<v8::Array>&
-# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
-# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE void
-
-# define _NAN_INDEX_DELETER_ARGS_TYPE                                          \
-    const v8::PropertyCallbackInfo<v8::Boolean>&
-# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
-# define _NAN_INDEX_DELETER_RETURN_TYPE void
-
-# define _NAN_INDEX_QUERY_ARGS_TYPE                                            \
-    const v8::PropertyCallbackInfo<v8::Integer>&
-# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
-# define _NAN_INDEX_QUERY_RETURN_TYPE void
-
-# define NanGetInternalFieldPointer(object, index)                             \
-    object->GetAlignedPointerFromInternalField(index)
-# define NanSetInternalFieldPointer(object, index, value)                      \
-    object->SetAlignedPointerInInternalField(index, value)
-
-# define NAN_WEAK_CALLBACK(type, name)                                         \
-    void name(                                                                 \
-        v8::Isolate* isolate                                                   \
-      , v8::Persistent<v8::Object>* object                                     \
-      , type data)
-# define NAN_WEAK_CALLBACK_OBJECT (*object)
-# define NAN_WEAK_CALLBACK_DATA(type) ((type) data)
-
-# define NanScope() v8::HandleScope scope(nan_isolate)
-# define NanLocker() v8::Locker locker(nan_isolate)
-# define NanUnlocker() v8::Unlocker unlocker(nan_isolate)
-# define NanReturnValue(value) return args.GetReturnValue().Set(value)
-# define NanReturnUndefined() return
-# define NanReturnNull() return args.GetReturnValue().SetNull()
-# define NanReturnEmptyString() return args.GetReturnValue().SetEmptyString()
-# define NanAssignPersistent(type, handle, obj) handle.Reset(nan_isolate, obj)
-# define NanInitPersistent(type, name, obj)                                    \
-    v8::Persistent<type> name(nan_isolate, obj)
-# define NanObjectWrapHandle(obj) obj->handle()
-
-//TODO: remove <0.11.8 support when 0.12 is released
-#if NODE_VERSION_AT_LEAST(0, 11, 8)
-# define NanMakeWeak(handle, parameter, callback)                              \
-    handle.MakeWeak(parameter, callback)
-#else
-# define NanMakeWeak(handle, parameter, callback)                              \
-    handle.MakeWeak(nan_isolate, parameter, callback)
-#endif
-
-# define _NAN_ERROR(fun, errmsg) fun(v8::String::New(errmsg))
-
-# define _NAN_THROW_ERROR(fun, errmsg)                                         \
-    do {                                                                       \
-      NanScope();                                                              \
-      v8::ThrowException(_NAN_ERROR(fun, errmsg));                             \
-    } while (0);
-
-  template<class T> static NAN_INLINE(v8::Local<T> NanNewLocal(
-      v8::Handle<T> val
-  )) {
-//TODO: remove <0.11.9 support when 0.12 is released
-#if NODE_VERSION_AT_LEAST(0, 11, 9)
-    return v8::Local<T>::New(nan_isolate, val);
-#else
-    return v8::Local<T>::New(val);
-#endif
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanError(const char* errmsg)) {
-    return  _NAN_ERROR(v8::Exception::Error, errmsg);
-  }
-
-  static NAN_INLINE(void NanThrowError(const char* errmsg)) {
-    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
-  }
-
-  static NAN_INLINE(void NanThrowError(v8::Handle<v8::Value> error)) {
-    NanScope();
-    v8::ThrowException(error);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanError(
-      const char *msg
-    , const int errorNumber
-  )) {
-    v8::Local<v8::Value> err = v8::Exception::Error(v8::String::New(msg));
-    v8::Local<v8::Object> obj = err.As<v8::Object>();
-    obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
-    return err;
-  }
-
-  static NAN_INLINE(void NanThrowError(
-      const char *msg
-    , const int errorNumber
-  )) {
-    NanThrowError(NanError(msg, errorNumber));
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanTypeError(const char* errmsg)) {
-    return _NAN_ERROR(v8::Exception::TypeError, errmsg);
-  }
-
-  static NAN_INLINE(void NanThrowTypeError(const char* errmsg)) {
-    _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanRangeError(const char* errmsg)) {
-    return _NAN_ERROR(v8::Exception::RangeError, errmsg);
-  }
-
-  static NAN_INLINE(void NanThrowRangeError(const char* errmsg)) {
-    _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
-  }
-
-  template<class T> static NAN_INLINE(void NanDisposePersistent(
-      v8::Persistent<T> &handle
-  )) {
-
-//TODO: remove <0.11.8 support when 0.12 is released
-# if NODE_VERSION_AT_LEAST(0, 11, 8)
-    handle.Reset();
-# else
-    handle.Dispose(nan_isolate);
-# endif
-    handle.Clear();
-  }
-
-  template<class T> static NAN_DEPRECATED(void NanDispose(
-      v8::Persistent<T> &handle
-  )) {
-    NanDisposePersistent(handle);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (
-      char *data
-    , size_t length
-    , node::smalloc::FreeCallback callback
-    , void *hint
-  )) {
-    return node::Buffer::New(data, length, callback, hint);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (
-      char *data
-    , uint32_t size
-  )) {
-    return node::Buffer::New(data, size);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (uint32_t size)) {
-    return node::Buffer::New(size);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanBufferUse(
-      char* data
-    , uint32_t size
-  )) {
-    return node::Buffer::Use(data, size);
-  }
-
-  template <class TypeName>
-  static NAN_INLINE(v8::Local<TypeName> NanPersistentToLocal(
-     const v8::Persistent<TypeName>& persistent
-  )) {
-    return v8::Local<TypeName>::New(nan_isolate, persistent);
-  }
-
-  static NAN_INLINE(bool NanHasInstance(
-      v8::Persistent<v8::FunctionTemplate>& function_template
-    , v8::Handle<v8::Value> value
-  )) {
-    return NanPersistentToLocal(function_template)->HasInstance(value);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Context> NanNewContextHandle(
-      v8::ExtensionConfiguration* extensions = NULL
-    , v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
-    , v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
-  )) {
-    return v8::Local<v8::Context>::New(
-        nan_isolate
-      , v8::Context::New(nan_isolate, extensions, tmpl, obj)
-    );
-  }
-
-#else
-// Node 0.8 and 0.10
-
-# define _NAN_METHOD_ARGS_TYPE const v8::Arguments&
-# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
-# define _NAN_METHOD_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_GETTER_ARGS_TYPE const v8::AccessorInfo &
-# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
-# define _NAN_GETTER_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_SETTER_ARGS_TYPE const v8::AccessorInfo &
-# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
-# define _NAN_SETTER_RETURN_TYPE void
-
-# define _NAN_PROPERTY_GETTER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
-# define _NAN_PROPERTY_GETTER_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_PROPERTY_SETTER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
-# define _NAN_PROPERTY_SETTER_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
-# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
-
-# define _NAN_PROPERTY_DELETER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_PROPERTY_DELETER_ARGS _NAN_PROPERTY_DELETER_ARGS_TYPE args
-# define _NAN_PROPERTY_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
-
-# define _NAN_PROPERTY_QUERY_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
-# define _NAN_PROPERTY_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
-
-# define _NAN_INDEX_GETTER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
-# define _NAN_INDEX_GETTER_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_INDEX_SETTER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
-# define _NAN_INDEX_SETTER_RETURN_TYPE v8::Handle<v8::Value>
-
-# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
-# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
-
-# define _NAN_INDEX_DELETER_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
-# define _NAN_INDEX_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
-
-# define _NAN_INDEX_QUERY_ARGS_TYPE const v8::AccessorInfo&
-# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
-# define _NAN_INDEX_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
-
-# define NanGetInternalFieldPointer(object, index)                             \
-    object->GetPointerFromInternalField(index)
-# define NanSetInternalFieldPointer(object, index, value)                      \
-    object->SetPointerInInternalField(index, value)
-# define NAN_WEAK_CALLBACK(type, name)                                         \
-    void name(                                                                 \
-        v8::Persistent<v8::Value> object                                       \
-      , void *data)
-# define NAN_WEAK_CALLBACK_OBJECT object
-# define NAN_WEAK_CALLBACK_DATA(type) ((type) data)
-
-# define NanScope() v8::HandleScope scope
-# define NanLocker() v8::Locker locker
-# define NanUnlocker() v8::Unlocker unlocker
-# define NanReturnValue(value) return scope.Close(value)
-# define NanReturnUndefined() return v8::Undefined()
-# define NanReturnNull() return v8::Null()
-# define NanReturnEmptyString() return v8::String::Empty()
-# define NanInitPersistent(type, name, obj)                                    \
-    v8::Persistent<type> name = v8::Persistent<type>::New(obj)
-# define NanAssignPersistent(type, handle, obj)                                \
-    handle = v8::Persistent<type>::New(obj)
-# define NanObjectWrapHandle(obj) obj->handle_
-# define NanMakeWeak(handle, parameters, callback)                             \
-    handle.MakeWeak(parameters, callback)
-
-# define _NAN_ERROR(fun, errmsg)                                               \
-    fun(v8::String::New(errmsg))
-
-# define _NAN_THROW_ERROR(fun, errmsg)                                         \
-    do {                                                                       \
-      NanScope();                                                              \
-      return v8::ThrowException(_NAN_ERROR(fun, errmsg));                      \
-    } while (0);
-
-  template<class T> static NAN_INLINE(v8::Local<T> NanNewLocal(
-      v8::Handle<T> val
-  )) {
-    return v8::Local<T>::New(val);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanError(const char* errmsg)) {
-    return _NAN_ERROR(v8::Exception::Error, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanThrowError(const char* errmsg)) {
-    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanThrowError(
-      v8::Handle<v8::Value> error
-  )) {
-    NanScope();
-    return v8::ThrowException(error);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanError(
-      const char *msg
-    , const int errorNumber
-  )) {
-    v8::Local<v8::Value> err = v8::Exception::Error(v8::String::New(msg));
-    v8::Local<v8::Object> obj = err.As<v8::Object>();
-    obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
-    return err;
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanThrowError(
-      const char *msg
-    , const int errorNumber
-  )) {
-    return NanThrowError(NanError(msg, errorNumber));
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanTypeError(const char* errmsg)) {
-    return _NAN_ERROR(v8::Exception::TypeError, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanThrowTypeError(
-      const char* errmsg
-  )) {
-    _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanRangeError(
-      const char* errmsg
-  )) {
-    return _NAN_ERROR(v8::Exception::RangeError, errmsg);
-  }
-
-  static NAN_INLINE(v8::Handle<v8::Value> NanThrowRangeError(
-      const char* errmsg
-  )) {
-    _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
-  }
-
-  template<class T> static NAN_INLINE(void NanDisposePersistent(
-      v8::Persistent<T> &handle
-  )) {
-    handle.Dispose();
-    handle.Clear();
-  }
-
-  template<class T> static NAN_DEPRECATED(void NanDispose(
-      v8::Persistent<T> &handle
-  )) {
-    NanDisposePersistent(handle);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (
-      char *data
-    , size_t length
-    , node::Buffer::free_callback callback
-    , void *hint
-  )) {
-    return NanNewLocal<v8::Object>(
-        node::Buffer::New(data, length, callback, hint)->handle_);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (
-      char *data
-    , uint32_t size
-  )) {
-    return NanNewLocal<v8::Object>(node::Buffer::New(data, size)->handle_);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanNewBufferHandle (uint32_t size)) {
-    return NanNewLocal<v8::Object>(node::Buffer::New(size)->handle_);
-  }
-
-  static NAN_INLINE(void FreeData(char *data, void *hint)) {
-    delete[] data;
-  }
-
-  static NAN_INLINE(v8::Local<v8::Object> NanBufferUse(
-      char* data
-    , uint32_t size
-  )) {
-    return NanNewLocal<v8::Object>(
-        node::Buffer::New(data, size, FreeData, NULL)->handle_);
-  }
-
-  template <class TypeName>
-  static NAN_INLINE(v8::Local<TypeName> NanPersistentToLocal(
-     const v8::Persistent<TypeName>& persistent
-  )) {
-    return NanNewLocal<TypeName>(persistent);
-  }
-
-  static NAN_INLINE(bool NanHasInstance(
-      v8::Persistent<v8::FunctionTemplate>& function_template
-    , v8::Handle<v8::Value> value
-  )) {
-    return function_template->HasInstance(value);
-  }
-
-  static NAN_INLINE(v8::Local<v8::Context> NanNewContextHandle(
-      v8::ExtensionConfiguration* extensions = NULL
-    , v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
-    , v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
-  )) {
-    v8::Persistent<v8::Context> ctx = v8::Context::New(extensions, tmpl, obj);
-    v8::Local<v8::Context> lctx = NanNewLocal<v8::Context>(ctx);
-    ctx.Dispose();
-    return lctx;
-  }
-
-#endif // node version
-
-#define NAN_METHOD(name) _NAN_METHOD_RETURN_TYPE name(_NAN_METHOD_ARGS)
-#define NAN_GETTER(name)                                                       \
-    _NAN_GETTER_RETURN_TYPE name(                                              \
-        v8::Local<v8::String> property                                         \
-      , _NAN_GETTER_ARGS)
-#define NAN_SETTER(name)                                                       \
-    _NAN_SETTER_RETURN_TYPE name(                                              \
-        v8::Local<v8::String> property                                         \
-      , v8::Local<v8::Value> value                                             \
-      , _NAN_SETTER_ARGS)
-#define NAN_PROPERTY_GETTER(name)                                              \
-    _NAN_PROPERTY_GETTER_RETURN_TYPE name(                                     \
-        v8::Local<v8::String> property                                         \
-      , _NAN_PROPERTY_GETTER_ARGS)
-#define NAN_PROPERTY_SETTER(name)                                              \
-    _NAN_PROPERTY_SETTER_RETURN_TYPE name(                                     \
-        v8::Local<v8::String> property                                         \
-      , v8::Local<v8::Value> value                                             \
-      , _NAN_PROPERTY_SETTER_ARGS)
-#define NAN_PROPERTY_ENUMERATOR(name)                                          \
-    _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE name(_NAN_PROPERTY_ENUMERATOR_ARGS)
-#define NAN_PROPERTY_DELETER(name)                                             \
-    _NAN_PROPERTY_DELETER_RETURN_TYPE name(                                    \
-        v8::Local<v8::String> property                                         \
-      , _NAN_PROPERTY_DELETER_ARGS)
-#define NAN_PROPERTY_QUERY(name)                                               \
-    _NAN_PROPERTY_QUERY_RETURN_TYPE name(                                      \
-        v8::Local<v8::String> property                                         \
-      , _NAN_PROPERTY_QUERY_ARGS)
-# define NAN_INDEX_GETTER(name)                                                \
-    _NAN_INDEX_GETTER_RETURN_TYPE name(uint32_t index, _NAN_INDEX_GETTER_ARGS)
-#define NAN_INDEX_SETTER(name)                                                 \
-    _NAN_INDEX_SETTER_RETURN_TYPE name(                                        \
-        uint32_t index                                                         \
-      , v8::Local<v8::Value> value                                             \
-      , _NAN_INDEX_SETTER_ARGS)
-#define NAN_INDEX_ENUMERATOR(name)                                             \
-    _NAN_INDEX_ENUMERATOR_RETURN_TYPE name(_NAN_INDEX_ENUMERATOR_ARGS)
-#define NAN_INDEX_DELETER(name)                                                \
-    _NAN_INDEX_DELETER_RETURN_TYPE name(                                       \
-        uint32_t index                                                         \
-      , _NAN_INDEX_DELETER_ARGS)
-#define NAN_INDEX_QUERY(name)                                                  \
-    _NAN_INDEX_QUERY_RETURN_TYPE name(uint32_t index, _NAN_INDEX_QUERY_ARGS)
-
-class NanCallback {
- public:
-  NanCallback() {
-    NanScope();
-    v8::Local<v8::Object> obj = v8::Object::New();
-    NanAssignPersistent(v8::Object, handle, obj);
-  }
-
-  NanCallback(const v8::Handle<v8::Function> &fn) {
-    NanScope();
-    v8::Local<v8::Object> obj = v8::Object::New();
-    NanAssignPersistent(v8::Object, handle, obj);
-    SetFunction(fn);
-  }
-
-  ~NanCallback() {
-    if (handle.IsEmpty()) return;
-    handle.Dispose();
-    handle.Clear();
-  }
-
-  NAN_INLINE(void SetFunction(const v8::Handle<v8::Function> &fn)) {
-    NanScope();
-    NanPersistentToLocal(handle)->Set(NanSymbol("callback"), fn);
-  }
-
-  NAN_INLINE(v8::Local<v8::Function> GetFunction ()) {
-    return NanPersistentToLocal(handle)->Get(NanSymbol("callback"))
-        .As<v8::Function>();
-  }
-
-  void Call(int argc, v8::Handle<v8::Value> argv[]) {
-    NanScope();
-
-#if NODE_VERSION_AT_LEAST(0, 8, 0)
-    v8::Local<v8::Function> callback = NanPersistentToLocal(handle)->
-        Get(NanSymbol("callback")).As<v8::Function>();
-    node::MakeCallback(
-        v8::Context::GetCurrent()->Global()
-      , callback
-      , argc
-      , argv
-    );
-#else
-    node::MakeCallback(handle, "callback", argc, argv);
-#endif
-  }
-
- private:
-  v8::Persistent<v8::Object> handle;
-};
-
-/* abstract */ class NanAsyncWorker {
-public:
-  NanAsyncWorker (NanCallback *callback) : callback(callback) {
-    request.data = this;
-    errmsg = NULL;
-  }
-
-  virtual ~NanAsyncWorker () {
-    NanScope();
-
-    if (!persistentHandle.IsEmpty())
-      NanDisposePersistent(persistentHandle);
-    if (callback)
-      delete callback;
-    if (errmsg)
-      delete errmsg;
-  }
-
-  virtual void WorkComplete () {
-    NanScope();
-
-    if (errmsg == NULL)
-      HandleOKCallback();
-    else
-      HandleErrorCallback();
-    delete callback;
-    callback = NULL;
-  }
-
-  void SavePersistent(const char *key, v8::Local<v8::Object> &obj) {
-    NanScope();
-
-    v8::Local<v8::Object> handle = NanPersistentToLocal(persistentHandle);
-    handle->Set(NanSymbol(key), obj);
-  }
-
-  v8::Local<v8::Object> GetFromPersistent(const char *key) {
-    NanScope();
-
-    v8::Local<v8::Object> handle = NanPersistentToLocal(persistentHandle);
-    return handle->Get(NanSymbol(key)).As<v8::Object>();
-  }
-
-  virtual void Execute () =0;
-
-  uv_work_t request;
-
-protected:
-  v8::Persistent<v8::Object> persistentHandle;
-  NanCallback *callback;
-  const char *errmsg;
-
-  virtual void HandleOKCallback () {
-    NanScope();
-
-    callback->Call(0, NULL);
-  };
-
-  virtual void HandleErrorCallback () {
-    NanScope();
-
-    v8::Local<v8::Value> argv[] = {
-        v8::Exception::Error(v8::String::New(errmsg))
-    };
-    callback->Call(1, argv);
-  }
-};
-
-NAN_INLINE(void NanAsyncExecute (uv_work_t* req)) {
-  NanAsyncWorker *worker = static_cast<NanAsyncWorker*>(req->data);
-  worker->Execute();
-}
-
-NAN_INLINE(void NanAsyncExecuteComplete (uv_work_t* req)) {
-  NanAsyncWorker* worker = static_cast<NanAsyncWorker*>(req->data);
-  worker->WorkComplete();
-  delete worker;
-}
-
-NAN_INLINE(void NanAsyncQueueWorker (NanAsyncWorker* worker)) {
-  uv_queue_work(
-      uv_default_loop()
-    , &worker->request
-    , NanAsyncExecute
-    , (uv_after_work_cb)NanAsyncExecuteComplete
-  );
-}
-
-//// Base 64 ////
-
-#define _nan_base64_encoded_size(size) ((size + 2 - ((size + 2) % 3)) / 3 * 4)
-
-// Doesn't check for padding at the end.  Can be 1-2 bytes over.
-static NAN_INLINE(size_t _nan_base64_decoded_size_fast(size_t size)) {
-  size_t remainder = size % 4;
-
-  size = (size / 4) * 3;
-  if (remainder) {
-    if (size == 0 && remainder == 1) {
-      // special case: 1-byte input cannot be decoded
-      size = 0;
-    } else {
-      // non-padded input, add 1 or 2 extra bytes
-      size += 1 + (remainder == 3);
-    }
-  }
-
-  return size;
-}
-
-template <typename TypeName>
-static NAN_INLINE(size_t _nan_base64_decoded_size(
-    const TypeName* src
-  , size_t size
-)) {
-  if (size == 0)
-    return 0;
-
-  if (src[size - 1] == '=')
-    size--;
-  if (size > 0 && src[size - 1] == '=')
-    size--;
-
-  return _nan_base64_decoded_size_fast(size);
-}
-
-// supports regular and URL-safe base64
-static const int _nan_unbase64_table[] = {
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -2, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63
-  , 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1
-  , -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14
-  , 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63
-  , -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
-  , 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
-};
-
-#define _nan_unbase64(x) _nan_unbase64_table[(uint8_t)(x)]
-
-template <typename TypeName> static size_t _nan_base64_decode(
-    char* buf
-  , size_t len
-  , const TypeName* src
-  , const size_t srcLen
-) {
-  char* dst = buf;
-  char* dstEnd = buf + len;
-  const TypeName* srcEnd = src + srcLen;
-
-  while (src < srcEnd && dst < dstEnd) {
-    int remaining = srcEnd - src;
-    char a, b, c, d;
-
-    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
-    if (remaining == 0 || *src == '=') break;
-    a = _nan_unbase64(*src++);
-
-    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
-    if (remaining <= 1 || *src == '=') break;
-    b = _nan_unbase64(*src++);
-
-    *dst++ = (a << 2) | ((b & 0x30) >> 4);
-    if (dst == dstEnd) break;
-
-    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
-    if (remaining <= 2 || *src == '=') break;
-    c = _nan_unbase64(*src++);
-
-    *dst++ = ((b & 0x0F) << 4) | ((c & 0x3C) >> 2);
-    if (dst == dstEnd) break;
-
-    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
-    if (remaining <= 3 || *src == '=') break;
-    d = _nan_unbase64(*src++);
-
-    *dst++ = ((c & 0x03) << 6) | (d & 0x3F);
-  }
-
-  return dst - buf;
-}
-
-//// HEX ////
-
-template <typename TypeName> unsigned _nan_hex2bin(TypeName c) {
-  if (c >= '0' && c <= '9') return c - '0';
-  if (c >= 'A' && c <= 'F') return 10 + (c - 'A');
-  if (c >= 'a' && c <= 'f') return 10 + (c - 'a');
-  return static_cast<unsigned>(-1);
-}
-
-template <typename TypeName> static size_t _nan_hex_decode(
-    char* buf
-  , size_t len
-  , const TypeName* src
-  , const size_t srcLen
-) {
-  size_t i;
-  for (i = 0; i < len && i * 2 + 1 < srcLen; ++i) {
-    unsigned a = _nan_hex2bin(src[i * 2 + 0]);
-    unsigned b = _nan_hex2bin(src[i * 2 + 1]);
-    if (!~a || !~b) return i;
-    buf[i] = a * 16 + b;
-  }
-
-  return i;
-}
-
-static bool _NanGetExternalParts(
-    v8::Handle<v8::Value> val
-  , const char** data
-  , size_t* len
-) {
-  if (node::Buffer::HasInstance(val)) {
-    *data = node::Buffer::Data(val.As<v8::Object>());
-    *len = node::Buffer::Length(val.As<v8::Object>());
-    return true;
-  }
-
-  assert(val->IsString());
-  v8::Local<v8::String> str = NanNewLocal(val.As<v8::String>());
-
-  if (str->IsExternalAscii()) {
-    const v8::String::ExternalAsciiStringResource* ext;
-    ext = str->GetExternalAsciiStringResource();
-    *data = ext->data();
-    *len = ext->length();
-    return true;
-
-  } else if (str->IsExternal()) {
-    const v8::String::ExternalStringResource* ext;
-    ext = str->GetExternalStringResource();
-    *data = reinterpret_cast<const char*>(ext->data());
-    *len = ext->length();
-    return true;
-  }
-
-  return false;
-}
-
-namespace Nan {
-  enum Encoding {ASCII, UTF8, BASE64, UCS2, BINARY, HEX, BUFFER};
-}
-
-static NAN_INLINE(void* NanRawString(
-    v8::Handle<v8::Value> from
-  , enum Nan::Encoding encoding
-  , size_t *datalen
-  , void *buf
-  , size_t buflen
-  , int flags
-)) {
-  NanScope();
-
-  size_t sz_;
-  size_t term_len = !(flags & v8::String::NO_NULL_TERMINATION);
-  char *data = NULL;
-  size_t len;
-  bool is_extern = _NanGetExternalParts(
-      from
-    , const_cast<const char**>(&data)
-    , &len);
-
-  if (is_extern && !term_len) {
-    NanSetPointerSafe(datalen, len);
-    return data;
-  }
-
-  v8::Local<v8::String> toStr = from->ToString();
-
-  char *to = (char*)buf;
-
-  switch(encoding) {
-    case Nan::ASCII:
-#if NODE_MODULE_VERSION < 0x0C
-      sz_ = toStr->Length();
-      if (to == NULL) {
-        to = new char[sz_ + term_len];
-      } else {
-        assert(buflen >= sz_ + term_len && "too small buffer");
-      }
-      NanSetPointerSafe<size_t>(
-          datalen
-        , toStr->WriteAscii(to, 0, sz_ + term_len, flags));
-      return to;
-#endif
-    case Nan::BINARY:
-    case Nan::BUFFER:
-      sz_ = toStr->Length();
-      if (to == NULL) {
-        to = new char[sz_ + term_len];
-      } else {
-        assert(buflen >= sz_ + term_len && "too small buffer");
-      }
-#if NODE_MODULE_VERSION < 0x0C
-      // TODO(isaacs): THIS IS AWFUL!!!
-      // AGREE(kkoopa)
-      {
-        uint16_t* twobytebuf = new uint16_t[sz_ + term_len];
-
-        size_t len = toStr->Write(twobytebuf, 0, sz_ + term_len, flags);
-
-        for (size_t i = 0; i < sz_ + term_len && i < len + term_len; i++) {
-          unsigned char *b = reinterpret_cast<unsigned char*>(&twobytebuf[i]);
-          to[i] = *b;
-        }
-
-        NanSetPointerSafe<size_t>(datalen, len);
-
-        delete[] twobytebuf;
-        return to;
-      }
-#else
-      NanSetPointerSafe<size_t>(
-        datalen,
-        toStr->WriteOneByte(
-            reinterpret_cast<uint8_t *>(to)
-          , 0
-          , sz_ + term_len
-          , flags));
-      return to;
-#endif
-    case Nan::UTF8:
-      sz_ = toStr->Utf8Length();
-      if (to == NULL) {
-        to = new char[sz_ + term_len];
-      } else {
-        assert(buflen >= sz_ + term_len && "too small buffer");
-      }
-      NanSetPointerSafe<size_t>(
-          datalen
-        , toStr->WriteUtf8(to, sz_ + term_len, NULL, flags) - term_len);
-      return to;
-    case Nan::BASE64:
-      {
-        v8::String::Value value(toStr);
-        sz_ = _nan_base64_decoded_size(*value, value.length());
-        if (to == NULL) {
-          to = new char[sz_ + term_len];
-        } else {
-          assert(buflen >= sz_ + term_len);
-        }
-        NanSetPointerSafe<size_t>(
-            datalen
-          , _nan_base64_decode(to, sz_, *value, value.length()));
-        if (term_len) {
-          to[sz_] = '\0';
-        }
-        return to;
-      }
-    case Nan::UCS2:
-      {
-        sz_ = toStr->Length();
-        if (to == NULL) {
-          to = new char[(sz_ + term_len) * 2];
-        } else {
-          assert(buflen >= (sz_ + term_len) * 2 && "too small buffer");
-        }
-
-        int bc = 2 * toStr->Write(
-            reinterpret_cast<uint16_t *>(to)
-          , 0
-          , sz_ + term_len
-          , flags);
-        NanSetPointerSafe<size_t>(datalen, bc);
-        return to;
-      }
-    case Nan::HEX:
-      {
-        v8::String::Value value(toStr);
-        sz_ = value.length();
-        assert(!(sz_ & 1) && "bad hex data");
-        if (to == NULL) {
-          to = new char[sz_ / 2 + term_len];
-        } else {
-          assert(buflen >= sz_ / 2 + term_len && "too small buffer");
-        }
-        NanSetPointerSafe<size_t>(
-            datalen
-          , _nan_hex_decode(to, sz_ / 2, *value, value.length()));
-      }
-      if (term_len) {
-        to[sz_ / 2] = '\0';
-      }
-      return to;
-    default:
-      assert(0 && "unknown encoding");
-  }
-  return to;
-}
-
-static NAN_INLINE(char* NanFromV8String(
-    v8::Handle<v8::Value> from
-  , enum Nan::Encoding encoding = Nan::UTF8
-  , size_t *datalen = NULL
-  , char *buf = NULL
-  , size_t buflen = 0
-  , int flags =
-        v8::String::NO_NULL_TERMINATION | v8::String::HINT_MANY_WRITES_EXPECTED
-)) {
-    return (char *) NanRawString(from, encoding, datalen, buf, buflen, flags);
-}
-
-static NAN_INLINE(char* NanCString(
-    v8::Handle<v8::Value> from
-  , size_t *datalen
-  , char *buf = NULL
-  , size_t buflen = 0
-  , int flags = v8::String::NO_OPTIONS
-)) {
-    return (char *) NanRawString(from, Nan::UTF8, datalen, buf, buflen, flags);
-}
-
-#endif
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/ia32/bson.node
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/ia32/bson.node b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/ia32/bson.node
deleted file mode 100644
index 7f54835..0000000
Binary files a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/ia32/bson.node and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/x64/bson.node
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/x64/bson.node b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/x64/bson.node
deleted file mode 100644
index f01f8be..0000000
Binary files a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/win32/x64/bson.node and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/wscript
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/wscript b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/wscript
deleted file mode 100644
index 40f5317..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/wscript
+++ /dev/null
@@ -1,39 +0,0 @@
-import Options
-from os import unlink, symlink, popen
-from os.path import exists 
-
-srcdir = "."
-blddir = "build"
-VERSION = "0.1.0"
-
-def set_options(opt):
-  opt.tool_options("compiler_cxx")
-  opt.add_option( '--debug'
-                , action='store_true'
-                , default=False
-                , help='Build debug variant [Default: False]'
-                , dest='debug'
-                )  
-
-def configure(conf):
-  conf.check_tool("compiler_cxx")
-  conf.check_tool("node_addon")
-  conf.env.append_value('CXXFLAGS', ['-O3', '-funroll-loops'])
-
-  # conf.env.append_value('CXXFLAGS', ['-DDEBUG', '-g', '-O0', '-Wall', '-Wextra'])
-  # conf.check(lib='node', libpath=['/usr/lib', '/usr/local/lib'], uselib_store='NODE')
-
-def build(bld):
-  obj = bld.new_task_gen("cxx", "shlib", "node_addon")
-  obj.target = "bson"
-  obj.source = ["bson.cc"]
-  # obj.uselib = "NODE"
-
-def shutdown():
-  # HACK to get compress.node out of build directory.
-  # better way to do this?
-  if Options.commands['clean']:
-    if exists('bson.node'): unlink('bson.node')
-  else:
-    if exists('build/default/bson.node') and not exists('bson.node'):
-      symlink('build/default/bson.node', 'bson.node')

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary.js b/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary.js
deleted file mode 100644
index 82d4d04..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary.js
+++ /dev/null
@@ -1,339 +0,0 @@
-/**
- * Module dependencies.
- */
-if(typeof window === 'undefined') { 
-  var Buffer = require('buffer').Buffer; // TODO just use global Buffer
-}
-
-// Binary default subtype
-var BSON_BINARY_SUBTYPE_DEFAULT = 0;
-
-/**
- * @ignore
- * @api private
- */
-var writeStringToArray = function(data) {
-  // Create a buffer
-  var buffer = typeof Uint8Array != 'undefined' ? new Uint8Array(new ArrayBuffer(data.length)) : new Array(data.length);
-  // Write the content to the buffer
-  for(var i = 0; i < data.length; i++) {
-    buffer[i] = data.charCodeAt(i);
-  }  
-  // Write the string to the buffer
-  return buffer;
-}
-
-/**
- * Convert Array ot Uint8Array to Binary String
- *
- * @ignore
- * @api private
- */
-var convertArraytoUtf8BinaryString = function(byteArray, startIndex, endIndex) {
-  var result = "";
-  for(var i = startIndex; i < endIndex; i++) {
-   result = result + String.fromCharCode(byteArray[i]);
-  }
-  return result;  
-};
-
-/**
- * A class representation of the BSON Binary type.
- * 
- * Sub types
- *  - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type.
- *  - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type.
- *  - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type.
- *  - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type.
- *  - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type.
- *  - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type.
- *
- * @class Represents the Binary BSON type.
- * @param {Buffer} buffer a buffer object containing the binary data.
- * @param {Number} [subType] the option binary type.
- * @return {Grid}
- */
-function Binary(buffer, subType) {
-  if(!(this instanceof Binary)) return new Binary(buffer, subType);
-  
-  this._bsontype = 'Binary';
-
-  if(buffer instanceof Number) {
-    this.sub_type = buffer;
-    this.position = 0;
-  } else {    
-    this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType;
-    this.position = 0;
-  }
-
-  if(buffer != null && !(buffer instanceof Number)) {
-    // Only accept Buffer, Uint8Array or Arrays
-    if(typeof buffer == 'string') {
-      // Different ways of writing the length of the string for the different types
-      if(typeof Buffer != 'undefined') {
-        this.buffer = new Buffer(buffer);
-      } else if(typeof Uint8Array != 'undefined' || (Object.prototype.toString.call(buffer) == '[object Array]')) {
-        this.buffer = writeStringToArray(buffer);
-      } else {
-        throw new Error("only String, Buffer, Uint8Array or Array accepted");
-      }
-    } else {
-      this.buffer = buffer;      
-    }
-    this.position = buffer.length;
-  } else {
-    if(typeof Buffer != 'undefined') {
-      this.buffer =  new Buffer(Binary.BUFFER_SIZE);      
-    } else if(typeof Uint8Array != 'undefined'){
-      this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE));
-    } else {
-      this.buffer = new Array(Binary.BUFFER_SIZE);
-    }
-    // Set position to start of buffer
-    this.position = 0;
-  }
-};
-
-/**
- * Updates this binary with byte_value.
- *
- * @param {Character} byte_value a single byte we wish to write.
- * @api public
- */
-Binary.prototype.put = function put(byte_value) {
-  // If it's a string and a has more than one character throw an error
-  if(byte_value['length'] != null && typeof byte_value != 'number' && byte_value.length != 1) throw new Error("only accepts single character String, Uint8Array or Array");
-  if(typeof byte_value != 'number' && byte_value < 0 || byte_value > 255) throw new Error("only accepts number in a valid unsigned byte range 0-255");
-  
-  // Decode the byte value once
-  var decoded_byte = null;
-  if(typeof byte_value == 'string') {
-    decoded_byte = byte_value.charCodeAt(0);      
-  } else if(byte_value['length'] != null) {
-    decoded_byte = byte_value[0];
-  } else {
-    decoded_byte = byte_value;
-  }
-  
-  if(this.buffer.length > this.position) {
-    this.buffer[this.position++] = decoded_byte;
-  } else {
-    if(typeof Buffer != 'undefined' && Buffer.isBuffer(this.buffer)) {    
-      // Create additional overflow buffer
-      var buffer = new Buffer(Binary.BUFFER_SIZE + this.buffer.length);
-      // Combine the two buffers together
-      this.buffer.copy(buffer, 0, 0, this.buffer.length);
-      this.buffer = buffer;
-      this.buffer[this.position++] = decoded_byte;
-    } else {
-      var buffer = null;
-      // Create a new buffer (typed or normal array)
-      if(Object.prototype.toString.call(this.buffer) == '[object Uint8Array]') {
-        buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length));
-      } else {
-        buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length);
-      }      
-      
-      // We need to copy all the content to the new array
-      for(var i = 0; i < this.buffer.length; i++) {
-        buffer[i] = this.buffer[i];
-      }
-      
-      // Reassign the buffer
-      this.buffer = buffer;
-      // Write the byte
-      this.buffer[this.position++] = decoded_byte;
-    }
-  }
-};
-
-/**
- * Writes a buffer or string to the binary.
- *
- * @param {Buffer|String} string a string or buffer to be written to the Binary BSON object.
- * @param {Number} offset specify the binary of where to write the content.
- * @api public
- */
-Binary.prototype.write = function write(string, offset) {
-  offset = typeof offset == 'number' ? offset : this.position;
-
-  // If the buffer is to small let's extend the buffer
-  if(this.buffer.length < offset + string.length) {
-    var buffer = null;
-    // If we are in node.js
-    if(typeof Buffer != 'undefined' && Buffer.isBuffer(this.buffer)) {      
-      buffer = new Buffer(this.buffer.length + string.length);
-      this.buffer.copy(buffer, 0, 0, this.buffer.length);      
-    } else if(Object.prototype.toString.call(this.buffer) == '[object Uint8Array]') {
-      // Create a new buffer
-      buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length))
-      // Copy the content
-      for(var i = 0; i < this.position; i++) {
-        buffer[i] = this.buffer[i];
-      }
-    }
-    
-    // Assign the new buffer
-    this.buffer = buffer;
-  }
-
-  if(typeof Buffer != 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) {
-    string.copy(this.buffer, offset, 0, string.length);
-    this.position = (offset + string.length) > this.position ? (offset + string.length) : this.position;
-    // offset = string.length
-  } else if(typeof Buffer != 'undefined' && typeof string == 'string' && Buffer.isBuffer(this.buffer)) {
-    this.buffer.write(string, 'binary', offset);
-    this.position = (offset + string.length) > this.position ? (offset + string.length) : this.position;
-    // offset = string.length;
-  } else if(Object.prototype.toString.call(string) == '[object Uint8Array]' 
-    || Object.prototype.toString.call(string) == '[object Array]' && typeof string != 'string') {      
-    for(var i = 0; i < string.length; i++) {
-      this.buffer[offset++] = string[i];
-    }    
-
-    this.position = offset > this.position ? offset : this.position;
-  } else if(typeof string == 'string') {
-    for(var i = 0; i < string.length; i++) {
-      this.buffer[offset++] = string.charCodeAt(i);
-    }
-
-    this.position = offset > this.position ? offset : this.position;
-  }
-};
-
-/**
- * Reads **length** bytes starting at **position**.
- *
- * @param {Number} position read from the given position in the Binary.
- * @param {Number} length the number of bytes to read.
- * @return {Buffer}
- * @api public
- */
-Binary.prototype.read = function read(position, length) {
-  length = length && length > 0
-    ? length
-    : this.position;
-  
-  // Let's return the data based on the type we have
-  if(this.buffer['slice']) {
-    return this.buffer.slice(position, position + length);
-  } else {
-    // Create a buffer to keep the result
-    var buffer = typeof Uint8Array != 'undefined' ? new Uint8Array(new ArrayBuffer(length)) : new Array(length);
-    for(var i = 0; i < length; i++) {
-      buffer[i] = this.buffer[position++];
-    }
-  }
-  // Return the buffer
-  return buffer;
-};
-
-/**
- * Returns the value of this binary as a string.
- *
- * @return {String}
- * @api public
- */
-Binary.prototype.value = function value(asRaw) {
-  asRaw = asRaw == null ? false : asRaw;  
-  
-  // If it's a node.js buffer object
-  if(typeof Buffer != 'undefined' && Buffer.isBuffer(this.buffer)) {
-    return asRaw ? this.buffer.slice(0, this.position) : this.buffer.toString('binary', 0, this.position);
-  } else {
-    if(asRaw) {
-      // we support the slice command use it
-      if(this.buffer['slice'] != null) {
-        return this.buffer.slice(0, this.position);
-      } else {
-        // Create a new buffer to copy content to
-        var newBuffer = Object.prototype.toString.call(this.buffer) == '[object Uint8Array]' ? new Uint8Array(new ArrayBuffer(this.position)) : new Array(this.position);
-        // Copy content
-        for(var i = 0; i < this.position; i++) {
-          newBuffer[i] = this.buffer[i];
-        }
-        // Return the buffer
-        return newBuffer;
-      }
-    } else {
-      return convertArraytoUtf8BinaryString(this.buffer, 0, this.position);
-    }
-  }
-};
-
-/**
- * Length.
- *
- * @return {Number} the length of the binary.
- * @api public
- */
-Binary.prototype.length = function length() {
-  return this.position;
-};
-
-/**
- * @ignore
- * @api private
- */
-Binary.prototype.toJSON = function() {
-  return this.buffer != null ? this.buffer.toString('base64') : '';
-}
-
-/**
- * @ignore
- * @api private
- */
-Binary.prototype.toString = function(format) {
-  return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : '';
-}
-
-Binary.BUFFER_SIZE = 256;
-
-/**
- * Default BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_DEFAULT = 0;
-/**
- * Function BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_FUNCTION = 1;
-/**
- * Byte Array BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_BYTE_ARRAY = 2;
-/**
- * OLD UUID BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_UUID_OLD = 3;
-/**
- * UUID BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_UUID = 4;
-/**
- * MD5 BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_MD5 = 5;
-/**
- * User BSON type
- *  
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_USER_DEFINED = 128;
-
-/**
- * Expose.
- */
-exports.Binary = Binary;
-

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary_parser.js
----------------------------------------------------------------------
diff --git a/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary_parser.js b/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary_parser.js
deleted file mode 100644
index d2fc811..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/lib/bson/binary_parser.js
+++ /dev/null
@@ -1,385 +0,0 @@
-/**
- * Binary Parser.
- * Jonas Raoni Soares Silva
- * http://jsfromhell.com/classes/binary-parser [v1.0]
- */
-var chr = String.fromCharCode;
-
-var maxBits = [];
-for (var i = 0; i < 64; i++) {
-	maxBits[i] = Math.pow(2, i);
-}
-
-function BinaryParser (bigEndian, allowExceptions) {
-  if(!(this instanceof BinaryParser)) return new BinaryParser(bigEndian, allowExceptions);
-  
-	this.bigEndian = bigEndian;
-	this.allowExceptions = allowExceptions;
-};
-
-BinaryParser.warn = function warn (msg) {
-	if (this.allowExceptions) {
-		throw new Error(msg);
-  }
-
-	return 1;
-};
-
-BinaryParser.decodeFloat = function decodeFloat (data, precisionBits, exponentBits) {
-	var b = new this.Buffer(this.bigEndian, data);
-
-	b.checkBuffer(precisionBits + exponentBits + 1);
-
-	var bias = maxBits[exponentBits - 1] - 1
-    , signal = b.readBits(precisionBits + exponentBits, 1)
-    , exponent = b.readBits(precisionBits, exponentBits)
-    , significand = 0
-    , divisor = 2
-    , curByte = b.buffer.length + (-precisionBits >> 3) - 1;
-
-	do {
-		for (var byteValue = b.buffer[ ++curByte ], startBit = precisionBits % 8 || 8, mask = 1 << startBit; mask >>= 1; ( byteValue & mask ) && ( significand += 1 / divisor ), divisor *= 2 );
-	} while (precisionBits -= startBit);
-
-	return exponent == ( bias << 1 ) + 1 ? significand ? NaN : signal ? -Infinity : +Infinity : ( 1 + signal * -2 ) * ( exponent || significand ? !exponent ? Math.pow( 2, -bias + 1 ) * significand : Math.pow( 2, exponent - bias ) * ( 1 + significand ) : 0 );
-};
-
-BinaryParser.decodeInt = function decodeInt (data, bits, signed, forceBigEndian) {
-  var b = new this.Buffer(this.bigEndian || forceBigEndian, data)
-      , x = b.readBits(0, bits)
-      , max = maxBits[bits]; //max = Math.pow( 2, bits );
-  
-  return signed && x >= max / 2
-      ? x - max
-      : x;
-};
-
-BinaryParser.encodeFloat = function encodeFloat (data, precisionBits, exponentBits) {
-	var bias = maxBits[exponentBits - 1] - 1
-    , minExp = -bias + 1
-    , maxExp = bias
-    , minUnnormExp = minExp - precisionBits
-    , n = parseFloat(data)
-    , status = isNaN(n) || n == -Infinity || n == +Infinity ? n : 0
-    ,	exp = 0
-    , len = 2 * bias + 1 + precisionBits + 3
-    , bin = new Array(len)
-    , signal = (n = status !== 0 ? 0 : n) < 0
-    , intPart = Math.floor(n = Math.abs(n))
-    , floatPart = n - intPart
-    , lastBit
-    , rounded
-    , result
-    , i
-    , j;
-
-	for (i = len; i; bin[--i] = 0);
-
-	for (i = bias + 2; intPart && i; bin[--i] = intPart % 2, intPart = Math.floor(intPart / 2));
-
-	for (i = bias + 1; floatPart > 0 && i; (bin[++i] = ((floatPart *= 2) >= 1) - 0 ) && --floatPart);
-
-	for (i = -1; ++i < len && !bin[i];);
-
-	if (bin[(lastBit = precisionBits - 1 + (i = (exp = bias + 1 - i) >= minExp && exp <= maxExp ? i + 1 : bias + 1 - (exp = minExp - 1))) + 1]) {
-		if (!(rounded = bin[lastBit])) {
-			for (j = lastBit + 2; !rounded && j < len; rounded = bin[j++]);
-		}
-
-		for (j = lastBit + 1; rounded && --j >= 0; (bin[j] = !bin[j] - 0) && (rounded = 0));
-	}
-
-	for (i = i - 2 < 0 ? -1 : i - 3; ++i < len && !bin[i];);
-
-	if ((exp = bias + 1 - i) >= minExp && exp <= maxExp) {
-		++i;
-  } else if (exp < minExp) {
-		exp != bias + 1 - len && exp < minUnnormExp && this.warn("encodeFloat::float underflow");
-		i = bias + 1 - (exp = minExp - 1);
-	}
-
-	if (intPart || status !== 0) {
-		this.warn(intPart ? "encodeFloat::float overflow" : "encodeFloat::" + status);
-		exp = maxExp + 1;
-		i = bias + 2;
-
-		if (status == -Infinity) {
-			signal = 1;
-    } else if (isNaN(status)) {
-			bin[i] = 1;
-    }
-	}
-
-	for (n = Math.abs(exp + bias), j = exponentBits + 1, result = ""; --j; result = (n % 2) + result, n = n >>= 1);
-
-	for (n = 0, j = 0, i = (result = (signal ? "1" : "0") + result + bin.slice(i, i + precisionBits).join("")).length, r = []; i; j = (j + 1) % 8) {
-		n += (1 << j) * result.charAt(--i);
-		if (j == 7) {
-			r[r.length] = String.fromCharCode(n);
-			n = 0;
-		}
-	}
-
-	r[r.length] = n
-    ? String.fromCharCode(n)
-    : "";
-
-	return (this.bigEndian ? r.reverse() : r).join("");
-};
-
-BinaryParser.encodeInt = function encodeInt (data, bits, signed, forceBigEndian) {
-	var max = maxBits[bits];
-
-  if (data >= max || data < -(max / 2)) {
-    this.warn("encodeInt::overflow");
-    data = 0;
-  }
-
-	if (data < 0) {
-    data += max;
-  }
-
-	for (var r = []; data; r[r.length] = String.fromCharCode(data % 256), data = Math.floor(data / 256));
-
-	for (bits = -(-bits >> 3) - r.length; bits--; r[r.length] = "\0");
-
-  return ((this.bigEndian || forceBigEndian) ? r.reverse() : r).join("");
-};
-
-BinaryParser.toSmall    = function( data ){ return this.decodeInt( data,  8, true  ); };
-BinaryParser.fromSmall  = function( data ){ return this.encodeInt( data,  8, true  ); };
-BinaryParser.toByte     = function( data ){ return this.decodeInt( data,  8, false ); };
-BinaryParser.fromByte   = function( data ){ return this.encodeInt( data,  8, false ); };
-BinaryParser.toShort    = function( data ){ return this.decodeInt( data, 16, true  ); };
-BinaryParser.fromShort  = function( data ){ return this.encodeInt( data, 16, true  ); };
-BinaryParser.toWord     = function( data ){ return this.decodeInt( data, 16, false ); };
-BinaryParser.fromWord   = function( data ){ return this.encodeInt( data, 16, false ); };
-BinaryParser.toInt      = function( data ){ return this.decodeInt( data, 32, true  ); };
-BinaryParser.fromInt    = function( data ){ return this.encodeInt( data, 32, true  ); };
-BinaryParser.toLong     = function( data ){ return this.decodeInt( data, 64, true  ); };
-BinaryParser.fromLong   = function( data ){ return this.encodeInt( data, 64, true  ); };
-BinaryParser.toDWord    = function( data ){ return this.decodeInt( data, 32, false ); };
-BinaryParser.fromDWord  = function( data ){ return this.encodeInt( data, 32, false ); };
-BinaryParser.toQWord    = function( data ){ return this.decodeInt( data, 64, true ); };
-BinaryParser.fromQWord  = function( data ){ return this.encodeInt( data, 64, true ); };
-BinaryParser.toFloat    = function( data ){ return this.decodeFloat( data, 23, 8   ); };
-BinaryParser.fromFloat  = function( data ){ return this.encodeFloat( data, 23, 8   ); };
-BinaryParser.toDouble   = function( data ){ return this.decodeFloat( data, 52, 11  ); };
-BinaryParser.fromDouble = function( data ){ return this.encodeFloat( data, 52, 11  ); };
-
-// Factor out the encode so it can be shared by add_header and push_int32
-BinaryParser.encode_int32 = function encode_int32 (number, asArray) {
-  var a, b, c, d, unsigned;
-  unsigned = (number < 0) ? (number + 0x100000000) : number;
-  a = Math.floor(unsigned / 0xffffff);
-  unsigned &= 0xffffff;
-  b = Math.floor(unsigned / 0xffff);
-  unsigned &= 0xffff;
-  c = Math.floor(unsigned / 0xff);
-  unsigned &= 0xff;
-  d = Math.floor(unsigned);
-  return asArray ? [chr(a), chr(b), chr(c), chr(d)] : chr(a) + chr(b) + chr(c) + chr(d);
-};
-
-BinaryParser.encode_int64 = function encode_int64 (number) {
-  var a, b, c, d, e, f, g, h, unsigned;
-  unsigned = (number < 0) ? (number + 0x10000000000000000) : number;
-  a = Math.floor(unsigned / 0xffffffffffffff);
-  unsigned &= 0xffffffffffffff;
-  b = Math.floor(unsigned / 0xffffffffffff);
-  unsigned &= 0xffffffffffff;
-  c = Math.floor(unsigned / 0xffffffffff);
-  unsigned &= 0xffffffffff;
-  d = Math.floor(unsigned / 0xffffffff);
-  unsigned &= 0xffffffff;
-  e = Math.floor(unsigned / 0xffffff);
-  unsigned &= 0xffffff;
-  f = Math.floor(unsigned / 0xffff);
-  unsigned &= 0xffff;
-  g = Math.floor(unsigned / 0xff);
-  unsigned &= 0xff;
-  h = Math.floor(unsigned);
-  return chr(a) + chr(b) + chr(c) + chr(d) + chr(e) + chr(f) + chr(g) + chr(h);
-};
-
-/**
- * UTF8 methods
- */
-
-// Take a raw binary string and return a utf8 string
-BinaryParser.decode_utf8 = function decode_utf8 (binaryStr) {
-  var len = binaryStr.length
-    , decoded = ''
-    , i = 0
-    , c = 0
-    , c1 = 0
-    , c2 = 0
-    , c3;
-
-  while (i < len) {
-    c = binaryStr.charCodeAt(i);
-    if (c < 128) {
-      decoded += String.fromCharCode(c);
-      i++;
-    } else if ((c > 191) && (c < 224)) {
-	    c2 = binaryStr.charCodeAt(i+1);
-      decoded += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
-      i += 2;
-    } else {
-	    c2 = binaryStr.charCodeAt(i+1);
-	    c3 = binaryStr.charCodeAt(i+2);
-      decoded += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
-      i += 3;
-    }
-  }
-
-  return decoded;
-};
-
-// Encode a cstring
-BinaryParser.encode_cstring = function encode_cstring (s) {
-  return unescape(encodeURIComponent(s)) + BinaryParser.fromByte(0);
-};
-
-// Take a utf8 string and return a binary string
-BinaryParser.encode_utf8 = function encode_utf8 (s) {
-  var a = ""
-    , c;
-
-  for (var n = 0, len = s.length; n < len; n++) {
-    c = s.charCodeAt(n);
-
-    if (c < 128) {
-	    a += String.fromCharCode(c);
-    } else if ((c > 127) && (c < 2048)) {
-	    a += String.fromCharCode((c>>6) | 192) ;
-	    a += String.fromCharCode((c&63) | 128);
-    } else {
-      a += String.fromCharCode((c>>12) | 224);
-      a += String.fromCharCode(((c>>6) & 63) | 128);
-      a += String.fromCharCode((c&63) | 128);
-    }
-  }
-
-  return a;
-};
-
-BinaryParser.hprint = function hprint (s) {
-  var number;
-
-  for (var i = 0, len = s.length; i < len; i++) {
-    if (s.charCodeAt(i) < 32) {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(16)
-        : s.charCodeAt(i).toString(16);        
-      process.stdout.write(number + " ")
-    } else {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(16)
-        : s.charCodeAt(i).toString(16);
-        process.stdout.write(number + " ")
-    }
-  }
-  
-  process.stdout.write("\n\n");
-};
-
-BinaryParser.ilprint = function hprint (s) {
-  var number;
-
-  for (var i = 0, len = s.length; i < len; i++) {
-    if (s.charCodeAt(i) < 32) {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(10)
-        : s.charCodeAt(i).toString(10);
-
-      require('util').debug(number+' : ');
-    } else {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(10)
-        : s.charCodeAt(i).toString(10);
-      require('util').debug(number+' : '+ s.charAt(i));
-    }
-  }
-};
-
-BinaryParser.hlprint = function hprint (s) {
-  var number;
-
-  for (var i = 0, len = s.length; i < len; i++) {
-    if (s.charCodeAt(i) < 32) {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(16)
-        : s.charCodeAt(i).toString(16);
-      require('util').debug(number+' : ');
-    } else {
-      number = s.charCodeAt(i) <= 15
-        ? "0" + s.charCodeAt(i).toString(16)
-        : s.charCodeAt(i).toString(16);
-      require('util').debug(number+' : '+ s.charAt(i));
-    }
-  }
-};
-
-/**
- * BinaryParser buffer constructor.
- */
-function BinaryParserBuffer (bigEndian, buffer) {
-  this.bigEndian = bigEndian || 0;
-  this.buffer = [];
-  this.setBuffer(buffer);
-};
-
-BinaryParserBuffer.prototype.setBuffer = function setBuffer (data) {
-  var l, i, b;
-
-	if (data) {
-    i = l = data.length;
-    b = this.buffer = new Array(l);
-		for (; i; b[l - i] = data.charCodeAt(--i));
-		this.bigEndian && b.reverse();
-	}
-};
-
-BinaryParserBuffer.prototype.hasNeededBits = function hasNeededBits (neededBits) {
-	return this.buffer.length >= -(-neededBits >> 3);
-};
-
-BinaryParserBuffer.prototype.checkBuffer = function checkBuffer (neededBits) {
-	if (!this.hasNeededBits(neededBits)) {
-		throw new Error("checkBuffer::missing bytes");
-  }
-};
-
-BinaryParserBuffer.prototype.readBits = function readBits (start, length) {
-	//shl fix: Henri Torgemane ~1996 (compressed by Jonas Raoni)
-
-	function shl (a, b) {
-		for (; b--; a = ((a %= 0x7fffffff + 1) & 0x40000000) == 0x40000000 ? a * 2 : (a - 0x40000000) * 2 + 0x7fffffff + 1);
-		return a;
-	}
-
-	if (start < 0 || length <= 0) {
-		return 0;
-  }
-
-	this.checkBuffer(start + length);
-
-  var offsetLeft
-    , offsetRight = start % 8
-    , curByte = this.buffer.length - ( start >> 3 ) - 1
-    , lastByte = this.buffer.length + ( -( start + length ) >> 3 )
-    , diff = curByte - lastByte
-    , sum = ((this.buffer[ curByte ] >> offsetRight) & ((1 << (diff ? 8 - offsetRight : length)) - 1)) + (diff && (offsetLeft = (start + length) % 8) ? (this.buffer[lastByte++] & ((1 << offsetLeft) - 1)) << (diff-- << 3) - offsetRight : 0);
-
-	for(; diff; sum += shl(this.buffer[lastByte++], (diff-- << 3) - offsetRight));
-
-	return sum;
-};
-
-/**
- * Expose.
- */
-BinaryParser.Buffer = BinaryParserBuffer;
-
-exports.BinaryParser = BinaryParser;