From c23b700927259a4ee3ab5b8c8dbeb77a3dda4143 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 16 Jan 2018 12:27:36 +0000 Subject: [PATCH 01/69] wip --- services/filestore/Dockerfile | 27 + services/filestore/Makefile | 62 + services/filestore/app.coffee | 6 +- services/filestore/npm-shrinkwrap.json | 1715 ++++++++++++++--- services/filestore/package.json | 12 + .../coffee/SendingFileTest.coffee | 0 6 files changed, 1503 insertions(+), 319 deletions(-) create mode 100644 services/filestore/Dockerfile create mode 100644 services/filestore/Makefile rename services/filestore/test/{acceptence => acceptance}/coffee/SendingFileTest.coffee (100%) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile new file mode 100644 index 0000000000..82a4edd9f0 --- /dev/null +++ b/services/filestore/Dockerfile @@ -0,0 +1,27 @@ +FROM node:8.9.1 + +WORKDIR /app + +COPY package.json /app/ + +RUN npm install --quiet + +COPY config /app/config +COPY test /app/test +COPY app /app/app +COPY app.coffee /app +RUN npm run compile:all + +FROM node:8.9.1 + +COPY --from=0 /app /app +# All app and node_modules will be owned by root. +# The app will run as the 'app' user, and so not have write permissions +# on any files it doesn't need. +RUN useradd --user-group --create-home --home-dir /app --shell /bin/false app +USER app +WORKDIR /app + +EXPOSE 3009 + +CMD ["node","app.js"] diff --git a/services/filestore/Makefile b/services/filestore/Makefile new file mode 100644 index 0000000000..3ebf4c4a34 --- /dev/null +++ b/services/filestore/Makefile @@ -0,0 +1,62 @@ +NPM := docker-compose -f docker-compose.yml ${DOCKER_COMPOSE_FLAGS} run --rm npm npm +BUILD_NUMBER ?= local +BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) +PROJECT_NAME = filestore +DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml +DOCKER_COMPOSE := docker-compose ${DOCKER_COMPOSE_FLAGS} + +all: install test + @echo "Run:" + @echo " make install to set up the project dependencies (in docker)" + @echo " make test to run all the tests for the project (in docker)" + @echo " make run to run the app (natively)" + +install: + $(NPM) install + +run: + $(NPM) run start + +clean: + rm -f app.js + rm -rf app/js + rm -rf test/unit/js + rm -rf test/acceptance/js + # Deletes node_modules volume + docker-compose down --volumes + +test: test_unit test_acceptance + +test_unit: + $(DOCKER_COMPOSE) run --rm test_unit -- ${MOCHA_ARGS} + +test_acceptance: ci_clean # clear the database before each acceptance test run + $(DOCKER_COMPOSE) run --rm test_acceptance -- ${MOCHA_ARGS} + +build: + docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . + +publish: + docker push quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + +ci: + # On the CI server, we want to run our tests in the image that we + # have built for deployment, which is what the docker-compose.ci.yml + # override does. + PROJECT_NAME=$(PROJECT_NAME) \ + BRANCH_NAME=$(BRANCH_NAME) \ + BUILD_NUMBER=$(BUILD_NUMBER) \ + DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" \ + $(MAKE) build test publish + +ci_clean: + PROJECT_NAME=$(PROJECT_NAME) \ + BRANCH_NAME=$(BRANCH_NAME) \ + BUILD_NUMBER=$(BUILD_NUMBER) \ + DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" \ + $(DOCKER_COMPOSE) down + +.PHONY: + all install compile clean test test_unit test_acceptance \ + test_acceptance_start_service test_acceptance_stop_service \ + test_acceptance_run build publish ci ci_clean \ No newline at end of file diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index eb97ad48dd..3c0ca7b72d 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -96,7 +96,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up') + res.send('filestore sharelatex up - v2') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) @@ -112,7 +112,7 @@ app.get '*', (req, res)-> server = require('http').createServer(app) port = settings.internal.filestore.port or 3009 -host = settings.internal.filestore.host or "localhost" +host = "0.0.0.0" beginShutdown = () -> if appIsOk @@ -128,7 +128,7 @@ beginShutdown = () -> process.disconnect?() logger.log "server will stop accepting connections" -server.listen port, host, -> +server.listen port, -> logger.info "Filestore starting up, listening on #{host}:#{port}" process.on 'SIGTERM', () -> diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 1b87652bb1..a0bcfff9ff 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1,387 +1,1026 @@ { "name": "filestore-sharelatex", "version": "0.1.4", + "lockfileVersion": 1, + "requires": true, "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "accept-encoding": { "version": "0.1.0", - "from": "accept-encoding@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz", + "integrity": "sha1-XdiLjfcfHcLlzGuVZezOHjmaMz4=" + }, + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "argparse": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", + "dev": true, + "requires": { + "underscore": "1.5.2", + "underscore.string": "2.4.0" + }, + "dependencies": { + "underscore.string": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", + "dev": true + } + } }, "assertion-error": { - "version": "1.0.2", - "from": "assertion-error@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" }, "async": { "version": "0.2.10", - "from": "async@>=0.2.10 <0.3.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "aws-sdk": { "version": "2.116.0", - "from": "aws-sdk@>=2.1.39 <3.0.0", "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.116.0.tgz", + "integrity": "sha1-2UpsZnvuY++PvZRBzMIitTn3y+w=", + "requires": { + "buffer": "4.9.1", + "crypto-browserify": "1.0.9", + "events": "1.1.1", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.0.1", + "xml2js": "0.4.17", + "xmlbuilder": "4.2.1" + }, "dependencies": { "uuid": { "version": "3.0.1", - "from": "uuid@3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" } } }, "aws-sign": { "version": "0.2.0", - "from": "aws-sign@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", + "integrity": "sha1-xVAThWyBlOyFSgy+yQqrWgTOOsU=" }, "balanced-match": { "version": "1.0.0", - "from": "balanced-match@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "optional": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { "version": "1.2.1", - "from": "base64-js@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" }, "batch": { "version": "0.5.0", - "from": "batch@0.5.0", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz" + "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", + "integrity": "sha1-/S4Fp6XWlrTbkxQBPihdj/NVfsM=" }, "best-encoding": { "version": "0.1.1", - "from": "best-encoding@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz" + "resolved": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", + "integrity": "sha1-GVIT2rysBFgYuAe3ox+Dn63cl04=", + "requires": { + "accept-encoding": "0.1.0" + } }, "bl": { "version": "0.7.0", - "from": "bl@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", + "integrity": "sha1-P7BnBgKsKHjrdw3CA58YNr5irls=", + "requires": { + "readable-stream": "1.0.34" + }, "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } } } }, "boom": { "version": "0.3.8", - "from": "boom@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" + "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", + "integrity": "sha1-yM2wQUNZEnQWKMBE7Mcy0dF8Ceo=", + "requires": { + "hoek": "0.7.6" + } }, "brace-expansion": { "version": "1.1.8", - "from": "brace-expansion@>=1.1.7 <2.0.0", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "optional": true + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "broadway": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=", + "dev": true, + "requires": { + "cliff": "0.1.9", + "eventemitter2": "0.4.14", + "nconf": "0.6.9", + "utile": "0.2.1", + "winston": "0.8.0" + }, + "dependencies": { + "cliff": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", + "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=", + "dev": true, + "requires": { + "colors": "0.6.2", + "eyes": "0.1.8", + "winston": "0.8.0" + } + }, + "winston": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", + "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=", + "dev": true, + "requires": { + "async": "0.2.10", + "colors": "0.6.2", + "cycle": "1.0.3", + "eyes": "0.1.8", + "pkginfo": "0.3.1", + "stack-trace": "0.0.7" + } + } + } }, "buffer": { "version": "4.9.1", - "from": "buffer@4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz" + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } }, "buffer-crc32": { "version": "0.2.1", - "from": "buffer-crc32@0.2.1", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz" + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=" }, "bunyan": { "version": "1.3.6", - "from": "bunyan@1.3.6", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz" + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz", + "integrity": "sha1-xDM3p7Dc5mPYIjNnurBRlbkLR2o=", + "requires": { + "dtrace-provider": "0.4.0", + "mv": "2.1.1", + "safe-json-stringify": "1.0.4" + } }, "bytes": { "version": "0.2.1", - "from": "bytes@0.2.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz" + "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", + "integrity": "sha1-VVsIq8sGP4l1kFMCUj5M1P/f3zE=" }, "caseless": { "version": "0.3.0", - "from": "caseless@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz" + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", + "integrity": "sha1-U06XkWOH07cGtk/eu6xGQ4RQk08=" }, "chai": { "version": "4.1.2", - "from": "chai@latest", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz" + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", + "requires": { + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.5" + } + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" + } }, "check-error": { "version": "1.0.2", - "from": "check-error@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + }, + "cliff": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", + "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", + "dev": true, + "requires": { + "colors": "1.0.3", + "eyes": "0.1.8", + "winston": "0.8.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } }, "coffee-script": { "version": "1.7.1", - "from": "coffee-script@>=1.7.1 <1.8.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz" + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz", + "integrity": "sha1-YplqhheAx15tUGnROCJyO3NAS/w=", + "requires": { + "mkdirp": "0.3.5" + } + }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", + "dev": true }, "combined-stream": { "version": "0.0.7", - "from": "combined-stream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "requires": { + "delayed-stream": "0.0.5" + } }, "commander": { "version": "1.3.2", - "from": "commander@1.3.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz", + "integrity": "sha1-io8w7GcKb91kr1LxkUuQfXnq1bU=", + "requires": { + "keypress": "0.1.0" + } }, "concat-map": { "version": "0.0.1", - "from": "concat-map@0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "optional": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "configstore": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", + "integrity": "sha1-JeTBbDdoq/dcWmW8YXYfSVBVtFk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "js-yaml": "3.10.0", + "mkdirp": "0.3.5", + "object-assign": "2.1.1", + "osenv": "0.1.4", + "user-home": "1.1.1", + "uuid": "2.0.3", + "xdg-basedir": "1.0.1" + }, + "dependencies": { + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + } + } }, "connect": { "version": "2.12.0", - "from": "connect@2.12.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz" + "resolved": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz", + "integrity": "sha1-Mdj6DcrN8ZCNgivSkjvootKn7Zo=", + "requires": { + "batch": "0.5.0", + "buffer-crc32": "0.2.1", + "bytes": "0.2.1", + "cookie": "0.1.0", + "cookie-signature": "1.0.1", + "debug": "0.8.1", + "fresh": "0.2.0", + "methods": "0.1.0", + "multiparty": "2.2.0", + "negotiator": "0.3.0", + "pause": "0.0.1", + "qs": "0.6.6", + "raw-body": "1.1.2", + "send": "0.1.4", + "uid2": "0.0.3" + } }, "cookie": { "version": "0.1.0", - "from": "cookie@0.1.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA=" }, "cookie-jar": { "version": "0.2.0", - "from": "cookie-jar@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", + "integrity": "sha1-ZOzAasl423leS1KQy+SLo3gUAPo=" }, "cookie-signature": { "version": "1.0.1", - "from": "cookie-signature@1.0.1", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", + "integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss=" }, "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { "version": "0.1.3", - "from": "cryptiles@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz" + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", + "integrity": "sha1-GlVnNPBtJLo0hirpy55wmjr7/xw=", + "requires": { + "boom": "0.3.8" + } }, "crypto-browserify": { "version": "1.0.9", - "from": "crypto-browserify@1.0.9", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz" + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", + "dev": true + }, + "dateformat": { + "version": "1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", + "dev": true }, "debug": { "version": "0.8.1", - "from": "debug@>=0.7.3 <1.0.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz" + "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA=" }, "deep-eql": { "version": "3.0.1", - "from": "deep-eql@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "4.0.5" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true }, "delayed-stream": { "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" + }, + "diff": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", + "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=", + "dev": true + }, + "director": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", + "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=", + "dev": true }, "dtrace-provider": { "version": "0.4.0", - "from": "dtrace-provider@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.4.0.tgz", - "optional": true + "integrity": "sha1-C2e8HMd+eb+IuHrSBmT0p1POPyY=", + "optional": true, + "requires": { + "nan": "1.5.3" + } + }, + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "dev": true + }, + "event-stream": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", + "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=", + "dev": true, + "requires": { + "optimist": "0.2.8" + }, + "dependencies": { + "optimist": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", + "dev": true, + "requires": { + "wordwrap": "0.0.3" + } + } + } + }, + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true }, "events": { "version": "1.1.1", - "from": "events@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, "express": { "version": "3.4.8", - "from": "express@>=3.4.8 <3.5.0", "resolved": "https://registry.npmjs.org/express/-/express-3.4.8.tgz", + "integrity": "sha1-qnqJht4HBTM39Lxe2aZFPZzI4uE=", + "requires": { + "buffer-crc32": "0.2.1", + "commander": "1.3.2", + "connect": "2.12.0", + "cookie": "0.1.0", + "cookie-signature": "1.0.1", + "debug": "0.8.1", + "fresh": "0.2.0", + "merge-descriptors": "0.0.1", + "methods": "0.1.0", + "mkdirp": "0.3.5", + "range-parser": "0.0.4", + "send": "0.1.4" + }, "dependencies": { "range-parser": { "version": "0.0.4", - "from": "range-parser@0.0.4", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=" } } }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", + "dev": true + }, + "faye-websocket": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", + "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=", + "dev": true + }, + "findup-sync": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", + "dev": true, + "requires": { + "glob": "6.0.4", + "lodash": "4.17.4" + } + }, + "flatiron": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", + "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=", + "dev": true, + "requires": { + "broadway": "0.3.6", + "director": "1.2.7", + "optimist": "0.6.0", + "prompt": "0.2.14" + }, + "dependencies": { + "optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + } + } + }, + "forever": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz", + "integrity": "sha1-6Tsr2UxXBavBmxXlTDEz1puinGs=", + "dev": true, + "requires": { + "cliff": "0.1.10", + "colors": "0.6.2", + "flatiron": "0.4.3", + "forever-monitor": "1.5.2", + "nconf": "0.6.9", + "nssocket": "0.5.3", + "optimist": "0.6.1", + "timespan": "2.3.0", + "utile": "0.2.1", + "winston": "0.8.3" + } + }, "forever-agent": { "version": "0.2.0", - "from": "forever-agent@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", + "integrity": "sha1-4cJcetROCcOPIzh2x2/MJP+EOx8=" + }, + "forever-monitor": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", + "integrity": "sha1-J5OI36k7CFNj1rKKgj7wpq7rNdc=", + "dev": true, + "requires": { + "broadway": "0.3.6", + "minimatch": "3.0.4", + "ps-tree": "0.0.3", + "utile": "0.2.1", + "watch": "0.13.0" + } }, "form-data": { "version": "0.0.10", - "from": "form-data@>=0.0.3 <0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz" + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", + "integrity": "sha1-2zRaU3jYau6x7V1VO4aawZLS9e0=", + "requires": { + "async": "0.2.10", + "combined-stream": "0.0.7", + "mime": "1.2.11" + } }, "formatio": { "version": "1.2.0", - "from": "formatio@1.2.0", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", + "requires": { + "samsam": "1.3.0" + } }, "fresh": { "version": "0.2.0", - "from": "fresh@0.2.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc=" }, "fs-extra": { "version": "1.0.0", - "from": "fs-extra@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + } + }, + "gaze": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", + "integrity": "sha1-5Tj0/15P5kj0c6l+HrslPS3hJ7U=", + "dev": true, + "requires": { + "globule": "0.1.0" + } }, "get-func-name": { "version": "2.0.0", - "from": "get-func-name@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, "gettemporaryfilepath": { "version": "0.0.1", - "from": "gettemporaryfilepath@0.0.1", - "resolved": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz", + "integrity": "sha1-uKLHAUu1zUFTTpg7XKFgo3RwhGk=" }, "glob": { "version": "6.0.4", - "from": "glob@>=6.0.1 <7.0.0", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "optional": true + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "6.0.4", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } }, "graceful-fs": { "version": "4.1.11", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "growl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", + "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=", + "dev": true + }, + "grunt": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz", + "integrity": "sha1-1YkuVoCt2e0b796apjXPRrj0lyk=", + "dev": true, + "requires": { + "async": "0.2.10", + "coffee-script": "1.7.1", + "colors": "0.6.2", + "dateformat": "1.0.2-1.2.3", + "eventemitter2": "0.4.14", + "findup-sync": "0.1.3", + "glob": "6.0.4", + "hooker": "0.2.3", + "iconv-lite": "0.2.11", + "js-yaml": "2.0.5", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "nopt": "1.0.10", + "rimraf": "2.2.8", + "underscore.string": "2.2.1", + "which": "1.0.9" + } + }, + "grunt-bunyan": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", + "integrity": "sha1-aCnXbgGZQ9owQTk2MaNuKsgpsWw=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "grunt-concurrent": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-0.4.2.tgz", + "integrity": "sha1-Mf2Qbm4X2oTXgLLOZNn4QGX3PgY=", + "dev": true, + "requires": { + "async": "0.2.10", + "lpad": "0.1.0" + } + }, + "grunt-contrib-clean": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz", + "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=", + "dev": true, + "requires": { + "rimraf": "2.2.8" + } + }, + "grunt-contrib-coffee": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.7.0.tgz", + "integrity": "sha1-ixIme3TnM4sfKcW4txj7n4mYLxM=", + "dev": true, + "requires": { + "coffee-script": "1.7.1" + } + }, + "grunt-contrib-requirejs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.1.tgz", + "integrity": "sha1-hiuhZxQbio82r1RE/qsycruM9L0=", + "dev": true, + "requires": { + "requirejs": "2.1.22" + } + }, + "grunt-contrib-watch": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.5.3.tgz", + "integrity": "sha1-fZ61Rl1Qb6FPqspH5uh5CoLBye4=", + "dev": true, + "requires": { + "gaze": "0.4.3", + "tiny-lr": "0.0.4" + } + }, + "grunt-execute": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz", + "integrity": "sha1-TpRf5XlZzA3neZCDtrQq7ZYWNQo=", + "dev": true + }, + "grunt-forever": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/grunt-forever/-/grunt-forever-0.4.7.tgz", + "integrity": "sha1-dHDb4a2hFFAhZKTCoAOHXfj+EzA=", + "dev": true, + "requires": { + "forever": "0.14.2" + } + }, + "grunt-mocha-test": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.8.2.tgz", + "integrity": "sha1-emGEuYhg0Phb3qrWvqob199bvus=", + "dev": true, + "requires": { + "mocha": "1.14.0" + } + }, + "grunt-nodemon": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/grunt-nodemon/-/grunt-nodemon-0.2.1.tgz", + "integrity": "sha1-G48kiVKSCX3IFNFgOpfo/sHJJPM=", + "dev": true, + "requires": { + "nodemon": "1.0.20" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "hawk": { "version": "0.10.2", - "from": "hawk@>=0.10.2 <0.11.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz" + "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", + "integrity": "sha1-mzYd7pWpMWQObVBOBWCaj8OsRdI=", + "requires": { + "boom": "0.3.8", + "cryptiles": "0.1.3", + "hoek": "0.7.6", + "sntp": "0.1.4" + } }, "heapdump": { "version": "0.3.9", - "from": "heapdump@>=0.3.2 <0.4.0", - "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz" + "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz", + "integrity": "sha1-A8dOsN9dZ74Jgug0KbqcnSs7f3g=" }, "hoek": { "version": "0.7.6", - "from": "hoek@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", + "integrity": "sha1-YPvZBFV1Qc0rh5Wr8wihs3cOFVo=" + }, + "hooker": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", + "dev": true + }, + "i": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", + "dev": true + }, + "iconv-lite": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", + "dev": true }, "ieee754": { "version": "1.1.8", - "from": "ieee754@>=1.1.4 <2.0.0", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz" + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, "inflight": { "version": "1.0.6", - "from": "inflight@>=1.0.4 <2.0.0", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "optional": true + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "isarray": { "version": "1.0.0", - "from": "isarray@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "requires": { + "commander": "1.3.2", + "mkdirp": "0.3.5" + } }, "jmespath": { "version": "0.15.0", - "from": "jmespath@0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "js-yaml": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", + "dev": true, + "requires": { + "argparse": "0.1.16", + "esprima": "1.0.4" + } }, "json-stringify-safe": { "version": "3.0.0", - "from": "json-stringify-safe@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", + "integrity": "sha1-nbew5TDH8onF6MhDKvGRwv91pbM=" }, "jsonfile": { "version": "2.4.0", - "from": "jsonfile@>=2.1.0 <3.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "4.1.11" + } }, "just-extend": { - "version": "1.1.22", - "from": "just-extend@>=1.1.22 <2.0.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.22.tgz" + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==" }, "keypress": { "version": "0.1.0", - "from": "keypress@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", + "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=" }, "klaw": { "version": "1.3.1", - "from": "klaw@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "4.1.11" + } }, "knox": { "version": "0.9.2", - "from": "knox@~0.9.1", "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", + "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=", + "requires": { + "debug": "1.0.4", + "mime": "1.3.4", + "once": "1.4.0", + "stream-counter": "1.0.0", + "xml2js": "0.4.17" + }, "dependencies": { "debug": { "version": "1.0.4", - "from": "debug@^1.0.2", "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", + "requires": { + "ms": "0.6.2" + }, "dependencies": { "ms": { "version": "0.6.2", - "from": "ms@0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" + "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=" } } }, "mime": { "version": "1.3.4", - "from": "mime@*", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" }, "once": { "version": "1.4.0", - "from": "once@^1.3.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + }, "dependencies": { "wrappy": { "version": "1.0.2", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, "stream-counter": { "version": "1.0.0", - "from": "stream-counter@^1.0.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", + "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" }, "xml2js": { "version": "0.4.17", - "from": "xml2js@^0.4.4", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "requires": { + "sax": "1.2.2", + "xmlbuilder": "4.2.1" + }, "dependencies": { "sax": { "version": "1.2.2", - "from": "sax@>=0.6.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", + "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=" }, "xmlbuilder": { "version": "4.2.1", - "from": "xmlbuilder@^4.1.0", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "requires": { + "lodash": "4.17.4" + }, "dependencies": { "lodash": { "version": "4.17.4", - "from": "lodash@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" } } } @@ -389,292 +1028,557 @@ } } }, + "lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "dev": true + }, "lodash": { "version": "4.17.4", - "from": "lodash@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "logger-sharelatex": { - "version": "1.0.0", - "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.1.0", - "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#5a3ea8e655f23e76a77bbc207c012d3fc944c8d8", + "version": "git+https://github.com/sharelatex/logger-sharelatex.git#5a3ea8e655f23e76a77bbc207c012d3fc944c8d8", + "requires": { + "bunyan": "1.3.6", + "coffee-script": "1.4.0", + "raven": "0.8.1" + }, "dependencies": { "coffee-script": { "version": "1.4.0", - "from": "coffee-script@1.4.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz", + "integrity": "sha1-XjvIqsJsAajie/EHcixWVfWtfTY=" } } }, "lolex": { - "version": "2.1.2", - "from": "lolex@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.1.2.tgz" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", + "integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==" + }, + "lpad": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz", + "integrity": "sha1-5MYMKROTIcWXDeSTtJauDXdM0qc=", + "dev": true }, "lsmod": { "version": "0.0.3", - "from": "lsmod@>=0.0.3 <0.1.0", - "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz" + "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz", + "integrity": "sha1-F+E9ThrpF1DqVlNUjNiecUetAkQ=" }, "lynx": { "version": "0.1.1", - "from": "lynx@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz" + "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", + "integrity": "sha1-Mxjc7xaQi4KG6Bisz9sxzXQkj50=", + "requires": { + "mersenne": "0.0.4", + "statsd-parser": "0.0.4" + } }, "merge-descriptors": { "version": "0.0.1", - "from": "merge-descriptors@0.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz", + "integrity": "sha1-L/CYDJJM+B0LXR+2ARd8uLtWwNA=" }, "mersenne": { "version": "0.0.4", - "from": "mersenne@>=0.0.3 <0.1.0", - "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", + "integrity": "sha1-QB/ex+whzbngPNPTAhOY2iGycIU=" }, "methods": { "version": "0.1.0", - "from": "methods@0.1.0", - "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz" + "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", + "integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8=" }, "metrics-sharelatex": { - "version": "1.3.0", - "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.3.0", - "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#080c4aeb696edcd5d6d86f202f2c528f0661d7a6", + "version": "git+https://github.com/sharelatex/metrics-sharelatex.git#080c4aeb696edcd5d6d86f202f2c528f0661d7a6", + "requires": { + "coffee-script": "1.6.0", + "lynx": "0.1.1", + "underscore": "1.6.0" + }, "dependencies": { "coffee-script": { "version": "1.6.0", - "from": "coffee-script@1.6.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", + "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" }, "underscore": { "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, "mime": { "version": "1.2.11", - "from": "mime@>=1.2.9 <1.3.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" }, "minimatch": { "version": "3.0.4", - "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "optional": true + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.8" + } }, "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.3.5", - "from": "mkdirp@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" + }, + "mocha": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz", + "integrity": "sha1-cT223FAAGRqdA1gZXQkIeQ7LYVc=", + "dev": true, + "requires": { + "commander": "1.3.2", + "debug": "0.8.1", + "diff": "1.0.7", + "glob": "6.0.4", + "growl": "1.7.0", + "jade": "0.26.3", + "mkdirp": "0.3.5" + } }, "multiparty": { "version": "2.2.0", - "from": "multiparty@2.2.0", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz" + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", + "integrity": "sha1-pWfCrwAK0i3I8qZT2Rl4rh9TFvQ=", + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true }, "mv": { "version": "2.1.1", - "from": "mv@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", "optional": true, + "requires": { + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" + }, "dependencies": { "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.1 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "optional": true + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "optional": true, + "requires": { + "minimist": "0.0.8" + } }, "rimraf": { "version": "2.4.5", - "from": "rimraf@>=2.4.0 <2.5.0", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "optional": true + "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", + "optional": true, + "requires": { + "glob": "6.0.4" + } } } }, "nan": { "version": "1.5.3", - "from": "nan@>=1.5.1 <1.6.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz", + "integrity": "sha1-TNDswTO3sHAKSSpkat1CeuijGOs=", "optional": true }, - "native-promise-only": { - "version": "0.8.1", - "from": "native-promise-only@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz" + "nconf": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=", + "dev": true, + "requires": { + "async": "0.2.10", + "ini": "1.3.5", + "optimist": "0.6.0" + }, + "dependencies": { + "optimist": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + } + } }, "ncp": { "version": "2.0.0", - "from": "ncp@>=2.0.0 <2.1.0", "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "optional": true + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" }, "negotiator": { "version": "0.3.0", - "from": "negotiator@0.3.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz" + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", + "integrity": "sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A=" }, "nise": { - "version": "1.0.1", - "from": "nise@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.0.1.tgz", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", + "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", + "requires": { + "formatio": "1.2.0", + "just-extend": "1.1.27", + "lolex": "1.6.0", + "path-to-regexp": "1.7.0", + "text-encoding": "0.6.4" + }, "dependencies": { "lolex": { "version": "1.6.0", - "from": "lolex@>=1.6.0 <2.0.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz" + "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=" } } }, "node-transloadit": { "version": "0.0.4", - "from": "node-transloadit@0.0.4", "resolved": "https://registry.npmjs.org/node-transloadit/-/node-transloadit-0.0.4.tgz", + "integrity": "sha1-4ZoHheON94NblO2AANHjXmg7zsE=", + "requires": { + "request": "2.16.6", + "underscore": "1.2.1" + }, "dependencies": { "qs": { "version": "0.5.6", - "from": "qs@>=0.5.4 <0.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" + "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=" }, "request": { "version": "2.16.6", - "from": "request@>=2.16.6 <2.17.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz" + "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", + "integrity": "sha1-hy/kRa5y3iZrN4edatfclI+gHK0=", + "requires": { + "aws-sign": "0.2.0", + "cookie-jar": "0.2.0", + "forever-agent": "0.2.0", + "form-data": "0.0.10", + "hawk": "0.10.2", + "json-stringify-safe": "3.0.0", + "mime": "1.2.11", + "node-uuid": "1.4.8", + "oauth-sign": "0.2.0", + "qs": "0.5.6", + "tunnel-agent": "0.2.0" + } }, "underscore": { "version": "1.2.1", - "from": "underscore@1.2.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", + "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=" } } }, "node-uuid": { "version": "1.4.8", - "from": "node-uuid@>=1.4.1 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" + }, + "nodemon": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz", + "integrity": "sha1-vBOKNwaMt426UIhbYkl6/f7u3aQ=", + "dev": true, + "requires": { + "minimatch": "3.0.4", + "ps-tree": "0.0.3", + "update-notifier": "0.1.10" + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + }, + "noptify": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", + "dev": true, + "requires": { + "nopt": "2.0.0" + }, + "dependencies": { + "nopt": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", + "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", + "dev": true, + "requires": { + "abbrev": "1.1.1" + } + } + } + }, + "nssocket": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", + "integrity": "sha1-iDyi7GBfXtZKTVGQsmJUAZKPj40=", + "dev": true, + "requires": { + "eventemitter2": "0.4.14", + "lazy": "1.0.11" + } }, "oauth-sign": { "version": "0.2.0", - "from": "oauth-sign@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", + "integrity": "sha1-oOahcV2u0GLzIrYit/5a/RA1tuI=" + }, + "object-assign": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", + "dev": true }, "once": { "version": "1.4.0", - "from": "once@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "path-is-absolute": { "version": "1.0.1", - "from": "path-is-absolute@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "optional": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-to-regexp": { "version": "1.7.0", - "from": "path-to-regexp@>=1.7.0 <2.0.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "requires": { + "isarray": "0.0.1" + }, "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" } } }, "pathval": { "version": "1.1.0", - "from": "pathval@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz" + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "pause": { "version": "0.0.1", - "from": "pause@0.0.1", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" + }, + "pkginfo": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", + "dev": true }, "pngcrush": { "version": "0.0.3", - "from": "pngcrush@0.0.3", - "resolved": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz" + "resolved": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz", + "integrity": "sha1-v2dW6s2h+rNJwHdo6AXMEA0o+Tc=", + "requires": { + "gettemporaryfilepath": "0.0.1" + } }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" + "prompt": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", + "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", + "dev": true, + "requires": { + "pkginfo": "0.3.1", + "read": "1.0.7", + "revalidator": "0.1.8", + "utile": "0.2.1", + "winston": "0.8.3" + } + }, + "ps-tree": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=", + "dev": true, + "requires": { + "event-stream": "0.5.3" + } }, "punycode": { "version": "1.3.2", - "from": "punycode@1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "qs": { "version": "0.6.6", - "from": "qs@0.6.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=" }, "querystring": { "version": "0.2.0", - "from": "querystring@0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "range-parser": { "version": "1.2.0", - "from": "range-parser@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raven": { "version": "0.8.1", - "from": "raven@>=0.8.0 <0.9.0", - "resolved": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz" + "resolved": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz", + "integrity": "sha1-UVk7tlnHcnjc00gitlq+d7dRuvU=", + "requires": { + "cookie": "0.1.0", + "lsmod": "0.0.3", + "node-uuid": "1.4.8", + "stack-trace": "0.0.7" + } }, "raw-body": { "version": "1.1.2", - "from": "raw-body@1.1.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz" + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz", + "integrity": "sha1-x0swBN6l3v0WlhcRBqx0DsMdYr4=", + "requires": { + "bytes": "0.2.1" + } + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "0.0.7" + } }, "readable-stream": { "version": "1.1.14", - "from": "readable-stream@>=1.1.9 <1.2.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + }, "dependencies": { "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" } } }, "recluster": { "version": "0.3.7", - "from": "recluster@>=0.3.7 <0.4.0", - "resolved": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz" + "resolved": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz", + "integrity": "sha1-aKRx3ZC2obl3ZjTPdpZAWutWeJU=" }, "request": { "version": "2.14.0", - "from": "request@2.14.0", "resolved": "https://registry.npmjs.org/request/-/request-2.14.0.tgz", + "integrity": "sha1-DYrLsLFMGrguAAt9OB+oyA0afYg=", + "requires": { + "form-data": "0.0.7", + "mime": "1.2.9" + }, "dependencies": { "form-data": { "version": "0.0.7", - "from": "form-data@~0.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.7.tgz", + "integrity": "sha1-chEYKiaiZs45cQ3IvEqBtwQIWb4=", + "requires": { + "async": "0.1.22", + "combined-stream": "0.0.4", + "mime": "1.2.9" + }, "dependencies": { "async": { "version": "0.1.22", - "from": "async@~0.1.9" + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" }, "combined-stream": { "version": "0.0.4", - "from": "combined-stream@~0.0.4", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz", + "integrity": "sha1-LRpDNH2+lRWkonlnMuW4hHOECyI=", + "requires": { + "delayed-stream": "0.0.5" + }, "dependencies": { "delayed-stream": { "version": "0.0.5", - "from": "delayed-stream@0.0.5" + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" } } } @@ -682,173 +1586,352 @@ }, "mime": { "version": "1.2.9", - "from": "mime@~1.2.7" + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz", + "integrity": "sha1-AJzUCGe9Nd5SGzuWbwTi+NTRPQk=" } } }, "require-like": { "version": "0.1.2", - "from": "require-like@0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" + }, + "requirejs": { + "version": "2.1.22", + "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz", + "integrity": "sha1-3Xj9LTQYDA1ixyS1uK68BmTgNm8=", + "dev": true }, "response": { "version": "0.14.0", - "from": "response@0.14.0", - "resolved": "https://registry.npmjs.org/response/-/response-0.14.0.tgz" + "resolved": "https://registry.npmjs.org/response/-/response-0.14.0.tgz", + "integrity": "sha1-BmNS/z5rAm0EdYCUB2Y7Rob9JpY=", + "requires": { + "best-encoding": "0.1.1", + "bl": "0.7.0", + "caseless": "0.3.0", + "mime": "1.2.11" + } + }, + "revalidator": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", + "dev": true }, "rimraf": { "version": "2.2.8", - "from": "rimraf@2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - }, - "safe-buffer": { - "version": "5.1.1", - "from": "safe-buffer@>=5.0.1 <6.0.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" }, "safe-json-stringify": { "version": "1.0.4", - "from": "safe-json-stringify@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", + "integrity": "sha1-gaCY9Efku8P/MxKiQ1IbwGDvWRE=", "optional": true }, "samsam": { - "version": "1.2.1", - "from": "samsam@>=1.1.3 <2.0.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.2.1.tgz" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==" }, "sandboxed-module": { "version": "2.0.3", - "from": "sandboxed-module@latest", "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", + "integrity": "sha1-x+VFkzm7y6KMUwPusz9ug4e/upY=", + "requires": { + "require-like": "0.1.2", + "stack-trace": "0.0.9" + }, "dependencies": { "stack-trace": { "version": "0.0.9", - "from": "stack-trace@0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" } } }, "sax": { "version": "1.2.1", - "from": "sax@1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + }, + "semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", + "dev": true }, "send": { "version": "0.1.4", - "from": "send@0.1.4", "resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", + "integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=", + "requires": { + "debug": "0.8.1", + "fresh": "0.2.0", + "mime": "1.2.11", + "range-parser": "0.0.4" + }, "dependencies": { "range-parser": { "version": "0.0.4", - "from": "range-parser@0.0.4", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=" } } }, "settings-sharelatex": { - "version": "1.0.0", - "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", - "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", + "version": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", + "requires": { + "coffee-script": "1.6.0" + }, "dependencies": { "coffee-script": { "version": "1.6.0", - "from": "coffee-script@1.6.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", + "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" } } }, "sinon": { - "version": "3.2.1", - "from": "sinon@latest", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-3.2.1.tgz", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.4.tgz", + "integrity": "sha512-ISJZDPf8RS2z4/LAgy1gIimAvF9zg9C9ClQhLTWYWm4HBZjo1WELXlVfkudjdYeN+GtQ2uVBe52m0npIV0gDow==", + "requires": { + "diff": "3.4.0", + "formatio": "1.2.0", + "lodash.get": "4.4.2", + "lolex": "2.3.1", + "nise": "1.2.0", + "supports-color": "4.5.0", + "type-detect": "4.0.5" + }, "dependencies": { "diff": { - "version": "3.3.1", - "from": "diff@>=3.1.0 <4.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" } } }, "sntp": { "version": "0.1.4", - "from": "sntp@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz", + "integrity": "sha1-XvSBuVGnspr/30r9fyaDj8ESD4Q=", + "requires": { + "hoek": "0.7.6" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true }, "stack-trace": { "version": "0.0.7", - "from": "stack-trace@0.0.7", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz", + "integrity": "sha1-xy4Il0T8Nln1CM3ONiGvVjTsD/8=" }, "statsd-parser": { "version": "0.0.4", - "from": "statsd-parser@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz", + "integrity": "sha1-y9JDlTzELv/VSLXSI4jtaJ7GOb0=" }, "stream-buffers": { "version": "0.2.6", - "from": "stream-buffers@>=0.2.5 <0.3.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz" + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", + "integrity": "sha1-GBwI1bs2kARfaUAbmuanoM8zE/w=" }, "stream-counter": { "version": "0.2.0", - "from": "stream-counter@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", + "requires": { + "readable-stream": "1.1.14" + } }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "requires": { + "has-flag": "2.0.0" + } }, "text-encoding": { "version": "0.6.4", - "from": "text-encoding@0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=" + }, + "timespan": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", + "dev": true + }, + "tiny-lr": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz", + "integrity": "sha1-gGGFR/Y/aX0Fy0DEwsSwg1Ia77Y=", + "dev": true, + "requires": { + "debug": "0.8.1", + "faye-websocket": "0.4.4", + "noptify": "0.0.3", + "qs": "0.6.6" + } }, "tunnel-agent": { "version": "0.2.0", - "from": "tunnel-agent@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz", + "integrity": "sha1-aFPCr7GyEJ5FYp5JK9419Fnqaeg=" }, "type-detect": { - "version": "4.0.3", - "from": "type-detect@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz" + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", + "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==" }, "uid2": { "version": "0.0.3", - "from": "uid2@0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz" + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" }, "underscore": { "version": "1.5.2", - "from": "underscore@>=1.5.2 <1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", + "integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg=" + }, + "underscore.string": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", + "dev": true + }, + "update-notifier": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz", + "integrity": "sha1-IVy+EFM2nw1KRPhLUeuny4BIRpU=", + "dev": true, + "requires": { + "chalk": "0.4.0", + "configstore": "0.3.2", + "request": "2.14.0", + "semver": "2.3.2" + } }, "url": { "version": "0.10.3", - "from": "url@0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz" + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "utile": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", + "dev": true, + "requires": { + "async": "0.2.10", + "deep-equal": "1.0.1", + "i": "0.3.6", + "mkdirp": "0.3.5", + "ncp": "2.0.0", + "rimraf": "2.2.8" + } + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + }, + "watch": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", + "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "which": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", + "dev": true + }, + "winston": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", + "dev": true, + "requires": { + "async": "0.2.10", + "colors": "0.6.2", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "pkginfo": "0.3.1", + "stack-trace": "0.0.7" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true }, "wrappy": { "version": "1.0.2", - "from": "wrappy@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xdg-basedir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", + "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=", + "dev": true, + "requires": { + "user-home": "1.1.1" + } }, "xml2js": { "version": "0.4.17", - "from": "xml2js@0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz" + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "requires": { + "sax": "1.2.1", + "xmlbuilder": "4.2.1" + } }, "xmlbuilder": { "version": "4.2.1", - "from": "xmlbuilder@4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz" + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "requires": { + "lodash": "4.17.4" + } } } } diff --git a/services/filestore/package.json b/services/filestore/package.json index 0dbf40d514..75adf6aec8 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -6,6 +6,18 @@ "type": "git", "url": "https://github.com/sharelatex/filestore-sharelatex.git" }, + "scripts": { + "test:acceptance:run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:run -- $@", + "test:unit:run": "mocha --recursive --reporter spec $@ test/unit/js", + "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:run -- $@", + "compile:unit_tests": "coffee -o test/unit/js -c test/unit/coffee", + "compile:acceptance_tests": "coffee -o test/acceptance/js -c test/acceptance/coffee", + "compile:app": "coffee -o app/js -c app/coffee && coffee -c app.coffee", + "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", + "start": "npm run compile:app && node app.js", + "nodemon": "nodemon --config nodemon.json" + }, "dependencies": { "async": "~0.2.10", "aws-sdk": "^2.1.39", diff --git a/services/filestore/test/acceptence/coffee/SendingFileTest.coffee b/services/filestore/test/acceptance/coffee/SendingFileTest.coffee similarity index 100% rename from services/filestore/test/acceptence/coffee/SendingFileTest.coffee rename to services/filestore/test/acceptance/coffee/SendingFileTest.coffee From e235651e9c00e3c92793ed60b6418becf8b0f3fd Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 16 Jan 2018 12:44:26 +0000 Subject: [PATCH 02/69] bump version --- services/filestore/app.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index 3c0ca7b72d..dc1e54361c 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -96,7 +96,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up - v2') + res.send('filestore sharelatex up - v3') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) From dbfebc0d1cf936ac9e7f2bf0e2ff09c20b9172a5 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 16 Jan 2018 14:36:09 +0000 Subject: [PATCH 03/69] bump --- services/filestore/app.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index dc1e54361c..d135f4fb25 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -96,7 +96,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up - v3') + res.send('filestore sharelatex up - v4') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) From 08c734e850a6cd733a6258bf63c83d69d091acda Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 16 Jan 2018 14:48:21 +0000 Subject: [PATCH 04/69] another bump git log --- services/filestore/app.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index d135f4fb25..56706b7a3d 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -96,7 +96,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up - v4') + res.send('filestore sharelatex up - v5') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) From 77e34d33dfe742fb8689e72752a0db37194343a9 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 16 Jan 2018 17:00:27 +0000 Subject: [PATCH 05/69] hello james --- services/filestore/app.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index 56706b7a3d..bd693af655 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -96,7 +96,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up - v5') + res.send('filestore sharelatex up - hello james') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) From 9e321658ede754876b6e18ef1ce1d3e53f8da2f2 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 15:26:38 +0000 Subject: [PATCH 06/69] make s3 configurable via env vars --- .../filestore/config/settings.defaults.coffee | 56 +++++++++++-------- 1 file changed, 33 insertions(+), 23 deletions(-) diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index bb4a885478..673c411462 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -1,6 +1,6 @@ Path = require "path" -module.exports = +settings = internal: filestore: port: 3009 @@ -11,22 +11,26 @@ module.exports = # Choices are # s3 - Amazon S3 # fs - local filesystem - backend: "fs" - stores: - # where to store user and template binary files - # - # For Amazon S3 this is the bucket name to store binary files in. - # - # For local filesystem this is the directory to store the files in. - # Must contain full path, e.g. "/var/lib/sharelatex/data". - # This path must exist, not be tmpfs and be writable to by the user sharelatex is run as. - user_files: Path.resolve(__dirname + "/../user_files") - public_files: Path.resolve(__dirname + "/../public_files") - template_files: Path.resolve(__dirname + "/../template_files") - # if you are using S3, then fill in your S3 details below - # s3: - # key: "" - # secret: "" + if process.env['AWS_KEY']? + backend: "s3" + s3: + key: process.env['AWS_KEY'] + secret: process.env['AWS_SECRET'] + stores: + user_files: process.env['AWS_S3_USER_FILES_BUCKET_NAME'] + template_files: process.env['AWS_S3_TEMPLATE_FILES_BUCKET_NAME'] + public_files: process.env['AWS_S3_PUBLIC_FILES_BUCKET_NAME'] + else + backend: "fs" + stores: + # + # For local filesystem this is the directory to store the files in. + # Must contain full path, e.g. "/var/lib/sharelatex/data". + # This path must exist, not be tmpfs and be writable to by the user sharelatex is run as. + user_files: Path.resolve(__dirname + "/../user_files") + public_files: Path.resolve(__dirname + "/../public_files") + template_files: Path.resolve(__dirname + "/../template_files") + path: uploadFolder: Path.resolve(__dirname + "/../uploads") @@ -35,9 +39,15 @@ module.exports = # Any commands to wrap the convert utility in, for example ["nice"], or ["firejail", "--profile=/etc/firejail/convert.profile"] convertCommandPrefix: [] - # Filestore health check - # ---------------------- - # Project and file details to check in persistor when calling /health_check - # health_check: - # project_id: "" - # file_id: "" + +# Filestore health check +# ---------------------- +# Project and file details to check in persistor when calling /health_check +if process.env['HEALTH_CHECK_PROJECT_ID']? and process.env['HEALTH_CHECK_FILE_ID']? + settings.health_check = + project_id: process.env['HEALTH_CHECK_PROJECT_ID'] + file_id: process.env['HEALTH_CHECK_FILE_ID'] + +module.exports = settings + +console.log module.exports \ No newline at end of file From 73f77b5667b9a9b94b52e64b2697719f2a6213ff Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 16:14:30 +0000 Subject: [PATCH 07/69] copy everything into docker container --- services/filestore/Dockerfile | 6 ++---- services/filestore/config/settings.defaults.coffee | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index 82a4edd9f0..9a01b4da61 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -6,10 +6,8 @@ COPY package.json /app/ RUN npm install --quiet -COPY config /app/config -COPY test /app/test -COPY app /app/app -COPY app.coffee /app + +COPY . /app RUN npm run compile:all FROM node:8.9.1 diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index 673c411462..37800eecc7 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -4,7 +4,7 @@ settings = internal: filestore: port: 3009 - host: "localhost" + host: process.env['LISTEN_ADDRESS'] or "localhost" filestore: # Which backend persistor to use. From 2f0cc4e64a73945913f097e92b319be85c62d3b2 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 16:19:52 +0000 Subject: [PATCH 08/69] chown uploads --- services/filestore/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index 9a01b4da61..4ca82556fc 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -13,6 +13,7 @@ RUN npm run compile:all FROM node:8.9.1 COPY --from=0 /app /app +RUN chown app uploads # All app and node_modules will be owned by root. # The app will run as the 'app' user, and so not have write permissions # on any files it doesn't need. From 1af209cd246c713d87e5b5709a9af39d9ad95c9d Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 16:23:04 +0000 Subject: [PATCH 09/69] chown uploads --- services/filestore/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index 4ca82556fc..108e373071 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -13,7 +13,7 @@ RUN npm run compile:all FROM node:8.9.1 COPY --from=0 /app /app -RUN chown app uploads +RUN chown app:app /app/uploads # All app and node_modules will be owned by root. # The app will run as the 'app' user, and so not have write permissions # on any files it doesn't need. From 837a8ff35f6d5b728a808d3aaa2fd32981f81967 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 16:26:42 +0000 Subject: [PATCH 10/69] change uploads permission after creation of user --- services/filestore/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index 108e373071..eb03c3257b 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -13,11 +13,12 @@ RUN npm run compile:all FROM node:8.9.1 COPY --from=0 /app /app -RUN chown app:app /app/uploads # All app and node_modules will be owned by root. # The app will run as the 'app' user, and so not have write permissions # on any files it doesn't need. RUN useradd --user-group --create-home --home-dir /app --shell /bin/false app +RUN chown app:app /app/uploads + USER app WORKDIR /app From 092a151d511e32d4775884517aa7d77a448b3b7a Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 16:36:41 +0000 Subject: [PATCH 11/69] Use new build system --- services/filestore/Dockerfile | 25 +++++++++++-------------- services/filestore/install_deps.sh | 4 ++++ 2 files changed, 15 insertions(+), 14 deletions(-) create mode 100755 services/filestore/install_deps.sh diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index eb03c3257b..c3070f5a3e 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -1,27 +1,24 @@ -FROM node:8.9.1 +FROM node:8.9.1 as app + +COPY ./ /app WORKDIR /app -COPY package.json /app/ +RUN npm install -RUN npm install --quiet - - -COPY . /app RUN npm run compile:all FROM node:8.9.1 -COPY --from=0 /app /app -# All app and node_modules will be owned by root. -# The app will run as the 'app' user, and so not have write permissions -# on any files it doesn't need. -RUN useradd --user-group --create-home --home-dir /app --shell /bin/false app -RUN chown app:app /app/uploads +COPY --from=app /app /app -USER app WORKDIR /app -EXPOSE 3009 +# All app and node_modules will be owned by root. +# The app will run as the 'node' user, and so not have write permissions +# on any files it doesn't need. +RUN ./install_deps.sh + +USER node CMD ["node","app.js"] diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh new file mode 100755 index 0000000000..dceb2a7d8a --- /dev/null +++ b/services/filestore/install_deps.sh @@ -0,0 +1,4 @@ +#!/bin/sh +apt-get install poppler-utils vim ghostscript imagemagick optipng --yes +npm rebuild +chown -R node:node /app/uploads From 801adf8e9ea728fc9bc153cf3080fa5ed8cc1249 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 17:06:31 +0000 Subject: [PATCH 12/69] install gs manually --- services/filestore/install_deps.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh index dceb2a7d8a..4861bcfd3f 100755 --- a/services/filestore/install_deps.sh +++ b/services/filestore/install_deps.sh @@ -1,4 +1,11 @@ #!/bin/sh -apt-get install poppler-utils vim ghostscript imagemagick optipng --yes +apt-get update + +apt-get install vim imagemagick optipng --yes + +wget https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz /tmp/ghostscript-9.15.tar.gz +tar -xvf /tmp/ghostscript-9.15.tar.gz +cd /tmp/ghostscript-9.15 && ./configure && make && make install + npm rebuild chown -R node:node /app/uploads From 8c782ba6b2622a4bfd924ed483b5810a9952155f Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 17:12:37 +0000 Subject: [PATCH 13/69] debuging --- services/filestore/Dockerfile | 2 +- services/filestore/install_deps.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index c3070f5a3e..efe5879b50 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -19,6 +19,6 @@ WORKDIR /app # on any files it doesn't need. RUN ./install_deps.sh -USER node +# USER node CMD ["node","app.js"] diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh index 4861bcfd3f..2d2632ea19 100755 --- a/services/filestore/install_deps.sh +++ b/services/filestore/install_deps.sh @@ -9,3 +9,5 @@ cd /tmp/ghostscript-9.15 && ./configure && make && make install npm rebuild chown -R node:node /app/uploads + +echo gs --version \ No newline at end of file From b45e2a922c7375e183f73a10765a6fc4eb54abff Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 17:21:15 +0000 Subject: [PATCH 14/69] install gs correctly --- services/filestore/Dockerfile | 2 +- services/filestore/install_deps.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index efe5879b50..c3070f5a3e 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -19,6 +19,6 @@ WORKDIR /app # on any files it doesn't need. RUN ./install_deps.sh -# USER node +USER node CMD ["node","app.js"] diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh index 2d2632ea19..193c358628 100755 --- a/services/filestore/install_deps.sh +++ b/services/filestore/install_deps.sh @@ -3,7 +3,8 @@ apt-get update apt-get install vim imagemagick optipng --yes -wget https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz /tmp/ghostscript-9.15.tar.gz +wget https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz -O /tmp/ghostscript-9.15.tar.gz +ls -al /tmp tar -xvf /tmp/ghostscript-9.15.tar.gz cd /tmp/ghostscript-9.15 && ./configure && make && make install From 46f2ff051c7d9eb3b6adc5514dd96000d46ad71b Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 23 Mar 2018 17:29:21 +0000 Subject: [PATCH 15/69] cd into tmp --- services/filestore/install_deps.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh index 193c358628..52b6bde59d 100755 --- a/services/filestore/install_deps.sh +++ b/services/filestore/install_deps.sh @@ -3,8 +3,8 @@ apt-get update apt-get install vim imagemagick optipng --yes -wget https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz -O /tmp/ghostscript-9.15.tar.gz -ls -al /tmp +wget -q https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz -O /tmp/ghostscript-9.15.tar.gz +cd /tmp tar -xvf /tmp/ghostscript-9.15.tar.gz cd /tmp/ghostscript-9.15 && ./configure && make && make install From de74ec5094754ea52eb8ba545542573b2f325d74 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 13:47:06 +0100 Subject: [PATCH 16/69] Change build and publish to use the GCR of one of my projects (hard code for now) --- services/filestore/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 3ebf4c4a34..89ac367ccb 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -34,10 +34,10 @@ test_acceptance: ci_clean # clear the database before each acceptance test run $(DOCKER_COMPOSE) run --rm test_acceptance -- ${MOCHA_ARGS} build: - docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . + docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . publish: - docker push quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + docker push gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) ci: # On the CI server, we want to run our tests in the image that we @@ -59,4 +59,4 @@ ci_clean: .PHONY: all install compile clean test test_unit test_acceptance \ test_acceptance_start_service test_acceptance_stop_service \ - test_acceptance_run build publish ci ci_clean \ No newline at end of file + test_acceptance_run build publish ci ci_clean From a2165d85a0cb3f225a7d134dc625b82d02e813c9 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 13:55:33 +0100 Subject: [PATCH 17/69] Update build script to use build-target docker --- services/filestore/Dockerfile | 17 ++++----- services/filestore/Jenkinsfile | 66 ++++++++++++++------------------- services/filestore/Makefile | 62 +++++++++++-------------------- services/filestore/package.json | 16 ++++---- 4 files changed, 65 insertions(+), 96 deletions(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index c3070f5a3e..cb700d7ade 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -1,24 +1,21 @@ -FROM node:8.9.1 as app - -COPY ./ /app +FROM node:6.9.5 as app WORKDIR /app -RUN npm install +COPY package.json package-lock.json /app/ + +RUN npm install --quiet + +COPY . /app RUN npm run compile:all -FROM node:8.9.1 +FROM node:6.9.5 COPY --from=app /app /app WORKDIR /app - -# All app and node_modules will be owned by root. -# The app will run as the 'node' user, and so not have write permissions -# on any files it doesn't need. RUN ./install_deps.sh - USER node CMD ["node","app.js"] diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 03528475d6..bc9ba0142f 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -1,79 +1,67 @@ -pipeline { - - agent { - docker { - image 'node:6.9.5' - args "-v /var/lib/jenkins/.npm:/tmp/.npm" - } - } +String cron_string = BRANCH_NAME == "master" ? "@daily" : "" - environment { - HOME = "/tmp" - } +pipeline { + agent any triggers { pollSCM('* * * * *') - cron('@daily') + cron(cron_string) } stages { - stage('Set up') { + stage('Build') { steps { - // we need to disable logallrefupdates, else git clones during the npm install will require git to lookup the user id - // which does not exist in the container's /etc/passwd file, causing the clone to fail. - sh 'git config --global core.logallrefupdates false' + sh 'make build' } } - stage('Install') { + + stage('Unit Tests') { steps { - sh 'rm -fr node_modules' - sh 'npm install' - sh 'npm rebuild' - sh 'npm install --quiet grunt-cli' + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_unit' } } - stage('Compile') { + + stage('Acceptance Tests') { steps { - sh 'node_modules/.bin/grunt compile' + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_acceptance' } } - stage('Test') { + + stage('Package and publish build') { steps { - sh 'NODE_ENV=development node_modules/.bin/grunt test:unit' + sh 'make publish' } } - stage('Package') { - steps { - sh 'echo ${BUILD_NUMBER} > build_number.txt' - sh 'touch build.tar.gz' // Avoid tar warning about files changing during read - sh 'tar -czf build.tar.gz --exclude=build.tar.gz --exclude-vcs .' - } - } - stage('Publish') { + + stage('Publish build number') { steps { + sh 'echo ${BRANCH_NAME}-${BUILD_NUMBER} > build_number.txt' withAWS(credentials:'S3_CI_BUILDS_AWS_KEYS', region:"${S3_REGION_BUILD_ARTEFACTS}") { - s3Upload(file:'build.tar.gz', bucket:"${S3_BUCKET_BUILD_ARTEFACTS}", path:"${JOB_NAME}/${BUILD_NUMBER}.tar.gz") // The deployment process uses this file to figure out the latest build s3Upload(file:'build_number.txt', bucket:"${S3_BUCKET_BUILD_ARTEFACTS}", path:"${JOB_NAME}/latest") } } } } - + post { + always { + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_clean' + } + failure { - mail(from: "${EMAIL_ALERT_FROM}", - to: "${EMAIL_ALERT_TO}", + mail(from: "${EMAIL_ALERT_FROM}", + to: "${EMAIL_ALERT_TO}", subject: "Jenkins build failed: ${JOB_NAME}:${BUILD_NUMBER}", body: "Build: ${BUILD_URL}") } } - + // The options directive is for configuration that applies to the whole job. options { // we'd like to make sure remove old builds, so we don't fill up our storage! buildDiscarder(logRotator(numToKeepStr:'50')) - + // And we'd really like to be sure that this build doesn't hang forever, so let's time it out after: timeout(time: 30, unit: 'MINUTES') } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 89ac367ccb..aa6e35142d 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,62 +1,44 @@ -NPM := docker-compose -f docker-compose.yml ${DOCKER_COMPOSE_FLAGS} run --rm npm npm +# This file was auto-generated, do not edit it directly. +# Instead run bin/update_build_scripts from +# https://github.com/sharelatex/sharelatex-dev-environment +# Version: 1.1.1 + BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) PROJECT_NAME = filestore DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml -DOCKER_COMPOSE := docker-compose ${DOCKER_COMPOSE_FLAGS} +DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ + BRANCH_NAME=$(BRANCH_NAME) \ + PROJECT_NAME=$(PROJECT_NAME) \ + MOCHA_GREP=${MOCHA_GREP} \ + docker-compose ${DOCKER_COMPOSE_FLAGS} -all: install test - @echo "Run:" - @echo " make install to set up the project dependencies (in docker)" - @echo " make test to run all the tests for the project (in docker)" - @echo " make run to run the app (natively)" - -install: - $(NPM) install - -run: - $(NPM) run start clean: rm -f app.js rm -rf app/js rm -rf test/unit/js rm -rf test/acceptance/js - # Deletes node_modules volume - docker-compose down --volumes -test: test_unit test_acceptance +test: test_unit test_acceptance test_unit: - $(DOCKER_COMPOSE) run --rm test_unit -- ${MOCHA_ARGS} + @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit npm run test:unit -- ${MOCHA_ARGS} -test_acceptance: ci_clean # clear the database before each acceptance test run - $(DOCKER_COMPOSE) run --rm test_acceptance -- ${MOCHA_ARGS} +test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run + @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance npm run test:acceptance -- ${MOCHA_ARGS} +test_clean: + $(DOCKER_COMPOSE) down -v -t 0 + +test_acceptance_pre_run: + @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: + docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . publish: + docker push quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker push gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) -ci: - # On the CI server, we want to run our tests in the image that we - # have built for deployment, which is what the docker-compose.ci.yml - # override does. - PROJECT_NAME=$(PROJECT_NAME) \ - BRANCH_NAME=$(BRANCH_NAME) \ - BUILD_NUMBER=$(BUILD_NUMBER) \ - DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" \ - $(MAKE) build test publish - -ci_clean: - PROJECT_NAME=$(PROJECT_NAME) \ - BRANCH_NAME=$(BRANCH_NAME) \ - BUILD_NUMBER=$(BUILD_NUMBER) \ - DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" \ - $(DOCKER_COMPOSE) down - -.PHONY: - all install compile clean test test_unit test_acceptance \ - test_acceptance_start_service test_acceptance_stop_service \ - test_acceptance_run build publish ci ci_clean +.PHONY: clean test test_unit test_acceptance test_clean build publish diff --git a/services/filestore/package.json b/services/filestore/package.json index 75adf6aec8..a3e679ce59 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -8,15 +8,17 @@ }, "scripts": { "test:acceptance:run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", - "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:run -- $@", + "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- $@", "test:unit:run": "mocha --recursive --reporter spec $@ test/unit/js", - "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:run -- $@", - "compile:unit_tests": "coffee -o test/unit/js -c test/unit/coffee", - "compile:acceptance_tests": "coffee -o test/acceptance/js -c test/acceptance/coffee", - "compile:app": "coffee -o app/js -c app/coffee && coffee -c app.coffee", + "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:_run -- $@", + "compile:unit_tests": "[ ! -e test/unit/coffee ] && echo 'No unit tests to compile' || coffee -o test/unit/js -c test/unit/coffee", + "compile:acceptance_tests": "[ ! -e test/acceptance/coffee ] && echo 'No acceptance tests to compile' || coffee -o test/acceptance/js -c test/acceptance/coffee", + "compile:app": "([ -e app/coffee ] && coffee $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')", "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", - "start": "npm run compile:app && node app.js", - "nodemon": "nodemon --config nodemon.json" + "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", + "nodemon": "nodemon --config nodemon.json", + "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js" }, "dependencies": { "async": "~0.2.10", From 5d5cbbef7ec709582b6bc70e710bce475ca4cae8 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 14:15:02 +0100 Subject: [PATCH 18/69] Create fake package-lock.json during build tagret --- services/filestore/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index aa6e35142d..1d5e77efe7 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -34,6 +34,7 @@ test_clean: test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: + touch package-lock.json docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . From 8db861258ad7489b3330a20d16cd08d700a56bca Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 14:27:46 +0100 Subject: [PATCH 19/69] Add files generated by bin/update_build_scripts --- services/filestore/.dockerignore | 3 ++ services/filestore/docker-compose.ci.yml | 31 +++++++++++++++++++ services/filestore/docker-compose.yml | 39 ++++++++++++++++++++++++ services/filestore/nodemon.json | 19 ++++++++++++ services/filestore/package-lock.json | 0 5 files changed, 92 insertions(+) create mode 100644 services/filestore/.dockerignore create mode 100644 services/filestore/docker-compose.ci.yml create mode 100644 services/filestore/docker-compose.yml create mode 100644 services/filestore/nodemon.json create mode 100644 services/filestore/package-lock.json diff --git a/services/filestore/.dockerignore b/services/filestore/.dockerignore new file mode 100644 index 0000000000..a99835353f --- /dev/null +++ b/services/filestore/.dockerignore @@ -0,0 +1,3 @@ +node_modules/* +app.js +**/js/* diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml new file mode 100644 index 0000000000..e979b7d4c5 --- /dev/null +++ b/services/filestore/docker-compose.ci.yml @@ -0,0 +1,31 @@ +# This file was auto-generated, do not edit it directly. +# Instead run bin/update_build_scripts from +# https://github.com/sharelatex/sharelatex-dev-environment +# Version: 1.1.1 + +version: "2" + +services: + test_unit: + image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + user: node + command: npm run test:unit:_run + + test_acceptance: + build: . + image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + environment: + REDIS_HOST: redis + MONGO_HOST: mongo + POSTGRES_HOST: postgres + depends_on: + - mongo + - redis + user: node + command: npm run test:acceptance:_run + redis: + image: redis + + mongo: + image: mongo:3.4 + diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml new file mode 100644 index 0000000000..6d11493b66 --- /dev/null +++ b/services/filestore/docker-compose.yml @@ -0,0 +1,39 @@ +# This file was auto-generated, do not edit it directly. +# Instead run bin/update_build_scripts from +# https://github.com/sharelatex/sharelatex-dev-environment +# Version: 1.1.1 + +version: "2" + +services: + test_unit: + image: node:6.9.5 + volumes: + - .:/app + working_dir: /app + environment: + MOCHA_GREP: ${MOCHA_GREP} + command: npm run test:unit + user: node + + test_acceptance: + build: . + volumes: + - .:/app + working_dir: /app + environment: + REDIS_HOST: redis + MONGO_HOST: mongo + POSTGRES_HOST: postgres + MOCHA_GREP: ${MOCHA_GREP} + user: node + depends_on: + - mongo + - redis + command: npm run test:acceptance + redis: + image: redis + + mongo: + image: mongo:3.4 + diff --git a/services/filestore/nodemon.json b/services/filestore/nodemon.json new file mode 100644 index 0000000000..98db38d71b --- /dev/null +++ b/services/filestore/nodemon.json @@ -0,0 +1,19 @@ +{ + "ignore": [ + ".git", + "node_modules/" + ], + "verbose": true, + "legacyWatch": true, + "execMap": { + "js": "npm run start" + }, + + "watch": [ + "app/coffee/", + "app.coffee", + "config/" + ], + "ext": "coffee" + +} diff --git a/services/filestore/package-lock.json b/services/filestore/package-lock.json new file mode 100644 index 0000000000..e69de29bb2 From 7fc7252c35bd6de417fc27af725d6197abfa019c Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 14:29:20 +0100 Subject: [PATCH 20/69] Remove touch package-lock.json --- services/filestore/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 1d5e77efe7..aa6e35142d 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -34,7 +34,6 @@ test_clean: test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: - touch package-lock.json docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . From b32c63e16c3cb5ac069732f67c7ac2fa05bbcb85 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 18 May 2018 14:59:34 +0100 Subject: [PATCH 21/69] Remove --exit option to support older mocha --- services/filestore/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/filestore/package.json b/services/filestore/package.json index a3e679ce59..9694fc6679 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -7,7 +7,7 @@ "url": "https://github.com/sharelatex/filestore-sharelatex.git" }, "scripts": { - "test:acceptance:run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:acceptance:run": "mocha --recursive --reporter spec --timeout 15000 $@ test/acceptance/js", "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- $@", "test:unit:run": "mocha --recursive --reporter spec $@ test/unit/js", "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:_run -- $@", @@ -17,7 +17,7 @@ "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", - "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 $@ test/acceptance/js", "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js" }, "dependencies": { From fcb2d18f8b6c510a0dfcad1cbe871b26a628fa61 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 18 May 2018 16:06:03 +0100 Subject: [PATCH 22/69] don't set command in make test acceptence --- services/filestore/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index aa6e35142d..8748455b23 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -6,7 +6,7 @@ BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) PROJECT_NAME = filestore -DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml +DOCKER_COMPOSE_FLAGS ?= -f docker-compose.ci.yml DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ BRANCH_NAME=$(BRANCH_NAME) \ PROJECT_NAME=$(PROJECT_NAME) \ @@ -23,10 +23,10 @@ clean: test: test_unit test_acceptance test_unit: - @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit npm run test:unit -- ${MOCHA_ARGS} + @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run - @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance npm run test:acceptance -- ${MOCHA_ARGS} + @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance test_clean: $(DOCKER_COMPOSE) down -v -t 0 From 088d8850babc7c139d106ac63ad35610880d439d Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 18 May 2018 16:48:59 +0100 Subject: [PATCH 23/69] don't run acceptence tests yet --- services/filestore/Jenkinsfile | 6 +----- services/filestore/Makefile | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index bc9ba0142f..ffc7265888 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -21,11 +21,7 @@ pipeline { } } - stage('Acceptance Tests') { - steps { - sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_acceptance' - } - } + stage('Package and publish build') { steps { diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 8748455b23..bb7eab8037 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -6,7 +6,7 @@ BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) PROJECT_NAME = filestore -DOCKER_COMPOSE_FLAGS ?= -f docker-compose.ci.yml +DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ BRANCH_NAME=$(BRANCH_NAME) \ PROJECT_NAME=$(PROJECT_NAME) \ From bfb98050e3d75acb429dcb9ca643a737afcadb80 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 18 May 2018 16:57:53 +0100 Subject: [PATCH 24/69] don't push to quay.io --- services/filestore/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index bb7eab8037..ef9dd9d63b 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -34,11 +34,9 @@ test_clean: test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: - docker build --pull --tag quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . publish: - docker push quay.io/sharelatex/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker push gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) .PHONY: clean test test_unit test_acceptance test_clean build publish From 28fc39d6c920b9ae4265cf52bfa5f494a6b8830d Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 18 May 2018 17:08:18 +0100 Subject: [PATCH 25/69] don't use quay.io in image name --- services/filestore/docker-compose.ci.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index e979b7d4c5..a9c5d8969c 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -7,13 +7,13 @@ version: "2" services: test_unit: - image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + # image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER user: node command: npm run test:unit:_run test_acceptance: build: . - image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + # image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER environment: REDIS_HOST: redis MONGO_HOST: mongo @@ -23,6 +23,7 @@ services: - redis user: node command: npm run test:acceptance:_run + redis: image: redis From df6b5203a10e1867a864677428af6d73f3197b8e Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 18 May 2018 17:18:39 +0100 Subject: [PATCH 26/69] point ci to gcr.io/csh-gcdm-test/ --- services/filestore/docker-compose.ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index a9c5d8969c..a1cdf244d9 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -7,13 +7,13 @@ version: "2" services: test_unit: - # image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + image: gcr.io/csh-gcdm-test/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER user: node command: npm run test:unit:_run test_acceptance: build: . - # image: quay.io/sharelatex/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + image: gcr.io/csh-gcdm-test/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER environment: REDIS_HOST: redis MONGO_HOST: mongo From fda6cb008437483ff1724a8cebeb6cbb18e2c629 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 09:37:54 +0100 Subject: [PATCH 27/69] fix acceptence tests, add them back into jenkins, upgrade express --- services/filestore/Jenkinsfile | 6 ++++- services/filestore/app.coffee | 19 ++++++++++----- .../filestore/app/coffee/FileConverter.coffee | 2 +- services/filestore/package.json | 2 +- .../acceptance/coffee/FilestoreApp.coffee | 24 +++++++++++++++++++ .../acceptance/coffee/SendingFileTest.coffee | 7 +++--- 6 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 services/filestore/test/acceptance/coffee/FilestoreApp.coffee diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index ffc7265888..e1a34a5235 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -21,7 +21,11 @@ pipeline { } } - + stage('Acceptance Tests') { + steps { + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_acceptance' + } + } stage('Package and publish build') { steps { diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index bd693af655..a6d6d11119 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -110,9 +110,8 @@ app.get "/health_check", healthCheckController.check app.get '*', (req, res)-> res.send 404 -server = require('http').createServer(app) -port = settings.internal.filestore.port or 3009 -host = "0.0.0.0" + + beginShutdown = () -> if appIsOk @@ -122,14 +121,22 @@ beginShutdown = () -> process.exit 1 , 120*1000 killTimer.unref?() # prevent timer from keeping process alive - server.close () -> + app.close () -> logger.log "closed all connections" Metrics.close() process.disconnect?() logger.log "server will stop accepting connections" -server.listen port, -> - logger.info "Filestore starting up, listening on #{host}:#{port}" + +port = settings.internal.filestore.port or 3009 +host = "0.0.0.0" + +if !module.parent # Called directly + app.listen port, host, (error) -> + logger.info "Filestore starting up, listening on #{host}:#{port}" + + +module.exports = app process.on 'SIGTERM', () -> logger.log("filestore got SIGTERM, shutting down gracefully") diff --git a/services/filestore/app/coffee/FileConverter.coffee b/services/filestore/app/coffee/FileConverter.coffee index 429fa7fccb..894b0e89fd 100644 --- a/services/filestore/app/coffee/FileConverter.coffee +++ b/services/filestore/app/coffee/FileConverter.coffee @@ -34,11 +34,11 @@ module.exports = callback(err, destPath) thumbnail: (sourcePath, callback)-> - logger.log sourcePath:sourcePath, "thumbnail convert file" destPath = "#{sourcePath}.png" sourcePath = "#{sourcePath}[0]" width = "260x" command = ["convert", "-flatten", "-background", "white", "-density", "300", "-define", "pdf:fit-page=#{width}", sourcePath, "-resize", width, destPath] + logger.log sourcePath:sourcePath, destPath:destPath, command:command, "thumbnail convert file" command = Settings.commands.convertCommandPrefix.concat(command) safe_exec command, childProcessOpts, (err, stdout, stderr)-> if err? diff --git a/services/filestore/package.json b/services/filestore/package.json index 9694fc6679..198a6ec366 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -24,7 +24,7 @@ "async": "~0.2.10", "aws-sdk": "^2.1.39", "coffee-script": "~1.7.1", - "express": "~3.4.8", + "express": "^4.2.0", "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", diff --git a/services/filestore/test/acceptance/coffee/FilestoreApp.coffee b/services/filestore/test/acceptance/coffee/FilestoreApp.coffee new file mode 100644 index 0000000000..818e90ec6f --- /dev/null +++ b/services/filestore/test/acceptance/coffee/FilestoreApp.coffee @@ -0,0 +1,24 @@ +app = require('../../../app') +require("logger-sharelatex").logger.level("info") +logger = require("logger-sharelatex") +Settings = require("settings-sharelatex") + +module.exports = + running: false + initing: false + callbacks: [] + ensureRunning: (callback = (error) ->) -> + if @running + return callback() + else if @initing + @callbacks.push callback + else + @initing = true + @callbacks.push callback + app.listen Settings.internal?.filestore?.port, "localhost", (error) => + throw error if error? + @running = true + logger.log("filestore running in dev mode") + + for callback in @callbacks + callback() \ No newline at end of file diff --git a/services/filestore/test/acceptance/coffee/SendingFileTest.coffee b/services/filestore/test/acceptance/coffee/SendingFileTest.coffee index 2731e25565..1b20e6b44f 100644 --- a/services/filestore/test/acceptance/coffee/SendingFileTest.coffee +++ b/services/filestore/test/acceptance/coffee/SendingFileTest.coffee @@ -1,4 +1,3 @@ - assert = require("chai").assert sinon = require('sinon') chai = require('chai') @@ -9,6 +8,7 @@ SandboxedModule = require('sandboxed-module') fs = require("fs") request = require("request") settings = require("settings-sharelatex") +FilestoreApp = require "./FilestoreApp" describe "Filestore", -> @@ -26,8 +26,9 @@ describe "Filestore", -> @filestoreUrl = "http://localhost:#{settings.internal.filestore.port}" beforeEach (done)-> - fs.unlink @localFileWritePath, => - done() + FilestoreApp.ensureRunning => + fs.unlink @localFileWritePath, -> + done() From d9eac8dd8b3044d8429ffe6f5b58b0fa86ea835f Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 09:41:14 +0100 Subject: [PATCH 28/69] upgrade mocha --- services/filestore/package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/filestore/package.json b/services/filestore/package.json index 198a6ec366..85ea112dd6 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -40,7 +40,8 @@ "rimraf": "2.2.8", "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", "stream-buffers": "~0.2.5", - "underscore": "~1.5.2" + "underscore": "~1.5.2", + "mocha": "^4.0.1" }, "devDependencies": { "sinon": "", From ac990f2aba8761f0227a1357d343789b4f461950 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 09:49:32 +0100 Subject: [PATCH 29/69] remove app.configure --- services/filestore/app.coffee | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index a6d6d11119..f7ef31e687 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -16,16 +16,7 @@ Metrics.open_sockets.monitor(logger) Metrics.event_loop?.monitor(logger) Metrics.memory.monitor(logger) -app.configure -> - app.use Metrics.http.monitor(logger) - -app.configure 'development', -> - console.log "Development Enviroment" - app.use express.errorHandler({ dumpExceptions: true, showStack: true }) - -app.configure 'production', -> - console.log "Production Enviroment" - app.use express.errorHandler() +app.use Metrics.http.monitor(logger) Metrics.inc "startup" From 3cf2e1d7c34bdd93b6ce89c60f337be6723d4577 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 10:11:47 +0100 Subject: [PATCH 30/69] add null checks and new body parser --- services/filestore/app.coffee | 5 +++-- services/filestore/app/coffee/PersistorManager.coffee | 2 +- services/filestore/package.json | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index f7ef31e687..426996eccf 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -1,4 +1,5 @@ express = require('express') +bodyParser = require "body-parser" logger = require('logger-sharelatex') logger.initialize("filestore") settings = require("settings-sharelatex") @@ -61,7 +62,7 @@ app.use (req, res, next) -> app.get "/project/:project_id/file/:file_id", keyBuilder.userFileKey, fileController.getFile app.post "/project/:project_id/file/:file_id", keyBuilder.userFileKey, fileController.insertFile -app.put "/project/:project_id/file/:file_id", keyBuilder.userFileKey, express.bodyParser(), fileController.copyFile +app.put "/project/:project_id/file/:file_id", keyBuilder.userFileKey, bodyParser.json(), fileController.copyFile app.del "/project/:project_id/file/:file_id", keyBuilder.userFileKey, fileController.deleteFile app.get "/template/:template_id/v/:version/:format", keyBuilder.templateFileKey, fileController.getFile @@ -72,7 +73,7 @@ app.post "/template/:template_id/v/:version/:format", keyBuilder.templateFileKey app.get "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.getFile app.post "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.insertFile -app.put "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, express.bodyParser(), fileController.copyFile +app.put "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, bodyParser.json(), fileController.copyFile app.del "/project/:project_id/public/:public_file_id", keyBuilder.publicFileKey, fileController.deleteFile app.get "/project/:project_id/size", keyBuilder.publicProjectKey, fileController.directorySize diff --git a/services/filestore/app/coffee/PersistorManager.coffee b/services/filestore/app/coffee/PersistorManager.coffee index aa5c80599d..a3b08420a6 100644 --- a/services/filestore/app/coffee/PersistorManager.coffee +++ b/services/filestore/app/coffee/PersistorManager.coffee @@ -2,7 +2,7 @@ settings = require("settings-sharelatex") logger = require("logger-sharelatex") # assume s3 if none specified -settings.filestore.backend ||= "s3" +settings?.filestore?.backend ||= "s3" logger.log backend:settings.filestore.backend, "Loading backend" diff --git a/services/filestore/package.json b/services/filestore/package.json index 85ea112dd6..897d195b63 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -41,7 +41,8 @@ "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", "stream-buffers": "~0.2.5", "underscore": "~1.5.2", - "mocha": "^4.0.1" + "mocha": "^4.0.1", + "body-parser": "^1.2.0" }, "devDependencies": { "sinon": "", From 09527d804e54ef89c06fd130999e344175b430b5 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 10:21:13 +0100 Subject: [PATCH 31/69] ignore js acceptence tests --- services/filestore/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/services/filestore/.gitignore b/services/filestore/.gitignore index d51931c976..9cb1da9a39 100644 --- a/services/filestore/.gitignore +++ b/services/filestore/.gitignore @@ -56,6 +56,7 @@ public/minjs/ test/unit/js/ test/acceptence/js cluster.js +test/acceptance/js/ user_files/* template_files/* From 768a4cc1adf10442b582a219ab7c74f85e8e3d72 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 10:34:16 +0100 Subject: [PATCH 32/69] remove console.log from settings --- services/filestore/config/settings.defaults.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index 37800eecc7..e9e24cd355 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -49,5 +49,3 @@ if process.env['HEALTH_CHECK_PROJECT_ID']? and process.env['HEALTH_CHECK_FILE_ID file_id: process.env['HEALTH_CHECK_FILE_ID'] module.exports = settings - -console.log module.exports \ No newline at end of file From e3514e84cd9b846bb3d8014ac8512e72995f93f6 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 11:02:53 +0100 Subject: [PATCH 33/69] fix up mocha migration tests --- .../app/coffee/PersistorManager.coffee | 5 ++--- .../app/coffee/S3PersistorManager.coffee | 2 +- .../coffee/FSPersistorManagerTests.coffee | 5 ++--- .../unit/coffee/PersistorManagerTests.coffee | 4 ++-- .../coffee/S3PersistorManagerTests.coffee | 20 +++++++------------ 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/services/filestore/app/coffee/PersistorManager.coffee b/services/filestore/app/coffee/PersistorManager.coffee index a3b08420a6..85c9dd83cd 100644 --- a/services/filestore/app/coffee/PersistorManager.coffee +++ b/services/filestore/app/coffee/PersistorManager.coffee @@ -4,9 +4,8 @@ logger = require("logger-sharelatex") # assume s3 if none specified settings?.filestore?.backend ||= "s3" - -logger.log backend:settings.filestore.backend, "Loading backend" -module.exports = switch settings.filestore.backend +logger.log backend:settings?.filestore?.backend, "Loading backend" +module.exports = switch settings?.filestore?.backend when "aws-sdk" require "./AWSSDKPersistorManager" when "s3" diff --git a/services/filestore/app/coffee/S3PersistorManager.coffee b/services/filestore/app/coffee/S3PersistorManager.coffee index b1a03fb4f4..0fae57df96 100644 --- a/services/filestore/app/coffee/S3PersistorManager.coffee +++ b/services/filestore/app/coffee/S3PersistorManager.coffee @@ -77,7 +77,7 @@ module.exports = if res.statusCode == 404 logger.log bucketName:bucketName, key:key, "file not found in s3" return callback new Errors.NotFoundError("File not found in S3: #{bucketName}:#{key}"), null - if res.statusCode not in [200, 206] + else if res.statusCode not in [200, 206] logger.log bucketName:bucketName, key:key, "error getting file from s3: #{res.statusCode}" return callback new Error("Got non-200 response from S3: #{res.statusCode}"), null callback null, res diff --git a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee index 46def22a05..da59f859b9 100644 --- a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee @@ -33,8 +33,6 @@ describe "FSPersistorManagerTests", -> err:-> "response":response "rimraf":@Rimraf - "./Errors": @Errors = - NotFoundError: sinon.stub() @location = "/tmp" @name1 = "530f2407e7ef165704000007/530f838b46d9a9e859000008" @name1Filtered ="530f2407e7ef165704000007_530f838b46d9a9e859000008" @@ -102,6 +100,7 @@ describe "FSPersistorManagerTests", -> @Fs.createReadStream.returns( on: (key, callback) => err = new Error() + err.message = "this is from a test" err.code = @fakeCode callback(err, null) ) @@ -115,7 +114,7 @@ describe "FSPersistorManagerTests", -> @FSPersistorManager.getFileStream @location, @name1, @opts, (err,res)=> expect(res).to.equal null expect(err).to.not.equal null - expect(err instanceof @Errors.NotFoundError).to.equal true + expect(err.name == "NotFoundError").to.equal true done() describe "when some other error happens", -> diff --git a/services/filestore/test/unit/coffee/PersistorManagerTests.coffee b/services/filestore/test/unit/coffee/PersistorManagerTests.coffee index ca7a82cbaa..3c4ca329e1 100644 --- a/services/filestore/test/unit/coffee/PersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/PersistorManagerTests.coffee @@ -66,14 +66,14 @@ describe "PersistorManagerTests", -> describe "test unspecified mixins", -> it "should load s3 when no wrapper specified", (done) -> - @settings = + @settings = {filestore:{}} @requires = "./S3PersistorManager": @S3PersistorManager "settings-sharelatex": @settings "logger-sharelatex": log:-> err:-> - @PersistorManager=SandboxedModule.require modulePath, requires: @requires + @PersistorManager = SandboxedModule.require modulePath, requires: @requires @PersistorManager.should.respondTo("getFileStream") @PersistorManager.getFileStream() @S3PersistorManager.getFileStream.calledOnce.should.equal true diff --git a/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee b/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee index 3a3e7b0d86..abc303d131 100644 --- a/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee @@ -35,8 +35,6 @@ describe "S3PersistorManagerTests", -> "logger-sharelatex": log:-> err:-> - "./Errors": @Errors = - NotFoundError: sinon.stub() @key = "my/key" @bucketName = "my-bucket" @error = "my errror" @@ -84,35 +82,31 @@ describe "S3PersistorManagerTests", -> describe "when the file doesn't exist", -> beforeEach -> - @fakeResponse = - statusCode: 404 + @bucketName = "mybucket" + @key = "somekey" + @fakeResponse.statusCode = 404 it "should produce a NotFoundError", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback expect(stream).to.equal null expect(err).to.not.equal null - expect(err instanceof @Errors.NotFoundError).to.equal true + expect(err.name == "NotFoundError").to.equal true done() it "should have bucket and key in the Error message", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback - error_message = @Errors.NotFoundError.lastCall.args[0] - expect(error_message).to.not.equal null - error_message.should.match(new RegExp(".*#{@bucketName}.*")) - error_message.should.match(new RegExp(".*#{@key}.*")) + expect(err.message).to.not.equal null + err.message.should.match(new RegExp(".*#{@bucketName}.*")) + err.message.should.match(new RegExp(".*#{@key}.*")) done() describe "when the S3 service produces an error", -> - beforeEach -> - @fakeResponse = - statusCode: 500 it "should produce an error", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback expect(stream).to.equal null expect(err).to.not.equal null expect(err instanceof Error).to.equal true - @Errors.NotFoundError.called.should.equal false done() describe "sendFile", -> From 6657b6c1dc9f6ac11fbd2c57fc7b9c951f4379d7 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 11:13:52 +0100 Subject: [PATCH 34/69] make all needed directories in install deps --- services/filestore/install_deps.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/services/filestore/install_deps.sh b/services/filestore/install_deps.sh index 52b6bde59d..2bf275b1cb 100755 --- a/services/filestore/install_deps.sh +++ b/services/filestore/install_deps.sh @@ -7,8 +7,9 @@ wget -q https://s3.amazonaws.com/sl-public-dev-assets/ghostscript-9.15.tar.gz -O cd /tmp tar -xvf /tmp/ghostscript-9.15.tar.gz cd /tmp/ghostscript-9.15 && ./configure && make && make install - npm rebuild +mkdir /app/user_files/ /app/uploads/ /app/template_files/ +chown -R node:node /app/user_files chown -R node:node /app/uploads - -echo gs --version \ No newline at end of file +chown -R node:node /app/template_files +ls -al /app \ No newline at end of file From 8efd562eb3a5f5af9df9dfed6a7cbd21226e7d1c Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 13:40:03 +0100 Subject: [PATCH 35/69] fix broken acceptence tests, bad quotes in file path --- services/filestore/app/coffee/FileHandler.coffee | 2 ++ .../filestore/test/acceptance/coffee/SendingFileTest.coffee | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/services/filestore/app/coffee/FileHandler.coffee b/services/filestore/app/coffee/FileHandler.coffee index 93cad984dd..442ac13cab 100644 --- a/services/filestore/app/coffee/FileHandler.coffee +++ b/services/filestore/app/coffee/FileHandler.coffee @@ -76,6 +76,8 @@ module.exports = LocalFileWriter.deleteFile originalFsPath, -> callback(err, destPath, originalFsPath) + logger.log opts:opts, "converting file depending on opts" + if opts.format? FileConverter.convert originalFsPath, opts.format, done else if opts.style == "thumbnail" diff --git a/services/filestore/test/acceptance/coffee/SendingFileTest.coffee b/services/filestore/test/acceptance/coffee/SendingFileTest.coffee index 1b20e6b44f..cee06e82a3 100644 --- a/services/filestore/test/acceptance/coffee/SendingFileTest.coffee +++ b/services/filestore/test/acceptance/coffee/SendingFileTest.coffee @@ -136,18 +136,18 @@ describe "Filestore", -> describe "getting the preview image", -> beforeEach -> - @fileUrl = @fileUrl + '?style=preview' + @previewFileUrl = "#{@fileUrl}?style=preview" it "should not time out", (done) -> @timeout(1000 * 20) - request.get @fileUrl, (err, response, body) => + request.get @previewFileUrl, (err, response, body) => expect(response).to.not.equal null done() it "should respond with image data", (done) -> # note: this test relies of the imagemagick conversion working @timeout(1000 * 20) - request.get @fileUrl, (err, response, body) => + request.get @previewFileUrl, (err, response, body) => expect(response.statusCode).to.equal 200 expect(body.length).to.be.greaterThan 400 done() From ee81a6af00ecf888f70170ae8cbc81030497a242 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 15:00:32 +0100 Subject: [PATCH 36/69] updated mocha and added --exit back in --- services/filestore/npm-shrinkwrap.json | 2268 +++++++++++++++--------- services/filestore/package.json | 6 +- 2 files changed, 1433 insertions(+), 841 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index a0bcfff9ff..6f8d9e3f17 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -5,1021 +5,1396 @@ "requires": true, "dependencies": { "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" }, "accept-encoding": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz", + "version": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz", "integrity": "sha1-XdiLjfcfHcLlzGuVZezOHjmaMz4=" }, + "ajv": { + "version": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "fast-json-stable-stringify": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" + } + }, "ansi-styles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", "dev": true }, "argparse": { - "version": "0.1.16", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "version": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "dev": true, "requires": { - "underscore": "1.5.2", - "underscore.string": "2.4.0" + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz" }, "dependencies": { + "underscore": { + "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", + "dev": true + }, "underscore.string": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", + "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", "dev": true } } }, + "asn1": { + "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=" }, "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, + "asynckit": { + "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, "aws-sdk": { - "version": "2.116.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.116.0.tgz", + "version": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.116.0.tgz", "integrity": "sha1-2UpsZnvuY++PvZRBzMIitTn3y+w=", "requires": { - "buffer": "4.9.1", - "crypto-browserify": "1.0.9", - "events": "1.1.1", - "jmespath": "0.15.0", - "querystring": "0.2.0", - "sax": "1.2.1", - "url": "0.10.3", - "uuid": "3.0.1", - "xml2js": "0.4.17", - "xmlbuilder": "4.2.1" + "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "crypto-browserify": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "jmespath": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "sax": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "url": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "xml2js": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "xmlbuilder": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz" }, "dependencies": { "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" } } }, "aws-sign": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", + "version": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", "integrity": "sha1-xVAThWyBlOyFSgy+yQqrWgTOOsU=" }, + "aws-sign2": { + "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "integrity": "sha1-1NDpudv8p3vwjusKikcVUP454ok=", + "dev": true + }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==" + "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=" }, "batch": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", + "version": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", "integrity": "sha1-/S4Fp6XWlrTbkxQBPihdj/NVfsM=" }, + "bcrypt-pbkdf": { + "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + } + }, "best-encoding": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", + "version": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", "integrity": "sha1-GVIT2rysBFgYuAe3ox+Dn63cl04=", "requires": { - "accept-encoding": "0.1.0" + "accept-encoding": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz" } }, "bl": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", + "version": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", "integrity": "sha1-P7BnBgKsKHjrdw3CA58YNr5irls=", "requires": { - "readable-stream": "1.0.34" + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } + } + } + }, + "body-parser": { + "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz" + }, + "dependencies": { + "bytes": { + "version": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + } + }, + "iconv-lite": { + "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha1-KXhx9jvlB63Pv8pxXQzQ7thOmmM=", + "requires": { + "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + } + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + }, + "raw-body": { + "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha1-GzJOzmtXBuFThVvBFIxlu39uoMM=", + "requires": { + "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } } }, "boom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", + "version": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", "integrity": "sha1-yM2wQUNZEnQWKMBE7Mcy0dF8Ceo=", "requires": { - "hoek": "0.7.6" + "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" } }, "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" } }, "broadway": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "version": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=", "dev": true, "requires": { - "cliff": "0.1.9", - "eventemitter2": "0.4.14", - "nconf": "0.6.9", - "utile": "0.2.1", - "winston": "0.8.0" + "cliff": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", + "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "nconf": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "winston": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz" }, "dependencies": { "cliff": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", + "version": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=", "dev": true, "requires": { - "colors": "0.6.2", - "eyes": "0.1.8", - "winston": "0.8.0" + "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "winston": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz" } }, "winston": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", + "version": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=", "dev": true, "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "pkginfo": "0.3.1", - "stack-trace": "0.0.7" + "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "cycle": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz" } } } }, + "browser-stdout": { + "version": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=" + }, "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.1", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" } }, "buffer-crc32": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "version": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", "integrity": "sha1-vj5TgvwCttYySVasGvmKqYsIU0w=" }, "bunyan": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz", + "version": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz", "integrity": "sha1-xDM3p7Dc5mPYIjNnurBRlbkLR2o=", "requires": { - "dtrace-provider": "0.4.0", - "mv": "2.1.1", - "safe-json-stringify": "1.0.4" + "dtrace-provider": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.4.0.tgz", + "mv": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "safe-json-stringify": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz" } }, "bytes": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", + "version": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", "integrity": "sha1-VVsIq8sGP4l1kFMCUj5M1P/f3zE=" }, "caseless": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", + "version": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", "integrity": "sha1-U06XkWOH07cGtk/eu6xGQ4RQk08=" }, "chai": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", + "version": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.5" + "assertion-error": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "check-error": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "deep-eql": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "get-func-name": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "pathval": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz" } }, "chalk": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "version": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", "dev": true, "requires": { - "ansi-styles": "1.0.0", - "has-color": "0.1.7", - "strip-ansi": "0.1.1" + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "has-color": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" } }, "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "version": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" }, "cliff": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", + "version": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", "dev": true, "requires": { - "colors": "1.0.3", - "eyes": "0.1.8", - "winston": "0.8.3" + "colors": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" }, "dependencies": { "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "version": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true } } }, + "co": { + "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, "coffee-script": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz", + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz", "integrity": "sha1-YplqhheAx15tUGnROCJyO3NAS/w=", "requires": { - "mkdirp": "0.3.5" + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" } }, "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "version": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", "dev": true }, "combined-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", "requires": { - "delayed-stream": "0.0.5" + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" } }, "commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz", + "version": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz", "integrity": "sha1-io8w7GcKb91kr1LxkUuQfXnq1bU=", "requires": { - "keypress": "0.1.0" + "keypress": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz" } }, "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "configstore": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", + "version": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", "integrity": "sha1-JeTBbDdoq/dcWmW8YXYfSVBVtFk=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "js-yaml": "3.10.0", - "mkdirp": "0.3.5", - "object-assign": "2.1.1", - "osenv": "0.1.4", - "user-home": "1.1.1", - "uuid": "2.0.3", - "xdg-basedir": "1.0.1" + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz" }, "dependencies": { "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" } }, "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha1-RJnt3NERDgshi6zy+n9/WfVcqAQ=", "dev": true }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", + "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "natives": "https://registry.npmjs.org/natives/-/natives-1.1.3.tgz" + } + }, + "js-yaml": { + "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha1-LnhEFka9RoLpY/IrbpKCPDCcYtw=", + "dev": true, + "requires": { + "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "esprima": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz" + } + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } } }, "connect": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz", + "version": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz", "integrity": "sha1-Mdj6DcrN8ZCNgivSkjvootKn7Zo=", "requires": { - "batch": "0.5.0", - "buffer-crc32": "0.2.1", - "bytes": "0.2.1", - "cookie": "0.1.0", - "cookie-signature": "1.0.1", - "debug": "0.8.1", - "fresh": "0.2.0", - "methods": "0.1.0", - "multiparty": "2.2.0", - "negotiator": "0.3.0", - "pause": "0.0.1", - "qs": "0.6.6", - "raw-body": "1.1.2", - "send": "0.1.4", - "uid2": "0.0.3" + "batch": "https://registry.npmjs.org/batch/-/batch-0.5.0.tgz", + "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "bytes": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz", + "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", + "debug": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "methods": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", + "multiparty": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", + "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", + "pause": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz", + "send": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", + "uid2": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz" } }, + "content-type": { + "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" + }, "cookie": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "version": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", "integrity": "sha1-kOtGndzpBchm3mh+/EMTHYgB+dA=" }, "cookie-jar": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", + "version": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", "integrity": "sha1-ZOzAasl423leS1KQy+SLo3gUAPo=" }, "cookie-signature": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", + "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", "integrity": "sha1-ROByFIrwHm6OJK+/EmkNaK5pjss=" }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cryptiles": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", + "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", "integrity": "sha1-GlVnNPBtJLo0hirpy55wmjr7/xw=", "requires": { - "boom": "0.3.8" + "boom": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" } }, "crypto-browserify": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "version": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" }, "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "version": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, + "dashdash": { + "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + }, "dateformat": { - "version": "1.0.2-1.2.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", "dev": true }, "debug": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "version": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", "integrity": "sha1-IP9NJvXkIstoobrLu2EDmtjBwTA=" }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", "requires": { - "type-detect": "4.0.5" + "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz" } }, "deep-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "version": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", "dev": true }, "delayed-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" }, + "depd": { + "version": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, "diff": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", - "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=", - "dev": true + "version": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", + "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=" }, "director": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", + "version": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=", "dev": true }, "dtrace-provider": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.4.0.tgz", + "version": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.4.0.tgz", "integrity": "sha1-C2e8HMd+eb+IuHrSBmT0p1POPyY=", "optional": true, "requires": { - "nan": "1.5.3" + "nan": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" } }, + "ecc-jsbn": { + "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + } + }, + "ee-first": { + "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", "dev": true }, "event-stream": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", + "version": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=", "dev": true, "requires": { - "optimist": "0.2.8" + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz" }, "dependencies": { "optimist": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", + "version": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", "dev": true, "requires": { - "wordwrap": "0.0.3" + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" } } } }, "eventemitter2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "version": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", "dev": true }, "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, "express": { - "version": "3.4.8", - "resolved": "https://registry.npmjs.org/express/-/express-3.4.8.tgz", + "version": "https://registry.npmjs.org/express/-/express-3.4.8.tgz", "integrity": "sha1-qnqJht4HBTM39Lxe2aZFPZzI4uE=", "requires": { - "buffer-crc32": "0.2.1", - "commander": "1.3.2", - "connect": "2.12.0", - "cookie": "0.1.0", - "cookie-signature": "1.0.1", - "debug": "0.8.1", - "fresh": "0.2.0", - "merge-descriptors": "0.0.1", - "methods": "0.1.0", - "mkdirp": "0.3.5", - "range-parser": "0.0.4", - "send": "0.1.4" + "buffer-crc32": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.1.tgz", + "commander": "https://registry.npmjs.org/commander/-/commander-1.3.2.tgz", + "connect": "https://registry.npmjs.org/connect/-/connect-2.12.0.tgz", + "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.1.tgz", + "debug": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz", + "methods": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "send": "https://registry.npmjs.org/send/-/send-0.1.4.tgz" }, "dependencies": { "range-parser": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "version": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=" } } }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extsprintf": { + "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "version": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, + "fast-deep-equal": { + "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, "faye-websocket": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", + "version": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=", "dev": true }, "findup-sync": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", "dev": true, "requires": { - "glob": "6.0.4", - "lodash": "4.17.4" + "glob": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" + }, + "dependencies": { + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" + } + }, + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "dependencies": { + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + } } }, "flatiron": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", + "version": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=", "dev": true, "requires": { - "broadway": "0.3.6", - "director": "1.2.7", - "optimist": "0.6.0", - "prompt": "0.2.14" + "broadway": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "director": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "prompt": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" }, "dependencies": { "optimist": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" } } } }, "forever": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz", + "version": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz", "integrity": "sha1-6Tsr2UxXBavBmxXlTDEz1puinGs=", "dev": true, "requires": { - "cliff": "0.1.10", - "colors": "0.6.2", - "flatiron": "0.4.3", - "forever-monitor": "1.5.2", - "nconf": "0.6.9", - "nssocket": "0.5.3", - "optimist": "0.6.1", - "timespan": "2.3.0", - "utile": "0.2.1", - "winston": "0.8.3" + "cliff": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", + "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "flatiron": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", + "forever-monitor": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", + "nconf": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "nssocket": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "timespan": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" } }, "forever-agent": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", + "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", "integrity": "sha1-4cJcetROCcOPIzh2x2/MJP+EOx8=" }, "forever-monitor": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", + "version": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", "integrity": "sha1-J5OI36k7CFNj1rKKgj7wpq7rNdc=", "dev": true, "requires": { - "broadway": "0.3.6", - "minimatch": "3.0.4", - "ps-tree": "0.0.3", - "utile": "0.2.1", - "watch": "0.13.0" + "broadway": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "ps-tree": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "watch": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz" + }, + "dependencies": { + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", + "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "dependencies": { + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + } } }, "form-data": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", + "version": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", "integrity": "sha1-2zRaU3jYau6x7V1VO4aawZLS9e0=", "requires": { - "async": "0.2.10", - "combined-stream": "0.0.7", - "mime": "1.2.11" + "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } }, "formatio": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "version": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", "requires": { - "samsam": "1.3.0" + "samsam": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz" } }, "fresh": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "version": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", "integrity": "sha1-v9lALPPfEsSkwxDHn5mj3eE9NKc=" }, "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1" + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" } }, + "fs.realpath": { + "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, "gaze": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", + "version": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", "integrity": "sha1-5Tj0/15P5kj0c6l+HrslPS3hJ7U=", "dev": true, "requires": { - "globule": "0.1.0" + "globule": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz" } }, "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "version": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, + "getpass": { + "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + }, "gettemporaryfilepath": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz", + "version": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz", "integrity": "sha1-uKLHAUu1zUFTTpg7XKFgo3RwhGk=" }, "glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "optional": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" } }, "globule": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "version": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", "dev": true, "requires": { - "glob": "6.0.4", - "lodash": "4.17.4", - "minimatch": "3.0.4" + "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + }, + "dependencies": { + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + } + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "dependencies": { + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + } } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "growl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", - "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=", - "dev": true + "version": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", + "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=" }, "grunt": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz", + "version": "https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz", "integrity": "sha1-1YkuVoCt2e0b796apjXPRrj0lyk=", "dev": true, "requires": { - "async": "0.2.10", - "coffee-script": "1.7.1", - "colors": "0.6.2", - "dateformat": "1.0.2-1.2.3", - "eventemitter2": "0.4.14", - "findup-sync": "0.1.3", - "glob": "6.0.4", - "hooker": "0.2.3", - "iconv-lite": "0.2.11", - "js-yaml": "2.0.5", - "lodash": "4.17.4", - "minimatch": "3.0.4", - "nopt": "1.0.10", - "rimraf": "2.2.8", - "underscore.string": "2.2.1", - "which": "1.0.9" + "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", + "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", + "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz", + "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz" + }, + "dependencies": { + "async": { + "version": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", + "dev": true + }, + "coffee-script": { + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", + "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", + "dev": true + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + } + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", + "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "dependencies": { + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + }, + "rimraf": { + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz", + "integrity": "sha1-9QopZecUTpr9mYmC8V33BnMPVqk=", + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz" + }, + "dependencies": { + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz", + "integrity": "sha1-BweNtfY3f2Mh/Oqu30l94STclGU=", + "dev": true, + "optional": true + } + } + } } }, "grunt-bunyan": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", + "version": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", "integrity": "sha1-aCnXbgGZQ9owQTk2MaNuKsgpsWw=", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" + }, + "dependencies": { + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + } } }, "grunt-concurrent": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-0.4.2.tgz", + "version": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-0.4.2.tgz", "integrity": "sha1-Mf2Qbm4X2oTXgLLOZNn4QGX3PgY=", "dev": true, "requires": { - "async": "0.2.10", - "lpad": "0.1.0" + "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "lpad": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz" } }, "grunt-contrib-clean": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz", + "version": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz", "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=", "dev": true, "requires": { - "rimraf": "2.2.8" + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" } }, "grunt-contrib-coffee": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.7.0.tgz", + "version": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.7.0.tgz", "integrity": "sha1-ixIme3TnM4sfKcW4txj7n4mYLxM=", "dev": true, "requires": { - "coffee-script": "1.7.1" + "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz" + }, + "dependencies": { + "coffee-script": { + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz", + "integrity": "sha1-Y1XTLPGwTN/2tITl5xF4Ky8MOb4=", + "dev": true + } } }, "grunt-contrib-requirejs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.1.tgz", + "version": "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.1.tgz", "integrity": "sha1-hiuhZxQbio82r1RE/qsycruM9L0=", "dev": true, "requires": { - "requirejs": "2.1.22" + "requirejs": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz" } }, "grunt-contrib-watch": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.5.3.tgz", + "version": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.5.3.tgz", "integrity": "sha1-fZ61Rl1Qb6FPqspH5uh5CoLBye4=", "dev": true, "requires": { - "gaze": "0.4.3", - "tiny-lr": "0.0.4" + "gaze": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", + "tiny-lr": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz" } }, "grunt-execute": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz", + "version": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz", "integrity": "sha1-TpRf5XlZzA3neZCDtrQq7ZYWNQo=", "dev": true }, "grunt-forever": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/grunt-forever/-/grunt-forever-0.4.7.tgz", + "version": "https://registry.npmjs.org/grunt-forever/-/grunt-forever-0.4.7.tgz", "integrity": "sha1-dHDb4a2hFFAhZKTCoAOHXfj+EzA=", "dev": true, "requires": { - "forever": "0.14.2" + "forever": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz" } }, "grunt-mocha-test": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.8.2.tgz", + "version": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.8.2.tgz", "integrity": "sha1-emGEuYhg0Phb3qrWvqob199bvus=", - "dev": true, "requires": { - "mocha": "1.14.0" + "mocha": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz" + }, + "dependencies": { + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz", + "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=" + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", + "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=", + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" + } + }, + "graceful-fs": { + "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", + "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=" + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + }, + "mocha": { + "version": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz", + "integrity": "sha1-cT223FAAGRqdA1gZXQkIeQ7LYVc=", + "requires": { + "commander": "https://registry.npmjs.org/commander/-/commander-2.0.0.tgz", + "debug": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "diff": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", + "glob": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", + "growl": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", + "jade": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + } + } } }, "grunt-nodemon": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/grunt-nodemon/-/grunt-nodemon-0.2.1.tgz", + "version": "https://registry.npmjs.org/grunt-nodemon/-/grunt-nodemon-0.2.1.tgz", "integrity": "sha1-G48kiVKSCX3IFNFgOpfo/sHJJPM=", "dev": true, "requires": { - "nodemon": "1.0.20" + "nodemon": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz" + } + }, + "har-schema": { + "version": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" } }, "has-color": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "version": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", "dev": true }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "version": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" }, "hawk": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", + "version": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", "integrity": "sha1-mzYd7pWpMWQObVBOBWCaj8OsRdI=", "requires": { - "boom": "0.3.8", - "cryptiles": "0.1.3", - "hoek": "0.7.6", - "sntp": "0.1.4" + "boom": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", + "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", + "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", + "sntp": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" } }, + "he": { + "version": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, "heapdump": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz", + "version": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz", "integrity": "sha1-A8dOsN9dZ74Jgug0KbqcnSs7f3g=" }, "hoek": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", + "version": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", "integrity": "sha1-YPvZBFV1Qc0rh5Wr8wihs3cOFVo=" }, "hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", + "version": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", "dev": true }, + "http-errors": { + "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + } + }, + "http-signature": { + "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz" + } + }, "i": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "version": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", "dev": true }, "iconv-lite": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", + "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", "dev": true }, "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" }, "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "version": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "dev": true + }, + "is-typedarray": { + "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "jade": { - "version": "0.26.3", - "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "version": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", - "dev": true, "requires": { - "commander": "1.3.2", - "mkdirp": "0.3.5" + "commander": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" + }, + "dependencies": { + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=" + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + } } }, "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "version": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "js-yaml": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", + "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", "dev": true, "requires": { - "argparse": "0.1.16", - "esprima": "1.0.4" + "argparse": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", + "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" } }, + "jsbn": { + "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "json-schema": { + "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, "json-stringify-safe": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", + "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", "integrity": "sha1-nbew5TDH8onF6MhDKvGRwv91pbM=" }, "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + } + }, + "jsprim": { + "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" } }, "just-extend": { - "version": "1.1.27", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", - "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==" + "version": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "integrity": "sha1-7G55QQ/5FORyZSq/oOYDwD1g6QU=" }, "keypress": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", + "version": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=" }, "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "version": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" } }, "knox": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", + "version": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=", "requires": { - "debug": "1.0.4", - "mime": "1.3.4", - "once": "1.4.0", - "stream-counter": "1.0.0", - "xml2js": "0.4.17" + "debug": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "stream-counter": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", + "xml2js": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz" }, "dependencies": { "debug": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", + "version": "https://registry.npmjs.org/debug/-/debug-1.0.4.tgz", "integrity": "sha1-W5wla9VLbsAigxdvqKDt5tFUy/g=", "requires": { - "ms": "0.6.2" + "ms": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz" }, "dependencies": { "ms": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", + "version": "https://registry.npmjs.org/ms/-/ms-0.6.2.tgz", "integrity": "sha1-2JwhJMb9wTU9Zai3e/GqxLGTcIw=" } } }, "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "version": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" }, "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" }, "dependencies": { "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, "stream-counter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", + "version": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" }, "xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "version": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", "requires": { - "sax": "1.2.2", - "xmlbuilder": "4.2.1" + "sax": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", + "xmlbuilder": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz" }, "dependencies": { "sax": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", + "version": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=" }, "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "version": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", "requires": { - "lodash": "4.17.4" + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" }, "dependencies": { "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" } } @@ -1029,555 +1404,607 @@ } }, "lazy": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "version": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", "dev": true }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "version": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, "logger-sharelatex": { "version": "git+https://github.com/sharelatex/logger-sharelatex.git#5a3ea8e655f23e76a77bbc207c012d3fc944c8d8", + "integrity": "sha1-n2Pr/oN5cipmntO9qeX7OR5Ezy4=", "requires": { - "bunyan": "1.3.6", - "coffee-script": "1.4.0", - "raven": "0.8.1" + "bunyan": "https://registry.npmjs.org/bunyan/-/bunyan-1.3.6.tgz", + "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz", + "raven": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz" }, "dependencies": { "coffee-script": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz", + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.4.0.tgz", "integrity": "sha1-XjvIqsJsAajie/EHcixWVfWtfTY=" } } }, "lolex": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", - "integrity": "sha512-mQuW55GhduF3ppo+ZRUTz1PRjEh1hS5BbqU7d8D0ez2OKxHDod7StPPeAVKisZR5aLkHZjdGWSL42LSONUJsZw==" + "version": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", + "integrity": "sha1-PSMZiURx6glQ72RpLq0qUxjP82I=" }, "lpad": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz", + "version": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz", "integrity": "sha1-5MYMKROTIcWXDeSTtJauDXdM0qc=", "dev": true }, + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, "lsmod": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz", + "version": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz", "integrity": "sha1-F+E9ThrpF1DqVlNUjNiecUetAkQ=" }, "lynx": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", + "version": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", "integrity": "sha1-Mxjc7xaQi4KG6Bisz9sxzXQkj50=", "requires": { - "mersenne": "0.0.4", - "statsd-parser": "0.0.4" + "mersenne": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", + "statsd-parser": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz" } }, + "media-typer": { + "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, "merge-descriptors": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz", + "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.1.tgz", "integrity": "sha1-L/CYDJJM+B0LXR+2ARd8uLtWwNA=" }, "mersenne": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", + "version": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", "integrity": "sha1-QB/ex+whzbngPNPTAhOY2iGycIU=" }, "methods": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", + "version": "https://registry.npmjs.org/methods/-/methods-0.1.0.tgz", "integrity": "sha1-M11Cnu/SG3us8unJIqjSvRSjDk8=" }, "metrics-sharelatex": { "version": "git+https://github.com/sharelatex/metrics-sharelatex.git#080c4aeb696edcd5d6d86f202f2c528f0661d7a6", + "integrity": "sha1-t7F6ccpirqby9zwCId81YpksE1M=", "requires": { - "coffee-script": "1.6.0", - "lynx": "0.1.1", - "underscore": "1.6.0" + "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", + "lynx": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "dependencies": { "coffee-script": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" }, "underscore": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "version": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" } } }, "mime": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "mime-db": { + "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s=" + }, + "mime-types": { + "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=", "requires": { - "brace-expansion": "1.1.8" + "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + } + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz" } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" }, "mocha": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz", - "integrity": "sha1-cT223FAAGRqdA1gZXQkIeQ7LYVc=", - "dev": true, + "version": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", "requires": { - "commander": "1.3.2", - "debug": "0.8.1", - "diff": "1.0.7", - "glob": "6.0.4", - "growl": "1.7.0", - "jade": "0.26.3", - "mkdirp": "0.3.5" + "browser-stdout": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "commander": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "debug": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "diff": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "growl": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "he": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz" + }, + "dependencies": { + "commander": { + "version": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + } + }, + "diff": { + "version": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + }, + "glob": { + "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "requires": { + "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + } + }, + "growl": { + "version": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=" + }, + "has-flag": { + "version": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + }, + "supports-color": { + "version": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "requires": { + "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + } + } } }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, "multiparty": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", + "version": "https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tgz", "integrity": "sha1-pWfCrwAK0i3I8qZT2Rl4rh9TFvQ=", "requires": { - "readable-stream": "1.1.14", - "stream-counter": "0.2.0" + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "stream-counter": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz" } }, "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "version": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", "optional": true, "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "ncp": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz" }, "dependencies": { "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "optional": true, "requires": { - "minimist": "0.0.8" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } }, "rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", "optional": true, "requires": { - "glob": "6.0.4" + "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" } } } }, "nan": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz", + "version": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz", "integrity": "sha1-TNDswTO3sHAKSSpkat1CeuijGOs=", "optional": true }, + "natives": { + "version": "https://registry.npmjs.org/natives/-/natives-1.1.3.tgz", + "integrity": "sha1-RKV5vmRQfqLW7RygSpQVkVz3VVg=", + "dev": true + }, "nconf": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", + "version": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=", "dev": true, "requires": { - "async": "0.2.10", - "ini": "1.3.5", - "optimist": "0.6.0" + "async": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", + "ini": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz" }, "dependencies": { + "async": { + "version": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", + "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=", + "dev": true + }, "optimist": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", + "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" } } } }, "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=" + "version": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true }, "negotiator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", + "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.3.0.tgz", "integrity": "sha1-cG1pLv7d9XTVfqn7GriaT6fuj2A=" }, "nise": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", - "integrity": "sha512-q9jXh3UNsMV28KeqI43ILz5+c3l+RiNW8mhurEwCKckuHQbL+hTJIKKTiUlCPKlgQ/OukFvSnKB/Jk3+sFbkGA==", + "version": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", + "integrity": "sha1-B51srbvLErow448cmZ82rU1rqlM=", "requires": { - "formatio": "1.2.0", - "just-extend": "1.1.27", - "lolex": "1.6.0", - "path-to-regexp": "1.7.0", - "text-encoding": "0.6.4" + "formatio": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "just-extend": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", + "lolex": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "text-encoding": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" }, "dependencies": { "lolex": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", + "version": "https://registry.npmjs.org/lolex/-/lolex-1.6.0.tgz", "integrity": "sha1-OpoCg0UqR9dDnnJzG54H1zhuSfY=" } } }, "node-transloadit": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/node-transloadit/-/node-transloadit-0.0.4.tgz", + "version": "https://registry.npmjs.org/node-transloadit/-/node-transloadit-0.0.4.tgz", "integrity": "sha1-4ZoHheON94NblO2AANHjXmg7zsE=", "requires": { - "request": "2.16.6", - "underscore": "1.2.1" + "request": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz" }, "dependencies": { "qs": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "version": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=" }, "request": { - "version": "2.16.6", - "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", + "version": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", "integrity": "sha1-hy/kRa5y3iZrN4edatfclI+gHK0=", "requires": { - "aws-sign": "0.2.0", - "cookie-jar": "0.2.0", - "forever-agent": "0.2.0", - "form-data": "0.0.10", - "hawk": "0.10.2", - "json-stringify-safe": "3.0.0", - "mime": "1.2.11", - "node-uuid": "1.4.8", - "oauth-sign": "0.2.0", - "qs": "0.5.6", - "tunnel-agent": "0.2.0" + "aws-sign": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.0.tgz", + "cookie-jar": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", + "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", + "hawk": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" } }, "underscore": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", + "version": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=" } } }, "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" }, "nodemon": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz", + "version": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz", "integrity": "sha1-vBOKNwaMt426UIhbYkl6/f7u3aQ=", "dev": true, "requires": { - "minimatch": "3.0.4", - "ps-tree": "0.0.3", - "update-notifier": "0.1.10" + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "ps-tree": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "update-notifier": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz" + }, + "dependencies": { + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + }, + "dependencies": { + "lru-cache": { + "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + } + } + } } }, "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" } }, "noptify": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "version": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", - "dev": true, "requires": { - "nopt": "2.0.0" + "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz" }, "dependencies": { "nopt": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", + "version": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", - "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" } } } }, "nssocket": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", + "version": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", "integrity": "sha1-iDyi7GBfXtZKTVGQsmJUAZKPj40=", "dev": true, "requires": { - "eventemitter2": "0.4.14", - "lazy": "1.0.11" + "eventemitter2": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "lazy": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz" } }, "oauth-sign": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", + "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", "integrity": "sha1-oOahcV2u0GLzIrYit/5a/RA1tuI=" }, "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", + "version": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", "dev": true }, + "on-finished": { + "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + }, "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" } }, "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.3" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" } }, "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" } }, "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-to-regexp": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", "requires": { - "isarray": "0.0.1" + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" } } }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "version": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "pause": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", + "version": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" }, + "performance-now": { + "version": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, "pkginfo": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "version": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", "dev": true }, "pngcrush": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz", + "version": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz", "integrity": "sha1-v2dW6s2h+rNJwHdo6AXMEA0o+Tc=", "requires": { - "gettemporaryfilepath": "0.0.1" + "gettemporaryfilepath": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz" } }, "prompt": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", + "version": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", "dev": true, "requires": { - "pkginfo": "0.3.1", - "read": "1.0.7", - "revalidator": "0.1.8", - "utile": "0.2.1", - "winston": "0.8.3" + "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "revalidator": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" } }, "ps-tree": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", + "version": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=", "dev": true, "requires": { - "event-stream": "0.5.3" + "event-stream": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz" } }, "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "qs": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", + "version": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz", "integrity": "sha1-bgFQmP9RlouKPIGQAdXyyJvEsQc=" }, "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raven": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz", + "version": "https://registry.npmjs.org/raven/-/raven-0.8.1.tgz", "integrity": "sha1-UVk7tlnHcnjc00gitlq+d7dRuvU=", "requires": { - "cookie": "0.1.0", - "lsmod": "0.0.3", - "node-uuid": "1.4.8", - "stack-trace": "0.0.7" + "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.1.0.tgz", + "lsmod": "https://registry.npmjs.org/lsmod/-/lsmod-0.0.3.tgz", + "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz" } }, "raw-body": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz", + "version": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.2.tgz", "integrity": "sha1-x0swBN6l3v0WlhcRBqx0DsMdYr4=", "requires": { - "bytes": "0.2.1" + "bytes": "https://registry.npmjs.org/bytes/-/bytes-0.2.1.tgz" } }, "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "version": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", "dev": true, "requires": { - "mute-stream": "0.0.7" + "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" } } }, "recluster": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz", + "version": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz", "integrity": "sha1-aKRx3ZC2obl3ZjTPdpZAWutWeJU=" }, "request": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.14.0.tgz", + "version": "https://registry.npmjs.org/request/-/request-2.14.0.tgz", "integrity": "sha1-DYrLsLFMGrguAAt9OB+oyA0afYg=", "requires": { - "form-data": "0.0.7", - "mime": "1.2.9" + "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.0.7.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz" }, "dependencies": { "form-data": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.7.tgz", + "version": "https://registry.npmjs.org/form-data/-/form-data-0.0.7.tgz", "integrity": "sha1-chEYKiaiZs45cQ3IvEqBtwQIWb4=", "requires": { - "async": "0.1.22", - "combined-stream": "0.0.4", - "mime": "1.2.9" + "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz" }, "dependencies": { "async": { - "version": "0.1.22", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", + "version": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=" }, "combined-stream": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz", + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.4.tgz", "integrity": "sha1-LRpDNH2+lRWkonlnMuW4hHOECyI=", "requires": { - "delayed-stream": "0.0.5" + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" }, "dependencies": { "delayed-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" } } @@ -1585,352 +2012,517 @@ } }, "mime": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz", + "version": "https://registry.npmjs.org/mime/-/mime-1.2.9.tgz", "integrity": "sha1-AJzUCGe9Nd5SGzuWbwTi+NTRPQk=" } } }, "require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "version": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" }, "requirejs": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz", + "version": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz", "integrity": "sha1-3Xj9LTQYDA1ixyS1uK68BmTgNm8=", "dev": true }, "response": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/response/-/response-0.14.0.tgz", + "version": "https://registry.npmjs.org/response/-/response-0.14.0.tgz", "integrity": "sha1-BmNS/z5rAm0EdYCUB2Y7Rob9JpY=", "requires": { - "best-encoding": "0.1.1", - "bl": "0.7.0", - "caseless": "0.3.0", - "mime": "1.2.11" + "best-encoding": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", + "bl": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", + "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } }, "revalidator": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", + "version": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", "dev": true }, "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" }, + "safe-buffer": { + "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, "safe-json-stringify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", + "version": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.4.tgz", "integrity": "sha1-gaCY9Efku8P/MxKiQ1IbwGDvWRE=", "optional": true }, + "safer-buffer": { + "version": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + }, "samsam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==" + "version": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", + "integrity": "sha1-jR2TUOJWItow3j5EumkrUiGrfFA=" }, "sandboxed-module": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", + "version": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", "integrity": "sha1-x+VFkzm7y6KMUwPusz9ug4e/upY=", "requires": { - "require-like": "0.1.2", - "stack-trace": "0.0.9" + "require-like": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" }, "dependencies": { "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "version": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" } } }, "sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "version": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, "semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "version": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", "dev": true }, "send": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", + "version": "https://registry.npmjs.org/send/-/send-0.1.4.tgz", "integrity": "sha1-vnDY0b4B3mGCGvE3gLUDRaT3Gr0=", "requires": { - "debug": "0.8.1", - "fresh": "0.2.0", - "mime": "1.2.11", - "range-parser": "0.0.4" + "debug": "https://registry.npmjs.org/debug/-/debug-0.8.1.tgz", + "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.2.0.tgz", + "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz" }, "dependencies": { "range-parser": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", + "version": "https://registry.npmjs.org/range-parser/-/range-parser-0.0.4.tgz", "integrity": "sha1-wEJ//vUcEKy6B4KkbJYC50T/Ygs=" } } }, + "setprototypeof": { + "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" + }, "settings-sharelatex": { "version": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", + "integrity": "sha1-2Bak3mkaxAvXjqsUtpTJhW6yIgQ=", "requires": { - "coffee-script": "1.6.0" + "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" }, "dependencies": { "coffee-script": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", + "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" } } }, + "sigmund": { + "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, "sinon": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.1.4.tgz", - "integrity": "sha512-ISJZDPf8RS2z4/LAgy1gIimAvF9zg9C9ClQhLTWYWm4HBZjo1WELXlVfkudjdYeN+GtQ2uVBe52m0npIV0gDow==", + "version": "https://registry.npmjs.org/sinon/-/sinon-4.1.4.tgz", + "integrity": "sha1-Nrsje6443fnMktzBsWxR53hbvJw=", "requires": { - "diff": "3.4.0", - "formatio": "1.2.0", - "lodash.get": "4.4.2", - "lolex": "2.3.1", - "nise": "1.2.0", - "supports-color": "4.5.0", - "type-detect": "4.0.5" + "diff": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "formatio": "https://registry.npmjs.org/formatio/-/formatio-1.2.0.tgz", + "lodash.get": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "lolex": "https://registry.npmjs.org/lolex/-/lolex-2.3.1.tgz", + "nise": "https://registry.npmjs.org/nise/-/nise-1.2.0.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz" }, "dependencies": { "diff": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", - "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==" + "version": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha1-sdhVB9rzlkgo3lSzfQ1zumfdpWw=" } } }, "sntp": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz", + "version": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz", "integrity": "sha1-XvSBuVGnspr/30r9fyaDj8ESD4Q=", "requires": { - "hoek": "0.7.6" + "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" } }, "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "sshpk": { + "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", + "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "dev": true, + "requires": { + "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + } + }, "stack-trace": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz", + "version": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz", "integrity": "sha1-xy4Il0T8Nln1CM3ONiGvVjTsD/8=" }, "statsd-parser": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz", + "version": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz", "integrity": "sha1-y9JDlTzELv/VSLXSI4jtaJ7GOb0=" }, + "statuses": { + "version": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, "stream-buffers": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", + "version": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", "integrity": "sha1-GBwI1bs2kARfaUAbmuanoM8zE/w=" }, "stream-counter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", + "version": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", "integrity": "sha1-3tJmVWMZyLDiIoErnPOyb6fZR94=", "requires": { - "readable-stream": "1.1.14" + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "strip-ansi": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", "dev": true }, "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "version": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "requires": { - "has-flag": "2.0.0" + "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz" } }, "text-encoding": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", + "version": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=" }, "timespan": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", + "version": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", "dev": true }, "tiny-lr": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz", + "version": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz", "integrity": "sha1-gGGFR/Y/aX0Fy0DEwsSwg1Ia77Y=", "dev": true, "requires": { - "debug": "0.8.1", - "faye-websocket": "0.4.4", - "noptify": "0.0.3", - "qs": "0.6.6" + "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "faye-websocket": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", + "noptify": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" + }, + "dependencies": { + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + }, + "nopt": { + "version": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", + "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", + "dev": true, + "requires": { + "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + } + }, + "noptify": { + "version": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", + "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", + "dev": true, + "requires": { + "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz" + } + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", + "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=", + "dev": true + } + } + }, + "tough-cookie": { + "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", + "dev": true, + "requires": { + "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + }, + "dependencies": { + "punycode": { + "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "tunnel-agent": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz", + "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz", "integrity": "sha1-aFPCr7GyEJ5FYp5JK9419Fnqaeg=" }, + "tweetnacl": { + "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, "type-detect": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", - "integrity": "sha512-N9IvkQslUGYGC24RkJk1ba99foK6TkwC2FHAEBlQFBP0RxQZS8ZpJuAZcwiY/w9ZJHFQb1aOXBI60OdxhTrwEQ==" + "version": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.5.tgz", + "integrity": "sha1-1w5byB223io4G8rKDG4MvcdjXeI=" + }, + "type-is": { + "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=", + "requires": { + "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + } }, "uid2": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "version": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" }, "underscore": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", + "version": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", "integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg=" }, "underscore.string": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", + "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", "dev": true }, + "unpipe": { + "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, "update-notifier": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz", + "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz", "integrity": "sha1-IVy+EFM2nw1KRPhLUeuny4BIRpU=", "dev": true, "requires": { - "chalk": "0.4.0", - "configstore": "0.3.2", - "request": "2.14.0", - "semver": "2.3.2" + "chalk": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "configstore": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", + "request": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz" + }, + "dependencies": { + "caseless": { + "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "combined-stream": { + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + }, + "delayed-stream": { + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "forever-agent": { + "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + } + }, + "json-stringify-safe": { + "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "oauth-sign": { + "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "qs": { + "version": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true + }, + "request": { + "version": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha1-MvACNc0I1IK00NaNuTqCnA7VdW4=", + "dev": true, + "requires": { + "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz", + "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz" + } + }, + "tunnel-agent": { + "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + } + }, + "uuid": { + "version": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha1-EsUou51Y0LkmXZovbw/ovhf/HxQ=", + "dev": true + } } }, "url": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "version": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" } }, "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", "dev": true }, "utile": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", + "version": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", "dev": true, "requires": { - "async": "0.2.10", - "deep-equal": "1.0.1", - "i": "0.3.6", - "mkdirp": "0.3.5", - "ncp": "2.0.0", - "rimraf": "2.2.8" + "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "deep-equal": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "i": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", + "ncp": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, + "dependencies": { + "ncp": { + "version": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", + "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", + "dev": true + } } }, "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "dev": true }, + "verror": { + "version": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + } + }, "watch": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", + "version": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=", "dev": true, "requires": { - "minimist": "0.0.8" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "dependencies": { + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } } }, "which": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", + "version": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", "dev": true }, "winston": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", + "version": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", "dev": true, "requires": { - "async": "0.2.10", - "colors": "0.6.2", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "pkginfo": "0.3.1", - "stack-trace": "0.0.7" + "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "cycle": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", + "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz" } }, "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "xdg-basedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", + "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=", "dev": true, "requires": { - "user-home": "1.1.1" + "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" } }, "xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "version": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", "requires": { - "sax": "1.2.1", - "xmlbuilder": "4.2.1" + "sax": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "xmlbuilder": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz" } }, "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "version": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", "requires": { - "lodash": "4.17.4" + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" } } } diff --git a/services/filestore/package.json b/services/filestore/package.json index 897d195b63..f290f4598f 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -17,8 +17,8 @@ "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", - "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 $@ test/acceptance/js", - "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js" + "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:unit:_run": "mocha --recursive --exit --reporter spec $@ test/unit/js" }, "dependencies": { "async": "~0.2.10", @@ -41,7 +41,7 @@ "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", "stream-buffers": "~0.2.5", "underscore": "~1.5.2", - "mocha": "^4.0.1", + "mocha": "5.2.0", "body-parser": "^1.2.0" }, "devDependencies": { From 58ab4c72dcd9eae45c8279fd0828010739d3e1f1 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 21 May 2018 15:14:24 +0100 Subject: [PATCH 37/69] update build scripts to 1.1.1 --- services/filestore/.dockerignore | 6 ++++++ services/filestore/Jenkinsfile | 6 +++--- services/filestore/Makefile | 10 +++++----- services/filestore/package.json | 6 +++--- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/services/filestore/.dockerignore b/services/filestore/.dockerignore index a99835353f..386f26df30 100644 --- a/services/filestore/.dockerignore +++ b/services/filestore/.dockerignore @@ -1,3 +1,9 @@ node_modules/* +gitrev +.git +.gitignore +.npm +.nvmrc +nodemon.json app.js **/js/* diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index e1a34a5235..bc9ba0142f 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -22,9 +22,9 @@ pipeline { } stage('Acceptance Tests') { - steps { - sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_acceptance' - } + steps { + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_acceptance' + } } stage('Package and publish build') { diff --git a/services/filestore/Makefile b/services/filestore/Makefile index ef9dd9d63b..dbd5ce92a6 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -20,13 +20,13 @@ clean: rm -rf test/unit/js rm -rf test/acceptance/js -test: test_unit test_acceptance +test: test_unit test_acceptance -test_unit: - @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit +test_unit: + @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit npm run test:unit -- ${MOCHA_ARGS} -test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run - @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance +test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run + @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance npm run test:acceptance -- ${MOCHA_ARGS} test_clean: $(DOCKER_COMPOSE) down -v -t 0 diff --git a/services/filestore/package.json b/services/filestore/package.json index f290f4598f..c0971b67f3 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -17,14 +17,14 @@ "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", - "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", - "test:unit:_run": "mocha --recursive --exit --reporter spec $@ test/unit/js" + "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", + "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js" }, "dependencies": { "async": "~0.2.10", "aws-sdk": "^2.1.39", "coffee-script": "~1.7.1", - "express": "^4.2.0", + "express": "^4.2.0", "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", From ba8a5cf3e13b8cc9a68314142e981409e19457bd Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 22 May 2018 13:45:01 +0100 Subject: [PATCH 38/69] bump to 1.1.3 scripts --- services/filestore/Dockerfile | 5 +++-- services/filestore/Makefile | 10 +++++----- services/filestore/docker-compose.ci.yml | 4 ++-- services/filestore/docker-compose.yml | 4 ++-- services/filestore/package.json | 4 ++-- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index cb700d7ade..f359ac3d6c 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -2,7 +2,8 @@ FROM node:6.9.5 as app WORKDIR /app -COPY package.json package-lock.json /app/ +#wildcard as some files may not be in all repos +COPY package*.json npm-shrink*.json /app/ RUN npm install --quiet @@ -15,7 +16,7 @@ FROM node:6.9.5 COPY --from=app /app /app WORKDIR /app -RUN ./install_deps.sh +RUN chmod 0755 ./install_deps.sh && ./install_deps.sh USER node CMD ["node","app.js"] diff --git a/services/filestore/Makefile b/services/filestore/Makefile index dbd5ce92a6..f940429d87 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.1 +# Version: 1.1.3 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) @@ -22,11 +22,11 @@ clean: test: test_unit test_acceptance -test_unit: - @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit npm run test:unit -- ${MOCHA_ARGS} +test_unit: + @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit -test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run - @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance npm run test:acceptance -- ${MOCHA_ARGS} +test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run + @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance test_clean: $(DOCKER_COMPOSE) down -v -t 0 diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index a1cdf244d9..21c006641e 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.1 +# Version: 1.1.3 version: "2" @@ -23,7 +23,7 @@ services: - redis user: node command: npm run test:acceptance:_run - + redis: image: redis diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index 6d11493b66..f24caa8883 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,13 +1,13 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.1 +# Version: 1.1.3 version: "2" services: test_unit: - image: node:6.9.5 + build: . volumes: - .:/app working_dir: /app diff --git a/services/filestore/package.json b/services/filestore/package.json index c0971b67f3..0f624c5462 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -8,9 +8,9 @@ }, "scripts": { "test:acceptance:run": "mocha --recursive --reporter spec --timeout 15000 $@ test/acceptance/js", - "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- $@", + "test:acceptance": "npm run compile:app && npm run compile:acceptance_tests && npm run test:acceptance:_run -- --grep=$MOCHA_GREP", "test:unit:run": "mocha --recursive --reporter spec $@ test/unit/js", - "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:_run -- $@", + "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:_run -- --grep=$MOCHA_GREP", "compile:unit_tests": "[ ! -e test/unit/coffee ] && echo 'No unit tests to compile' || coffee -o test/unit/js -c test/unit/coffee", "compile:acceptance_tests": "[ ! -e test/acceptance/coffee ] && echo 'No acceptance tests to compile' || coffee -o test/acceptance/js -c test/acceptance/coffee", "compile:app": "([ -e app/coffee ] && coffee $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')", From 17637150044137e0f9f0fe8b3e9acd76a31de227 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 22 May 2018 13:45:32 +0100 Subject: [PATCH 39/69] remove black package-lock.json --- services/filestore/package-lock.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 services/filestore/package-lock.json diff --git a/services/filestore/package-lock.json b/services/filestore/package-lock.json deleted file mode 100644 index e69de29bb2..0000000000 From 46c61aa78ce19e2fe0ae34bbb5fa4fe1e095d002 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Wed, 13 Jun 2018 16:21:32 +0100 Subject: [PATCH 40/69] Update build scripts to 1.1.7, add csh-staging GCR --- services/filestore/Dockerfile | 1 + services/filestore/Jenkinsfile | 15 ++++++++++++++- services/filestore/Makefile | 13 ++++++++++--- services/filestore/docker-compose.ci.yml | 9 +++++---- services/filestore/docker-compose.yml | 4 +++- services/filestore/package.json | 7 ++++--- 6 files changed, 37 insertions(+), 12 deletions(-) diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index f359ac3d6c..3ced888df3 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -9,6 +9,7 @@ RUN npm install --quiet COPY . /app + RUN npm run compile:all FROM node:6.9.5 diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index bc9ba0142f..efe844839b 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -29,7 +29,19 @@ pipeline { stage('Package and publish build') { steps { - sh 'make publish' + + withCredentials([file(credentialsId: 'gcr.io_csh-gcdm-test', variable: 'DOCKER_REPO_KEY_PATH')]) { + sh 'docker login -u _json_key --password-stdin https://gcr.io/csh-gcdm-test < ${DOCKER_REPO_KEY_PATH}' + } + sh 'DOCKER_REPO=gcr.io/csh-gcdm-test make publish' + sh 'docker logout https://gcr.io/csh-gcdm-test' + + withCredentials([file(credentialsId: 'gcr.io_csh-staging', variable: 'DOCKER_REPO_KEY_PATH')]) { + sh 'docker login -u _json_key --password-stdin https://gcr.io/csh-staging < ${DOCKER_REPO_KEY_PATH}' + } + sh 'DOCKER_REPO=gcr.io/csh-staging make publish' + sh 'docker logout https://gcr.io/csh-staging' + } } @@ -47,6 +59,7 @@ pipeline { post { always { sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make test_clean' + sh 'make clean' } failure { diff --git a/services/filestore/Makefile b/services/filestore/Makefile index f940429d87..76d583b35e 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.3 +# Version: 1.1.7 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) @@ -15,6 +15,9 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ clean: + docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + docker rmi gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + docker rmi gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js rm -rf test/unit/js @@ -34,9 +37,13 @@ test_clean: test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: - docker build --pull --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) . + docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ + --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ + --tag gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ + . publish: - docker push gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + + docker push $(DOCKER_REPO)/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) .PHONY: clean test test_unit test_acceptance test_clean build publish diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 21c006641e..57299e0d2f 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,23 +1,25 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.3 +# Version: 1.1.7 version: "2" services: test_unit: - image: gcr.io/csh-gcdm-test/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER user: node command: npm run test:unit:_run test_acceptance: build: . - image: gcr.io/csh-gcdm-test/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER environment: + ELASTIC_SEARCH_DSN: es:9200 REDIS_HOST: redis MONGO_HOST: mongo POSTGRES_HOST: postgres + MOCHA_GREP: ${MOCHA_GREP} depends_on: - mongo - redis @@ -29,4 +31,3 @@ services: mongo: image: mongo:3.4 - diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index f24caa8883..659bbab129 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.3 +# Version: 1.1.7 version: "2" @@ -22,6 +22,7 @@ services: - .:/app working_dir: /app environment: + ELASTIC_SEARCH_DSN: es:9200 REDIS_HOST: redis MONGO_HOST: mongo POSTGRES_HOST: postgres @@ -31,6 +32,7 @@ services: - mongo - redis command: npm run test:acceptance + redis: image: redis diff --git a/services/filestore/package.json b/services/filestore/package.json index 0f624c5462..ee4ac0dbd4 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -14,11 +14,12 @@ "compile:unit_tests": "[ ! -e test/unit/coffee ] && echo 'No unit tests to compile' || coffee -o test/unit/js -c test/unit/coffee", "compile:acceptance_tests": "[ ! -e test/acceptance/coffee ] && echo 'No acceptance tests to compile' || coffee -o test/acceptance/js -c test/acceptance/coffee", "compile:app": "([ -e app/coffee ] && coffee $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')", - "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests", + "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests && npm run compile:smoke_tests", "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", - "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 15000 --exit $@ test/acceptance/js", - "test:unit:_run": "mocha --recursive --reporter spec $@ test/unit/js" + "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 30000 --exit $@ test/acceptance/js", + "test:unit:_run": "mocha --recursive --reporter spec --exit $@ test/unit/js", + "compile:smoke_tests": "[ ! -e test/smoke/coffee] && echo 'No smoke tests to compile' || coffee -o test/smoke/js -c test/smoke/coffee" }, "dependencies": { "async": "~0.2.10", From f0cf8e662259d6350944d1af1363a8aa892083f8 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Thu, 14 Jun 2018 11:37:18 +0100 Subject: [PATCH 41/69] Fix typo in buildscript --- services/filestore/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/package.json b/services/filestore/package.json index ee4ac0dbd4..0f455df13f 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -19,7 +19,7 @@ "nodemon": "nodemon --config nodemon.json", "test:acceptance:_run": "mocha --recursive --reporter spec --timeout 30000 --exit $@ test/acceptance/js", "test:unit:_run": "mocha --recursive --reporter spec --exit $@ test/unit/js", - "compile:smoke_tests": "[ ! -e test/smoke/coffee] && echo 'No smoke tests to compile' || coffee -o test/smoke/js -c test/smoke/coffee" + "compile:smoke_tests": "[ ! -e test/smoke/coffee ] && echo 'No smoke tests to compile' || coffee -o test/smoke/js -c test/smoke/coffee" }, "dependencies": { "async": "~0.2.10", From 4784ae33a23a61355c1873294050be3ad955c0cf Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Tue, 17 Jul 2018 10:51:15 +0100 Subject: [PATCH 42/69] Bump build scripts to 1.1.8 --- services/filestore/Jenkinsfile | 42 ++++++++++++++++++++++++ services/filestore/Makefile | 10 +++--- services/filestore/docker-compose.ci.yml | 2 +- services/filestore/docker-compose.yml | 2 +- 4 files changed, 49 insertions(+), 7 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index efe844839b..6aa3f14577 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -3,12 +3,33 @@ String cron_string = BRANCH_NAME == "master" ? "@daily" : "" pipeline { agent any + environment { + GIT_PROJECT = "filestore/-sharelatex" + JENKINS_WORKFLOW = "filestore/-sharelatex" + TARGET_URL = "${env.JENKINS_URL}blue/organizations/jenkins/${JENKINS_WORKFLOW}/detail/$BRANCH_NAME/$BUILD_NUMBER/pipeline" + GIT_API_URL = "https://api.github.com/repos/sharelatex/${GIT_PROJECT}/statuses/$GIT_COMMIT" + } + triggers { pollSCM('* * * * *') cron(cron_string) } stages { + stage('Install') { + steps { + withCredentials([usernamePassword(credentialsId: 'GITHUB_INTEGRATION', usernameVariable: 'GH_AUTH_USERNAME', passwordVariable: 'GH_AUTH_PASSWORD')]) { + sh "curl $GIT_API_URL \ + --data '{ \ + \"state\" : \"pending\", \ + \"target_url\": \"$TARGET_URL\", \ + \"description\": \"Your build is underway\", \ + \"context\": \"ci/jenkins\" }' \ + -u $GH_AUTH_USERNAME:$GH_AUTH_PASSWORD" + } + } + } + stage('Build') { steps { sh 'make build' @@ -62,11 +83,32 @@ pipeline { sh 'make clean' } + success { + withCredentials([usernamePassword(credentialsId: 'GITHUB_INTEGRATION', usernameVariable: 'GH_AUTH_USERNAME', passwordVariable: 'GH_AUTH_PASSWORD')]) { + sh "curl $GIT_API_URL \ + --data '{ \ + \"state\" : \"success\", \ + \"target_url\": \"$TARGET_URL\", \ + \"description\": \"Your build succeeded!\", \ + \"context\": \"ci/jenkins\" }' \ + -u $GH_AUTH_USERNAME:$GH_AUTH_PASSWORD" + } + } + failure { mail(from: "${EMAIL_ALERT_FROM}", to: "${EMAIL_ALERT_TO}", subject: "Jenkins build failed: ${JOB_NAME}:${BUILD_NUMBER}", body: "Build: ${BUILD_URL}") + withCredentials([usernamePassword(credentialsId: 'GITHUB_INTEGRATION', usernameVariable: 'GH_AUTH_USERNAME', passwordVariable: 'GH_AUTH_PASSWORD')]) { + sh "curl $GIT_API_URL \ + --data '{ \ + \"state\" : \"failure\", \ + \"target_url\": \"$TARGET_URL\", \ + \"description\": \"Your build failed\", \ + \"context\": \"ci/jenkins\" }' \ + -u $GH_AUTH_USERNAME:$GH_AUTH_PASSWORD" + } } } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 76d583b35e..8a76ec6069 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,11 +1,11 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.7 +# Version: 1.1.8 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) -PROJECT_NAME = filestore +PROJECT_NAME = filestore/ DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ BRANCH_NAME=$(BRANCH_NAME) \ @@ -26,16 +26,16 @@ clean: test: test_unit test_acceptance test_unit: - @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit + @[ ! -d test/unit ] && echo "filestore/ has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run - @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance + @[ ! -d test/acceptance ] && echo "filestore/ has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance test_clean: $(DOCKER_COMPOSE) down -v -t 0 test_acceptance_pre_run: - @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run + @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore/ has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 57299e0d2f..c3dafce4e4 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.7 +# Version: 1.1.8 version: "2" diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index 659bbab129..4b23773962 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.7 +# Version: 1.1.8 version: "2" From d182e5329ce661a1547de0008e34a24f75e93ade Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Tue, 17 Jul 2018 10:52:20 +0100 Subject: [PATCH 43/69] Add cr-test2 GCR project --- services/filestore/Jenkinsfile | 6 ++++++ services/filestore/Makefile | 2 ++ 2 files changed, 8 insertions(+) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 6aa3f14577..36e287d333 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -63,6 +63,12 @@ pipeline { sh 'DOCKER_REPO=gcr.io/csh-staging make publish' sh 'docker logout https://gcr.io/csh-staging' + withCredentials([file(credentialsId: 'gcr.io_cr-test2', variable: 'DOCKER_REPO_KEY_PATH')]) { + sh 'docker login -u _json_key --password-stdin https://gcr.io/cr-test2 < ${DOCKER_REPO_KEY_PATH}' + } + sh 'DOCKER_REPO=gcr.io/cr-test2 make publish' + sh 'docker logout https://gcr.io/cr-test2' + } } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 8a76ec6069..12f0541e04 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -18,6 +18,7 @@ clean: docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + docker rmi gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js rm -rf test/unit/js @@ -40,6 +41,7 @@ build: docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ --tag gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ + --tag gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ . publish: From c7733d05ccd20d87a6828625f0027fa93607ceed Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Tue, 17 Jul 2018 11:06:33 +0100 Subject: [PATCH 44/69] Remove trailing / from project name --- services/filestore/Jenkinsfile | 4 ++-- services/filestore/Makefile | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 36e287d333..2c8b2903fc 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -4,8 +4,8 @@ pipeline { agent any environment { - GIT_PROJECT = "filestore/-sharelatex" - JENKINS_WORKFLOW = "filestore/-sharelatex" + GIT_PROJECT = "filestore-sharelatex" + JENKINS_WORKFLOW = "filestore-sharelatex" TARGET_URL = "${env.JENKINS_URL}blue/organizations/jenkins/${JENKINS_WORKFLOW}/detail/$BRANCH_NAME/$BUILD_NUMBER/pipeline" GIT_API_URL = "https://api.github.com/repos/sharelatex/${GIT_PROJECT}/statuses/$GIT_COMMIT" } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 12f0541e04..1638c56f4d 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -5,7 +5,7 @@ BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) -PROJECT_NAME = filestore/ +PROJECT_NAME = filestore DOCKER_COMPOSE_FLAGS ?= -f docker-compose.yml DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ BRANCH_NAME=$(BRANCH_NAME) \ @@ -27,16 +27,16 @@ clean: test: test_unit test_acceptance test_unit: - @[ ! -d test/unit ] && echo "filestore/ has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit + @[ ! -d test/unit ] && echo "filestore has no unit tests" || $(DOCKER_COMPOSE) run --rm test_unit test_acceptance: test_clean test_acceptance_pre_run # clear the database before each acceptance test run - @[ ! -d test/acceptance ] && echo "filestore/ has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance + @[ ! -d test/acceptance ] && echo "filestore has no acceptance tests" || $(DOCKER_COMPOSE) run --rm test_acceptance test_clean: $(DOCKER_COMPOSE) down -v -t 0 test_acceptance_pre_run: - @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore/ has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run + @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ From 104406953529aa380034e26cd9e58040452bc94a Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Tue, 17 Jul 2018 12:03:14 +0100 Subject: [PATCH 45/69] Remove csh-gcdm-test and csh-staging repos --- services/filestore/Jenkinsfile | 12 ------------ services/filestore/Makefile | 4 ---- 2 files changed, 16 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 2c8b2903fc..36da0fa0c2 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -51,18 +51,6 @@ pipeline { stage('Package and publish build') { steps { - withCredentials([file(credentialsId: 'gcr.io_csh-gcdm-test', variable: 'DOCKER_REPO_KEY_PATH')]) { - sh 'docker login -u _json_key --password-stdin https://gcr.io/csh-gcdm-test < ${DOCKER_REPO_KEY_PATH}' - } - sh 'DOCKER_REPO=gcr.io/csh-gcdm-test make publish' - sh 'docker logout https://gcr.io/csh-gcdm-test' - - withCredentials([file(credentialsId: 'gcr.io_csh-staging', variable: 'DOCKER_REPO_KEY_PATH')]) { - sh 'docker login -u _json_key --password-stdin https://gcr.io/csh-staging < ${DOCKER_REPO_KEY_PATH}' - } - sh 'DOCKER_REPO=gcr.io/csh-staging make publish' - sh 'docker logout https://gcr.io/csh-staging' - withCredentials([file(credentialsId: 'gcr.io_cr-test2', variable: 'DOCKER_REPO_KEY_PATH')]) { sh 'docker login -u _json_key --password-stdin https://gcr.io/cr-test2 < ${DOCKER_REPO_KEY_PATH}' } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 1638c56f4d..597b376dfb 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -16,8 +16,6 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ clean: docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) - docker rmi gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) - docker rmi gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js @@ -39,8 +37,6 @@ test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ - --tag gcr.io/csh-gcdm-test/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ - --tag gcr.io/csh-staging/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ --tag gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ . From f9f599e3e755eede8cb17069b2b4ed324102d92e Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Wed, 18 Jul 2018 11:30:01 +0100 Subject: [PATCH 46/69] Push container images to overleaf-ops project --- services/filestore/Jenkinsfile | 8 ++++---- services/filestore/Makefile | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 36da0fa0c2..1ab9a075e1 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -51,11 +51,11 @@ pipeline { stage('Package and publish build') { steps { - withCredentials([file(credentialsId: 'gcr.io_cr-test2', variable: 'DOCKER_REPO_KEY_PATH')]) { - sh 'docker login -u _json_key --password-stdin https://gcr.io/cr-test2 < ${DOCKER_REPO_KEY_PATH}' + withCredentials([file(credentialsId: 'gcr.io_overleaf-ops', variable: 'DOCKER_REPO_KEY_PATH')]) { + sh 'docker login -u _json_key --password-stdin https://gcr.io/overleaf-ops < ${DOCKER_REPO_KEY_PATH}' } - sh 'DOCKER_REPO=gcr.io/cr-test2 make publish' - sh 'docker logout https://gcr.io/cr-test2' + sh 'DOCKER_REPO=gcr.io/overleaf-ops make publish' + sh 'docker logout https://gcr.io/overleaf-ops' } } diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 597b376dfb..8500a66cf6 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -16,7 +16,7 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ clean: docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) - docker rmi gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) + docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js rm -rf test/unit/js @@ -37,7 +37,7 @@ test_acceptance_pre_run: @[ ! -f test/acceptance/scripts/pre-run ] && echo "filestore has no pre acceptance tests task" || $(DOCKER_COMPOSE) run --rm test_acceptance test/acceptance/scripts/pre-run build: docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ - --tag gcr.io/cr-test2/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ + --tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ . publish: From cba013cd710f34f07c2b4c370e8f04cf9659469e Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 23 Jul 2018 17:06:31 +0100 Subject: [PATCH 47/69] change ordering of docker rmi --- services/filestore/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 8500a66cf6..49f86269d2 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -15,12 +15,12 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ clean: - docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js rm -rf test/unit/js rm -rf test/acceptance/js + docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) test: test_unit test_acceptance From 0e9a535e1c8b3589f176f8019d6b56dd298af5fd Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Thu, 26 Jul 2018 16:05:11 +0100 Subject: [PATCH 48/69] Bump build script to 1.1.9 --- services/filestore/.github/ISSUE_TEMPLATE.md | 38 ++++++++++++++++ .../.github/PULL_REQUEST_TEMPLATE.md | 45 +++++++++++++++++++ services/filestore/Makefile | 4 +- services/filestore/buildscript.txt | 9 ++++ services/filestore/docker-compose.ci.yml | 2 +- services/filestore/docker-compose.yml | 2 +- 6 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 services/filestore/.github/ISSUE_TEMPLATE.md create mode 100644 services/filestore/.github/PULL_REQUEST_TEMPLATE.md create mode 100644 services/filestore/buildscript.txt diff --git a/services/filestore/.github/ISSUE_TEMPLATE.md b/services/filestore/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..e0093aa90c --- /dev/null +++ b/services/filestore/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,38 @@ + + +## Steps to Reproduce + + + +1. +2. +3. + +## Expected Behaviour + + +## Observed Behaviour + + + +## Context + + +## Technical Info + + +* URL: +* Browser Name and version: +* Operating System and version (desktop or mobile): +* Signed in as: +* Project and/or file: + +## Analysis + + +## Who Needs to Know? + + + +- +- diff --git a/services/filestore/.github/PULL_REQUEST_TEMPLATE.md b/services/filestore/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000..ed25ee83c1 --- /dev/null +++ b/services/filestore/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,45 @@ + + +### Description + + + +#### Screenshots + + + +#### Related Issues / PRs + + + +### Review + + + +#### Potential Impact + + + +#### Manual Testing Performed + +- [ ] +- [ ] + +#### Accessibility + + + +### Deployment + + + +#### Deployment Checklist + +- [ ] Update documentation not included in the PR (if any) +- [ ] + +#### Metrics and Monitoring + + + +#### Who Needs to Know? diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 49f86269d2..9b34c3ccb9 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.8 +# Version: 1.1.9 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) @@ -15,12 +15,12 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ clean: + docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) rm -f app.js rm -rf app/js rm -rf test/unit/js rm -rf test/acceptance/js - docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) test: test_unit test_acceptance diff --git a/services/filestore/buildscript.txt b/services/filestore/buildscript.txt new file mode 100644 index 0000000000..d4c335faa9 --- /dev/null +++ b/services/filestore/buildscript.txt @@ -0,0 +1,9 @@ +--script-version=1.1.9 +filestore +--node-version=6.9.5 +--acceptance-creds=None +--language=coffeescript +--dependencies=['mongo', 'redis'] +--docker-repos=['gcr.io/overleaf-ops'] +--kube=false +--build-target=docker diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index c3dafce4e4..17c4ddd2bf 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.8 +# Version: 1.1.9 version: "2" diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index 4b23773962..dcbc14e683 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.8 +# Version: 1.1.9 version: "2" From 53dacc04ef90c172cb676a54645fcb9b0ac067dd Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Thu, 26 Jul 2018 16:06:30 +0100 Subject: [PATCH 49/69] Bump metrics from 1.3.0 to 1.8.1 --- services/filestore/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/package.json b/services/filestore/package.json index 0f455df13f..524e5139ff 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -30,7 +30,7 @@ "heapdump": "^0.3.2", "knox": "~0.9.1", "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.1.0", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.3.0", + "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.8.1", "node-transloadit": "0.0.4", "node-uuid": "~1.4.1", "pngcrush": "0.0.3", From 38f565d35fc09218e504a39b5a133e858d7ab66f Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Fri, 28 Sep 2018 15:53:57 +0100 Subject: [PATCH 50/69] logout settings --- services/filestore/app/coffee/HealthCheckController.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/services/filestore/app/coffee/HealthCheckController.coffee b/services/filestore/app/coffee/HealthCheckController.coffee index db3f111c5e..7b7a80bfc8 100644 --- a/services/filestore/app/coffee/HealthCheckController.coffee +++ b/services/filestore/app/coffee/HealthCheckController.coffee @@ -15,6 +15,7 @@ checkCanStoreFiles = (callback)-> req = {params:{}, query:{}, headers:{}} req.params.project_id = settings.health_check.project_id req.params.file_id = settings.health_check.file_id + console.log settings myWritableStreamBuffer = new streamBuffers.WritableStreamBuffer(initialSize: 100) res = { send: (code) -> From ee1c14a41036a85b4a1dcc977a61d0f59e1be36a Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Thu, 29 Nov 2018 12:46:14 +0000 Subject: [PATCH 51/69] bump metrics --- services/filestore/npm-shrinkwrap.json | 5 +++-- services/filestore/package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index c911545763..1121f348eb 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1466,8 +1466,9 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "metrics-sharelatex": { - "version": "git+https://github.com/sharelatex/metrics-sharelatex.git#e5356366b5b83997c8e1645b2e936af453381517", - "integrity": "sha1-JA9No3q08VfmnEuRjv/AQU3MoRg=", + "version": "2.0.3", + "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.3", + "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#02522a50b7a5ec46eed9b0a93513ef992a21eb45", "requires": { "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", "lynx": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", diff --git a/services/filestore/package.json b/services/filestore/package.json index 0497597db6..83f4d53120 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -29,7 +29,7 @@ "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v1.8.1", + "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.3", "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", "node-transloadit": "0.0.4", "node-uuid": "~1.4.1", From 95f0a02dee4d9cb938b011bc280fc077362bd36c Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Thu, 29 Nov 2018 13:26:14 +0000 Subject: [PATCH 52/69] stub out metrics in tests & inject metrics endpoint --- services/filestore/app.coffee | 2 ++ .../filestore/test/unit/coffee/BucketControllerTests.coffee | 2 ++ .../filestore/test/unit/coffee/FileControllerTests.coffee | 2 ++ .../filestore/test/unit/coffee/FileConverterTests.coffee | 4 ++++ .../filestore/test/unit/coffee/LocalFileWriterTests.coffee | 5 +++++ 5 files changed, 15 insertions(+) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index a571550f8a..b172e3ba88 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -63,6 +63,8 @@ app.use (req, res, next) -> res.set 'Connection', 'close' next() +Metrics.injectMetricsRoute(app) + app.get "/project/:project_id/file/:file_id", keyBuilder.userFileKey, fileController.getFile app.post "/project/:project_id/file/:file_id", keyBuilder.userFileKey, fileController.insertFile diff --git a/services/filestore/test/unit/coffee/BucketControllerTests.coffee b/services/filestore/test/unit/coffee/BucketControllerTests.coffee index 461f3f03d6..c6bbabc89e 100644 --- a/services/filestore/test/unit/coffee/BucketControllerTests.coffee +++ b/services/filestore/test/unit/coffee/BucketControllerTests.coffee @@ -35,6 +35,8 @@ describe "BucketController", -> "./FileHandler": @FileHandler "./PersistorManager":@PersistorManager "settings-sharelatex": @settings + "metrics-sharelatex": + inc:-> "logger-sharelatex": log:-> err:-> diff --git a/services/filestore/test/unit/coffee/FileControllerTests.coffee b/services/filestore/test/unit/coffee/FileControllerTests.coffee index 591644de60..d75750f924 100644 --- a/services/filestore/test/unit/coffee/FileControllerTests.coffee +++ b/services/filestore/test/unit/coffee/FileControllerTests.coffee @@ -29,6 +29,8 @@ describe "FileController", -> "./FileHandler": @FileHandler "./PersistorManager":@PersistorManager "settings-sharelatex": @settings + "metrics-sharelatex": + inc:-> "logger-sharelatex": log:-> err:-> diff --git a/services/filestore/test/unit/coffee/FileConverterTests.coffee b/services/filestore/test/unit/coffee/FileConverterTests.coffee index bdb908be98..ed59d56376 100644 --- a/services/filestore/test/unit/coffee/FileConverterTests.coffee +++ b/services/filestore/test/unit/coffee/FileConverterTests.coffee @@ -16,6 +16,10 @@ describe "FileConverter", -> "logger-sharelatex": log:-> err:-> + "metrics-sharelatex": + inc:-> + Timer:-> + done:-> "settings-sharelatex": @Settings = commands: convertCommandPrefix: [] diff --git a/services/filestore/test/unit/coffee/LocalFileWriterTests.coffee b/services/filestore/test/unit/coffee/LocalFileWriterTests.coffee index 0b9eec035e..773289f08e 100644 --- a/services/filestore/test/unit/coffee/LocalFileWriterTests.coffee +++ b/services/filestore/test/unit/coffee/LocalFileWriterTests.coffee @@ -27,6 +27,11 @@ describe "LocalFileWriter", -> log:-> err:-> "settings-sharelatex":@settings + "metrics-sharelatex": + inc:-> + Timer:-> + done:-> + @stubbedFsPath = "something/uploads/eio2k1j3" describe "writeStrem", -> From e64156cd273659b5f3223e6e4474b7e424207409 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Thu, 29 Nov 2018 16:41:30 +0000 Subject: [PATCH 53/69] clean npm-shrinkwrap and package.json --- services/filestore/npm-shrinkwrap.json | 3364 ++++++++++-------------- services/filestore/package.json | 17 +- 2 files changed, 1351 insertions(+), 2030 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 1121f348eb..548b2736f6 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1,2563 +1,1895 @@ { "name": "filestore-sharelatex", "version": "0.1.4", - "lockfileVersion": 1, - "requires": true, "dependencies": { - "@sinonjs/commons": { - "version": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.0.2.tgz", - "integrity": "sha1-PgrHN3gWJ7iEQlf63D2AOZfQUm4=", - "requires": { - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "@google-cloud/common": { + "version": "0.23.0", + "from": "@google-cloud/common@>=0.23.0 <0.24.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.23.0.tgz" + }, + "@google-cloud/debug-agent": { + "version": "3.0.0", + "from": "@google-cloud/debug-agent@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/debug-agent/-/debug-agent-3.0.0.tgz", + "dependencies": { + "coffeescript": { + "version": "2.3.2", + "from": "coffeescript@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.2.tgz" + }, + "lodash": { + "version": "4.17.11", + "from": "lodash@>=4.12.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz" + } } }, + "@google-cloud/projectify": { + "version": "0.3.2", + "from": "@google-cloud/projectify@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.2.tgz" + }, + "@google-cloud/promisify": { + "version": "0.3.1", + "from": "@google-cloud/promisify@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.1.tgz" + }, + "@google-cloud/trace-agent": { + "version": "3.3.1", + "from": "@google-cloud/trace-agent@>=3.2.0 <4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.3.1.tgz", + "dependencies": { + "@google-cloud/common": { + "version": "0.26.2", + "from": "@google-cloud/common@>=0.26.0 <0.27.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.26.2.tgz" + }, + "gcp-metadata": { + "version": "0.9.0", + "from": "gcp-metadata@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.9.0.tgz" + }, + "google-auth-library": { + "version": "2.0.1", + "from": "google-auth-library@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-2.0.1.tgz", + "dependencies": { + "gcp-metadata": { + "version": "0.7.0", + "from": "gcp-metadata@^0.7.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.7.0.tgz" + } + } + }, + "lru-cache": { + "version": "4.1.4", + "from": "lru-cache@>=4.1.3 <5.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz" + }, + "through2": { + "version": "3.0.0", + "from": "through2@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.0.tgz" + }, + "uuid": { + "version": "3.3.2", + "from": "uuid@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + } + } + }, + "@sinonjs/commons": { + "version": "1.3.0", + "from": "@sinonjs/commons@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz" + }, "@sinonjs/formatio": { - "version": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "integrity": "sha1-nSgtgQMKA6A/oMXOMf2HhqTaMRo=", - "requires": { - "@sinonjs/samsam": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz" - }, + "version": "3.0.0", + "from": "@sinonjs/formatio@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", "dependencies": { "@sinonjs/samsam": { - "version": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz", - "integrity": "sha1-uLj1uBlgW9Y2Aabt5FkVaIDzjqM=", - "requires": { - "array-from": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" - } + "version": "2.1.0", + "from": "@sinonjs/samsam@2.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz" } } }, "@sinonjs/samsam": { - "version": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.1.tgz", - "integrity": "sha1-81JiHCTJ6asu0pOnZV6NRr/WTBY=", - "requires": { - "array-from": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" - } + "version": "2.1.2", + "from": "@sinonjs/samsam@>=2.1.2 <3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.2.tgz" + }, + "@types/caseless": { + "version": "0.12.1", + "from": "@types/caseless@*", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.1.tgz" + }, + "@types/duplexify": { + "version": "3.6.0", + "from": "@types/duplexify@>=3.5.0 <4.0.0", + "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz" + }, + "@types/form-data": { + "version": "2.2.1", + "from": "@types/form-data@*", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz" + }, + "@types/node": { + "version": "10.12.10", + "from": "@types/node@*", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.10.tgz" + }, + "@types/request": { + "version": "2.48.1", + "from": "@types/request@>=2.47.0 <3.0.0", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz" + }, + "@types/tough-cookie": { + "version": "2.3.4", + "from": "@types/tough-cookie@*", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz" }, "abbrev": { - "version": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", - "dev": true + "version": "1.1.1", + "from": "abbrev@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" }, "accept-encoding": { - "version": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz", - "integrity": "sha1-XdiLjfcfHcLlzGuVZezOHjmaMz4=" + "version": "0.1.0", + "from": "accept-encoding@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz" }, "accepts": { - "version": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" - } + "version": "1.3.5", + "from": "accepts@>=1.3.5 <1.4.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz" }, - "ajv": { - "version": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "requires": { - "co": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "fast-deep-equal": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "fast-json-stable-stringify": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "json-schema-traverse": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz" - } + "acorn": { + "version": "5.7.3", + "from": "acorn@>=5.0.3 <6.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz" + }, + "agent-base": { + "version": "4.2.1", + "from": "agent-base@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz" + }, + "ansi-regex": { + "version": "0.2.1", + "from": "ansi-regex@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" }, "ansi-styles": { - "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", - "dev": true + "version": "1.1.0", + "from": "ansi-styles@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" }, "argparse": { - "version": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", - "dev": true, - "requires": { - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz" - }, + "version": "0.1.16", + "from": "argparse@>=0.1.11 <0.2.0", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "dependencies": { "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", - "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=", - "dev": true + "version": "1.7.0", + "from": "underscore@>=1.7.0 <1.8.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz" }, "underscore.string": { - "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz", - "integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=", - "dev": true + "version": "2.4.0", + "from": "underscore.string@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz" } } }, "array-flatten": { - "version": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "array-from": { - "version": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", - "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + "version": "2.1.1", + "from": "array-from@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" }, - "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", - "dev": true, - "requires": { - "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - } - }, - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "arrify": { + "version": "1.0.1", + "from": "arrify@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" }, "assertion-error": { - "version": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=" + "version": "1.1.0", + "from": "assertion-error@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" }, "async": { - "version": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + "version": "0.2.10", + "from": "async@>=0.2.10 <0.3.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, - "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "async-listener": { + "version": "0.6.10", + "from": "async-listener@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz" }, "aws-sdk": { - "version": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.315.0.tgz", - "integrity": "sha1-fzkxYq8DjL73IjdERKm8muG9u+k=", - "requires": { - "buffer": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "events": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "jmespath": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "sax": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "url": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "xml2js": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz" - }, + "version": "2.366.0", + "from": "aws-sdk@>=2.1.39 <3.0.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.366.0.tgz", "dependencies": { "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + "version": "3.1.0", + "from": "uuid@3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz" } } }, "aws-sign": { - "version": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.1.tgz", - "integrity": "sha1-uWGyLwuqTxXsJBFA83dtbBQoVtA=" + "version": "0.2.1", + "from": "aws-sign@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.1.tgz" }, - "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", - "dev": true + "axios": { + "version": "0.18.0", + "from": "axios@>=0.18.0 <0.19.0", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz" }, "balanced-match": { - "version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "version": "1.0.0", + "from": "balanced-match@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" }, "base64-js": { - "version": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha1-yrHmEY8FEJXli1KBrqjBzSK/wOM=" - }, - "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - } + "version": "1.3.0", + "from": "base64-js@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz" }, "best-encoding": { - "version": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", - "integrity": "sha1-GVIT2rysBFgYuAe3ox+Dn63cl04=", - "requires": { - "accept-encoding": "https://registry.npmjs.org/accept-encoding/-/accept-encoding-0.1.0.tgz" - } + "version": "0.1.1", + "from": "best-encoding@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz" + }, + "bignumber.js": { + "version": "7.2.1", + "from": "bignumber.js@>=7.0.0 <8.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" + }, + "bintrees": { + "version": "1.0.1", + "from": "bintrees@1.0.1", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz" }, "bl": { - "version": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", - "integrity": "sha1-P7BnBgKsKHjrdw3CA58YNr5irls=", - "requires": { - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + "version": "0.7.0", + "from": "bl@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", + "dependencies": { + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "readable-stream": { + "version": "1.0.34", + "from": "readable-stream@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + } } }, "body-parser": { - "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", - "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz" - } + "version": "1.18.3", + "from": "body-parser@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz" }, "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", - "integrity": "sha1-yM2wQUNZEnQWKMBE7Mcy0dF8Ceo=", - "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" - } + "version": "0.3.8", + "from": "boom@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "requires": { - "balanced-match": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - }, - "broadway": { - "version": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", - "integrity": "sha1-fb7waLlUt5B5Jf1USWO1eKkCuno=", - "dev": true, - "requires": { - "cliff": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", - "eventemitter2": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "nconf": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", - "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz" - }, - "dependencies": { - "cliff": { - "version": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz", - "integrity": "sha1-ohHgnGo947oa8n0EnTASUNGIErw=", - "dev": true, - "requires": { - "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz" - } - }, - "winston": { - "version": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz", - "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "cycle": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - } - } - } + "version": "1.1.11", + "from": "brace-expansion@>=1.1.7 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" }, "browser-stdout": { - "version": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=" + "version": "1.3.1", + "from": "browser-stdout@1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" }, "buffer": { - "version": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "requires": { - "base64-js": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "ieee754": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - } + "version": "4.9.1", + "from": "buffer@4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "from": "buffer-equal-constant-time@1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + }, + "builtin-modules": { + "version": "3.0.0", + "from": "builtin-modules@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.0.0.tgz" }, "bunyan": { - "version": "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.tgz", - "integrity": "sha1-X259RMQ7lS9WsPQTCeOrEjkbTi0=", - "requires": { - "dtrace-provider": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "mv": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "safe-json-stringify": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz" - } + "version": "1.5.1", + "from": "bunyan@1.5.1", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.tgz" }, "bytes": { - "version": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + "version": "3.0.0", + "from": "bytes@3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" }, "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", - "integrity": "sha1-U06XkWOH07cGtk/eu6xGQ4RQk08=" + "version": "0.3.0", + "from": "caseless@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz" }, "chai": { - "version": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", - "requires": { - "assertion-error": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "check-error": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "deep-eql": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "get-func-name": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "pathval": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - } + "version": "4.2.0", + "from": "chai@latest", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz" }, "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", - "dev": true, - "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", - "has-color": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz" - } + "version": "0.5.1", + "from": "chalk@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" }, "check-error": { - "version": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "cliff": { - "version": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", - "integrity": "sha1-U74z6p9ZvshWCe4wCsQgdgPlIBM=", - "dev": true, - "requires": { - "colors": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" - }, - "dependencies": { - "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, - "co": { - "version": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "version": "1.0.2", + "from": "check-error@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" }, "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz", - "integrity": "sha1-YplqhheAx15tUGnROCJyO3NAS/w=", - "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - } + "version": "1.7.1", + "from": "coffee-script@>=1.7.1 <1.8.0", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz" }, "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true + "version": "0.6.2", + "from": "colors@>=0.6.2 <0.7.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" }, "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", - "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } + "version": "0.0.7", + "from": "combined-stream@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz" }, "commander": { - "version": "http://registry.npmjs.org/commander/-/commander-2.0.0.tgz", - "integrity": "sha1-0bhvkB+LZL2UG96tr5JFMDk76Sg=", - "dev": true + "version": "2.0.0", + "from": "commander@2.0.0", + "resolved": "http://registry.npmjs.org/commander/-/commander-2.0.0.tgz" }, "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" }, - "configstore": { - "version": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", - "integrity": "sha1-JeTBbDdoq/dcWmW8YXYfSVBVtFk=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "osenv": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "xdg-basedir": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz" - }, - "dependencies": { - "argparse": { - "version": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dev": true, - "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - } - }, - "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "dev": true - }, - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "dev": true, - "requires": { - "natives": "https://registry.npmjs.org/natives/-/natives-1.1.5.tgz" - } - }, - "js-yaml": { - "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha1-6u1lbsg0TxD1J8a/obbiJE3hZ9E=", - "dev": true, - "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - } - }, - "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - } + "console-log-level": { + "version": "1.4.0", + "from": "console-log-level@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.0.tgz" }, "content-disposition": { - "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + "version": "0.5.2", + "from": "content-disposition@0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" }, "content-type": { - "version": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=" + "version": "1.0.4", + "from": "content-type@>=1.0.4 <1.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + }, + "continuation-local-storage": { + "version": "3.2.1", + "from": "continuation-local-storage@>=3.2.1 <4.0.0", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz" }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + "version": "0.3.1", + "from": "cookie@0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" }, "cookie-jar": { - "version": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", - "integrity": "sha1-ZOzAasl423leS1KQy+SLo3gUAPo=" + "version": "0.2.0", + "from": "cookie-jar@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz" }, "cookie-signature": { - "version": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.2", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", - "integrity": "sha1-GlVnNPBtJLo0hirpy55wmjr7/xw=", - "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz" - } - }, - "cycle": { - "version": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true - }, - "dashdash": { - "version": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } + "version": "0.1.3", + "from": "cryptiles@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz" }, "dateformat": { - "version": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", - "integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=", - "dev": true + "version": "1.0.2-1.2.3", + "from": "dateformat@1.0.2-1.2.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz" }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", - "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - } + "version": "2.6.9", + "from": "debug@2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" }, "deep-eql": { - "version": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", - "requires": { - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - } + "version": "3.0.1", + "from": "deep-eql@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" }, - "deep-equal": { - "version": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", - "dev": true + "define-properties": { + "version": "1.1.3", + "from": "define-properties@>=1.1.2 <2.0.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" }, "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", - "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" }, "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "1.1.2", + "from": "depd@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" }, "destroy": { - "version": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.0.4", + "from": "destroy@>=1.0.4 <1.1.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", - "integrity": "sha1-JLuwAcSn1VIhaefKvbLCgU7ZHPQ=", - "dev": true - }, - "director": { - "version": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", - "integrity": "sha1-v9N0EHX9f7GlsuE2WMX0vsd3NvM=", - "dev": true + "version": "1.0.7", + "from": "diff@1.0.7", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz" }, "dtrace-provider": { - "version": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "integrity": "sha1-CweNVReTfYcxAUUtkUZzdVe3XlE=", - "optional": true, - "requires": { - "nan": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz" - } + "version": "0.6.0", + "from": "dtrace-provider@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", + "optional": true }, - "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - } + "duplexify": { + "version": "3.6.1", + "from": "duplexify@>=3.6.0 <4.0.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz" + }, + "ecdsa-sig-formatter": { + "version": "1.0.10", + "from": "ecdsa-sig-formatter@1.0.10", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz" }, "ee-first": { - "version": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + }, + "emitter-listener": { + "version": "1.1.2", + "from": "emitter-listener@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz" }, "encodeurl": { - "version": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "version": "1.0.2", + "from": "encodeurl@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + }, + "end-of-stream": { + "version": "1.4.1", + "from": "end-of-stream@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz" + }, + "ent": { + "version": "2.2.0", + "from": "ent@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz" + }, + "es-abstract": { + "version": "1.12.0", + "from": "es-abstract@>=1.5.1 <2.0.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz" + }, + "es-to-primitive": { + "version": "1.2.0", + "from": "es-to-primitive@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz" + }, + "es6-promise": { + "version": "4.2.5", + "from": "es6-promise@>=4.0.3 <5.0.0", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz" + }, + "es6-promisify": { + "version": "5.0.0", + "from": "es6-promisify@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz" }, "escape-html": { - "version": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "version": "1.0.3", + "from": "escape-html@>=1.0.3 <1.1.0", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "escape-string-regexp": { - "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "version": "1.0.5", + "from": "escape-string-regexp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "esprima": { - "version": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", - "dev": true + "version": "1.0.4", + "from": "esprima@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" }, "etag": { - "version": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-stream": { - "version": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz", - "integrity": "sha1-t3uTCfcQet3+q2PwwOr9jbC9jBw=", - "dev": true, - "requires": { - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz" - }, - "dependencies": { - "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz", - "integrity": "sha1-6YGrfiaLRXlIWTtVZ0wJmoFcrDE=", - "dev": true, - "requires": { - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } - } - } + "version": "1.8.1", + "from": "etag@>=1.8.1 <1.9.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" }, "eventemitter2": { - "version": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true + "version": "0.4.14", + "from": "eventemitter2@>=0.4.13 <0.5.0", + "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" }, "events": { - "version": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "version": "1.1.1", + "from": "events@1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz" + }, + "exit": { + "version": "0.1.2", + "from": "exit@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" }, "express": { - "version": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", - "requires": { - "accepts": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "array-flatten": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "body-parser": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "content-disposition": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "cookie-signature": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "finalhandler": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "merge-descriptors": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "methods": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "proxy-addr": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "serve-static": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "vary": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - }, + "version": "4.16.4", + "from": "express@>=4.2.0 <5.0.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", "dependencies": { - "body-parser": { - "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", - "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", - "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "content-type": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "raw-body": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "type-is": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz" - } - }, - "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs=" - }, - "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg=" - }, - "raw-body": { - "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", - "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", - "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, - "dependencies": { - "depd": { - "version": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - }, - "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", - "requires": { - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" - } - }, - "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" - } - } - }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=" + "version": "1.4.0", + "from": "statuses@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" } } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", - "dev": true - }, - "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true - }, - "fast-deep-equal": { - "version": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "faye-websocket": { - "version": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", - "integrity": "sha1-wUxbO/FNdBf/v9mQwKdJXNnzN7w=", - "dev": true + "version": "3.0.2", + "from": "extend@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" }, "finalhandler": { - "version": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha1-7r9O2EAHnIP0JJA4ydcDAIMBsQU=", - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - }, + "version": "1.1.1", + "from": "finalhandler@1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "dependencies": { "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=" + "version": "1.4.0", + "from": "statuses@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" } } }, + "findit2": { + "version": "2.2.3", + "from": "findit2@>=2.2.3 <3.0.0", + "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz" + }, "findup-sync": { - "version": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", - "dev": true, - "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, + "version": "0.1.3", + "from": "findup-sync@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", "dependencies": { "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", - "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true, - "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" - } + "version": "3.2.11", + "from": "glob@>=3.2.9 <3.3.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz" }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true + "version": "2.4.2", + "from": "lodash@>=2.4.1 <2.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", - "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } + "version": "0.3.0", + "from": "minimatch@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" } } }, - "flatiron": { - "version": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", - "integrity": "sha1-JIz3mj2n19w3nioRySonGcu1QPY=", - "dev": true, - "requires": { - "broadway": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", - "director": "https://registry.npmjs.org/director/-/director-1.2.7.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", - "prompt": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz" - }, + "follow-redirects": { + "version": "1.5.10", + "from": "follow-redirects@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", "dependencies": { - "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", - "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } + "debug": { + "version": "3.1.0", + "from": "debug@3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" } } }, - "forever": { - "version": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz", - "integrity": "sha1-6Tsr2UxXBavBmxXlTDEz1puinGs=", - "dev": true, - "requires": { - "cliff": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "flatiron": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz", - "forever-monitor": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", - "nconf": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", - "nssocket": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "timespan": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", - "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" - } - }, "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", - "integrity": "sha1-4cJcetROCcOPIzh2x2/MJP+EOx8=" - }, - "forever-monitor": { - "version": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-1.5.2.tgz", - "integrity": "sha1-J5OI36k7CFNj1rKKgj7wpq7rNdc=", - "dev": true, - "requires": { - "broadway": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "ps-tree": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", - "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "watch": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz" - }, - "dependencies": { - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-1.0.0.tgz", - "integrity": "sha1-4N0hILSeG3JM6NcUxSCCKpQ4V20=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - } + "version": "0.2.0", + "from": "forever-agent@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz" }, "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", - "integrity": "sha1-2zRaU3jYau6x7V1VO4aawZLS9e0=", - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, + "version": "0.0.10", + "from": "form-data@>=0.0.3 <0.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", "dependencies": { "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" + "version": "1.2.11", + "from": "mime@>=1.2.2 <1.3.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } } }, "forwarded": { - "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "version": "0.1.2", + "from": "forwarded@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz" }, "fresh": { - "version": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "version": "0.5.2", + "from": "fresh@0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" }, "fs-extra": { - "version": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "jsonfile": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "klaw": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" - } + "version": "1.0.0", + "from": "fs-extra@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz" }, "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "version": "1.0.0", + "from": "fs.realpath@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" }, - "gaze": { - "version": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", - "integrity": "sha1-5Tj0/15P5kj0c6l+HrslPS3hJ7U=", - "dev": true, - "requires": { - "globule": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz" - } + "function-bind": { + "version": "1.1.1", + "from": "function-bind@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + }, + "gcp-metadata": { + "version": "0.7.0", + "from": "gcp-metadata@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.7.0.tgz" }, "get-func-name": { - "version": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + "version": "2.0.0", + "from": "get-func-name@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" }, - "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } + "getobject": { + "version": "0.1.0", + "from": "getobject@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz" }, "gettemporaryfilepath": { - "version": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz", - "integrity": "sha1-uKLHAUu1zUFTTpg7XKFgo3RwhGk=" + "version": "0.0.1", + "from": "gettemporaryfilepath@0.0.1", + "resolved": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz" }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "optional": true, - "requires": { - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version": "6.0.4", + "from": "glob@>=6.0.1 <7.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "optional": true + }, + "google-auth-library": { + "version": "1.6.1", + "from": "google-auth-library@>=1.6.0 <2.0.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.6.1.tgz", + "dependencies": { + "gcp-metadata": { + "version": "0.6.3", + "from": "gcp-metadata@>=0.6.3 <0.7.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz" + }, + "lru-cache": { + "version": "4.1.4", + "from": "lru-cache@>=4.1.3 <5.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.4.tgz" + } } }, - "globule": { - "version": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", - "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", - "dev": true, - "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - }, + "google-p12-pem": { + "version": "1.0.2", + "from": "google-p12-pem@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", "dependencies": { - "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } - }, - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true - }, - "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true - }, - "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", - "dev": true - }, - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } + "pify": { + "version": "3.0.0", + "from": "pify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" } } }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.1.15", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz" }, "growl": { - "version": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", - "integrity": "sha1-3i1mE20ALhErpw8/EMMc98NQsto=", - "dev": true + "version": "1.7.0", + "from": "growl@>=1.7.0 <1.8.0", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz" }, "grunt": { - "version": "https://registry.npmjs.org/grunt/-/grunt-0.4.1.tgz", - "integrity": "sha1-1YkuVoCt2e0b796apjXPRrj0lyk=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "dateformat": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz", - "eventemitter2": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "findup-sync": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "hooker": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "js-yaml": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", - "lodash": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "nopt": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz", - "underscore.string": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", - "which": "https://registry.npmjs.org/which/-/which-1.0.9.tgz" - }, + "version": "0.4.5", + "from": "grunt@>=0.4.5 <0.5.0", + "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-0.1.22.tgz", - "integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=", - "dev": true + "version": "0.1.22", + "from": "async@>=0.1.22 <0.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" }, "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", - "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=", - "dev": true + "version": "1.3.3", + "from": "coffee-script@>=1.3.3 <1.4.0", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz" }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", - "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } + "version": "3.1.21", + "from": "glob@>=3.1.21 <3.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" }, "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", - "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", - "dev": true + "version": "1.2.3", + "from": "graceful-fs@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" }, "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", - "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=", - "dev": true + "version": "0.2.11", + "from": "iconv-lite@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz" }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", - "dev": true + "version": "1.0.2", + "from": "inherits@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - }, - "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.0.3.tgz", - "integrity": "sha1-9QopZecUTpr9mYmC8V33BnMPVqk=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz" - }, - "dependencies": { - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.1.14.tgz", - "integrity": "sha1-BweNtfY3f2Mh/Oqu30l94STclGU=", - "dev": true, - "optional": true - } - } + "version": "0.2.14", + "from": "minimatch@>=0.2.12 <0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" } } }, "grunt-bunyan": { - "version": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", - "integrity": "sha1-aCnXbgGZQ9owQTk2MaNuKsgpsWw=", - "requires": { - "lodash": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, + "version": "0.5.0", + "from": "grunt-bunyan@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", "dependencies": { "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + "version": "2.4.2", + "from": "lodash@>=2.4.1 <2.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" } } }, - "grunt-concurrent": { - "version": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-0.4.2.tgz", - "integrity": "sha1-Mf2Qbm4X2oTXgLLOZNn4QGX3PgY=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "lpad": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz" - } - }, "grunt-contrib-clean": { - "version": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.5.0.tgz", - "integrity": "sha1-9T397ghJsce0Dp67umn0jExgecU=", - "dev": true, - "requires": { - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - } + "version": "0.6.0", + "from": "grunt-contrib-clean@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz" }, "grunt-contrib-coffee": { - "version": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.7.0.tgz", - "integrity": "sha1-ixIme3TnM4sfKcW4txj7n4mYLxM=", - "dev": true, - "requires": { - "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz" - }, + "version": "0.11.1", + "from": "grunt-contrib-coffee@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.11.1.tgz", "dependencies": { - "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.3.tgz", - "integrity": "sha1-Y1XTLPGwTN/2tITl5xF4Ky8MOb4=", - "dev": true + "lodash": { + "version": "2.4.2", + "from": "lodash@>=2.4.1 <2.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" } } }, - "grunt-contrib-requirejs": { - "version": "https://registry.npmjs.org/grunt-contrib-requirejs/-/grunt-contrib-requirejs-0.4.1.tgz", - "integrity": "sha1-hiuhZxQbio82r1RE/qsycruM9L0=", - "dev": true, - "requires": { - "requirejs": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz" - } - }, - "grunt-contrib-watch": { - "version": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-0.5.3.tgz", - "integrity": "sha1-fZ61Rl1Qb6FPqspH5uh5CoLBye4=", - "dev": true, - "requires": { - "gaze": "https://registry.npmjs.org/gaze/-/gaze-0.4.3.tgz", - "tiny-lr": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz" - } - }, "grunt-execute": { - "version": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz", - "integrity": "sha1-TpRf5XlZzA3neZCDtrQq7ZYWNQo=" + "version": "0.2.2", + "from": "grunt-execute@>=0.2.2 <0.3.0", + "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz" }, - "grunt-forever": { - "version": "https://registry.npmjs.org/grunt-forever/-/grunt-forever-0.4.7.tgz", - "integrity": "sha1-dHDb4a2hFFAhZKTCoAOHXfj+EzA=", - "dev": true, - "requires": { - "forever": "https://registry.npmjs.org/forever/-/forever-0.14.2.tgz" - } - }, - "grunt-mocha-test": { - "version": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.8.2.tgz", - "integrity": "sha1-emGEuYhg0Phb3qrWvqob199bvus=", - "dev": true, - "requires": { - "mocha": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz" - }, + "grunt-legacy-log": { + "version": "0.1.3", + "from": "grunt-legacy-log@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", "dependencies": { - "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", - "integrity": "sha1-4xPusknHr/qlxHUoaw4RW1mDlGc=", - "dev": true, - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } + "lodash": { + "version": "2.4.2", + "from": "lodash@>=2.4.1 <2.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" }, - "graceful-fs": { - "version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", - "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=", - "dev": true - }, - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - }, - "mocha": { - "version": "https://registry.npmjs.org/mocha/-/mocha-1.14.0.tgz", - "integrity": "sha1-cT223FAAGRqdA1gZXQkIeQ7LYVc=", - "dev": true, - "requires": { - "commander": "http://registry.npmjs.org/commander/-/commander-2.0.0.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz", - "growl": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz", - "jade": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - } + "underscore.string": { + "version": "2.3.3", + "from": "underscore.string@>=2.3.3 <2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" } } }, - "grunt-nodemon": { - "version": "https://registry.npmjs.org/grunt-nodemon/-/grunt-nodemon-0.2.1.tgz", - "integrity": "sha1-G48kiVKSCX3IFNFgOpfo/sHJJPM=", - "dev": true, - "requires": { - "nodemon": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz" - } - }, - "har-schema": { - "version": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha1-RGV/VoiiLP1LckhugbOj+xF0LCk=", - "dev": true, - "requires": { - "ajv": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "har-schema": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" - } - }, - "has-color": { - "version": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", - "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", - "dev": true - }, - "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", - "integrity": "sha1-mzYd7pWpMWQObVBOBWCaj8OsRdI=", - "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-0.3.8.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" - } - }, - "he": { - "version": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "heapdump": { - "version": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz", - "integrity": "sha1-A8dOsN9dZ74Jgug0KbqcnSs7f3g=" - }, - "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz", - "integrity": "sha1-YPvZBFV1Qc0rh5Wr8wihs3cOFVo=" - }, - "hooker": { - "version": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true - }, - "http-errors": { - "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - } - }, - "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz" - } - }, - "i": { - "version": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=", - "dev": true - }, - "iconv-lite": { - "version": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "integrity": "sha1-KXhx9jvlB63Pv8pxXQzQ7thOmmM=", - "requires": { - "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - } - }, - "ieee754": { - "version": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - }, - "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", - "dev": true - }, - "ipaddr.js": { - "version": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" - }, - "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "jade": { - "version": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", - "dev": true, - "requires": { - "commander": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" - }, + "grunt-legacy-log-utils": { + "version": "0.1.1", + "from": "grunt-legacy-log-utils@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", "dependencies": { - "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", - "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", - "dev": true + "lodash": { + "version": "2.4.2", + "from": "lodash@>=2.4.1 <2.5.0", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" + }, + "underscore.string": { + "version": "2.3.3", + "from": "underscore.string@>=2.3.3 <2.4.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" + } + } + }, + "grunt-legacy-util": { + "version": "0.2.0", + "from": "grunt-legacy-util@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", + "dependencies": { + "async": { + "version": "0.1.22", + "from": "async@>=0.1.22 <0.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" + } + } + }, + "grunt-mocha-test": { + "version": "0.11.0", + "from": "grunt-mocha-test@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.11.0.tgz", + "dependencies": { + "fs-extra": { + "version": "0.9.1", + "from": "fs-extra@>=0.9.1 <0.10.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.9.1.tgz" + }, + "glob": { + "version": "3.2.3", + "from": "glob@3.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz" + }, + "graceful-fs": { + "version": "2.0.3", + "from": "graceful-fs@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" + }, + "jsonfile": { + "version": "1.1.1", + "from": "jsonfile@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz" + }, + "minimatch": { + "version": "0.2.14", + "from": "minimatch@>=0.2.11 <0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", - "dev": true + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "mocha": { + "version": "1.20.1", + "from": "mocha@>=1.20.0 <1.21.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz", + "dependencies": { + "mkdirp": { + "version": "0.3.5", + "from": "mkdirp@0.3.5", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + } + } + }, + "ncp": { + "version": "0.5.1", + "from": "ncp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz" + } + } + }, + "gtoken": { + "version": "2.3.0", + "from": "gtoken@>=2.3.0 <3.0.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", + "dependencies": { + "mime": { + "version": "2.4.0", + "from": "mime@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz" + }, + "pify": { + "version": "3.0.0", + "from": "pify@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + } + } + }, + "has": { + "version": "1.0.3", + "from": "has@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + }, + "has-ansi": { + "version": "0.1.0", + "from": "has-ansi@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" + }, + "has-flag": { + "version": "3.0.0", + "from": "has-flag@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + }, + "has-symbols": { + "version": "1.0.0", + "from": "has-symbols@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" + }, + "hawk": { + "version": "0.10.2", + "from": "hawk@>=0.10.2 <0.11.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz" + }, + "he": { + "version": "1.1.1", + "from": "he@1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz" + }, + "heapdump": { + "version": "0.3.12", + "from": "heapdump@>=0.3.2 <0.4.0", + "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.12.tgz" + }, + "hex2dec": { + "version": "1.1.0", + "from": "hex2dec@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.0.tgz" + }, + "hoek": { + "version": "0.7.6", + "from": "hoek@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" + }, + "hooker": { + "version": "0.2.3", + "from": "hooker@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" + }, + "http-errors": { + "version": "1.6.3", + "from": "http-errors@>=1.6.3 <1.7.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + }, + "https-proxy-agent": { + "version": "2.2.1", + "from": "https-proxy-agent@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "dependencies": { + "debug": { + "version": "3.2.6", + "from": "debug@>=3.1.0 <4.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + }, + "ms": { + "version": "2.1.1", + "from": "ms@>=2.1.1 <3.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" + } + } + }, + "iconv-lite": { + "version": "0.4.23", + "from": "iconv-lite@0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz" + }, + "ieee754": { + "version": "1.1.8", + "from": "ieee754@1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz" + }, + "inflight": { + "version": "1.0.6", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + }, + "inherits": { + "version": "2.0.3", + "from": "inherits@2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + }, + "ipaddr.js": { + "version": "1.8.0", + "from": "ipaddr.js@1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz" + }, + "is": { + "version": "3.2.1", + "from": "is@>=3.2.1 <4.0.0", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz" + }, + "is-buffer": { + "version": "1.1.6", + "from": "is-buffer@>=1.1.5 <2.0.0", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + }, + "is-callable": { + "version": "1.1.4", + "from": "is-callable@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz" + }, + "is-date-object": { + "version": "1.0.1", + "from": "is-date-object@>=1.0.1 <2.0.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" + }, + "is-regex": { + "version": "1.0.4", + "from": "is-regex@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" + }, + "is-symbol": { + "version": "1.0.2", + "from": "is-symbol@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz" + }, + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + }, + "jade": { + "version": "0.26.3", + "from": "jade@0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "dependencies": { + "commander": { + "version": "0.6.1", + "from": "commander@0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz" + }, + "mkdirp": { + "version": "0.3.0", + "from": "mkdirp@0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" } } }, "jmespath": { - "version": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "version": "0.15.0", + "from": "jmespath@0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" }, "js-yaml": { - "version": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", - "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", - "dev": true, - "requires": { - "argparse": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "esprima": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" - } + "version": "2.0.5", + "from": "js-yaml@>=2.0.5 <2.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz" }, - "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "json-bigint": { + "version": "0.3.0", + "from": "json-bigint@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz" }, "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "version": "5.0.1", + "from": "json-stringify-safe@5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "jsonfile": { - "version": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - } - }, - "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" - } + "version": "2.4.0", + "from": "jsonfile@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" }, "just-extend": { - "version": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", - "integrity": "sha1-zuAEAx6qv2QG2gOnuE5P6deO8og=" + "version": "3.0.0", + "from": "just-extend@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz" + }, + "jwa": { + "version": "1.1.6", + "from": "jwa@>=1.1.5 <2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz" + }, + "jws": { + "version": "3.1.5", + "from": "jws@>=3.1.5 <4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz" }, "klaw": { - "version": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - } + "version": "1.3.1", + "from": "klaw@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" }, "knox": { - "version": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", - "integrity": "sha1-NzZZNmniTwJP2vcjtqHcSv2DmnE=", - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "stream-counter": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", - "xml2js": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz" - }, + "version": "0.9.2", + "from": "knox@>=0.9.1 <0.10.0", + "resolved": "https://registry.npmjs.org/knox/-/knox-0.9.2.tgz", "dependencies": { "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz", - "integrity": "sha1-9yQSF0MPmd7EwrRz6rkiKOh0wqw=", - "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - } + "version": "1.0.5", + "from": "debug@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz" } } }, - "lazy": { - "version": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", - "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", - "dev": true - }, "lodash": { - "version": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz", - "integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=", - "dev": true + "version": "0.9.2", + "from": "lodash@>=0.9.2 <0.10.0", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz" }, "lodash.get": { - "version": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + "version": "4.4.2", + "from": "lodash.get@>=4.4.2 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" + }, + "lodash.isstring": { + "version": "4.0.1", + "from": "lodash.isstring@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" }, "logger-sharelatex": { - "version": "git+https://github.com/sharelatex/logger-sharelatex.git#13562f8866708fc86aef8202bf5a2ce4d1c6eed7", - "integrity": "sha1-UyQrP2SrbwokPapKc8xi//DC7Xg=", - "requires": { - "bunyan": "https://registry.npmjs.org/bunyan/-/bunyan-1.5.1.tgz", - "chai": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", - "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz", - "grunt-bunyan": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", - "grunt-execute": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz", - "raven": "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz", - "sandboxed-module": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", - "sinon": "https://registry.npmjs.org/sinon/-/sinon-6.3.3.tgz", - "timekeeper": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz" - }, + "version": "1.5.7", + "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", + "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#13562f8866708fc86aef8202bf5a2ce4d1c6eed7", "dependencies": { "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz", - "integrity": "sha1-/hvO2X/h+zknuZjytFYW4GWL4f8=" + "version": "1.12.4", + "from": "coffee-script@1.12.4", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz" } } }, "lolex": { - "version": "https://registry.npmjs.org/lolex/-/lolex-2.7.4.tgz", - "integrity": "sha1-ZRTeLDKR6dbwnUndzkqV99TVqT8=" - }, - "lpad": { - "version": "https://registry.npmjs.org/lpad/-/lpad-0.1.0.tgz", - "integrity": "sha1-5MYMKROTIcWXDeSTtJauDXdM0qc=", - "dev": true + "version": "3.0.0", + "from": "lolex@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-3.0.0.tgz" }, "lru-cache": { - "version": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true + "version": "2.7.3", + "from": "lru-cache@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" }, "lsmod": { - "version": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz", - "integrity": "sha1-mgD3bco26yP6BTUK/htYXUKZ5ks=" + "version": "1.0.0", + "from": "lsmod@1.0.0", + "resolved": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz" }, "lynx": { - "version": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", - "integrity": "sha1-Mxjc7xaQi4KG6Bisz9sxzXQkj50=", - "requires": { - "mersenne": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", - "statsd-parser": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz" - } + "version": "0.1.1", + "from": "lynx@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz" }, "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "merge-descriptors": { - "version": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.1", + "from": "merge-descriptors@1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "mersenne": { - "version": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz", - "integrity": "sha1-QB/ex+whzbngPNPTAhOY2iGycIU=" + "version": "0.0.4", + "from": "mersenne@>=0.0.3 <0.1.0", + "resolved": "https://registry.npmjs.org/mersenne/-/mersenne-0.0.4.tgz" }, "methods": { - "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + "version": "1.1.2", + "from": "methods@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "metrics-sharelatex": { "version": "2.0.3", "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.3", "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#02522a50b7a5ec46eed9b0a93513ef992a21eb45", - "requires": { - "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", - "lynx": "https://registry.npmjs.org/lynx/-/lynx-0.1.1.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - }, "dependencies": { "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", - "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" + "version": "1.6.0", + "from": "coffee-script@1.6.0", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", - "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" + "version": "1.6.0", + "from": "underscore@>=1.6.0 <1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" } } }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha1-Eh+evEnjdm8xGnbh+hyAA8SwOqY=" + "version": "1.4.1", + "from": "mime@1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" }, "mime-db": { - "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha1-UCBHjbPH/pOq17vMTc+GnEM2M5c=" + "version": "1.37.0", + "from": "mime-db@>=1.37.0 <1.38.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz" }, "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha1-kwy3GdVx6QNzhSD4RwkRVIyizBk=", - "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz" - } + "version": "2.1.21", + "from": "mime-types@>=2.1.18 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz" }, "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", - "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - } + "version": "3.0.4", + "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" }, "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" + "version": "0.3.5", + "from": "mkdirp@>=0.3.5 <0.4.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" }, "mocha": { - "version": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", - "requires": { - "browser-stdout": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "debug": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "glob": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "growl": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "he": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz" - }, + "version": "5.2.0", + "from": "mocha@5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", "dependencies": { "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" + "version": "2.15.1", + "from": "commander@2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz" }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", - "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - } + "version": "3.1.0", + "from": "debug@3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" }, "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + "version": "3.5.0", + "from": "diff@3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" }, "glob": { - "version": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", - "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - } + "version": "7.1.2", + "from": "glob@7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" }, "growl": { - "version": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=" + "version": "1.10.5", + "from": "growl@1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" }, "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } + "version": "0.5.1", + "from": "mkdirp@0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", - "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - } + "version": "5.4.0", + "from": "supports-color@5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz" } } }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "module-details-from-path": { + "version": "1.0.3", + "from": "module-details-from-path@>=1.0.3 <2.0.0", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz" }, - "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "ms": { + "version": "2.0.0", + "from": "ms@2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" }, "mv": { - "version": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "version": "2.1.1", + "from": "mv@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", "optional": true, - "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "ncp": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz" - }, "dependencies": { "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "optional": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "optional": true }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", - "optional": true, - "requires": { - "glob": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz" - } + "version": "2.4.5", + "from": "rimraf@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "optional": true } } }, "nan": { - "version": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha1-V042Dk2VSrFpZuwQLAwEn9lhoJk=", - "optional": true - }, - "natives": { - "version": "https://registry.npmjs.org/natives/-/natives-1.1.5.tgz", - "integrity": "sha1-O9vbQQQCPl3SObVvx+89mhesxqo=", - "dev": true - }, - "nconf": { - "version": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz", - "integrity": "sha1-lXDvFe1vmuays8jV5xtm0xk81mE=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", - "ini": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz" - }, - "dependencies": { - "async": { - "version": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", - "integrity": "sha1-32MGD789Myhqdqr21Vophtn/hhk=", - "dev": true - }, - "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz", - "integrity": "sha1-aUJIJvNAX3nxQub8PZrljU27kgA=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } - } - } + "version": "2.11.1", + "from": "nan@>=2.11.1 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz" }, "ncp": { - "version": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "version": "2.0.0", + "from": "ncp@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", "optional": true }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + "version": "0.6.1", + "from": "negotiator@0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" }, "nise": { - "version": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", - "integrity": "sha1-l5qXoZxI1ie7U3A3Jq6NU86NSz4=", - "requires": { - "@sinonjs/formatio": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "just-extend": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz", - "lolex": "https://registry.npmjs.org/lolex/-/lolex-2.7.4.tgz", - "path-to-regexp": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "text-encoding": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" - }, + "version": "1.4.6", + "from": "nise@>=1.4.6 <2.0.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", "dependencies": { "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "lolex": { + "version": "2.7.5", + "from": "lolex@>=2.3.2 <3.0.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz" }, "path-to-regexp": { - "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", - "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", - "requires": { - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - } + "version": "1.7.0", + "from": "path-to-regexp@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz" } } }, + "node-fetch": { + "version": "2.3.0", + "from": "node-fetch@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz" + }, + "node-forge": { + "version": "0.7.6", + "from": "node-forge@>=0.7.4 <0.8.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz" + }, "node-transloadit": { - "version": "https://registry.npmjs.org/node-transloadit/-/node-transloadit-0.0.4.tgz", - "integrity": "sha1-4ZoHheON94NblO2AANHjXmg7zsE=", - "requires": { - "request": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz" - }, + "version": "0.0.4", + "from": "node-transloadit@0.0.4", + "resolved": "https://registry.npmjs.org/node-transloadit/-/node-transloadit-0.0.4.tgz", "dependencies": { "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", - "integrity": "sha1-nbew5TDH8onF6MhDKvGRwv91pbM=" + "version": "3.0.0", + "from": "json-stringify-safe@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz" }, "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" + "version": "1.2.11", + "from": "mime@>=1.2.7 <1.3.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", - "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=" + "version": "0.5.6", + "from": "qs@>=0.5.4 <0.6.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.16.6.tgz", - "integrity": "sha1-hy/kRa5y3iZrN4edatfclI+gHK0=", - "requires": { - "aws-sign": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.1.tgz", - "cookie-jar": "https://registry.npmjs.org/cookie-jar/-/cookie-jar-0.2.0.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.2.0.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-0.0.10.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-0.10.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-3.0.0.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "node-uuid": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" - } + "version": "2.16.6", + "from": "request@>=2.16.6 <2.17.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.16.6.tgz" }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", - "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=" + "version": "1.2.1", + "from": "underscore@1.2.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz" } } }, "node-uuid": { - "version": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" - }, - "nodemon": { - "version": "https://registry.npmjs.org/nodemon/-/nodemon-1.0.20.tgz", - "integrity": "sha1-vBOKNwaMt426UIhbYkl6/f7u3aQ=", - "dev": true, - "requires": { - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "ps-tree": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", - "update-notifier": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz" - }, - "dependencies": { - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", - "dev": true, - "requires": { - "lru-cache": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "sigmund": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - } + "version": "1.4.8", + "from": "node-uuid@>=1.4.1 <1.5.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" }, "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, - "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - } - }, - "noptify": { - "version": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", - "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", - "dev": true, - "requires": { - "nopt": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz" - }, - "dependencies": { - "nopt": { - "version": "https://registry.npmjs.org/nopt/-/nopt-2.0.0.tgz", - "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", - "dev": true, - "requires": { - "abbrev": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - } - } - } - }, - "nssocket": { - "version": "https://registry.npmjs.org/nssocket/-/nssocket-0.5.3.tgz", - "integrity": "sha1-iDyi7GBfXtZKTVGQsmJUAZKPj40=", - "dev": true, - "requires": { - "eventemitter2": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "lazy": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz" - } + "version": "1.0.10", + "from": "nopt@>=1.0.10 <1.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" }, "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz", - "integrity": "sha1-oOahcV2u0GLzIrYit/5a/RA1tuI=" + "version": "0.2.0", + "from": "oauth-sign@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.2.0.tgz" }, - "object-assign": { - "version": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=", - "dev": true + "object-keys": { + "version": "1.0.12", + "from": "object-keys@>=1.0.12 <2.0.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz" + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "from": "object.getownpropertydescriptors@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz" }, "on-finished": { - "version": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } + "version": "2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" }, "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } + "version": "1.4.0", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" }, - "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } + "p-limit": { + "version": "2.0.0", + "from": "p-limit@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz" }, - "os-homedir": { - "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", - "dev": true, - "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - } + "p-try": { + "version": "2.0.0", + "from": "p-try@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz" }, "parseurl": { - "version": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "version": "1.3.2", + "from": "parseurl@>=1.3.2 <1.4.0", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz" }, "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "version": "1.0.1", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + }, + "path-parse": { + "version": "1.0.6", + "from": "path-parse@>=1.0.5 <2.0.0", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" }, "path-to-regexp": { - "version": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "pathval": { - "version": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" + "version": "1.1.0", + "from": "pathval@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz" }, - "performance-now": { - "version": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "pkginfo": { - "version": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=", - "dev": true + "pify": { + "version": "4.0.1", + "from": "pify@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" }, "pngcrush": { - "version": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz", - "integrity": "sha1-v2dW6s2h+rNJwHdo6AXMEA0o+Tc=", - "requires": { - "gettemporaryfilepath": "https://registry.npmjs.org/gettemporaryfilepath/-/gettemporaryfilepath-0.0.1.tgz" - } + "version": "0.0.3", + "from": "pngcrush@0.0.3", + "resolved": "https://registry.npmjs.org/pngcrush/-/pngcrush-0.0.3.tgz" }, "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha1-o31zL0JxtKsa0HDTVQjoKQeI/6o=" + "version": "2.0.0", + "from": "process-nextick-args@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz" }, - "prompt": { - "version": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz", - "integrity": "sha1-V3VPZPVD/XsIRXB8gY7OYY8F/9w=", - "dev": true, - "requires": { - "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "read": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "revalidator": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "utile": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "winston": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz" - } + "prom-client": { + "version": "11.2.0", + "from": "prom-client@>=11.1.3 <12.0.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.2.0.tgz" }, "proxy-addr": { - "version": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha1-7PxzO/Iv+Mb0B/onUye5q2fki5M=", - "requires": { - "forwarded": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "ipaddr.js": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz" - } + "version": "2.0.4", + "from": "proxy-addr@>=2.0.4 <2.1.0", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz" }, - "ps-tree": { - "version": "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz", - "integrity": "sha1-2/jXUqf+Ivp9WGNWiUmWEOknbdw=", - "dev": true, - "requires": { - "event-stream": "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz" - } - }, - "psl": { - "version": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha1-YPWA02AXC7cip5fMcEQR5tqFDGc=", - "dev": true + "pseudomap": { + "version": "1.0.2", + "from": "pseudomap@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" }, "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "version": "1.3.2", + "from": "punycode@1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" }, "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + "version": "6.5.2", + "from": "qs@6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" }, "querystring": { - "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "version": "0.2.0", + "from": "querystring@0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" }, "range-parser": { - "version": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + "version": "1.2.0", + "from": "range-parser@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" }, "raven": { - "version": "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz", - "integrity": "sha1-lJwTTbAooZC3u/j3kKrlQbfAIL0=", - "requires": { - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "lsmod": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz", - "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz" - }, + "version": "1.2.1", + "from": "raven@>=1.1.3 <2.0.0", + "resolved": "https://registry.npmjs.org/raven/-/raven-1.2.1.tgz", "dependencies": { "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", - "integrity": "sha1-Zyj8BFnEUNeWqZwxg3VpvfZy1yg=" + "version": "3.0.0", + "from": "uuid@3.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz" } } }, "raw-body": { - "version": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha1-GzJOzmtXBuFThVvBFIxlu39uoMM=", - "requires": { - "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "iconv-lite": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - }, - "read": { - "version": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "dev": true, - "requires": { - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz" - } + "version": "2.3.3", + "from": "raw-body@2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz" }, "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "dependencies": { - "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - } - } + "version": "2.3.6", + "from": "readable-stream@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" }, "recluster": { - "version": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz", - "integrity": "sha1-aKRx3ZC2obl3ZjTPdpZAWutWeJU=" + "version": "0.3.7", + "from": "recluster@>=0.3.7 <0.4.0", + "resolved": "https://registry.npmjs.org/recluster/-/recluster-0.3.7.tgz" }, "request": { - "version": "https://registry.npmjs.org/request/-/request-2.14.0.tgz", - "integrity": "sha1-DYrLsLFMGrguAAt9OB+oyA0afYg=", - "requires": { - "form-data": "0.0.7", - "mime": "1.2.9" - }, + "version": "2.14.0", + "from": "request@2.14.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.14.0.tgz", "dependencies": { "form-data": { "version": "0.0.7", - "requires": { - "async": "0.1.22", - "combined-stream": "0.0.4", - "mime": "1.2.9" - }, + "from": "form-data@~0.0.3", "dependencies": { "async": { - "version": "0.1.22" + "version": "0.1.22", + "from": "async@~0.1.9" }, "combined-stream": { "version": "0.0.4", - "requires": { - "delayed-stream": "0.0.5" - }, + "from": "combined-stream@~0.0.4", "dependencies": { "delayed-stream": { - "version": "0.0.5" + "version": "0.0.5", + "from": "delayed-stream@0.0.5" } } } } }, "mime": { - "version": "1.2.9" + "version": "1.2.9", + "from": "mime@~1.2.7" } } }, + "require-in-the-middle": { + "version": "3.1.0", + "from": "require-in-the-middle@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-3.1.0.tgz" + }, "require-like": { - "version": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" + "version": "0.1.2", + "from": "require-like@0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" }, - "requirejs": { - "version": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz", - "integrity": "sha1-3Xj9LTQYDA1ixyS1uK68BmTgNm8=", - "dev": true + "resolve": { + "version": "1.8.1", + "from": "resolve@>=1.5.0 <2.0.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz" }, "response": { - "version": "https://registry.npmjs.org/response/-/response-0.14.0.tgz", - "integrity": "sha1-BmNS/z5rAm0EdYCUB2Y7Rob9JpY=", - "requires": { - "best-encoding": "https://registry.npmjs.org/best-encoding/-/best-encoding-0.1.1.tgz", - "bl": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, + "version": "0.14.0", + "from": "response@0.14.0", + "resolved": "https://registry.npmjs.org/response/-/response-0.14.0.tgz", "dependencies": { "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "integrity": "sha1-WCA+7Ybjpe8XrtK32evUfwpg3RA=" + "version": "1.2.11", + "from": "mime@>=1.2.11 <1.3.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } } }, - "revalidator": { - "version": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", - "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=", - "dev": true + "retry-axios": { + "version": "0.3.2", + "from": "retry-axios@>=0.3.2 <0.4.0", + "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz" + }, + "retry-request": { + "version": "4.0.0", + "from": "retry-request@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz" }, "rimraf": { - "version": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + "version": "2.2.8", + "from": "rimraf@2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" }, "safe-buffer": { - "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "version": "5.1.2", + "from": "safe-buffer@5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" }, "safe-json-stringify": { - "version": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha1-NW5EvJjx+TzkXfFLzXwBzahuCv0=", + "version": "1.2.0", + "from": "safe-json-stringify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", "optional": true }, "safer-buffer": { - "version": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "version": "2.1.2", + "from": "safer-buffer@>=2.1.2 <3.0.0", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" }, "sandboxed-module": { - "version": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", - "integrity": "sha1-x+VFkzm7y6KMUwPusz9ug4e/upY=", - "requires": { - "require-like": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - } + "version": "2.0.3", + "from": "sandboxed-module@latest", + "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz" }, "sax": { - "version": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "version": "1.2.1", + "from": "sax@1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz" }, "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", - "dev": true + "version": "5.6.0", + "from": "semver@>=5.5.0 <6.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz" }, "send": { - "version": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha1-bsyh4PjBVtFBWXVZhI32RzCmu8E=", - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "depd": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "destroy": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "etag": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "fresh": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "mime": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "statuses": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" - }, + "version": "0.16.2", + "from": "send@0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", "dependencies": { "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic=" + "version": "1.4.0", + "from": "statuses@>=1.4.0 <1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz" } } }, "serve-static": { - "version": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha1-CV6Ecv1bRiN9tQzkhqQ/S4bGzsE=", - "requires": { - "encodeurl": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "escape-html": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "send": "https://registry.npmjs.org/send/-/send-0.16.2.tgz" - } + "version": "1.13.2", + "from": "serve-static@1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz" }, "setprototypeof": { - "version": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=" + "version": "1.1.0", + "from": "setprototypeof@1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" }, "settings-sharelatex": { - "version": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", - "integrity": "sha1-y501ImPtJiQDJ1OCSmJfUYb0U2M=", - "requires": { - "coffee-script": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" - }, + "version": "1.0.0", + "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", + "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", "dependencies": { "coffee-script": { - "version": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz", - "integrity": "sha1-gIs5bhEPU9AhoZpO8fZb4OjjX6M=" + "version": "1.6.0", + "from": "coffee-script@1.6.0", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" } } }, + "shimmer": { + "version": "1.2.0", + "from": "shimmer@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.0.tgz" + }, "sigmund": { - "version": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true + "version": "1.0.1", + "from": "sigmund@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" }, "sinon": { - "version": "https://registry.npmjs.org/sinon/-/sinon-6.3.3.tgz", - "integrity": "sha1-w6VbcEYXTBOeh6PJTJIsv0MjpOc=", - "requires": { - "@sinonjs/commons": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.0.2.tgz", - "@sinonjs/formatio": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "@sinonjs/samsam": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.1.tgz", - "diff": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "lodash.get": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "lolex": "https://registry.npmjs.org/lolex/-/lolex-2.7.4.tgz", - "nise": "https://registry.npmjs.org/nise/-/nise-1.4.5.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "type-detect": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - }, + "version": "7.1.1", + "from": "sinon@latest", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.1.1.tgz", "dependencies": { "diff": { - "version": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=" + "version": "3.5.0", + "from": "diff@>=3.5.0 <4.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" }, "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", - "requires": { - "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - } + "version": "5.5.0", + "from": "supports-color@>=5.5.0 <6.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" } } }, "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz", - "integrity": "sha1-XvSBuVGnspr/30r9fyaDj8ESD4Q=", - "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" - } + "version": "0.1.4", + "from": "sntp@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.1.4.tgz" }, - "sprintf-js": { - "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "source-map": { + "version": "0.6.1", + "from": "source-map@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" }, - "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "dashdash": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "tweetnacl": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - } + "split": { + "version": "1.0.1", + "from": "split@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz" }, "stack-trace": { - "version": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + "version": "0.0.9", + "from": "stack-trace@0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" }, "statsd-parser": { - "version": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz", - "integrity": "sha1-y9JDlTzELv/VSLXSI4jtaJ7GOb0=" + "version": "0.0.4", + "from": "statsd-parser@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/statsd-parser/-/statsd-parser-0.0.4.tgz" }, "statuses": { - "version": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "1.5.0", + "from": "statuses@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" }, "stream-browserify": { - "version": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" - }, - "dependencies": { - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" - } - } - } + "version": "2.0.1", + "from": "stream-browserify@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz" }, "stream-buffers": { - "version": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz", - "integrity": "sha1-GBwI1bs2kARfaUAbmuanoM8zE/w=" + "version": "0.2.6", + "from": "stream-buffers@>=0.2.5 <0.3.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-0.2.6.tgz" }, "stream-counter": { - "version": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz", - "integrity": "sha1-kc8lac5NxQYf6816yyY5SloRR1E=" + "version": "1.0.0", + "from": "stream-counter@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz" + }, + "stream-shift": { + "version": "1.0.0", + "from": "stream-shift@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" }, "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "version": "1.1.1", + "from": "string_decoder@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" }, "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", - "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", - "dev": true + "version": "0.3.0", + "from": "strip-ansi@>=0.3.0 <0.4.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" + }, + "supports-color": { + "version": "0.2.0", + "from": "supports-color@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" + }, + "tdigest": { + "version": "0.1.1", + "from": "tdigest@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz" + }, + "teeny-request": { + "version": "3.9.1", + "from": "teeny-request@>=3.6.0 <4.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.9.1.tgz", + "dependencies": { + "uuid": { + "version": "3.3.2", + "from": "uuid@>=3.3.2 <4.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + } + } }, "text-encoding": { - "version": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz", - "integrity": "sha1-45mpgiV6J22uQou5KEXLcb3CbRk=" + "version": "0.6.4", + "from": "text-encoding@>=0.6.4 <0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" + }, + "through": { + "version": "2.3.8", + "from": "through@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, + "through2": { + "version": "2.0.5", + "from": "through2@>=2.0.3 <3.0.0", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" }, "timekeeper": { - "version": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz", - "integrity": "sha1-Lziu4elLEd1m2FgP8aqdzGoroNg=" - }, - "timespan": { - "version": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz", - "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk=", - "dev": true - }, - "tiny-lr": { - "version": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.0.4.tgz", - "integrity": "sha1-gGGFR/Y/aX0Fy0DEwsSwg1Ia77Y=", - "dev": true, - "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "faye-websocket": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.4.4.tgz", - "noptify": "https://registry.npmjs.org/noptify/-/noptify-0.0.3.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz" - }, - "dependencies": { - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", - "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", - "dev": true - }, - "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-0.5.6.tgz", - "integrity": "sha1-MbGtBYVnZRxSaSFQa5qHk5EaA4Q=", - "dev": true - } - } - }, - "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", - "dev": true, - "requires": { - "psl": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - }, - "dependencies": { - "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } + "version": "1.0.0", + "from": "timekeeper@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz" }, "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz", - "integrity": "sha1-aFPCr7GyEJ5FYp5JK9419Fnqaeg=" - }, - "tweetnacl": { - "version": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true + "version": "0.2.0", + "from": "tunnel-agent@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" }, "type-detect": { - "version": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=" + "version": "4.0.8", + "from": "type-detect@>=4.0.5 <5.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" }, "type-is": { - "version": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=", - "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz" - } + "version": "1.6.16", + "from": "type-is@>=1.6.16 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz" }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz", - "integrity": "sha1-EzXF5PXm0zu7SwBrqMhqAPVW3gg=" + "version": "1.5.2", + "from": "underscore@>=1.5.2 <1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" }, "underscore.string": { - "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", - "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=", - "dev": true + "version": "2.2.1", + "from": "underscore.string@>=2.2.1 <2.3.0", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz" }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "update-notifier": { - "version": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.10.tgz", - "integrity": "sha1-IVy+EFM2nw1KRPhLUeuny4BIRpU=", - "dev": true, - "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", - "configstore": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", - "request": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz" - }, - "dependencies": { - "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - }, - "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz" - } - }, - "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", - "dev": true - }, - "request": { - "version": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", - "dev": true, - "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "performance-now": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "uuid": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" - } - }, - "safe-buffer": { - "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - } - }, - "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", - "dev": true - } - } + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" }, "url": { - "version": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", - "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", - "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" - } - }, - "user-home": { - "version": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", - "dev": true + "version": "0.10.3", + "from": "url@0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz" }, "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "version": "1.0.2", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" }, - "utile": { - "version": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz", - "integrity": "sha1-kwyI6ZCY1iIINMNWy9mncFItkNc=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "deep-equal": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "i": "https://registry.npmjs.org/i/-/i-0.3.6.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "ncp": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", - "rimraf": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - }, - "dependencies": { - "ncp": { - "version": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz", - "integrity": "sha1-q8xsvT7C7Spyn/bnwfqPAXhKhXQ=", - "dev": true - } - } + "util.promisify": { + "version": "1.0.0", + "from": "util.promisify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz" }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true + "version": "1.0.1", + "from": "utils-merge@1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" }, "vary": { - "version": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" - } - }, - "watch": { - "version": "https://registry.npmjs.org/watch/-/watch-0.13.0.tgz", - "integrity": "sha1-/MbSs/DoxzSC61Qjmhn9W8+adTw=", - "dev": true, - "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" - }, - "dependencies": { - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } + "version": "1.1.2", + "from": "vary@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" }, "which": { - "version": "https://registry.npmjs.org/which/-/which-1.0.9.tgz", - "integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=", - "dev": true - }, - "winston": { - "version": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz", - "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=", - "dev": true, - "requires": { - "async": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "colors": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "cycle": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "eyes": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "pkginfo": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz", - "stack-trace": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - } - }, - "wordwrap": { - "version": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true + "version": "1.0.9", + "from": "which@>=1.0.5 <1.1.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz" }, "wrappy": { - "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xdg-basedir": { - "version": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", - "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=", - "dev": true, - "requires": { - "user-home": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz" - } + "version": "1.0.2", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" }, "xml2js": { - "version": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha1-aGwg8hMgnpSr8NG88e+qKRx4J6c=", - "requires": { - "sax": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "xmlbuilder": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" - } + "version": "0.4.19", + "from": "xml2js@0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz" }, "xmlbuilder": { - "version": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "version": "9.0.7", + "from": "xmlbuilder@>=9.0.1 <9.1.0", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@>=4.0.1 <4.1.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "yallist": { + "version": "3.0.3", + "from": "yallist@>=3.0.2 <4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" } } } diff --git a/services/filestore/package.json b/services/filestore/package.json index 83f4d53120..046387f5c6 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -47,20 +47,9 @@ "body-parser": "^1.2.0" }, "devDependencies": { - "sinon": "", - "chai": "", - "sandboxed-module": "", "bunyan": "^1.3.5", - "grunt": "0.4.1", - "grunt-bunyan": "^0.5.0", - "grunt-execute": "^0.2.2", - "grunt-mocha-test": "~0.8.2", - "grunt-contrib-requirejs": "0.4.1", - "grunt-contrib-coffee": "0.7.0", - "grunt-contrib-watch": "0.5.3", - "grunt-nodemon": "0.2.1", - "grunt-contrib-clean": "0.5.0", - "grunt-concurrent": "0.4.2", - "grunt-forever": "~0.4.4" + "chai": "4.2.0", + "sandboxed-module": "2.0.3", + "sinon": "7.1.1" } } From 87435274522e13d09d3d755fc934e4038f981c9f Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Thu, 29 Nov 2018 16:42:26 +0000 Subject: [PATCH 54/69] bump metrics to 2.0.4 --- services/filestore/npm-shrinkwrap.json | 6 +++--- services/filestore/package.json | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 548b2736f6..9d91412475 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1194,9 +1194,9 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "metrics-sharelatex": { - "version": "2.0.3", - "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.3", - "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#02522a50b7a5ec46eed9b0a93513ef992a21eb45", + "version": "2.0.4", + "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.4", + "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#49c4bc072f707eb6252adfec540268dfbea1615b", "dependencies": { "coffee-script": { "version": "1.6.0", diff --git a/services/filestore/package.json b/services/filestore/package.json index 046387f5c6..c13e416fa0 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -24,13 +24,15 @@ "dependencies": { "async": "~0.2.10", "aws-sdk": "^2.1.39", + "body-parser": "^1.2.0", "coffee-script": "~1.7.1", "express": "^4.2.0", "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.3", "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", + "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.4", + "mocha": "5.2.0", "node-transloadit": "0.0.4", "node-uuid": "~1.4.1", "pngcrush": "0.0.3", @@ -42,9 +44,7 @@ "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", "stream-browserify": "^2.0.1", "stream-buffers": "~0.2.5", - "underscore": "~1.5.2", - "mocha": "5.2.0", - "body-parser": "^1.2.0" + "underscore": "~1.5.2" }, "devDependencies": { "bunyan": "^1.3.5", From 5d927d30b646d75f86738b57aebf737f64961079 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 5 Dec 2018 10:53:11 +0000 Subject: [PATCH 55/69] update build scripts to 1.1.10 --- services/filestore/.gitignore | 1 + services/filestore/Dockerfile | 2 +- services/filestore/Makefile | 2 +- services/filestore/buildscript.txt | 6 +++--- services/filestore/docker-compose.ci.yml | 2 +- services/filestore/docker-compose.yml | 2 +- services/filestore/package.json | 2 +- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/services/filestore/.gitignore b/services/filestore/.gitignore index 9cb1da9a39..fcc07f9527 100644 --- a/services/filestore/.gitignore +++ b/services/filestore/.gitignore @@ -40,6 +40,7 @@ test/IntergrationTests/js/* data/*/* app.js +app.js.map cluster.js app/js/* test/IntergrationTests/js/* diff --git a/services/filestore/Dockerfile b/services/filestore/Dockerfile index 3ced888df3..2845544ae6 100644 --- a/services/filestore/Dockerfile +++ b/services/filestore/Dockerfile @@ -20,4 +20,4 @@ WORKDIR /app RUN chmod 0755 ./install_deps.sh && ./install_deps.sh USER node -CMD ["node","app.js"] +CMD ["node", "--expose-gc", "app.js"] diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 9b34c3ccb9..d39712d9fe 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.9 +# Version: 1.1.10 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) diff --git a/services/filestore/buildscript.txt b/services/filestore/buildscript.txt index d4c335faa9..041e0b4745 100644 --- a/services/filestore/buildscript.txt +++ b/services/filestore/buildscript.txt @@ -1,9 +1,9 @@ ---script-version=1.1.9 +--script-version=1.1.10 filestore --node-version=6.9.5 --acceptance-creds=None --language=coffeescript ---dependencies=['mongo', 'redis'] ---docker-repos=['gcr.io/overleaf-ops'] +--dependencies=mongo,redis +--docker-repos=gcr.io/overleaf-ops --kube=false --build-target=docker diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 17c4ddd2bf..5ab90e1825 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.9 +# Version: 1.1.10 version: "2" diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index dcbc14e683..aeceafb3f3 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.9 +# Version: 1.1.10 version: "2" diff --git a/services/filestore/package.json b/services/filestore/package.json index c13e416fa0..e35a2c009b 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -13,7 +13,7 @@ "test:unit": "npm run compile:app && npm run compile:unit_tests && npm run test:unit:_run -- --grep=$MOCHA_GREP", "compile:unit_tests": "[ ! -e test/unit/coffee ] && echo 'No unit tests to compile' || coffee -o test/unit/js -c test/unit/coffee", "compile:acceptance_tests": "[ ! -e test/acceptance/coffee ] && echo 'No acceptance tests to compile' || coffee -o test/acceptance/js -c test/acceptance/coffee", - "compile:app": "([ -e app/coffee ] && coffee $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')", + "compile:app": "([ -e app/coffee ] && coffee -m $COFFEE_OPTIONS -o app/js -c app/coffee || echo 'No CoffeeScript folder to compile') && ( [ -e app.coffee ] && coffee -m $COFFEE_OPTIONS -c app.coffee || echo 'No CoffeeScript app to compile')", "compile:all": "npm run compile:app && npm run compile:unit_tests && npm run compile:acceptance_tests && npm run compile:smoke_tests", "start": "npm run compile:app && node $NODE_APP_OPTIONS app.js", "nodemon": "nodemon --config nodemon.json", From 25275212af52d40a2133d9305a132bd7a7834f91 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 5 Dec 2018 12:36:32 +0000 Subject: [PATCH 56/69] bump metrics to 2.0.7 --- services/filestore/npm-shrinkwrap.json | 11 +++-------- services/filestore/package.json | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 9d91412475..14a32672a7 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1194,19 +1194,14 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "metrics-sharelatex": { - "version": "2.0.4", - "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.4", - "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#49c4bc072f707eb6252adfec540268dfbea1615b", + "version": "2.0.7", + "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.7", + "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#3c7dd668d1153c13acee9cceb3a8ce24495b7c86", "dependencies": { "coffee-script": { "version": "1.6.0", "from": "coffee-script@1.6.0", "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" - }, - "underscore": { - "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" } } }, diff --git a/services/filestore/package.json b/services/filestore/package.json index e35a2c009b..fab7033316 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -31,7 +31,7 @@ "heapdump": "^0.3.2", "knox": "~0.9.1", "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.4", + "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.7", "mocha": "5.2.0", "node-transloadit": "0.0.4", "node-uuid": "~1.4.1", From 621425656823df768603751bb0781ef367ea5b49 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Wed, 2 Jan 2019 09:47:38 +0000 Subject: [PATCH 57/69] Bump logger to v1.5.8 --- services/filestore/npm-shrinkwrap.json | 11 ++++++++--- services/filestore/package.json | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 14a32672a7..09537db297 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1142,9 +1142,9 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" }, "logger-sharelatex": { - "version": "1.5.7", - "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", - "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#13562f8866708fc86aef8202bf5a2ce4d1c6eed7", + "version": "1.5.8", + "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.8", + "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#3f841b014572706e472c47fe0d0c0c1e569bad8c", "dependencies": { "coffee-script": { "version": "1.12.4", @@ -1202,6 +1202,11 @@ "version": "1.6.0", "from": "coffee-script@1.6.0", "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.6.0.tgz" + }, + "underscore": { + "version": "1.6.0", + "from": "underscore@>=1.6.0 <1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" } } }, diff --git a/services/filestore/package.json b/services/filestore/package.json index fab7033316..e09395c41f 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -30,7 +30,7 @@ "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", - "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.7", + "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.8", "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.7", "mocha": "5.2.0", "node-transloadit": "0.0.4", From 3b6eba33baf04238d17312edfedded5e46f3ea1a Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Wed, 2 Jan 2019 09:53:53 +0000 Subject: [PATCH 58/69] Remove `Metrics.inc "startup"` from app.coffee --- services/filestore/app.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index b172e3ba88..549cd19bfe 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -23,8 +23,6 @@ Metrics.memory.monitor(logger) app.use Metrics.http.monitor(logger) -Metrics.inc "startup" - app.use (req, res, next)-> Metrics.inc "http-request" next() From 594b403bd36f16f1ec9098562b735188f3bdf13f Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Wed, 2 Jan 2019 09:55:31 +0000 Subject: [PATCH 59/69] Move metrics init to start of app.coffee --- services/filestore/app.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index 549cd19bfe..c1484142b1 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -1,3 +1,5 @@ +Metrics = require "metrics-sharelatex" +Metrics.initialize("filestore") express = require('express') bodyParser = require "body-parser" logger = require('logger-sharelatex') @@ -15,8 +17,6 @@ app = express() if settings.sentry?.dsn? logger.initializeErrorReporting(settings.sentry.dsn) -Metrics = require "metrics-sharelatex" -Metrics.initialize("filestore") Metrics.open_sockets.monitor(logger) Metrics.event_loop?.monitor(logger) Metrics.memory.monitor(logger) From 676380974871ca72b587c083db1e948f687dab8b Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Thu, 3 Jan 2019 16:27:45 +0000 Subject: [PATCH 60/69] Bump logger to v1.5.9 --- services/filestore/npm-shrinkwrap.json | 6 +++--- services/filestore/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 3076829a85..43599f526b 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1155,9 +1155,9 @@ "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz" }, "logger-sharelatex": { - "version": "1.5.8", - "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.8", - "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#3f841b014572706e472c47fe0d0c0c1e569bad8c", + "version": "1.5.9", + "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9", + "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#e8e1b95052f62e107336053e4a983f81cdbdf589", "dependencies": { "coffee-script": { "version": "1.12.4", diff --git a/services/filestore/package.json b/services/filestore/package.json index e6be998bef..4f25056dee 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -30,7 +30,7 @@ "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", - "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.8", + "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9", "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.12", "mocha": "5.2.0", "node-transloadit": "0.0.4", From b522fe15316ebdb64dd8dcb1ed8af50f93f31ec0 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 4 Jan 2019 16:03:22 +0000 Subject: [PATCH 61/69] Remove grunt --- services/filestore/Gruntfile.coffee | 97 ----------------------------- 1 file changed, 97 deletions(-) delete mode 100644 services/filestore/Gruntfile.coffee diff --git a/services/filestore/Gruntfile.coffee b/services/filestore/Gruntfile.coffee deleted file mode 100644 index ebf94e2fc9..0000000000 --- a/services/filestore/Gruntfile.coffee +++ /dev/null @@ -1,97 +0,0 @@ -module.exports = (grunt) -> - - # Project configuration. - grunt.initConfig - forever: - app: - options: - index: "app.js" - - coffee: - server: - expand: true, - flatten: false, - cwd: 'app/coffee', - src: ['**/*.coffee'], - dest: 'app/js/', - ext: '.js' - - app_server: - expand: true, - flatten: false, - src: ['app.coffee', 'cluster.coffee'], - dest: './', - ext: '.js' - - server_tests: - expand: true, - flatten: false, - cwd: 'test/acceptence/coffee', - src: ['*.coffee', '**/*.coffee'], - dest: 'test/acceptence/js/', - ext: '.js' - - server_acc_tests: - expand: true, - flatten: false, - cwd: 'test/unit/coffee', - src: ['*.coffee', '**/*.coffee'], - dest: 'test/unit/js/', - ext: '.js' - - watch: - server_coffee: - files: ['app/*.coffee','app/**/*.coffee', 'test/unit/coffee/**/*.coffee', 'test/unit/coffee/*.coffee', "app.coffee", "cluster.coffee"] - tasks: ["clean", 'coffee', 'mochaTest'] - - clean: ["app/js", "test/unit/js", "app.js"] - - nodemon: - dev: - script: 'app.js' - options: - ext:"*.coffee" - - execute: - app: - src: "app.js" - - concurrent: - dev: - tasks: ['nodemon', 'watch'] - options: - logConcurrentOutput: true - - mochaTest: - unit: - src: ["test/unit/js/#{grunt.option('feature') or '**'}/*.js"] - options: - reporter: grunt.option('reporter') or 'spec' - grep: grunt.option("grep") - acceptence: - src: ["test/acceptence/js/#{grunt.option('feature') or '**'}/*.js"] - options: - reporter: grunt.option('reporter') or 'spec' - grep: grunt.option("grep") - - - grunt.loadNpmTasks 'grunt-contrib-coffee' - grunt.loadNpmTasks 'grunt-contrib-watch' - grunt.loadNpmTasks 'grunt-nodemon' - grunt.loadNpmTasks 'grunt-contrib-clean' - grunt.loadNpmTasks 'grunt-concurrent' - grunt.loadNpmTasks 'grunt-mocha-test' - grunt.loadNpmTasks 'grunt-forever' - grunt.loadNpmTasks 'grunt-bunyan' - grunt.loadNpmTasks 'grunt-execute' - - grunt.registerTask "test:unit", ["coffee", "mochaTest:unit"] - grunt.registerTask "test:acceptence", ["coffee", "mochaTest:acceptence"] - grunt.registerTask "test:acceptance", ["test:acceptence"] - - grunt.registerTask "ci", "test:unit" - grunt.registerTask 'default', ['coffee', 'bunyan','execute'] - - grunt.registerTask "compile", "coffee" - grunt.registerTask "install", "compile" - From c8d146b571b29ba7c4b7e4ce58314c5d33f8e0a3 Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 4 Jan 2019 16:03:45 +0000 Subject: [PATCH 62/69] Bump settings to v1.1.0 --- services/filestore/npm-shrinkwrap.json | 6 +++--- services/filestore/package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 43599f526b..0de5dd3f0a 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -1689,9 +1689,9 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" }, "settings-sharelatex": { - "version": "1.0.0", - "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", - "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#cbc5e41c1dbe6789721a14b3fdae05bf22546559", + "version": "1.1.0", + "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0", + "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#93f63d029b52fef8825c3a401b2b6a7ba29b4750", "dependencies": { "coffee-script": { "version": "1.6.0", diff --git a/services/filestore/package.json b/services/filestore/package.json index 4f25056dee..158f653aee 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -41,7 +41,7 @@ "request": "2.14.0", "response": "0.14.0", "rimraf": "2.2.8", - "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.0.0", + "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0", "stream-browserify": "^2.0.1", "stream-buffers": "~0.2.5", "underscore": "~1.5.2" From 04211924496a784ab1f990884abaa4a6a837f6fb Mon Sep 17 00:00:00 2001 From: Christopher Hoskin Date: Fri, 4 Jan 2019 16:22:13 +0000 Subject: [PATCH 63/69] Ignore any file ending in .map, wherever it is --- services/filestore/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/filestore/.gitignore b/services/filestore/.gitignore index fcc07f9527..5d1086933c 100644 --- a/services/filestore/.gitignore +++ b/services/filestore/.gitignore @@ -40,7 +40,7 @@ test/IntergrationTests/js/* data/*/* app.js -app.js.map +**/*.map cluster.js app/js/* test/IntergrationTests/js/* From 3614f217e6be0ec606156750f188adb7677f92bb Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Mon, 7 Jan 2019 15:54:24 +0000 Subject: [PATCH 64/69] add enableConversions flag to disable conversions which we can't do on k8 --- .../app/coffee/ImageOptimiser.coffee | 4 +++ services/filestore/app/coffee/SafeExec.coffee | 5 +++ .../filestore/config/settings.defaults.coffee | 1 + .../unit/coffee/ImageOptimiserTests.coffee | 34 +++++++++++++------ .../{SafeExec.coffee => SafeExecTests.coffee} | 10 +++++- 5 files changed, 43 insertions(+), 11 deletions(-) rename services/filestore/test/unit/coffee/{SafeExec.coffee => SafeExecTests.coffee} (81%) diff --git a/services/filestore/app/coffee/ImageOptimiser.coffee b/services/filestore/app/coffee/ImageOptimiser.coffee index 4888e00224..4c4a353f21 100644 --- a/services/filestore/app/coffee/ImageOptimiser.coffee +++ b/services/filestore/app/coffee/ImageOptimiser.coffee @@ -1,5 +1,6 @@ exec = require('child_process').exec logger = require("logger-sharelatex") +Settings = require "settings-sharelatex" module.exports = @@ -10,6 +11,9 @@ module.exports = opts = timeout: 30 * 1000 killSignal: "SIGKILL" + if !Settings.enableConversions + error = new Error("Image conversions are disabled") + return callback(error) exec args, opts,(err, stdout, stderr)-> if err? and err.signal == 'SIGKILL' logger.warn {err: err, stderr: stderr, localPath: localPath}, "optimiser timeout reached" diff --git a/services/filestore/app/coffee/SafeExec.coffee b/services/filestore/app/coffee/SafeExec.coffee index aa8121a360..3559d35c95 100644 --- a/services/filestore/app/coffee/SafeExec.coffee +++ b/services/filestore/app/coffee/SafeExec.coffee @@ -1,6 +1,7 @@ _ = require("underscore") logger = require("logger-sharelatex") child_process = require('child_process') +Settings = require "settings-sharelatex" # execute a command in the same way as 'exec' but with a timeout that # kills all child processes @@ -9,6 +10,10 @@ child_process = require('child_process') # group, then we can kill everything in that process group. module.exports = (command, options, callback = (err, stdout, stderr) ->) -> + if !Settings.enableConversions + error = new Error("Image conversions are disabled") + return callback(error) + # options are {timeout: number-of-milliseconds, killSignal: signal-name} [cmd, args...] = command diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index e04c86c6ea..7c5b01ef90 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -50,6 +50,7 @@ settings = # Any commands to wrap the convert utility in, for example ["nice"], or ["firejail", "--profile=/etc/firejail/convert.profile"] convertCommandPrefix: [] + enableConversions: false # Filestore health check # ---------------------- diff --git a/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee b/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee index e16d8e0917..398eacf70f 100644 --- a/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee +++ b/services/filestore/test/unit/coffee/ImageOptimiserTests.coffee @@ -11,13 +11,16 @@ describe "ImageOptimiser", -> beforeEach -> @child_process = exec : sinon.stub() - + @settings = + enableConversions:true @optimiser = SandboxedModule.require modulePath, requires: 'child_process': @child_process "logger-sharelatex": log:-> err:-> warn:-> + "settings-sharelatex": @settings + @sourcePath = "/this/path/here.eps" @error = "Error" @@ -33,18 +36,29 @@ describe "ImageOptimiser", -> done() - it "should return the errro the file", (done)-> + it "should return the error", (done)-> @child_process.exec.callsArgWith(2, @error) @optimiser.compressPng @sourcePath, (err)=> err.should.equal @error done() - describe 'when optimiser is sigkilled', -> + describe 'when enableConversions is disabled', -> - it 'should not produce an error', (done) -> - @error = new Error('woops') - @error.signal = 'SIGKILL' - @child_process.exec.callsArgWith(2, @error) - @optimiser.compressPng @sourcePath, (err)=> - expect(err).to.equal(null) - done() + it 'should produce an error', (done) -> + @settings.enableConversions = false + @child_process.exec.callsArgWith(2) + @optimiser.compressPng @sourcePath, (err)=> + @child_process.exec.called.should.equal false + expect(err).to.exist + done() + + + describe 'when optimiser is sigkilled', -> + + it 'should not produce an error', (done) -> + @error = new Error('woops') + @error.signal = 'SIGKILL' + @child_process.exec.callsArgWith(2, @error) + @optimiser.compressPng @sourcePath, (err)=> + expect(err).to.equal(null) + done() diff --git a/services/filestore/test/unit/coffee/SafeExec.coffee b/services/filestore/test/unit/coffee/SafeExecTests.coffee similarity index 81% rename from services/filestore/test/unit/coffee/SafeExec.coffee rename to services/filestore/test/unit/coffee/SafeExecTests.coffee index 10d920df11..1be22f3993 100644 --- a/services/filestore/test/unit/coffee/SafeExec.coffee +++ b/services/filestore/test/unit/coffee/SafeExecTests.coffee @@ -9,11 +9,13 @@ SandboxedModule = require('sandboxed-module') describe "SafeExec", -> beforeEach -> - + @settings = + enableConversions:true @safe_exec = SandboxedModule.require modulePath, requires: "logger-sharelatex": log:-> err:-> + "settings-sharelatex": @settings @options = {timeout: 10*1000, killSignal: "SIGTERM" } describe "safe_exec", -> @@ -24,6 +26,12 @@ describe "SafeExec", -> should.not.exist(err) done() + it "should error when conversions are disabled", (done) -> + @settings.enableConversions = false + @safe_exec ["/bin/echo", "hello"], @options, (err, stdout, stderr) => + expect(err).to.exist + done() + it "should execute a command with non-zero exit status", (done) -> @safe_exec ["/usr/bin/env", "false"], @options, (err, stdout, stderr) => stdout.should.equal "" From ea845f49351ccd21e5cc87ba3d049fe6c5b39ec9 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Wed, 30 Jan 2019 16:28:37 +0000 Subject: [PATCH 65/69] bulk upgrade to 1.1.12, moved to npm rather than git --- services/filestore/Jenkinsfile | 10 +- services/filestore/Makefile | 6 +- services/filestore/buildscript.txt | 5 +- services/filestore/docker-compose.ci.yml | 13 +- services/filestore/docker-compose.yml | 12 +- services/filestore/npm-shrinkwrap.json | 966 +++++++++-------------- services/filestore/package.json | 7 +- 7 files changed, 429 insertions(+), 590 deletions(-) diff --git a/services/filestore/Jenkinsfile b/services/filestore/Jenkinsfile index 1ab9a075e1..35bd318ab2 100644 --- a/services/filestore/Jenkinsfile +++ b/services/filestore/Jenkinsfile @@ -48,8 +48,11 @@ pipeline { } } - stage('Package and publish build') { + stage('Package and docker push') { steps { + sh 'echo ${BUILD_NUMBER} > build_number.txt' + sh 'touch build.tar.gz' // Avoid tar warning about files changing during read + sh 'DOCKER_COMPOSE_FLAGS="-f docker-compose.ci.yml" make tar' withCredentials([file(credentialsId: 'gcr.io_overleaf-ops', variable: 'DOCKER_REPO_KEY_PATH')]) { sh 'docker login -u _json_key --password-stdin https://gcr.io/overleaf-ops < ${DOCKER_REPO_KEY_PATH}' @@ -60,9 +63,12 @@ pipeline { } } - stage('Publish build number') { + stage('Publish to s3') { steps { sh 'echo ${BRANCH_NAME}-${BUILD_NUMBER} > build_number.txt' + withAWS(credentials:'S3_CI_BUILDS_AWS_KEYS', region:"${S3_REGION_BUILD_ARTEFACTS}") { + s3Upload(file:'build.tar.gz', bucket:"${S3_BUCKET_BUILD_ARTEFACTS}", path:"${JOB_NAME}/${BUILD_NUMBER}.tar.gz") + } withAWS(credentials:'S3_CI_BUILDS_AWS_KEYS', region:"${S3_REGION_BUILD_ARTEFACTS}") { // The deployment process uses this file to figure out the latest build s3Upload(file:'build_number.txt', bucket:"${S3_BUCKET_BUILD_ARTEFACTS}", path:"${JOB_NAME}/latest") diff --git a/services/filestore/Makefile b/services/filestore/Makefile index d39712d9fe..db33518816 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.10 +# Version: 1.1.12 BUILD_NUMBER ?= local BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) @@ -13,7 +13,6 @@ DOCKER_COMPOSE := BUILD_NUMBER=$(BUILD_NUMBER) \ MOCHA_GREP=${MOCHA_GREP} \ docker-compose ${DOCKER_COMPOSE_FLAGS} - clean: docker rmi ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) docker rmi gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) @@ -40,6 +39,9 @@ build: --tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \ . +tar: + $(DOCKER_COMPOSE) up tar + publish: docker push $(DOCKER_REPO)/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) diff --git a/services/filestore/buildscript.txt b/services/filestore/buildscript.txt index 041e0b4745..0ba90519b3 100644 --- a/services/filestore/buildscript.txt +++ b/services/filestore/buildscript.txt @@ -1,9 +1,8 @@ ---script-version=1.1.10 filestore +--language=coffeescript --node-version=6.9.5 --acceptance-creds=None ---language=coffeescript --dependencies=mongo,redis --docker-repos=gcr.io/overleaf-ops ---kube=false --build-target=docker +--script-version=1.1.12 diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 5ab90e1825..36b52f8f8b 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.10 +# Version: 1.1.12 version: "2" @@ -11,6 +11,7 @@ services: user: node command: npm run test:unit:_run + test_acceptance: build: . image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER @@ -26,6 +27,16 @@ services: user: node command: npm run test:acceptance:_run + + + tar: + build: . + image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + volumes: + - ./:/tmp/build/ + command: tar -czf /tmp/build/build.tar.gz --exclude=build.tar.gz --exclude-vcs . + user: root + redis: image: redis diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index aeceafb3f3..8bb7857cb6 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -1,7 +1,7 @@ # This file was auto-generated, do not edit it directly. # Instead run bin/update_build_scripts from # https://github.com/sharelatex/sharelatex-dev-environment -# Version: 1.1.10 +# Version: 1.1.12 version: "2" @@ -33,6 +33,16 @@ services: - redis command: npm run test:acceptance + + + tar: + build: . + image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER + volumes: + - ./:/tmp/build/ + command: tar -czf /tmp/build/build.tar.gz --exclude=build.tar.gz --exclude-vcs . + user: root + redis: image: redis diff --git a/services/filestore/npm-shrinkwrap.json b/services/filestore/npm-shrinkwrap.json index 0de5dd3f0a..7caf791bae 100644 --- a/services/filestore/npm-shrinkwrap.json +++ b/services/filestore/npm-shrinkwrap.json @@ -29,6 +29,21 @@ "from": "@google-cloud/common@>=0.26.0 <0.27.0", "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.26.2.tgz" }, + "nan": { + "version": "2.12.1", + "from": "nan@>=2.11.1 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.12.1.tgz" + }, + "readable-stream": { + "version": "3.1.1", + "from": "readable-stream@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.1.1.tgz" + }, + "string_decoder": { + "version": "1.2.0", + "from": "string_decoder@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz" + }, "through2": { "version": "3.0.0", "from": "through2@>=3.0.0 <4.0.0", @@ -47,14 +62,19 @@ "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.3.1.tgz" }, "@google-cloud/trace-agent": { - "version": "3.5.0", + "version": "3.5.2", "from": "@google-cloud/trace-agent@>=3.2.0 <4.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.5.0.tgz", + "resolved": "https://registry.npmjs.org/@google-cloud/trace-agent/-/trace-agent-3.5.2.tgz", "dependencies": { "@google-cloud/common": { - "version": "0.28.0", - "from": "@google-cloud/common@>=0.28.0 <0.29.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.28.0.tgz" + "version": "0.30.2", + "from": "@google-cloud/common@>=0.30.0 <0.31.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.30.2.tgz" + }, + "google-auth-library": { + "version": "3.0.1", + "from": "google-auth-library@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.0.1.tgz" }, "uuid": { "version": "3.3.2", @@ -118,28 +138,6 @@ "from": "@sindresorhus/is@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.13.0.tgz" }, - "@sinonjs/commons": { - "version": "1.3.0", - "from": "@sinonjs/commons@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.3.0.tgz" - }, - "@sinonjs/formatio": { - "version": "3.0.0", - "from": "@sinonjs/formatio@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.0.0.tgz", - "dependencies": { - "@sinonjs/samsam": { - "version": "2.1.0", - "from": "@sinonjs/samsam@2.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.0.tgz" - } - } - }, - "@sinonjs/samsam": { - "version": "2.1.2", - "from": "@sinonjs/samsam@>=2.1.2 <3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.2.tgz" - }, "@types/caseless": { "version": "0.12.1", "from": "@types/caseless@*", @@ -166,9 +164,9 @@ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz" }, "@types/node": { - "version": "10.12.18", + "version": "10.12.20", "from": "@types/node@*", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz" + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.20.tgz" }, "@types/request": { "version": "2.48.1", @@ -181,14 +179,9 @@ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz" }, "@types/tough-cookie": { - "version": "2.3.4", + "version": "2.3.5", "from": "@types/tough-cookie@*", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.4.tgz" - }, - "abbrev": { - "version": "1.1.1", - "from": "abbrev@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz" }, "accept-encoding": { "version": "0.1.0", @@ -210,52 +203,30 @@ "from": "agent-base@>=4.1.0 <5.0.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz" }, - "ansi-regex": { - "version": "0.2.1", - "from": "ansi-regex@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz" - }, - "ansi-styles": { - "version": "1.1.0", - "from": "ansi-styles@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.1.0.tgz" - }, - "argparse": { - "version": "0.1.16", - "from": "argparse@>=0.1.11 <0.2.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", - "dependencies": { - "underscore": { - "version": "1.7.0", - "from": "underscore@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz" - }, - "underscore.string": { - "version": "2.4.0", - "from": "underscore.string@>=2.4.0 <2.5.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz" - } - } + "ajv": { + "version": "6.7.0", + "from": "ajv@>=6.5.5 <7.0.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz" }, "array-flatten": { "version": "1.1.1", "from": "array-flatten@1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, - "array-from": { - "version": "2.1.1", - "from": "array-from@>=2.1.1 <3.0.0", - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz" - }, "arrify": { "version": "1.0.1", "from": "arrify@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" }, - "assertion-error": { - "version": "1.1.0", - "from": "assertion-error@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + "asn1": { + "version": "0.2.4", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + }, + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" }, "async": { "version": "0.2.10", @@ -267,10 +238,15 @@ "from": "async-listener@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz" }, + "asynckit": { + "version": "0.4.0", + "from": "asynckit@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + }, "aws-sdk": { - "version": "2.366.0", + "version": "2.315.0", "from": "aws-sdk@>=2.1.39 <3.0.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.366.0.tgz", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.315.0.tgz", "dependencies": { "uuid": { "version": "3.1.0", @@ -284,10 +260,20 @@ "from": "aws-sign@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/aws-sign/-/aws-sign-0.2.1.tgz" }, + "aws-sign2": { + "version": "0.7.0", + "from": "aws-sign2@>=0.7.0 <0.8.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + }, + "aws4": { + "version": "1.8.0", + "from": "aws4@>=1.8.0 <2.0.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz" + }, "axios": { "version": "0.18.0", "from": "axios@>=0.18.0 <0.19.0", - "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz" + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz" }, "balanced-match": { "version": "1.0.0", @@ -299,6 +285,11 @@ "from": "base64-js@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz" }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + }, "best-encoding": { "version": "0.1.1", "from": "best-encoding@>=0.1.1 <0.2.0", @@ -310,9 +301,9 @@ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" }, "bindings": { - "version": "1.3.1", + "version": "1.4.0", "from": "bindings@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.1.tgz" + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.4.0.tgz" }, "bintrees": { "version": "1.0.1", @@ -322,24 +313,7 @@ "bl": { "version": "0.7.0", "from": "bl@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.0.34", - "from": "readable-stream@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - } - } + "resolved": "https://registry.npmjs.org/bl/-/bl-0.7.0.tgz" }, "body-parser": { "version": "1.18.3", @@ -391,41 +365,16 @@ "from": "caseless@>=0.3.0 <0.4.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.3.0.tgz" }, - "chai": { - "version": "4.2.0", - "from": "chai@latest", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz" - }, - "chalk": { - "version": "0.5.1", - "from": "chalk@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz" - }, - "check-error": { - "version": "1.0.2", - "from": "check-error@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - }, "coffee-script": { - "version": "1.7.1", - "from": "coffee-script@>=1.7.1 <1.8.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.7.1.tgz" - }, - "colors": { - "version": "0.6.2", - "from": "colors@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" + "version": "1.12.4", + "from": "coffee-script@1.12.4", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz" }, "combined-stream": { "version": "0.0.7", "from": "combined-stream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz" }, - "commander": { - "version": "2.0.0", - "from": "commander@2.0.0", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.0.0.tgz" - }, "concat-map": { "version": "0.0.1", "from": "concat-map@0.0.1", @@ -476,21 +425,16 @@ "from": "cryptiles@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.1.3.tgz" }, - "dateformat": { - "version": "1.0.2-1.2.3", - "from": "dateformat@1.0.2-1.2.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz" + "dashdash": { + "version": "1.14.1", + "from": "dashdash@>=1.12.0 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" }, "debug": { "version": "2.6.9", "from": "debug@2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" }, - "deep-eql": { - "version": "3.0.1", - "from": "deep-eql@>=3.0.1 <4.0.0", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz" - }, "delay": { "version": "4.1.0", "from": "delay@>=4.0.1 <5.0.0", @@ -511,11 +455,6 @@ "from": "destroy@>=1.0.4 <1.1.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, - "diff": { - "version": "1.0.7", - "from": "diff@1.0.7", - "resolved": "https://registry.npmjs.org/diff/-/diff-1.0.7.tgz" - }, "dtrace-provider": { "version": "0.6.0", "from": "dtrace-provider@>=0.6.0 <0.7.0", @@ -525,7 +464,24 @@ "duplexify": { "version": "3.6.1", "from": "duplexify@>=3.6.0 <4.0.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz" + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "from": "readable-stream@>=2.0.0 <3.0.0", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + }, + "string_decoder": { + "version": "1.1.1", + "from": "string_decoder@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "from": "ecc-jsbn@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" }, "ecdsa-sig-formatter": { "version": "1.0.10", @@ -577,36 +533,58 @@ "from": "escape-string-regexp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, - "esprima": { - "version": "1.0.4", - "from": "esprima@>=1.0.2 <1.1.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz" - }, "etag": { "version": "1.8.1", "from": "etag@>=1.8.1 <1.9.0", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" }, - "eventemitter2": { - "version": "0.4.14", - "from": "eventemitter2@>=0.4.13 <0.5.0", - "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz" - }, "events": { "version": "1.1.1", "from": "events@1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz" }, - "exit": { - "version": "0.1.2", - "from": "exit@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - }, "express": { - "version": "4.16.4", + "version": "4.16.3", "from": "express@>=4.2.0 <5.0.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "dependencies": { + "body-parser": { + "version": "1.18.2", + "from": "body-parser@1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz" + }, + "iconv-lite": { + "version": "0.4.19", + "from": "iconv-lite@0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz" + }, + "qs": { + "version": "6.5.1", + "from": "qs@6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz" + }, + "raw-body": { + "version": "2.3.2", + "from": "raw-body@2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "dependencies": { + "depd": { + "version": "1.1.1", + "from": "depd@1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz" + }, + "http-errors": { + "version": "1.6.2", + "from": "http-errors@1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz" + }, + "setprototypeof": { + "version": "1.0.3", + "from": "setprototypeof@1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz" + } + } + }, "statuses": { "version": "1.4.0", "from": "statuses@>=1.4.0 <1.5.0", @@ -616,9 +594,34 @@ }, "extend": { "version": "3.0.2", - "from": "extend@>=3.0.1 <4.0.0", + "from": "extend@>=3.0.2 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" }, + "extsprintf": { + "version": "1.3.0", + "from": "extsprintf@1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + }, + "fast-deep-equal": { + "version": "2.0.1", + "from": "fast-deep-equal@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "from": "fast-json-stable-stringify@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + }, + "fast-text-encoding": { + "version": "1.0.0", + "from": "fast-text-encoding@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz" + }, + "file-uri-to-path": { + "version": "1.0.0", + "from": "file-uri-to-path@1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" + }, "finalhandler": { "version": "1.1.1", "from": "finalhandler@1.1.1", @@ -636,32 +639,10 @@ "from": "findit2@>=2.2.3 <3.0.0", "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz" }, - "findup-sync": { - "version": "0.1.3", - "from": "findup-sync@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", - "dependencies": { - "glob": { - "version": "3.2.11", - "from": "glob@>=3.2.9 <3.3.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz" - }, - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, - "minimatch": { - "version": "0.3.0", - "from": "minimatch@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz" - } - } - }, "follow-redirects": { - "version": "1.6.0", + "version": "1.6.1", "from": "follow-redirects@>=1.3.0 <2.0.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.0.tgz", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", "dependencies": { "debug": { "version": "3.1.0", @@ -708,24 +689,19 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" }, "gaxios": { - "version": "1.0.4", - "from": "gaxios@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.0.4.tgz" + "version": "1.2.7", + "from": "gaxios@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.2.7.tgz" }, "gcp-metadata": { "version": "0.9.3", "from": "gcp-metadata@>=0.9.0 <0.10.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.9.3.tgz" }, - "get-func-name": { - "version": "2.0.0", - "from": "get-func-name@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - }, - "getobject": { - "version": "0.1.0", - "from": "getobject@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz" + "getpass": { + "version": "0.1.7", + "from": "getpass@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" }, "gettemporaryfilepath": { "version": "0.0.1", @@ -747,11 +723,6 @@ "version": "0.7.0", "from": "gcp-metadata@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.7.0.tgz" - }, - "lru-cache": { - "version": "5.1.1", - "from": "lru-cache@>=5.0.0 <6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" } } }, @@ -761,212 +732,31 @@ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.3.tgz" }, "graceful-fs": { - "version": "4.1.15", + "version": "4.1.11", "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz" - }, - "growl": { - "version": "1.7.0", - "from": "growl@>=1.7.0 <1.8.0", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.7.0.tgz" - }, - "grunt": { - "version": "0.4.5", - "from": "grunt@>=0.4.5 <0.5.0", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", - "dependencies": { - "async": { - "version": "0.1.22", - "from": "async@>=0.1.22 <0.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" - }, - "coffee-script": { - "version": "1.3.3", - "from": "coffee-script@>=1.3.3 <1.4.0", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz" - }, - "glob": { - "version": "3.1.21", - "from": "glob@>=3.1.21 <3.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz" - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@>=1.2.0 <1.3.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - }, - "iconv-lite": { - "version": "0.2.11", - "from": "iconv-lite@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz" - }, - "inherits": { - "version": "1.0.2", - "from": "inherits@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.12 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - } - } - }, - "grunt-bunyan": { - "version": "0.5.0", - "from": "grunt-bunyan@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/grunt-bunyan/-/grunt-bunyan-0.5.0.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - } - } - }, - "grunt-contrib-clean": { - "version": "0.6.0", - "from": "grunt-contrib-clean@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-0.6.0.tgz" - }, - "grunt-contrib-coffee": { - "version": "0.11.1", - "from": "grunt-contrib-coffee@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-coffee/-/grunt-contrib-coffee-0.11.1.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - } - } - }, - "grunt-execute": { - "version": "0.2.2", - "from": "grunt-execute@>=0.2.2 <0.3.0", - "resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz" - }, - "grunt-legacy-log": { - "version": "0.1.3", - "from": "grunt-legacy-log@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, - "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@>=2.3.3 <2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" - } - } - }, - "grunt-legacy-log-utils": { - "version": "0.1.1", - "from": "grunt-legacy-log-utils@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", - "dependencies": { - "lodash": { - "version": "2.4.2", - "from": "lodash@>=2.4.1 <2.5.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz" - }, - "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@>=2.3.3 <2.4.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz" - } - } - }, - "grunt-legacy-util": { - "version": "0.2.0", - "from": "grunt-legacy-util@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", - "dependencies": { - "async": { - "version": "0.1.22", - "from": "async@>=0.1.22 <0.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz" - } - } - }, - "grunt-mocha-test": { - "version": "0.11.0", - "from": "grunt-mocha-test@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.11.0.tgz", - "dependencies": { - "fs-extra": { - "version": "0.9.1", - "from": "fs-extra@>=0.9.1 <0.10.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.9.1.tgz" - }, - "glob": { - "version": "3.2.3", - "from": "glob@3.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.3.tgz" - }, - "graceful-fs": { - "version": "2.0.3", - "from": "graceful-fs@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz" - }, - "jsonfile": { - "version": "1.1.1", - "from": "jsonfile@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz" - }, - "minimatch": { - "version": "0.2.14", - "from": "minimatch@>=0.2.11 <0.3.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz" - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, - "mocha": { - "version": "1.20.1", - "from": "mocha@>=1.20.0 <1.21.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-1.20.1.tgz", - "dependencies": { - "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@0.3.5", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - } - } - }, - "ncp": { - "version": "0.5.1", - "from": "ncp@>=0.5.1 <0.6.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.5.1.tgz" - } - } + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" }, "gtoken": { - "version": "2.3.0", + "version": "2.3.2", "from": "gtoken@>=2.3.0 <3.0.0", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.2.tgz", "dependencies": { "mime": { "version": "2.4.0", "from": "mime@>=2.2.0 <3.0.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz" - }, - "pify": { - "version": "3.0.0", - "from": "pify@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" } } }, - "has-ansi": { - "version": "0.1.0", - "from": "has-ansi@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-0.1.0.tgz" + "har-schema": { + "version": "2.0.0", + "from": "har-schema@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + }, + "har-validator": { + "version": "5.1.3", + "from": "har-validator@>=5.1.0 <5.2.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz" }, "has-flag": { "version": "3.0.0", @@ -984,30 +774,30 @@ "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz" }, "heapdump": { - "version": "0.3.12", + "version": "0.3.9", "from": "heapdump@>=0.3.2 <0.4.0", - "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.12.tgz" + "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.9.tgz" }, "hex2dec": { - "version": "1.1.1", + "version": "1.1.2", "from": "hex2dec@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/hex2dec/-/hex2dec-1.1.2.tgz" }, "hoek": { "version": "0.7.6", "from": "hoek@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.7.6.tgz" }, - "hooker": { - "version": "0.2.3", - "from": "hooker@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz" - }, "http-errors": { "version": "1.6.3", "from": "http-errors@>=1.6.3 <1.7.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" }, + "http-signature": { + "version": "1.2.0", + "from": "http-signature@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + }, "https-proxy-agent": { "version": "2.2.1", "from": "https-proxy-agent@>=2.2.1 <3.0.0", @@ -1060,43 +850,46 @@ "from": "is-buffer@>=1.1.5 <2.0.0", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, "isarray": { "version": "1.0.0", "from": "isarray@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, - "jade": { - "version": "0.26.3", - "from": "jade@0.26.3", - "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", - "dependencies": { - "commander": { - "version": "0.6.1", - "from": "commander@0.6.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz" - }, - "mkdirp": { - "version": "0.3.0", - "from": "mkdirp@0.3.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz" - } - } + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "jmespath": { "version": "0.15.0", "from": "jmespath@0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz" }, - "js-yaml": { - "version": "2.0.5", - "from": "js-yaml@>=2.0.5 <2.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz" + "jsbn": { + "version": "0.1.1", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" }, "json-bigint": { "version": "0.3.0", "from": "json-bigint@>=0.3.0 <0.4.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz" }, + "json-schema": { + "version": "0.2.3", + "from": "json-schema@0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + }, + "json-schema-traverse": { + "version": "0.4.1", + "from": "json-schema-traverse@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + }, "json-stringify-safe": { "version": "5.0.1", "from": "json-stringify-safe@5.0.1", @@ -1107,20 +900,20 @@ "from": "jsonfile@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz" }, - "just-extend": { - "version": "3.0.0", - "from": "just-extend@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-3.0.0.tgz" + "jsprim": { + "version": "1.4.1", + "from": "jsprim@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" }, "jwa": { - "version": "1.1.6", - "from": "jwa@>=1.1.5 <2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz" + "version": "1.2.0", + "from": "jwa@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.2.0.tgz" }, "jws": { - "version": "3.1.5", + "version": "3.2.1", "from": "jws@>=3.1.5 <4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz" + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.1.tgz" }, "klaw": { "version": "1.3.1", @@ -1139,47 +932,77 @@ } } }, - "lodash": { - "version": "0.9.2", - "from": "lodash@>=0.9.2 <0.10.0", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz" - }, - "lodash.get": { - "version": "4.4.2", - "from": "lodash.get@>=4.4.2 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" - }, "lodash.pickby": { "version": "4.6.0", "from": "lodash.pickby@>=4.6.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz" }, "logger-sharelatex": { - "version": "1.5.9", - "from": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9", - "resolved": "git+https://github.com/sharelatex/logger-sharelatex.git#e8e1b95052f62e107336053e4a983f81cdbdf589", + "version": "1.6.0", + "from": "logger-sharelatex@1.6.0", + "resolved": "https://registry.npmjs.org/logger-sharelatex/-/logger-sharelatex-1.6.0.tgz", "dependencies": { - "coffee-script": { - "version": "1.12.4", - "from": "coffee-script@1.12.4", - "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.4.tgz" + "caseless": { + "version": "0.12.0", + "from": "caseless@>=0.12.0 <0.13.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + }, + "combined-stream": { + "version": "1.0.7", + "from": "combined-stream@>=1.0.6 <1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz" + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "2.3.3", + "from": "form-data@>=2.3.2 <2.4.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + }, + "oauth-sign": { + "version": "0.9.0", + "from": "oauth-sign@>=0.9.0 <0.10.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + }, + "request": { + "version": "2.88.0", + "from": "request@>=2.88.0 <3.0.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + }, + "safe-buffer": { + "version": "5.1.2", + "from": "safe-buffer@>=5.1.2 <6.0.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + }, + "tunnel-agent": { + "version": "0.6.0", + "from": "tunnel-agent@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + }, + "uuid": { + "version": "3.3.2", + "from": "uuid@>=3.3.2 <4.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" } } }, - "lolex": { - "version": "3.0.0", - "from": "lolex@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-3.0.0.tgz" - }, "long": { "version": "4.0.0", "from": "long@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz" }, "lru-cache": { - "version": "2.7.3", - "from": "lru-cache@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz" + "version": "5.1.1", + "from": "lru-cache@>=5.0.0 <6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" }, "lsmod": { "version": "1.0.0", @@ -1212,9 +1035,9 @@ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "metrics-sharelatex": { - "version": "2.0.12", - "from": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.12", - "resolved": "git+https://github.com/sharelatex/metrics-sharelatex.git#3ac1621ef049e2f2d88a83b3a41011333d609662", + "version": "2.1.1", + "from": "metrics-sharelatex@2.1.1", + "resolved": "https://registry.npmjs.org/metrics-sharelatex/-/metrics-sharelatex-2.1.1.tgz", "dependencies": { "coffee-script": { "version": "1.6.0", @@ -1234,14 +1057,14 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz" }, "mime-db": { - "version": "1.37.0", - "from": "mime-db@>=1.37.0 <1.38.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz" + "version": "1.36.0", + "from": "mime-db@>=1.36.0 <1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz" }, "mime-types": { - "version": "2.1.21", + "version": "2.1.20", "from": "mime-types@>=2.1.18 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz" + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz" }, "minimatch": { "version": "3.0.4", @@ -1253,11 +1076,6 @@ "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" }, - "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@>=0.3.5 <0.4.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - }, "mocha": { "version": "5.2.0", "from": "mocha@5.2.0", @@ -1331,9 +1149,10 @@ } }, "nan": { - "version": "2.11.1", - "from": "nan@>=2.11.1 <3.0.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz" + "version": "2.11.0", + "from": "nan@>=2.0.8 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "optional": true }, "ncp": { "version": "2.0.0", @@ -1346,28 +1165,6 @@ "from": "negotiator@0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" }, - "nise": { - "version": "1.4.6", - "from": "nise@>=1.4.6 <2.0.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.6.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "lolex": { - "version": "2.7.5", - "from": "lolex@>=2.3.2 <3.0.0", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz" - }, - "path-to-regexp": { - "version": "1.7.0", - "from": "path-to-regexp@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz" - } - } - }, "node-fetch": { "version": "2.3.0", "from": "node-fetch@>=2.2.0 <3.0.0", @@ -1415,11 +1212,6 @@ "from": "node-uuid@>=1.4.1 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" }, - "nopt": { - "version": "1.0.10", - "from": "nopt@>=1.0.10 <1.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz" - }, "oauth-sign": { "version": "0.2.0", "from": "oauth-sign@>=0.2.0 <0.3.0", @@ -1475,10 +1267,10 @@ "from": "path-to-regexp@0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, - "pathval": { - "version": "1.1.0", - "from": "pathval@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz" + "performance-now": { + "version": "2.1.0", + "from": "performance-now@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" }, "pify": { "version": "4.0.1", @@ -1512,9 +1304,14 @@ }, "proxy-addr": { "version": "2.0.4", - "from": "proxy-addr@>=2.0.4 <2.1.0", + "from": "proxy-addr@>=2.0.3 <2.1.0", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz" }, + "psl": { + "version": "1.1.31", + "from": "psl@>=1.1.24 <2.0.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz" + }, "punycode": { "version": "1.3.2", "from": "punycode@1.3.2", @@ -1553,9 +1350,16 @@ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz" }, "readable-stream": { - "version": "2.3.6", - "from": "readable-stream@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + "version": "1.0.34", + "from": "readable-stream@>=1.0.2 <1.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "dependencies": { + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + } + } }, "recluster": { "version": "0.3.7", @@ -1601,12 +1405,13 @@ "require-like": { "version": "0.1.2", "from": "require-like@0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "dev": true }, "resolve": { - "version": "1.9.0", + "version": "1.10.0", "from": "resolve@>=1.5.0 <2.0.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.9.0.tgz" + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz" }, "response": { "version": "0.14.0", @@ -1622,7 +1427,7 @@ }, "retry-axios": { "version": "0.3.2", - "from": "retry-axios@>=0.3.2 <0.4.0", + "from": "retry-axios@0.3.2", "resolved": "https://registry.npmjs.org/retry-axios/-/retry-axios-0.3.2.tgz" }, "retry-request": { @@ -1636,9 +1441,9 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" }, "safe-buffer": { - "version": "5.1.2", - "from": "safe-buffer@5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version": "5.1.1", + "from": "safe-buffer@5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" }, "safe-json-stringify": { "version": "1.2.0", @@ -1654,7 +1459,8 @@ "sandboxed-module": { "version": "2.0.3", "from": "sandboxed-module@latest", - "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz" + "resolved": "https://registry.npmjs.org/sandboxed-module/-/sandboxed-module-2.0.3.tgz", + "dev": true }, "sax": { "version": "1.2.1", @@ -1690,8 +1496,8 @@ }, "settings-sharelatex": { "version": "1.1.0", - "from": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0", - "resolved": "git+https://github.com/sharelatex/settings-sharelatex.git#93f63d029b52fef8825c3a401b2b6a7ba29b4750", + "from": "settings-sharelatex@1.1.0", + "resolved": "https://registry.npmjs.org/settings-sharelatex/-/settings-sharelatex-1.1.0.tgz", "dependencies": { "coffee-script": { "version": "1.6.0", @@ -1701,31 +1507,9 @@ } }, "shimmer": { - "version": "1.2.0", + "version": "1.2.1", "from": "shimmer@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.0.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - }, - "sinon": { - "version": "7.1.1", - "from": "sinon@latest", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.1.1.tgz", - "dependencies": { - "diff": { - "version": "3.5.0", - "from": "diff@>=3.5.0 <4.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - }, - "supports-color": { - "version": "5.5.0", - "from": "supports-color@>=5.5.0 <6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - } - } + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz" }, "sntp": { "version": "0.1.4", @@ -1742,6 +1526,11 @@ "from": "split@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz" }, + "sshpk": { + "version": "1.16.1", + "from": "sshpk@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + }, "stack-trace": { "version": "0.0.9", "from": "stack-trace@0.0.9", @@ -1760,7 +1549,19 @@ "stream-browserify": { "version": "2.0.1", "from": "stream-browserify@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz" + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "from": "readable-stream@>=2.0.2 <3.0.0", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + }, + "string_decoder": { + "version": "1.1.1", + "from": "string_decoder@>=1.1.1 <1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + } + } }, "stream-buffers": { "version": "0.2.6", @@ -1778,19 +1579,9 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz" }, "string_decoder": { - "version": "1.1.1", - "from": "string_decoder@>=1.1.1 <1.2.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - }, - "strip-ansi": { - "version": "0.3.0", - "from": "strip-ansi@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz" - }, - "supports-color": { - "version": "0.2.0", - "from": "supports-color@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz" + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "symbol-observable": { "version": "1.2.0", @@ -1804,21 +1595,16 @@ }, "teeny-request": { "version": "3.11.3", - "from": "teeny-request@>=3.11.1 <4.0.0", + "from": "teeny-request@>=3.6.0 <4.0.0", "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.11.3.tgz", "dependencies": { "uuid": { "version": "3.3.2", - "from": "uuid@>=3.3.2 <4.0.0", + "from": "uuid@^3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" } } }, - "text-encoding": { - "version": "0.6.4", - "from": "text-encoding@>=0.6.4 <0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz" - }, "through": { "version": "2.3.8", "from": "through@>=2.0.0 <3.0.0", @@ -1827,22 +1613,41 @@ "through2": { "version": "2.0.5", "from": "through2@>=2.0.3 <3.0.0", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "from": "readable-stream@^2.1.5", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + }, + "string_decoder": { + "version": "1.1.1", + "from": "string_decoder@~1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + } + } }, - "timekeeper": { - "version": "1.0.0", - "from": "timekeeper@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/timekeeper/-/timekeeper-1.0.0.tgz" + "tough-cookie": { + "version": "2.4.3", + "from": "tough-cookie@>=2.4.3 <2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "dependencies": { + "punycode": { + "version": "1.4.1", + "from": "punycode@>=1.4.1 <2.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + } + } }, "tunnel-agent": { "version": "0.2.0", "from": "tunnel-agent@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.2.0.tgz" }, - "type-detect": { - "version": "4.0.8", - "from": "type-detect@>=4.0.5 <5.0.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "tweetnacl": { + "version": "0.14.5", + "from": "tweetnacl@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" }, "type-is": { "version": "1.6.16", @@ -1854,16 +1659,23 @@ "from": "underscore@>=1.5.2 <1.6.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.2.tgz" }, - "underscore.string": { - "version": "2.2.1", - "from": "underscore.string@>=2.2.1 <2.3.0", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz" - }, "unpipe": { "version": "1.0.0", "from": "unpipe@1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" }, + "uri-js": { + "version": "4.2.2", + "from": "uri-js@>=4.2.2 <5.0.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "dependencies": { + "punycode": { + "version": "2.1.1", + "from": "punycode@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + } + } + }, "url": { "version": "0.10.3", "from": "url@0.10.3", @@ -1884,10 +1696,10 @@ "from": "vary@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" }, - "which": { - "version": "1.0.9", - "from": "which@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz" + "verror": { + "version": "1.10.0", + "from": "verror@1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" }, "wrappy": { "version": "1.0.2", diff --git a/services/filestore/package.json b/services/filestore/package.json index 158f653aee..a9163666cd 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -25,13 +25,12 @@ "async": "~0.2.10", "aws-sdk": "^2.1.39", "body-parser": "^1.2.0", - "coffee-script": "~1.7.1", "express": "^4.2.0", "fs-extra": "^1.0.0", "heapdump": "^0.3.2", "knox": "~0.9.1", - "logger-sharelatex": "git+https://github.com/sharelatex/logger-sharelatex.git#v1.5.9", - "metrics-sharelatex": "git+https://github.com/sharelatex/metrics-sharelatex.git#v2.0.12", + "logger-sharelatex": "^1.6.0", + "metrics-sharelatex": "^2.1.1", "mocha": "5.2.0", "node-transloadit": "0.0.4", "node-uuid": "~1.4.1", @@ -41,7 +40,7 @@ "request": "2.14.0", "response": "0.14.0", "rimraf": "2.2.8", - "settings-sharelatex": "git+https://github.com/sharelatex/settings-sharelatex.git#v1.1.0", + "settings-sharelatex": "^1.1.0", "stream-browserify": "^2.0.1", "stream-buffers": "~0.2.5", "underscore": "~1.5.2" From ca9231b04ef64e25e9dd7306e82c2d5bc5fea864 Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 5 Feb 2019 11:19:02 +0000 Subject: [PATCH 66/69] set enable conversions to false by default but enable in compse --- services/filestore/config/settings.defaults.coffee | 2 +- services/filestore/docker-compose.ci.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/services/filestore/config/settings.defaults.coffee b/services/filestore/config/settings.defaults.coffee index 7c5b01ef90..77bc1bfb34 100644 --- a/services/filestore/config/settings.defaults.coffee +++ b/services/filestore/config/settings.defaults.coffee @@ -50,7 +50,7 @@ settings = # Any commands to wrap the convert utility in, for example ["nice"], or ["firejail", "--profile=/etc/firejail/convert.profile"] convertCommandPrefix: [] - enableConversions: false + enableConversions: if process.env['ENABLE_CONVERSIONS'] == 'true' then true else false # Filestore health check # ---------------------- diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 36b52f8f8b..5a7200e4f1 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -21,6 +21,7 @@ services: MONGO_HOST: mongo POSTGRES_HOST: postgres MOCHA_GREP: ${MOCHA_GREP} + ENABLE_CONVERSIONS: true depends_on: - mongo - redis From 3fccf79ca802828f112835c8a1c7f647e1ac1bcc Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 5 Feb 2019 11:32:02 +0000 Subject: [PATCH 67/69] cleanup --- services/filestore/app.coffee | 2 +- .../app/coffee/FSPersistorManager.coffee | 6 +-- .../app/coffee/HealthCheckController.coffee | 1 - .../app/coffee/S3PersistorManager.coffee | 3 +- services/filestore/docker-compose.ci.yml | 2 +- .../coffee/FSPersistorManagerTests.coffee | 27 +++++++----- .../coffee/S3PersistorManagerTests.coffee | 44 +++++++++++-------- 7 files changed, 48 insertions(+), 37 deletions(-) diff --git a/services/filestore/app.coffee b/services/filestore/app.coffee index c1484142b1..b4fff5b698 100644 --- a/services/filestore/app.coffee +++ b/services/filestore/app.coffee @@ -94,7 +94,7 @@ app.post "/shutdown", (req, res)-> app.get '/status', (req, res)-> if appIsOk - res.send('filestore sharelatex up - hello james') + res.send('filestore sharelatex up') else logger.log "app is not ok - shutting down" res.send("server is being shut down", 500) diff --git a/services/filestore/app/coffee/FSPersistorManager.coffee b/services/filestore/app/coffee/FSPersistorManager.coffee index 733202e4cd..353e2ef099 100644 --- a/services/filestore/app/coffee/FSPersistorManager.coffee +++ b/services/filestore/app/coffee/FSPersistorManager.coffee @@ -49,13 +49,13 @@ module.exports = sourceStream.on 'error', (err) -> logger.err err:err, location:location, name:name, "Error reading from file" if err.code == 'ENOENT' - callback new Errors.NotFoundError(err.message), null + return callback new Errors.NotFoundError(err.message), null else - callback err, null + return callback err, null sourceStream.on 'readable', () -> # This can be called multiple times, but the callback wrapper # ensures the callback is only called once - callback null, sourceStream + return callback null, sourceStream copyFile: (location, fromName, toName, callback = (err)->)-> diff --git a/services/filestore/app/coffee/HealthCheckController.coffee b/services/filestore/app/coffee/HealthCheckController.coffee index 7b7a80bfc8..db3f111c5e 100644 --- a/services/filestore/app/coffee/HealthCheckController.coffee +++ b/services/filestore/app/coffee/HealthCheckController.coffee @@ -15,7 +15,6 @@ checkCanStoreFiles = (callback)-> req = {params:{}, query:{}, headers:{}} req.params.project_id = settings.health_check.project_id req.params.file_id = settings.health_check.file_id - console.log settings myWritableStreamBuffer = new streamBuffers.WritableStreamBuffer(initialSize: 100) res = { send: (code) -> diff --git a/services/filestore/app/coffee/S3PersistorManager.coffee b/services/filestore/app/coffee/S3PersistorManager.coffee index 0c55f8b0e6..2b183730d6 100644 --- a/services/filestore/app/coffee/S3PersistorManager.coffee +++ b/services/filestore/app/coffee/S3PersistorManager.coffee @@ -91,7 +91,8 @@ module.exports = else if res.statusCode not in [200, 206] logger.log bucketName:bucketName, key:key, "error getting file from s3: #{res.statusCode}" return callback new Error("Got non-200 response from S3: #{res.statusCode}"), null - callback null, res + else + return callback null, res s3Stream.on 'error', (err) -> logger.err err:err, bucketName:bucketName, key:key, "error getting file stream from s3" callback err diff --git a/services/filestore/docker-compose.ci.yml b/services/filestore/docker-compose.ci.yml index 5a7200e4f1..e7ac6e84a7 100644 --- a/services/filestore/docker-compose.ci.yml +++ b/services/filestore/docker-compose.ci.yml @@ -21,7 +21,7 @@ services: MONGO_HOST: mongo POSTGRES_HOST: postgres MOCHA_GREP: ${MOCHA_GREP} - ENABLE_CONVERSIONS: true + ENABLE_CONVERSIONS: "true" depends_on: - mongo - redis diff --git a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee index c4a7d83d06..7df7adfd8b 100644 --- a/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/FSPersistorManagerTests.coffee @@ -34,6 +34,8 @@ describe "FSPersistorManagerTests", -> err:-> "response":response "rimraf":@Rimraf + "./Errors": @Errors = + NotFoundError: sinon.stub() @location = "/tmp" @name1 = "530f2407e7ef165704000007/530f838b46d9a9e859000008" @name1Filtered ="530f2407e7ef165704000007_530f838b46d9a9e859000008" @@ -119,32 +121,33 @@ describe "FSPersistorManagerTests", -> describe "error conditions", -> - beforeEach -> - @fakeCode = 'ENOENT' - @Fs.createReadStream.returns( - on: (key, callback) => - err = new Error() - err.message = "this is from a test" - err.code = @fakeCode - callback(err, null) - ) - describe "when the file does not exist", -> beforeEach -> @fakeCode = 'ENOENT' - + @Fs.createReadStream.returns( + on: (key, callback) => + err = new Error() + err.code = @fakeCode + callback(err, null) + ) it "should give a NotFoundError", (done) -> @FSPersistorManager.getFileStream @location, @name1, @opts, (err,res)=> expect(res).to.equal null expect(err).to.not.equal null - expect(err.name == "NotFoundError").to.equal true + expect(err instanceof @Errors.NotFoundError).to.equal true done() describe "when some other error happens", -> beforeEach -> @fakeCode = 'SOMETHINGHORRIBLE' + @Fs.createReadStream.returns( + on: (key, callback) => + err = new Error() + err.code = @fakeCode + callback(err, null) + ) it "should give an Error", (done) -> @FSPersistorManager.getFileStream @location, @name1, @opts, (err,res)=> diff --git a/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee b/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee index e552886995..1eee09dc29 100644 --- a/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee +++ b/services/filestore/test/unit/coffee/S3PersistorManagerTests.coffee @@ -39,6 +39,8 @@ describe "S3PersistorManagerTests", -> "logger-sharelatex": log:-> err:-> + "./Errors": @Errors = + NotFoundError: sinon.stub() @key = "my/key" @bucketName = "my-bucket" @error = "my errror" @@ -108,44 +110,50 @@ describe "S3PersistorManagerTests", -> describe "error conditions", -> - beforeEach -> - @fakeResponse = - statusCode: 500 - @stubbedKnoxClient.get.returns( - on: (key, callback) => - if key == 'response' - callback(@fakeResponse) - end: -> - ) - describe "when the file doesn't exist", -> beforeEach -> - @bucketName = "mybucket" - @key = "somekey" - @fakeResponse.statusCode = 404 + @fakeResponse = + statusCode: 404 + @stubbedKnoxClient.get.returns( + on: (key, callback) => + if key == 'response' + callback(@fakeResponse) + end: -> + ) it "should produce a NotFoundError", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback expect(stream).to.equal null expect(err).to.not.equal null - expect(err.name == "NotFoundError").to.equal true + expect(err instanceof @Errors.NotFoundError).to.equal true done() it "should have bucket and key in the Error message", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback - expect(err.message).to.not.equal null - err.message.should.match(new RegExp(".*#{@bucketName}.*")) - err.message.should.match(new RegExp(".*#{@key}.*")) + error_message = @Errors.NotFoundError.lastCall.args[0] + expect(error_message).to.not.equal null + error_message.should.match(new RegExp(".*#{@bucketName}.*")) + error_message.should.match(new RegExp(".*#{@key}.*")) done() describe "when the S3 service produces an error", -> + beforeEach -> + @fakeResponse = + statusCode: 500 + @stubbedKnoxClient.get.returns( + on: (key, callback) => + if key == 'response' + callback(@fakeResponse) + end: -> + ) it "should produce an error", (done) -> @S3PersistorManager.getFileStream @bucketName, @key, @opts, (err, stream)=> # empty callback expect(stream).to.equal null expect(err).to.not.equal null expect(err instanceof Error).to.equal true + @Errors.NotFoundError.called.should.equal false done() describe "sendFile", -> @@ -308,4 +316,4 @@ describe "S3PersistorManagerTests", -> @stubbedKnoxClient.list.callsArgWith(1, null, data) @S3PersistorManager.directorySize @bucketName, @key, (err, totalSize)=> totalSize.should.equal 3072 - done() + done() \ No newline at end of file From 5eec00db516492ceb2587595068406f3feacdffa Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 5 Feb 2019 14:06:51 +0000 Subject: [PATCH 68/69] don't run conversions test when disabled --- services/filestore/app/coffee/HealthCheckController.coffee | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/filestore/app/coffee/HealthCheckController.coffee b/services/filestore/app/coffee/HealthCheckController.coffee index db3f111c5e..643e15adb3 100644 --- a/services/filestore/app/coffee/HealthCheckController.coffee +++ b/services/filestore/app/coffee/HealthCheckController.coffee @@ -33,6 +33,8 @@ checkCanStoreFiles = (callback)-> callback(err) checkFileConvert = (callback)-> + if !settings.enableConversions + return callback() imgPath = path.join(settings.path.uploadFolder, "/tiny.pdf") async.waterfall [ (cb)-> From 0f48c77e7e608e8f3d81fd84504beb48886a8cae Mon Sep 17 00:00:00 2001 From: Henry Oswald Date: Tue, 5 Feb 2019 17:19:33 +0000 Subject: [PATCH 69/69] enable conversions for local docker compose --- services/filestore/docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/services/filestore/docker-compose.yml b/services/filestore/docker-compose.yml index 8bb7857cb6..60d387bf51 100644 --- a/services/filestore/docker-compose.yml +++ b/services/filestore/docker-compose.yml @@ -27,6 +27,7 @@ services: MONGO_HOST: mongo POSTGRES_HOST: postgres MOCHA_GREP: ${MOCHA_GREP} + ENABLE_CONVERSIONS: "true" user: node depends_on: - mongo