http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/browser_build/package.json
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/browser_build/package.json
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/browser_build/package.json
deleted file mode 100644
index 3ebb587..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/browser_build/package.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{ "name" :            "bson"
-, "description" :     "A bson parser for node.js and the browser"
-, "main":             "../lib/bson/bson"
-, "directories" :   { "lib" : "../lib/bson" }
-, "engines" :       { "node" : ">=0.6.0" }
-, "licenses" :    [ { "type" :  "Apache License, Version 2.0"
-                    , "url" :   "http://www.apache.org/licenses/LICENSE-2.0"; } 
]
-}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/Makefile
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Makefile 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Makefile
deleted file mode 100644
index 56ec7ba..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Makefile
+++ /dev/null
@@ -1,350 +0,0 @@
-# We borrow heavily from the kernel build setup, though we are simpler since
-# we don't have Kconfig tweaking settings on us.
-
-# The implicit make rules have it looking for RCS files, among other things.
-# We instead explicitly write all the rules we care about.
-# It's even quicker (saves ~200ms) to pass -r on the command line.
-MAKEFLAGS=-r
-
-# The source directory tree.
-srcdir := ..
-abs_srcdir := $(abspath $(srcdir))
-
-# The name of the builddir.
-builddir_name ?= .
-
-# The V=1 flag on command line makes us verbosely print command lines.
-ifdef V
-  quiet=
-else
-  quiet=quiet_
-endif
-
-# Specify BUILDTYPE=Release on the command line for a release build.
-BUILDTYPE ?= Release
-
-# Directory all our build output goes into.
-# Note that this must be two directories beneath src/ for unit tests to pass,
-# as they reach into the src/ directory for data with relative paths.
-builddir ?= $(builddir_name)/$(BUILDTYPE)
-abs_builddir := $(abspath $(builddir))
-depsdir := $(builddir)/.deps
-
-# Object output directory.
-obj := $(builddir)/obj
-abs_obj := $(abspath $(obj))
-
-# We build up a list of every single one of the targets so we can slurp in the
-# generated dependency rule Makefiles in one pass.
-all_deps :=
-
-
-
-CC.target ?= $(CC)
-CFLAGS.target ?= $(CFLAGS)
-CXX.target ?= $(CXX)
-CXXFLAGS.target ?= $(CXXFLAGS)
-LINK.target ?= $(LINK)
-LDFLAGS.target ?= $(LDFLAGS)
-AR.target ?= $(AR)
-
-# C++ apps need to be linked with g++.
-#
-# Note: flock is used to seralize linking. Linking is a memory-intensive
-# process so running parallel links can often lead to thrashing.  To disable
-# the serialization, override LINK via an envrionment variable as follows:
-#
-#   export LINK=g++
-#
-# This will allow make to invoke N linker processes as specified in -jN.
-LINK ?= ./gyp-mac-tool flock $(builddir)/linker.lock $(CXX.target)
-
-# TODO(evan): move all cross-compilation logic to gyp-time so we don't need
-# to replicate this environment fallback in make as well.
-CC.host ?= gcc
-CFLAGS.host ?=
-CXX.host ?= g++
-CXXFLAGS.host ?=
-LINK.host ?= $(CXX.host)
-LDFLAGS.host ?=
-AR.host ?= ar
-
-# Define a dir function that can handle spaces.
-# http://www.gnu.org/software/make/manual/make.html#Syntax-of-Functions
-# "leading spaces cannot appear in the text of the first argument as written.
-# These characters can be put into the argument value by variable 
substitution."
-empty :=
-space := $(empty) $(empty)
-
-# 
http://stackoverflow.com/questions/1189781/using-make-dir-or-notdir-on-a-path-with-spaces
-replace_spaces = $(subst $(space),?,$1)
-unreplace_spaces = $(subst ?,$(space),$1)
-dirx = $(call unreplace_spaces,$(dir $(call replace_spaces,$1)))
-
-# Flags to make gcc output dependency info.  Note that you need to be
-# careful here to use the flags that ccache and distcc can understand.
-# We write to a dep file on the side first and then rename at the end
-# so we can't end up with a broken dep file.
-depfile = $(depsdir)/$(call replace_spaces,$@).d
-DEPFLAGS = -MMD -MF $(depfile).raw
-
-# We have to fixup the deps output in a few ways.
-# (1) the file output should mention the proper .o file.
-# ccache or distcc lose the path to the target, so we convert a rule of
-# the form:
-#   foobar.o: DEP1 DEP2
-# into
-#   path/to/foobar.o: DEP1 DEP2
-# (2) we want missing files not to cause us to fail to build.
-# We want to rewrite
-#   foobar.o: DEP1 DEP2 \
-#               DEP3
-# to
-#   DEP1:
-#   DEP2:
-#   DEP3:
-# so if the files are missing, they're just considered phony rules.
-# We have to do some pretty insane escaping to get those backslashes
-# and dollar signs past make, the shell, and sed at the same time.
-# Doesn't work with spaces, but that's fine: .d files have spaces in
-# their names replaced with other characters.
-define fixup_dep
-# The depfile may not exist if the input file didn't have any #includes.
-touch $(depfile).raw
-# Fixup path as in (1).
-sed -e "s|^$(notdir $@)|$@|" $(depfile).raw >> $(depfile)
-# Add extra rules as in (2).
-# We remove slashes and replace spaces with new lines;
-# remove blank lines;
-# delete the first line and append a colon to the remaining lines.
-sed -e 's|\\||' -e 'y| |\n|' $(depfile).raw |\
-  grep -v '^$$'                             |\
-  sed -e 1d -e 's|$$|:|'                     \
-    >> $(depfile)
-rm $(depfile).raw
-endef
-
-# Command definitions:
-# - cmd_foo is the actual command to run;
-# - quiet_cmd_foo is the brief-output summary of the command.
-
-quiet_cmd_cc = CC($(TOOLSET)) $@
-cmd_cc = $(CC.$(TOOLSET)) $(GYP_CFLAGS) $(DEPFLAGS) $(CFLAGS.$(TOOLSET)) -c -o 
$@ $<
-
-quiet_cmd_cxx = CXX($(TOOLSET)) $@
-cmd_cxx = $(CXX.$(TOOLSET)) $(GYP_CXXFLAGS) $(DEPFLAGS) $(CXXFLAGS.$(TOOLSET)) 
-c -o $@ $<
-
-quiet_cmd_objc = CXX($(TOOLSET)) $@
-cmd_objc = $(CC.$(TOOLSET)) $(GYP_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $<
-
-quiet_cmd_objcxx = CXX($(TOOLSET)) $@
-cmd_objcxx = $(CXX.$(TOOLSET)) $(GYP_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $<
-
-# Commands for precompiled header files.
-quiet_cmd_pch_c = CXX($(TOOLSET)) $@
-cmd_pch_c = $(CC.$(TOOLSET)) $(GYP_PCH_CFLAGS) $(DEPFLAGS) 
$(CXXFLAGS.$(TOOLSET)) -c -o $@ $<
-quiet_cmd_pch_cc = CXX($(TOOLSET)) $@
-cmd_pch_cc = $(CC.$(TOOLSET)) $(GYP_PCH_CXXFLAGS) $(DEPFLAGS) 
$(CXXFLAGS.$(TOOLSET)) -c -o $@ $<
-quiet_cmd_pch_m = CXX($(TOOLSET)) $@
-cmd_pch_m = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCFLAGS) $(DEPFLAGS) -c -o $@ $<
-quiet_cmd_pch_mm = CXX($(TOOLSET)) $@
-cmd_pch_mm = $(CC.$(TOOLSET)) $(GYP_PCH_OBJCXXFLAGS) $(DEPFLAGS) -c -o $@ $<
-
-# gyp-mac-tool is written next to the root Makefile by gyp.
-# Use $(4) for the command, since $(2) and $(3) are used as flag by do_cmd
-# already.
-quiet_cmd_mac_tool = MACTOOL $(4) $<
-cmd_mac_tool = ./gyp-mac-tool $(4) $< "$@"
-
-quiet_cmd_mac_package_framework = PACKAGE FRAMEWORK $@
-cmd_mac_package_framework = ./gyp-mac-tool package-framework "$@" $(4)
-
-quiet_cmd_infoplist = INFOPLIST $@
-cmd_infoplist = $(CC.$(TOOLSET)) -E -P -Wno-trigraphs -x c 
$(INFOPLIST_DEFINES) "$<" -o "$@"
-
-quiet_cmd_touch = TOUCH $@
-cmd_touch = touch $@
-
-quiet_cmd_copy = COPY $@
-# send stderr to /dev/null to ignore messages when linking directories.
-cmd_copy = rm -rf "$@" && cp -af "$<" "$@"
-
-quiet_cmd_alink = LIBTOOL-STATIC $@
-cmd_alink = rm -f $@ && ./gyp-mac-tool filter-libtool libtool 
$(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %.o,$^)
-
-quiet_cmd_link = LINK($(TOOLSET)) $@
-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" 
$(LD_INPUTS) $(LIBS)
-
-quiet_cmd_solink = SOLINK($(TOOLSET)) $@
-cmd_solink = $(LINK.$(TOOLSET)) -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) 
-o "$@" $(LD_INPUTS) $(LIBS)
-
-quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@
-cmd_solink_module = $(LINK.$(TOOLSET)) -bundle $(GYP_LDFLAGS) 
$(LDFLAGS.$(TOOLSET)) -o $@ $(filter-out FORCE_DO_CMD, $^) $(LIBS)
-
-
-# Define an escape_quotes function to escape single quotes.
-# This allows us to handle quotes properly as long as we always use
-# use single quotes and escape_quotes.
-escape_quotes = $(subst ','\'',$(1))
-# This comment is here just to include a ' to unconfuse syntax highlighting.
-# Define an escape_vars function to escape '$' variable syntax.
-# This allows us to read/write command lines with shell variables (e.g.
-# $LD_LIBRARY_PATH), without triggering make substitution.
-escape_vars = $(subst $$,$$$$,$(1))
-# Helper that expands to a shell command to echo a string exactly as it is in
-# make. This uses printf instead of echo because printf's behaviour with 
respect
-# to escape sequences is more portable than echo's across different shells
-# (e.g., dash, bash).
-exact_echo = printf '%s\n' '$(call escape_quotes,$(1))'
-
-# Helper to compare the command we're about to run against the command
-# we logged the last time we ran the command.  Produces an empty
-# string (false) when the commands match.
-# Tricky point: Make has no string-equality test function.
-# The kernel uses the following, but it seems like it would have false
-# positives, where one string reordered its arguments.
-#   arg_check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \
-#                       $(filter-out $(cmd_$@), $(cmd_$(1))))
-# We instead substitute each for the empty string into the other, and
-# say they're equal if both substitutions produce the empty string.
-# .d files contain ? instead of spaces, take that into account.
-command_changed = $(or $(subst $(cmd_$(1)),,$(cmd_$(call replace_spaces,$@))),\
-                       $(subst $(cmd_$(call replace_spaces,$@)),,$(cmd_$(1))))
-
-# Helper that is non-empty when a prerequisite changes.
-# Normally make does this implicitly, but we force rules to always run
-# so we can check their command lines.
-#   $? -- new prerequisites
-#   $| -- order-only dependencies
-prereq_changed = $(filter-out FORCE_DO_CMD,$(filter-out $|,$?))
-
-# Helper that executes all postbuilds until one fails.
-define do_postbuilds
-  @E=0;\
-  for p in $(POSTBUILDS); do\
-    eval $$p;\
-    E=$$?;\
-    if [ $$E -ne 0 ]; then\
-      break;\
-    fi;\
-  done;\
-  if [ $$E -ne 0 ]; then\
-    rm -rf "$@";\
-    exit $$E;\
-  fi
-endef
-
-# do_cmd: run a command via the above cmd_foo names, if necessary.
-# Should always run for a given target to handle command-line changes.
-# Second argument, if non-zero, makes it do asm/C/C++ dependency munging.
-# Third argument, if non-zero, makes it do POSTBUILDS processing.
-# Note: We intentionally do NOT call dirx for depfile, since it contains ? for
-# spaces already and dirx strips the ? characters.
-define do_cmd
-$(if $(or $(command_changed),$(prereq_changed)),
-  @$(call exact_echo,  $($(quiet)cmd_$(1)))
-  @mkdir -p "$(call dirx,$@)" "$(dir $(depfile))"
-  $(if $(findstring flock,$(word 2,$(cmd_$1))),
-    @$(cmd_$(1))
-    @echo "  $(quiet_cmd_$(1)): Finished",
-    @$(cmd_$(1))
-  )
-  @$(call exact_echo,$(call escape_vars,cmd_$(call replace_spaces,$@) := 
$(cmd_$(1)))) > $(depfile)
-  @$(if $(2),$(fixup_dep))
-  $(if $(and $(3), $(POSTBUILDS)),
-    $(call do_postbuilds)
-  )
-)
-endef
-
-# Declare the "all" target first so it is the default,
-# even though we don't have the deps yet.
-.PHONY: all
-all:
-
-# make looks for ways to re-generate included makefiles, but in our case, we
-# don't have a direct way. Explicitly telling make that it has nothing to do
-# for them makes it go faster.
-%.d: ;
-
-# Use FORCE_DO_CMD to force a target to run.  Should be coupled with
-# do_cmd.
-.PHONY: FORCE_DO_CMD
-FORCE_DO_CMD:
-
-TOOLSET := target
-# Suffix rules, putting all outputs into $(obj).
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.c FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.cxx FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.m FORCE_DO_CMD
-       @$(call do_cmd,objc,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.mm FORCE_DO_CMD
-       @$(call do_cmd,objcxx,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.S FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(srcdir)/%.s FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-
-# Try building from generated source, too.
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.c FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.cxx FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.m FORCE_DO_CMD
-       @$(call do_cmd,objc,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.mm FORCE_DO_CMD
-       @$(call do_cmd,objcxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.S FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj).$(TOOLSET)/%.s FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-
-$(obj).$(TOOLSET)/%.o: $(obj)/%.c FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cpp FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.cxx FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.m FORCE_DO_CMD
-       @$(call do_cmd,objc,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.mm FORCE_DO_CMD
-       @$(call do_cmd,objcxx,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.S FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-$(obj).$(TOOLSET)/%.o: $(obj)/%.s FORCE_DO_CMD
-       @$(call do_cmd,cc,1)
-
-
-ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
-    $(findstring $(join ^,$(prefix)),\
-                 $(join ^,bson.target.mk)))),)
-  include bson.target.mk
-endif
-
-quiet_cmd_regen_makefile = ACTION Regenerating $@
-cmd_regen_makefile = cd $(srcdir); 
/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py -fmake 
--ignore-environment "--toplevel-dir=." 
-I/Users/nick/github/malharwebapps/webapps/package/node_modules/mongodb/node_modules/bson/build/config.gypi
 -I/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi 
-I/Users/nick/.node-gyp/0.10.24/common.gypi "--depth=." "-Goutput_dir=." 
"--generator-output=build" "-Dlibrary=shared_library" "-Dvisibility=default" 
"-Dnode_root_dir=/Users/nick/.node-gyp/0.10.24" 
"-Dmodule_root_dir=/Users/nick/github/malharwebapps/webapps/package/node_modules/mongodb/node_modules/bson"
 binding.gyp
-Makefile: $(srcdir)/../../../../../../../../.node-gyp/0.10.24/common.gypi 
$(srcdir)/build/config.gypi $(srcdir)/binding.gyp 
$(srcdir)/../../../../../../../../../../usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi
-       $(call do_cmd,regen_makefile)
-
-# "all" is a concatenation of the "all" targets from all the included
-# sub-makefiles. This is just here to clarify.
-all:
-
-# Add in dependency-tracking rules.  $(all_deps) is the list of every single
-# target in our tree. Only consider the ones with .d (dependency) info:
-d_files := $(wildcard $(foreach f,$(all_deps),$(depsdir)/$(f).d))
-ifneq ($(d_files),)
-  include $(d_files)
-endif

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/bson.node.d
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/bson.node.d
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/bson.node.d
deleted file mode 100644
index b3465a6..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/bson.node.d
+++ /dev/null
@@ -1 +0,0 @@
-cmd_Release/bson.node := ./gyp-mac-tool flock ./Release/linker.lock c++ 
-bundle -Wl,-search_paths_first -mmacosx-version-min=10.5 -arch x86_64 
-L./Release  -o Release/bson.node Release/obj.target/bson/ext/bson.o -undefined 
dynamic_lookup

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/obj.target/bson/ext/bson.o.d
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/obj.target/bson/ext/bson.o.d
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/obj.target/bson/ext/bson.o.d
deleted file mode 100644
index c4a64f5..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/.deps/Release/obj.target/bson/ext/bson.o.d
+++ /dev/null
@@ -1,26 +0,0 @@
-cmd_Release/obj.target/bson/ext/bson.o := c++ '-D_DARWIN_USE_64_BIT_INODE=1' 
'-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DBUILDING_NODE_EXTENSION' 
-I/Users/nick/.node-gyp/0.10.24/src 
-I/Users/nick/.node-gyp/0.10.24/deps/uv/include 
-I/Users/nick/.node-gyp/0.10.24/deps/v8/include  -Os -gdwarf-2 
-mmacosx-version-min=10.5 -arch x86_64 -Wall -Wendif-labels -W 
-Wno-unused-parameter -fno-rtti -fno-threadsafe-statics -fno-strict-aliasing 
-MMD -MF ./Release/.deps/Release/obj.target/bson/ext/bson.o.d.raw  -c -o 
Release/obj.target/bson/ext/bson.o ../ext/bson.cc
-Release/obj.target/bson/ext/bson.o: ../ext/bson.cc \
-  /Users/nick/.node-gyp/0.10.24/deps/v8/include/v8.h \
-  /Users/nick/.node-gyp/0.10.24/deps/v8/include/v8stdint.h \
-  /Users/nick/.node-gyp/0.10.24/src/node.h \
-  /Users/nick/.node-gyp/0.10.24/deps/uv/include/uv.h \
-  /Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/uv-unix.h \
-  /Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/ngx-queue.h \
-  /Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/uv-darwin.h \
-  /Users/nick/.node-gyp/0.10.24/src/node_object_wrap.h \
-  /Users/nick/.node-gyp/0.10.24/src/node_version.h \
-  /Users/nick/.node-gyp/0.10.24/src/node_buffer.h ../ext/bson.h \
-  ../ext/nan.h
-../ext/bson.cc:
-/Users/nick/.node-gyp/0.10.24/deps/v8/include/v8.h:
-/Users/nick/.node-gyp/0.10.24/deps/v8/include/v8stdint.h:
-/Users/nick/.node-gyp/0.10.24/src/node.h:
-/Users/nick/.node-gyp/0.10.24/deps/uv/include/uv.h:
-/Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/uv-unix.h:
-/Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/ngx-queue.h:
-/Users/nick/.node-gyp/0.10.24/deps/uv/include/uv-private/uv-darwin.h:
-/Users/nick/.node-gyp/0.10.24/src/node_object_wrap.h:
-/Users/nick/.node-gyp/0.10.24/src/node_version.h:
-/Users/nick/.node-gyp/0.10.24/src/node_buffer.h:
-../ext/bson.h:
-../ext/nan.h:

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/bson.node
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/bson.node
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/bson.node
deleted file mode 100755
index acaf70d..0000000
Binary files 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/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/build/Release/linker.lock
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/linker.lock
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/linker.lock
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/obj.target/bson/ext/bson.o
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/obj.target/bson/ext/bson.o
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/obj.target/bson/ext/bson.o
deleted file mode 100644
index 4b20985..0000000
Binary files 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/Release/obj.target/bson/ext/bson.o
 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/build/binding.Makefile
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/binding.Makefile
 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/binding.Makefile
deleted file mode 100644
index 90bf824..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/binding.Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-export builddir_name ?= build/./.
-.PHONY: all
-all:
-       $(MAKE) bson

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/bson.target.mk
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/bson.target.mk 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/bson.target.mk
deleted file mode 100644
index 41c7c8e..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/bson.target.mk
+++ /dev/null
@@ -1,152 +0,0 @@
-# This file is generated by gyp; do not edit.
-
-TOOLSET := target
-TARGET := bson
-DEFS_Debug := \
-       '-D_DARWIN_USE_64_BIT_INODE=1' \
-       '-D_LARGEFILE_SOURCE' \
-       '-D_FILE_OFFSET_BITS=64' \
-       '-DBUILDING_NODE_EXTENSION' \
-       '-DDEBUG' \
-       '-D_DEBUG'
-
-# Flags passed to all source files.
-CFLAGS_Debug := \
-       -O0 \
-       -gdwarf-2 \
-       -mmacosx-version-min=10.5 \
-       -arch x86_64 \
-       -Wall \
-       -Wendif-labels \
-       -W \
-       -Wno-unused-parameter
-
-# Flags passed to only C files.
-CFLAGS_C_Debug := \
-       -fno-strict-aliasing
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Debug := \
-       -fno-rtti \
-       -fno-threadsafe-statics \
-       -fno-strict-aliasing
-
-# Flags passed to only ObjC files.
-CFLAGS_OBJC_Debug :=
-
-# Flags passed to only ObjC++ files.
-CFLAGS_OBJCC_Debug :=
-
-INCS_Debug := \
-       -I/Users/nick/.node-gyp/0.10.24/src \
-       -I/Users/nick/.node-gyp/0.10.24/deps/uv/include \
-       -I/Users/nick/.node-gyp/0.10.24/deps/v8/include
-
-DEFS_Release := \
-       '-D_DARWIN_USE_64_BIT_INODE=1' \
-       '-D_LARGEFILE_SOURCE' \
-       '-D_FILE_OFFSET_BITS=64' \
-       '-DBUILDING_NODE_EXTENSION'
-
-# Flags passed to all source files.
-CFLAGS_Release := \
-       -Os \
-       -gdwarf-2 \
-       -mmacosx-version-min=10.5 \
-       -arch x86_64 \
-       -Wall \
-       -Wendif-labels \
-       -W \
-       -Wno-unused-parameter
-
-# Flags passed to only C files.
-CFLAGS_C_Release := \
-       -fno-strict-aliasing
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Release := \
-       -fno-rtti \
-       -fno-threadsafe-statics \
-       -fno-strict-aliasing
-
-# Flags passed to only ObjC files.
-CFLAGS_OBJC_Release :=
-
-# Flags passed to only ObjC++ files.
-CFLAGS_OBJCC_Release :=
-
-INCS_Release := \
-       -I/Users/nick/.node-gyp/0.10.24/src \
-       -I/Users/nick/.node-gyp/0.10.24/deps/uv/include \
-       -I/Users/nick/.node-gyp/0.10.24/deps/v8/include
-
-OBJS := \
-       $(obj).target/$(TARGET)/ext/bson.o
-
-# Add to the list of files we specially track dependencies for.
-all_deps += $(OBJS)
-
-# CFLAGS et al overrides must be target-local.
-# See "Target-specific Variable Values" in the GNU Make manual.
-$(OBJS): TOOLSET := $(TOOLSET)
-$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  
$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
-$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  
$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
-$(OBJS): GYP_OBJCFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  
$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE)) $(CFLAGS_OBJC_$(BUILDTYPE))
-$(OBJS): GYP_OBJCXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE))  
$(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE)) $(CFLAGS_OBJCC_$(BUILDTYPE))
-
-# Suffix rules, putting all outputs into $(obj).
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-
-# Try building from generated source, too.
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cc FORCE_DO_CMD
-       @$(call do_cmd,cxx,1)
-
-# End of this set of suffix rules
-### Rules for final target.
-LDFLAGS_Debug := \
-       -Wl,-search_paths_first \
-       -mmacosx-version-min=10.5 \
-       -arch x86_64 \
-       -L$(builddir)
-
-LIBTOOLFLAGS_Debug := \
-       -Wl,-search_paths_first
-
-LDFLAGS_Release := \
-       -Wl,-search_paths_first \
-       -mmacosx-version-min=10.5 \
-       -arch x86_64 \
-       -L$(builddir)
-
-LIBTOOLFLAGS_Release := \
-       -Wl,-search_paths_first
-
-LIBS := \
-       -undefined dynamic_lookup
-
-$(builddir)/bson.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
-$(builddir)/bson.node: LIBS := $(LIBS)
-$(builddir)/bson.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
-$(builddir)/bson.node: TOOLSET := $(TOOLSET)
-$(builddir)/bson.node: $(OBJS) FORCE_DO_CMD
-       $(call do_cmd,solink_module)
-
-all_deps += $(builddir)/bson.node
-# Add target alias
-.PHONY: bson
-bson: $(builddir)/bson.node
-
-# Short alias for building this executable.
-.PHONY: bson.node
-bson.node: $(builddir)/bson.node
-
-# Add executable to "all" target.
-.PHONY: all
-all: $(builddir)/bson.node
-

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/config.gypi
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/config.gypi 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/config.gypi
deleted file mode 100644
index 02cd216..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/build/config.gypi
+++ /dev/null
@@ -1,113 +0,0 @@
-# Do not edit. File was generated by node-gyp's "configure" step
-{
-  "target_defaults": {
-    "cflags": [],
-    "default_configuration": "Release",
-    "defines": [],
-    "include_dirs": [],
-    "libraries": []
-  },
-  "variables": {
-    "clang": 1,
-    "host_arch": "x64",
-    "node_install_npm": "true",
-    "node_prefix": "",
-    "node_shared_cares": "false",
-    "node_shared_http_parser": "false",
-    "node_shared_libuv": "false",
-    "node_shared_openssl": "false",
-    "node_shared_v8": "false",
-    "node_shared_zlib": "false",
-    "node_tag": "",
-    "node_unsafe_optimizations": 0,
-    "node_use_dtrace": "true",
-    "node_use_etw": "false",
-    "node_use_openssl": "true",
-    "node_use_perfctr": "false",
-    "python": "/usr/bin/python",
-    "target_arch": "x64",
-    "v8_enable_gdbjit": 0,
-    "v8_no_strict_aliasing": 1,
-    "v8_use_snapshot": "false",
-    "nodedir": "/Users/nick/.node-gyp/0.10.24",
-    "copy_dev_lib": "true",
-    "standalone_static_library": 1,
-    "save_dev": "",
-    "browser": "",
-    "viewer": "man",
-    "rollback": "true",
-    "usage": "",
-    "globalignorefile": "/usr/local/etc/npmignore",
-    "init_author_url": "",
-    "shell": "/bin/bash",
-    "parseable": "",
-    "shrinkwrap": "true",
-    "email": "",
-    "init_license": "ISC",
-    "cache_max": "null",
-    "init_author_email": "",
-    "sign_git_tag": "",
-    "cert": "",
-    "git_tag_version": "true",
-    "local_address": "",
-    "long": "",
-    "registry": "https://registry.npmjs.org/";,
-    "fetch_retries": "2",
-    "npat": "",
-    "key": "",
-    "message": "%s",
-    "versions": "",
-    "globalconfig": "/usr/local/etc/npmrc",
-    "always_auth": "",
-    "cache_lock_retries": "10",
-    "heading": "npm",
-    "fetch_retry_mintimeout": "10000",
-    "proprietary_attribs": "true",
-    "json": "",
-    "description": "true",
-    "engine_strict": "",
-    "https_proxy": "",
-    "init_module": "/Users/nick/.npm-init.js",
-    "userconfig": "/Users/nick/.npmrc",
-    "node_version": "v0.10.24",
-    "user": "",
-    "editor": "vi",
-    "save": "",
-    "tag": "latest",
-    "global": "",
-    "optional": "true",
-    "username": "",
-    "bin_links": "true",
-    "force": "",
-    "searchopts": "",
-    "depth": "null",
-    "rebuild_bundle": "true",
-    "searchsort": "name",
-    "unicode": "true",
-    "fetch_retry_maxtimeout": "60000",
-    "strict_ssl": "true",
-    "dev": "",
-    "fetch_retry_factor": "10",
-    "group": "20",
-    "cache_lock_stale": "60000",
-    "version": "",
-    "cache_min": "10",
-    "cache": "/Users/nick/.npm",
-    "searchexclude": "",
-    "color": "true",
-    "save_optional": "",
-    "ignore_scripts": "",
-    "user_agent": "node/v0.10.24 darwin x64",
-    "cache_lock_wait": "10000",
-    "production": "true",
-    "save_bundle": "",
-    "umask": "18",
-    "git": "git",
-    "init_author_name": "",
-    "onload_script": "",
-    "tmp": "/var/folders/xt/30wz0tn505j5ksg84l_d76jw0000gn/T/",
-    "unsafe_perm": "true",
-    "link": "",
-    "prefix": "/usr/local"
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build/gyp-mac-tool
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/gyp-mac-tool 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build/gyp-mac-tool
deleted file mode 100755
index 12edee9..0000000
--- 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build/gyp-mac-tool
+++ /dev/null
@@ -1,265 +0,0 @@
-#!/usr/bin/env python
-# Generated by gyp. Do not edit.
-# Copyright (c) 2012 Google Inc. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Utility functions to perform Xcode-style build steps.
-
-These functions are executed via gyp-mac-tool when using the Makefile 
generator.
-"""
-
-import fcntl
-import json
-import os
-import plistlib
-import re
-import shutil
-import string
-import subprocess
-import sys
-
-
-def main(args):
-  executor = MacTool()
-  exit_code = executor.Dispatch(args)
-  if exit_code is not None:
-    sys.exit(exit_code)
-
-
-class MacTool(object):
-  """This class performs all the Mac tooling steps. The methods can either be
-  executed directly, or dispatched from an argument list."""
-
-  def Dispatch(self, args):
-    """Dispatches a string command to a method."""
-    if len(args) < 1:
-      raise Exception("Not enough arguments")
-
-    method = "Exec%s" % self._CommandifyName(args[0])
-    return getattr(self, method)(*args[1:])
-
-  def _CommandifyName(self, name_string):
-    """Transforms a tool name like copy-info-plist to CopyInfoPlist"""
-    return name_string.title().replace('-', '')
-
-  def ExecCopyBundleResource(self, source, dest):
-    """Copies a resource file to the bundle/Resources directory, performing any
-    necessary compilation on each resource."""
-    extension = os.path.splitext(source)[1].lower()
-    if os.path.isdir(source):
-      # Copy tree.
-      # TODO(thakis): This copies file attributes like mtime, while the
-      # single-file branch below doesn't. This should probably be changed to
-      # be consistent with the single-file branch.
-      if os.path.exists(dest):
-        shutil.rmtree(dest)
-      shutil.copytree(source, dest)
-    elif extension == '.xib':
-      return self._CopyXIBFile(source, dest)
-    elif extension == '.storyboard':
-      return self._CopyXIBFile(source, dest)
-    elif extension == '.strings':
-      self._CopyStringsFile(source, dest)
-    else:
-      shutil.copy(source, dest)
-
-  def _CopyXIBFile(self, source, dest):
-    """Compiles a XIB file with ibtool into a binary plist in the bundle."""
-
-    # ibtool sometimes crashes with relative paths. See crbug.com/314728.
-    base = os.path.dirname(os.path.realpath(__file__))
-    if os.path.relpath(source):
-      source = os.path.join(base, source)
-    if os.path.relpath(dest):
-      dest = os.path.join(base, dest)
-
-    args = ['xcrun', 'ibtool', '--errors', '--warnings', '--notices',
-        '--output-format', 'human-readable-text', '--compile', dest, source]
-    ibtool_section_re = re.compile(r'/\*.*\*/')
-    ibtool_re = re.compile(r'.*note:.*is clipping its content')
-    ibtoolout = subprocess.Popen(args, stdout=subprocess.PIPE)
-    current_section_header = None
-    for line in ibtoolout.stdout:
-      if ibtool_section_re.match(line):
-        current_section_header = line
-      elif not ibtool_re.match(line):
-        if current_section_header:
-          sys.stdout.write(current_section_header)
-          current_section_header = None
-        sys.stdout.write(line)
-    return ibtoolout.returncode
-
-  def _CopyStringsFile(self, source, dest):
-    """Copies a .strings file using iconv to reconvert the input into 
UTF-16."""
-    input_code = self._DetectInputEncoding(source) or "UTF-8"
-
-    # Xcode's CpyCopyStringsFile / builtin-copyStrings seems to call
-    # CFPropertyListCreateFromXMLData() behind the scenes; at least it prints
-    #     CFPropertyListCreateFromXMLData(): Old-style plist parser: missing
-    #     semicolon in dictionary.
-    # on invalid files. Do the same kind of validation.
-    import CoreFoundation
-    s = open(source, 'rb').read()
-    d = CoreFoundation.CFDataCreate(None, s, len(s))
-    _, error = CoreFoundation.CFPropertyListCreateFromXMLData(None, d, 0, None)
-    if error:
-      return
-
-    fp = open(dest, 'wb')
-    fp.write(s.decode(input_code).encode('UTF-16'))
-    fp.close()
-
-  def _DetectInputEncoding(self, file_name):
-    """Reads the first few bytes from file_name and tries to guess the text
-    encoding. Returns None as a guess if it can't detect it."""
-    fp = open(file_name, 'rb')
-    try:
-      header = fp.read(3)
-    except e:
-      fp.close()
-      return None
-    fp.close()
-    if header.startswith("\xFE\xFF"):
-      return "UTF-16"
-    elif header.startswith("\xFF\xFE"):
-      return "UTF-16"
-    elif header.startswith("\xEF\xBB\xBF"):
-      return "UTF-8"
-    else:
-      return None
-
-  def ExecCopyInfoPlist(self, source, dest, *keys):
-    """Copies the |source| Info.plist to the destination directory |dest|."""
-    # Read the source Info.plist into memory.
-    fd = open(source, 'r')
-    lines = fd.read()
-    fd.close()
-
-    # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
-    plist = plistlib.readPlistFromString(lines)
-    if keys:
-      plist = dict(plist.items() + json.loads(keys[0]).items())
-    lines = plistlib.writePlistToString(plist)
-
-    # Go through all the environment variables and replace them as variables in
-    # the file.
-    IDENT_RE = re.compile('[/\s]')
-    for key in os.environ:
-      if key.startswith('_'):
-        continue
-      evar = '${%s}' % key
-      evalue = os.environ[key]
-      lines = string.replace(lines, evar, evalue)
-
-      # Xcode supports various suffices on environment variables, which are
-      # all undocumented. :rfc1034identifier is used in the standard project
-      # template these days, and :identifier was used earlier. They are used to
-      # convert non-url characters into things that look like valid urls --
-      # except that the replacement character for :identifier, '_' isn't valid
-      # in a URL either -- oops, hence :rfc1034identifier was born.
-      evar = '${%s:identifier}' % key
-      evalue = IDENT_RE.sub('_', os.environ[key])
-      lines = string.replace(lines, evar, evalue)
-
-      evar = '${%s:rfc1034identifier}' % key
-      evalue = IDENT_RE.sub('-', os.environ[key])
-      lines = string.replace(lines, evar, evalue)
-
-    # Remove any keys with values that haven't been replaced.
-    lines = lines.split('\n')
-    for i in range(len(lines)):
-      if lines[i].strip().startswith("<string>${"):
-        lines[i] = None
-        lines[i - 1] = None
-    lines = '\n'.join(filter(lambda x: x is not None, lines))
-
-    # Write out the file with variables replaced.
-    fd = open(dest, 'w')
-    fd.write(lines)
-    fd.close()
-
-    # Now write out PkgInfo file now that the Info.plist file has been
-    # "compiled".
-    self._WritePkgInfo(dest)
-
-  def _WritePkgInfo(self, info_plist):
-    """This writes the PkgInfo file from the data stored in Info.plist."""
-    plist = plistlib.readPlist(info_plist)
-    if not plist:
-      return
-
-    # Only create PkgInfo for executable types.
-    package_type = plist['CFBundlePackageType']
-    if package_type != 'APPL':
-      return
-
-    # The format of PkgInfo is eight characters, representing the bundle type
-    # and bundle signature, each four characters. If that is missing, four
-    # '?' characters are used instead.
-    signature_code = plist.get('CFBundleSignature', '????')
-    if len(signature_code) != 4:  # Wrong length resets everything, too.
-      signature_code = '?' * 4
-
-    dest = os.path.join(os.path.dirname(info_plist), 'PkgInfo')
-    fp = open(dest, 'w')
-    fp.write('%s%s' % (package_type, signature_code))
-    fp.close()
-
-  def ExecFlock(self, lockfile, *cmd_list):
-    """Emulates the most basic behavior of Linux's flock(1)."""
-    # Rely on exception handling to report errors.
-    fd = os.open(lockfile, os.O_RDONLY|os.O_NOCTTY|os.O_CREAT, 0o666)
-    fcntl.flock(fd, fcntl.LOCK_EX)
-    return subprocess.call(cmd_list)
-
-  def ExecFilterLibtool(self, *cmd_list):
-    """Calls libtool and filters out '/path/to/libtool: file: foo.o has no
-    symbols'."""
-    libtool_re = re.compile(r'^.*libtool: file: .* has no symbols$')
-    libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE)
-    _, err = libtoolout.communicate()
-    for line in err.splitlines():
-      if not libtool_re.match(line):
-        print >>sys.stderr, line
-    return libtoolout.returncode
-
-  def ExecPackageFramework(self, framework, version):
-    """Takes a path to Something.framework and the Current version of that and
-    sets up all the symlinks."""
-    # Find the name of the binary based on the part before the ".framework".
-    binary = os.path.basename(framework).split('.')[0]
-
-    CURRENT = 'Current'
-    RESOURCES = 'Resources'
-    VERSIONS = 'Versions'
-
-    if not os.path.exists(os.path.join(framework, VERSIONS, version, binary)):
-      # Binary-less frameworks don't seem to contain symlinks (see e.g.
-      # chromium's out/Debug/org.chromium.Chromium.manifest/ bundle).
-      return
-
-    # Move into the framework directory to set the symlinks correctly.
-    pwd = os.getcwd()
-    os.chdir(framework)
-
-    # Set up the Current version.
-    self._Relink(version, os.path.join(VERSIONS, CURRENT))
-
-    # Set up the root symlinks.
-    self._Relink(os.path.join(VERSIONS, CURRENT, binary), binary)
-    self._Relink(os.path.join(VERSIONS, CURRENT, RESOURCES), RESOURCES)
-
-    # Back to where we were before!
-    os.chdir(pwd)
-
-  def _Relink(self, dest, link):
-    """Creates a symlink to |dest| named |link|. If |link| already exists,
-    it is overwritten."""
-    if os.path.lexists(link):
-      os.remove(link)
-    os.symlink(dest, link)
-
-
-if __name__ == '__main__':
-  sys.exit(main(sys.argv[1:]))

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/build_browser.js
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/build_browser.js 
b/web/demos/package/node_modules/mongodb/node_modules/bson/build_browser.js
deleted file mode 100644
index bb80238..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/build_browser.js
+++ /dev/null
@@ -1,7 +0,0 @@
-require('one');
-
-one('./package.json')
-  .tie('bson', BSON)
-  // .exclude('buffer')
-  .tie('buffer', {})
-  .save('./browser_build/bson.js')
\ 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/builderror.log
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/builderror.log 
b/web/demos/package/node_modules/mongodb/node_modules/bson/builderror.log
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-apex-malhar/blob/e1a45507/web/demos/package/node_modules/mongodb/node_modules/bson/ext/Makefile
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/Makefile 
b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/Makefile
deleted file mode 100644
index 435999e..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-NODE = node
-name = all
-JOBS = 1
-
-all:
-       rm -rf build .lock-wscript bson.node
-       node-waf configure build
-       cp -R ./build/Release/bson.node . || true
-
-all_debug:
-       rm -rf build .lock-wscript bson.node
-       node-waf --debug configure build
-       cp -R ./build/Release/bson.node . || true
-
-clang:
-       rm -rf build .lock-wscript bson.node
-       CXX=clang node-waf configure build
-       cp -R ./build/Release/bson.node . || true
-
-clang_debug:
-       rm -rf build .lock-wscript bson.node
-       CXX=clang node-waf --debug configure build
-       cp -R ./build/Release/bson.node . || true
-
-clean:
-       rm -rf build .lock-wscript bson.node
-
-.PHONY: all
\ 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/bson.cc
----------------------------------------------------------------------
diff --git 
a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.cc 
b/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.cc
deleted file mode 100644
index 1ec3031..0000000
--- a/web/demos/package/node_modules/mongodb/node_modules/bson/ext/bson.cc
+++ /dev/null
@@ -1,1045 +0,0 @@
-//===========================================================================
-
-#include <stdarg.h>
-#include <cstdlib>
-#include <cstring>
-#include <string.h>
-#include <stdlib.h>
-
-#ifdef __clang__
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-parameter"
-#endif
-
-#include <v8.h>
-
-// this and the above block must be around the v8.h header otherwise
-// v8 is not happy
-#ifdef __clang__
-#pragma clang diagnostic pop
-#endif
-
-#include <node.h>
-#include <node_version.h>
-#include <node_buffer.h>
-
-#include <cmath>
-#include <iostream>
-#include <limits>
-#include <vector>
-
-#ifdef __sun
-       #include <alloca.h>
-#endif
-
-#include "bson.h"
-
-using namespace v8;
-using namespace node;
-
-//===========================================================================
-
-void DataStream::WriteObjectId(const Handle<Object>& object, const 
Handle<String>& key)
-{
-       uint16_t buffer[12];
-       object->Get(key)->ToString()->Write(buffer, 0, 12);
-       for(uint32_t i = 0; i < 12; ++i)
-       {
-               *p++ = (char) buffer[i];
-       }
-}
-
-void ThrowAllocatedStringException(size_t allocationSize, const char* format, 
...)
-{
-       va_list args;
-       va_start(args, format);
-       char* string = (char*) malloc(allocationSize);
-       vsprintf(string, format, args);
-       va_end(args);
-
-       throw string;
-}
-
-void DataStream::CheckKey(const Local<String>& keyName)
-{
-       size_t keyLength = keyName->Utf8Length();
-       if(keyLength == 0) return;
-
-       // Allocate space for the key, do not need to zero terminate as 
WriteUtf8 does it
-       char* keyStringBuffer = (char*) alloca(keyLength + 1);
-       // Write the key to the allocated buffer
-       keyName->WriteUtf8(keyStringBuffer);
-       // Check for the zero terminator
-       char* terminator = strchr(keyStringBuffer, 0x00);
-
-       // If the location is not at the end of the string we've got an illegal 
0x00 byte somewhere
-       if(terminator != &keyStringBuffer[keyLength]) {
-               ThrowAllocatedStringException(64+keyLength, "key %s must not 
contain null bytes", keyStringBuffer);
-       }
-
-       if(keyStringBuffer[0] == '$')
-       {
-               ThrowAllocatedStringException(64+keyLength, "key %s must not 
start with '$'", keyStringBuffer);
-       }
-
-       if(strchr(keyStringBuffer, '.') != NULL)
-       {
-               ThrowAllocatedStringException(64+keyLength, "key %s must not 
contain '.'", keyStringBuffer);
-       }
-}
-
-template<typename T> void BSONSerializer<T>::SerializeDocument(const 
Handle<Value>& value)
-{
-       void* documentSize = this->BeginWriteSize();
-       Local<Object> object = bson->GetSerializeObject(value);
-
-       // Get the object property names
-       #if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION < 6
-    Local<Array> propertyNames = object->GetPropertyNames();
-  #else
-    Local<Array> propertyNames = object->GetOwnPropertyNames();
-  #endif
-
-       // Length of the property
-       int propertyLength = propertyNames->Length();
-       for(int i = 0;  i < propertyLength; ++i)
-       {
-               const Local<String>& propertyName = 
propertyNames->Get(i)->ToString();
-               if(checkKeys) this->CheckKey(propertyName);
-
-               const Local<Value>& propertyValue = object->Get(propertyName);
-
-               if(serializeFunctions || !propertyValue->IsFunction())
-               {
-                       void* typeLocation = this->BeginWriteType();
-                       this->WriteString(propertyName);
-                       SerializeValue(typeLocation, propertyValue);
-               }
-       }
-
-       this->WriteByte(0);
-       this->CommitSize(documentSize);
-}
-
-template<typename T> void BSONSerializer<T>::SerializeArray(const 
Handle<Value>& value)
-{
-       void* documentSize = this->BeginWriteSize();
-
-       Local<Array> array = Local<Array>::Cast(value->ToObject());
-       uint32_t arrayLength = array->Length();
-
-       for(uint32_t i = 0;  i < arrayLength; ++i)
-       {
-               void* typeLocation = this->BeginWriteType();
-               this->WriteUInt32String(i);
-               SerializeValue(typeLocation, array->Get(i));
-       }
-
-       this->WriteByte(0);
-       this->CommitSize(documentSize);
-}
-
-// This is templated so that we can use this function to both count the number 
of bytes, and to serialize those bytes.
-// The template approach eliminates almost all of the inspection of values 
unless they're required (eg. string lengths)
-// and ensures that there is always consistency between bytes counted and 
bytes written by design.
-template<typename T> void BSONSerializer<T>::SerializeValue(void* 
typeLocation, const Handle<Value>& value)
-{
-       if(value->IsNumber())
-       {
-               double doubleValue = value->NumberValue();
-               int intValue = (int) doubleValue;
-               if(intValue == doubleValue)
-               {
-                       this->CommitType(typeLocation, BSON_TYPE_INT);
-                       this->WriteInt32(intValue);
-               }
-               else
-               {
-                       this->CommitType(typeLocation, BSON_TYPE_NUMBER);
-                       this->WriteDouble(doubleValue);
-               }
-       }
-       else if(value->IsString())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_STRING);
-               this->WriteLengthPrefixedString(value->ToString());
-       }
-       else if(value->IsBoolean())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_BOOLEAN);
-               this->WriteBool(value);
-       }
-       else if(value->IsArray())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_ARRAY);
-               SerializeArray(value);
-       }
-       else if(value->IsDate())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_DATE);
-               this->WriteInt64(value);
-       }
-       else if(value->IsRegExp())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_REGEXP);
-               const Handle<RegExp>& regExp = Handle<RegExp>::Cast(value);
-
-               this->WriteString(regExp->GetSource());
-
-               int flags = regExp->GetFlags();
-               if(flags & RegExp::kGlobal) this->WriteByte('s');
-               if(flags & RegExp::kIgnoreCase) this->WriteByte('i');
-               if(flags & RegExp::kMultiline) this->WriteByte('m');
-               this->WriteByte(0);
-       }
-       else if(value->IsFunction())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_CODE);
-               this->WriteLengthPrefixedString(value->ToString());
-       }
-       else if(value->IsObject())
-       {
-               const Local<Object>& object = value->ToObject();
-               if(object->Has(NanPersistentToLocal(bson->_bsontypeString)))
-               {
-                       const Local<String>& constructorString = 
object->GetConstructorName();
-                       
if(NanPersistentToLocal(bson->longString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, BSON_TYPE_LONG);
-                               this->WriteInt32(object, 
NanPersistentToLocal(bson->_longLowString));
-                               this->WriteInt32(object, 
NanPersistentToLocal(bson->_longHighString));
-                       }
-                       else 
if(NanPersistentToLocal(bson->timestampString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_TIMESTAMP);
-                               this->WriteInt32(object, 
NanPersistentToLocal(bson->_longLowString));
-                               this->WriteInt32(object, 
NanPersistentToLocal(bson->_longHighString));
-                       }
-                       else 
if(NanPersistentToLocal(bson->objectIDString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, BSON_TYPE_OID);
-                               this->WriteObjectId(object, 
NanPersistentToLocal(bson->_objectIDidString));
-                       }
-                       else 
if(NanPersistentToLocal(bson->binaryString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_BINARY);
-
-                               uint32_t length = 
object->Get(NanPersistentToLocal(bson->_binaryPositionString))->Uint32Value();
-                               Local<Object> bufferObj = 
object->Get(NanPersistentToLocal(bson->_binaryBufferString))->ToObject();
-
-                               this->WriteInt32(length);
-                               this->WriteByte(object, 
NanPersistentToLocal(bson->_binarySubTypeString));      // write subtype
-                               // If type 0x02 write the array length aswell
-                               
if(object->Get(NanPersistentToLocal(bson->_binarySubTypeString))->Int32Value() 
== 0x02) {
-                                       this->WriteInt32(length);
-                               }
-                               // Write the actual data
-                               this->WriteData(Buffer::Data(bufferObj), 
length);
-                       }
-                       else 
if(NanPersistentToLocal(bson->doubleString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_NUMBER);
-                               this->WriteDouble(object, 
NanPersistentToLocal(bson->_doubleValueString));
-                       }
-                       else 
if(NanPersistentToLocal(bson->symbolString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_SYMBOL);
-                               
this->WriteLengthPrefixedString(object->Get(NanPersistentToLocal(bson->_symbolValueString))->ToString());
-                       }
-                       else 
if(NanPersistentToLocal(bson->codeString)->StrictEquals(constructorString))
-                       {
-                               const Local<String>& function = 
object->Get(NanPersistentToLocal(bson->_codeCodeString))->ToString();
-                               const Local<Object>& scope = 
object->Get(NanPersistentToLocal(bson->_codeScopeString))->ToObject();
-
-                               // For Node < 0.6.X use the GetPropertyNames
-             #if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION < 6
-               uint32_t propertyNameLength = 
scope->GetPropertyNames()->Length();
-             #else
-               uint32_t propertyNameLength = 
scope->GetOwnPropertyNames()->Length();
-             #endif
-
-                               if(propertyNameLength > 0)
-                               {
-                                       this->CommitType(typeLocation, 
BSON_TYPE_CODE_W_SCOPE);
-                                       void* codeWidthScopeSize = 
this->BeginWriteSize();
-                                       
this->WriteLengthPrefixedString(function->ToString());
-                                       SerializeDocument(scope);
-                                       this->CommitSize(codeWidthScopeSize);
-                               }
-                               else
-                               {
-                                       this->CommitType(typeLocation, 
BSON_TYPE_CODE);
-                                       
this->WriteLengthPrefixedString(function->ToString());
-                               }
-                       }
-                       else 
if(NanPersistentToLocal(bson->dbrefString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_OBJECT);
-
-                               void* dbRefSize = this->BeginWriteSize();
-
-                               void* refType = this->BeginWriteType();
-                               this->WriteData("$ref", 5);
-                               SerializeValue(refType, 
object->Get(NanPersistentToLocal(bson->_dbRefNamespaceString)));
-
-                               void* idType = this->BeginWriteType();
-                               this->WriteData("$id", 4);
-                               SerializeValue(idType, 
object->Get(NanPersistentToLocal(bson->_dbRefOidString)));
-
-                               const Local<Value>& refDbValue = 
object->Get(NanPersistentToLocal(bson->_dbRefDbString));
-                               if(!refDbValue->IsUndefined())
-                               {
-                                       void* dbType = this->BeginWriteType();
-                                       this->WriteData("$db", 4);
-                                       SerializeValue(dbType, refDbValue);
-                               }
-
-                               this->WriteByte(0);
-                               this->CommitSize(dbRefSize);
-                       }
-                       else 
if(NanPersistentToLocal(bson->minKeyString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_MIN_KEY);
-                       }
-                       else 
if(NanPersistentToLocal(bson->maxKeyString)->StrictEquals(constructorString))
-                       {
-                               this->CommitType(typeLocation, 
BSON_TYPE_MAX_KEY);
-                       }
-               }
-               else if(Buffer::HasInstance(value))
-               {
-                       this->CommitType(typeLocation, BSON_TYPE_BINARY);
-
-           #if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION < 3
-       Local<Object> buffer = ObjectWrap::Unwrap<Buffer>(value->ToObject());
-                        uint32_t length = object->length();
-           #else
-                        uint32_t length = Buffer::Length(value->ToObject());
-           #endif
-
-                       this->WriteInt32(length);
-                       this->WriteByte(0);
-                       this->WriteData(Buffer::Data(value->ToObject()), 
length);
-               }
-               else
-               {
-                       this->CommitType(typeLocation, BSON_TYPE_OBJECT);
-                       SerializeDocument(value);
-               }
-       }
-       else if(value->IsNull() || value->IsUndefined())
-       {
-               this->CommitType(typeLocation, BSON_TYPE_NULL);
-       }
-}
-
-// Data points to start of element list, length is length of entire document 
including '\0' but excluding initial size
-BSONDeserializer::BSONDeserializer(BSON* aBson, char* data, size_t length)
-: bson(aBson),
-  pStart(data),
-  p(data),
-  pEnd(data + length - 1)
-{
-       if(*pEnd != '\0') ThrowAllocatedStringException(64, "Missing end of 
document marker '\\0'");
-}
-
-BSONDeserializer::BSONDeserializer(BSONDeserializer& parentSerializer, size_t 
length)
-: bson(parentSerializer.bson),
-  pStart(parentSerializer.p),
-  p(parentSerializer.p),
-  pEnd(parentSerializer.p + length - 1)
-{
-       parentSerializer.p += length;
-       if(pEnd > parentSerializer.pEnd) ThrowAllocatedStringException(64, 
"Child document exceeds parent's bounds");
-       if(*pEnd != '\0') ThrowAllocatedStringException(64, "Missing end of 
document marker '\\0'");
-}
-
-Handle<Value> BSONDeserializer::ReadCString()
-{
-       char* start = p;
-       while(*p++ && (p < pEnd)) { }
-       if(p > pEnd) {
-               return Null();
-       }
-       return String::New(start, (int32_t) (p-start-1) );
-}
-
-int32_t BSONDeserializer::ReadRegexOptions()
-{
-       int32_t options = 0;
-       for(;;)
-       {
-               switch(*p++)
-               {
-               case '\0': return options;
-               case 's': options |= RegExp::kGlobal; break;
-               case 'i': options |= RegExp::kIgnoreCase; break;
-               case 'm': options |= RegExp::kMultiline; break;
-               }
-       }
-}
-
-uint32_t BSONDeserializer::ReadIntegerString()
-{
-       uint32_t value = 0;
-       while(*p)
-       {
-               if(*p < '0' || *p > '9') ThrowAllocatedStringException(64, 
"Invalid key for array");
-               value = value * 10 + *p++ - '0';
-       }
-       ++p;
-       return value;
-}
-
-Local<String> BSONDeserializer::ReadString()
-{
-       uint32_t length = ReadUInt32();
-       char* start = p;
-       p += length;
-       return String::New(start, length-1);
-}
-
-Local<String> BSONDeserializer::ReadObjectId()
-{
-       uint16_t objectId[12];
-       for(size_t i = 0; i < 12; ++i)
-       {
-               objectId[i] = *reinterpret_cast<unsigned char*>(p++);
-       }
-       return String::New(objectId, 12);
-}
-
-Handle<Value> BSONDeserializer::DeserializeDocument(bool promoteLongs)
-{
-       uint32_t length = ReadUInt32();
-       if(length < 5) ThrowAllocatedStringException(64, "Bad BSON: Document is 
less than 5 bytes");
-
-       BSONDeserializer documentDeserializer(*this, length-4);
-       return documentDeserializer.DeserializeDocumentInternal(promoteLongs);
-}
-
-Handle<Value> BSONDeserializer::DeserializeDocumentInternal(bool promoteLongs)
-{
-       Local<Object> returnObject = Object::New();
-
-       while(HasMoreData())
-       {
-               BsonType type = (BsonType) ReadByte();
-               const Handle<Value>& name = ReadCString();
-               if(name->IsNull()) ThrowAllocatedStringException(64, "Bad BSON 
Document: illegal CString");
-               // name->Is
-               const Handle<Value>& value = DeserializeValue(type, 
promoteLongs);
-               returnObject->ForceSet(name, value);
-       }
-       if(p != pEnd) ThrowAllocatedStringException(64, "Bad BSON Document: 
Serialize consumed unexpected number of bytes");
-
-       // From JavaScript:
-       // if(object['$id'] != null) object = new DBRef(object['$ref'], 
object['$id'], object['$db']);
-       if(returnObject->Has(NanPersistentToLocal(bson->_dbRefIdRefString)))
-       {
-               Local<Value> argv[] = { 
returnObject->Get(NanPersistentToLocal(bson->_dbRefRefString)), 
returnObject->Get(NanPersistentToLocal(bson->_dbRefIdRefString)), 
returnObject->Get(NanPersistentToLocal(bson->_dbRefDbRefString)) };
-               return 
NanPersistentToLocal(bson->dbrefConstructor)->NewInstance(3, argv);
-       }
-       else
-       {
-               return returnObject;
-       }
-}
-
-Handle<Value> BSONDeserializer::DeserializeArray(bool promoteLongs)
-{
-       uint32_t length = ReadUInt32();
-       if(length < 5) ThrowAllocatedStringException(64, "Bad BSON: Array 
Document is less than 5 bytes");
-
-       BSONDeserializer documentDeserializer(*this, length-4);
-       return documentDeserializer.DeserializeArrayInternal(promoteLongs);
-}
-
-Handle<Value> BSONDeserializer::DeserializeArrayInternal(bool promoteLongs)
-{
-       Local<Array> returnArray = Array::New();
-
-       while(HasMoreData())
-       {
-               BsonType type = (BsonType) ReadByte();
-               uint32_t index = ReadIntegerString();
-               const Handle<Value>& value = DeserializeValue(type, 
promoteLongs);
-               returnArray->Set(index, value);
-       }
-       if(p != pEnd) ThrowAllocatedStringException(64, "Bad BSON Array: 
Serialize consumed unexpected number of bytes");
-
-       return returnArray;
-}
-
-Handle<Value> BSONDeserializer::DeserializeValue(BsonType type, bool 
promoteLongs)
-{
-       switch(type)
-       {
-       case BSON_TYPE_STRING:
-               return ReadString();
-
-       case BSON_TYPE_INT:
-               return Integer::New(ReadInt32());
-
-       case BSON_TYPE_NUMBER:
-               return Number::New(ReadDouble());
-
-       case BSON_TYPE_NULL:
-               return Null();
-
-       case BSON_TYPE_UNDEFINED:
-               return Undefined();
-
-       case BSON_TYPE_TIMESTAMP:
-               {
-                       int32_t lowBits = ReadInt32();
-                       int32_t highBits = ReadInt32();
-                       Local<Value> argv[] = { Int32::New(lowBits), 
Int32::New(highBits) };
-                       return 
NanPersistentToLocal(bson->timestampConstructor)->NewInstance(2, argv);
-               }
-
-       case BSON_TYPE_BOOLEAN:
-               return (ReadByte() != 0) ? True() : False();
-
-       case BSON_TYPE_REGEXP:
-               {
-                       const Handle<Value>& regex = ReadCString();
-                       if(regex->IsNull()) ThrowAllocatedStringException(64, 
"Bad BSON Document: illegal CString");
-                       int32_t options = ReadRegexOptions();
-                       return RegExp::New(regex->ToString(), (RegExp::Flags) 
options);
-               }
-
-       case BSON_TYPE_CODE:
-               {
-                       const Local<Value>& code = ReadString();
-                       const Local<Value>& scope = Object::New();
-                       Local<Value> argv[] = { code, scope };
-                       return 
NanPersistentToLocal(bson->codeConstructor)->NewInstance(2, argv);
-               }
-
-       case BSON_TYPE_CODE_W_SCOPE:
-               {
-                       ReadUInt32();
-                       const Local<Value>& code = ReadString();
-                       const Handle<Value>& scope = 
DeserializeDocument(promoteLongs);
-                       Local<Value> argv[] = { code, scope->ToObject() };
-                       return 
NanPersistentToLocal(bson->codeConstructor)->NewInstance(2, argv);
-               }
-
-       case BSON_TYPE_OID:
-               {
-                       Local<Value> argv[] = { ReadObjectId() };
-                       return 
NanPersistentToLocal(bson->objectIDConstructor)->NewInstance(1, argv);
-               }
-
-       case BSON_TYPE_BINARY:
-               {
-                       uint32_t length = ReadUInt32();
-                       uint32_t subType = ReadByte();
-                       if(subType == 0x02) {
-                               length = ReadInt32();
-                       }
-
-                       Local<Object> buffer = NanNewBufferHandle(p, length);
-                       p += length;
-
-                       Handle<Value> argv[] = { buffer, Uint32::New(subType) };
-                       return 
NanPersistentToLocal(bson->binaryConstructor)->NewInstance(2, argv);
-               }
-
-       case BSON_TYPE_LONG:
-               {
-                       // Read 32 bit integers
-                       int32_t lowBits = (int32_t) ReadInt32();
-                       int32_t highBits = (int32_t) ReadInt32();
-
-                       // Promote long is enabled
-                       if(promoteLongs) {
-                               // If value is < 2^53 and >-2^53
-                               if((highBits < 0x200000 || (highBits == 
0x200000 && lowBits == 0)) && highBits >= -0x200000) {
-                                       // Adjust the pointer and read as 64 
bit value
-                                       p -= 8;
-                                       // Read the 64 bit value
-                                       int64_t finalValue = (int64_t) 
ReadInt64();
-                                       return Number::New(finalValue);
-                               }
-                       }
-
-                       // Decode the Long value
-                       Local<Value> argv[] = { Int32::New(lowBits), 
Int32::New(highBits) };
-                       return 
NanPersistentToLocal(bson->longConstructor)->NewInstance(2, argv);
-               }
-
-       case BSON_TYPE_DATE:
-               return Date::New((double) ReadInt64());
-
-       case BSON_TYPE_ARRAY:
-               return DeserializeArray(promoteLongs);
-
-       case BSON_TYPE_OBJECT:
-               return DeserializeDocument(promoteLongs);
-
-       case BSON_TYPE_SYMBOL:
-               {
-                       const Local<String>& string = ReadString();
-                       Local<Value> argv[] = { string };
-                       return 
NanPersistentToLocal(bson->symbolConstructor)->NewInstance(1, argv);
-               }
-
-       case BSON_TYPE_MIN_KEY:
-               return 
NanPersistentToLocal(bson->minKeyConstructor)->NewInstance();
-
-       case BSON_TYPE_MAX_KEY:
-               return 
NanPersistentToLocal(bson->maxKeyConstructor)->NewInstance();
-
-       default:
-               ThrowAllocatedStringException(64, "Unhandled BSON Type: %d", 
type);
-       }
-
-       return v8::Null();
-}
-
-Persistent<FunctionTemplate> BSON::constructor_template;
-
-BSON::BSON() : ObjectWrap()
-{
-       // Setup pre-allocated comparision objects
-        NanAssignPersistent(String, _bsontypeString, String::New("_bsontype"));
-        NanAssignPersistent(String, _longLowString, String::New("low_"));
-        NanAssignPersistent(String, _longHighString, String::New("high_"));
-        NanAssignPersistent(String, _objectIDidString, String::New("id"));
-        NanAssignPersistent(String, _binaryPositionString, 
String::New("position"));
-        NanAssignPersistent(String, _binarySubTypeString, 
String::New("sub_type"));
-        NanAssignPersistent(String, _binaryBufferString, 
String::New("buffer"));
-        NanAssignPersistent(String, _doubleValueString, String::New("value"));
-        NanAssignPersistent(String, _symbolValueString, String::New("value"));
-        NanAssignPersistent(String, _dbRefRefString, String::New("$ref"));
-        NanAssignPersistent(String, _dbRefIdRefString, String::New("$id"));
-        NanAssignPersistent(String, _dbRefDbRefString, String::New("$db"));
-        NanAssignPersistent(String, _dbRefNamespaceString, 
String::New("namespace"));
-        NanAssignPersistent(String, _dbRefDbString, String::New("db"));
-        NanAssignPersistent(String, _dbRefOidString, String::New("oid"));
-        NanAssignPersistent(String, _codeCodeString, String::New("code"));
-        NanAssignPersistent(String, _codeScopeString, String::New("scope"));
-        NanAssignPersistent(String, _toBSONString, String::New("toBSON"));
-
-        NanAssignPersistent(String, longString, String::New("Long"));
-        NanAssignPersistent(String, objectIDString, String::New("ObjectID"));
-        NanAssignPersistent(String, binaryString, String::New("Binary"));
-        NanAssignPersistent(String, codeString, String::New("Code"));
-        NanAssignPersistent(String, dbrefString, String::New("DBRef"));
-        NanAssignPersistent(String, symbolString, String::New("Symbol"));
-        NanAssignPersistent(String, doubleString, String::New("Double"));
-        NanAssignPersistent(String, timestampString, String::New("Timestamp"));
-        NanAssignPersistent(String, minKeyString, String::New("MinKey"));
-        NanAssignPersistent(String, maxKeyString, String::New("MaxKey"));
-}
-
-void BSON::Initialize(v8::Handle<v8::Object> target)
-{
-       // Grab the scope of the call from Node
-       NanScope();
-       // Define a new function template
-       Local<FunctionTemplate> t = FunctionTemplate::New(New);
-       t->InstanceTemplate()->SetInternalFieldCount(1);
-       t->SetClassName(String::NewSymbol("BSON"));
-
-       // Instance methods
-       NODE_SET_PROTOTYPE_METHOD(t, "calculateObjectSize", 
CalculateObjectSize);
-       NODE_SET_PROTOTYPE_METHOD(t, "serialize", BSONSerialize);
-       NODE_SET_PROTOTYPE_METHOD(t, "serializeWithBufferAndIndex", 
SerializeWithBufferAndIndex);
-       NODE_SET_PROTOTYPE_METHOD(t, "deserialize", BSONDeserialize);
-       NODE_SET_PROTOTYPE_METHOD(t, "deserializeStream", 
BSONDeserializeStream);
-
-       NanAssignPersistent(FunctionTemplate, constructor_template, t);
-
-       target->ForceSet(String::NewSymbol("BSON"), t->GetFunction());
-}
-
-// Create a new instance of BSON and passing it the existing context
-NAN_METHOD(BSON::New)
-{
-       NanScope();
-
-       // Check that we have an array
-       if(args.Length() == 1 && args[0]->IsArray())
-       {
-               // Cast the array to a local reference
-               Local<Array> array = Local<Array>::Cast(args[0]);
-
-               if(array->Length() > 0)
-               {
-                       // Create a bson object instance and return it
-                       BSON *bson = new BSON();
-
-                       uint32_t foundClassesMask = 0;
-
-                       // Iterate over all entries to save the instantiate 
funtions
-                       for(uint32_t i = 0; i < array->Length(); i++) {
-                               // Let's get a reference to the function
-                               Local<Function> func = 
Local<Function>::Cast(array->Get(i));
-                               Local<String> functionName = 
func->GetName()->ToString();
-
-                               // Save the functions making them persistant 
handles (they don't get collected)
-                               
if(functionName->StrictEquals(NanPersistentToLocal(bson->longString))) {
-                                       NanAssignPersistent(Function, 
bson->longConstructor, func);
-                                       foundClassesMask |= 1;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->objectIDString))) {
-                                       NanAssignPersistent(Function, 
bson->objectIDConstructor, func);
-                                       foundClassesMask |= 2;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->binaryString))) {
-                                       NanAssignPersistent(Function, 
bson->binaryConstructor, func);
-                                       foundClassesMask |= 4;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->codeString))) {
-                                       NanAssignPersistent(Function, 
bson->codeConstructor, func);
-                                       foundClassesMask |= 8;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->dbrefString))) {
-                                       NanAssignPersistent(Function, 
bson->dbrefConstructor, func);
-                                       foundClassesMask |= 0x10;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->symbolString))) {
-                                       NanAssignPersistent(Function, 
bson->symbolConstructor, func);
-                                       foundClassesMask |= 0x20;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->doubleString))) {
-                                       NanAssignPersistent(Function, 
bson->doubleConstructor, func);
-                                       foundClassesMask |= 0x40;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->timestampString))) {
-                                       NanAssignPersistent(Function, 
bson->timestampConstructor, func);
-                                       foundClassesMask |= 0x80;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->minKeyString))) {
-                                       NanAssignPersistent(Function, 
bson->minKeyConstructor, func);
-                                       foundClassesMask |= 0x100;
-                               } else 
if(functionName->StrictEquals(NanPersistentToLocal(bson->maxKeyString))) {
-                                       NanAssignPersistent(Function, 
bson->maxKeyConstructor, func);
-                                       foundClassesMask |= 0x200;
-                               }
-                       }
-
-                       // Check if we have the right number of constructors 
otherwise throw an error
-                       if(foundClassesMask != 0x3ff) {
-                               delete bson;
-                               return NanThrowError("Missing function 
constructor for either 
[Long/ObjectID/Binary/Code/DbRef/Symbol/Double/Timestamp/MinKey/MaxKey]");
-                       } else {
-                               bson->Wrap(args.This());
-                               NanReturnValue(args.This());
-                       }
-               }
-               else
-               {
-                       return NanThrowError("No types passed in");
-               }
-       }
-       else
-       {
-               return NanThrowTypeError("Argument passed in must be an array 
of types");
-       }
-}
-
-//------------------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------------------
-//------------------------------------------------------------------------------------------------
-
-NAN_METHOD(BSON::BSONDeserialize)
-{
-       NanScope();
-
-       // Fail if the first argument is not a string or a buffer
-       if(args.Length() > 1 && !args[0]->IsString() && 
!Buffer::HasInstance(args[0]))
-               return NanThrowError("First Argument must be a Buffer or 
String.");
-
-       // Promote longs
-       bool promoteLongs = true;
-
-       // If we have an options object
-       if(args.Length() == 2 && args[1]->IsObject()) {
-               Local<Object> options = args[1]->ToObject();
-
-               if(options->Has(String::New("promoteLongs"))) {
-                       promoteLongs = 
options->Get(String::New("promoteLongs"))->ToBoolean()->Value();
-               }
-       }
-
-       // Define pointer to data
-       Local<Object> obj = args[0]->ToObject();
-
-       // Unpack the BSON parser instance
-       BSON *bson = ObjectWrap::Unwrap<BSON>(args.This());
-
-       // If we passed in a buffer, let's unpack it, otherwise let's unpack 
the string
-       if(Buffer::HasInstance(obj))
-       {
-#if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION < 3
-               Local<Object> buffer = ObjectWrap::Unwrap<Buffer>(obj);
-               char* data = buffer->data();
-               size_t length = buffer->length();
-#else
-               char* data = Buffer::Data(obj);
-               size_t length = Buffer::Length(obj);
-#endif
-
-               // Validate that we have at least 5 bytes
-               if(length < 5) return NanThrowError("corrupt bson message < 5 
bytes long");
-
-               try
-               {
-                       BSONDeserializer deserializer(bson, data, length);
-                       // deserializer.promoteLongs = promoteLongs;
-                       
NanReturnValue(deserializer.DeserializeDocument(promoteLongs));
-               }
-               catch(char* exception)
-               {
-                       Local<String> error = String::New(exception);
-                       free(exception);
-                       return NanThrowError(error);
-               }
-
-       }
-       else
-       {
-               // The length of the data for this encoding
-               ssize_t len = DecodeBytes(args[0], BINARY);
-
-               // Validate that we have at least 5 bytes
-               if(len < 5) return NanThrowError("corrupt bson message < 5 
bytes long");
-
-               // Let's define the buffer size
-               char* data = (char *)malloc(len);
-               DecodeWrite(data, len, args[0], BINARY);
-
-               try
-               {
-                       BSONDeserializer deserializer(bson, data, len);
-                       // deserializer.promoteLongs = promoteLongs;
-                       Handle<Value> result = 
deserializer.DeserializeDocument(promoteLongs);
-                       free(data);
-                       NanReturnValue(result);
-
-               }
-               catch(char* exception)
-               {
-                       Local<String> error = String::New(exception);
-                       free(exception);
-                       free(data);
-                       return NanThrowError(error);
-               }
-       }
-}
-
-Local<Object> BSON::GetSerializeObject(const Handle<Value>& argValue)
-{
-       Local<Object> object = argValue->ToObject();
-       if(object->Has(NanPersistentToLocal(_toBSONString)))
-       {
-               const Local<Value>& toBSON = 
object->Get(NanPersistentToLocal(_toBSONString));
-               if(!toBSON->IsFunction()) ThrowAllocatedStringException(64, 
"toBSON is not a function");
-
-               Local<Value> result = 
Local<Function>::Cast(toBSON)->Call(object, 0, NULL);
-               if(!result->IsObject()) ThrowAllocatedStringException(64, 
"toBSON function did not return an object");
-               return result->ToObject();
-       }
-       else
-       {
-               return object;
-       }
-}
-
-NAN_METHOD(BSON::BSONSerialize)
-{
-       NanScope();
-
-       if(args.Length() == 1 && !args[0]->IsObject()) return 
NanThrowError("One, two or tree arguments required - [object] or [object, 
boolean] or [object, boolean, boolean]");
-       if(args.Length() == 2 && !args[0]->IsObject() && !args[1]->IsBoolean()) 
return NanThrowError("One, two or tree arguments required - [object] or 
[object, boolean] or [object, boolean, boolean]");
-       if(args.Length() == 3 && !args[0]->IsObject() && !args[1]->IsBoolean() 
&& !args[2]->IsBoolean()) return NanThrowError("One, two or tree arguments 
required - [object] or [object, boolean] or [object, boolean, boolean]");
-       if(args.Length() == 4 && !args[0]->IsObject() && !args[1]->IsBoolean() 
&& !args[2]->IsBoolean() && !args[3]->IsBoolean()) return NanThrowError("One, 
two or tree arguments required - [object] or [object, boolean] or [object, 
boolean, boolean] or [object, boolean, boolean, boolean]");
-       if(args.Length() > 4) return NanThrowError("One, two, tree or four 
arguments required - [object] or [object, boolean] or [object, boolean, 
boolean] or [object, boolean, boolean, boolean]");
-
-       // Check if we have an array as the object
-       if(args[0]->IsArray()) return NanThrowError("Only javascript objects 
supported");
-
-       // Unpack the BSON parser instance
-       BSON *bson = ObjectWrap::Unwrap<BSON>(args.This());
-
-       // Calculate the total size of the document in binary form to ensure we 
only allocate memory once
-       // With serialize function
-       bool serializeFunctions = (args.Length() >= 4) && 
args[3]->BooleanValue();
-
-       char *serialized_object = NULL;
-       size_t object_size;
-       try
-       {
-               Local<Object> object = bson->GetSerializeObject(args[0]);
-
-               BSONSerializer<CountStream> counter(bson, false, 
serializeFunctions);
-               counter.SerializeDocument(object);
-               object_size = counter.GetSerializeSize();
-
-               // Allocate the memory needed for the serialization
-               serialized_object = (char *)malloc(object_size);
-
-               // Check if we have a boolean value
-               bool checkKeys = args.Length() >= 3 && args[1]->IsBoolean() && 
args[1]->BooleanValue();
-               BSONSerializer<DataStream> data(bson, checkKeys, 
serializeFunctions, serialized_object);
-               data.SerializeDocument(object);
-       }
-       catch(char *err_msg)
-       {
-               free(serialized_object);
-               Local<String> error = String::New(err_msg);
-               free(err_msg);
-               return NanThrowError(error);
-       }
-
-       // If we have 3 arguments
-       if(args.Length() == 3 || args.Length() == 4)
-       {
-               Local<Object> buffer = NanNewBufferHandle(serialized_object, 
object_size);
-               free(serialized_object);
-               NanReturnValue(buffer);
-       }
-       else
-       {
-               Local<Value> bin_value = Encode(serialized_object, object_size, 
BINARY)->ToString();
-               free(serialized_object);
-               NanReturnValue(bin_value);
-       }
-}
-
-NAN_METHOD(BSON::CalculateObjectSize)
-{
-       NanScope();
-       // Ensure we have a valid object
-       if(args.Length() == 1 && !args[0]->IsObject()) return 
NanThrowError("One argument required - [object]");
-       if(args.Length() == 2 && !args[0]->IsObject() && !args[1]->IsBoolean()) 
 return NanThrowError("Two arguments required - [object, boolean]");
-       if(args.Length() > 3) return NanThrowError("One or two arguments 
required - [object] or [object, boolean]");
-
-       // Unpack the BSON parser instance
-       BSON *bson = ObjectWrap::Unwrap<BSON>(args.This());
-       bool serializeFunctions = (args.Length() >= 2) && 
args[1]->BooleanValue();
-       BSONSerializer<CountStream> countSerializer(bson, false, 
serializeFunctions);
-       countSerializer.SerializeDocument(args[0]);
-
-       // Return the object size
-       NanReturnValue(Uint32::New((uint32_t) 
countSerializer.GetSerializeSize()));
-}
-
-NAN_METHOD(BSON::SerializeWithBufferAndIndex)
-{
-       NanScope();
-
-       //BSON.serializeWithBufferAndIndex = function 
serializeWithBufferAndIndex(object, ->, buffer, index) {
-       // Ensure we have the correct values
-       if(args.Length() > 5) return NanThrowError("Four or five parameters 
required [object, boolean, Buffer, int] or [object, boolean, Buffer, int, 
boolean]");
-       if(args.Length() == 4 && !args[0]->IsObject() && !args[1]->IsBoolean() 
&& !Buffer::HasInstance(args[2]) && !args[3]->IsUint32()) return 
NanThrowError("Four parameters required [object, boolean, Buffer, int]");
-       if(args.Length() == 5 && !args[0]->IsObject() && !args[1]->IsBoolean() 
&& !Buffer::HasInstance(args[2]) && !args[3]->IsUint32() && 
!args[4]->IsBoolean()) return NanThrowError("Four parameters required [object, 
boolean, Buffer, int, boolean]");
-
-       uint32_t index;
-       size_t object_size;
-
-       try
-       {
-               BSON *bson = ObjectWrap::Unwrap<BSON>(args.This());
-
-               Local<Object> obj = args[2]->ToObject();
-               char* data = Buffer::Data(obj);
-               size_t length = Buffer::Length(obj);
-
-               index = args[3]->Uint32Value();
-               bool checkKeys = args.Length() >= 4 && args[1]->IsBoolean() && 
args[1]->BooleanValue();
-               bool serializeFunctions = (args.Length() == 5) && 
args[4]->BooleanValue();
-
-               BSONSerializer<DataStream> dataSerializer(bson, checkKeys, 
serializeFunctions, data+index);
-               
dataSerializer.SerializeDocument(bson->GetSerializeObject(args[0]));
-               object_size = dataSerializer.GetSerializeSize();
-
-               if(object_size + index > length) return NanThrowError("Serious 
error - overflowed buffer!!");
-       }
-       catch(char *exception)
-       {
-               Local<String> error = String::New(exception);
-               free(exception);
-                return NanThrowError(error);
-       }
-
-       NanReturnValue(Uint32::New((uint32_t) (index + object_size - 1)));
-}
-
-NAN_METHOD(BSON::BSONDeserializeStream)
-{
-       NanScope();
-
-       // At least 3 arguments required
-       if(args.Length() < 5) return NanThrowError("Arguments required 
(Buffer(data), Number(index in data), Number(number of documents to 
deserialize), Array(results), Number(index in the array), Object(optional))");
-
-       // If the number of argumets equals 3
-       if(args.Length() >= 5)
-       {
-               if(!Buffer::HasInstance(args[0])) return NanThrowError("First 
argument must be Buffer instance");
-               if(!args[1]->IsUint32()) return NanThrowError("Second argument 
must be a positive index number");
-               if(!args[2]->IsUint32()) return NanThrowError("Third argument 
must be a positive number of documents to deserialize");
-               if(!args[3]->IsArray()) return NanThrowError("Fourth argument 
must be an array the size of documents to deserialize");
-               if(!args[4]->IsUint32()) return NanThrowError("Sixth argument 
must be a positive index number");
-       }
-
-       // If we have 4 arguments
-       if(args.Length() == 6 && !args[5]->IsObject()) return 
NanThrowError("Fifth argument must be an object with options");
-
-       // Define pointer to data
-       Local<Object> obj = args[0]->ToObject();
-       uint32_t numberOfDocuments = args[2]->Uint32Value();
-       uint32_t index = args[1]->Uint32Value();
-       uint32_t resultIndex = args[4]->Uint32Value();
-       bool promoteLongs = true;
-
-       // Check for the value promoteLongs in the options object
-       if(args.Length() == 6) {
-               Local<Object> options = args[5]->ToObject();
-
-               // Check if we have the promoteLong variable
-               if(options->Has(String::New("promoteLongs"))) {
-                       promoteLongs = 
options->Get(String::New("promoteLongs"))->ToBoolean()->Value();
-               }
-       }
-
-       // Unpack the BSON parser instance
-       BSON *bson = ObjectWrap::Unwrap<BSON>(args.This());
-
-       // Unpack the buffer variable
-#if NODE_MAJOR_VERSION == 0 && NODE_MINOR_VERSION < 3
-       Local<Object> buffer = ObjectWrap::Unwrap<Buffer>(obj);
-       char* data = buffer->data();
-       size_t length = buffer->length();
-#else
-       char* data = Buffer::Data(obj);
-       size_t length = Buffer::Length(obj);
-#endif
-
-       // Fetch the documents
-       Local<Object> documents = args[3]->ToObject();
-
-       BSONDeserializer deserializer(bson, data+index, length-index);
-       for(uint32_t i = 0; i < numberOfDocuments; i++)
-       {
-               try
-               {
-                       documents->Set(i + resultIndex, 
deserializer.DeserializeDocument(promoteLongs));
-               }
-               catch (char* exception)
-               {
-                       Local<String> error = String::New(exception);
-                       free(exception);
-                       return NanThrowError(error);
-               }
-       }
-
-       // Return new index of parsing
-       NanReturnValue(Uint32::New((uint32_t) (index + 
deserializer.GetSerializeSize())));
-}
-
-// Exporting function
-extern "C" void init(Handle<Object> target)
-{
-       NanScope();
-       BSON::Initialize(target);
-}
-
-NODE_MODULE(bson, BSON::Initialize);

Reply via email to