Fixed #1 - Fixed the whatsnew-** script for loading release notes into builds
Added test to ensure that release notes are parsed properly Updated to latest dependencies to fix security vulnerability Updated GH Actions Workflow to run test before updating tag Updated README.md to reflect proper whatsnew documentation.
This commit is contained in:
10
node_modules/fsevents/binding.gyp
generated
vendored
10
node_modules/fsevents/binding.gyp
generated
vendored
@@ -5,7 +5,7 @@
|
||||
"conditions": [
|
||||
['OS=="mac"', {
|
||||
"targets": [{
|
||||
"target_name": "<(module_name)",
|
||||
"target_name": "fse",
|
||||
"sources": ["fsevents.cc"],
|
||||
"xcode_settings": {
|
||||
"OTHER_LDFLAGS": [
|
||||
@@ -15,14 +15,6 @@
|
||||
"include_dirs": [
|
||||
"<!(node -e \"require('nan')\")"
|
||||
]
|
||||
}, {
|
||||
"target_name": "action_after_build",
|
||||
"type": "none",
|
||||
"dependencies": ["<(module_name)"],
|
||||
"copies": [{
|
||||
"files": ["<(PRODUCT_DIR)/<(module_name).node"],
|
||||
"destination": "<(module_path)"
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
]
|
||||
|
||||
55
node_modules/fsevents/build/.target.mk
generated
vendored
Normal file
55
node_modules/fsevents/build/.target.mk
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
# This file is generated by gyp; do not edit.
|
||||
|
||||
TOOLSET := target
|
||||
TARGET :=
|
||||
### Rules for final target.
|
||||
LDFLAGS_Debug := \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-arch x86_64 \
|
||||
-L$(builddir) \
|
||||
-stdlib=libc++
|
||||
|
||||
LIBTOOLFLAGS_Debug := \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first
|
||||
|
||||
LDFLAGS_Release := \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-arch x86_64 \
|
||||
-L$(builddir) \
|
||||
-stdlib=libc++
|
||||
|
||||
LIBTOOLFLAGS_Release := \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first
|
||||
|
||||
LIBS :=
|
||||
|
||||
$(builddir)/.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
|
||||
$(builddir)/.node: LIBS := $(LIBS)
|
||||
$(builddir)/.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
|
||||
$(builddir)/.node: TOOLSET := $(TOOLSET)
|
||||
$(builddir)/.node: FORCE_DO_CMD
|
||||
$(call do_cmd,solink_module)
|
||||
|
||||
all_deps += $(builddir)/.node
|
||||
# Add target alias
|
||||
.PHONY:
|
||||
: $(builddir)/.node
|
||||
|
||||
# Short alias for building this executable.
|
||||
.PHONY: .node
|
||||
.node: $(builddir)/.node
|
||||
|
||||
# Add executable to "all" target.
|
||||
.PHONY: all
|
||||
all: $(builddir)/.node
|
||||
|
||||
347
node_modules/fsevents/build/Makefile
generated
vendored
Normal file
347
node_modules/fsevents/build/Makefile
generated
vendored
Normal file
@@ -0,0 +1,347 @@
|
||||
# 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 ?= $(CPPFLAGS) $(CFLAGS)
|
||||
CXX.target ?= $(CXX)
|
||||
CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS)
|
||||
LINK.target ?= $(LINK)
|
||||
LDFLAGS.target ?= $(LDFLAGS)
|
||||
AR.target ?= $(AR)
|
||||
|
||||
# C++ apps need to be linked with g++.
|
||||
LINK ?= $(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 ?= $(CPPFLAGS_host) $(CFLAGS_host)
|
||||
CXX.host ?= g++
|
||||
CXXFLAGS.host ?= $(CPPFLAGS_host) $(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 ^,.target.mk)))),)
|
||||
include .target.mk
|
||||
endif
|
||||
ifeq ($(strip $(foreach prefix,$(NO_LOAD),\
|
||||
$(findstring $(join ^,$(prefix)),\
|
||||
$(join ^,fse.target.mk)))),)
|
||||
include fse.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/drew.heavner/Documents/Github/upload-google-play/node_modules/fsevents/build/config.gypi -I/usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/common.gypi "--depth=." "-Goutput_dir=." "--generator-output=build" "-Dlibrary=shared_library" "-Dvisibility=default" "-Dnode_root_dir=/Users/drew.heavner/Library/Caches/node-gyp/12.8.1" "-Dnode_gyp_dir=/usr/local/lib/node_modules/npm/node_modules/node-gyp" "-Dnode_lib_file=/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/<(target_arch)/node.lib" "-Dmodule_root_dir=/Users/drew.heavner/Documents/Github/upload-google-play/node_modules/fsevents" "-Dnode_engine=v8" binding.gyp
|
||||
Makefile: $(srcdir)/../../../../../Library/Caches/node-gyp/12.8.1/include/node/common.gypi $(srcdir)/../../../../../../../usr/local/lib/node_modules/npm/node_modules/node-gyp/addon.gypi $(srcdir)/build/config.gypi $(srcdir)/binding.gyp
|
||||
$(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
|
||||
1
node_modules/fsevents/build/Release/.deps/Release/.node.d
generated
vendored
Normal file
1
node_modules/fsevents/build/Release/.deps/Release/.node.d
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
cmd_Release/.node := c++ -bundle -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.10 -arch x86_64 -L./Release -stdlib=libc++ -o Release/.node
|
||||
1
node_modules/fsevents/build/Release/.deps/Release/fse.node.d
generated
vendored
Normal file
1
node_modules/fsevents/build/Release/.deps/Release/fse.node.d
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
cmd_Release/fse.node := c++ -bundle -framework CoreFoundation -framework CoreServices -undefined dynamic_lookup -Wl,-no_pie -Wl,-search_paths_first -mmacosx-version-min=10.10 -arch x86_64 -L./Release -stdlib=libc++ -o Release/fse.node Release/obj.target/fse/fsevents.o
|
||||
61
node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d
generated
vendored
Normal file
61
node_modules/fsevents/build/Release/.deps/Release/obj.target/fse/fsevents.o.d
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
cmd_Release/obj.target/fse/fsevents.o := c++ '-DNODE_GYP_MODULE_NAME=fse' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DBUILDING_NODE_EXTENSION' -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/src -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/config -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/openssl/include -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/uv/include -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/zlib -I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/v8/include -I../../nan -Os -gdwarf-2 -mmacosx-version-min=10.10 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++1y -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/fse/fsevents.o.d.raw -c -o Release/obj.target/fse/fsevents.o ../fsevents.cc
|
||||
Release/obj.target/fse/fsevents.o: ../fsevents.cc ../../nan/nan.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_version.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/errno.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/version.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/unix.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/threadpool.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/darwin.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-internal.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-version.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8config.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-platform.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_buffer.h \
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_object_wrap.h \
|
||||
../../nan/nan_callbacks.h ../../nan/nan_callbacks_12_inl.h \
|
||||
../../nan/nan_maybe_43_inl.h ../../nan/nan_converters.h \
|
||||
../../nan/nan_converters_43_inl.h ../../nan/nan_new.h \
|
||||
../../nan/nan_implementation_12_inl.h \
|
||||
../../nan/nan_persistent_12_inl.h ../../nan/nan_weak.h \
|
||||
../../nan/nan_object_wrap.h ../../nan/nan_private.h \
|
||||
../../nan/nan_typedarray_contents.h ../../nan/nan_json.h \
|
||||
../src/storage.cc ../src/async.cc ../src/thread.cc ../src/constants.cc \
|
||||
../src/methods.cc
|
||||
../fsevents.cc:
|
||||
../../nan/nan.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_version.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/errno.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/version.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/unix.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/threadpool.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/uv/darwin.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-internal.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-version.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8config.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/v8-platform.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_buffer.h:
|
||||
/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node/node_object_wrap.h:
|
||||
../../nan/nan_callbacks.h:
|
||||
../../nan/nan_callbacks_12_inl.h:
|
||||
../../nan/nan_maybe_43_inl.h:
|
||||
../../nan/nan_converters.h:
|
||||
../../nan/nan_converters_43_inl.h:
|
||||
../../nan/nan_new.h:
|
||||
../../nan/nan_implementation_12_inl.h:
|
||||
../../nan/nan_persistent_12_inl.h:
|
||||
../../nan/nan_weak.h:
|
||||
../../nan/nan_object_wrap.h:
|
||||
../../nan/nan_private.h:
|
||||
../../nan/nan_typedarray_contents.h:
|
||||
../../nan/nan_json.h:
|
||||
../src/storage.cc:
|
||||
../src/async.cc:
|
||||
../src/thread.cc:
|
||||
../src/constants.cc:
|
||||
../src/methods.cc:
|
||||
BIN
node_modules/fsevents/build/Release/.node
generated
vendored
Executable file
BIN
node_modules/fsevents/build/Release/.node
generated
vendored
Executable file
Binary file not shown.
BIN
node_modules/fsevents/build/Release/fse.node
generated
vendored
Executable file
BIN
node_modules/fsevents/build/Release/fse.node
generated
vendored
Executable file
Binary file not shown.
BIN
node_modules/fsevents/build/Release/obj.target/fse/fsevents.o
generated
vendored
Normal file
BIN
node_modules/fsevents/build/Release/obj.target/fse/fsevents.o
generated
vendored
Normal file
Binary file not shown.
6
node_modules/fsevents/build/binding.Makefile
generated
vendored
Normal file
6
node_modules/fsevents/build/binding.Makefile
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# This file is generated by gyp; do not edit.
|
||||
|
||||
export builddir_name ?= ./build/.
|
||||
.PHONY: all
|
||||
all:
|
||||
$(MAKE) fse
|
||||
195
node_modules/fsevents/build/config.gypi
generated
vendored
Normal file
195
node_modules/fsevents/build/config.gypi
generated
vendored
Normal file
@@ -0,0 +1,195 @@
|
||||
# Do not edit. File was generated by node-gyp's "configure" step
|
||||
{
|
||||
"target_defaults": {
|
||||
"cflags": [],
|
||||
"default_configuration": "Release",
|
||||
"defines": [],
|
||||
"include_dirs": [],
|
||||
"libraries": []
|
||||
},
|
||||
"variables": {
|
||||
"asan": 0,
|
||||
"build_v8_with_gn": "false",
|
||||
"coverage": "false",
|
||||
"debug_nghttp2": "false",
|
||||
"enable_lto": "false",
|
||||
"enable_pgo_generate": "false",
|
||||
"enable_pgo_use": "false",
|
||||
"force_dynamic_crt": 0,
|
||||
"host_arch": "x64",
|
||||
"icu_gyp_path": "tools/icu/icu-system.gyp",
|
||||
"icu_small": "false",
|
||||
"icu_ver_major": "64",
|
||||
"is_debug": 0,
|
||||
"llvm_version": "0",
|
||||
"napi_build_version": "4",
|
||||
"node_byteorder": "little",
|
||||
"node_code_cache": "yes",
|
||||
"node_debug_lib": "false",
|
||||
"node_enable_d8": "false",
|
||||
"node_install_npm": "false",
|
||||
"node_module_version": 72,
|
||||
"node_no_browser_globals": "false",
|
||||
"node_prefix": "/usr/local/Cellar/node/12.8.1",
|
||||
"node_release_urlbase": "",
|
||||
"node_report": "true",
|
||||
"node_shared": "false",
|
||||
"node_shared_cares": "false",
|
||||
"node_shared_http_parser": "false",
|
||||
"node_shared_libuv": "false",
|
||||
"node_shared_nghttp2": "false",
|
||||
"node_shared_openssl": "false",
|
||||
"node_shared_zlib": "false",
|
||||
"node_tag": "",
|
||||
"node_target_type": "executable",
|
||||
"node_use_bundled_v8": "true",
|
||||
"node_use_dtrace": "true",
|
||||
"node_use_etw": "false",
|
||||
"node_use_large_pages": "false",
|
||||
"node_use_node_snapshot": "true",
|
||||
"node_use_openssl": "true",
|
||||
"node_use_v8_platform": "true",
|
||||
"node_with_ltcg": "false",
|
||||
"node_without_node_options": "false",
|
||||
"openssl_fips": "",
|
||||
"openssl_is_fips": "false",
|
||||
"shlib_suffix": "72.dylib",
|
||||
"target_arch": "x64",
|
||||
"v8_enable_gdbjit": 0,
|
||||
"v8_enable_i18n_support": 1,
|
||||
"v8_enable_inspector": 1,
|
||||
"v8_no_strict_aliasing": 1,
|
||||
"v8_optimized_debug": 1,
|
||||
"v8_promise_internal_field_count": 1,
|
||||
"v8_random_seed": 0,
|
||||
"v8_trace_maps": 0,
|
||||
"v8_use_siphash": 1,
|
||||
"v8_use_snapshot": 1,
|
||||
"want_separate_host_toolset": 0,
|
||||
"xcode_version": "10.0",
|
||||
"nodedir": "/Users/drew.heavner/Library/Caches/node-gyp/12.8.1",
|
||||
"standalone_static_library": 1,
|
||||
"dry_run": "",
|
||||
"legacy_bundling": "",
|
||||
"save_dev": "",
|
||||
"browser": "",
|
||||
"commit_hooks": "true",
|
||||
"only": "",
|
||||
"viewer": "man",
|
||||
"also": "",
|
||||
"rollback": "true",
|
||||
"sign_git_commit": "",
|
||||
"audit": "true",
|
||||
"usage": "",
|
||||
"globalignorefile": "/usr/local/etc/npmignore",
|
||||
"init_author_url": "",
|
||||
"maxsockets": "50",
|
||||
"shell": "/bin/zsh",
|
||||
"metrics_registry": "https://registry.npmjs.org/",
|
||||
"parseable": "",
|
||||
"shrinkwrap": "true",
|
||||
"init_license": "ISC",
|
||||
"timing": "",
|
||||
"if_present": "",
|
||||
"cache_max": "Infinity",
|
||||
"init_author_email": "",
|
||||
"sign_git_tag": "",
|
||||
"cert": "",
|
||||
"git_tag_version": "true",
|
||||
"local_address": "",
|
||||
"long": "",
|
||||
"preid": "",
|
||||
"fetch_retries": "2",
|
||||
"noproxy": "",
|
||||
"registry": "https://registry.npmjs.org/",
|
||||
"key": "",
|
||||
"message": "%s",
|
||||
"versions": "",
|
||||
"globalconfig": "/usr/local/etc/npmrc",
|
||||
"always_auth": "",
|
||||
"logs_max": "10",
|
||||
"prefer_online": "",
|
||||
"cache_lock_retries": "10",
|
||||
"global_style": "",
|
||||
"update_notifier": "true",
|
||||
"audit_level": "low",
|
||||
"heading": "npm",
|
||||
"fetch_retry_mintimeout": "10000",
|
||||
"offline": "",
|
||||
"read_only": "",
|
||||
"searchlimit": "20",
|
||||
"access": "",
|
||||
"json": "",
|
||||
"allow_same_version": "",
|
||||
"description": "true",
|
||||
"engine_strict": "",
|
||||
"https_proxy": "",
|
||||
"init_module": "/Users/drew.heavner/.npm-init.js",
|
||||
"userconfig": "/Users/drew.heavner/.npmrc",
|
||||
"cidr": "",
|
||||
"node_version": "12.8.1",
|
||||
"user": "",
|
||||
"auth_type": "legacy",
|
||||
"editor": "vi",
|
||||
"ignore_prepublish": "",
|
||||
"save": "true",
|
||||
"script_shell": "",
|
||||
"tag": "latest",
|
||||
"before": "",
|
||||
"global": "",
|
||||
"progress": "true",
|
||||
"ham_it_up": "",
|
||||
"optional": "true",
|
||||
"searchstaleness": "900",
|
||||
"bin_links": "true",
|
||||
"force": "",
|
||||
"save_prod": "",
|
||||
"searchopts": "",
|
||||
"depth": "Infinity",
|
||||
"node_gyp": "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",
|
||||
"rebuild_bundle": "true",
|
||||
"sso_poll_frequency": "500",
|
||||
"unicode": "true",
|
||||
"fetch_retry_maxtimeout": "60000",
|
||||
"ca": "",
|
||||
"save_prefix": "^",
|
||||
"scripts_prepend_node_path": "warn-only",
|
||||
"sso_type": "oauth",
|
||||
"strict_ssl": "true",
|
||||
"tag_version_prefix": "v",
|
||||
"dev": "",
|
||||
"fetch_retry_factor": "10",
|
||||
"group": "20",
|
||||
"save_exact": "",
|
||||
"cache_lock_stale": "60000",
|
||||
"prefer_offline": "",
|
||||
"version": "",
|
||||
"cache_min": "10",
|
||||
"otp": "",
|
||||
"cache": "/Users/drew.heavner/.npm",
|
||||
"searchexclude": "",
|
||||
"color": "true",
|
||||
"package_lock": "true",
|
||||
"fund": "true",
|
||||
"package_lock_only": "",
|
||||
"save_optional": "",
|
||||
"user_agent": "npm/6.13.7 node/v12.8.1 darwin x64",
|
||||
"ignore_scripts": "",
|
||||
"cache_lock_wait": "10000",
|
||||
"production": "",
|
||||
"save_bundle": "",
|
||||
"send_metrics": "",
|
||||
"init_version": "1.0.0",
|
||||
"node_options": "",
|
||||
"umask": "0022",
|
||||
"scope": "",
|
||||
"git": "git",
|
||||
"init_author_name": "",
|
||||
"onload_script": "",
|
||||
"tmp": "/var/folders/19/z4b22s012xv4nc3bdpky87k80000gn/T",
|
||||
"unsafe_perm": "true",
|
||||
"prefix": "/usr/local",
|
||||
"format_package_lock": "true",
|
||||
"link": ""
|
||||
}
|
||||
}
|
||||
196
node_modules/fsevents/build/fse.target.mk
generated
vendored
Normal file
196
node_modules/fsevents/build/fse.target.mk
generated
vendored
Normal file
@@ -0,0 +1,196 @@
|
||||
# This file is generated by gyp; do not edit.
|
||||
|
||||
TOOLSET := target
|
||||
TARGET := fse
|
||||
DEFS_Debug := \
|
||||
'-DNODE_GYP_MODULE_NAME=fse' \
|
||||
'-DUSING_UV_SHARED=1' \
|
||||
'-DUSING_V8_SHARED=1' \
|
||||
'-DV8_DEPRECATION_WARNINGS=1' \
|
||||
'-DV8_DEPRECATION_WARNINGS' \
|
||||
'-DV8_IMMINENT_DEPRECATION_WARNINGS' \
|
||||
'-D_DARWIN_USE_64_BIT_INODE=1' \
|
||||
'-D_LARGEFILE_SOURCE' \
|
||||
'-D_FILE_OFFSET_BITS=64' \
|
||||
'-DOPENSSL_NO_PINSHARED' \
|
||||
'-DOPENSSL_THREADS' \
|
||||
'-DBUILDING_NODE_EXTENSION' \
|
||||
'-DDEBUG' \
|
||||
'-D_DEBUG' \
|
||||
'-DV8_ENABLE_CHECKS'
|
||||
|
||||
# Flags passed to all source files.
|
||||
CFLAGS_Debug := \
|
||||
-O0 \
|
||||
-gdwarf-2 \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-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 := \
|
||||
-std=gnu++1y \
|
||||
-stdlib=libc++ \
|
||||
-fno-rtti \
|
||||
-fno-exceptions \
|
||||
-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/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/src \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/config \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/openssl/include \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/uv/include \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/zlib \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/v8/include \
|
||||
-I$(srcdir)/../nan
|
||||
|
||||
DEFS_Release := \
|
||||
'-DNODE_GYP_MODULE_NAME=fse' \
|
||||
'-DUSING_UV_SHARED=1' \
|
||||
'-DUSING_V8_SHARED=1' \
|
||||
'-DV8_DEPRECATION_WARNINGS=1' \
|
||||
'-DV8_DEPRECATION_WARNINGS' \
|
||||
'-DV8_IMMINENT_DEPRECATION_WARNINGS' \
|
||||
'-D_DARWIN_USE_64_BIT_INODE=1' \
|
||||
'-D_LARGEFILE_SOURCE' \
|
||||
'-D_FILE_OFFSET_BITS=64' \
|
||||
'-DOPENSSL_NO_PINSHARED' \
|
||||
'-DOPENSSL_THREADS' \
|
||||
'-DBUILDING_NODE_EXTENSION'
|
||||
|
||||
# Flags passed to all source files.
|
||||
CFLAGS_Release := \
|
||||
-Os \
|
||||
-gdwarf-2 \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-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 := \
|
||||
-std=gnu++1y \
|
||||
-stdlib=libc++ \
|
||||
-fno-rtti \
|
||||
-fno-exceptions \
|
||||
-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/drew.heavner/Library/Caches/node-gyp/12.8.1/include/node \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/src \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/config \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/openssl/openssl/include \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/uv/include \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/zlib \
|
||||
-I/Users/drew.heavner/Library/Caches/node-gyp/12.8.1/deps/v8/include \
|
||||
-I$(srcdir)/../nan
|
||||
|
||||
OBJS := \
|
||||
$(obj).target/$(TARGET)/fsevents.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 := \
|
||||
-framework CoreFoundation -framework CoreServices \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-arch x86_64 \
|
||||
-L$(builddir) \
|
||||
-stdlib=libc++
|
||||
|
||||
LIBTOOLFLAGS_Debug := \
|
||||
-framework CoreFoundation -framework CoreServices \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first
|
||||
|
||||
LDFLAGS_Release := \
|
||||
-framework CoreFoundation -framework CoreServices \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first \
|
||||
-mmacosx-version-min=10.10 \
|
||||
-arch x86_64 \
|
||||
-L$(builddir) \
|
||||
-stdlib=libc++
|
||||
|
||||
LIBTOOLFLAGS_Release := \
|
||||
-framework CoreFoundation -framework CoreServices \
|
||||
-undefined dynamic_lookup \
|
||||
-Wl,-no_pie \
|
||||
-Wl,-search_paths_first
|
||||
|
||||
LIBS :=
|
||||
|
||||
$(builddir)/fse.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
|
||||
$(builddir)/fse.node: LIBS := $(LIBS)
|
||||
$(builddir)/fse.node: GYP_LIBTOOLFLAGS := $(LIBTOOLFLAGS_$(BUILDTYPE))
|
||||
$(builddir)/fse.node: TOOLSET := $(TOOLSET)
|
||||
$(builddir)/fse.node: $(OBJS) FORCE_DO_CMD
|
||||
$(call do_cmd,solink_module)
|
||||
|
||||
all_deps += $(builddir)/fse.node
|
||||
# Add target alias
|
||||
.PHONY: fse
|
||||
fse: $(builddir)/fse.node
|
||||
|
||||
# Short alias for building this executable.
|
||||
.PHONY: fse.node
|
||||
fse.node: $(builddir)/fse.node
|
||||
|
||||
# Add executable to "all" target.
|
||||
.PHONY: all
|
||||
all: $(builddir)/fse.node
|
||||
|
||||
615
node_modules/fsevents/build/gyp-mac-tool
generated
vendored
Executable file
615
node_modules/fsevents/build/gyp-mac-tool
generated
vendored
Executable file
@@ -0,0 +1,615 @@
|
||||
#!/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.
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import fcntl
|
||||
import fnmatch
|
||||
import glob
|
||||
import json
|
||||
import os
|
||||
import plistlib
|
||||
import re
|
||||
import shutil
|
||||
import string
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
PY3 = bytes != str
|
||||
|
||||
|
||||
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, convert_to_binary):
|
||||
"""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, convert_to_binary)
|
||||
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 _ConvertToBinary(self, dest):
|
||||
subprocess.check_call([
|
||||
'xcrun', 'plutil', '-convert', 'binary1', '-o', dest, dest])
|
||||
|
||||
def _CopyStringsFile(self, source, dest, convert_to_binary):
|
||||
"""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()
|
||||
|
||||
if convert_to_binary == 'True':
|
||||
self._ConvertToBinary(dest)
|
||||
|
||||
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 Exception:
|
||||
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, convert_to_binary, *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(r'[/\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)
|
||||
|
||||
if convert_to_binary == 'True':
|
||||
self._ConvertToBinary(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$')
|
||||
libtool_re5 = re.compile(
|
||||
r'^.*libtool: warning for library: ' +
|
||||
r'.* the table of contents is empty ' +
|
||||
r'\(no object file members in the library define global symbols\)$')
|
||||
env = os.environ.copy()
|
||||
# Ref:
|
||||
# http://www.opensource.apple.com/source/cctools/cctools-809/misc/libtool.c
|
||||
# The problem with this flag is that it resets the file mtime on the file to
|
||||
# epoch=0, e.g. 1970-1-1 or 1969-12-31 depending on timezone.
|
||||
env['ZERO_AR_DATE'] = '1'
|
||||
libtoolout = subprocess.Popen(cmd_list, stderr=subprocess.PIPE, env=env)
|
||||
_, err = libtoolout.communicate()
|
||||
if PY3:
|
||||
err = err.decode('utf-8')
|
||||
for line in err.splitlines():
|
||||
if not libtool_re.match(line) and not libtool_re5.match(line):
|
||||
print(line, file=sys.stderr)
|
||||
# Unconditionally touch the output .a file on the command line if present
|
||||
# and the command succeeded. A bit hacky.
|
||||
if not libtoolout.returncode:
|
||||
for i in range(len(cmd_list) - 1):
|
||||
if cmd_list[i] == "-o" and cmd_list[i+1].endswith('.a'):
|
||||
os.utime(cmd_list[i+1], None)
|
||||
break
|
||||
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)
|
||||
|
||||
def ExecCompileXcassets(self, keys, *inputs):
|
||||
"""Compiles multiple .xcassets files into a single .car file.
|
||||
|
||||
This invokes 'actool' to compile all the inputs .xcassets files. The
|
||||
|keys| arguments is a json-encoded dictionary of extra arguments to
|
||||
pass to 'actool' when the asset catalogs contains an application icon
|
||||
or a launch image.
|
||||
|
||||
Note that 'actool' does not create the Assets.car file if the asset
|
||||
catalogs does not contains imageset.
|
||||
"""
|
||||
command_line = [
|
||||
'xcrun', 'actool', '--output-format', 'human-readable-text',
|
||||
'--compress-pngs', '--notices', '--warnings', '--errors',
|
||||
]
|
||||
is_iphone_target = 'IPHONEOS_DEPLOYMENT_TARGET' in os.environ
|
||||
if is_iphone_target:
|
||||
platform = os.environ['CONFIGURATION'].split('-')[-1]
|
||||
if platform not in ('iphoneos', 'iphonesimulator'):
|
||||
platform = 'iphonesimulator'
|
||||
command_line.extend([
|
||||
'--platform', platform, '--target-device', 'iphone',
|
||||
'--target-device', 'ipad', '--minimum-deployment-target',
|
||||
os.environ['IPHONEOS_DEPLOYMENT_TARGET'], '--compile',
|
||||
os.path.abspath(os.environ['CONTENTS_FOLDER_PATH']),
|
||||
])
|
||||
else:
|
||||
command_line.extend([
|
||||
'--platform', 'macosx', '--target-device', 'mac',
|
||||
'--minimum-deployment-target', os.environ['MACOSX_DEPLOYMENT_TARGET'],
|
||||
'--compile',
|
||||
os.path.abspath(os.environ['UNLOCALIZED_RESOURCES_FOLDER_PATH']),
|
||||
])
|
||||
if keys:
|
||||
keys = json.loads(keys)
|
||||
for key, value in keys.items():
|
||||
arg_name = '--' + key
|
||||
if isinstance(value, bool):
|
||||
if value:
|
||||
command_line.append(arg_name)
|
||||
elif isinstance(value, list):
|
||||
for v in value:
|
||||
command_line.append(arg_name)
|
||||
command_line.append(str(v))
|
||||
else:
|
||||
command_line.append(arg_name)
|
||||
command_line.append(str(value))
|
||||
# Note: actool crashes if inputs path are relative, so use os.path.abspath
|
||||
# to get absolute path name for inputs.
|
||||
command_line.extend(map(os.path.abspath, inputs))
|
||||
subprocess.check_call(command_line)
|
||||
|
||||
def ExecMergeInfoPlist(self, output, *inputs):
|
||||
"""Merge multiple .plist files into a single .plist file."""
|
||||
merged_plist = {}
|
||||
for path in inputs:
|
||||
plist = self._LoadPlistMaybeBinary(path)
|
||||
self._MergePlist(merged_plist, plist)
|
||||
plistlib.writePlist(merged_plist, output)
|
||||
|
||||
def ExecCodeSignBundle(self, key, resource_rules, entitlements, provisioning):
|
||||
"""Code sign a bundle.
|
||||
|
||||
This function tries to code sign an iOS bundle, following the same
|
||||
algorithm as Xcode:
|
||||
1. copy ResourceRules.plist from the user or the SDK into the bundle,
|
||||
2. pick the provisioning profile that best match the bundle identifier,
|
||||
and copy it into the bundle as embedded.mobileprovision,
|
||||
3. copy Entitlements.plist from user or SDK next to the bundle,
|
||||
4. code sign the bundle.
|
||||
"""
|
||||
resource_rules_path = self._InstallResourceRules(resource_rules)
|
||||
substitutions, overrides = self._InstallProvisioningProfile(
|
||||
provisioning, self._GetCFBundleIdentifier())
|
||||
entitlements_path = self._InstallEntitlements(
|
||||
entitlements, substitutions, overrides)
|
||||
subprocess.check_call([
|
||||
'codesign', '--force', '--sign', key, '--resource-rules',
|
||||
resource_rules_path, '--entitlements', entitlements_path,
|
||||
os.path.join(
|
||||
os.environ['TARGET_BUILD_DIR'],
|
||||
os.environ['FULL_PRODUCT_NAME'])])
|
||||
|
||||
def _InstallResourceRules(self, resource_rules):
|
||||
"""Installs ResourceRules.plist from user or SDK into the bundle.
|
||||
|
||||
Args:
|
||||
resource_rules: string, optional, path to the ResourceRules.plist file
|
||||
to use, default to "${SDKROOT}/ResourceRules.plist"
|
||||
|
||||
Returns:
|
||||
Path to the copy of ResourceRules.plist into the bundle.
|
||||
"""
|
||||
source_path = resource_rules
|
||||
target_path = os.path.join(
|
||||
os.environ['BUILT_PRODUCTS_DIR'],
|
||||
os.environ['CONTENTS_FOLDER_PATH'],
|
||||
'ResourceRules.plist')
|
||||
if not source_path:
|
||||
source_path = os.path.join(
|
||||
os.environ['SDKROOT'], 'ResourceRules.plist')
|
||||
shutil.copy2(source_path, target_path)
|
||||
return target_path
|
||||
|
||||
def _InstallProvisioningProfile(self, profile, bundle_identifier):
|
||||
"""Installs embedded.mobileprovision into the bundle.
|
||||
|
||||
Args:
|
||||
profile: string, optional, short name of the .mobileprovision file
|
||||
to use, if empty or the file is missing, the best file installed
|
||||
will be used
|
||||
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
||||
|
||||
Returns:
|
||||
A tuple containing two dictionary: variables substitutions and values
|
||||
to overrides when generating the entitlements file.
|
||||
"""
|
||||
source_path, provisioning_data, team_id = self._FindProvisioningProfile(
|
||||
profile, bundle_identifier)
|
||||
target_path = os.path.join(
|
||||
os.environ['BUILT_PRODUCTS_DIR'],
|
||||
os.environ['CONTENTS_FOLDER_PATH'],
|
||||
'embedded.mobileprovision')
|
||||
shutil.copy2(source_path, target_path)
|
||||
substitutions = self._GetSubstitutions(bundle_identifier, team_id + '.')
|
||||
return substitutions, provisioning_data['Entitlements']
|
||||
|
||||
def _FindProvisioningProfile(self, profile, bundle_identifier):
|
||||
"""Finds the .mobileprovision file to use for signing the bundle.
|
||||
|
||||
Checks all the installed provisioning profiles (or if the user specified
|
||||
the PROVISIONING_PROFILE variable, only consult it) and select the most
|
||||
specific that correspond to the bundle identifier.
|
||||
|
||||
Args:
|
||||
profile: string, optional, short name of the .mobileprovision file
|
||||
to use, if empty or the file is missing, the best file installed
|
||||
will be used
|
||||
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
||||
|
||||
Returns:
|
||||
A tuple of the path to the selected provisioning profile, the data of
|
||||
the embedded plist in the provisioning profile and the team identifier
|
||||
to use for code signing.
|
||||
|
||||
Raises:
|
||||
SystemExit: if no .mobileprovision can be used to sign the bundle.
|
||||
"""
|
||||
profiles_dir = os.path.join(
|
||||
os.environ['HOME'], 'Library', 'MobileDevice', 'Provisioning Profiles')
|
||||
if not os.path.isdir(profiles_dir):
|
||||
print('cannot find mobile provisioning for %s' % (bundle_identifier), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
provisioning_profiles = None
|
||||
if profile:
|
||||
profile_path = os.path.join(profiles_dir, profile + '.mobileprovision')
|
||||
if os.path.exists(profile_path):
|
||||
provisioning_profiles = [profile_path]
|
||||
if not provisioning_profiles:
|
||||
provisioning_profiles = glob.glob(
|
||||
os.path.join(profiles_dir, '*.mobileprovision'))
|
||||
valid_provisioning_profiles = {}
|
||||
for profile_path in provisioning_profiles:
|
||||
profile_data = self._LoadProvisioningProfile(profile_path)
|
||||
app_id_pattern = profile_data.get(
|
||||
'Entitlements', {}).get('application-identifier', '')
|
||||
for team_identifier in profile_data.get('TeamIdentifier', []):
|
||||
app_id = '%s.%s' % (team_identifier, bundle_identifier)
|
||||
if fnmatch.fnmatch(app_id, app_id_pattern):
|
||||
valid_provisioning_profiles[app_id_pattern] = (
|
||||
profile_path, profile_data, team_identifier)
|
||||
if not valid_provisioning_profiles:
|
||||
print('cannot find mobile provisioning for %s' % (bundle_identifier), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
# If the user has multiple provisioning profiles installed that can be
|
||||
# used for ${bundle_identifier}, pick the most specific one (ie. the
|
||||
# provisioning profile whose pattern is the longest).
|
||||
selected_key = max(valid_provisioning_profiles, key=lambda v: len(v))
|
||||
return valid_provisioning_profiles[selected_key]
|
||||
|
||||
def _LoadProvisioningProfile(self, profile_path):
|
||||
"""Extracts the plist embedded in a provisioning profile.
|
||||
|
||||
Args:
|
||||
profile_path: string, path to the .mobileprovision file
|
||||
|
||||
Returns:
|
||||
Content of the plist embedded in the provisioning profile as a dictionary.
|
||||
"""
|
||||
with tempfile.NamedTemporaryFile() as temp:
|
||||
subprocess.check_call([
|
||||
'security', 'cms', '-D', '-i', profile_path, '-o', temp.name])
|
||||
return self._LoadPlistMaybeBinary(temp.name)
|
||||
|
||||
def _MergePlist(self, merged_plist, plist):
|
||||
"""Merge |plist| into |merged_plist|."""
|
||||
for key, value in plist.items():
|
||||
if isinstance(value, dict):
|
||||
merged_value = merged_plist.get(key, {})
|
||||
if isinstance(merged_value, dict):
|
||||
self._MergePlist(merged_value, value)
|
||||
merged_plist[key] = merged_value
|
||||
else:
|
||||
merged_plist[key] = value
|
||||
else:
|
||||
merged_plist[key] = value
|
||||
|
||||
def _LoadPlistMaybeBinary(self, plist_path):
|
||||
"""Loads into a memory a plist possibly encoded in binary format.
|
||||
|
||||
This is a wrapper around plistlib.readPlist that tries to convert the
|
||||
plist to the XML format if it can't be parsed (assuming that it is in
|
||||
the binary format).
|
||||
|
||||
Args:
|
||||
plist_path: string, path to a plist file, in XML or binary format
|
||||
|
||||
Returns:
|
||||
Content of the plist as a dictionary.
|
||||
"""
|
||||
try:
|
||||
# First, try to read the file using plistlib that only supports XML,
|
||||
# and if an exception is raised, convert a temporary copy to XML and
|
||||
# load that copy.
|
||||
return plistlib.readPlist(plist_path)
|
||||
except:
|
||||
pass
|
||||
with tempfile.NamedTemporaryFile() as temp:
|
||||
shutil.copy2(plist_path, temp.name)
|
||||
subprocess.check_call(['plutil', '-convert', 'xml1', temp.name])
|
||||
return plistlib.readPlist(temp.name)
|
||||
|
||||
def _GetSubstitutions(self, bundle_identifier, app_identifier_prefix):
|
||||
"""Constructs a dictionary of variable substitutions for Entitlements.plist.
|
||||
|
||||
Args:
|
||||
bundle_identifier: string, value of CFBundleIdentifier from Info.plist
|
||||
app_identifier_prefix: string, value for AppIdentifierPrefix
|
||||
|
||||
Returns:
|
||||
Dictionary of substitutions to apply when generating Entitlements.plist.
|
||||
"""
|
||||
return {
|
||||
'CFBundleIdentifier': bundle_identifier,
|
||||
'AppIdentifierPrefix': app_identifier_prefix,
|
||||
}
|
||||
|
||||
def _GetCFBundleIdentifier(self):
|
||||
"""Extracts CFBundleIdentifier value from Info.plist in the bundle.
|
||||
|
||||
Returns:
|
||||
Value of CFBundleIdentifier in the Info.plist located in the bundle.
|
||||
"""
|
||||
info_plist_path = os.path.join(
|
||||
os.environ['TARGET_BUILD_DIR'],
|
||||
os.environ['INFOPLIST_PATH'])
|
||||
info_plist_data = self._LoadPlistMaybeBinary(info_plist_path)
|
||||
return info_plist_data['CFBundleIdentifier']
|
||||
|
||||
def _InstallEntitlements(self, entitlements, substitutions, overrides):
|
||||
"""Generates and install the ${BundleName}.xcent entitlements file.
|
||||
|
||||
Expands variables "$(variable)" pattern in the source entitlements file,
|
||||
add extra entitlements defined in the .mobileprovision file and the copy
|
||||
the generated plist to "${BundlePath}.xcent".
|
||||
|
||||
Args:
|
||||
entitlements: string, optional, path to the Entitlements.plist template
|
||||
to use, defaults to "${SDKROOT}/Entitlements.plist"
|
||||
substitutions: dictionary, variable substitutions
|
||||
overrides: dictionary, values to add to the entitlements
|
||||
|
||||
Returns:
|
||||
Path to the generated entitlements file.
|
||||
"""
|
||||
source_path = entitlements
|
||||
target_path = os.path.join(
|
||||
os.environ['BUILT_PRODUCTS_DIR'],
|
||||
os.environ['PRODUCT_NAME'] + '.xcent')
|
||||
if not source_path:
|
||||
source_path = os.path.join(
|
||||
os.environ['SDKROOT'],
|
||||
'Entitlements.plist')
|
||||
shutil.copy2(source_path, target_path)
|
||||
data = self._LoadPlistMaybeBinary(target_path)
|
||||
data = self._ExpandVariables(data, substitutions)
|
||||
if overrides:
|
||||
for key in overrides:
|
||||
if key not in data:
|
||||
data[key] = overrides[key]
|
||||
plistlib.writePlist(data, target_path)
|
||||
return target_path
|
||||
|
||||
def _ExpandVariables(self, data, substitutions):
|
||||
"""Expands variables "$(variable)" in data.
|
||||
|
||||
Args:
|
||||
data: object, can be either string, list or dictionary
|
||||
substitutions: dictionary, variable substitutions to perform
|
||||
|
||||
Returns:
|
||||
Copy of data where each references to "$(variable)" has been replaced
|
||||
by the corresponding value found in substitutions, or left intact if
|
||||
the key was not found.
|
||||
"""
|
||||
if isinstance(data, str):
|
||||
for key, value in substitutions.items():
|
||||
data = data.replace('$(%s)' % key, value)
|
||||
return data
|
||||
if isinstance(data, list):
|
||||
return [self._ExpandVariables(v, substitutions) for v in data]
|
||||
if isinstance(data, dict):
|
||||
return {k: self._ExpandVariables(data[k], substitutions) for k in data}
|
||||
return data
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv[1:]))
|
||||
4
node_modules/fsevents/fsevents.js
generated
vendored
4
node_modules/fsevents/fsevents.js
generated
vendored
@@ -9,9 +9,7 @@
|
||||
if (process.platform !== 'darwin')
|
||||
throw new Error('Module \'fsevents\' is not compatible with platform \'' + process.platform + '\'');
|
||||
|
||||
var path = require('path');
|
||||
var binary = require('node-pre-gyp');
|
||||
var Native = require(binary.find(path.join(__dirname, 'package.json')));
|
||||
var Native = require("bindings")("fse");
|
||||
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var fs = require('fs');
|
||||
|
||||
7
node_modules/fsevents/install.js
generated
vendored
7
node_modules/fsevents/install.js
generated
vendored
@@ -1,7 +0,0 @@
|
||||
if (process.platform === 'darwin') {
|
||||
var spawn = require('child_process').spawn;
|
||||
var args = ['install', '--fallback-to-build'];
|
||||
var options = {stdio: 'inherit'};
|
||||
var child = spawn(require.resolve('node-pre-gyp/bin/node-pre-gyp'), args, options);
|
||||
child.on('close', process.exit);
|
||||
}
|
||||
BIN
node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node
generated
vendored
BIN
node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node
generated
vendored
Binary file not shown.
57
node_modules/fsevents/node_modules/chownr/chownr.js
generated
vendored
57
node_modules/fsevents/node_modules/chownr/chownr.js
generated
vendored
@@ -7,6 +7,36 @@ const LCHOWN = fs.lchown ? 'lchown' : 'chown'
|
||||
/* istanbul ignore next */
|
||||
const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync'
|
||||
|
||||
const needEISDIRHandled = fs.lchown &&
|
||||
!process.version.match(/v1[1-9]+\./) &&
|
||||
!process.version.match(/v10\.[6-9]/)
|
||||
|
||||
/* istanbul ignore next */
|
||||
const handleEISDIR =
|
||||
needEISDIRHandled ? (path, uid, gid, cb) => er => {
|
||||
// Node prior to v10 had a very questionable implementation of
|
||||
// fs.lchown, which would always try to call fs.open on a directory
|
||||
// Fall back to fs.chown in those cases.
|
||||
if (!er || er.code !== 'EISDIR')
|
||||
cb(er)
|
||||
else
|
||||
fs.chown(path, uid, gid, cb)
|
||||
}
|
||||
: (_, __, ___, cb) => cb
|
||||
|
||||
/* istanbul ignore next */
|
||||
const handleEISDirSync =
|
||||
needEISDIRHandled ? (path, uid, gid) => {
|
||||
try {
|
||||
return fs[LCHOWNSYNC](path, uid, gid)
|
||||
} catch (er) {
|
||||
if (er.code !== 'EISDIR')
|
||||
throw er
|
||||
fs.chownSync(path, uid, gid)
|
||||
}
|
||||
}
|
||||
: (path, uid, gid) => fs[LCHOWNSYNC](path, uid, gid)
|
||||
|
||||
// fs.readdir could only accept an options object as of node v6
|
||||
const nodeVersion = process.version
|
||||
let readdir = (path, options, cb) => fs.readdir(path, options, cb)
|
||||
@@ -28,10 +58,13 @@ const chownrKid = (p, child, uid, gid, cb) => {
|
||||
chownr(path.resolve(p, child.name), uid, gid, er => {
|
||||
if (er)
|
||||
return cb(er)
|
||||
fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb)
|
||||
const cpath = path.resolve(p, child.name)
|
||||
fs[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, cb))
|
||||
})
|
||||
} else
|
||||
fs[LCHOWN](path.resolve(p, child.name), uid, gid, cb)
|
||||
} else {
|
||||
const cpath = path.resolve(p, child.name)
|
||||
fs[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, cb))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,14 +74,18 @@ const chownr = (p, uid, gid, cb) => {
|
||||
// or doesn't exist. give up.
|
||||
if (er && er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP')
|
||||
return cb(er)
|
||||
if (er || !children.length) return fs[LCHOWN](p, uid, gid, cb)
|
||||
if (er || !children.length)
|
||||
return fs[LCHOWN](p, uid, gid, handleEISDIR(p, uid, gid, cb))
|
||||
|
||||
let len = children.length
|
||||
let errState = null
|
||||
const then = er => {
|
||||
if (errState) return
|
||||
if (er) return cb(errState = er)
|
||||
if (-- len === 0) return fs[LCHOWN](p, uid, gid, cb)
|
||||
if (errState)
|
||||
return
|
||||
if (er)
|
||||
return cb(errState = er)
|
||||
if (-- len === 0)
|
||||
return fs[LCHOWN](p, uid, gid, handleEISDIR(p, uid, gid, cb))
|
||||
}
|
||||
|
||||
children.forEach(child => chownrKid(p, child, uid, gid, then))
|
||||
@@ -65,7 +102,7 @@ const chownrKidSync = (p, child, uid, gid) => {
|
||||
if (child.isDirectory())
|
||||
chownrSync(path.resolve(p, child.name), uid, gid)
|
||||
|
||||
fs[LCHOWNSYNC](path.resolve(p, child.name), uid, gid)
|
||||
handleEISDirSync(path.resolve(p, child.name), uid, gid)
|
||||
}
|
||||
|
||||
const chownrSync = (p, uid, gid) => {
|
||||
@@ -74,14 +111,14 @@ const chownrSync = (p, uid, gid) => {
|
||||
children = readdirSync(p, { withFileTypes: true })
|
||||
} catch (er) {
|
||||
if (er && er.code === 'ENOTDIR' && er.code !== 'ENOTSUP')
|
||||
return fs[LCHOWNSYNC](p, uid, gid)
|
||||
return handleEISDirSync(p, uid, gid)
|
||||
throw er
|
||||
}
|
||||
|
||||
if (children.length)
|
||||
children.forEach(child => chownrKidSync(p, child, uid, gid))
|
||||
|
||||
return fs[LCHOWNSYNC](p, uid, gid)
|
||||
return handleEISDirSync(p, uid, gid)
|
||||
}
|
||||
|
||||
module.exports = chownr
|
||||
|
||||
34
node_modules/fsevents/node_modules/chownr/package.json
generated
vendored
34
node_modules/fsevents/node_modules/chownr/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"chownr@1.1.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "chownr@1.1.1",
|
||||
"_id": "chownr@1.1.1",
|
||||
"_from": "chownr@^1.1.1",
|
||||
"_id": "chownr@1.1.3",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
|
||||
"_integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==",
|
||||
"_location": "/fsevents/chownr",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "chownr@1.1.1",
|
||||
"raw": "chownr@^1.1.1",
|
||||
"name": "chownr",
|
||||
"escapedName": "chownr",
|
||||
"rawSpec": "1.1.1",
|
||||
"rawSpec": "^1.1.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.1.1"
|
||||
"fetchSpec": "^1.1.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/tar"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "1.1.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz",
|
||||
"_shasum": "42d837d5239688d55f303003a508230fa6727142",
|
||||
"_spec": "chownr@^1.1.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/tar",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -37,6 +30,7 @@
|
||||
"bugs": {
|
||||
"url": "https://github.com/isaacs/chownr/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "like `chown -R`",
|
||||
"devDependencies": {
|
||||
"mkdirp": "0.3",
|
||||
@@ -55,10 +49,10 @@
|
||||
"url": "git://github.com/isaacs/chownr.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --cov"
|
||||
},
|
||||
"version": "1.1.1"
|
||||
"version": "1.1.3"
|
||||
}
|
||||
|
||||
18
node_modules/fsevents/node_modules/debug/README.md
generated
vendored
18
node_modules/fsevents/node_modules/debug/README.md
generated
vendored
@@ -317,24 +317,6 @@ $ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(
|
||||
=> false
|
||||
```
|
||||
|
||||
`disable()`
|
||||
|
||||
Will disable all namespaces. The functions returns the namespaces currently
|
||||
enabled (and skipped). This can be useful if you want to disable debugging
|
||||
temporarily without knowing what was enabled to begin with.
|
||||
|
||||
For example:
|
||||
|
||||
```js
|
||||
let debug = require('debug');
|
||||
debug.enable('foo:*,-foo:bar');
|
||||
let namespaces = debug.disable();
|
||||
debug.enable(namespaces);
|
||||
```
|
||||
|
||||
Note: There is no guarantee that the string will be identical to the initial
|
||||
enable string, but semantically they will be identical.
|
||||
|
||||
## Checking whether a debug target is enabled
|
||||
|
||||
After you've created a debug instance, you can determine whether or not it is
|
||||
|
||||
30
node_modules/fsevents/node_modules/debug/dist/debug.js
generated
vendored
30
node_modules/fsevents/node_modules/debug/dist/debug.js
generated
vendored
@@ -1,13 +1,5 @@
|
||||
"use strict";
|
||||
|
||||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
||||
|
||||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
||||
|
||||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
||||
|
||||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
||||
|
||||
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||||
|
||||
(function (f) {
|
||||
@@ -602,9 +594,7 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
|
||||
}
|
||||
|
||||
function extend(namespace, delimiter) {
|
||||
var newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
|
||||
newDebug.log = this.log;
|
||||
return newDebug;
|
||||
return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
|
||||
}
|
||||
/**
|
||||
* Enables a debug mode by namespaces. This can include modes
|
||||
@@ -646,17 +636,12 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
|
||||
/**
|
||||
* Disable debug output.
|
||||
*
|
||||
* @return {String} namespaces
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function disable() {
|
||||
var namespaces = [].concat(_toConsumableArray(createDebug.names.map(toNamespace)), _toConsumableArray(createDebug.skips.map(toNamespace).map(function (namespace) {
|
||||
return '-' + namespace;
|
||||
}))).join(',');
|
||||
createDebug.enable('');
|
||||
return namespaces;
|
||||
}
|
||||
/**
|
||||
* Returns true if the given mode name is enabled, false otherwise.
|
||||
@@ -690,18 +675,6 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Convert regexp to namespace
|
||||
*
|
||||
* @param {RegExp} regxep
|
||||
* @return {String} namespace
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function toNamespace(regexp) {
|
||||
return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, '*');
|
||||
}
|
||||
/**
|
||||
* Coerce `val`.
|
||||
*
|
||||
* @param {Mixed} val
|
||||
@@ -910,3 +883,4 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat
|
||||
}]
|
||||
}, {}, [4])(4);
|
||||
});
|
||||
|
||||
|
||||
1
node_modules/fsevents/node_modules/debug/node.js
generated
vendored
Normal file
1
node_modules/fsevents/node_modules/debug/node.js
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require('./src/node');
|
||||
46
node_modules/fsevents/node_modules/debug/package.json
generated
vendored
46
node_modules/fsevents/node_modules/debug/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"debug@4.1.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "debug@4.1.1",
|
||||
"_id": "debug@4.1.1",
|
||||
"_from": "debug@^3.2.6",
|
||||
"_id": "debug@3.2.6",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||
"_integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
||||
"_location": "/fsevents/debug",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "debug@4.1.1",
|
||||
"raw": "debug@^3.2.6",
|
||||
"name": "debug",
|
||||
"escapedName": "debug",
|
||||
"rawSpec": "4.1.1",
|
||||
"rawSpec": "^3.2.6",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "4.1.1"
|
||||
"fetchSpec": "^3.2.6"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/needle"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "4.1.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
"_shasum": "e83d17de16d8a7efb7717edbe5fb10135eee629b",
|
||||
"_spec": "debug@^3.2.6",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/needle",
|
||||
"author": {
|
||||
"name": "TJ Holowaychuk",
|
||||
"email": "tj@vision-media.ca"
|
||||
@@ -51,6 +44,7 @@
|
||||
"dependencies": {
|
||||
"ms": "^2.1.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "small debugging utility",
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.0.0",
|
||||
@@ -72,6 +66,7 @@
|
||||
},
|
||||
"files": [
|
||||
"src",
|
||||
"node.js",
|
||||
"dist/debug.js",
|
||||
"LICENSE",
|
||||
"README.md"
|
||||
@@ -89,19 +84,6 @@
|
||||
"type": "git",
|
||||
"url": "git://github.com/visionmedia/debug.git"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "npm run build:debug && npm run build:test",
|
||||
"build:debug": "babel -o dist/debug.js dist/debug.es6.js > dist/debug.js",
|
||||
"build:test": "babel -d dist test.js",
|
||||
"clean": "rimraf dist coverage",
|
||||
"lint": "xo",
|
||||
"prebuild:debug": "mkdir -p dist && browserify --standalone debug -o dist/debug.es6.js .",
|
||||
"pretest:browser": "npm run build",
|
||||
"test": "npm run test:node && npm run test:browser",
|
||||
"test:browser": "karma start --single-run",
|
||||
"test:coverage": "cat ./coverage/lcov.info | coveralls",
|
||||
"test:node": "istanbul cover _mocha -- test.js"
|
||||
},
|
||||
"unpkg": "./dist/debug.js",
|
||||
"version": "4.1.1"
|
||||
"version": "3.2.6"
|
||||
}
|
||||
|
||||
276
node_modules/fsevents/node_modules/debug/src/browser.js
generated
vendored
276
node_modules/fsevents/node_modules/debug/src/browser.js
generated
vendored
@@ -1,99 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||||
|
||||
/* eslint-env browser */
|
||||
|
||||
/**
|
||||
* This is the web browser implementation of `debug()`.
|
||||
*/
|
||||
|
||||
exports.log = log;
|
||||
exports.formatArgs = formatArgs;
|
||||
exports.save = save;
|
||||
exports.load = load;
|
||||
exports.useColors = useColors;
|
||||
exports.storage = localstorage();
|
||||
|
||||
/**
|
||||
* Colors.
|
||||
*/
|
||||
|
||||
exports.colors = [
|
||||
'#0000CC',
|
||||
'#0000FF',
|
||||
'#0033CC',
|
||||
'#0033FF',
|
||||
'#0066CC',
|
||||
'#0066FF',
|
||||
'#0099CC',
|
||||
'#0099FF',
|
||||
'#00CC00',
|
||||
'#00CC33',
|
||||
'#00CC66',
|
||||
'#00CC99',
|
||||
'#00CCCC',
|
||||
'#00CCFF',
|
||||
'#3300CC',
|
||||
'#3300FF',
|
||||
'#3333CC',
|
||||
'#3333FF',
|
||||
'#3366CC',
|
||||
'#3366FF',
|
||||
'#3399CC',
|
||||
'#3399FF',
|
||||
'#33CC00',
|
||||
'#33CC33',
|
||||
'#33CC66',
|
||||
'#33CC99',
|
||||
'#33CCCC',
|
||||
'#33CCFF',
|
||||
'#6600CC',
|
||||
'#6600FF',
|
||||
'#6633CC',
|
||||
'#6633FF',
|
||||
'#66CC00',
|
||||
'#66CC33',
|
||||
'#9900CC',
|
||||
'#9900FF',
|
||||
'#9933CC',
|
||||
'#9933FF',
|
||||
'#99CC00',
|
||||
'#99CC33',
|
||||
'#CC0000',
|
||||
'#CC0033',
|
||||
'#CC0066',
|
||||
'#CC0099',
|
||||
'#CC00CC',
|
||||
'#CC00FF',
|
||||
'#CC3300',
|
||||
'#CC3333',
|
||||
'#CC3366',
|
||||
'#CC3399',
|
||||
'#CC33CC',
|
||||
'#CC33FF',
|
||||
'#CC6600',
|
||||
'#CC6633',
|
||||
'#CC9900',
|
||||
'#CC9933',
|
||||
'#CCCC00',
|
||||
'#CCCC33',
|
||||
'#FF0000',
|
||||
'#FF0033',
|
||||
'#FF0066',
|
||||
'#FF0099',
|
||||
'#FF00CC',
|
||||
'#FF00FF',
|
||||
'#FF3300',
|
||||
'#FF3333',
|
||||
'#FF3366',
|
||||
'#FF3399',
|
||||
'#FF33CC',
|
||||
'#FF33FF',
|
||||
'#FF6600',
|
||||
'#FF6633',
|
||||
'#FF9900',
|
||||
'#FF9933',
|
||||
'#FFCC00',
|
||||
'#FFCC33'
|
||||
];
|
||||
|
||||
exports.colors = ['#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC', '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF', '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC', '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF', '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC', '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033', '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366', '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933', '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC', '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF', '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'];
|
||||
/**
|
||||
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
|
||||
* and the Firebug extension (any Firefox version) are known
|
||||
@@ -101,130 +25,123 @@ exports.colors = [
|
||||
*
|
||||
* TODO: add a `localStorage` variable to explicitly enable/disable colors
|
||||
*/
|
||||
|
||||
// eslint-disable-next-line complexity
|
||||
|
||||
function useColors() {
|
||||
// NB: In an Electron preload script, document will be defined but not fully
|
||||
// initialized. Since we know we're in Chrome, we'll just detect this case
|
||||
// explicitly
|
||||
if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
|
||||
return true;
|
||||
}
|
||||
// NB: In an Electron preload script, document will be defined but not fully
|
||||
// initialized. Since we know we're in Chrome, we'll just detect this case
|
||||
// explicitly
|
||||
if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {
|
||||
return true;
|
||||
} // Internet Explorer and Edge do not support colors.
|
||||
|
||||
// Internet Explorer and Edge do not support colors.
|
||||
if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Is webkit? http://stackoverflow.com/a/16459606/376773
|
||||
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
||||
return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
|
||||
// Is firebug? http://stackoverflow.com/a/398120/376773
|
||||
(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
|
||||
// Is firefox >= v31?
|
||||
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
||||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
|
||||
// Double check webkit in userAgent just in case we are in a worker
|
||||
(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
|
||||
if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
||||
return false;
|
||||
} // Is webkit? http://stackoverflow.com/a/16459606/376773
|
||||
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
||||
|
||||
|
||||
return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
|
||||
typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
|
||||
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
||||
typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
|
||||
typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
||||
}
|
||||
|
||||
/**
|
||||
* Colorize log arguments if enabled.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function formatArgs(args) {
|
||||
args[0] = (this.useColors ? '%c' : '') +
|
||||
this.namespace +
|
||||
(this.useColors ? ' %c' : ' ') +
|
||||
args[0] +
|
||||
(this.useColors ? '%c ' : ' ') +
|
||||
'+' + module.exports.humanize(this.diff);
|
||||
args[0] = (this.useColors ? '%c' : '') + this.namespace + (this.useColors ? ' %c' : ' ') + args[0] + (this.useColors ? '%c ' : ' ') + '+' + module.exports.humanize(this.diff);
|
||||
|
||||
if (!this.useColors) {
|
||||
return;
|
||||
}
|
||||
if (!this.useColors) {
|
||||
return;
|
||||
}
|
||||
|
||||
const c = 'color: ' + this.color;
|
||||
args.splice(1, 0, c, 'color: inherit');
|
||||
var c = 'color: ' + this.color;
|
||||
args.splice(1, 0, c, 'color: inherit'); // The final "%c" is somewhat tricky, because there could be other
|
||||
// arguments passed either before or after the %c, so we need to
|
||||
// figure out the correct index to insert the CSS into
|
||||
|
||||
// The final "%c" is somewhat tricky, because there could be other
|
||||
// arguments passed either before or after the %c, so we need to
|
||||
// figure out the correct index to insert the CSS into
|
||||
let index = 0;
|
||||
let lastC = 0;
|
||||
args[0].replace(/%[a-zA-Z%]/g, match => {
|
||||
if (match === '%%') {
|
||||
return;
|
||||
}
|
||||
index++;
|
||||
if (match === '%c') {
|
||||
// We only are interested in the *last* %c
|
||||
// (the user may have provided their own)
|
||||
lastC = index;
|
||||
}
|
||||
});
|
||||
var index = 0;
|
||||
var lastC = 0;
|
||||
args[0].replace(/%[a-zA-Z%]/g, function (match) {
|
||||
if (match === '%%') {
|
||||
return;
|
||||
}
|
||||
|
||||
args.splice(lastC, 0, c);
|
||||
index++;
|
||||
|
||||
if (match === '%c') {
|
||||
// We only are interested in the *last* %c
|
||||
// (the user may have provided their own)
|
||||
lastC = index;
|
||||
}
|
||||
});
|
||||
args.splice(lastC, 0, c);
|
||||
}
|
||||
|
||||
/**
|
||||
* Invokes `console.log()` when available.
|
||||
* No-op when `console.log` is not a "function".
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
function log(...args) {
|
||||
// This hackery is required for IE8/9, where
|
||||
// the `console.log` function doesn't have 'apply'
|
||||
return typeof console === 'object' &&
|
||||
console.log &&
|
||||
console.log(...args);
|
||||
}
|
||||
|
||||
|
||||
function log() {
|
||||
var _console;
|
||||
|
||||
// This hackery is required for IE8/9, where
|
||||
// the `console.log` function doesn't have 'apply'
|
||||
return (typeof console === "undefined" ? "undefined" : _typeof(console)) === 'object' && console.log && (_console = console).log.apply(_console, arguments);
|
||||
}
|
||||
/**
|
||||
* Save `namespaces`.
|
||||
*
|
||||
* @param {String} namespaces
|
||||
* @api private
|
||||
*/
|
||||
function save(namespaces) {
|
||||
try {
|
||||
if (namespaces) {
|
||||
exports.storage.setItem('debug', namespaces);
|
||||
} else {
|
||||
exports.storage.removeItem('debug');
|
||||
}
|
||||
} catch (error) {
|
||||
// Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function save(namespaces) {
|
||||
try {
|
||||
if (namespaces) {
|
||||
exports.storage.setItem('debug', namespaces);
|
||||
} else {
|
||||
exports.storage.removeItem('debug');
|
||||
}
|
||||
} catch (error) {// Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Load `namespaces`.
|
||||
*
|
||||
* @return {String} returns the previously persisted debug modes
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function load() {
|
||||
let r;
|
||||
try {
|
||||
r = exports.storage.getItem('debug');
|
||||
} catch (error) {
|
||||
// Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
}
|
||||
var r;
|
||||
|
||||
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
||||
if (!r && typeof process !== 'undefined' && 'env' in process) {
|
||||
r = process.env.DEBUG;
|
||||
}
|
||||
try {
|
||||
r = exports.storage.getItem('debug');
|
||||
} catch (error) {} // Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
||||
|
||||
return r;
|
||||
|
||||
if (!r && typeof process !== 'undefined' && 'env' in process) {
|
||||
r = process.env.DEBUG;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
* Localstorage attempts to return the localstorage.
|
||||
*
|
||||
@@ -236,29 +153,28 @@ function load() {
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function localstorage() {
|
||||
try {
|
||||
// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
|
||||
// The Browser also has localStorage in the global context.
|
||||
return localStorage;
|
||||
} catch (error) {
|
||||
// Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
}
|
||||
try {
|
||||
// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context
|
||||
// The Browser also has localStorage in the global context.
|
||||
return localStorage;
|
||||
} catch (error) {// Swallow
|
||||
// XXX (@Qix-) should we be logging these?
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = require('./common')(exports);
|
||||
|
||||
const {formatters} = module.exports;
|
||||
|
||||
var formatters = module.exports.formatters;
|
||||
/**
|
||||
* Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
|
||||
*/
|
||||
|
||||
formatters.j = function (v) {
|
||||
try {
|
||||
return JSON.stringify(v);
|
||||
} catch (error) {
|
||||
return '[UnexpectedJSONParseError]: ' + error.message;
|
||||
}
|
||||
try {
|
||||
return JSON.stringify(v);
|
||||
} catch (error) {
|
||||
return '[UnexpectedJSONParseError]: ' + error.message;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
415
node_modules/fsevents/node_modules/debug/src/common.js
generated
vendored
415
node_modules/fsevents/node_modules/debug/src/common.js
generated
vendored
@@ -1,266 +1,249 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* This is the common logic for both the Node.js and web browser
|
||||
* implementations of `debug()`.
|
||||
*/
|
||||
|
||||
function setup(env) {
|
||||
createDebug.debug = createDebug;
|
||||
createDebug.default = createDebug;
|
||||
createDebug.coerce = coerce;
|
||||
createDebug.disable = disable;
|
||||
createDebug.enable = enable;
|
||||
createDebug.enabled = enabled;
|
||||
createDebug.humanize = require('ms');
|
||||
createDebug.debug = createDebug;
|
||||
createDebug.default = createDebug;
|
||||
createDebug.coerce = coerce;
|
||||
createDebug.disable = disable;
|
||||
createDebug.enable = enable;
|
||||
createDebug.enabled = enabled;
|
||||
createDebug.humanize = require('ms');
|
||||
Object.keys(env).forEach(function (key) {
|
||||
createDebug[key] = env[key];
|
||||
});
|
||||
/**
|
||||
* Active `debug` instances.
|
||||
*/
|
||||
|
||||
Object.keys(env).forEach(key => {
|
||||
createDebug[key] = env[key];
|
||||
});
|
||||
createDebug.instances = [];
|
||||
/**
|
||||
* The currently active debug mode names, and names to skip.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Active `debug` instances.
|
||||
*/
|
||||
createDebug.instances = [];
|
||||
createDebug.names = [];
|
||||
createDebug.skips = [];
|
||||
/**
|
||||
* Map of special "%n" handling functions, for the debug "format" argument.
|
||||
*
|
||||
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
||||
*/
|
||||
|
||||
/**
|
||||
* The currently active debug mode names, and names to skip.
|
||||
*/
|
||||
createDebug.formatters = {};
|
||||
/**
|
||||
* Selects a color for a debug namespace
|
||||
* @param {String} namespace The namespace string for the for the debug instance to be colored
|
||||
* @return {Number|String} An ANSI color code for the given namespace
|
||||
* @api private
|
||||
*/
|
||||
|
||||
createDebug.names = [];
|
||||
createDebug.skips = [];
|
||||
function selectColor(namespace) {
|
||||
var hash = 0;
|
||||
|
||||
/**
|
||||
* Map of special "%n" handling functions, for the debug "format" argument.
|
||||
*
|
||||
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
||||
*/
|
||||
createDebug.formatters = {};
|
||||
for (var i = 0; i < namespace.length; i++) {
|
||||
hash = (hash << 5) - hash + namespace.charCodeAt(i);
|
||||
hash |= 0; // Convert to 32bit integer
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects a color for a debug namespace
|
||||
* @param {String} namespace The namespace string for the for the debug instance to be colored
|
||||
* @return {Number|String} An ANSI color code for the given namespace
|
||||
* @api private
|
||||
*/
|
||||
function selectColor(namespace) {
|
||||
let hash = 0;
|
||||
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
|
||||
}
|
||||
|
||||
for (let i = 0; i < namespace.length; i++) {
|
||||
hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
|
||||
hash |= 0; // Convert to 32bit integer
|
||||
}
|
||||
createDebug.selectColor = selectColor;
|
||||
/**
|
||||
* Create a debugger with the given `namespace`.
|
||||
*
|
||||
* @param {String} namespace
|
||||
* @return {Function}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
return createDebug.colors[Math.abs(hash) % createDebug.colors.length];
|
||||
}
|
||||
createDebug.selectColor = selectColor;
|
||||
function createDebug(namespace) {
|
||||
var prevTime;
|
||||
|
||||
/**
|
||||
* Create a debugger with the given `namespace`.
|
||||
*
|
||||
* @param {String} namespace
|
||||
* @return {Function}
|
||||
* @api public
|
||||
*/
|
||||
function createDebug(namespace) {
|
||||
let prevTime;
|
||||
function debug() {
|
||||
// Disabled?
|
||||
if (!debug.enabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
function debug(...args) {
|
||||
// Disabled?
|
||||
if (!debug.enabled) {
|
||||
return;
|
||||
}
|
||||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
||||
args[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
const self = debug;
|
||||
var self = debug; // Set `diff` timestamp
|
||||
|
||||
// Set `diff` timestamp
|
||||
const curr = Number(new Date());
|
||||
const ms = curr - (prevTime || curr);
|
||||
self.diff = ms;
|
||||
self.prev = prevTime;
|
||||
self.curr = curr;
|
||||
prevTime = curr;
|
||||
var curr = Number(new Date());
|
||||
var ms = curr - (prevTime || curr);
|
||||
self.diff = ms;
|
||||
self.prev = prevTime;
|
||||
self.curr = curr;
|
||||
prevTime = curr;
|
||||
args[0] = createDebug.coerce(args[0]);
|
||||
|
||||
args[0] = createDebug.coerce(args[0]);
|
||||
if (typeof args[0] !== 'string') {
|
||||
// Anything else let's inspect with %O
|
||||
args.unshift('%O');
|
||||
} // Apply any `formatters` transformations
|
||||
|
||||
if (typeof args[0] !== 'string') {
|
||||
// Anything else let's inspect with %O
|
||||
args.unshift('%O');
|
||||
}
|
||||
|
||||
// Apply any `formatters` transformations
|
||||
let index = 0;
|
||||
args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {
|
||||
// If we encounter an escaped % then don't increase the array index
|
||||
if (match === '%%') {
|
||||
return match;
|
||||
}
|
||||
index++;
|
||||
const formatter = createDebug.formatters[format];
|
||||
if (typeof formatter === 'function') {
|
||||
const val = args[index];
|
||||
match = formatter.call(self, val);
|
||||
var index = 0;
|
||||
args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {
|
||||
// If we encounter an escaped % then don't increase the array index
|
||||
if (match === '%%') {
|
||||
return match;
|
||||
}
|
||||
|
||||
// Now we need to remove `args[index]` since it's inlined in the `format`
|
||||
args.splice(index, 1);
|
||||
index--;
|
||||
}
|
||||
return match;
|
||||
});
|
||||
index++;
|
||||
var formatter = createDebug.formatters[format];
|
||||
|
||||
// Apply env-specific formatting (colors, etc.)
|
||||
createDebug.formatArgs.call(self, args);
|
||||
if (typeof formatter === 'function') {
|
||||
var val = args[index];
|
||||
match = formatter.call(self, val); // Now we need to remove `args[index]` since it's inlined in the `format`
|
||||
|
||||
const logFn = self.log || createDebug.log;
|
||||
logFn.apply(self, args);
|
||||
}
|
||||
args.splice(index, 1);
|
||||
index--;
|
||||
}
|
||||
|
||||
debug.namespace = namespace;
|
||||
debug.enabled = createDebug.enabled(namespace);
|
||||
debug.useColors = createDebug.useColors();
|
||||
debug.color = selectColor(namespace);
|
||||
debug.destroy = destroy;
|
||||
debug.extend = extend;
|
||||
// Debug.formatArgs = formatArgs;
|
||||
// debug.rawLog = rawLog;
|
||||
return match;
|
||||
}); // Apply env-specific formatting (colors, etc.)
|
||||
|
||||
// env-specific initialization logic for debug instances
|
||||
if (typeof createDebug.init === 'function') {
|
||||
createDebug.init(debug);
|
||||
}
|
||||
createDebug.formatArgs.call(self, args);
|
||||
var logFn = self.log || createDebug.log;
|
||||
logFn.apply(self, args);
|
||||
}
|
||||
|
||||
createDebug.instances.push(debug);
|
||||
debug.namespace = namespace;
|
||||
debug.enabled = createDebug.enabled(namespace);
|
||||
debug.useColors = createDebug.useColors();
|
||||
debug.color = selectColor(namespace);
|
||||
debug.destroy = destroy;
|
||||
debug.extend = extend; // Debug.formatArgs = formatArgs;
|
||||
// debug.rawLog = rawLog;
|
||||
// env-specific initialization logic for debug instances
|
||||
|
||||
return debug;
|
||||
}
|
||||
if (typeof createDebug.init === 'function') {
|
||||
createDebug.init(debug);
|
||||
}
|
||||
|
||||
function destroy() {
|
||||
const index = createDebug.instances.indexOf(this);
|
||||
if (index !== -1) {
|
||||
createDebug.instances.splice(index, 1);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
createDebug.instances.push(debug);
|
||||
return debug;
|
||||
}
|
||||
|
||||
function extend(namespace, delimiter) {
|
||||
const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
|
||||
newDebug.log = this.log;
|
||||
return newDebug;
|
||||
}
|
||||
function destroy() {
|
||||
var index = createDebug.instances.indexOf(this);
|
||||
|
||||
/**
|
||||
* Enables a debug mode by namespaces. This can include modes
|
||||
* separated by a colon and wildcards.
|
||||
*
|
||||
* @param {String} namespaces
|
||||
* @api public
|
||||
*/
|
||||
function enable(namespaces) {
|
||||
createDebug.save(namespaces);
|
||||
if (index !== -1) {
|
||||
createDebug.instances.splice(index, 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
createDebug.names = [];
|
||||
createDebug.skips = [];
|
||||
return false;
|
||||
}
|
||||
|
||||
let i;
|
||||
const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
|
||||
const len = split.length;
|
||||
function extend(namespace, delimiter) {
|
||||
return createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);
|
||||
}
|
||||
/**
|
||||
* Enables a debug mode by namespaces. This can include modes
|
||||
* separated by a colon and wildcards.
|
||||
*
|
||||
* @param {String} namespaces
|
||||
* @api public
|
||||
*/
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (!split[i]) {
|
||||
// ignore empty strings
|
||||
continue;
|
||||
}
|
||||
|
||||
namespaces = split[i].replace(/\*/g, '.*?');
|
||||
function enable(namespaces) {
|
||||
createDebug.save(namespaces);
|
||||
createDebug.names = [];
|
||||
createDebug.skips = [];
|
||||
var i;
|
||||
var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
|
||||
var len = split.length;
|
||||
|
||||
if (namespaces[0] === '-') {
|
||||
createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
||||
} else {
|
||||
createDebug.names.push(new RegExp('^' + namespaces + '$'));
|
||||
}
|
||||
}
|
||||
for (i = 0; i < len; i++) {
|
||||
if (!split[i]) {
|
||||
// ignore empty strings
|
||||
continue;
|
||||
}
|
||||
|
||||
for (i = 0; i < createDebug.instances.length; i++) {
|
||||
const instance = createDebug.instances[i];
|
||||
instance.enabled = createDebug.enabled(instance.namespace);
|
||||
}
|
||||
}
|
||||
namespaces = split[i].replace(/\*/g, '.*?');
|
||||
|
||||
/**
|
||||
* Disable debug output.
|
||||
*
|
||||
* @return {String} namespaces
|
||||
* @api public
|
||||
*/
|
||||
function disable() {
|
||||
const namespaces = [
|
||||
...createDebug.names.map(toNamespace),
|
||||
...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)
|
||||
].join(',');
|
||||
createDebug.enable('');
|
||||
return namespaces;
|
||||
}
|
||||
if (namespaces[0] === '-') {
|
||||
createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
||||
} else {
|
||||
createDebug.names.push(new RegExp('^' + namespaces + '$'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the given mode name is enabled, false otherwise.
|
||||
*
|
||||
* @param {String} name
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
function enabled(name) {
|
||||
if (name[name.length - 1] === '*') {
|
||||
return true;
|
||||
}
|
||||
for (i = 0; i < createDebug.instances.length; i++) {
|
||||
var instance = createDebug.instances[i];
|
||||
instance.enabled = createDebug.enabled(instance.namespace);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Disable debug output.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
let i;
|
||||
let len;
|
||||
|
||||
for (i = 0, len = createDebug.skips.length; i < len; i++) {
|
||||
if (createDebug.skips[i].test(name)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function disable() {
|
||||
createDebug.enable('');
|
||||
}
|
||||
/**
|
||||
* Returns true if the given mode name is enabled, false otherwise.
|
||||
*
|
||||
* @param {String} name
|
||||
* @return {Boolean}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
for (i = 0, len = createDebug.names.length; i < len; i++) {
|
||||
if (createDebug.names[i].test(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
function enabled(name) {
|
||||
if (name[name.length - 1] === '*') {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert regexp to namespace
|
||||
*
|
||||
* @param {RegExp} regxep
|
||||
* @return {String} namespace
|
||||
* @api private
|
||||
*/
|
||||
function toNamespace(regexp) {
|
||||
return regexp.toString()
|
||||
.substring(2, regexp.toString().length - 2)
|
||||
.replace(/\.\*\?$/, '*');
|
||||
}
|
||||
var i;
|
||||
var len;
|
||||
|
||||
/**
|
||||
* Coerce `val`.
|
||||
*
|
||||
* @param {Mixed} val
|
||||
* @return {Mixed}
|
||||
* @api private
|
||||
*/
|
||||
function coerce(val) {
|
||||
if (val instanceof Error) {
|
||||
return val.stack || val.message;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
for (i = 0, len = createDebug.skips.length; i < len; i++) {
|
||||
if (createDebug.skips[i].test(name)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
createDebug.enable(createDebug.load());
|
||||
for (i = 0, len = createDebug.names.length; i < len; i++) {
|
||||
if (createDebug.names[i].test(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return createDebug;
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Coerce `val`.
|
||||
*
|
||||
* @param {Mixed} val
|
||||
* @return {Mixed}
|
||||
* @api private
|
||||
*/
|
||||
|
||||
|
||||
function coerce(val) {
|
||||
if (val instanceof Error) {
|
||||
return val.stack || val.message;
|
||||
}
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
createDebug.enable(createDebug.load());
|
||||
return createDebug;
|
||||
}
|
||||
|
||||
module.exports = setup;
|
||||
|
||||
|
||||
8
node_modules/fsevents/node_modules/debug/src/index.js
generated
vendored
8
node_modules/fsevents/node_modules/debug/src/index.js
generated
vendored
@@ -1,10 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Detect Electron renderer / nwjs process, which is node, but we should
|
||||
* treat as a browser.
|
||||
*/
|
||||
|
||||
if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {
|
||||
module.exports = require('./browser.js');
|
||||
module.exports = require('./browser.js');
|
||||
} else {
|
||||
module.exports = require('./node.js');
|
||||
module.exports = require('./node.js');
|
||||
}
|
||||
|
||||
|
||||
245
node_modules/fsevents/node_modules/debug/src/node.js
generated
vendored
245
node_modules/fsevents/node_modules/debug/src/node.js
generated
vendored
@@ -1,21 +1,22 @@
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
var tty = require('tty');
|
||||
|
||||
const tty = require('tty');
|
||||
const util = require('util');
|
||||
|
||||
var util = require('util');
|
||||
/**
|
||||
* This is the Node.js implementation of `debug()`.
|
||||
*/
|
||||
|
||||
|
||||
exports.init = init;
|
||||
exports.log = log;
|
||||
exports.formatArgs = formatArgs;
|
||||
exports.save = save;
|
||||
exports.load = load;
|
||||
exports.useColors = useColors;
|
||||
|
||||
/**
|
||||
* Colors.
|
||||
*/
|
||||
@@ -23,93 +24,14 @@ exports.useColors = useColors;
|
||||
exports.colors = [6, 2, 3, 4, 5, 1];
|
||||
|
||||
try {
|
||||
// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
const supportsColor = require('supports-color');
|
||||
// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
var supportsColor = require('supports-color');
|
||||
|
||||
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
||||
exports.colors = [
|
||||
20,
|
||||
21,
|
||||
26,
|
||||
27,
|
||||
32,
|
||||
33,
|
||||
38,
|
||||
39,
|
||||
40,
|
||||
41,
|
||||
42,
|
||||
43,
|
||||
44,
|
||||
45,
|
||||
56,
|
||||
57,
|
||||
62,
|
||||
63,
|
||||
68,
|
||||
69,
|
||||
74,
|
||||
75,
|
||||
76,
|
||||
77,
|
||||
78,
|
||||
79,
|
||||
80,
|
||||
81,
|
||||
92,
|
||||
93,
|
||||
98,
|
||||
99,
|
||||
112,
|
||||
113,
|
||||
128,
|
||||
129,
|
||||
134,
|
||||
135,
|
||||
148,
|
||||
149,
|
||||
160,
|
||||
161,
|
||||
162,
|
||||
163,
|
||||
164,
|
||||
165,
|
||||
166,
|
||||
167,
|
||||
168,
|
||||
169,
|
||||
170,
|
||||
171,
|
||||
172,
|
||||
173,
|
||||
178,
|
||||
179,
|
||||
184,
|
||||
185,
|
||||
196,
|
||||
197,
|
||||
198,
|
||||
199,
|
||||
200,
|
||||
201,
|
||||
202,
|
||||
203,
|
||||
204,
|
||||
205,
|
||||
206,
|
||||
207,
|
||||
208,
|
||||
209,
|
||||
214,
|
||||
215,
|
||||
220,
|
||||
221
|
||||
];
|
||||
}
|
||||
} catch (error) {
|
||||
// Swallow - we only care if `supports-color` is available; it doesn't have to be.
|
||||
}
|
||||
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
||||
exports.colors = [20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 214, 215, 220, 221];
|
||||
}
|
||||
} catch (error) {} // Swallow - we only care if `supports-color` is available; it doesn't have to be.
|
||||
|
||||
/**
|
||||
* Build up the default `inspectOpts` object from the environment variables.
|
||||
@@ -117,95 +39,91 @@ try {
|
||||
* $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
|
||||
*/
|
||||
|
||||
exports.inspectOpts = Object.keys(process.env).filter(key => {
|
||||
return /^debug_/i.test(key);
|
||||
}).reduce((obj, key) => {
|
||||
// Camel-case
|
||||
const prop = key
|
||||
.substring(6)
|
||||
.toLowerCase()
|
||||
.replace(/_([a-z])/g, (_, k) => {
|
||||
return k.toUpperCase();
|
||||
});
|
||||
|
||||
// Coerce string value into JS value
|
||||
let val = process.env[key];
|
||||
if (/^(yes|on|true|enabled)$/i.test(val)) {
|
||||
val = true;
|
||||
} else if (/^(no|off|false|disabled)$/i.test(val)) {
|
||||
val = false;
|
||||
} else if (val === 'null') {
|
||||
val = null;
|
||||
} else {
|
||||
val = Number(val);
|
||||
}
|
||||
exports.inspectOpts = Object.keys(process.env).filter(function (key) {
|
||||
return /^debug_/i.test(key);
|
||||
}).reduce(function (obj, key) {
|
||||
// Camel-case
|
||||
var prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, function (_, k) {
|
||||
return k.toUpperCase();
|
||||
}); // Coerce string value into JS value
|
||||
|
||||
obj[prop] = val;
|
||||
return obj;
|
||||
var val = process.env[key];
|
||||
|
||||
if (/^(yes|on|true|enabled)$/i.test(val)) {
|
||||
val = true;
|
||||
} else if (/^(no|off|false|disabled)$/i.test(val)) {
|
||||
val = false;
|
||||
} else if (val === 'null') {
|
||||
val = null;
|
||||
} else {
|
||||
val = Number(val);
|
||||
}
|
||||
|
||||
obj[prop] = val;
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
/**
|
||||
* Is stdout a TTY? Colored output is enabled when `true`.
|
||||
*/
|
||||
|
||||
function useColors() {
|
||||
return 'colors' in exports.inspectOpts ?
|
||||
Boolean(exports.inspectOpts.colors) :
|
||||
tty.isatty(process.stderr.fd);
|
||||
return 'colors' in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds ANSI color escape codes if enabled.
|
||||
*
|
||||
* @api public
|
||||
*/
|
||||
|
||||
|
||||
function formatArgs(args) {
|
||||
const {namespace: name, useColors} = this;
|
||||
var name = this.namespace,
|
||||
useColors = this.useColors;
|
||||
|
||||
if (useColors) {
|
||||
const c = this.color;
|
||||
const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c);
|
||||
const prefix = ` ${colorCode};1m${name} \u001B[0m`;
|
||||
|
||||
args[0] = prefix + args[0].split('\n').join('\n' + prefix);
|
||||
args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m');
|
||||
} else {
|
||||
args[0] = getDate() + name + ' ' + args[0];
|
||||
}
|
||||
if (useColors) {
|
||||
var c = this.color;
|
||||
var colorCode = "\x1B[3" + (c < 8 ? c : '8;5;' + c);
|
||||
var prefix = " ".concat(colorCode, ";1m").concat(name, " \x1B[0m");
|
||||
args[0] = prefix + args[0].split('\n').join('\n' + prefix);
|
||||
args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + "\x1B[0m");
|
||||
} else {
|
||||
args[0] = getDate() + name + ' ' + args[0];
|
||||
}
|
||||
}
|
||||
|
||||
function getDate() {
|
||||
if (exports.inspectOpts.hideDate) {
|
||||
return '';
|
||||
}
|
||||
return new Date().toISOString() + ' ';
|
||||
}
|
||||
if (exports.inspectOpts.hideDate) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return new Date().toISOString() + ' ';
|
||||
}
|
||||
/**
|
||||
* Invokes `util.format()` with the specified arguments and writes to stderr.
|
||||
*/
|
||||
|
||||
function log(...args) {
|
||||
return process.stderr.write(util.format(...args) + '\n');
|
||||
}
|
||||
|
||||
function log() {
|
||||
return process.stderr.write(util.format.apply(util, arguments) + '\n');
|
||||
}
|
||||
/**
|
||||
* Save `namespaces`.
|
||||
*
|
||||
* @param {String} namespaces
|
||||
* @api private
|
||||
*/
|
||||
function save(namespaces) {
|
||||
if (namespaces) {
|
||||
process.env.DEBUG = namespaces;
|
||||
} else {
|
||||
// If you set a process.env field to null or undefined, it gets cast to the
|
||||
// string 'null' or 'undefined'. Just delete instead.
|
||||
delete process.env.DEBUG;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function save(namespaces) {
|
||||
if (namespaces) {
|
||||
process.env.DEBUG = namespaces;
|
||||
} else {
|
||||
// If you set a process.env field to null or undefined, it gets cast to the
|
||||
// string 'null' or 'undefined'. Just delete instead.
|
||||
delete process.env.DEBUG;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Load `namespaces`.
|
||||
*
|
||||
@@ -213,10 +131,10 @@ function save(namespaces) {
|
||||
* @api private
|
||||
*/
|
||||
|
||||
function load() {
|
||||
return process.env.DEBUG;
|
||||
}
|
||||
|
||||
function load() {
|
||||
return process.env.DEBUG;
|
||||
}
|
||||
/**
|
||||
* Init logic for `debug` instances.
|
||||
*
|
||||
@@ -224,34 +142,33 @@ function load() {
|
||||
* differently for a particular `debug` instance.
|
||||
*/
|
||||
|
||||
function init(debug) {
|
||||
debug.inspectOpts = {};
|
||||
|
||||
const keys = Object.keys(exports.inspectOpts);
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
||||
}
|
||||
function init(debug) {
|
||||
debug.inspectOpts = {};
|
||||
var keys = Object.keys(exports.inspectOpts);
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = require('./common')(exports);
|
||||
|
||||
const {formatters} = module.exports;
|
||||
|
||||
var formatters = module.exports.formatters;
|
||||
/**
|
||||
* Map %o to `util.inspect()`, all on a single line.
|
||||
*/
|
||||
|
||||
formatters.o = function (v) {
|
||||
this.inspectOpts.colors = this.useColors;
|
||||
return util.inspect(v, this.inspectOpts)
|
||||
.replace(/\s*\n\s*/g, ' ');
|
||||
this.inspectOpts.colors = this.useColors;
|
||||
return util.inspect(v, this.inspectOpts).replace(/\s*\n\s*/g, ' ');
|
||||
};
|
||||
|
||||
/**
|
||||
* Map %O to `util.inspect()`, allowing multiple lines if needed.
|
||||
*/
|
||||
|
||||
|
||||
formatters.O = function (v) {
|
||||
this.inspectOpts.colors = this.useColors;
|
||||
return util.inspect(v, this.inspectOpts);
|
||||
this.inspectOpts.colors = this.useColors;
|
||||
return util.inspect(v, this.inspectOpts);
|
||||
};
|
||||
|
||||
|
||||
3
node_modules/fsevents/node_modules/fs-minipass/index.js
generated
vendored
3
node_modules/fsevents/node_modules/fs-minipass/index.js
generated
vendored
@@ -6,7 +6,8 @@ const fs = require('fs')
|
||||
// for writev
|
||||
const binding = process.binding('fs')
|
||||
const writeBuffers = binding.writeBuffers
|
||||
const FSReqWrap = binding.FSReqWrap
|
||||
/* istanbul ignore next */
|
||||
const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback
|
||||
|
||||
const _autoClose = Symbol('_autoClose')
|
||||
const _close = Symbol('_close')
|
||||
|
||||
43
node_modules/fsevents/node_modules/fs-minipass/package.json
generated
vendored
43
node_modules/fsevents/node_modules/fs-minipass/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"fs-minipass@1.2.5",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "fs-minipass@1.2.5",
|
||||
"_id": "fs-minipass@1.2.5",
|
||||
"_from": "fs-minipass@^1.2.5",
|
||||
"_id": "fs-minipass@1.2.7",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
|
||||
"_integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
|
||||
"_location": "/fsevents/fs-minipass",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "fs-minipass@1.2.5",
|
||||
"raw": "fs-minipass@^1.2.5",
|
||||
"name": "fs-minipass",
|
||||
"escapedName": "fs-minipass",
|
||||
"rawSpec": "1.2.5",
|
||||
"rawSpec": "^1.2.5",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.2.5"
|
||||
"fetchSpec": "^1.2.5"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/tar"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "1.2.5",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
|
||||
"_shasum": "ccff8570841e7fe4265693da88936c55aed7f7c7",
|
||||
"_spec": "fs-minipass@^1.2.5",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/tar",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -38,12 +31,13 @@
|
||||
"url": "https://github.com/npm/fs-minipass/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"minipass": "^2.2.1"
|
||||
"minipass": "^2.6.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "fs read and write streams based on minipass",
|
||||
"devDependencies": {
|
||||
"mutate-fs": "^2.0.1",
|
||||
"tap": "^10.7.2"
|
||||
"tap": "^14.6.4"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
@@ -58,10 +52,13 @@
|
||||
"url": "git+https://github.com/npm/fs-minipass.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100 -J"
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "1.2.5"
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"version": "1.2.7"
|
||||
}
|
||||
|
||||
6
node_modules/fsevents/node_modules/glob/LICENSE
generated
vendored
6
node_modules/fsevents/node_modules/glob/LICENSE
generated
vendored
@@ -13,3 +13,9 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
## Glob Logo
|
||||
|
||||
Glob's logo created by Tanya Brassie <http://tanyabrassie.com/>, licensed
|
||||
under a Creative Commons Attribution-ShareAlike 4.0 International License
|
||||
https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
9
node_modules/fsevents/node_modules/glob/README.md
generated
vendored
9
node_modules/fsevents/node_modules/glob/README.md
generated
vendored
@@ -7,7 +7,7 @@ Match files using the patterns the shell uses, like stars and stuff.
|
||||
This is a glob implementation in JavaScript. It uses the `minimatch`
|
||||
library to do its matching.
|
||||
|
||||

|
||||

|
||||
|
||||
## Usage
|
||||
|
||||
@@ -347,6 +347,11 @@ Users are thus advised not to use a glob result as a guarantee of
|
||||
filesystem state in the face of rapid changes. For the vast majority
|
||||
of operations, this is never a problem.
|
||||
|
||||
## Glob Logo
|
||||
Glob's logo was created by [Tanya Brassie](http://tanyabrassie.com/). Logo files can be found [here](https://github.com/isaacs/node-glob/tree/master/logo).
|
||||
|
||||
The logo is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
|
||||
|
||||
## Contributing
|
||||
|
||||
Any change to behavior (including bugfixes) must come with a test.
|
||||
@@ -366,3 +371,5 @@ npm run bench
|
||||
# to profile javascript
|
||||
npm run prof
|
||||
```
|
||||
|
||||

|
||||
|
||||
35
node_modules/fsevents/node_modules/glob/package.json
generated
vendored
35
node_modules/fsevents/node_modules/glob/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"glob@7.1.3",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "glob@7.1.3",
|
||||
"_id": "glob@7.1.3",
|
||||
"_from": "glob@^7.1.3",
|
||||
"_id": "glob@7.1.6",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||
"_integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
|
||||
"_location": "/fsevents/glob",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "glob@7.1.3",
|
||||
"raw": "glob@^7.1.3",
|
||||
"name": "glob",
|
||||
"escapedName": "glob",
|
||||
"rawSpec": "7.1.3",
|
||||
"rawSpec": "^7.1.3",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "7.1.3"
|
||||
"fetchSpec": "^7.1.3"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/rimraf"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "7.1.3",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
||||
"_shasum": "141f33b81a7c2492e125594307480c46679278a6",
|
||||
"_spec": "glob@^7.1.3",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/rimraf",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -45,6 +38,7 @@
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "a little globber",
|
||||
"devDependencies": {
|
||||
"mkdirp": "0",
|
||||
@@ -60,6 +54,9 @@
|
||||
"sync.js",
|
||||
"common.js"
|
||||
],
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
},
|
||||
"homepage": "https://github.com/isaacs/node-glob#readme",
|
||||
"license": "ISC",
|
||||
"main": "glob.js",
|
||||
@@ -77,5 +74,5 @@
|
||||
"test": "tap test/*.js --cov",
|
||||
"test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js"
|
||||
},
|
||||
"version": "7.1.3"
|
||||
"version": "7.1.6"
|
||||
}
|
||||
|
||||
2
node_modules/fsevents/node_modules/ignore-walk/README.md
generated
vendored
2
node_modules/fsevents/node_modules/ignore-walk/README.md
generated
vendored
@@ -1,7 +1,7 @@
|
||||
# ignore-walk
|
||||
|
||||
[](https://travis-ci.org/isaacs/ignore-walk)
|
||||
Status](https://travis-ci.org/npm/ignore-walk.svg?branch=master)](https://travis-ci.org/npm/ignore-walk)
|
||||
|
||||
Nested/recursive `.gitignore`/`.npmignore` parsing and filtering.
|
||||
|
||||
|
||||
14
node_modules/fsevents/node_modules/ignore-walk/index.js
generated
vendored
14
node_modules/fsevents/node_modules/ignore-walk/index.js
generated
vendored
@@ -17,7 +17,7 @@ class Walker extends EE {
|
||||
this.includeEmpty = !!opts.includeEmpty
|
||||
this.root = this.parent ? this.parent.root : this.path
|
||||
this.follow = !!opts.follow
|
||||
this.result = this.parent ? this.parent.result : []
|
||||
this.result = this.parent ? this.parent.result : new Set()
|
||||
this.entries = null
|
||||
this.sawError = false
|
||||
}
|
||||
@@ -31,8 +31,12 @@ class Walker extends EE {
|
||||
if (!(this.sawError && ev === 'error')) {
|
||||
if (ev === 'error')
|
||||
this.sawError = true
|
||||
else if (ev === 'done' && !this.parent)
|
||||
data = data.sort(this.sort)
|
||||
else if (ev === 'done' && !this.parent) {
|
||||
data = Array.from(data)
|
||||
.map(e => /^@/.test(e) ? `./${e}` : e).sort(this.sort)
|
||||
this.result = data
|
||||
}
|
||||
|
||||
if (ev === 'error' && this.parent)
|
||||
ret = this.parent.emit('error', data)
|
||||
else
|
||||
@@ -57,7 +61,7 @@ class Walker extends EE {
|
||||
this.entries = entries
|
||||
if (entries.length === 0) {
|
||||
if (this.includeEmpty)
|
||||
this.result.push(this.path.substr(this.root.length + 1))
|
||||
this.result.add(this.path.substr(this.root.length + 1))
|
||||
this.emit('done', this.result)
|
||||
} else {
|
||||
const hasIg = this.entries.some(e =>
|
||||
@@ -145,7 +149,7 @@ class Walker extends EE {
|
||||
const abs = this.path + '/' + entry
|
||||
if (!st.isDirectory()) {
|
||||
if (file)
|
||||
this.result.push(abs.substr(this.root.length + 1))
|
||||
this.result.add(abs.substr(this.root.length + 1))
|
||||
then()
|
||||
} else {
|
||||
// is a directory
|
||||
|
||||
39
node_modules/fsevents/node_modules/ignore-walk/package.json
generated
vendored
39
node_modules/fsevents/node_modules/ignore-walk/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"ignore-walk@3.0.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "ignore-walk@3.0.1",
|
||||
"_id": "ignore-walk@3.0.1",
|
||||
"_from": "ignore-walk@^3.0.1",
|
||||
"_id": "ignore-walk@3.0.3",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
|
||||
"_integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
|
||||
"_location": "/fsevents/ignore-walk",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "ignore-walk@3.0.1",
|
||||
"raw": "ignore-walk@^3.0.1",
|
||||
"name": "ignore-walk",
|
||||
"escapedName": "ignore-walk",
|
||||
"rawSpec": "3.0.1",
|
||||
"rawSpec": "^3.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "3.0.1"
|
||||
"fetchSpec": "^3.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/npm-packlist"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "3.0.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz",
|
||||
"_shasum": "017e2447184bfeade7c238e4aefdd1e8f95b1e37",
|
||||
"_spec": "ignore-walk@^3.0.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/npm-packlist",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -40,12 +33,13 @@
|
||||
"dependencies": {
|
||||
"minimatch": "^3.0.4"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Nested/recursive `.gitignore`/`.npmignore` parsing and filtering.",
|
||||
"devDependencies": {
|
||||
"mkdirp": "^0.5.1",
|
||||
"mutate-fs": "^1.1.0",
|
||||
"rimraf": "^2.6.1",
|
||||
"tap": "^10.7.2"
|
||||
"tap": "^14.6.9"
|
||||
},
|
||||
"files": [
|
||||
"index.js"
|
||||
@@ -70,7 +64,10 @@
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100"
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "3.0.1"
|
||||
"tap": {
|
||||
"jobs": 1
|
||||
},
|
||||
"version": "3.0.3"
|
||||
}
|
||||
|
||||
2
node_modules/fsevents/node_modules/inherits/inherits.js
generated
vendored
2
node_modules/fsevents/node_modules/inherits/inherits.js
generated
vendored
@@ -1,7 +1,9 @@
|
||||
try {
|
||||
var util = require('util');
|
||||
/* istanbul ignore next */
|
||||
if (typeof util.inherits !== 'function') throw '';
|
||||
module.exports = util.inherits;
|
||||
} catch (e) {
|
||||
/* istanbul ignore next */
|
||||
module.exports = require('./inherits_browser.js');
|
||||
}
|
||||
|
||||
32
node_modules/fsevents/node_modules/inherits/inherits_browser.js
generated
vendored
32
node_modules/fsevents/node_modules/inherits/inherits_browser.js
generated
vendored
@@ -1,23 +1,27 @@
|
||||
if (typeof Object.create === 'function') {
|
||||
// implementation from standard node.js 'util' module
|
||||
module.exports = function inherits(ctor, superCtor) {
|
||||
ctor.super_ = superCtor
|
||||
ctor.prototype = Object.create(superCtor.prototype, {
|
||||
constructor: {
|
||||
value: ctor,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superCtor) {
|
||||
ctor.super_ = superCtor
|
||||
ctor.prototype = Object.create(superCtor.prototype, {
|
||||
constructor: {
|
||||
value: ctor,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
})
|
||||
}
|
||||
};
|
||||
} else {
|
||||
// old school shim for old browsers
|
||||
module.exports = function inherits(ctor, superCtor) {
|
||||
ctor.super_ = superCtor
|
||||
var TempCtor = function () {}
|
||||
TempCtor.prototype = superCtor.prototype
|
||||
ctor.prototype = new TempCtor()
|
||||
ctor.prototype.constructor = ctor
|
||||
if (superCtor) {
|
||||
ctor.super_ = superCtor
|
||||
var TempCtor = function () {}
|
||||
TempCtor.prototype = superCtor.prototype
|
||||
ctor.prototype = new TempCtor()
|
||||
ctor.prototype.constructor = ctor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
36
node_modules/fsevents/node_modules/inherits/package.json
generated
vendored
36
node_modules/fsevents/node_modules/inherits/package.json
generated
vendored
@@ -1,42 +1,36 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"inherits@2.0.3",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "inherits@2.0.3",
|
||||
"_id": "inherits@2.0.3",
|
||||
"_from": "inherits@~2.0.3",
|
||||
"_id": "inherits@2.0.4",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||
"_location": "/fsevents/inherits",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "inherits@2.0.3",
|
||||
"raw": "inherits@~2.0.3",
|
||||
"name": "inherits",
|
||||
"escapedName": "inherits",
|
||||
"rawSpec": "2.0.3",
|
||||
"rawSpec": "~2.0.3",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.0.3"
|
||||
"fetchSpec": "~2.0.3"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/glob",
|
||||
"/fsevents/readable-stream"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.0.3",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||
"_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c",
|
||||
"_spec": "inherits@~2.0.3",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/readable-stream",
|
||||
"browser": "./inherits_browser.js",
|
||||
"bugs": {
|
||||
"url": "https://github.com/isaacs/inherits/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
|
||||
"devDependencies": {
|
||||
"tap": "^7.1.0"
|
||||
"tap": "^14.2.4"
|
||||
},
|
||||
"files": [
|
||||
"inherits.js",
|
||||
@@ -61,7 +55,7 @@
|
||||
"url": "git://github.com/isaacs/inherits.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node test"
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "2.0.3"
|
||||
"version": "2.0.4"
|
||||
}
|
||||
|
||||
490
node_modules/fsevents/node_modules/minipass/README.md
generated
vendored
490
node_modules/fsevents/node_modules/minipass/README.md
generated
vendored
@@ -24,25 +24,374 @@ If you set `objectMode: true` in the options, then whatever is written
|
||||
will be emitted. Otherwise, it'll do a minimal amount of Buffer
|
||||
copying to ensure proper Streams semantics when `read(n)` is called.
|
||||
|
||||
`objectMode` can also be set by doing `stream.objectMode = true`, or by
|
||||
writing any non-string/non-buffer data. `objectMode` cannot be set to
|
||||
false once it is set.
|
||||
|
||||
This is not a `through` or `through2` stream. It doesn't transform
|
||||
the data, it just passes it right through. If you want to transform
|
||||
the data, extend the class, and override the `write()` method. Once
|
||||
you're done transforming the data however you want, call
|
||||
`super.write()` with the transform output.
|
||||
|
||||
For an example of a stream that extends MiniPass to provide transform
|
||||
capabilities, check out [minizlib](http://npm.im/minizlib).
|
||||
For some examples of streams that extend Minipass in various ways, check
|
||||
out:
|
||||
|
||||
- [minizlib](http://npm.im/minizlib)
|
||||
- [fs-minipass](http://npm.im/fs-minipass)
|
||||
- [tar](http://npm.im/tar)
|
||||
- [minipass-collect](http://npm.im/minipass-collect)
|
||||
- [minipass-flush](http://npm.im/minipass-flush)
|
||||
- [minipass-pipeline](http://npm.im/minipass-pipeline)
|
||||
- [tap](http://npm.im/tap)
|
||||
- [tap-parser](http://npm.im/tap)
|
||||
- [treport](http://npm.im/tap)
|
||||
|
||||
## Differences from Node.js Streams
|
||||
|
||||
There are several things that make Minipass streams different from (and in
|
||||
some ways superior to) Node.js core streams.
|
||||
|
||||
Please read these caveats if you are familiar with noode-core streams and
|
||||
intend to use Minipass streams in your programs.
|
||||
|
||||
### Timing
|
||||
|
||||
Minipass streams are designed to support synchronous use-cases. Thus, data
|
||||
is emitted as soon as it is available, always. It is buffered until read,
|
||||
but no longer. Another way to look at it is that Minipass streams are
|
||||
exactly as synchronous as the logic that writes into them.
|
||||
|
||||
This can be surprising if your code relies on `PassThrough.write()` always
|
||||
providing data on the next tick rather than the current one, or being able
|
||||
to call `resume()` and not have the entire buffer disappear immediately.
|
||||
|
||||
However, without this synchronicity guarantee, there would be no way for
|
||||
Minipass to achieve the speeds it does, or support the synchronous use
|
||||
cases that it does. Simply put, waiting takes time.
|
||||
|
||||
This non-deferring approach makes Minipass streams much easier to reason
|
||||
about, especially in the context of Promises and other flow-control
|
||||
mechanisms.
|
||||
|
||||
### No High/Low Water Marks
|
||||
|
||||
Node.js core streams will optimistically fill up a buffer, returning `true`
|
||||
on all writes until the limit is hit, even if the data has nowhere to go.
|
||||
Then, they will not attempt to draw more data in until the buffer size dips
|
||||
below a minimum value.
|
||||
|
||||
Minipass streams are much simpler. The `write()` method will return `true`
|
||||
if the data has somewhere to go (which is to say, given the timing
|
||||
guarantees, that the data is already there by the time `write()` returns).
|
||||
|
||||
If the data has nowhere to go, then `write()` returns false, and the data
|
||||
sits in a buffer, to be drained out immediately as soon as anyone consumes
|
||||
it.
|
||||
|
||||
### Hazards of Buffering (or: Why Minipass Is So Fast)
|
||||
|
||||
Since data written to a Minipass stream is immediately written all the way
|
||||
through the pipeline, and `write()` always returns true/false based on
|
||||
whether the data was fully flushed, backpressure is communicated
|
||||
immediately to the upstream caller. This minimizes buffering.
|
||||
|
||||
Consider this case:
|
||||
|
||||
```js
|
||||
const {PassThrough} = require('stream')
|
||||
const p1 = new PassThrough({ highWaterMark: 1024 })
|
||||
const p2 = new PassThrough({ highWaterMark: 1024 })
|
||||
const p3 = new PassThrough({ highWaterMark: 1024 })
|
||||
const p4 = new PassThrough({ highWaterMark: 1024 })
|
||||
|
||||
p1.pipe(p2).pipe(p3).pipe(p4)
|
||||
p4.on('data', () => console.log('made it through'))
|
||||
|
||||
// this returns false and buffers, then writes to p2 on next tick (1)
|
||||
// p2 returns false and buffers, pausing p1, then writes to p3 on next tick (2)
|
||||
// p3 returns false and buffers, pausing p2, then writes to p4 on next tick (3)
|
||||
// p4 returns false and buffers, pausing p3, then emits 'data' and 'drain'
|
||||
// on next tick (4)
|
||||
// p3 sees p4's 'drain' event, and calls resume(), emitting 'resume' and
|
||||
// 'drain' on next tick (5)
|
||||
// p2 sees p3's 'drain', calls resume(), emits 'resume' and 'drain' on next tick (6)
|
||||
// p1 sees p2's 'drain', calls resume(), emits 'resume' and 'drain' on next
|
||||
// tick (7)
|
||||
|
||||
p1.write(Buffer.alloc(2048)) // returns false
|
||||
```
|
||||
|
||||
Along the way, the data was buffered and deferred at each stage, and
|
||||
multiple event deferrals happened, for an unblocked pipeline where it was
|
||||
perfectly safe to write all the way through!
|
||||
|
||||
Furthermore, setting a `highWaterMark` of `1024` might lead someone reading
|
||||
the code to think an advisory maximum of 1KiB is being set for the
|
||||
pipeline. However, the actual advisory buffering level is the _sum_ of
|
||||
`highWaterMark` values, since each one has its own bucket.
|
||||
|
||||
Consider the Minipass case:
|
||||
|
||||
```js
|
||||
const m1 = new Minipass()
|
||||
const m2 = new Minipass()
|
||||
const m3 = new Minipass()
|
||||
const m4 = new Minipass()
|
||||
|
||||
m1.pipe(m2).pipe(m3).pipe(m4)
|
||||
m4.on('data', () => console.log('made it through'))
|
||||
|
||||
// m1 is flowing, so it writes the data to m2 immediately
|
||||
// m2 is flowing, so it writes the data to m3 immediately
|
||||
// m3 is flowing, so it writes the data to m4 immediately
|
||||
// m4 is flowing, so it fires the 'data' event immediately, returns true
|
||||
// m4's write returned true, so m3 is still flowing, returns true
|
||||
// m3's write returned true, so m2 is still flowing, returns true
|
||||
// m2's write returned true, so m1 is still flowing, returns true
|
||||
// No event deferrals or buffering along the way!
|
||||
|
||||
m1.write(Buffer.alloc(2048)) // returns true
|
||||
```
|
||||
|
||||
It is extremely unlikely that you _don't_ want to buffer any data written,
|
||||
or _ever_ buffer data that can be flushed all the way through. Neither
|
||||
node-core streams nor Minipass ever fail to buffer written data, but
|
||||
node-core streams do a lot of unnecessary buffering and pausing.
|
||||
|
||||
As always, the faster implementation is the one that does less stuff and
|
||||
waits less time to do it.
|
||||
|
||||
### Immediately emit `end` for empty streams (when not paused)
|
||||
|
||||
If a stream is not paused, and `end()` is called before writing any data
|
||||
into it, then it will emit `end` immediately.
|
||||
|
||||
If you have logic that occurs on the `end` event which you don't want to
|
||||
potentially happen immediately (for example, closing file descriptors,
|
||||
moving on to the next entry in an archive parse stream, etc.) then be sure
|
||||
to call `stream.pause()` on creation, and then `stream.resume()` once you
|
||||
are ready to respond to the `end` event.
|
||||
|
||||
### Emit `end` When Asked
|
||||
|
||||
One hazard of immediately emitting `'end'` is that you may not yet have had
|
||||
a chance to add a listener. In order to avoid this hazard, Minipass
|
||||
streams safely re-emit the `'end'` event if a new listener is added after
|
||||
`'end'` has been emitted.
|
||||
|
||||
Ie, if you do `stream.on('end', someFunction)`, and the stream has already
|
||||
emitted `end`, then it will call the handler right away. (You can think of
|
||||
this somewhat like attaching a new `.then(fn)` to a previously-resolved
|
||||
Promise.)
|
||||
|
||||
To prevent calling handlers multiple times who would not expect multiple
|
||||
ends to occur, all listeners are removed from the `'end'` event whenever it
|
||||
is emitted.
|
||||
|
||||
### Impact of "immediate flow" on Tee-streams
|
||||
|
||||
A "tee stream" is a stream piping to multiple destinations:
|
||||
|
||||
```js
|
||||
const tee = new Minipass()
|
||||
t.pipe(dest1)
|
||||
t.pipe(dest2)
|
||||
t.write('foo') // goes to both destinations
|
||||
```
|
||||
|
||||
Since Minipass streams _immediately_ process any pending data through the
|
||||
pipeline when a new pipe destination is added, this can have surprising
|
||||
effects, especially when a stream comes in from some other function and may
|
||||
or may not have data in its buffer.
|
||||
|
||||
```js
|
||||
// WARNING! WILL LOSE DATA!
|
||||
const src = new Minipass()
|
||||
src.write('foo')
|
||||
src.pipe(dest1) // 'foo' chunk flows to dest1 immediately, and is gone
|
||||
src.pipe(dest2) // gets nothing!
|
||||
```
|
||||
|
||||
The solution is to create a dedicated tee-stream junction that pipes to
|
||||
both locations, and then pipe to _that_ instead.
|
||||
|
||||
```js
|
||||
// Safe example: tee to both places
|
||||
const src = new Minipass()
|
||||
src.write('foo')
|
||||
const tee = new Minipass()
|
||||
tee.pipe(dest1)
|
||||
tee.pipe(dest2)
|
||||
stream.pipe(tee) // tee gets 'foo', pipes to both locations
|
||||
```
|
||||
|
||||
The same caveat applies to `on('data')` event listeners. The first one
|
||||
added will _immediately_ receive all of the data, leaving nothing for the
|
||||
second:
|
||||
|
||||
```js
|
||||
// WARNING! WILL LOSE DATA!
|
||||
const src = new Minipass()
|
||||
src.write('foo')
|
||||
src.on('data', handler1) // receives 'foo' right away
|
||||
src.on('data', handler2) // nothing to see here!
|
||||
```
|
||||
|
||||
Using a dedicated tee-stream can be used in this case as well:
|
||||
|
||||
```js
|
||||
// Safe example: tee to both data handlers
|
||||
const src = new Minipass()
|
||||
src.write('foo')
|
||||
const tee = new Minipass()
|
||||
tee.on('data', handler1)
|
||||
tee.on('data', handler2)
|
||||
src.pipe(tee)
|
||||
```
|
||||
|
||||
## USAGE
|
||||
|
||||
It's a stream! Use it like a stream and it'll most likely do what you want.
|
||||
|
||||
```js
|
||||
const MiniPass = require('minipass')
|
||||
const mp = new MiniPass(options) // optional: { encoding }
|
||||
const Minipass = require('minipass')
|
||||
const mp = new Minipass(options) // optional: { encoding, objectMode }
|
||||
mp.write('foo')
|
||||
mp.pipe(someOtherStream)
|
||||
mp.end('bar')
|
||||
```
|
||||
|
||||
### OPTIONS
|
||||
|
||||
* `encoding` How would you like the data coming _out_ of the stream to be
|
||||
encoded? Accepts any values that can be passed to `Buffer.toString()`.
|
||||
* `objectMode` Emit data exactly as it comes in. This will be flipped on
|
||||
by default if you write() something other than a string or Buffer at any
|
||||
point. Setting `objectMode: true` will prevent setting any encoding
|
||||
value.
|
||||
|
||||
### API
|
||||
|
||||
Implements the user-facing portions of Node.js's `Readable` and `Writable`
|
||||
streams.
|
||||
|
||||
### Methods
|
||||
|
||||
* `write(chunk, [encoding], [callback])` - Put data in. (Note that, in the
|
||||
base Minipass class, the same data will come out.) Returns `false` if
|
||||
the stream will buffer the next write, or true if it's still in
|
||||
"flowing" mode.
|
||||
* `end([chunk, [encoding]], [callback])` - Signal that you have no more
|
||||
data to write. This will queue an `end` event to be fired when all the
|
||||
data has been consumed.
|
||||
* `setEncoding(encoding)` - Set the encoding for data coming of the
|
||||
stream. This can only be done once.
|
||||
* `pause()` - No more data for a while, please. This also prevents `end`
|
||||
from being emitted for empty streams until the stream is resumed.
|
||||
* `resume()` - Resume the stream. If there's data in the buffer, it is
|
||||
all discarded. Any buffered events are immediately emitted.
|
||||
* `pipe(dest)` - Send all output to the stream provided. There is no way
|
||||
to unpipe. When data is emitted, it is immediately written to any and
|
||||
all pipe destinations.
|
||||
* `on(ev, fn)`, `emit(ev, fn)` - Minipass streams are EventEmitters.
|
||||
Some events are given special treatment, however. (See below under
|
||||
"events".)
|
||||
* `promise()` - Returns a Promise that resolves when the stream emits
|
||||
`end`, or rejects if the stream emits `error`.
|
||||
* `collect()` - Return a Promise that resolves on `end` with an array
|
||||
containing each chunk of data that was emitted, or rejects if the
|
||||
stream emits `error`. Note that this consumes the stream data.
|
||||
* `concat()` - Same as `collect()`, but concatenates the data into a
|
||||
single Buffer object. Will reject the returned promise if the stream is
|
||||
in objectMode, or if it goes into objectMode by the end of the data.
|
||||
* `read(n)` - Consume `n` bytes of data out of the buffer. If `n` is not
|
||||
provided, then consume all of it. If `n` bytes are not available, then
|
||||
it returns null. **Note** consuming streams in this way is less
|
||||
efficient, and can lead to unnecessary Buffer copying.
|
||||
* `destroy([er])` - Destroy the stream. If an error is provided, then an
|
||||
`'error'` event is emitted. If the stream has a `close()` method, and
|
||||
has not emitted a `'close'` event yet, then `stream.close()` will be
|
||||
called. Any Promises returned by `.promise()`, `.collect()` or
|
||||
`.concat()` will be rejected. After being destroyed, writing to the
|
||||
stream will emit an error. No more data will be emitted if the stream is
|
||||
destroyed, even if it was previously buffered.
|
||||
|
||||
### Properties
|
||||
|
||||
* `bufferLength` Read-only. Total number of bytes buffered, or in the case
|
||||
of objectMode, the total number of objects.
|
||||
* `encoding` The encoding that has been set. (Setting this is equivalent
|
||||
to calling `setEncoding(enc)` and has the same prohibition against
|
||||
setting multiple times.)
|
||||
* `flowing` Read-only. Boolean indicating whether a chunk written to the
|
||||
stream will be immediately emitted.
|
||||
* `emittedEnd` Read-only. Boolean indicating whether the end-ish events
|
||||
(ie, `end`, `prefinish`, `finish`) have been emitted. Note that
|
||||
listening on any end-ish event will immediateyl re-emit it if it has
|
||||
already been emitted.
|
||||
* `writable` Whether the stream is writable. Default `true`. Set to
|
||||
`false` when `end()`
|
||||
* `readable` Whether the stream is readable. Default `true`.
|
||||
* `buffer` A [yallist](http://npm.im/yallist) linked list of chunks written
|
||||
to the stream that have not yet been emitted. (It's probably a bad idea
|
||||
to mess with this.)
|
||||
* `pipes` A [yallist](http://npm.im/yallist) linked list of streams that
|
||||
this stream is piping into. (It's probably a bad idea to mess with
|
||||
this.)
|
||||
* `destroyed` A getter that indicates whether the stream was destroyed.
|
||||
* `paused` True if the stream has been explicitly paused, otherwise false.
|
||||
* `objectMode` Indicates whether the stream is in `objectMode`. Once set
|
||||
to `true`, it cannot be set to `false`.
|
||||
|
||||
### Events
|
||||
|
||||
* `data` Emitted when there's data to read. Argument is the data to read.
|
||||
This is never emitted while not flowing. If a listener is attached, that
|
||||
will resume the stream.
|
||||
* `end` Emitted when there's no more data to read. This will be emitted
|
||||
immediately for empty streams when `end()` is called. If a listener is
|
||||
attached, and `end` was already emitted, then it will be emitted again.
|
||||
All listeners are removed when `end` is emitted.
|
||||
* `prefinish` An end-ish event that follows the same logic as `end` and is
|
||||
emitted in the same conditions where `end` is emitted. Emitted after
|
||||
`'end'`.
|
||||
* `finish` An end-ish event that follows the same logic as `end` and is
|
||||
emitted in the same conditions where `end` is emitted. Emitted after
|
||||
`'prefinish'`.
|
||||
* `close` An indication that an underlying resource has been released.
|
||||
Minipass does not emit this event, but will defer it until after `end`
|
||||
has been emitted, since it throws off some stream libraries otherwise.
|
||||
* `drain` Emitted when the internal buffer empties, and it is again
|
||||
suitable to `write()` into the stream.
|
||||
* `readable` Emitted when data is buffered and ready to be read by a
|
||||
consumer.
|
||||
* `resume` Emitted when stream changes state from buffering to flowing
|
||||
mode. (Ie, when `resume` is called, `pipe` is called, or a `data` event
|
||||
listener is added.)
|
||||
|
||||
### Static Methods
|
||||
|
||||
* `Minipass.isStream(stream)` Returns `true` if the argument is a stream,
|
||||
and false otherwise. To be considered a stream, the object must be
|
||||
either an instance of Minipass, or an EventEmitter that has either a
|
||||
`pipe()` method, or both `write()` and `end()` methods. (Pretty much any
|
||||
stream in node-land will return `true` for this.)
|
||||
|
||||
## EXAMPLES
|
||||
|
||||
Here are some examples of things you can do with Minipass streams.
|
||||
|
||||
### simple "are you done yet" promise
|
||||
|
||||
```js
|
||||
mp.promise().then(() => {
|
||||
// stream is finished
|
||||
}, er => {
|
||||
// stream emitted an error
|
||||
})
|
||||
```
|
||||
|
||||
### collecting
|
||||
|
||||
```js
|
||||
@@ -57,6 +406,19 @@ mp.collect().then(all => {
|
||||
})
|
||||
```
|
||||
|
||||
### collecting into a single blob
|
||||
|
||||
This is a bit slower because it concatenates the data into one chunk for
|
||||
you, but if you're going to do it yourself anyway, it's convenient this
|
||||
way:
|
||||
|
||||
```js
|
||||
mp.concat().then(onebigchunk => {
|
||||
// onebigchunk is a string if the stream
|
||||
// had an encoding set, or a buffer otherwise.
|
||||
})
|
||||
```
|
||||
|
||||
### iteration
|
||||
|
||||
You can iterate over streams synchronously or asynchronously in
|
||||
@@ -122,3 +484,123 @@ async function consume () {
|
||||
consume().then(res => console.log(res))
|
||||
// logs `foo\n` 5 times, and then `ok`
|
||||
```
|
||||
|
||||
### subclass that `console.log()`s everything written into it
|
||||
|
||||
```js
|
||||
class Logger extends Minipass {
|
||||
write (chunk, encoding, callback) {
|
||||
console.log('WRITE', chunk, encoding)
|
||||
return super.write(chunk, encoding, callback)
|
||||
}
|
||||
end (chunk, encoding, callback) {
|
||||
console.log('END', chunk, encoding)
|
||||
return super.end(chunk, encoding, callback)
|
||||
}
|
||||
}
|
||||
|
||||
someSource.pipe(new Logger()).pipe(someDest)
|
||||
```
|
||||
|
||||
### same thing, but using an inline anonymous class
|
||||
|
||||
```js
|
||||
// js classes are fun
|
||||
someSource
|
||||
.pipe(new (class extends Minipass {
|
||||
emit (ev, ...data) {
|
||||
// let's also log events, because debugging some weird thing
|
||||
console.log('EMIT', ev)
|
||||
return super.emit(ev, ...data)
|
||||
}
|
||||
write (chunk, encoding, callback) {
|
||||
console.log('WRITE', chunk, encoding)
|
||||
return super.write(chunk, encoding, callback)
|
||||
}
|
||||
end (chunk, encoding, callback) {
|
||||
console.log('END', chunk, encoding)
|
||||
return super.end(chunk, encoding, callback)
|
||||
}
|
||||
}))
|
||||
.pipe(someDest)
|
||||
```
|
||||
|
||||
### subclass that defers 'end' for some reason
|
||||
|
||||
```js
|
||||
class SlowEnd extends Minipass {
|
||||
emit (ev, ...args) {
|
||||
if (ev === 'end') {
|
||||
console.log('going to end, hold on a sec')
|
||||
setTimeout(() => {
|
||||
console.log('ok, ready to end now')
|
||||
super.emit('end', ...args)
|
||||
}, 100)
|
||||
} else {
|
||||
return super.emit(ev, ...args)
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### transform that creates newline-delimited JSON
|
||||
|
||||
```js
|
||||
class NDJSONEncode extends Minipass {
|
||||
write (obj, cb) {
|
||||
try {
|
||||
// JSON.stringify can throw, emit an error on that
|
||||
return super.write(JSON.stringify(obj) + '\n', 'utf8', cb)
|
||||
} catch (er) {
|
||||
this.emit('error', er)
|
||||
}
|
||||
}
|
||||
end (obj, cb) {
|
||||
if (typeof obj === 'function') {
|
||||
cb = obj
|
||||
obj = undefined
|
||||
}
|
||||
if (obj !== undefined) {
|
||||
this.write(obj)
|
||||
}
|
||||
return super.end(cb)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### transform that parses newline-delimited JSON
|
||||
|
||||
```js
|
||||
class NDJSONDecode extends Minipass {
|
||||
constructor (options) {
|
||||
// always be in object mode, as far as Minipass is concerned
|
||||
super({ objectMode: true })
|
||||
this._jsonBuffer = ''
|
||||
}
|
||||
write (chunk, encoding, cb) {
|
||||
if (typeof chunk === 'string' &&
|
||||
typeof encoding === 'string' &&
|
||||
encoding !== 'utf8') {
|
||||
chunk = Buffer.from(chunk, encoding).toString()
|
||||
} else if (Buffer.isBuffer(chunk))
|
||||
chunk = chunk.toString()
|
||||
}
|
||||
if (typeof encoding === 'function') {
|
||||
cb = encoding
|
||||
}
|
||||
const jsonData = (this._jsonBuffer + chunk).split('\n')
|
||||
this._jsonBuffer = jsonData.pop()
|
||||
for (let i = 0; i < jsonData.length; i++) {
|
||||
let parsed
|
||||
try {
|
||||
super.write(parsed)
|
||||
} catch (er) {
|
||||
this.emit('error', er)
|
||||
continue
|
||||
}
|
||||
}
|
||||
if (cb)
|
||||
cb()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
216
node_modules/fsevents/node_modules/minipass/index.js
generated
vendored
216
node_modules/fsevents/node_modules/minipass/index.js
generated
vendored
@@ -1,39 +1,62 @@
|
||||
'use strict'
|
||||
const EE = require('events')
|
||||
const Yallist = require('yallist')
|
||||
const SD = require('string_decoder').StringDecoder
|
||||
|
||||
const EOF = Symbol('EOF')
|
||||
const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
|
||||
const EMITTED_END = Symbol('emittedEnd')
|
||||
const EMITTING_END = Symbol('emittingEnd')
|
||||
const CLOSED = Symbol('closed')
|
||||
const READ = Symbol('read')
|
||||
const FLUSH = Symbol('flush')
|
||||
const doIter = process.env._MP_NO_ITERATOR_SYMBOLS_ !== '1'
|
||||
const ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol('asyncIterator not implemented')
|
||||
const ITERATOR = doIter && Symbol.iterator || Symbol('iterator not implemented')
|
||||
const FLUSHCHUNK = Symbol('flushChunk')
|
||||
const SD = require('string_decoder').StringDecoder
|
||||
const ENCODING = Symbol('encoding')
|
||||
const DECODER = Symbol('decoder')
|
||||
const FLOWING = Symbol('flowing')
|
||||
const PAUSED = Symbol('paused')
|
||||
const RESUME = Symbol('resume')
|
||||
const BUFFERLENGTH = Symbol('bufferLength')
|
||||
const BUFFERPUSH = Symbol('bufferPush')
|
||||
const BUFFERSHIFT = Symbol('bufferShift')
|
||||
const OBJECTMODE = Symbol('objectMode')
|
||||
const DESTROYED = Symbol('destroyed')
|
||||
|
||||
// TODO remove when Node v8 support drops
|
||||
const doIter = global._MP_NO_ITERATOR_SYMBOLS_ !== '1'
|
||||
const ASYNCITERATOR = doIter && Symbol.asyncIterator
|
||||
|| Symbol('asyncIterator not implemented')
|
||||
const ITERATOR = doIter && Symbol.iterator
|
||||
|| Symbol('iterator not implemented')
|
||||
|
||||
// Buffer in node 4.x < 4.5.0 doesn't have working Buffer.from
|
||||
// or Buffer.alloc, and Buffer in node 10 deprecated the ctor.
|
||||
// .M, this is fine .\^/M..
|
||||
let B = Buffer
|
||||
/* istanbul ignore next */
|
||||
if (!B.alloc) {
|
||||
B = require('safe-buffer').Buffer
|
||||
}
|
||||
const B = Buffer.alloc ? Buffer
|
||||
: /* istanbul ignore next */ require('safe-buffer').Buffer
|
||||
|
||||
module.exports = class MiniPass extends EE {
|
||||
// events that mean 'the stream is over'
|
||||
// these are treated specially, and re-emitted
|
||||
// if they are listened for after emitting.
|
||||
const isEndish = ev =>
|
||||
ev === 'end' ||
|
||||
ev === 'finish' ||
|
||||
ev === 'prefinish'
|
||||
|
||||
const isArrayBuffer = b => b instanceof ArrayBuffer ||
|
||||
typeof b === 'object' &&
|
||||
b.constructor &&
|
||||
b.constructor.name === 'ArrayBuffer' &&
|
||||
b.byteLength >= 0
|
||||
|
||||
const isArrayBufferView = b => !B.isBuffer(b) && ArrayBuffer.isView(b)
|
||||
|
||||
module.exports = class Minipass extends EE {
|
||||
constructor (options) {
|
||||
super()
|
||||
this[FLOWING] = false
|
||||
// whether we're explicitly paused
|
||||
this[PAUSED] = false
|
||||
this.pipes = new Yallist()
|
||||
this.buffer = new Yallist()
|
||||
this[OBJECTMODE] = options && options.objectMode || false
|
||||
@@ -46,10 +69,12 @@ module.exports = class MiniPass extends EE {
|
||||
this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
|
||||
this[EOF] = false
|
||||
this[EMITTED_END] = false
|
||||
this[EMITTING_END] = false
|
||||
this[CLOSED] = false
|
||||
this.writable = true
|
||||
this.readable = true
|
||||
this[BUFFERLENGTH] = 0
|
||||
this[DESTROYED] = false
|
||||
}
|
||||
|
||||
get bufferLength () { return this[BUFFERLENGTH] }
|
||||
@@ -76,16 +101,52 @@ module.exports = class MiniPass extends EE {
|
||||
this.encoding = enc
|
||||
}
|
||||
|
||||
get objectMode () { return this[OBJECTMODE] }
|
||||
set objectMode (ॐ ) { this[OBJECTMODE] = this[OBJECTMODE] || !!ॐ }
|
||||
|
||||
write (chunk, encoding, cb) {
|
||||
if (this[EOF])
|
||||
throw new Error('write after end')
|
||||
|
||||
if (this[DESTROYED]) {
|
||||
this.emit('error', Object.assign(
|
||||
new Error('Cannot call write after a stream was destroyed'),
|
||||
{ code: 'ERR_STREAM_DESTROYED' }
|
||||
))
|
||||
return true
|
||||
}
|
||||
|
||||
if (typeof encoding === 'function')
|
||||
cb = encoding, encoding = 'utf8'
|
||||
|
||||
if (!encoding)
|
||||
encoding = 'utf8'
|
||||
|
||||
// convert array buffers and typed array views into buffers
|
||||
// at some point in the future, we may want to do the opposite!
|
||||
// leave strings and buffers as-is
|
||||
// anything else switches us into object mode
|
||||
if (!this[OBJECTMODE] && !B.isBuffer(chunk)) {
|
||||
if (isArrayBufferView(chunk))
|
||||
chunk = B.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)
|
||||
else if (isArrayBuffer(chunk))
|
||||
chunk = B.from(chunk)
|
||||
else if (typeof chunk !== 'string')
|
||||
// use the setter so we throw if we have encoding set
|
||||
this.objectMode = true
|
||||
}
|
||||
|
||||
// this ensures at this point that the chunk is a buffer or string
|
||||
// don't buffer it up or send it to the decoder
|
||||
if (!this.objectMode && !chunk.length) {
|
||||
const ret = this.flowing
|
||||
if (this[BUFFERLENGTH] !== 0)
|
||||
this.emit('readable')
|
||||
if (cb)
|
||||
cb()
|
||||
return ret
|
||||
}
|
||||
|
||||
// fast-path writing strings of same encoding to a stream with
|
||||
// an empty buffer, skipping the buffer/decoder dance
|
||||
if (typeof chunk === 'string' && !this[OBJECTMODE] &&
|
||||
@@ -102,13 +163,17 @@ module.exports = class MiniPass extends EE {
|
||||
? (this.emit('data', chunk), this.flowing)
|
||||
: (this[BUFFERPUSH](chunk), false)
|
||||
} finally {
|
||||
this.emit('readable')
|
||||
if (this[BUFFERLENGTH] !== 0)
|
||||
this.emit('readable')
|
||||
if (cb)
|
||||
cb()
|
||||
}
|
||||
}
|
||||
|
||||
read (n) {
|
||||
if (this[DESTROYED])
|
||||
return null
|
||||
|
||||
try {
|
||||
if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH])
|
||||
return null
|
||||
@@ -161,12 +226,22 @@ module.exports = class MiniPass extends EE {
|
||||
this.once('end', cb)
|
||||
this[EOF] = true
|
||||
this.writable = false
|
||||
if (this.flowing)
|
||||
|
||||
// if we haven't written anything, then go ahead and emit,
|
||||
// even if we're not reading.
|
||||
// we'll re-emit if a new 'end' listener is added anyway.
|
||||
// This makes MP more suitable to write-only use cases.
|
||||
if (this.flowing || !this[PAUSED])
|
||||
this[MAYBE_EMIT_END]()
|
||||
return this
|
||||
}
|
||||
|
||||
// don't let the internal resume be overwritten
|
||||
[RESUME] () {
|
||||
if (this[DESTROYED])
|
||||
return
|
||||
|
||||
this[PAUSED] = false
|
||||
this[FLOWING] = true
|
||||
this.emit('resume')
|
||||
if (this.buffer.length)
|
||||
@@ -183,12 +258,21 @@ module.exports = class MiniPass extends EE {
|
||||
|
||||
pause () {
|
||||
this[FLOWING] = false
|
||||
this[PAUSED] = true
|
||||
}
|
||||
|
||||
get destroyed () {
|
||||
return this[DESTROYED]
|
||||
}
|
||||
|
||||
get flowing () {
|
||||
return this[FLOWING]
|
||||
}
|
||||
|
||||
get paused () {
|
||||
return this[PAUSED]
|
||||
}
|
||||
|
||||
[BUFFERPUSH] (chunk) {
|
||||
if (this[OBJECTMODE])
|
||||
this[BUFFERLENGTH] += 1
|
||||
@@ -219,13 +303,24 @@ module.exports = class MiniPass extends EE {
|
||||
}
|
||||
|
||||
pipe (dest, opts) {
|
||||
if (this[DESTROYED])
|
||||
return
|
||||
|
||||
const ended = this[EMITTED_END]
|
||||
opts = opts || {}
|
||||
if (dest === process.stdout || dest === process.stderr)
|
||||
(opts = opts || {}).end = false
|
||||
opts.end = false
|
||||
else
|
||||
opts.end = opts.end !== false
|
||||
|
||||
const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() }
|
||||
this.pipes.push(p)
|
||||
|
||||
dest.on('drain', p.ondrain)
|
||||
this[RESUME]()
|
||||
// piping an ended stream ends immediately
|
||||
if (ended && p.opts.end)
|
||||
p.dest.end()
|
||||
return dest
|
||||
}
|
||||
|
||||
@@ -239,9 +334,9 @@ module.exports = class MiniPass extends EE {
|
||||
} finally {
|
||||
if (ev === 'data' && !this.pipes.length && !this.flowing)
|
||||
this[RESUME]()
|
||||
else if (ev === 'end' && this[EMITTED_END]) {
|
||||
super.emit('end')
|
||||
this.removeAllListeners('end')
|
||||
else if (isEndish(ev) && this[EMITTED_END]) {
|
||||
super.emit(ev)
|
||||
this.removeAllListeners(ev)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -251,23 +346,34 @@ module.exports = class MiniPass extends EE {
|
||||
}
|
||||
|
||||
[MAYBE_EMIT_END] () {
|
||||
if (!this[EMITTED_END] && this.buffer.length === 0 && this[EOF]) {
|
||||
if (!this[EMITTING_END] &&
|
||||
!this[EMITTED_END] &&
|
||||
!this[DESTROYED] &&
|
||||
this.buffer.length === 0 &&
|
||||
this[EOF]) {
|
||||
this[EMITTING_END] = true
|
||||
this.emit('end')
|
||||
this.emit('prefinish')
|
||||
this.emit('finish')
|
||||
if (this[CLOSED])
|
||||
this.emit('close')
|
||||
this[EMITTING_END] = false
|
||||
}
|
||||
}
|
||||
|
||||
emit (ev, data) {
|
||||
if (ev === 'data') {
|
||||
// error and close are only events allowed after calling destroy()
|
||||
if (ev !== 'error' && ev !== 'close' && ev !== DESTROYED && this[DESTROYED])
|
||||
return
|
||||
else if (ev === 'data') {
|
||||
if (!data)
|
||||
return
|
||||
|
||||
if (this.pipes.length)
|
||||
this.pipes.forEach(p => p.dest.write(data) || this.pause())
|
||||
this.pipes.forEach(p =>
|
||||
p.dest.write(data) === false && this.pause())
|
||||
} else if (ev === 'end') {
|
||||
// only actual end gets this treatment
|
||||
if (this[EMITTED_END] === true)
|
||||
return
|
||||
|
||||
@@ -284,16 +390,17 @@ module.exports = class MiniPass extends EE {
|
||||
|
||||
this.pipes.forEach(p => {
|
||||
p.dest.removeListener('drain', p.ondrain)
|
||||
if (!p.opts || p.opts.end !== false)
|
||||
if (p.opts.end)
|
||||
p.dest.end()
|
||||
})
|
||||
} else if (ev === 'close') {
|
||||
this[CLOSED] = true
|
||||
// don't emit close before 'end' and 'finish'
|
||||
if (!this[EMITTED_END])
|
||||
if (!this[EMITTED_END] && !this[DESTROYED])
|
||||
return
|
||||
}
|
||||
|
||||
// TODO: replace with a spread operator when Node v4 support drops
|
||||
const args = new Array(arguments.length)
|
||||
args[0] = ev
|
||||
args[1] = data
|
||||
@@ -306,20 +413,40 @@ module.exports = class MiniPass extends EE {
|
||||
try {
|
||||
return super.emit.apply(this, args)
|
||||
} finally {
|
||||
if (ev !== 'end')
|
||||
if (!isEndish(ev))
|
||||
this[MAYBE_EMIT_END]()
|
||||
else
|
||||
this.removeAllListeners('end')
|
||||
this.removeAllListeners(ev)
|
||||
}
|
||||
}
|
||||
|
||||
// const all = await stream.collect()
|
||||
collect () {
|
||||
const buf = []
|
||||
buf.dataLength = 0
|
||||
this.on('data', c => {
|
||||
buf.push(c)
|
||||
buf.dataLength += c.length
|
||||
})
|
||||
return this.promise().then(() => buf)
|
||||
}
|
||||
|
||||
// const data = await stream.concat()
|
||||
concat () {
|
||||
return this[OBJECTMODE]
|
||||
? Promise.reject(new Error('cannot concat in objectMode'))
|
||||
: this.collect().then(buf =>
|
||||
this[OBJECTMODE]
|
||||
? Promise.reject(new Error('cannot concat in objectMode'))
|
||||
: this[ENCODING] ? buf.join('') : B.concat(buf, buf.dataLength))
|
||||
}
|
||||
|
||||
// stream.promise().then(() => done, er => emitted error)
|
||||
promise () {
|
||||
return new Promise((resolve, reject) => {
|
||||
const buf = []
|
||||
this.on('data', c => buf.push(c))
|
||||
this.on('end', () => resolve(buf))
|
||||
this.on('error', reject)
|
||||
this.on(DESTROYED, () => reject(new Error('stream destroyed')))
|
||||
this.on('end', () => resolve())
|
||||
this.on('error', er => reject(er))
|
||||
})
|
||||
}
|
||||
|
||||
@@ -351,9 +478,11 @@ module.exports = class MiniPass extends EE {
|
||||
this.removeListener('data', ondata)
|
||||
resolve({ done: true })
|
||||
}
|
||||
const ondestroy = () => onerr(new Error('stream destroyed'))
|
||||
return new Promise((res, rej) => {
|
||||
reject = rej
|
||||
resolve = res
|
||||
this.once(DESTROYED, ondestroy)
|
||||
this.once('error', onerr)
|
||||
this.once('end', onend)
|
||||
this.once('data', ondata)
|
||||
@@ -372,4 +501,37 @@ module.exports = class MiniPass extends EE {
|
||||
}
|
||||
return { next }
|
||||
}
|
||||
|
||||
destroy (er) {
|
||||
if (this[DESTROYED]) {
|
||||
if (er)
|
||||
this.emit('error', er)
|
||||
else
|
||||
this.emit(DESTROYED)
|
||||
return this
|
||||
}
|
||||
|
||||
this[DESTROYED] = true
|
||||
|
||||
// throw away all buffered data, it's never coming out
|
||||
this.buffer = new Yallist()
|
||||
this[BUFFERLENGTH] = 0
|
||||
|
||||
if (typeof this.close === 'function' && !this[CLOSED])
|
||||
this.close()
|
||||
|
||||
if (er)
|
||||
this.emit('error', er)
|
||||
else // if no error to emit, still reject pending promises
|
||||
this.emit(DESTROYED)
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
static isStream (s) {
|
||||
return !!s && (s instanceof Minipass || s instanceof EE && (
|
||||
typeof s.pipe === 'function' || // readable
|
||||
(typeof s.write === 'function' && typeof s.end === 'function') // writable
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
41
node_modules/fsevents/node_modules/minipass/package.json
generated
vendored
41
node_modules/fsevents/node_modules/minipass/package.json
generated
vendored
@@ -1,36 +1,29 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"minipass@2.3.5",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "minipass@2.3.5",
|
||||
"_id": "minipass@2.3.5",
|
||||
"_from": "minipass@^2.8.6",
|
||||
"_id": "minipass@2.9.0",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
|
||||
"_integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
|
||||
"_location": "/fsevents/minipass",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "minipass@2.3.5",
|
||||
"raw": "minipass@^2.8.6",
|
||||
"name": "minipass",
|
||||
"escapedName": "minipass",
|
||||
"rawSpec": "2.3.5",
|
||||
"rawSpec": "^2.8.6",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.3.5"
|
||||
"fetchSpec": "^2.8.6"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/fs-minipass",
|
||||
"/fsevents/minizlib",
|
||||
"/fsevents/tar"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.3.5",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
|
||||
"_shasum": "e713762e7d3e32fed803115cf93e04bca9fcc9a6",
|
||||
"_spec": "minipass@^2.8.6",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/tar",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -43,10 +36,11 @@
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "minimal implementation of a PassThrough stream",
|
||||
"devDependencies": {
|
||||
"end-of-stream": "^1.4.0",
|
||||
"tap": "^12.0.1",
|
||||
"tap": "^14.6.5",
|
||||
"through2": "^2.0.3"
|
||||
},
|
||||
"files": [
|
||||
@@ -65,10 +59,13 @@
|
||||
"url": "git+https://github.com/isaacs/minipass.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100"
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "2.3.5"
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"version": "2.9.0"
|
||||
}
|
||||
|
||||
55
node_modules/fsevents/node_modules/minizlib/README.md
generated
vendored
55
node_modules/fsevents/node_modules/minizlib/README.md
generated
vendored
@@ -1,44 +1,53 @@
|
||||
# minizlib
|
||||
|
||||
A tiny fast zlib stream built on [minipass](http://npm.im/minipass)
|
||||
and Node.js's zlib binding.
|
||||
A fast zlib stream built on [minipass](http://npm.im/minipass) and
|
||||
Node.js's zlib binding.
|
||||
|
||||
This module was created to serve the needs of
|
||||
[node-tar](http://npm.im/tar) v2. If your needs are different, then
|
||||
it may not be for you.
|
||||
[node-tar](http://npm.im/tar) and
|
||||
[minipass-fetch](http://npm.im/minipass-fetch).
|
||||
|
||||
Brotli is supported in versions of node with a Brotli binding.
|
||||
|
||||
## How does this differ from the streams in `require('zlib')`?
|
||||
|
||||
First, there are no convenience methods to compress or decompress a
|
||||
buffer. If you want those, use the built-in `zlib` module. This is
|
||||
only streams.
|
||||
only streams. That being said, Minipass streams to make it fairly easy to
|
||||
use as one-liners: `new zlib.Deflate().end(data).read()` will return the
|
||||
deflate compressed result.
|
||||
|
||||
This module compresses and decompresses the data as fast as you feed
|
||||
it in. It is synchronous, and runs on the main process thread. Zlib
|
||||
operations can be high CPU, but they're very fast, and doing it this
|
||||
way means much less bookkeeping and artificial deferral.
|
||||
and Brotli operations can be high CPU, but they're very fast, and doing it
|
||||
this way means much less bookkeeping and artificial deferral.
|
||||
|
||||
Node's built in zlib streams are built on top of `stream.Transform`.
|
||||
They do the maximally safe thing with respect to consistent
|
||||
asynchrony, buffering, and backpressure.
|
||||
|
||||
This module _does_ support backpressure, and will buffer output chunks
|
||||
that are not consumed, but is less of a mediator between the input and
|
||||
output. There is no high or low watermarks, no state objects, and so
|
||||
artificial async deferrals. It will not protect you from Zalgo.
|
||||
See [Minipass](http://npm.im/minipass) for more on the differences between
|
||||
Node.js core streams and Minipass streams, and the convenience methods
|
||||
provided by that class.
|
||||
|
||||
If you write, data will be emitted right away. If you write
|
||||
everything synchronously in one tick, and you are listening to the
|
||||
`data` event to consume it, then it'll all be emitted right away in
|
||||
that same tick. If you want data to be emitted in the next tick, then
|
||||
write it in the next tick.
|
||||
## Classes
|
||||
|
||||
It is thus the responsibility of the reader and writer to manage their
|
||||
own consumption and process execution flow.
|
||||
- Deflate
|
||||
- Inflate
|
||||
- Gzip
|
||||
- Gunzip
|
||||
- DeflateRaw
|
||||
- InflateRaw
|
||||
- Unzip
|
||||
- BrotliCompress (Node v10 and higher)
|
||||
- BrotliDecompress (Node v10 and higher)
|
||||
|
||||
The goal is to compress and decompress as fast as possible, even for
|
||||
files that are too large to store all in one buffer.
|
||||
## USAGE
|
||||
|
||||
The API is very similar to the built-in zlib module. There are
|
||||
classes that you instantiate with `new` and they are streams that can
|
||||
be piped together.
|
||||
```js
|
||||
const zlib = require('minizlib')
|
||||
const input = sourceOfCompressedData()
|
||||
const decode = new zlib.BrotliDecompress()
|
||||
const output = whereToWriteTheDecodedData()
|
||||
input.pipe(decode).pipe(output)
|
||||
```
|
||||
|
||||
77
node_modules/fsevents/node_modules/minizlib/constants.js
generated
vendored
77
node_modules/fsevents/node_modules/minizlib/constants.js
generated
vendored
@@ -1,4 +1,11 @@
|
||||
module.exports = Object.freeze({
|
||||
// Update with any zlib constants that are added or changed in the future.
|
||||
// Node v6 didn't export this, so we just hard code the version and rely
|
||||
// on all the other hard-coded values from zlib v4736. When node v6
|
||||
// support drops, we can just export the realZlibConstants object.
|
||||
const realZlibConstants = require('zlib').constants ||
|
||||
/* istanbul ignore next */ { ZLIB_VERNUM: 4736 }
|
||||
|
||||
module.exports = Object.freeze(Object.assign(Object.create(null), {
|
||||
Z_NO_FLUSH: 0,
|
||||
Z_PARTIAL_FLUSH: 1,
|
||||
Z_SYNC_FLUSH: 2,
|
||||
@@ -23,7 +30,6 @@ module.exports = Object.freeze({
|
||||
Z_RLE: 3,
|
||||
Z_FIXED: 4,
|
||||
Z_DEFAULT_STRATEGY: 0,
|
||||
ZLIB_VERNUM: 4736,
|
||||
DEFLATE: 1,
|
||||
INFLATE: 2,
|
||||
GZIP: 3,
|
||||
@@ -31,6 +37,8 @@ module.exports = Object.freeze({
|
||||
DEFLATERAW: 5,
|
||||
INFLATERAW: 6,
|
||||
UNZIP: 7,
|
||||
BROTLI_DECODE: 8,
|
||||
BROTLI_ENCODE: 9,
|
||||
Z_MIN_WINDOWBITS: 8,
|
||||
Z_MAX_WINDOWBITS: 15,
|
||||
Z_DEFAULT_WINDOWBITS: 15,
|
||||
@@ -42,5 +50,66 @@ module.exports = Object.freeze({
|
||||
Z_DEFAULT_MEMLEVEL: 8,
|
||||
Z_MIN_LEVEL: -1,
|
||||
Z_MAX_LEVEL: 9,
|
||||
Z_DEFAULT_LEVEL: -1
|
||||
})
|
||||
Z_DEFAULT_LEVEL: -1,
|
||||
BROTLI_OPERATION_PROCESS: 0,
|
||||
BROTLI_OPERATION_FLUSH: 1,
|
||||
BROTLI_OPERATION_FINISH: 2,
|
||||
BROTLI_OPERATION_EMIT_METADATA: 3,
|
||||
BROTLI_MODE_GENERIC: 0,
|
||||
BROTLI_MODE_TEXT: 1,
|
||||
BROTLI_MODE_FONT: 2,
|
||||
BROTLI_DEFAULT_MODE: 0,
|
||||
BROTLI_MIN_QUALITY: 0,
|
||||
BROTLI_MAX_QUALITY: 11,
|
||||
BROTLI_DEFAULT_QUALITY: 11,
|
||||
BROTLI_MIN_WINDOW_BITS: 10,
|
||||
BROTLI_MAX_WINDOW_BITS: 24,
|
||||
BROTLI_LARGE_MAX_WINDOW_BITS: 30,
|
||||
BROTLI_DEFAULT_WINDOW: 22,
|
||||
BROTLI_MIN_INPUT_BLOCK_BITS: 16,
|
||||
BROTLI_MAX_INPUT_BLOCK_BITS: 24,
|
||||
BROTLI_PARAM_MODE: 0,
|
||||
BROTLI_PARAM_QUALITY: 1,
|
||||
BROTLI_PARAM_LGWIN: 2,
|
||||
BROTLI_PARAM_LGBLOCK: 3,
|
||||
BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: 4,
|
||||
BROTLI_PARAM_SIZE_HINT: 5,
|
||||
BROTLI_PARAM_LARGE_WINDOW: 6,
|
||||
BROTLI_PARAM_NPOSTFIX: 7,
|
||||
BROTLI_PARAM_NDIRECT: 8,
|
||||
BROTLI_DECODER_RESULT_ERROR: 0,
|
||||
BROTLI_DECODER_RESULT_SUCCESS: 1,
|
||||
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: 2,
|
||||
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: 3,
|
||||
BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: 0,
|
||||
BROTLI_DECODER_PARAM_LARGE_WINDOW: 1,
|
||||
BROTLI_DECODER_NO_ERROR: 0,
|
||||
BROTLI_DECODER_SUCCESS: 1,
|
||||
BROTLI_DECODER_NEEDS_MORE_INPUT: 2,
|
||||
BROTLI_DECODER_NEEDS_MORE_OUTPUT: 3,
|
||||
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE: -1,
|
||||
BROTLI_DECODER_ERROR_FORMAT_RESERVED: -2,
|
||||
BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE: -3,
|
||||
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET: -4,
|
||||
BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME: -5,
|
||||
BROTLI_DECODER_ERROR_FORMAT_CL_SPACE: -6,
|
||||
BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE: -7,
|
||||
BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT: -8,
|
||||
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1: -9,
|
||||
BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2: -10,
|
||||
BROTLI_DECODER_ERROR_FORMAT_TRANSFORM: -11,
|
||||
BROTLI_DECODER_ERROR_FORMAT_DICTIONARY: -12,
|
||||
BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS: -13,
|
||||
BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14,
|
||||
BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15,
|
||||
BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16,
|
||||
BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19,
|
||||
BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20,
|
||||
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21,
|
||||
BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS: -22,
|
||||
BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP: -25,
|
||||
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1: -26,
|
||||
BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2: -27,
|
||||
BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES: -30,
|
||||
BROTLI_DECODER_ERROR_UNREACHABLE: -31,
|
||||
}, realZlibConstants))
|
||||
|
||||
295
node_modules/fsevents/node_modules/minizlib/index.js
generated
vendored
295
node_modules/fsevents/node_modules/minizlib/index.js
generated
vendored
@@ -5,15 +5,21 @@ const Buffer = require('buffer').Buffer
|
||||
const realZlib = require('zlib')
|
||||
|
||||
const constants = exports.constants = require('./constants.js')
|
||||
const MiniPass = require('minipass')
|
||||
const Minipass = require('minipass')
|
||||
|
||||
const OriginalBufferConcat = Buffer.concat
|
||||
|
||||
class ZlibError extends Error {
|
||||
constructor (msg, errno) {
|
||||
super('zlib: ' + msg)
|
||||
this.errno = errno
|
||||
this.code = codes.get(errno)
|
||||
constructor (err) {
|
||||
super('zlib: ' + err.message)
|
||||
this.code = err.code
|
||||
this.errno = err.errno
|
||||
/* istanbul ignore if */
|
||||
if (!this.code)
|
||||
this.code = 'ZLIB_ERROR'
|
||||
|
||||
this.message = 'zlib: ' + err.message
|
||||
Error.captureStackTrace(this, this.constructor)
|
||||
}
|
||||
|
||||
get name () {
|
||||
@@ -21,126 +27,51 @@ class ZlibError extends Error {
|
||||
}
|
||||
}
|
||||
|
||||
// translation table for return codes.
|
||||
const codes = new Map([
|
||||
[constants.Z_OK, 'Z_OK'],
|
||||
[constants.Z_STREAM_END, 'Z_STREAM_END'],
|
||||
[constants.Z_NEED_DICT, 'Z_NEED_DICT'],
|
||||
[constants.Z_ERRNO, 'Z_ERRNO'],
|
||||
[constants.Z_STREAM_ERROR, 'Z_STREAM_ERROR'],
|
||||
[constants.Z_DATA_ERROR, 'Z_DATA_ERROR'],
|
||||
[constants.Z_MEM_ERROR, 'Z_MEM_ERROR'],
|
||||
[constants.Z_BUF_ERROR, 'Z_BUF_ERROR'],
|
||||
[constants.Z_VERSION_ERROR, 'Z_VERSION_ERROR']
|
||||
])
|
||||
|
||||
const validFlushFlags = new Set([
|
||||
constants.Z_NO_FLUSH,
|
||||
constants.Z_PARTIAL_FLUSH,
|
||||
constants.Z_SYNC_FLUSH,
|
||||
constants.Z_FULL_FLUSH,
|
||||
constants.Z_FINISH,
|
||||
constants.Z_BLOCK
|
||||
])
|
||||
|
||||
const strategies = new Set([
|
||||
constants.Z_FILTERED,
|
||||
constants.Z_HUFFMAN_ONLY,
|
||||
constants.Z_RLE,
|
||||
constants.Z_FIXED,
|
||||
constants.Z_DEFAULT_STRATEGY
|
||||
])
|
||||
|
||||
// the Zlib class they all inherit from
|
||||
// This thing manages the queue of requests, and returns
|
||||
// true or false if there is anything in the queue when
|
||||
// you call the .write() method.
|
||||
const _opts = Symbol('opts')
|
||||
const _flushFlag = Symbol('flushFlag')
|
||||
const _finishFlush = Symbol('finishFlush')
|
||||
const _finishFlushFlag = Symbol('finishFlushFlag')
|
||||
const _fullFlushFlag = Symbol('fullFlushFlag')
|
||||
const _handle = Symbol('handle')
|
||||
const _onError = Symbol('onError')
|
||||
const _sawError = Symbol('sawError')
|
||||
const _level = Symbol('level')
|
||||
const _strategy = Symbol('strategy')
|
||||
const _ended = Symbol('ended')
|
||||
const _defaultFullFlush = Symbol('_defaultFullFlush')
|
||||
|
||||
class Zlib extends MiniPass {
|
||||
class ZlibBase extends Minipass {
|
||||
constructor (opts, mode) {
|
||||
if (!opts || typeof opts !== 'object')
|
||||
throw new TypeError('invalid options for ZlibBase constructor')
|
||||
|
||||
super(opts)
|
||||
this[_ended] = false
|
||||
this[_opts] = opts = opts || {}
|
||||
if (opts.flush && !validFlushFlags.has(opts.flush)) {
|
||||
throw new TypeError('Invalid flush flag: ' + opts.flush)
|
||||
this[_opts] = opts
|
||||
|
||||
this[_flushFlag] = opts.flush
|
||||
this[_finishFlushFlag] = opts.finishFlush
|
||||
// this will throw if any options are invalid for the class selected
|
||||
try {
|
||||
this[_handle] = new realZlib[mode](opts)
|
||||
} catch (er) {
|
||||
// make sure that all errors get decorated properly
|
||||
throw new ZlibError(er)
|
||||
}
|
||||
if (opts.finishFlush && !validFlushFlags.has(opts.finishFlush)) {
|
||||
throw new TypeError('Invalid flush flag: ' + opts.finishFlush)
|
||||
}
|
||||
|
||||
this[_flushFlag] = opts.flush || constants.Z_NO_FLUSH
|
||||
this[_finishFlush] = typeof opts.finishFlush !== 'undefined' ?
|
||||
opts.finishFlush : constants.Z_FINISH
|
||||
|
||||
if (opts.chunkSize) {
|
||||
if (opts.chunkSize < constants.Z_MIN_CHUNK) {
|
||||
throw new RangeError('Invalid chunk size: ' + opts.chunkSize)
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.windowBits) {
|
||||
if (opts.windowBits < constants.Z_MIN_WINDOWBITS ||
|
||||
opts.windowBits > constants.Z_MAX_WINDOWBITS) {
|
||||
throw new RangeError('Invalid windowBits: ' + opts.windowBits)
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.level) {
|
||||
if (opts.level < constants.Z_MIN_LEVEL ||
|
||||
opts.level > constants.Z_MAX_LEVEL) {
|
||||
throw new RangeError('Invalid compression level: ' + opts.level)
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.memLevel) {
|
||||
if (opts.memLevel < constants.Z_MIN_MEMLEVEL ||
|
||||
opts.memLevel > constants.Z_MAX_MEMLEVEL) {
|
||||
throw new RangeError('Invalid memLevel: ' + opts.memLevel)
|
||||
}
|
||||
}
|
||||
|
||||
if (opts.strategy && !(strategies.has(opts.strategy)))
|
||||
throw new TypeError('Invalid strategy: ' + opts.strategy)
|
||||
|
||||
if (opts.dictionary) {
|
||||
if (!(opts.dictionary instanceof Buffer)) {
|
||||
throw new TypeError('Invalid dictionary: it should be a Buffer instance')
|
||||
}
|
||||
}
|
||||
|
||||
this[_handle] = new realZlib[mode](opts)
|
||||
|
||||
this[_onError] = (err) => {
|
||||
this[_sawError] = true
|
||||
// there is no way to cleanly recover.
|
||||
// continuing only obscures problems.
|
||||
this.close()
|
||||
|
||||
const error = new ZlibError(err.message, err.errno)
|
||||
this.emit('error', error)
|
||||
this.emit('error', err)
|
||||
}
|
||||
this[_handle].on('error', this[_onError])
|
||||
|
||||
const level = typeof opts.level === 'number' ? opts.level
|
||||
: constants.Z_DEFAULT_COMPRESSION
|
||||
|
||||
var strategy = typeof opts.strategy === 'number' ? opts.strategy
|
||||
: constants.Z_DEFAULT_STRATEGY
|
||||
|
||||
// API changed in node v9
|
||||
/* istanbul ignore next */
|
||||
|
||||
this[_level] = level
|
||||
this[_strategy] = strategy
|
||||
|
||||
this.once('end', this.close)
|
||||
this[_handle].on('error', er => this[_onError](new ZlibError(er)))
|
||||
this.once('end', () => this.close)
|
||||
}
|
||||
|
||||
close () {
|
||||
@@ -151,66 +82,26 @@ class Zlib extends MiniPass {
|
||||
}
|
||||
}
|
||||
|
||||
params (level, strategy) {
|
||||
if (!this[_handle])
|
||||
throw new Error('cannot switch params when binding is closed')
|
||||
|
||||
// no way to test this without also not supporting params at all
|
||||
/* istanbul ignore if */
|
||||
if (!this[_handle].params)
|
||||
throw new Error('not supported in this implementation')
|
||||
|
||||
if (level < constants.Z_MIN_LEVEL ||
|
||||
level > constants.Z_MAX_LEVEL) {
|
||||
throw new RangeError('Invalid compression level: ' + level)
|
||||
}
|
||||
|
||||
if (!(strategies.has(strategy)))
|
||||
throw new TypeError('Invalid strategy: ' + strategy)
|
||||
|
||||
if (this[_level] !== level || this[_strategy] !== strategy) {
|
||||
this.flush(constants.Z_SYNC_FLUSH)
|
||||
assert(this[_handle], 'zlib binding closed')
|
||||
// .params() calls .flush(), but the latter is always async in the
|
||||
// core zlib. We override .flush() temporarily to intercept that and
|
||||
// flush synchronously.
|
||||
const origFlush = this[_handle].flush
|
||||
this[_handle].flush = (flushFlag, cb) => {
|
||||
this[_handle].flush = origFlush
|
||||
this.flush(flushFlag)
|
||||
cb()
|
||||
}
|
||||
this[_handle].params(level, strategy)
|
||||
/* istanbul ignore else */
|
||||
if (this[_handle]) {
|
||||
this[_level] = level
|
||||
this[_strategy] = strategy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
reset () {
|
||||
assert(this[_handle], 'zlib binding closed')
|
||||
return this[_handle].reset()
|
||||
if (!this[_sawError]) {
|
||||
assert(this[_handle], 'zlib binding closed')
|
||||
return this[_handle].reset()
|
||||
}
|
||||
}
|
||||
|
||||
flush (kind) {
|
||||
if (kind === undefined)
|
||||
kind = constants.Z_FULL_FLUSH
|
||||
|
||||
flush (flushFlag) {
|
||||
if (this.ended)
|
||||
return
|
||||
|
||||
const flushFlag = this[_flushFlag]
|
||||
this[_flushFlag] = kind
|
||||
this.write(Buffer.alloc(0))
|
||||
this[_flushFlag] = flushFlag
|
||||
if (typeof flushFlag !== 'number')
|
||||
flushFlag = this[_fullFlushFlag]
|
||||
this.write(Object.assign(Buffer.alloc(0), { [_flushFlag]: flushFlag }))
|
||||
}
|
||||
|
||||
end (chunk, encoding, cb) {
|
||||
if (chunk)
|
||||
this.write(chunk, encoding)
|
||||
this.flush(this[_finishFlush])
|
||||
this.flush(this[_finishFlushFlag])
|
||||
this[_ended] = true
|
||||
return super.end(null, null, cb)
|
||||
}
|
||||
@@ -228,6 +119,8 @@ class Zlib extends MiniPass {
|
||||
if (typeof chunk === 'string')
|
||||
chunk = Buffer.from(chunk, encoding)
|
||||
|
||||
if (this[_sawError])
|
||||
return
|
||||
assert(this[_handle], 'zlib binding closed')
|
||||
|
||||
// _processChunk tries to .close() the native handle after it's done, so we
|
||||
@@ -242,11 +135,17 @@ class Zlib extends MiniPass {
|
||||
Buffer.concat = (args) => args
|
||||
let result
|
||||
try {
|
||||
result = this[_handle]._processChunk(chunk, this[_flushFlag])
|
||||
} catch (err) {
|
||||
this[_onError](err)
|
||||
} finally {
|
||||
const flushFlag = typeof chunk[_flushFlag] === 'number'
|
||||
? chunk[_flushFlag] : this[_flushFlag]
|
||||
result = this[_handle]._processChunk(chunk, flushFlag)
|
||||
// if we don't throw, reset it back how it was
|
||||
Buffer.concat = OriginalBufferConcat
|
||||
} catch (err) {
|
||||
// or if we do, put Buffer.concat() back before we emit error
|
||||
// Error events call into user code, which may call Buffer.concat()
|
||||
Buffer.concat = OriginalBufferConcat
|
||||
this[_onError](new ZlibError(err))
|
||||
} finally {
|
||||
if (this[_handle]) {
|
||||
// Core zlib resets `_handle` to null after attempting to close the
|
||||
// native handle. Our no-op handler prevented actual closure, but we
|
||||
@@ -280,6 +179,56 @@ class Zlib extends MiniPass {
|
||||
}
|
||||
}
|
||||
|
||||
class Zlib extends ZlibBase {
|
||||
constructor (opts, mode) {
|
||||
opts = opts || {}
|
||||
|
||||
opts.flush = opts.flush || constants.Z_NO_FLUSH
|
||||
opts.finishFlush = opts.finishFlush || constants.Z_FINISH
|
||||
super(opts, mode)
|
||||
|
||||
this[_fullFlushFlag] = constants.Z_FULL_FLUSH
|
||||
this[_level] = opts.level
|
||||
this[_strategy] = opts.strategy
|
||||
}
|
||||
|
||||
params (level, strategy) {
|
||||
if (this[_sawError])
|
||||
return
|
||||
|
||||
if (!this[_handle])
|
||||
throw new Error('cannot switch params when binding is closed')
|
||||
|
||||
// no way to test this without also not supporting params at all
|
||||
/* istanbul ignore if */
|
||||
if (!this[_handle].params)
|
||||
throw new Error('not supported in this implementation')
|
||||
|
||||
if (this[_level] !== level || this[_strategy] !== strategy) {
|
||||
this.flush(constants.Z_SYNC_FLUSH)
|
||||
assert(this[_handle], 'zlib binding closed')
|
||||
// .params() calls .flush(), but the latter is always async in the
|
||||
// core zlib. We override .flush() temporarily to intercept that and
|
||||
// flush synchronously.
|
||||
const origFlush = this[_handle].flush
|
||||
this[_handle].flush = (flushFlag, cb) => {
|
||||
this.flush(flushFlag)
|
||||
cb()
|
||||
}
|
||||
try {
|
||||
this[_handle].params(level, strategy)
|
||||
} finally {
|
||||
this[_handle].flush = origFlush
|
||||
}
|
||||
/* istanbul ignore else */
|
||||
if (this[_handle]) {
|
||||
this[_level] = level
|
||||
this[_strategy] = strategy
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// minimal 2-byte header
|
||||
class Deflate extends Zlib {
|
||||
constructor (opts) {
|
||||
@@ -326,6 +275,31 @@ class Unzip extends Zlib {
|
||||
}
|
||||
}
|
||||
|
||||
class Brotli extends ZlibBase {
|
||||
constructor (opts, mode) {
|
||||
opts = opts || {}
|
||||
|
||||
opts.flush = opts.flush || constants.BROTLI_OPERATION_PROCESS
|
||||
opts.finishFlush = opts.finishFlush || constants.BROTLI_OPERATION_FINISH
|
||||
|
||||
super(opts, mode)
|
||||
|
||||
this[_fullFlushFlag] = constants.BROTLI_OPERATION_FLUSH
|
||||
}
|
||||
}
|
||||
|
||||
class BrotliCompress extends Brotli {
|
||||
constructor (opts) {
|
||||
super(opts, 'BrotliCompress')
|
||||
}
|
||||
}
|
||||
|
||||
class BrotliDecompress extends Brotli {
|
||||
constructor (opts) {
|
||||
super(opts, 'BrotliDecompress')
|
||||
}
|
||||
}
|
||||
|
||||
exports.Deflate = Deflate
|
||||
exports.Inflate = Inflate
|
||||
exports.Gzip = Gzip
|
||||
@@ -333,3 +307,14 @@ exports.Gunzip = Gunzip
|
||||
exports.DeflateRaw = DeflateRaw
|
||||
exports.InflateRaw = InflateRaw
|
||||
exports.Unzip = Unzip
|
||||
/* istanbul ignore else */
|
||||
if (typeof realZlib.BrotliCompress === 'function') {
|
||||
exports.BrotliCompress = BrotliCompress
|
||||
exports.BrotliDecompress = BrotliDecompress
|
||||
} else {
|
||||
exports.BrotliCompress = exports.BrotliDecompress = class {
|
||||
constructor () {
|
||||
throw new Error('Brotli is not supported in this version of Node.js')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
34
node_modules/fsevents/node_modules/minizlib/package.json
generated
vendored
34
node_modules/fsevents/node_modules/minizlib/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"minizlib@1.2.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "minizlib@1.2.1",
|
||||
"_id": "minizlib@1.2.1",
|
||||
"_from": "minizlib@^1.2.1",
|
||||
"_id": "minizlib@1.3.3",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
|
||||
"_integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
|
||||
"_location": "/fsevents/minizlib",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "minizlib@1.2.1",
|
||||
"raw": "minizlib@^1.2.1",
|
||||
"name": "minizlib",
|
||||
"escapedName": "minizlib",
|
||||
"rawSpec": "1.2.1",
|
||||
"rawSpec": "^1.2.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.2.1"
|
||||
"fetchSpec": "^1.2.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/tar"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "1.2.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
|
||||
"_shasum": "2290de96818a34c29551c8a8d301216bd65a861d",
|
||||
"_spec": "minizlib@^1.2.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/tar",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -38,8 +31,9 @@
|
||||
"url": "https://github.com/isaacs/minizlib/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"minipass": "^2.2.1"
|
||||
"minipass": "^2.9.0"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.",
|
||||
"devDependencies": {
|
||||
"tap": "^12.0.1"
|
||||
@@ -72,5 +66,5 @@
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100 -J"
|
||||
},
|
||||
"version": "1.2.1"
|
||||
"version": "1.3.3"
|
||||
}
|
||||
|
||||
4
node_modules/fsevents/node_modules/ms/index.js
generated
vendored
4
node_modules/fsevents/node_modules/ms/index.js
generated
vendored
@@ -28,7 +28,7 @@ module.exports = function(val, options) {
|
||||
var type = typeof val;
|
||||
if (type === 'string' && val.length > 0) {
|
||||
return parse(val);
|
||||
} else if (type === 'number' && isNaN(val) === false) {
|
||||
} else if (type === 'number' && isFinite(val)) {
|
||||
return options.long ? fmtLong(val) : fmtShort(val);
|
||||
}
|
||||
throw new Error(
|
||||
@@ -50,7 +50,7 @@ function parse(str) {
|
||||
if (str.length > 100) {
|
||||
return;
|
||||
}
|
||||
var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
|
||||
var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
|
||||
str
|
||||
);
|
||||
if (!match) {
|
||||
|
||||
32
node_modules/fsevents/node_modules/ms/package.json
generated
vendored
32
node_modules/fsevents/node_modules/ms/package.json
generated
vendored
@@ -1,37 +1,31 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"ms@2.1.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "ms@2.1.1",
|
||||
"_id": "ms@2.1.1",
|
||||
"_from": "ms@^2.1.1",
|
||||
"_id": "ms@2.1.2",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
|
||||
"_integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"_location": "/fsevents/ms",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "ms@2.1.1",
|
||||
"raw": "ms@^2.1.1",
|
||||
"name": "ms",
|
||||
"escapedName": "ms",
|
||||
"rawSpec": "2.1.1",
|
||||
"rawSpec": "^2.1.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.1.1"
|
||||
"fetchSpec": "^2.1.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/debug"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.1.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"_shasum": "d09d1f357b443f493382a8eb3ccd183872ae6009",
|
||||
"_spec": "ms@^2.1.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/debug",
|
||||
"bugs": {
|
||||
"url": "https://github.com/zeit/ms/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Tiny millisecond conversion utility",
|
||||
"devDependencies": {
|
||||
"eslint": "4.12.1",
|
||||
@@ -70,5 +64,5 @@
|
||||
"precommit": "lint-staged",
|
||||
"test": "mocha tests.js"
|
||||
},
|
||||
"version": "2.1.1"
|
||||
"version": "2.1.2"
|
||||
}
|
||||
|
||||
2
node_modules/fsevents/node_modules/ms/readme.md
generated
vendored
2
node_modules/fsevents/node_modules/ms/readme.md
generated
vendored
@@ -1,7 +1,7 @@
|
||||
# ms
|
||||
|
||||
[](https://travis-ci.org/zeit/ms)
|
||||
[](https://zeit.chat/)
|
||||
[](https://spectrum.chat/zeit)
|
||||
|
||||
Use this package to easily convert various time formats to milliseconds.
|
||||
|
||||
|
||||
6
node_modules/fsevents/node_modules/needle/.npmignore
generated
vendored
6
node_modules/fsevents/node_modules/needle/.npmignore
generated
vendored
@@ -1,6 +0,0 @@
|
||||
*~
|
||||
node_modules
|
||||
temp
|
||||
sandbox
|
||||
.idea
|
||||
node
|
||||
2
node_modules/fsevents/node_modules/needle/lib/needle.js
generated
vendored
2
node_modules/fsevents/node_modules/needle/lib/needle.js
generated
vendored
@@ -772,6 +772,8 @@ module.exports.defaults = function(obj) {
|
||||
throw new TypeError('Invalid type for ' + key + ', should be ' + valid_type);
|
||||
}
|
||||
defaults[target_key] = obj[key];
|
||||
} else {
|
||||
throw new Error('Invalid property for defaults:' + target_key);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
395
node_modules/fsevents/node_modules/needle/package-lock.json
generated
vendored
395
node_modules/fsevents/node_modules/needle/package-lock.json
generated
vendored
@@ -1,395 +0,0 @@
|
||||
{
|
||||
"name": "needle",
|
||||
"version": "2.2.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"JSONStream": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
|
||||
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"jsonparse": "1.3.1",
|
||||
"through": "2.3.8"
|
||||
}
|
||||
},
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"balanced-match": "1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"browser-stdout": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
||||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
||||
"dev": true
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.15.1",
|
||||
"resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
||||
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz",
|
||||
"integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==",
|
||||
"requires": {
|
||||
"ms": "2.1.1"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
||||
"dev": true
|
||||
},
|
||||
"formatio": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz",
|
||||
"integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"samsam": "1.3.0"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
||||
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "1.0.0",
|
||||
"inflight": "1.0.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
},
|
||||
"growl": {
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
|
||||
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
},
|
||||
"he": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
|
||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
|
||||
"dev": true
|
||||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.7",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.7.tgz",
|
||||
"integrity": "sha1-idMv7IIb+Fl/RGCbS8Cb7VwgmiM="
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"once": "1.4.0",
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"dev": true
|
||||
},
|
||||
"isarray": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
||||
"dev": true
|
||||
},
|
||||
"jschardet": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz",
|
||||
"integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==",
|
||||
"dev": true
|
||||
},
|
||||
"jsonparse": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
|
||||
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
|
||||
"dev": true
|
||||
},
|
||||
"lolex": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz",
|
||||
"integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=",
|
||||
"dev": true
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
||||
"dev": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
},
|
||||
"mocha": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
|
||||
"integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"browser-stdout": "1.3.1",
|
||||
"commander": "2.15.1",
|
||||
"debug": "3.1.0",
|
||||
"diff": "3.5.0",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"glob": "7.1.2",
|
||||
"growl": "1.10.5",
|
||||
"he": "1.1.1",
|
||||
"minimatch": "3.0.4",
|
||||
"mkdirp": "0.5.1",
|
||||
"supports-color": "5.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
||||
},
|
||||
"native-promise-only": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz",
|
||||
"integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=",
|
||||
"dev": true
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"dev": true
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
|
||||
"integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isarray": "0.0.1"
|
||||
}
|
||||
},
|
||||
"q": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
|
||||
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
|
||||
"dev": true
|
||||
},
|
||||
"samsam": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz",
|
||||
"integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==",
|
||||
"dev": true
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk="
|
||||
},
|
||||
"should": {
|
||||
"version": "13.2.3",
|
||||
"resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz",
|
||||
"integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"should-equal": "2.0.0",
|
||||
"should-format": "3.0.3",
|
||||
"should-type": "1.4.0",
|
||||
"should-type-adaptors": "1.1.0",
|
||||
"should-util": "1.0.0"
|
||||
}
|
||||
},
|
||||
"should-equal": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz",
|
||||
"integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"should-type": "1.4.0"
|
||||
}
|
||||
},
|
||||
"should-format": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz",
|
||||
"integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"should-type": "1.4.0",
|
||||
"should-type-adaptors": "1.1.0"
|
||||
}
|
||||
},
|
||||
"should-type": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz",
|
||||
"integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=",
|
||||
"dev": true
|
||||
},
|
||||
"should-type-adaptors": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz",
|
||||
"integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"should-type": "1.4.0",
|
||||
"should-util": "1.0.0"
|
||||
}
|
||||
},
|
||||
"should-util": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.0.tgz",
|
||||
"integrity": "sha1-yYzaN0qmsZDfi6h8mInCtNtiAGM=",
|
||||
"dev": true
|
||||
},
|
||||
"sinon": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/sinon/-/sinon-2.3.0.tgz",
|
||||
"integrity": "sha1-s0M77qlRSpBHY7/r9IrNIdOeioc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"diff": "3.5.0",
|
||||
"formatio": "1.2.0",
|
||||
"lolex": "1.6.0",
|
||||
"native-promise-only": "0.8.1",
|
||||
"path-to-regexp": "1.7.0",
|
||||
"samsam": "1.3.0",
|
||||
"text-encoding": "0.6.4",
|
||||
"type-detect": "4.0.8"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
|
||||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "3.0.0"
|
||||
}
|
||||
},
|
||||
"text-encoding": {
|
||||
"version": "0.6.4",
|
||||
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
|
||||
"integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=",
|
||||
"dev": true
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
|
||||
"dev": true
|
||||
},
|
||||
"type-detect": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
||||
"dev": true
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||
"dev": true
|
||||
},
|
||||
"xml2js": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"sax": "1.2.4",
|
||||
"xmlbuilder": "9.0.7"
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "9.0.7",
|
||||
"resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
36
node_modules/fsevents/node_modules/needle/package.json
generated
vendored
36
node_modules/fsevents/node_modules/needle/package.json
generated
vendored
@@ -1,49 +1,43 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"needle@2.3.0",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "needle@2.3.0",
|
||||
"_id": "needle@2.3.0",
|
||||
"_from": "needle@^2.2.1",
|
||||
"_id": "needle@2.4.0",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
|
||||
"_integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==",
|
||||
"_location": "/fsevents/needle",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "needle@2.3.0",
|
||||
"raw": "needle@^2.2.1",
|
||||
"name": "needle",
|
||||
"escapedName": "needle",
|
||||
"rawSpec": "2.3.0",
|
||||
"rawSpec": "^2.2.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.3.0"
|
||||
"fetchSpec": "^2.2.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/node-pre-gyp"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.3.0",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz",
|
||||
"_shasum": "6833e74975c444642590e15a750288c5f939b57c",
|
||||
"_spec": "needle@^2.2.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/node-pre-gyp",
|
||||
"author": {
|
||||
"name": "Tomás Pollak",
|
||||
"email": "tomas@forkhq.com"
|
||||
},
|
||||
"bin": {
|
||||
"needle": "./bin/needle"
|
||||
"needle": "bin/needle"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/tomas/needle/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": "^4.1.0",
|
||||
"debug": "^3.2.6",
|
||||
"iconv-lite": "^0.4.4",
|
||||
"sax": "^1.2.4"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "The leanest and most handsome HTTP client in the Nodelands.",
|
||||
"devDependencies": {
|
||||
"JSONStream": "^1.3.5",
|
||||
@@ -103,5 +97,5 @@
|
||||
"cookie",
|
||||
"redirect"
|
||||
],
|
||||
"version": "2.3.0"
|
||||
"version": "2.4.0"
|
||||
}
|
||||
|
||||
2
node_modules/fsevents/node_modules/needle/test/headers_spec.js
generated
vendored
2
node_modules/fsevents/node_modules/needle/test/headers_spec.js
generated
vendored
@@ -2,7 +2,7 @@ var http = require('http'),
|
||||
helpers = require('./helpers'),
|
||||
should = require('should');
|
||||
|
||||
var port = 5432;
|
||||
var port = 54321;
|
||||
|
||||
describe('request headers', function() {
|
||||
|
||||
|
||||
21
node_modules/fsevents/node_modules/needle/test/keys/ssl.cert
generated
vendored
21
node_modules/fsevents/node_modules/needle/test/keys/ssl.cert
generated
vendored
@@ -1,21 +0,0 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDYDCCAkigAwIBAgIJANlxZjSOfzn0MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
|
||||
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
|
||||
aWRnaXRzIFB0eSBMdGQwHhcNMTcxMjE5MjA1ODQ2WhcNMjAwOTEzMjA1ODQ2WjBF
|
||||
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
|
||||
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAw3dsSb2hpuZ1l73lfRkg839/9xkOKGt9tBC/Epb771CQ0wKp210WQd9/
|
||||
zXH5zVB3TAwr4SHB5fhr4cdbZ3mOVkQwvG+IGIk7fSllsLrTQSDHRmOPQJQegPnu
|
||||
ytYxzhsgDZytAiYT8hB3Sb6O67QBLuPXXt2CrJmku31deUT3DoytUy6XpCBc7B7a
|
||||
AZAoD8gPrrCcFxqf1meN2wVNiqtpRSPTyHlEoHJSTnDZEtw69OtHnrD2ZSUlkqKb
|
||||
lX28MNsW5ZrkuRrqkEYu/KmIWI0BSrN1CcD4XqdU+puO/itKsw86/Vk95ZbjmTxi
|
||||
bbLpiRmiEDXZ02ZrhMIAMD01A+pOcwIDAQABo1MwUTAdBgNVHQ4EFgQUDMVydtLL
|
||||
j649WhhDLiOG5cGRiR0wHwYDVR0jBBgwFoAUDMVydtLLj649WhhDLiOG5cGRiR0w
|
||||
DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEALBUvL9cdW0H0p3Ut
|
||||
OZynLTVZMUwiU4aFFuGdYSRCs7ZFeSW9kaB6Zf1gJY59f/pf8I6OSSCYLJbrygIL
|
||||
NM5x/eh1q5F0eVTU8kHgWOfKyDWPF0F41bVIrW+HLtqeTokwTDQc4cvzJKwv5BYG
|
||||
NRZqEMU624Mfpaad9MVng5+gK74ydsxTG/3Kz5lUTKfet4Ojq1TvRU11rjUEW0oR
|
||||
EzGaTxlF3sa9luL2qXFJK83pi3518+pGLecwVOT64Nh2hy/KJPMNx29GsXSn3LYH
|
||||
gZyMJWOhl/5zsK8pPSH1jW4mGX33Y4ZRyR8v2OO81GpbvstSqa7kD05/v0N/WNKP
|
||||
NpGqWQ==
|
||||
-----END CERTIFICATE-----
|
||||
27
node_modules/fsevents/node_modules/needle/test/keys/ssl.key
generated
vendored
27
node_modules/fsevents/node_modules/needle/test/keys/ssl.key
generated
vendored
@@ -1,27 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEAw3dsSb2hpuZ1l73lfRkg839/9xkOKGt9tBC/Epb771CQ0wKp
|
||||
210WQd9/zXH5zVB3TAwr4SHB5fhr4cdbZ3mOVkQwvG+IGIk7fSllsLrTQSDHRmOP
|
||||
QJQegPnuytYxzhsgDZytAiYT8hB3Sb6O67QBLuPXXt2CrJmku31deUT3DoytUy6X
|
||||
pCBc7B7aAZAoD8gPrrCcFxqf1meN2wVNiqtpRSPTyHlEoHJSTnDZEtw69OtHnrD2
|
||||
ZSUlkqKblX28MNsW5ZrkuRrqkEYu/KmIWI0BSrN1CcD4XqdU+puO/itKsw86/Vk9
|
||||
5ZbjmTxibbLpiRmiEDXZ02ZrhMIAMD01A+pOcwIDAQABAoIBAQCPshSepVTYcKXU
|
||||
Ntsluzp5J6s4SWgaGOOhY4pELVDqnuzI4zVhua4qIRdAPmDpKhV5h50edYWo/Za5
|
||||
taghisAz9Q9rCAciGojsO2mxoba6M1GsEnb2f61pHdQJs6uLnG9U8nBRmxKgqrA3
|
||||
O2qwJnWUNhVXfTqajp0G5GO6ShPh0gqMz0ZlOcCZ4xuw9gxjcVWD8yVbxAJCWzds
|
||||
kGd9UUZJJtxurvSWgdzqNEkc8KRJAqRg7p2lqsWvH6gYyuvsHpLw5L3ggYjYSa89
|
||||
mPT4g3x0aEsP0E/BafvjiE81441mPCsf/erssK6ymlz1UJPqetKRNZfXGLPipXiR
|
||||
yyoP8gR5AoGBAOM6iBQm1KgTyhKbBQQipYFsGierj0MqSxKV2WYLXOl57OuBnMDi
|
||||
bom1KiYVd1r6eo7rtl0/LpX41XMPrhXSJ3kWOlPxoWhZ85DfxZOB9hjJ7VEfnLd/
|
||||
sbxOMnDNNDn1xzAliY4uVr0QhVfkACkGriniUPoyhxFenRuDWqpk7/dfAoGBANw3
|
||||
V54PR07I7yOMFxi3rVmvyEXOGPpOd/XRKZDo4HrGjGYTpyeioGL862Uy3t9B6wwX
|
||||
fUwNjlArJqBK1hdkwEc6p0zhuf84DrPm75nBuIr/DRQd8O1WrJ/NLZN1ph4iybC2
|
||||
2e5pf/2J6mCc/9mUDSuRnKr6eLCTq3ZYEmwgSuVtAoGBAN2+WdtohXA8V59Oflep
|
||||
w9+H8gIyjozZ8gcCCvRlNFd3r3entaQZlAt4qtgdbKtw8jcU2ZMnvDuIaCxv6c/L
|
||||
lM+6nFMc4wmldmYzqWiok9NfAuN+uP3tdDIyEVE5P7UsHyTiDNmeaPD59VZu3qUq
|
||||
qr2e6K0wr9SIg0K9LbZI6FB7AoGBAMk/ej7kT5JcZs7hk6nvEejIkAnbE1CMrWxk
|
||||
PcxERgFtuZj/lN7P7CsKYEUXfD4ji559SPBb4xa4mJAcVBME7AMsQwAruULYA/e8
|
||||
sHKfavr7owQjaK49a3yOkXwVJD6eJBvuvrL2jxUxGJQ6ZkZ82pxacgZ+6BTWnveD
|
||||
/TH7QPbxAoGAMlJNSjIBl9Dyku0QvXH7ENyX05cjMiSFhiYxCBMHK5jOra6MF32+
|
||||
COw30N/75FLmxl7xXVJEMUQjpXm3ESXRtDygO5nSXRgEcYd9rW3HnajNNTd/KNST
|
||||
Nnv/lNICb/v6DO/49Vsqj5iWZLrd9iHYuEujLoknig/8dXZd3QjCkX0=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
11
node_modules/fsevents/node_modules/node-pre-gyp/CHANGELOG.md
generated
vendored
11
node_modules/fsevents/node_modules/node-pre-gyp/CHANGELOG.md
generated
vendored
@@ -1,5 +1,16 @@
|
||||
# node-pre-gyp changelog
|
||||
|
||||
## 0.14.0
|
||||
|
||||
- Defer modules requires in napi.js (https://github.com/mapbox/node-pre-gyp/pull/434)
|
||||
- Bump dependency on `tar` from `^4` to `^4.4.2` (https://github.com/mapbox/node-pre-gyp/pull/454)
|
||||
- Support extracting compiled binary from local offline mirror (https://github.com/mapbox/node-pre-gyp/pull/459)
|
||||
- Added Node 13 support in the local database (https://github.com/mapbox/node-pre-gyp/pull/483)
|
||||
|
||||
## 0.13.0
|
||||
|
||||
- Added Node 12 support in the local database (https://github.com/mapbox/node-pre-gyp/pull/449)
|
||||
|
||||
## 0.12.0
|
||||
|
||||
- Fixed double-build problem with node v10 (https://github.com/mapbox/node-pre-gyp/pull/428)
|
||||
|
||||
58
node_modules/fsevents/node_modules/node-pre-gyp/lib/install.js
generated
vendored
58
node_modules/fsevents/node_modules/node-pre-gyp/lib/install.js
generated
vendored
@@ -91,11 +91,9 @@ function place_binary(from,to,opts,callback) {
|
||||
if (err) return callback(err);
|
||||
if (!req) return callback(new Error("empty req"));
|
||||
var badDownload = false;
|
||||
var extractCount = 0;
|
||||
var hasResponse = false;
|
||||
var tar = require('tar');
|
||||
|
||||
function afterTarball(err) {
|
||||
function afterExtract(err, extractCount) {
|
||||
if (err) return callback(err);
|
||||
if (badDownload) return callback(new Error("bad download"));
|
||||
if (extractCount === 0) {
|
||||
@@ -105,11 +103,6 @@ function place_binary(from,to,opts,callback) {
|
||||
callback();
|
||||
}
|
||||
|
||||
function filter_func(entry) {
|
||||
log.info('install','unpacking ' + entry.path);
|
||||
extractCount++;
|
||||
}
|
||||
|
||||
// for request compatibility
|
||||
req.on('error', function(err) {
|
||||
badDownload = true;
|
||||
@@ -151,15 +144,47 @@ function place_binary(from,to,opts,callback) {
|
||||
return callback(err);
|
||||
}
|
||||
// start unzipping and untaring
|
||||
req.pipe(tar.extract({
|
||||
cwd: to,
|
||||
strip: 1,
|
||||
onentry: filter_func
|
||||
}).on('close', afterTarball).on('error', callback));
|
||||
req.pipe(extract(to, afterExtract));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function extract_from_local(from, to, callback) {
|
||||
if (!fs.existsSync(from)) {
|
||||
return callback(new Error('Cannot find file ' + from));
|
||||
}
|
||||
log.info('Found local file to extract from ' + from);
|
||||
function afterExtract(err, extractCount) {
|
||||
if (err) return callback(err);
|
||||
if (extractCount === 0) {
|
||||
return callback(new Error('There was a fatal problem while extracting the tarball'));
|
||||
}
|
||||
log.info('tarball', 'done parsing tarball');
|
||||
callback();
|
||||
}
|
||||
fs.createReadStream(from).pipe(extract(to, afterExtract));
|
||||
}
|
||||
|
||||
function extract(to, callback) {
|
||||
var extractCount = 0;
|
||||
function filter_func(entry) {
|
||||
log.info('install','unpacking ' + entry.path);
|
||||
extractCount++;
|
||||
}
|
||||
|
||||
function afterTarball(err) {
|
||||
callback(err, extractCount);
|
||||
}
|
||||
|
||||
var tar = require('tar');
|
||||
return tar.extract({
|
||||
cwd: to,
|
||||
strip: 1,
|
||||
onentry: filter_func
|
||||
}).on('close', afterTarball).on('error', callback);
|
||||
}
|
||||
|
||||
|
||||
function do_build(gyp,argv,callback) {
|
||||
var args = ['rebuild'].concat(argv);
|
||||
gyp.todo.push( { name: 'build', args: args } );
|
||||
@@ -235,7 +260,12 @@ function install(gyp, argv, callback) {
|
||||
if (err) {
|
||||
after_place(err);
|
||||
} else {
|
||||
place_binary(from,to,opts,after_place);
|
||||
var fileName = from.startsWith('file://') && from.replace(/^file:\/\//, '');
|
||||
if (fileName) {
|
||||
extract_from_local(fileName, to, after_place);
|
||||
} else {
|
||||
place_binary(from,to,opts,after_place);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
240
node_modules/fsevents/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json
generated
vendored
240
node_modules/fsevents/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json
generated
vendored
@@ -1507,6 +1507,26 @@
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"6.15.0": {
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"6.15.1": {
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"6.16.0": {
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"6.17.0": {
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"6.17.1": {
|
||||
"node_abi": 48,
|
||||
"v8": "5.1"
|
||||
},
|
||||
"7.0.0": {
|
||||
"node_abi": 51,
|
||||
"v8": "5.4"
|
||||
@@ -1683,6 +1703,38 @@
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.13.0": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.14.0": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.14.1": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.15.0": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.15.1": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.16.0": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.16.1": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"8.16.2": {
|
||||
"node_abi": 57,
|
||||
"v8": "6.2"
|
||||
},
|
||||
"9.0.0": {
|
||||
"node_abi": 59,
|
||||
"v8": "6.2"
|
||||
@@ -1819,6 +1871,54 @@
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.14.0": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.14.1": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.14.2": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.15.0": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.15.1": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.15.2": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.15.3": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.16.0": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.16.1": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.16.2": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.16.3": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"10.17.0": {
|
||||
"node_abi": 64,
|
||||
"v8": "6.8"
|
||||
},
|
||||
"11.0.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
@@ -1826,5 +1926,145 @@
|
||||
"11.1.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.2.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.3.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.4.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.5.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.6.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.7.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.8.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.9.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.10.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.10.1": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.11.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.12.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.13.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.14.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"11.15.0": {
|
||||
"node_abi": 67,
|
||||
"v8": "7.0"
|
||||
},
|
||||
"12.0.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.1.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.2.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.3.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.3.1": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.4.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.4"
|
||||
},
|
||||
"12.5.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.5"
|
||||
},
|
||||
"12.6.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.5"
|
||||
},
|
||||
"12.7.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.5"
|
||||
},
|
||||
"12.8.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.5"
|
||||
},
|
||||
"12.8.1": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.5"
|
||||
},
|
||||
"12.9.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.6"
|
||||
},
|
||||
"12.9.1": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.6"
|
||||
},
|
||||
"12.10.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.6"
|
||||
},
|
||||
"12.11.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.7"
|
||||
},
|
||||
"12.11.1": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.7"
|
||||
},
|
||||
"12.12.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.7"
|
||||
},
|
||||
"12.13.0": {
|
||||
"node_abi": 72,
|
||||
"v8": "7.7"
|
||||
},
|
||||
"13.0.0": {
|
||||
"node_abi": 79,
|
||||
"v8": "7.8"
|
||||
},
|
||||
"13.0.1": {
|
||||
"node_abi": 79,
|
||||
"v8": "7.8"
|
||||
}
|
||||
}
|
||||
5
node_modules/fsevents/node_modules/node-pre-gyp/lib/util/napi.js
generated
vendored
5
node_modules/fsevents/node_modules/node-pre-gyp/lib/util/napi.js
generated
vendored
@@ -1,8 +1,6 @@
|
||||
"use strict";
|
||||
|
||||
var fs = require('fs');
|
||||
var rm = require('rimraf');
|
||||
var log = require('npmlog');
|
||||
|
||||
module.exports = exports;
|
||||
|
||||
@@ -115,6 +113,7 @@ module.exports.expand_commands = function(package_json, opts, commands) {
|
||||
};
|
||||
|
||||
module.exports.get_napi_build_versions = function(package_json, opts, warnings) { // opts may be undefined
|
||||
var log = require('npmlog');
|
||||
var napi_build_versions = [];
|
||||
var supported_napi_version = module.exports.get_napi_version(opts ? opts.target : undefined);
|
||||
// remove duplicates, verify each napi version can actaully be built
|
||||
@@ -167,6 +166,7 @@ module.exports.get_napi_build_version_from_command_args = function(command_args)
|
||||
|
||||
module.exports.swap_build_dir_out = function(napi_build_version) {
|
||||
if (napi_build_version) {
|
||||
var rm = require('rimraf');
|
||||
rm.sync(module.exports.get_build_dir(napi_build_version));
|
||||
fs.renameSync('build', module.exports.get_build_dir(napi_build_version));
|
||||
}
|
||||
@@ -174,6 +174,7 @@ module.exports.swap_build_dir_out = function(napi_build_version) {
|
||||
|
||||
module.exports.swap_build_dir_in = function(napi_build_version) {
|
||||
if (napi_build_version) {
|
||||
var rm = require('rimraf');
|
||||
rm.sync('build');
|
||||
fs.renameSync(module.exports.get_build_dir(napi_build_version), 'build');
|
||||
}
|
||||
|
||||
36
node_modules/fsevents/node_modules/node-pre-gyp/package.json
generated
vendored
36
node_modules/fsevents/node_modules/node-pre-gyp/package.json
generated
vendored
@@ -1,40 +1,33 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"node-pre-gyp@0.12.0",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "node-pre-gyp@0.12.0",
|
||||
"_id": "node-pre-gyp@0.12.0",
|
||||
"_from": "node-pre-gyp@*",
|
||||
"_id": "node-pre-gyp@0.14.0",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
|
||||
"_integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
|
||||
"_location": "/fsevents/node-pre-gyp",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "node-pre-gyp@0.12.0",
|
||||
"raw": "node-pre-gyp@*",
|
||||
"name": "node-pre-gyp",
|
||||
"escapedName": "node-pre-gyp",
|
||||
"rawSpec": "0.12.0",
|
||||
"rawSpec": "*",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "0.12.0"
|
||||
"fetchSpec": "*"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "0.12.0",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz",
|
||||
"_shasum": "9a0596533b877289bcad4e143982ca3d904ddc83",
|
||||
"_spec": "node-pre-gyp@*",
|
||||
"_where": "/Users/pipobscure/fsevents",
|
||||
"author": {
|
||||
"name": "Dane Springmeyer",
|
||||
"email": "dane@mapbox.com"
|
||||
},
|
||||
"bin": {
|
||||
"node-pre-gyp": "./bin/node-pre-gyp"
|
||||
"node-pre-gyp": "bin/node-pre-gyp"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/mapbox/node-pre-gyp/issues"
|
||||
@@ -49,8 +42,9 @@
|
||||
"rc": "^1.2.7",
|
||||
"rimraf": "^2.6.1",
|
||||
"semver": "^5.3.0",
|
||||
"tar": "^4"
|
||||
"tar": "^4.4.2"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Node.js native addon binary install tool",
|
||||
"devDependencies": {
|
||||
"aws-sdk": "^2.28.0",
|
||||
@@ -87,5 +81,5 @@
|
||||
"test": "jshint lib lib/util scripts bin/node-pre-gyp && tape test/*test.js",
|
||||
"update-crosswalk": "node scripts/abi_crosswalk.js"
|
||||
},
|
||||
"version": "0.12.0"
|
||||
"version": "0.14.0"
|
||||
}
|
||||
|
||||
18
node_modules/fsevents/node_modules/npm-bundled/index.js
generated
vendored
18
node_modules/fsevents/node_modules/npm-bundled/index.js
generated
vendored
@@ -10,6 +10,9 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const EE = require('events').EventEmitter
|
||||
// we don't care about the package bins, but we share a pj cache
|
||||
// with other modules that DO care about it, so keep it nice.
|
||||
const normalizePackageBin = require('npm-normalize-package-bin')
|
||||
|
||||
class BundleWalker extends EE {
|
||||
constructor (opt) {
|
||||
@@ -84,7 +87,7 @@ class BundleWalker extends EE {
|
||||
|
||||
onPackageJson (pj, data) {
|
||||
try {
|
||||
this.package = JSON.parse(data + '')
|
||||
this.package = normalizePackageBin(JSON.parse(data + ''))
|
||||
} catch (er) {
|
||||
return this.done()
|
||||
}
|
||||
@@ -92,17 +95,22 @@ class BundleWalker extends EE {
|
||||
this.onPackage(this.package)
|
||||
}
|
||||
|
||||
allDepsBundled (pkg) {
|
||||
return Object.keys(pkg.dependencies || {}).concat(
|
||||
Object.keys(pkg.optionalDependencies || {}))
|
||||
}
|
||||
|
||||
onPackage (pkg) {
|
||||
// all deps are bundled if we got here as a child.
|
||||
// otherwise, only bundle bundledDeps
|
||||
// Get a unique-ified array with a short-lived Set
|
||||
const bdRaw = this.parent
|
||||
? Object.keys(pkg.dependencies || {}).concat(
|
||||
Object.keys(pkg.optionalDependencies || {}))
|
||||
const bdRaw = this.parent ? this.allDepsBundled(pkg)
|
||||
: pkg.bundleDependencies || pkg.bundledDependencies || []
|
||||
|
||||
const bd = Array.from(new Set(
|
||||
Array.isArray(bdRaw) ? bdRaw : Object.keys(bdRaw)))
|
||||
Array.isArray(bdRaw) ? bdRaw
|
||||
: bdRaw === true ? this.allDepsBundled(pkg)
|
||||
: Object.keys(bdRaw)))
|
||||
|
||||
if (!bd.length)
|
||||
return this.done()
|
||||
|
||||
35
node_modules/fsevents/node_modules/npm-bundled/package.json
generated
vendored
35
node_modules/fsevents/node_modules/npm-bundled/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"npm-bundled@1.0.6",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "npm-bundled@1.0.6",
|
||||
"_id": "npm-bundled@1.0.6",
|
||||
"_from": "npm-bundled@^1.0.1",
|
||||
"_id": "npm-bundled@1.1.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
|
||||
"_integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
|
||||
"_location": "/fsevents/npm-bundled",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "npm-bundled@1.0.6",
|
||||
"raw": "npm-bundled@^1.0.1",
|
||||
"name": "npm-bundled",
|
||||
"escapedName": "npm-bundled",
|
||||
"rawSpec": "1.0.6",
|
||||
"rawSpec": "^1.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.0.6"
|
||||
"fetchSpec": "^1.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/npm-packlist"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "1.0.6",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz",
|
||||
"_shasum": "1edd570865a94cdb1bc8220775e29466c9fb234b",
|
||||
"_spec": "npm-bundled@^1.0.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/npm-packlist",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -37,6 +30,10 @@
|
||||
"bugs": {
|
||||
"url": "https://github.com/npm/npm-bundled/issues"
|
||||
},
|
||||
"dependencies": {
|
||||
"npm-normalize-package-bin": "^1.0.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "list things in node_modules that are bundledDependencies, or transitive dependencies thereof",
|
||||
"devDependencies": {
|
||||
"mkdirp": "^0.5.1",
|
||||
@@ -61,5 +58,5 @@
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js -J --100"
|
||||
},
|
||||
"version": "1.0.6"
|
||||
"version": "1.1.1"
|
||||
}
|
||||
|
||||
2
node_modules/fsevents/node_modules/npm-normalize-package-bin/.github/settings.yml
generated
vendored
Normal file
2
node_modules/fsevents/node_modules/npm-normalize-package-bin/.github/settings.yml
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
_extends: 'open-source-project-boilerplate'
|
||||
24
node_modules/fsevents/node_modules/npm-normalize-package-bin/.npmignore
generated
vendored
Normal file
24
node_modules/fsevents/node_modules/npm-normalize-package-bin/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
# ignore most things, include some others
|
||||
/*
|
||||
/.*
|
||||
|
||||
!bin/
|
||||
!lib/
|
||||
!docs/
|
||||
!package.json
|
||||
!package-lock.json
|
||||
!README.md
|
||||
!CONTRIBUTING.md
|
||||
!LICENSE
|
||||
!CHANGELOG.md
|
||||
!example/
|
||||
!scripts/
|
||||
!tap-snapshots/
|
||||
!test/
|
||||
!.github/
|
||||
!.travis.yml
|
||||
!.gitignore
|
||||
!.gitattributes
|
||||
!coverage-map.js
|
||||
!map.js
|
||||
!index.js
|
||||
15
node_modules/fsevents/node_modules/npm-normalize-package-bin/LICENSE
generated
vendored
Normal file
15
node_modules/fsevents/node_modules/npm-normalize-package-bin/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
The ISC License
|
||||
|
||||
Copyright (c) npm, Inc.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
14
node_modules/fsevents/node_modules/npm-normalize-package-bin/README.md
generated
vendored
Normal file
14
node_modules/fsevents/node_modules/npm-normalize-package-bin/README.md
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# npm-normalize-package-bin
|
||||
|
||||
Turn any flavor of allowable package.json bin into a normalized object.
|
||||
|
||||
## API
|
||||
|
||||
```js
|
||||
const normalize = require('npm-normalize-package-bin')
|
||||
const pkg = {name: 'foo', bin: 'bar'}
|
||||
console.log(normalize(pkg)) // {name:'foo', bin:{foo: 'bar'}}
|
||||
```
|
||||
|
||||
Also strips out weird dots and slashes to prevent accidental and/or
|
||||
malicious bad behavior when the package is installed.
|
||||
60
node_modules/fsevents/node_modules/npm-normalize-package-bin/index.js
generated
vendored
Normal file
60
node_modules/fsevents/node_modules/npm-normalize-package-bin/index.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
// pass in a manifest with a 'bin' field here, and it'll turn it
|
||||
// into a properly santized bin object
|
||||
const {join, basename} = require('path')
|
||||
|
||||
const normalize = pkg =>
|
||||
!pkg.bin ? removeBin(pkg)
|
||||
: typeof pkg.bin === 'string' ? normalizeString(pkg)
|
||||
: Array.isArray(pkg.bin) ? normalizeArray(pkg)
|
||||
: typeof pkg.bin === 'object' ? normalizeObject(pkg)
|
||||
: removeBin(pkg)
|
||||
|
||||
const normalizeString = pkg => {
|
||||
if (!pkg.name)
|
||||
return removeBin(pkg)
|
||||
pkg.bin = { [pkg.name]: pkg.bin }
|
||||
return normalizeObject(pkg)
|
||||
}
|
||||
|
||||
const normalizeArray = pkg => {
|
||||
pkg.bin = pkg.bin.reduce((acc, k) => {
|
||||
acc[basename(k)] = k
|
||||
return acc
|
||||
}, {})
|
||||
return normalizeObject(pkg)
|
||||
}
|
||||
|
||||
const removeBin = pkg => {
|
||||
delete pkg.bin
|
||||
return pkg
|
||||
}
|
||||
|
||||
const normalizeObject = pkg => {
|
||||
const orig = pkg.bin
|
||||
const clean = {}
|
||||
let hasBins = false
|
||||
Object.keys(orig).forEach(binKey => {
|
||||
const base = join('/', basename(binKey.replace(/\\|:/g, '/'))).substr(1)
|
||||
|
||||
if (typeof orig[binKey] !== 'string' || !base)
|
||||
return
|
||||
|
||||
const binTarget = join('/', orig[binKey])
|
||||
.replace(/\\/g, '/').substr(1)
|
||||
|
||||
if (!binTarget)
|
||||
return
|
||||
|
||||
clean[base] = binTarget
|
||||
hasBins = true
|
||||
})
|
||||
|
||||
if (hasBins)
|
||||
pkg.bin = clean
|
||||
else
|
||||
delete pkg.bin
|
||||
|
||||
return pkg
|
||||
}
|
||||
|
||||
module.exports = normalize
|
||||
3529
node_modules/fsevents/node_modules/npm-normalize-package-bin/package-lock.json
generated
vendored
Normal file
3529
node_modules/fsevents/node_modules/npm-normalize-package-bin/package-lock.json
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
56
node_modules/fsevents/node_modules/npm-normalize-package-bin/package.json
generated
vendored
Normal file
56
node_modules/fsevents/node_modules/npm-normalize-package-bin/package.json
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"_from": "npm-normalize-package-bin@^1.0.1",
|
||||
"_id": "npm-normalize-package-bin@1.0.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
|
||||
"_location": "/fsevents/npm-normalize-package-bin",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "npm-normalize-package-bin@^1.0.1",
|
||||
"name": "npm-normalize-package-bin",
|
||||
"escapedName": "npm-normalize-package-bin",
|
||||
"rawSpec": "^1.0.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^1.0.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/npm-bundled"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
|
||||
"_shasum": "6e79a41f23fd235c0623218228da7d9c23b8f6e2",
|
||||
"_spec": "npm-normalize-package-bin@^1.0.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/npm-bundled",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
"url": "https://izs.me"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/npm/npm-normalize-package-bin/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Turn any flavor of allowable package.json bin into a normalized object",
|
||||
"devDependencies": {
|
||||
"tap": "^14.10.2"
|
||||
},
|
||||
"homepage": "https://github.com/npm/npm-normalize-package-bin#readme",
|
||||
"license": "ISC",
|
||||
"name": "npm-normalize-package-bin",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/npm/npm-normalize-package-bin.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"snap": "tap",
|
||||
"test": "tap"
|
||||
},
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"version": "1.0.1"
|
||||
}
|
||||
37
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/array.js
generated
vendored
Normal file
37
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/array.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
const normalize = require('../')
|
||||
const t = require('tap')
|
||||
|
||||
t.test('benign array', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: ['./x/y', 'y/z', './a'] }
|
||||
const expect = { name: 'hello', version: 'world', bin: {
|
||||
y: 'x/y',
|
||||
z: 'y/z',
|
||||
a: 'a',
|
||||
} }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('conflicting array', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: ['./x/y', 'z/y', './a'] }
|
||||
const expect = { name: 'hello', version: 'world', bin: {
|
||||
y: 'z/y',
|
||||
a: 'a',
|
||||
} }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('slashy array', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: [ '/etc/passwd' ] }
|
||||
const expect = { name: 'hello', version: 'world', bin: { passwd: 'etc/passwd' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('dotty array', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: ['../../../../etc/passwd'] }
|
||||
const expect = { name: 'hello', version: 'world', bin: { passwd: 'etc/passwd' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
35
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/nobin.js
generated
vendored
Normal file
35
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/nobin.js
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
const normalize = require('../')
|
||||
const t = require('tap')
|
||||
|
||||
// all of these just delete the bins, so expect the same value
|
||||
const expect = { name: 'hello', version: 'world' }
|
||||
|
||||
t.test('no bin in object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world' }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('empty string bin in object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: '' }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('false bin in object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: false }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('null bin in object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: null }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('number bin', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: 42069 }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
141
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/object.js
generated
vendored
Normal file
141
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/object.js
generated
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
const normalize = require('../')
|
||||
const t = require('tap')
|
||||
|
||||
t.test('benign object', async t => {
|
||||
// just clean up the ./ in the targets and remove anything weird
|
||||
const pkg = { name: 'hello', version: 'world', bin: {
|
||||
y: './x/y',
|
||||
z: './y/z',
|
||||
a: './a',
|
||||
} }
|
||||
const expect = { name: 'hello', version: 'world', bin: {
|
||||
y: 'x/y',
|
||||
z: 'y/z',
|
||||
a: 'a',
|
||||
} }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('empty and non-string targets', async t => {
|
||||
// just clean up the ./ in the targets and remove anything weird
|
||||
const pkg = { name: 'hello', version: 'world', bin: {
|
||||
z: './././',
|
||||
y: '',
|
||||
'./x': 'x.js',
|
||||
re: /asdf/,
|
||||
foo: { bar: 'baz' },
|
||||
false: false,
|
||||
null: null,
|
||||
array: [1,2,3],
|
||||
func: function () {},
|
||||
} }
|
||||
const expect = { name: 'hello', version: 'world', bin: {
|
||||
x: 'x.js',
|
||||
} }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('slashy object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: {
|
||||
'/path/foo': '/etc/passwd',
|
||||
'bar': '/etc/passwd',
|
||||
'/etc/glorb/baz': '/etc/passwd',
|
||||
'/etc/passwd:/bin/usr/exec': '/etc/passwd',
|
||||
} }
|
||||
const expect = {
|
||||
name: 'hello',
|
||||
version: 'world',
|
||||
bin: {
|
||||
foo: 'etc/passwd',
|
||||
bar: 'etc/passwd',
|
||||
baz: 'etc/passwd',
|
||||
exec: 'etc/passwd',
|
||||
}
|
||||
}
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('dotty object', async t => {
|
||||
const pkg = {
|
||||
name: 'hello',
|
||||
version: 'world',
|
||||
bin: {
|
||||
'nodots': '../../../../etc/passwd',
|
||||
'../../../../../../dots': '../../../../etc/passwd',
|
||||
'.././../\\./..//C:\\./': 'this is removed',
|
||||
'.././../\\./..//C:\\/': 'super safe programming language',
|
||||
'.././../\\./..//C:\\x\\y\\z/': 'xyz',
|
||||
} }
|
||||
const expect = { name: 'hello', version: 'world', bin: {
|
||||
nodots: 'etc/passwd',
|
||||
dots: 'etc/passwd',
|
||||
C: 'super safe programming language',
|
||||
z: 'xyz',
|
||||
} }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('weird object', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: /asdf/ }
|
||||
const expect = { name: 'hello', version: 'world' }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('oddball keys', async t => {
|
||||
const pkg = {
|
||||
bin: {
|
||||
'~': 'target',
|
||||
'£': 'target',
|
||||
'ζ': 'target',
|
||||
'ぎ': 'target',
|
||||
'操': 'target',
|
||||
'🎱': 'target',
|
||||
'💎': 'target',
|
||||
'💸': 'target',
|
||||
'🦉': 'target',
|
||||
'сheck-dom': 'target',
|
||||
'Ωpm': 'target',
|
||||
'ζλ': 'target',
|
||||
'мга': 'target',
|
||||
'пше': 'target',
|
||||
'тзч': 'target',
|
||||
'тзь': 'target',
|
||||
'нфкт': 'target',
|
||||
'ссср': 'target',
|
||||
'君の名は': 'target',
|
||||
'君の名は': 'target',
|
||||
}
|
||||
}
|
||||
|
||||
const expect = {
|
||||
bin: {
|
||||
'~': 'target',
|
||||
'£': 'target',
|
||||
'ζ': 'target',
|
||||
'ぎ': 'target',
|
||||
'操': 'target',
|
||||
'🎱': 'target',
|
||||
'💎': 'target',
|
||||
'💸': 'target',
|
||||
'🦉': 'target',
|
||||
'сheck-dom': 'target',
|
||||
'Ωpm': 'target',
|
||||
'ζλ': 'target',
|
||||
'мга': 'target',
|
||||
'пше': 'target',
|
||||
'тзч': 'target',
|
||||
'тзь': 'target',
|
||||
'нфкт': 'target',
|
||||
'ссср': 'target',
|
||||
'君の名は': 'target',
|
||||
},
|
||||
}
|
||||
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
37
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/string.js
generated
vendored
Normal file
37
node_modules/fsevents/node_modules/npm-normalize-package-bin/test/string.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
const normalize = require('../')
|
||||
const t = require('tap')
|
||||
|
||||
t.test('benign string', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: 'hello.js' }
|
||||
const expect = { name: 'hello', version: 'world', bin: { hello: 'hello.js' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('slashy string', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: '/etc/passwd' }
|
||||
const expect = { name: 'hello', version: 'world', bin: { hello: 'etc/passwd' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('dotty string', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: '../../../../etc/passwd' }
|
||||
const expect = { name: 'hello', version: 'world', bin: { hello: 'etc/passwd' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('double path', async t => {
|
||||
const pkg = { name: 'hello', version: 'world', bin: '/etc/passwd:/bin/usr/exec' }
|
||||
const expect = { name: 'hello', version: 'world', bin: { hello: 'etc/passwd:/bin/usr/exec' } }
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
|
||||
t.test('string with no name', async t => {
|
||||
const pkg = { bin: 'foobar.js' }
|
||||
const expect = {}
|
||||
t.strictSame(normalize(pkg), expect)
|
||||
t.strictSame(normalize(normalize(pkg)), expect, 'double sanitize ok')
|
||||
})
|
||||
71
node_modules/fsevents/node_modules/npm-packlist/index.js
generated
vendored
71
node_modules/fsevents/node_modules/npm-packlist/index.js
generated
vendored
@@ -17,6 +17,8 @@ const rootBuiltinRules = Symbol('root-builtin-rules')
|
||||
const packageNecessaryRules = Symbol('package-necessary-rules')
|
||||
const path = require('path')
|
||||
|
||||
const normalizePackageBin = require('npm-normalize-package-bin')
|
||||
|
||||
const defaultRules = [
|
||||
'.npmignore',
|
||||
'.gitignore',
|
||||
@@ -34,6 +36,7 @@ const defaultRules = [
|
||||
'npm-debug.log',
|
||||
'**/.npmrc',
|
||||
'.*.swp',
|
||||
'.DS_Store',
|
||||
'**/.DS_Store/**',
|
||||
'._*',
|
||||
'**/._*/**',
|
||||
@@ -50,6 +53,9 @@ const defaultRules = [
|
||||
'core.+([0-9])',
|
||||
]
|
||||
|
||||
// There may be others, but :?|<> are handled by node-tar
|
||||
const nameIsBadForWindows = file => /\*/.test(file)
|
||||
|
||||
// a decorator that applies our custom rules to an ignore walker
|
||||
const npmWalker = Class => class Walker extends Class {
|
||||
constructor (opt) {
|
||||
@@ -90,6 +96,16 @@ const npmWalker = Class => class Walker extends Class {
|
||||
}
|
||||
}
|
||||
|
||||
onReaddir (entries) {
|
||||
if (!this.parent) {
|
||||
entries = entries.filter(e =>
|
||||
e !== '.git' &&
|
||||
!(e === 'node_modules' && this.bundled.length === 0)
|
||||
)
|
||||
}
|
||||
return super.onReaddir(entries)
|
||||
}
|
||||
|
||||
filterEntry (entry, partial) {
|
||||
// get the partial path from the root of the walk
|
||||
const p = this.path.substr(this.root.length + 1)
|
||||
@@ -147,18 +163,26 @@ const npmWalker = Class => class Walker extends Class {
|
||||
|
||||
// if there's a bin, browser or main, make sure we don't ignore it
|
||||
// also, don't ignore the package.json itself!
|
||||
//
|
||||
// Weird side-effect of this: a readme (etc) file will be included
|
||||
// if it exists anywhere within a folder with a package.json file.
|
||||
// The original intent was only to include these files in the root,
|
||||
// but now users in the wild are dependent on that behavior for
|
||||
// localized documentation and other use cases. Adding a `/` to
|
||||
// these rules, while tempting and arguably more "correct", is a
|
||||
// breaking change.
|
||||
const rules = [
|
||||
pkg.browser ? '!' + pkg.browser : '',
|
||||
pkg.main ? '!' + pkg.main : '',
|
||||
'!package.json',
|
||||
'!npm-shrinkwrap.json',
|
||||
'!@(readme|copying|license|licence|notice|changes|changelog|history){,.*[^~$]}'
|
||||
]
|
||||
if (pkg.bin)
|
||||
if (typeof pkg.bin === "object")
|
||||
for (const key in pkg.bin)
|
||||
rules.push('!' + pkg.bin[key])
|
||||
else
|
||||
rules.push('!' + pkg.bin)
|
||||
if (pkg.bin) {
|
||||
// always an object, because normalized already
|
||||
for (const key in pkg.bin)
|
||||
rules.push('!' + pkg.bin[key])
|
||||
}
|
||||
|
||||
const data = rules.filter(f => f).join('\n') + '\n'
|
||||
super.onReadIgnoreFile(packageNecessaryRules, data, _=>_)
|
||||
@@ -171,6 +195,16 @@ const npmWalker = Class => class Walker extends Class {
|
||||
then()
|
||||
}
|
||||
|
||||
// override parent stat function to completely skip any filenames
|
||||
// that will break windows entirely.
|
||||
// XXX(isaacs) Next major version should make this an error instead.
|
||||
stat (entry, file, dir, then) {
|
||||
if (nameIsBadForWindows(entry))
|
||||
then()
|
||||
else
|
||||
super.stat(entry, file, dir, then)
|
||||
}
|
||||
|
||||
// override parent onstat function to nix all symlinks
|
||||
onstat (st, entry, file, dir, then) {
|
||||
if (st.isSymbolicLink())
|
||||
@@ -183,7 +217,7 @@ const npmWalker = Class => class Walker extends Class {
|
||||
if (file === 'package.json')
|
||||
try {
|
||||
const ig = path.resolve(this.path, file)
|
||||
this.onPackageJson(ig, JSON.parse(data), then)
|
||||
this.onPackageJson(ig, normalizePackageBin(JSON.parse(data)), then)
|
||||
} catch (er) {
|
||||
// ignore package.json files that are not json
|
||||
then()
|
||||
@@ -234,15 +268,20 @@ const walkSync = options => {
|
||||
return walker.result
|
||||
}
|
||||
|
||||
// package.json first, node_modules last, files before folders, alphasort
|
||||
const sort = (a, b) =>
|
||||
a === 'package.json' ? -1
|
||||
: b === 'package.json' ? 1
|
||||
: /^node_modules/.test(a) && !/^node_modules/.test(b) ? 1
|
||||
: /^node_modules/.test(b) && !/^node_modules/.test(a) ? -1
|
||||
: path.dirname(a) === '.' && path.dirname(b) !== '.' ? -1
|
||||
: path.dirname(b) === '.' && path.dirname(a) !== '.' ? 1
|
||||
: a.localeCompare(b)
|
||||
// optimize for compressibility
|
||||
// extname, then basename, then locale alphabetically
|
||||
// https://twitter.com/isntitvacant/status/1131094910923231232
|
||||
const sort = (a, b) => {
|
||||
const exta = path.extname(a).toLowerCase()
|
||||
const extb = path.extname(b).toLowerCase()
|
||||
const basea = path.basename(a).toLowerCase()
|
||||
const baseb = path.basename(b).toLowerCase()
|
||||
|
||||
return exta.localeCompare(extb) ||
|
||||
basea.localeCompare(baseb) ||
|
||||
a.localeCompare(b)
|
||||
}
|
||||
|
||||
|
||||
module.exports = walk
|
||||
walk.sync = walkSync
|
||||
|
||||
45
node_modules/fsevents/node_modules/npm-packlist/package.json
generated
vendored
45
node_modules/fsevents/node_modules/npm-packlist/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"npm-packlist@1.4.1",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "npm-packlist@1.4.1",
|
||||
"_id": "npm-packlist@1.4.1",
|
||||
"_from": "npm-packlist@^1.1.6",
|
||||
"_id": "npm-packlist@1.4.7",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
|
||||
"_integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==",
|
||||
"_location": "/fsevents/npm-packlist",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "npm-packlist@1.4.1",
|
||||
"raw": "npm-packlist@^1.1.6",
|
||||
"name": "npm-packlist",
|
||||
"escapedName": "npm-packlist",
|
||||
"rawSpec": "1.4.1",
|
||||
"rawSpec": "^1.1.6",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.4.1"
|
||||
"fetchSpec": "^1.1.6"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/node-pre-gyp"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "1.4.1",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz",
|
||||
"_shasum": "9e954365a06b80b18111ea900945af4f88ed4848",
|
||||
"_spec": "npm-packlist@^1.1.6",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/node-pre-gyp",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -41,11 +34,12 @@
|
||||
"ignore-walk": "^3.0.1",
|
||||
"npm-bundled": "^1.0.1"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Get a list of the files to add from a folder into an npm package",
|
||||
"devDependencies": {
|
||||
"mkdirp": "^0.5.1",
|
||||
"rimraf": "^2.6.1",
|
||||
"tap": "^12.0.1"
|
||||
"tap": "^14.6.9"
|
||||
},
|
||||
"directories": {
|
||||
"test": "test"
|
||||
@@ -57,15 +51,22 @@
|
||||
"license": "ISC",
|
||||
"main": "index.js",
|
||||
"name": "npm-packlist",
|
||||
"publishConfig": {
|
||||
"tag": "legacy-v1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/npm/npm-packlist.git"
|
||||
},
|
||||
"scripts": {
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100 -J"
|
||||
"snap": "tap",
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "1.4.1"
|
||||
"tap": {
|
||||
"jobs": 1
|
||||
},
|
||||
"version": "1.4.7"
|
||||
}
|
||||
|
||||
3
node_modules/fsevents/node_modules/process-nextick-args/index.js
generated
vendored
3
node_modules/fsevents/node_modules/process-nextick-args/index.js
generated
vendored
@@ -1,6 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
if (!process.version ||
|
||||
if (typeof process === 'undefined' ||
|
||||
!process.version ||
|
||||
process.version.indexOf('v0.') === 0 ||
|
||||
process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
|
||||
module.exports = { nextTick: nextTick };
|
||||
|
||||
32
node_modules/fsevents/node_modules/process-nextick-args/package.json
generated
vendored
32
node_modules/fsevents/node_modules/process-nextick-args/package.json
generated
vendored
@@ -1,38 +1,32 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"process-nextick-args@2.0.0",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "process-nextick-args@2.0.0",
|
||||
"_id": "process-nextick-args@2.0.0",
|
||||
"_from": "process-nextick-args@~2.0.0",
|
||||
"_id": "process-nextick-args@2.0.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
|
||||
"_integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
||||
"_location": "/fsevents/process-nextick-args",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "process-nextick-args@2.0.0",
|
||||
"raw": "process-nextick-args@~2.0.0",
|
||||
"name": "process-nextick-args",
|
||||
"escapedName": "process-nextick-args",
|
||||
"rawSpec": "2.0.0",
|
||||
"rawSpec": "~2.0.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.0.0"
|
||||
"fetchSpec": "~2.0.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/readable-stream"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.0.0",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
"_shasum": "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2",
|
||||
"_spec": "process-nextick-args@~2.0.0",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/readable-stream",
|
||||
"author": "",
|
||||
"bugs": {
|
||||
"url": "https://github.com/calvinmetcalf/process-nextick-args/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "process.nextTick but always with args",
|
||||
"devDependencies": {
|
||||
"tap": "~0.2.6"
|
||||
@@ -51,5 +45,5 @@
|
||||
"scripts": {
|
||||
"test": "node test.js"
|
||||
},
|
||||
"version": "2.0.0"
|
||||
"version": "2.0.1"
|
||||
}
|
||||
|
||||
34
node_modules/fsevents/node_modules/rimraf/package.json
generated
vendored
34
node_modules/fsevents/node_modules/rimraf/package.json
generated
vendored
@@ -1,41 +1,34 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"rimraf@2.6.3",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "rimraf@2.6.3",
|
||||
"_id": "rimraf@2.6.3",
|
||||
"_from": "rimraf@^2.6.1",
|
||||
"_id": "rimraf@2.7.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||
"_integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"_location": "/fsevents/rimraf",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "rimraf@2.6.3",
|
||||
"raw": "rimraf@^2.6.1",
|
||||
"name": "rimraf",
|
||||
"escapedName": "rimraf",
|
||||
"rawSpec": "2.6.3",
|
||||
"rawSpec": "^2.6.1",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "2.6.3"
|
||||
"fetchSpec": "^2.6.1"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/node-pre-gyp"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "2.6.3",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"_shasum": "35797f13a7fdadc566142c29d4f07ccad483e3ec",
|
||||
"_spec": "rimraf@^2.6.1",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/node-pre-gyp",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
"url": "http://blog.izs.me/"
|
||||
},
|
||||
"bin": {
|
||||
"rimraf": "./bin.js"
|
||||
"rimraf": "bin.js"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/isaacs/rimraf/issues"
|
||||
@@ -43,6 +36,7 @@
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "A deep deletion module for node (like `rm -rf`)",
|
||||
"devDependencies": {
|
||||
"mkdirp": "^0.5.1",
|
||||
@@ -68,5 +62,5 @@
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js"
|
||||
},
|
||||
"version": "2.6.3"
|
||||
"version": "2.7.1"
|
||||
}
|
||||
|
||||
10
node_modules/fsevents/node_modules/rimraf/rimraf.js
generated
vendored
10
node_modules/fsevents/node_modules/rimraf/rimraf.js
generated
vendored
@@ -4,7 +4,12 @@ rimraf.sync = rimrafSync
|
||||
var assert = require("assert")
|
||||
var path = require("path")
|
||||
var fs = require("fs")
|
||||
var glob = require("glob")
|
||||
var glob = undefined
|
||||
try {
|
||||
glob = require("glob")
|
||||
} catch (_err) {
|
||||
// treat glob as optional.
|
||||
}
|
||||
var _0666 = parseInt('666', 8)
|
||||
|
||||
var defaultGlobOpts = {
|
||||
@@ -37,6 +42,9 @@ function defaults (options) {
|
||||
if (options.glob === false) {
|
||||
options.disableGlob = true
|
||||
}
|
||||
if (options.disableGlob !== true && glob === undefined) {
|
||||
throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')
|
||||
}
|
||||
options.disableGlob = options.disableGlob || false
|
||||
options.glob = options.glob || defaultGlobOpts
|
||||
}
|
||||
|
||||
23
node_modules/fsevents/node_modules/semver/README.md
generated
vendored
23
node_modules/fsevents/node_modules/semver/README.md
generated
vendored
@@ -398,14 +398,15 @@ range, use the `satisfies(version, range)` function.
|
||||
|
||||
* `coerce(version)`: Coerces a string to semver if possible
|
||||
|
||||
This aims to provide a very forgiving translation of a non-semver
|
||||
string to semver. It looks for the first digit in a string, and
|
||||
consumes all remaining characters which satisfy at least a partial semver
|
||||
(e.g., `1`, `1.2`, `1.2.3`) up to the max permitted length (256 characters).
|
||||
Longer versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`).
|
||||
All surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes `3.4.0`).
|
||||
Only text which lacks digits will fail coercion (`version one` is not valid).
|
||||
The maximum length for any semver component considered for coercion is 16 characters;
|
||||
longer components will be ignored (`10000000000000000.4.7.4` becomes `4.7.4`).
|
||||
The maximum value for any semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`;
|
||||
higher value components are invalid (`9999999999999999.4.7.4` is likely invalid).
|
||||
This aims to provide a very forgiving translation of a non-semver string to
|
||||
semver. It looks for the first digit in a string, and consumes all
|
||||
remaining characters which satisfy at least a partial semver (e.g., `1`,
|
||||
`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer
|
||||
versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All
|
||||
surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes
|
||||
`3.4.0`). Only text which lacks digits will fail coercion (`version one`
|
||||
is not valid). The maximum length for any semver component considered for
|
||||
coercion is 16 characters; longer components will be ignored
|
||||
(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any
|
||||
semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value
|
||||
components are invalid (`9999999999999999.4.7.4` is likely invalid).
|
||||
|
||||
34
node_modules/fsevents/node_modules/semver/package.json
generated
vendored
34
node_modules/fsevents/node_modules/semver/package.json
generated
vendored
@@ -1,40 +1,34 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"semver@5.7.0",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "semver@5.7.0",
|
||||
"_id": "semver@5.7.0",
|
||||
"_from": "semver@^5.3.0",
|
||||
"_id": "semver@5.7.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
|
||||
"_integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"_location": "/fsevents/semver",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "semver@5.7.0",
|
||||
"raw": "semver@^5.3.0",
|
||||
"name": "semver",
|
||||
"escapedName": "semver",
|
||||
"rawSpec": "5.7.0",
|
||||
"rawSpec": "^5.3.0",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "5.7.0"
|
||||
"fetchSpec": "^5.3.0"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/node-pre-gyp"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "5.7.0",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"_shasum": "a954f931aeba508d307bbf069eff0c01c96116f7",
|
||||
"_spec": "semver@^5.3.0",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/node-pre-gyp",
|
||||
"bin": {
|
||||
"semver": "./bin/semver"
|
||||
"semver": "bin/semver"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/npm/node-semver/issues"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "The semantic version parser used by npm.",
|
||||
"devDependencies": {
|
||||
"tap": "^13.0.0-rc.18"
|
||||
@@ -61,5 +55,5 @@
|
||||
"tap": {
|
||||
"check-coverage": true
|
||||
},
|
||||
"version": "5.7.0"
|
||||
"version": "5.7.1"
|
||||
}
|
||||
|
||||
59
node_modules/fsevents/node_modules/tar/lib/large-numbers.js
generated
vendored
59
node_modules/fsevents/node_modules/tar/lib/large-numbers.js
generated
vendored
@@ -1,12 +1,13 @@
|
||||
'use strict'
|
||||
// Tar can encode large and negative numbers using a leading byte of
|
||||
// 0xff for negative, and 0x80 for positive. The trailing byte in the
|
||||
// section will always be 0x20, or in some implementations 0x00.
|
||||
// this module encodes and decodes these things.
|
||||
// 0xff for negative, and 0x80 for positive.
|
||||
|
||||
const encode = exports.encode = (num, buf) => {
|
||||
buf[buf.length - 1] = 0x20
|
||||
if (num < 0)
|
||||
if (!Number.isSafeInteger(num))
|
||||
// The number is so large that javascript cannot represent it with integer
|
||||
// precision.
|
||||
throw TypeError('cannot encode number outside of javascript safe integer range')
|
||||
else if (num < 0)
|
||||
encodeNegative(num, buf)
|
||||
else
|
||||
encodePositive(num, buf)
|
||||
@@ -15,13 +16,10 @@ const encode = exports.encode = (num, buf) => {
|
||||
|
||||
const encodePositive = (num, buf) => {
|
||||
buf[0] = 0x80
|
||||
for (var i = buf.length - 2; i > 0; i--) {
|
||||
if (num === 0)
|
||||
buf[i] = 0
|
||||
else {
|
||||
buf[i] = num % 0x100
|
||||
num = Math.floor(num / 0x100)
|
||||
}
|
||||
|
||||
for (var i = buf.length; i > 1; i--) {
|
||||
buf[i-1] = num & 0xff
|
||||
num = Math.floor(num / 0x100)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,21 +27,16 @@ const encodeNegative = (num, buf) => {
|
||||
buf[0] = 0xff
|
||||
var flipped = false
|
||||
num = num * -1
|
||||
for (var i = buf.length - 2; i > 0; i--) {
|
||||
var byte
|
||||
if (num === 0)
|
||||
byte = 0
|
||||
else {
|
||||
byte = num % 0x100
|
||||
num = Math.floor(num / 0x100)
|
||||
}
|
||||
for (var i = buf.length; i > 1; i--) {
|
||||
var byte = num & 0xff
|
||||
num = Math.floor(num / 0x100)
|
||||
if (flipped)
|
||||
buf[i] = onesComp(byte)
|
||||
buf[i-1] = onesComp(byte)
|
||||
else if (byte === 0)
|
||||
buf[i] = 0
|
||||
buf[i-1] = 0
|
||||
else {
|
||||
flipped = true
|
||||
buf[i] = twosComp(byte)
|
||||
buf[i-1] = twosComp(byte)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -51,8 +44,20 @@ const encodeNegative = (num, buf) => {
|
||||
const parse = exports.parse = (buf) => {
|
||||
var post = buf[buf.length - 1]
|
||||
var pre = buf[0]
|
||||
return pre === 0x80 ? pos(buf.slice(1, buf.length - 1))
|
||||
: twos(buf.slice(1, buf.length - 1))
|
||||
var value;
|
||||
if (pre === 0x80)
|
||||
value = pos(buf.slice(1, buf.length))
|
||||
else if (pre === 0xff)
|
||||
value = twos(buf)
|
||||
else
|
||||
throw TypeError('invalid base256 encoding')
|
||||
|
||||
if (!Number.isSafeInteger(value))
|
||||
// The number is so large that javascript cannot represent it with integer
|
||||
// precision.
|
||||
throw TypeError('parsed number outside of javascript safe integer range')
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
const twos = (buf) => {
|
||||
@@ -71,9 +76,9 @@ const twos = (buf) => {
|
||||
f = twosComp(byte)
|
||||
}
|
||||
if (f !== 0)
|
||||
sum += f * Math.pow(256, len - i - 1)
|
||||
sum -= f * Math.pow(256, len - i - 1)
|
||||
}
|
||||
return sum * -1
|
||||
return sum
|
||||
}
|
||||
|
||||
const pos = (buf) => {
|
||||
|
||||
4
node_modules/fsevents/node_modules/tar/lib/mkdir.js
generated
vendored
4
node_modules/fsevents/node_modules/tar/lib/mkdir.js
generated
vendored
@@ -69,7 +69,7 @@ const mkdir = module.exports = (dir, opt, cb) => {
|
||||
return done()
|
||||
|
||||
if (dir === cwd)
|
||||
return fs.lstat(dir, (er, st) => {
|
||||
return fs.stat(dir, (er, st) => {
|
||||
if (er || !st.isDirectory())
|
||||
er = new CwdError(dir, er && er.code || 'ENOTDIR')
|
||||
done(er)
|
||||
@@ -154,7 +154,7 @@ const mkdirSync = module.exports.sync = (dir, opt) => {
|
||||
let ok = false
|
||||
let code = 'ENOTDIR'
|
||||
try {
|
||||
ok = fs.lstatSync(dir).isDirectory()
|
||||
ok = fs.statSync(dir).isDirectory()
|
||||
} catch (er) {
|
||||
code = er.code
|
||||
} finally {
|
||||
|
||||
7
node_modules/fsevents/node_modules/tar/lib/parse.js
generated
vendored
7
node_modules/fsevents/node_modules/tar/lib/parse.js
generated
vendored
@@ -102,7 +102,12 @@ module.exports = warner(class Parser extends EE {
|
||||
}
|
||||
|
||||
[CONSUMEHEADER] (chunk, position) {
|
||||
const header = new Header(chunk, position, this[EX], this[GEX])
|
||||
let header
|
||||
try {
|
||||
header = new Header(chunk, position, this[EX], this[GEX])
|
||||
} catch (er) {
|
||||
return this.warn('invalid entry', er)
|
||||
}
|
||||
|
||||
if (header.nullBlock)
|
||||
this[EMIT]('nullBlock')
|
||||
|
||||
4
node_modules/fsevents/node_modules/tar/lib/read-entry.js
generated
vendored
4
node_modules/fsevents/node_modules/tar/lib/read-entry.js
generated
vendored
@@ -6,6 +6,10 @@ const SLURP = Symbol('slurp')
|
||||
module.exports = class ReadEntry extends MiniPass {
|
||||
constructor (header, ex, gex) {
|
||||
super()
|
||||
// read entries always start life paused. this is to avoid the
|
||||
// situation where Minipass's auto-ending empty streams results
|
||||
// in an entry ending before we're ready for it.
|
||||
this.pause()
|
||||
this.extended = ex
|
||||
this.globalExtended = gex
|
||||
this.header = header
|
||||
|
||||
4
node_modules/fsevents/node_modules/tar/lib/write-entry.js
generated
vendored
4
node_modules/fsevents/node_modules/tar/lib/write-entry.js
generated
vendored
@@ -231,7 +231,7 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
|
||||
er.path = this.absolute
|
||||
er.syscall = 'read'
|
||||
er.code = 'EOF'
|
||||
this[CLOSE](fd)
|
||||
this[CLOSE](fd, _ => _)
|
||||
return this.emit('error', er)
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
|
||||
er.path = this.absolute
|
||||
er.syscall = 'read'
|
||||
er.code = 'EOF'
|
||||
this[CLOSE](fd)
|
||||
this[CLOSE](fd, _ => _)
|
||||
return this.emit('error', er)
|
||||
}
|
||||
|
||||
|
||||
50
node_modules/fsevents/node_modules/tar/package.json
generated
vendored
50
node_modules/fsevents/node_modules/tar/package.json
generated
vendored
@@ -1,34 +1,27 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"tar@4.4.8",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "tar@4.4.8",
|
||||
"_id": "tar@4.4.8",
|
||||
"_from": "tar@^4.4.2",
|
||||
"_id": "tar@4.4.13",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
|
||||
"_integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
|
||||
"_location": "/fsevents/tar",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "tar@4.4.8",
|
||||
"raw": "tar@^4.4.2",
|
||||
"name": "tar",
|
||||
"escapedName": "tar",
|
||||
"rawSpec": "4.4.8",
|
||||
"rawSpec": "^4.4.2",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "4.4.8"
|
||||
"fetchSpec": "^4.4.2"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/node-pre-gyp"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "4.4.8",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
|
||||
"_shasum": "43b364bc52888d555298637b10d60790254ab525",
|
||||
"_spec": "tar@^4.4.2",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/node-pre-gyp",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -40,20 +33,21 @@
|
||||
"dependencies": {
|
||||
"chownr": "^1.1.1",
|
||||
"fs-minipass": "^1.2.5",
|
||||
"minipass": "^2.3.4",
|
||||
"minizlib": "^1.1.1",
|
||||
"minipass": "^2.8.6",
|
||||
"minizlib": "^1.2.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.2"
|
||||
"yallist": "^3.0.3"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "tar for node",
|
||||
"devDependencies": {
|
||||
"chmodr": "^1.2.0",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"events-to-array": "^1.1.2",
|
||||
"mutate-fs": "^2.1.1",
|
||||
"rimraf": "^2.6.2",
|
||||
"tap": "^12.0.1",
|
||||
"rimraf": "^2.6.3",
|
||||
"tap": "^14.6.5",
|
||||
"tar-fs": "^1.16.3",
|
||||
"tar-stream": "^1.6.2"
|
||||
},
|
||||
@@ -74,10 +68,14 @@
|
||||
"scripts": {
|
||||
"bench": "for i in benchmarks/*/*.js; do echo $i; for j in {1..5}; do node $i || break; done; done",
|
||||
"genparse": "node scripts/generate-parse-fixtures.js",
|
||||
"postpublish": "git push origin --all; git push origin --tags",
|
||||
"postpublish": "git push origin --follow-tags",
|
||||
"postversion": "npm publish",
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100 -J --coverage-report=text -c"
|
||||
"test": "tap"
|
||||
},
|
||||
"version": "4.4.8"
|
||||
"tap": {
|
||||
"coverage-map": "map.js",
|
||||
"check-coverage": true
|
||||
},
|
||||
"version": "4.4.13"
|
||||
}
|
||||
|
||||
32
node_modules/fsevents/node_modules/yallist/package.json
generated
vendored
32
node_modules/fsevents/node_modules/yallist/package.json
generated
vendored
@@ -1,35 +1,28 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"yallist@3.0.3",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "yallist@3.0.3",
|
||||
"_id": "yallist@3.0.3",
|
||||
"_from": "yallist@^3.0.3",
|
||||
"_id": "yallist@3.1.1",
|
||||
"_inBundle": true,
|
||||
"_integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
|
||||
"_integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||
"_location": "/fsevents/yallist",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "yallist@3.0.3",
|
||||
"raw": "yallist@^3.0.3",
|
||||
"name": "yallist",
|
||||
"escapedName": "yallist",
|
||||
"rawSpec": "3.0.3",
|
||||
"rawSpec": "^3.0.3",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "3.0.3"
|
||||
"fetchSpec": "^3.0.3"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/fsevents/minipass",
|
||||
"/fsevents/tar"
|
||||
],
|
||||
"_resolved": false,
|
||||
"_spec": "3.0.3",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"_shasum": "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd",
|
||||
"_spec": "yallist@^3.0.3",
|
||||
"_where": "/Users/pipobscure/fsevents/node_modules/tar",
|
||||
"author": {
|
||||
"name": "Isaac Z. Schlueter",
|
||||
"email": "i@izs.me",
|
||||
@@ -39,6 +32,7 @@
|
||||
"url": "https://github.com/isaacs/yallist/issues"
|
||||
},
|
||||
"dependencies": {},
|
||||
"deprecated": false,
|
||||
"description": "Yet Another Linked List",
|
||||
"devDependencies": {
|
||||
"tap": "^12.1.0"
|
||||
@@ -64,5 +58,5 @@
|
||||
"preversion": "npm test",
|
||||
"test": "tap test/*.js --100"
|
||||
},
|
||||
"version": "3.0.3"
|
||||
"version": "3.1.1"
|
||||
}
|
||||
|
||||
50
node_modules/fsevents/node_modules/yallist/yallist.js
generated
vendored
50
node_modules/fsevents/node_modules/yallist/yallist.js
generated
vendored
@@ -54,6 +54,8 @@ Yallist.prototype.removeNode = function (node) {
|
||||
node.next = null
|
||||
node.prev = null
|
||||
node.list = null
|
||||
|
||||
return next
|
||||
}
|
||||
|
||||
Yallist.prototype.unshiftNode = function (node) {
|
||||
@@ -318,6 +320,37 @@ Yallist.prototype.sliceReverse = function (from, to) {
|
||||
return ret
|
||||
}
|
||||
|
||||
Yallist.prototype.splice = function (start, deleteCount /*, ...nodes */) {
|
||||
if (start > this.length) {
|
||||
start = this.length - 1
|
||||
}
|
||||
if (start < 0) {
|
||||
start = this.length + start;
|
||||
}
|
||||
|
||||
for (var i = 0, walker = this.head; walker !== null && i < start; i++) {
|
||||
walker = walker.next
|
||||
}
|
||||
|
||||
var ret = []
|
||||
for (var i = 0; walker && i < deleteCount; i++) {
|
||||
ret.push(walker.value)
|
||||
walker = this.removeNode(walker)
|
||||
}
|
||||
if (walker === null) {
|
||||
walker = this.tail
|
||||
}
|
||||
|
||||
if (walker !== this.head && walker !== this.tail) {
|
||||
walker = walker.prev
|
||||
}
|
||||
|
||||
for (var i = 2; i < arguments.length; i++) {
|
||||
walker = insert(this, walker, arguments[i])
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Yallist.prototype.reverse = function () {
|
||||
var head = this.head
|
||||
var tail = this.tail
|
||||
@@ -331,6 +364,23 @@ Yallist.prototype.reverse = function () {
|
||||
return this
|
||||
}
|
||||
|
||||
function insert (self, node, value) {
|
||||
var inserted = node === self.head ?
|
||||
new Node(value, null, node, self) :
|
||||
new Node(value, node, node.next, self)
|
||||
|
||||
if (inserted.next === null) {
|
||||
self.tail = inserted
|
||||
}
|
||||
if (inserted.prev === null) {
|
||||
self.head = inserted
|
||||
}
|
||||
|
||||
self.length++
|
||||
|
||||
return inserted
|
||||
}
|
||||
|
||||
function push (self, item) {
|
||||
self.tail = new Node(item, self.tail, null, self)
|
||||
if (!self.head) {
|
||||
|
||||
47
node_modules/fsevents/package.json
generated
vendored
47
node_modules/fsevents/package.json
generated
vendored
@@ -1,45 +1,31 @@
|
||||
{
|
||||
"_args": [
|
||||
[
|
||||
"fsevents@1.2.9",
|
||||
"/Users/drew.heavner/Documents/Github/upload-google-play"
|
||||
]
|
||||
],
|
||||
"_development": true,
|
||||
"_from": "fsevents@1.2.9",
|
||||
"_id": "fsevents@1.2.9",
|
||||
"_from": "fsevents@^1.2.7",
|
||||
"_id": "fsevents@1.2.11",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
|
||||
"_integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==",
|
||||
"_location": "/fsevents",
|
||||
"_optional": true,
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "version",
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "fsevents@1.2.9",
|
||||
"raw": "fsevents@^1.2.7",
|
||||
"name": "fsevents",
|
||||
"escapedName": "fsevents",
|
||||
"rawSpec": "1.2.9",
|
||||
"rawSpec": "^1.2.7",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "1.2.9"
|
||||
"fetchSpec": "^1.2.7"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/jest-haste-map"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
|
||||
"_spec": "1.2.9",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play",
|
||||
"_resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz",
|
||||
"_shasum": "67bf57f4758f02ede88fb2a1712fef4d15358be3",
|
||||
"_spec": "fsevents@^1.2.7",
|
||||
"_where": "/Users/drew.heavner/Documents/Github/upload-google-play/node_modules/jest-haste-map",
|
||||
"author": {
|
||||
"name": "Philipp Dunkel",
|
||||
"email": "pip@pipobscure.com"
|
||||
},
|
||||
"binary": {
|
||||
"module_name": "fse",
|
||||
"module_path": "./lib/binding/{configuration}/{node_abi}-{platform}-{arch}/",
|
||||
"remote_path": "./v{version}/",
|
||||
"package_name": "{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz",
|
||||
"host": "https://fsevents-binaries.s3-us-west-2.amazonaws.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/strongloop/fsevents/issues"
|
||||
},
|
||||
@@ -47,13 +33,16 @@
|
||||
"node-pre-gyp"
|
||||
],
|
||||
"dependencies": {
|
||||
"bindings": "^1.5.0",
|
||||
"nan": "^2.12.1",
|
||||
"node-pre-gyp": "^0.12.0"
|
||||
"node-pre-gyp": "*"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Native Access to Mac OS-X FSEvents",
|
||||
"engines": {
|
||||
"node": ">=4.0"
|
||||
},
|
||||
"gypfile": true,
|
||||
"homepage": "https://github.com/strongloop/fsevents",
|
||||
"keywords": [
|
||||
"fsevents",
|
||||
@@ -70,10 +59,8 @@
|
||||
"url": "git+https://github.com/strongloop/fsevents.git"
|
||||
},
|
||||
"scripts": {
|
||||
"install": "node install",
|
||||
"node-pre-gyp": "node-pre-gyp",
|
||||
"prepublish": "if [ $(npm -v | head -c 1) -lt 3 ]; then exit 1; fi && npm dedupe",
|
||||
"install": "node-gyp rebuild",
|
||||
"test": "node ./test/fsevents.js && node ./test/function.js 2> /dev/null"
|
||||
},
|
||||
"version": "1.2.9"
|
||||
"version": "1.2.11"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user