passenger 5.1.5 → 5.1.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG +20 -0
- data/build/test_basics.rb +4 -2
- data/dev/ci/lib/set-container-envvars.sh +1 -0
- data/dev/ci/run-tests-with-docker +2 -2
- data/dev/ci/setup-host +1 -0
- data/dev/ci/tests/nginx-dynamic/run +1 -1
- data/package.json +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -1
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +10 -4
- data/src/agent/Core/SecurityUpdateChecker.h +2 -2
- data/src/agent/Shared/Base.cpp +10 -5
- data/src/agent/Shared/Base.h +1 -0
- data/src/cxx_supportlib/ConfigKit/README.md +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/Crypto.cpp +2 -2
- data/src/cxx_supportlib/Utils.cpp +9 -10
- data/src/cxx_supportlib/Utils.h +8 -5
- data/src/cxx_supportlib/Utils/BlockingQueue.h +1 -1
- data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +3 -0
- data/src/helper-scripts/wsgi-loader.py +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -3
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +9 -4
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +8 -0
- metadata +3 -4
- data/npm-shrinkwrap.json +0 -739
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4311bd603fba4a811f0b73e87bc6c4bcea81f3c7
|
4
|
+
data.tar.gz: 6c98efbb7f95813cefb4baf17e1be8b9d7b9c4e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4b1a51f5d6b745840a27fc0ea44476ffe4c91078d3e9f8f7cd6f0241e0113289dc69686632a836838fa30cb5c0d839f174871a2908707a08edc9b2b9d3bc5f2
|
7
|
+
data.tar.gz: 786dbaba625c413aa66423ff5837a4132e938355327addac070a063f4b01e3a609f138039715c6bad5769e2cc73b19c5adf3688038a859074b21a1fcfeaf0753
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
Release 5.1.6
|
2
|
+
-------------------------------
|
3
|
+
|
4
|
+
* Fixes a typo that causes a looping crash when long security update information is sent by the server. In practice we will keep the messages shorter to avoid triggering this until there has been ample time to upgrade.
|
5
|
+
* Fixes unnecessary process respawn if it was detached and min_instances is set to 0. Closes GH-1735.
|
6
|
+
* Introduces APT packages for Debian 9 "Stretch", with Passenger built as dynamic module. Closes GH-1960.
|
7
|
+
* Changes APT packages for Ubuntu 17.04 "Zesty" from static to dynamic module.
|
8
|
+
* [Standalone] Now uses graceful shutdown for the Nginx engine under the hood (requested as part of GH-1598). Thanks to PikachuEXE for contributing this.
|
9
|
+
* [Standalone] Fixes a memory corruption issue in the builtin engine. The issue was introduced in 5.1.5 (settings handling refactoring).
|
10
|
+
* [Standalone] Cleanup the temp dir before aborting when startup cannot continue, e.g. when Passenger is already running. Closes GH-1953.
|
11
|
+
* Fixes WSGI crash with Python 3 and non-ASCII characters in headers or the URL. Closes GH-1935. Thanks to n4nn31355 for the assistance.
|
12
|
+
* [Nginx] The preferred Nginx version is now 1.12.1 (previously 1.10.3), except for the Phusion Nginx APT package, which is pinned at 1.10.3 until an 1.12.x compatible lua module becomes available.
|
13
|
+
* [Nginx] Fixes CVE-2017-7529, an integer overflow vulnerability in the Nginx range filter module. This is accomplished by upgrading to Nginx 1.12.1, or applying the patch (Phusion Nginx APT package).
|
14
|
+
* Updated libcurl version used in precompiled binaries (used for e.g. gem installs) to 7.54.1 (was: 7.54.0).
|
15
|
+
* Updated OpenSSL version used in precompiled binaries (used for e.g. gem installs) to 1.0.2l (was: 1.0.2k).
|
16
|
+
* Updated GeoIP version used in precompiled binaries (used for e.g. gem installs) to 1.6.11 (was: 1.6.9).
|
17
|
+
* Updated PCRE version used in precompiled binaries (used for e.g. gem installs) to 8.40 (was: 8.39).
|
18
|
+
* Adds support for building with MacPorts' OpenSSL. Closes GH-1959.
|
19
|
+
|
20
|
+
|
1
21
|
Release 5.1.5
|
2
22
|
-------------------------------
|
3
23
|
|
data/build/test_basics.rb
CHANGED
@@ -56,6 +56,8 @@ task 'test:install_deps' do
|
|
56
56
|
bundle_args = ENV['BUNDLE_ARGS'].to_s
|
57
57
|
end
|
58
58
|
|
59
|
+
yarn_args = ENV['YARN_ARGS'].to_s
|
60
|
+
|
59
61
|
if !PlatformInfo.locate_ruby_tool('bundle') || bundler_too_old?
|
60
62
|
sh "#{gem_install} bundler"
|
61
63
|
end
|
@@ -64,7 +66,7 @@ task 'test:install_deps' do
|
|
64
66
|
sh "bundle install #{bundle_args} --without="
|
65
67
|
else
|
66
68
|
if install_base_deps
|
67
|
-
sh "bundle install #{bundle_args} --without doc"
|
69
|
+
sh "bundle install #{bundle_args} --without doc release"
|
68
70
|
end
|
69
71
|
if install_doctools
|
70
72
|
sh "bundle install #{bundle_args} --without base"
|
@@ -91,7 +93,7 @@ task 'test:install_deps' do
|
|
91
93
|
" BUNDLE_ARGS='#{bundle_args}'"
|
92
94
|
end
|
93
95
|
if boolean_option('NODE_MODULES', default)
|
94
|
-
sh "
|
96
|
+
sh "yarn install #{yarn_args}"
|
95
97
|
end
|
96
98
|
end
|
97
99
|
|
@@ -7,6 +7,7 @@ export DEVDEPS_DEFAULT=no
|
|
7
7
|
export DEPS_TARGET="$CACHE_DIR/bundle"
|
8
8
|
export USE_CCACHE=true
|
9
9
|
export COMPILE_CONCURRENCY=${COMPILE_CONCURRENCY:-2}
|
10
|
+
export YARN_ARGS="--cache-folder='$CACHE_DIR/yarn'"
|
10
11
|
export CCACHE_DIR="$CACHE_DIR/ccache"
|
11
12
|
export CCACHE_COMPRESS=1
|
12
13
|
export CCACHE_COMPRESSLEVEL=3
|
@@ -28,11 +28,11 @@ run_exec docker run --rm $TTY_ARGS \
|
|
28
28
|
-v "$CACHE_DIR:/passenger/.ci_cache" \
|
29
29
|
-e "APP_UID=$(id -u)" \
|
30
30
|
-e "APP_GID=$(id -g)" \
|
31
|
-
-e "
|
31
|
+
-e "DEBUG_CONSOLE=$DEBUG_CONSOLE" \
|
32
32
|
-e "TEST_RUBY_VERSION=$TEST_RUBY_VERSION" \
|
33
33
|
-e "COMPILE_CONCURRENCY=$COMPILE_CONCURRENCY" \
|
34
34
|
-e "SUDO=$SUDO" \
|
35
|
-
phusion/passenger-ci-docker-env:1.0.
|
35
|
+
phusion/passenger-ci-docker-env:1.0.1 \
|
36
36
|
/sbin/my_init --skip-runit --skip-startup-files --quiet -- \
|
37
37
|
/passenger/dev/ci/scripts/inituidgid \
|
38
38
|
/sbin/setuser app \
|
data/dev/ci/setup-host
CHANGED
data/package.json
CHANGED
@@ -118,10 +118,16 @@ Controller::initialize() {
|
|
118
118
|
if (requestConfigCache->singleAppMode) {
|
119
119
|
boost::shared_ptr<Options> options = boost::make_shared<Options>();
|
120
120
|
fillPoolOptionsFromConfigCaches(*options, requestConfigCache);
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
121
|
+
|
122
|
+
string appRoot = config["app_root"].asString();
|
123
|
+
string environment = config["environment"].asString();
|
124
|
+
string appType = config["app_type"].asString();
|
125
|
+
string startupFile = config["startup_file"].asString();
|
126
|
+
|
127
|
+
options->appRoot = appRoot;
|
128
|
+
options->environment = environment;
|
129
|
+
options->appType = appType;
|
130
|
+
options->startupFile = startupFile;
|
125
131
|
*options = options->copyAndPersist();
|
126
132
|
poolOptionsCache.insert(options->getAppGroupName(), options);
|
127
133
|
}
|
@@ -475,8 +475,8 @@ public:
|
|
475
475
|
string signature64 = responseJson["signature"].asString();
|
476
476
|
string data64 = responseJson["data"].asString();
|
477
477
|
|
478
|
-
signatureChars = (char *)malloc(signature64.length()
|
479
|
-
dataChars = (char *)malloc(
|
478
|
+
signatureChars = (char *)malloc(modp_b64_decode_len(signature64.length()));
|
479
|
+
dataChars = (char *)malloc(modp_b64_decode_len(data64.length()));
|
480
480
|
if (signatureChars == NULL || dataChars == NULL) {
|
481
481
|
logUpdateFailResponse("out of memory", responseData);
|
482
482
|
break;
|
data/src/agent/Shared/Base.cpp
CHANGED
@@ -1527,11 +1527,7 @@ initializeAgent(int argc, char **argv[], const char *processName,
|
|
1527
1527
|
exit(1);
|
1528
1528
|
}
|
1529
1529
|
|
1530
|
-
|
1531
|
-
origArgv = (char **) malloc(argc * sizeof(char *));
|
1532
|
-
for (int i = 0; i < argc; i++) {
|
1533
|
-
origArgv[i] = strdup((*argv)[i]);
|
1534
|
-
}
|
1530
|
+
storeArgvCopy(argc, *argv);
|
1535
1531
|
|
1536
1532
|
// Change process title.
|
1537
1533
|
size_t totalArgLen = strlen((*argv)[0]);
|
@@ -1641,6 +1637,15 @@ initializeAgentOptions(const char *processName, VariantMap &options,
|
|
1641
1637
|
}
|
1642
1638
|
}
|
1643
1639
|
|
1640
|
+
void
|
1641
|
+
storeArgvCopy(int argc, char *argv[]) {
|
1642
|
+
// Make a copy of the arguments before changing process title.
|
1643
|
+
origArgv = (char **) malloc(argc * sizeof(char *));
|
1644
|
+
for (int i = 0; i < argc; i++) {
|
1645
|
+
origArgv[i] = strdup(argv[i]);
|
1646
|
+
}
|
1647
|
+
}
|
1648
|
+
|
1644
1649
|
void
|
1645
1650
|
shutdownAgent(VariantMap *agentOptions) {
|
1646
1651
|
delete agentOptions;
|
data/src/agent/Shared/Base.h
CHANGED
@@ -46,6 +46,7 @@ VariantMap initializeAgent(int argc, char **argv[], const char *processName,
|
|
46
46
|
int argStartIndex = 1);
|
47
47
|
void initializeAgentOptions(const char *processName, VariantMap &options,
|
48
48
|
PreinitializationFunc preinit = NULL);
|
49
|
+
void storeArgvCopy(int argc, char *argv[]);
|
49
50
|
void installAgentAbortHandler();
|
50
51
|
void installDiagnosticsDumper(DiagnosticsDumper func, void *userData);
|
51
52
|
|
@@ -24,7 +24,7 @@ ConfigKit is a configuration management system that lets you define configuratio
|
|
24
24
|
- Deleting data
|
25
25
|
- Fetching data
|
26
26
|
- Default values
|
27
|
-
-
|
27
|
+
- Inspecting all data
|
28
28
|
* Putting it all together: synchronous version
|
29
29
|
- SecurityChecker example: a configurable, low-level component
|
30
30
|
- DnsQuerier example: a low-level component with post-configuration application operations
|
@@ -80,7 +80,7 @@
|
|
80
80
|
#define PASSENGER_API_VERSION_MAJOR 0
|
81
81
|
#define PASSENGER_API_VERSION_MINOR 3
|
82
82
|
#define PASSENGER_DEFAULT_USER "nobody"
|
83
|
-
#define PASSENGER_VERSION "5.1.
|
83
|
+
#define PASSENGER_VERSION "5.1.6"
|
84
84
|
#define POOL_HELPER_THREAD_STACK_SIZE 262144
|
85
85
|
#define PROCESS_SHUTDOWN_TIMEOUT 60
|
86
86
|
#define PROCESS_SHUTDOWN_TIMEOUT_DISPLAY "1 minute"
|
@@ -273,7 +273,7 @@ bool Crypto::generateAndAppendNonce(string &nonce) {
|
|
273
273
|
unsigned char rndChars[rndLen];
|
274
274
|
|
275
275
|
if (generateRandomChars(rndChars, rndLen)) {
|
276
|
-
char rndChars64[rndLen
|
276
|
+
char rndChars64[modp_b64_encode_len(rndLen)];
|
277
277
|
modp_b64_encode(rndChars64, (const char *) rndChars, rndLen);
|
278
278
|
|
279
279
|
nonce.append(rndChars64);
|
@@ -724,7 +724,7 @@ bool Crypto::generateAndAppendNonce(string &nonce) {
|
|
724
724
|
return false;
|
725
725
|
}
|
726
726
|
|
727
|
-
char rndChars64[rndLen
|
727
|
+
char rndChars64[modp_b64_encode_len(rndLen)];
|
728
728
|
modp_b64_encode(rndChars64, (const char *) rndChars, rndLen);
|
729
729
|
|
730
730
|
nonce.append(rndChars64);
|
@@ -155,7 +155,7 @@ getFileType(const StaticString &filename, CachedFileStat *cstat, boost::mutex *c
|
|
155
155
|
|
156
156
|
void
|
157
157
|
createFile(const string &filename, const StaticString &contents, mode_t permissions, uid_t owner,
|
158
|
-
gid_t group, bool overwrite)
|
158
|
+
gid_t group, bool overwrite, const char *callerFile, unsigned int callerLine)
|
159
159
|
{
|
160
160
|
FileDescriptor fd;
|
161
161
|
int ret, e, options;
|
@@ -166,7 +166,8 @@ createFile(const string &filename, const StaticString &contents, mode_t permissi
|
|
166
166
|
}
|
167
167
|
do {
|
168
168
|
fd.assign(open(filename.c_str(), options, permissions),
|
169
|
-
__FILE__,
|
169
|
+
(callerFile == NULL) ? __FILE__ : callerFile,
|
170
|
+
(callerLine == 0) ? __LINE__ : callerLine);
|
170
171
|
} while (fd == -1 && errno == EINTR);
|
171
172
|
if (fd != -1) {
|
172
173
|
FileGuard guard(filename);
|
@@ -1031,9 +1032,9 @@ runShellCommand(const StaticString &command) {
|
|
1031
1032
|
}
|
1032
1033
|
|
1033
1034
|
string
|
1034
|
-
runCommandAndCaptureOutput(const char **command) {
|
1035
|
+
runCommandAndCaptureOutput(const char **command, int *status) {
|
1035
1036
|
pid_t pid;
|
1036
|
-
int e;
|
1037
|
+
int e, waitRet;
|
1037
1038
|
Pipe p;
|
1038
1039
|
|
1039
1040
|
p = createPipe(__FILE__, __LINE__);
|
@@ -1087,14 +1088,12 @@ runCommandAndCaptureOutput(const char **command) {
|
|
1087
1088
|
result.append(buf, ret);
|
1088
1089
|
}
|
1089
1090
|
p[0].close();
|
1090
|
-
syscalls::waitpid(pid, NULL, 0);
|
1091
1091
|
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
} else {
|
1096
|
-
return result;
|
1092
|
+
waitRet = syscalls::waitpid(pid, NULL, 0);
|
1093
|
+
if (status != NULL) {
|
1094
|
+
*status = waitRet;
|
1097
1095
|
}
|
1096
|
+
return result;
|
1098
1097
|
}
|
1099
1098
|
}
|
1100
1099
|
|
data/src/cxx_supportlib/Utils.h
CHANGED
@@ -148,7 +148,8 @@ FileType getFileType(const StaticString &filename, CachedFileStat *cstat = 0,
|
|
148
148
|
void createFile(const string &filename, const StaticString &contents,
|
149
149
|
mode_t permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH,
|
150
150
|
uid_t owner = USER_NOT_GIVEN, gid_t group = GROUP_NOT_GIVEN,
|
151
|
-
bool overwrite = true
|
151
|
+
bool overwrite = true,
|
152
|
+
const char *callerFile = NULL, unsigned int callerLine = 0);
|
152
153
|
|
153
154
|
/**
|
154
155
|
* Returns a canonical version of the specified path. All symbolic links
|
@@ -343,12 +344,14 @@ void disableMallocDebugging();
|
|
343
344
|
int runShellCommand(const StaticString &command);
|
344
345
|
|
345
346
|
/**
|
346
|
-
* Run a command and capture its stdout output.
|
347
|
+
* Run a command and capture its stdout output. This function
|
348
|
+
* does not care whether the command fails.
|
347
349
|
*
|
348
|
-
* @param command The argument to pass to execvp()
|
349
|
-
* @
|
350
|
+
* @param command The argument to pass to execvp().
|
351
|
+
* @param status The status of the child process will be stored here, if non-NULL.
|
352
|
+
* @throws SystemException
|
350
353
|
*/
|
351
|
-
string runCommandAndCaptureOutput(const char **command);
|
354
|
+
string runCommandAndCaptureOutput(const char **command, int *status = NULL);
|
352
355
|
|
353
356
|
/**
|
354
357
|
* Async-signal safe way to fork().
|
@@ -107,7 +107,7 @@ public:
|
|
107
107
|
while (queue.empty() && !timedOut) {
|
108
108
|
posix_time::time_duration diff = deadline -
|
109
109
|
posix_time::microsec_clock::local_time();
|
110
|
-
if (diff.is_negative()
|
110
|
+
if (diff.is_negative()) {
|
111
111
|
timedOut = true;
|
112
112
|
} else {
|
113
113
|
timedOut = !added.timed_wait(l,
|
@@ -312,6 +312,9 @@ public:
|
|
312
312
|
string psOutput = this->psOutput;
|
313
313
|
if (psOutput.empty()) {
|
314
314
|
psOutput = runCommandAndCaptureOutput(command);
|
315
|
+
if (psOutput.empty()) {
|
316
|
+
throw RuntimeException("The 'ps' command failed");
|
317
|
+
}
|
315
318
|
}
|
316
319
|
pidsArg.resize(0);
|
317
320
|
fmtArg.resize(0);
|
@@ -31,10 +31,15 @@ module PhusionPassenger
|
|
31
31
|
|
32
32
|
PACKAGE_NAME = 'passenger'
|
33
33
|
# Run 'rake src/cxx_supportlib/Constants.h' after changing this number.
|
34
|
-
VERSION_STRING = '5.1.
|
34
|
+
VERSION_STRING = '5.1.6'
|
35
35
|
|
36
|
-
PREFERRED_NGINX_VERSION = '1.
|
37
|
-
NGINX_SHA256_CHECKSUM = '
|
36
|
+
PREFERRED_NGINX_VERSION = '1.12.1'
|
37
|
+
NGINX_SHA256_CHECKSUM = '8793bf426485a30f91021b6b945a9fd8a84d87d17b566562c3797aba8fac76fb'
|
38
|
+
|
39
|
+
# Packaging may be locked to an older version due to the specific module configuration being
|
40
|
+
# incompatible with the version we prefer (latest stable).
|
41
|
+
PACKAGING_PREFERRED_NGINX_VERSION = '1.10.3'
|
42
|
+
PACKAGING_NGINX_SHA256_CHECKSUM = '75020f1364cac459cb733c4e1caed2d00376e40ea05588fb8793076a4c69dd90'
|
38
43
|
|
39
44
|
PREFERRED_PCRE_VERSION = '8.39'
|
40
45
|
PCRE_SHA256_CHECKSUM = 'ccdf7e788769838f8285b3ee672ed573358202305ee361cfec7a4a4fb005bbc7'
|
@@ -70,7 +70,6 @@ module PhusionPassenger
|
|
70
70
|
'INSTALL.md',
|
71
71
|
'NEWS',
|
72
72
|
'package.json',
|
73
|
-
'npm-shrinkwrap.json',
|
74
73
|
'passenger.gemspec',
|
75
74
|
'build/**/*',
|
76
75
|
'bin/*',
|
@@ -78,7 +77,8 @@ module PhusionPassenger
|
|
78
77
|
'man/*',
|
79
78
|
'dev/**/*',
|
80
79
|
'src/**/*',
|
81
|
-
'resources/**/*'
|
80
|
+
'resources/**/*',
|
81
|
+
'resources/templates/error_renderer/.editorconfig'
|
82
82
|
]
|
83
83
|
|
84
84
|
# Files that should be excluded from the gem or tarball. Overrides GLOB.
|
@@ -94,6 +94,7 @@ module PhusionPassenger
|
|
94
94
|
'.project',
|
95
95
|
'Gemfile',
|
96
96
|
'Gemfile.lock',
|
97
|
+
'yarn.lock',
|
97
98
|
'Vagrantfile',
|
98
99
|
'Jenkinsfile',
|
99
100
|
'Passenger.sublime-project',
|
@@ -32,11 +32,14 @@ module PhusionPassenger
|
|
32
32
|
if PlatformInfo.os_name_simple == "macosx"
|
33
33
|
if File.exist?("/usr/include/openssl")
|
34
34
|
""
|
35
|
-
else
|
36
35
|
# OS X >= 10.11 El Capitan no longer include
|
37
|
-
# OpenSSL development headers.
|
38
|
-
|
36
|
+
# OpenSSL development headers.
|
37
|
+
elsif File.exist?("/usr/local/opt/openssl/include")
|
38
|
+
# Use the one from Homebrew.
|
39
39
|
"-I/usr/local/opt/openssl/include"
|
40
|
+
else
|
41
|
+
# Use the one from Macports.
|
42
|
+
"-I/opt/local/include"
|
40
43
|
end
|
41
44
|
else
|
42
45
|
""
|
@@ -48,8 +51,10 @@ module PhusionPassenger
|
|
48
51
|
if PlatformInfo.os_name_simple == "macosx"
|
49
52
|
if File.exist?("/usr/include/openssl")
|
50
53
|
""
|
51
|
-
|
54
|
+
elsif File.exist?("/usr/local/opt/openssl/include")
|
52
55
|
"-L/usr/local/opt/openssl/lib"
|
56
|
+
else
|
57
|
+
"-L/opt/local/lib"
|
53
58
|
end
|
54
59
|
else
|
55
60
|
""
|
@@ -68,6 +68,10 @@ module PhusionPassenger
|
|
68
68
|
rescue SystemCallError, IOError
|
69
69
|
pid = nil
|
70
70
|
end
|
71
|
+
if @can_remove_working_dir
|
72
|
+
FileUtils.remove_entry_secure(@working_dir)
|
73
|
+
@can_remove_working_dir = false
|
74
|
+
end
|
71
75
|
if pid
|
72
76
|
abort "#{PROGRAM_NAME} Standalone is already running on PID #{pid}."
|
73
77
|
else
|
@@ -54,6 +54,10 @@ module PhusionPassenger
|
|
54
54
|
rescue SystemCallError, IOError
|
55
55
|
pid = nil
|
56
56
|
end
|
57
|
+
if @can_remove_working_dir
|
58
|
+
FileUtils.remove_entry_secure(@working_dir)
|
59
|
+
@can_remove_working_dir = false
|
60
|
+
end
|
57
61
|
if pid
|
58
62
|
abort "#{PROGRAM_NAME} Standalone is already running on PID #{pid}."
|
59
63
|
else
|
@@ -154,6 +158,10 @@ module PhusionPassenger
|
|
154
158
|
:start_command => "#{Shellwords.escape @nginx_binary} " +
|
155
159
|
"-c #{Shellwords.escape nginx_config_path} " +
|
156
160
|
"-p #{Shellwords.escape @working_dir}",
|
161
|
+
:stop_command => "#{Shellwords.escape @nginx_binary} " +
|
162
|
+
"-c #{Shellwords.escape nginx_config_path} " +
|
163
|
+
"-p #{Shellwords.escape @working_dir} " +
|
164
|
+
"-s quit",
|
157
165
|
:ping_command => ping_spec,
|
158
166
|
:pid_file => @options[:pid_file],
|
159
167
|
:log_file => @options[:log_file],
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: passenger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.1.
|
4
|
+
version: 5.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phusion - http://www.phusion.nl/
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -237,7 +237,6 @@ files:
|
|
237
237
|
- man/passenger-config.1
|
238
238
|
- man/passenger-memory-stats.8
|
239
239
|
- man/passenger-status.8
|
240
|
-
- npm-shrinkwrap.json
|
241
240
|
- package.json
|
242
241
|
- passenger.gemspec
|
243
242
|
- resources/mime.types
|
@@ -3739,7 +3738,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
3739
3738
|
version: '0'
|
3740
3739
|
requirements: []
|
3741
3740
|
rubyforge_project: passenger
|
3742
|
-
rubygems_version: 2.6.
|
3741
|
+
rubygems_version: 2.6.11
|
3743
3742
|
signing_key:
|
3744
3743
|
specification_version: 4
|
3745
3744
|
summary: A fast and robust web server and application server for Ruby, Python and
|
data/npm-shrinkwrap.json
DELETED
@@ -1,739 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "passenger",
|
3
|
-
"version": "0.0.0",
|
4
|
-
"dependencies": {
|
5
|
-
"express": {
|
6
|
-
"version": "3.21.2",
|
7
|
-
"from": "express@^3.4.8",
|
8
|
-
"resolved": "https://registry.npmjs.org/express/-/express-3.21.2.tgz",
|
9
|
-
"dependencies": {
|
10
|
-
"basic-auth": {
|
11
|
-
"version": "1.0.3",
|
12
|
-
"from": "basic-auth@~1.0.3",
|
13
|
-
"resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.3.tgz"
|
14
|
-
},
|
15
|
-
"connect": {
|
16
|
-
"version": "2.30.2",
|
17
|
-
"from": "connect@2.30.2",
|
18
|
-
"resolved": "https://registry.npmjs.org/connect/-/connect-2.30.2.tgz",
|
19
|
-
"dependencies": {
|
20
|
-
"basic-auth-connect": {
|
21
|
-
"version": "1.0.0",
|
22
|
-
"from": "basic-auth-connect@1.0.0",
|
23
|
-
"resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz"
|
24
|
-
},
|
25
|
-
"body-parser": {
|
26
|
-
"version": "1.13.3",
|
27
|
-
"from": "body-parser@~1.13.3",
|
28
|
-
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz",
|
29
|
-
"dependencies": {
|
30
|
-
"iconv-lite": {
|
31
|
-
"version": "0.4.11",
|
32
|
-
"from": "iconv-lite@0.4.11",
|
33
|
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz"
|
34
|
-
},
|
35
|
-
"on-finished": {
|
36
|
-
"version": "2.3.0",
|
37
|
-
"from": "on-finished@~2.3.0",
|
38
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
39
|
-
"dependencies": {
|
40
|
-
"ee-first": {
|
41
|
-
"version": "1.1.1",
|
42
|
-
"from": "ee-first@1.1.1",
|
43
|
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
44
|
-
}
|
45
|
-
}
|
46
|
-
},
|
47
|
-
"raw-body": {
|
48
|
-
"version": "2.1.4",
|
49
|
-
"from": "raw-body@~2.1.2",
|
50
|
-
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz",
|
51
|
-
"dependencies": {
|
52
|
-
"iconv-lite": {
|
53
|
-
"version": "0.4.12",
|
54
|
-
"from": "iconv-lite@0.4.12",
|
55
|
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz"
|
56
|
-
},
|
57
|
-
"unpipe": {
|
58
|
-
"version": "1.0.0",
|
59
|
-
"from": "unpipe@1.0.0",
|
60
|
-
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
|
61
|
-
}
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
},
|
66
|
-
"bytes": {
|
67
|
-
"version": "2.1.0",
|
68
|
-
"from": "bytes@2.1.0",
|
69
|
-
"resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz"
|
70
|
-
},
|
71
|
-
"cookie-parser": {
|
72
|
-
"version": "1.3.5",
|
73
|
-
"from": "cookie-parser@~1.3.5",
|
74
|
-
"resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.3.5.tgz"
|
75
|
-
},
|
76
|
-
"compression": {
|
77
|
-
"version": "1.5.2",
|
78
|
-
"from": "compression@~1.5.2",
|
79
|
-
"resolved": "https://registry.npmjs.org/compression/-/compression-1.5.2.tgz",
|
80
|
-
"dependencies": {
|
81
|
-
"accepts": {
|
82
|
-
"version": "1.2.13",
|
83
|
-
"from": "accepts@~1.2.12",
|
84
|
-
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz",
|
85
|
-
"dependencies": {
|
86
|
-
"mime-types": {
|
87
|
-
"version": "2.1.7",
|
88
|
-
"from": "mime-types@~2.1.4",
|
89
|
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
|
90
|
-
"dependencies": {
|
91
|
-
"mime-db": {
|
92
|
-
"version": "1.19.0",
|
93
|
-
"from": "mime-db@~1.19.0",
|
94
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
|
95
|
-
}
|
96
|
-
}
|
97
|
-
},
|
98
|
-
"negotiator": {
|
99
|
-
"version": "0.5.3",
|
100
|
-
"from": "negotiator@0.5.3",
|
101
|
-
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
|
102
|
-
}
|
103
|
-
}
|
104
|
-
},
|
105
|
-
"compressible": {
|
106
|
-
"version": "2.0.6",
|
107
|
-
"from": "compressible@~2.0.5",
|
108
|
-
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.6.tgz",
|
109
|
-
"dependencies": {
|
110
|
-
"mime-db": {
|
111
|
-
"version": "1.20.0",
|
112
|
-
"from": "mime-db@>= 1.19.0 < 2",
|
113
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.20.0.tgz"
|
114
|
-
}
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
},
|
119
|
-
"connect-timeout": {
|
120
|
-
"version": "1.6.2",
|
121
|
-
"from": "connect-timeout@~1.6.2",
|
122
|
-
"resolved": "https://registry.npmjs.org/connect-timeout/-/connect-timeout-1.6.2.tgz",
|
123
|
-
"dependencies": {
|
124
|
-
"ms": {
|
125
|
-
"version": "0.7.1",
|
126
|
-
"from": "ms@0.7.1",
|
127
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
|
128
|
-
}
|
129
|
-
}
|
130
|
-
},
|
131
|
-
"csurf": {
|
132
|
-
"version": "1.8.3",
|
133
|
-
"from": "csurf@~1.8.3",
|
134
|
-
"resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz",
|
135
|
-
"dependencies": {
|
136
|
-
"csrf": {
|
137
|
-
"version": "3.0.0",
|
138
|
-
"from": "csrf@~3.0.0",
|
139
|
-
"resolved": "https://registry.npmjs.org/csrf/-/csrf-3.0.0.tgz",
|
140
|
-
"dependencies": {
|
141
|
-
"base64-url": {
|
142
|
-
"version": "1.2.1",
|
143
|
-
"from": "base64-url@1.2.1",
|
144
|
-
"resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"
|
145
|
-
},
|
146
|
-
"rndm": {
|
147
|
-
"version": "1.1.1",
|
148
|
-
"from": "rndm@~1.1.0",
|
149
|
-
"resolved": "https://registry.npmjs.org/rndm/-/rndm-1.1.1.tgz"
|
150
|
-
},
|
151
|
-
"scmp": {
|
152
|
-
"version": "1.0.0",
|
153
|
-
"from": "scmp@1.0.0",
|
154
|
-
"resolved": "https://registry.npmjs.org/scmp/-/scmp-1.0.0.tgz"
|
155
|
-
},
|
156
|
-
"uid-safe": {
|
157
|
-
"version": "2.0.0",
|
158
|
-
"from": "uid-safe@~2.0.0",
|
159
|
-
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz"
|
160
|
-
}
|
161
|
-
}
|
162
|
-
}
|
163
|
-
}
|
164
|
-
},
|
165
|
-
"errorhandler": {
|
166
|
-
"version": "1.4.2",
|
167
|
-
"from": "errorhandler@~1.4.2",
|
168
|
-
"resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.4.2.tgz",
|
169
|
-
"dependencies": {
|
170
|
-
"accepts": {
|
171
|
-
"version": "1.2.13",
|
172
|
-
"from": "accepts@~1.2.12",
|
173
|
-
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz",
|
174
|
-
"dependencies": {
|
175
|
-
"mime-types": {
|
176
|
-
"version": "2.1.7",
|
177
|
-
"from": "mime-types@~2.1.4",
|
178
|
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
|
179
|
-
"dependencies": {
|
180
|
-
"mime-db": {
|
181
|
-
"version": "1.19.0",
|
182
|
-
"from": "mime-db@~1.19.0",
|
183
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
|
184
|
-
}
|
185
|
-
}
|
186
|
-
},
|
187
|
-
"negotiator": {
|
188
|
-
"version": "0.5.3",
|
189
|
-
"from": "negotiator@0.5.3",
|
190
|
-
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
|
191
|
-
}
|
192
|
-
}
|
193
|
-
}
|
194
|
-
}
|
195
|
-
},
|
196
|
-
"express-session": {
|
197
|
-
"version": "1.11.3",
|
198
|
-
"from": "express-session@~1.11.3",
|
199
|
-
"resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz",
|
200
|
-
"dependencies": {
|
201
|
-
"crc": {
|
202
|
-
"version": "3.3.0",
|
203
|
-
"from": "crc@3.3.0",
|
204
|
-
"resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz"
|
205
|
-
},
|
206
|
-
"uid-safe": {
|
207
|
-
"version": "2.0.0",
|
208
|
-
"from": "uid-safe@~2.0.0",
|
209
|
-
"resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz",
|
210
|
-
"dependencies": {
|
211
|
-
"base64-url": {
|
212
|
-
"version": "1.2.1",
|
213
|
-
"from": "base64-url@1.2.1",
|
214
|
-
"resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz"
|
215
|
-
}
|
216
|
-
}
|
217
|
-
}
|
218
|
-
}
|
219
|
-
},
|
220
|
-
"finalhandler": {
|
221
|
-
"version": "0.4.0",
|
222
|
-
"from": "finalhandler@0.4.0",
|
223
|
-
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz",
|
224
|
-
"dependencies": {
|
225
|
-
"on-finished": {
|
226
|
-
"version": "2.3.0",
|
227
|
-
"from": "on-finished@~2.3.0",
|
228
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
229
|
-
"dependencies": {
|
230
|
-
"ee-first": {
|
231
|
-
"version": "1.1.1",
|
232
|
-
"from": "ee-first@1.1.1",
|
233
|
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
234
|
-
}
|
235
|
-
}
|
236
|
-
},
|
237
|
-
"unpipe": {
|
238
|
-
"version": "1.0.0",
|
239
|
-
"from": "unpipe@~1.0.0",
|
240
|
-
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"
|
241
|
-
}
|
242
|
-
}
|
243
|
-
},
|
244
|
-
"http-errors": {
|
245
|
-
"version": "1.3.1",
|
246
|
-
"from": "http-errors@~1.3.1",
|
247
|
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
|
248
|
-
"dependencies": {
|
249
|
-
"inherits": {
|
250
|
-
"version": "2.0.1",
|
251
|
-
"from": "inherits@~2.0.1",
|
252
|
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
253
|
-
},
|
254
|
-
"statuses": {
|
255
|
-
"version": "1.2.1",
|
256
|
-
"from": "statuses@1",
|
257
|
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
|
258
|
-
}
|
259
|
-
}
|
260
|
-
},
|
261
|
-
"method-override": {
|
262
|
-
"version": "2.3.5",
|
263
|
-
"from": "method-override@~2.3.5",
|
264
|
-
"resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.5.tgz"
|
265
|
-
},
|
266
|
-
"morgan": {
|
267
|
-
"version": "1.6.1",
|
268
|
-
"from": "morgan@~1.6.1",
|
269
|
-
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz",
|
270
|
-
"dependencies": {
|
271
|
-
"on-finished": {
|
272
|
-
"version": "2.3.0",
|
273
|
-
"from": "on-finished@~2.3.0",
|
274
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
275
|
-
"dependencies": {
|
276
|
-
"ee-first": {
|
277
|
-
"version": "1.1.1",
|
278
|
-
"from": "ee-first@1.1.1",
|
279
|
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
280
|
-
}
|
281
|
-
}
|
282
|
-
}
|
283
|
-
}
|
284
|
-
},
|
285
|
-
"multiparty": {
|
286
|
-
"version": "3.3.2",
|
287
|
-
"from": "multiparty@3.3.2",
|
288
|
-
"resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz",
|
289
|
-
"dependencies": {
|
290
|
-
"readable-stream": {
|
291
|
-
"version": "1.1.13",
|
292
|
-
"from": "readable-stream@~1.1.9",
|
293
|
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz",
|
294
|
-
"dependencies": {
|
295
|
-
"core-util-is": {
|
296
|
-
"version": "1.0.1",
|
297
|
-
"from": "core-util-is@~1.0.0",
|
298
|
-
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
|
299
|
-
},
|
300
|
-
"isarray": {
|
301
|
-
"version": "0.0.1",
|
302
|
-
"from": "isarray@0.0.1",
|
303
|
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz"
|
304
|
-
},
|
305
|
-
"string_decoder": {
|
306
|
-
"version": "0.10.31",
|
307
|
-
"from": "string_decoder@~0.10.x",
|
308
|
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz"
|
309
|
-
},
|
310
|
-
"inherits": {
|
311
|
-
"version": "2.0.1",
|
312
|
-
"from": "inherits@~2.0.1",
|
313
|
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
314
|
-
}
|
315
|
-
}
|
316
|
-
},
|
317
|
-
"stream-counter": {
|
318
|
-
"version": "0.2.0",
|
319
|
-
"from": "stream-counter@~0.2.0",
|
320
|
-
"resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz"
|
321
|
-
}
|
322
|
-
}
|
323
|
-
},
|
324
|
-
"on-headers": {
|
325
|
-
"version": "1.0.1",
|
326
|
-
"from": "on-headers@~1.0.0",
|
327
|
-
"resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz"
|
328
|
-
},
|
329
|
-
"pause": {
|
330
|
-
"version": "0.1.0",
|
331
|
-
"from": "pause@0.1.0",
|
332
|
-
"resolved": "https://registry.npmjs.org/pause/-/pause-0.1.0.tgz"
|
333
|
-
},
|
334
|
-
"qs": {
|
335
|
-
"version": "4.0.0",
|
336
|
-
"from": "qs@4.0.0",
|
337
|
-
"resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz"
|
338
|
-
},
|
339
|
-
"response-time": {
|
340
|
-
"version": "2.3.1",
|
341
|
-
"from": "response-time@~2.3.1",
|
342
|
-
"resolved": "https://registry.npmjs.org/response-time/-/response-time-2.3.1.tgz"
|
343
|
-
},
|
344
|
-
"serve-favicon": {
|
345
|
-
"version": "2.3.0",
|
346
|
-
"from": "serve-favicon@~2.3.0",
|
347
|
-
"resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.3.0.tgz",
|
348
|
-
"dependencies": {
|
349
|
-
"ms": {
|
350
|
-
"version": "0.7.1",
|
351
|
-
"from": "ms@0.7.1",
|
352
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
|
353
|
-
}
|
354
|
-
}
|
355
|
-
},
|
356
|
-
"serve-index": {
|
357
|
-
"version": "1.7.2",
|
358
|
-
"from": "serve-index@~1.7.2",
|
359
|
-
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.7.2.tgz",
|
360
|
-
"dependencies": {
|
361
|
-
"accepts": {
|
362
|
-
"version": "1.2.13",
|
363
|
-
"from": "accepts@~1.2.12",
|
364
|
-
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz",
|
365
|
-
"dependencies": {
|
366
|
-
"negotiator": {
|
367
|
-
"version": "0.5.3",
|
368
|
-
"from": "negotiator@0.5.3",
|
369
|
-
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz"
|
370
|
-
}
|
371
|
-
}
|
372
|
-
},
|
373
|
-
"batch": {
|
374
|
-
"version": "0.5.2",
|
375
|
-
"from": "batch@0.5.2",
|
376
|
-
"resolved": "https://registry.npmjs.org/batch/-/batch-0.5.2.tgz"
|
377
|
-
},
|
378
|
-
"mime-types": {
|
379
|
-
"version": "2.1.7",
|
380
|
-
"from": "mime-types@~2.1.4",
|
381
|
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
|
382
|
-
"dependencies": {
|
383
|
-
"mime-db": {
|
384
|
-
"version": "1.19.0",
|
385
|
-
"from": "mime-db@~1.19.0",
|
386
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
|
387
|
-
}
|
388
|
-
}
|
389
|
-
}
|
390
|
-
}
|
391
|
-
},
|
392
|
-
"serve-static": {
|
393
|
-
"version": "1.10.0",
|
394
|
-
"from": "serve-static@~1.10.0",
|
395
|
-
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz"
|
396
|
-
},
|
397
|
-
"type-is": {
|
398
|
-
"version": "1.6.9",
|
399
|
-
"from": "type-is@~1.6.6",
|
400
|
-
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz",
|
401
|
-
"dependencies": {
|
402
|
-
"media-typer": {
|
403
|
-
"version": "0.3.0",
|
404
|
-
"from": "media-typer@0.3.0",
|
405
|
-
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
|
406
|
-
},
|
407
|
-
"mime-types": {
|
408
|
-
"version": "2.1.7",
|
409
|
-
"from": "mime-types@~2.1.7",
|
410
|
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz",
|
411
|
-
"dependencies": {
|
412
|
-
"mime-db": {
|
413
|
-
"version": "1.19.0",
|
414
|
-
"from": "mime-db@~1.19.0",
|
415
|
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz"
|
416
|
-
}
|
417
|
-
}
|
418
|
-
}
|
419
|
-
}
|
420
|
-
},
|
421
|
-
"vhost": {
|
422
|
-
"version": "3.0.2",
|
423
|
-
"from": "vhost@~3.0.1",
|
424
|
-
"resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz"
|
425
|
-
}
|
426
|
-
}
|
427
|
-
},
|
428
|
-
"content-disposition": {
|
429
|
-
"version": "0.5.0",
|
430
|
-
"from": "content-disposition@0.5.0",
|
431
|
-
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz"
|
432
|
-
},
|
433
|
-
"content-type": {
|
434
|
-
"version": "1.0.1",
|
435
|
-
"from": "content-type@~1.0.1",
|
436
|
-
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz"
|
437
|
-
},
|
438
|
-
"commander": {
|
439
|
-
"version": "2.6.0",
|
440
|
-
"from": "commander@2.6.0",
|
441
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz"
|
442
|
-
},
|
443
|
-
"cookie": {
|
444
|
-
"version": "0.1.3",
|
445
|
-
"from": "cookie@0.1.3",
|
446
|
-
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz"
|
447
|
-
},
|
448
|
-
"cookie-signature": {
|
449
|
-
"version": "1.0.6",
|
450
|
-
"from": "cookie-signature@1.0.6",
|
451
|
-
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"
|
452
|
-
},
|
453
|
-
"debug": {
|
454
|
-
"version": "2.2.0",
|
455
|
-
"from": "debug@~2.2.0",
|
456
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
457
|
-
"dependencies": {
|
458
|
-
"ms": {
|
459
|
-
"version": "0.7.1",
|
460
|
-
"from": "ms@0.7.1",
|
461
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
|
462
|
-
}
|
463
|
-
}
|
464
|
-
},
|
465
|
-
"depd": {
|
466
|
-
"version": "1.0.1",
|
467
|
-
"from": "depd@~1.0.1",
|
468
|
-
"resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz"
|
469
|
-
},
|
470
|
-
"escape-html": {
|
471
|
-
"version": "1.0.2",
|
472
|
-
"from": "escape-html@1.0.2",
|
473
|
-
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz"
|
474
|
-
},
|
475
|
-
"etag": {
|
476
|
-
"version": "1.7.0",
|
477
|
-
"from": "etag@~1.7.0",
|
478
|
-
"resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz"
|
479
|
-
},
|
480
|
-
"fresh": {
|
481
|
-
"version": "0.3.0",
|
482
|
-
"from": "fresh@0.3.0",
|
483
|
-
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz"
|
484
|
-
},
|
485
|
-
"merge-descriptors": {
|
486
|
-
"version": "1.0.0",
|
487
|
-
"from": "merge-descriptors@1.0.0",
|
488
|
-
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz"
|
489
|
-
},
|
490
|
-
"methods": {
|
491
|
-
"version": "1.1.1",
|
492
|
-
"from": "methods@~1.1.1",
|
493
|
-
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz"
|
494
|
-
},
|
495
|
-
"mkdirp": {
|
496
|
-
"version": "0.5.1",
|
497
|
-
"from": "mkdirp@0.5.1",
|
498
|
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
499
|
-
"dependencies": {
|
500
|
-
"minimist": {
|
501
|
-
"version": "0.0.8",
|
502
|
-
"from": "minimist@0.0.8",
|
503
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
|
504
|
-
}
|
505
|
-
}
|
506
|
-
},
|
507
|
-
"parseurl": {
|
508
|
-
"version": "1.3.0",
|
509
|
-
"from": "parseurl@~1.3.0",
|
510
|
-
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz"
|
511
|
-
},
|
512
|
-
"proxy-addr": {
|
513
|
-
"version": "1.0.8",
|
514
|
-
"from": "proxy-addr@~1.0.8",
|
515
|
-
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz",
|
516
|
-
"dependencies": {
|
517
|
-
"forwarded": {
|
518
|
-
"version": "0.1.0",
|
519
|
-
"from": "forwarded@~0.1.0",
|
520
|
-
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz"
|
521
|
-
},
|
522
|
-
"ipaddr.js": {
|
523
|
-
"version": "1.0.1",
|
524
|
-
"from": "ipaddr.js@1.0.1",
|
525
|
-
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz"
|
526
|
-
}
|
527
|
-
}
|
528
|
-
},
|
529
|
-
"range-parser": {
|
530
|
-
"version": "1.0.3",
|
531
|
-
"from": "range-parser@~1.0.2",
|
532
|
-
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz"
|
533
|
-
},
|
534
|
-
"send": {
|
535
|
-
"version": "0.13.0",
|
536
|
-
"from": "send@0.13.0",
|
537
|
-
"resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz",
|
538
|
-
"dependencies": {
|
539
|
-
"destroy": {
|
540
|
-
"version": "1.0.3",
|
541
|
-
"from": "destroy@1.0.3",
|
542
|
-
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz"
|
543
|
-
},
|
544
|
-
"http-errors": {
|
545
|
-
"version": "1.3.1",
|
546
|
-
"from": "http-errors@~1.3.1",
|
547
|
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
|
548
|
-
"dependencies": {
|
549
|
-
"inherits": {
|
550
|
-
"version": "2.0.1",
|
551
|
-
"from": "inherits@~2.0.1",
|
552
|
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
553
|
-
}
|
554
|
-
}
|
555
|
-
},
|
556
|
-
"mime": {
|
557
|
-
"version": "1.3.4",
|
558
|
-
"from": "mime@1.3.4",
|
559
|
-
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz"
|
560
|
-
},
|
561
|
-
"ms": {
|
562
|
-
"version": "0.7.1",
|
563
|
-
"from": "ms@0.7.1",
|
564
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
|
565
|
-
},
|
566
|
-
"on-finished": {
|
567
|
-
"version": "2.3.0",
|
568
|
-
"from": "on-finished@~2.3.0",
|
569
|
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
570
|
-
"dependencies": {
|
571
|
-
"ee-first": {
|
572
|
-
"version": "1.1.1",
|
573
|
-
"from": "ee-first@1.1.1",
|
574
|
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
|
575
|
-
}
|
576
|
-
}
|
577
|
-
},
|
578
|
-
"statuses": {
|
579
|
-
"version": "1.2.1",
|
580
|
-
"from": "statuses@~1.2.1",
|
581
|
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz"
|
582
|
-
}
|
583
|
-
}
|
584
|
-
},
|
585
|
-
"utils-merge": {
|
586
|
-
"version": "1.0.0",
|
587
|
-
"from": "utils-merge@1.0.0",
|
588
|
-
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz"
|
589
|
-
},
|
590
|
-
"vary": {
|
591
|
-
"version": "1.0.1",
|
592
|
-
"from": "vary@~1.0.1",
|
593
|
-
"resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz"
|
594
|
-
}
|
595
|
-
}
|
596
|
-
},
|
597
|
-
"mocha": {
|
598
|
-
"version": "1.21.5",
|
599
|
-
"from": "mocha@^1.15.1",
|
600
|
-
"resolved": "https://registry.npmjs.org/mocha/-/mocha-1.21.5.tgz",
|
601
|
-
"dependencies": {
|
602
|
-
"commander": {
|
603
|
-
"version": "2.3.0",
|
604
|
-
"from": "commander@2.3.0",
|
605
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz"
|
606
|
-
},
|
607
|
-
"debug": {
|
608
|
-
"version": "2.0.0",
|
609
|
-
"from": "debug@2.0.0",
|
610
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.0.0.tgz",
|
611
|
-
"dependencies": {
|
612
|
-
"ms": {
|
613
|
-
"version": "0.6.2",
|
614
|
-
"from": "ms@0.6.2",
|
615
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz"
|
616
|
-
}
|
617
|
-
}
|
618
|
-
},
|
619
|
-
"diff": {
|
620
|
-
"version": "1.0.8",
|
621
|
-
"from": "diff@1.0.8",
|
622
|
-
"resolved": "https://registry.npmjs.org/diff/-/diff-1.0.8.tgz"
|
623
|
-
},
|
624
|
-
"escape-string-regexp": {
|
625
|
-
"version": "1.0.2",
|
626
|
-
"from": "escape-string-regexp@1.0.2",
|
627
|
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz"
|
628
|
-
},
|
629
|
-
"glob": {
|
630
|
-
"version": "3.2.3",
|
631
|
-
"from": "glob@3.2.3",
|
632
|
-
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz",
|
633
|
-
"dependencies": {
|
634
|
-
"minimatch": {
|
635
|
-
"version": "0.2.14",
|
636
|
-
"from": "minimatch@~0.2.11",
|
637
|
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
|
638
|
-
"dependencies": {
|
639
|
-
"lru-cache": {
|
640
|
-
"version": "2.7.0",
|
641
|
-
"from": "lru-cache@2",
|
642
|
-
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz"
|
643
|
-
},
|
644
|
-
"sigmund": {
|
645
|
-
"version": "1.0.1",
|
646
|
-
"from": "sigmund@~1.0.0",
|
647
|
-
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
|
648
|
-
}
|
649
|
-
}
|
650
|
-
},
|
651
|
-
"graceful-fs": {
|
652
|
-
"version": "2.0.3",
|
653
|
-
"from": "graceful-fs@~2.0.0",
|
654
|
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz"
|
655
|
-
},
|
656
|
-
"inherits": {
|
657
|
-
"version": "2.0.1",
|
658
|
-
"from": "inherits@2",
|
659
|
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
660
|
-
}
|
661
|
-
}
|
662
|
-
},
|
663
|
-
"growl": {
|
664
|
-
"version": "1.8.1",
|
665
|
-
"from": "growl@1.8.1",
|
666
|
-
"resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz"
|
667
|
-
},
|
668
|
-
"jade": {
|
669
|
-
"version": "0.26.3",
|
670
|
-
"from": "jade@0.26.3",
|
671
|
-
"resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz",
|
672
|
-
"dependencies": {
|
673
|
-
"commander": {
|
674
|
-
"version": "0.6.1",
|
675
|
-
"from": "commander@0.6.1",
|
676
|
-
"resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz"
|
677
|
-
},
|
678
|
-
"mkdirp": {
|
679
|
-
"version": "0.3.0",
|
680
|
-
"from": "mkdirp@0.3.0",
|
681
|
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz"
|
682
|
-
}
|
683
|
-
}
|
684
|
-
},
|
685
|
-
"mkdirp": {
|
686
|
-
"version": "0.5.0",
|
687
|
-
"from": "mkdirp@0.5.0",
|
688
|
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
|
689
|
-
"dependencies": {
|
690
|
-
"minimist": {
|
691
|
-
"version": "0.0.8",
|
692
|
-
"from": "minimist@0.0.8",
|
693
|
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz"
|
694
|
-
}
|
695
|
-
}
|
696
|
-
}
|
697
|
-
}
|
698
|
-
},
|
699
|
-
"should": {
|
700
|
-
"version": "2.1.1",
|
701
|
-
"from": "should@^2.0.1",
|
702
|
-
"resolved": "https://registry.npmjs.org/should/-/should-2.1.1.tgz"
|
703
|
-
},
|
704
|
-
"sinon": {
|
705
|
-
"version": "1.17.2",
|
706
|
-
"from": "sinon@^1.7.3",
|
707
|
-
"resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.2.tgz",
|
708
|
-
"dependencies": {
|
709
|
-
"formatio": {
|
710
|
-
"version": "1.1.1",
|
711
|
-
"from": "formatio@1.1.1",
|
712
|
-
"resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz"
|
713
|
-
},
|
714
|
-
"util": {
|
715
|
-
"version": "0.10.3",
|
716
|
-
"from": "util@>=0.10.3 <1",
|
717
|
-
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
718
|
-
"dependencies": {
|
719
|
-
"inherits": {
|
720
|
-
"version": "2.0.1",
|
721
|
-
"from": "inherits@2.0.1",
|
722
|
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
723
|
-
}
|
724
|
-
}
|
725
|
-
},
|
726
|
-
"lolex": {
|
727
|
-
"version": "1.3.2",
|
728
|
-
"from": "lolex@1.3.2",
|
729
|
-
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz"
|
730
|
-
},
|
731
|
-
"samsam": {
|
732
|
-
"version": "1.1.2",
|
733
|
-
"from": "samsam@1.1.2",
|
734
|
-
"resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz"
|
735
|
-
}
|
736
|
-
}
|
737
|
-
}
|
738
|
-
}
|
739
|
-
}
|