From f8b947d46b3767602d323505a5efd6f1ee548e43 Mon Sep 17 00:00:00 2001 From: CarlosFaria94 Date: Mon, 30 Jan 2017 16:49:28 +0000 Subject: [PATCH 1/8] Initial refactoring to ES2015 and support to Node 6 Docker support --- .dockerignore | 38 + Dockerfile | 27 + package.json | 100 +- server/index.js | 79 +- server/resources/parser.js | 8 +- server/routes/members/handlers.js | 8 +- server/routes/publicAssets.js | 17 +- server/routes/topics/handlers.js | 24 +- server/sockets/notification.js | 2 +- yarn.lock | 7372 +++++++++++++++++++++++++++++ 10 files changed, 7561 insertions(+), 114 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 yarn.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..72c973f2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,38 @@ +# Logs +logs +*.log +*.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# Deployed apps should consider commenting this line out: +# see https://npmjs.org/doc/faq.html#Should-I-check-my-node_modules-folder-into-git +node_modules + +sftp-config.json + +# Compiled results +client/js/templates.js +client/css/app.css + +public/images +public/ical/ical.ics + +# Don't send .md files to production env +*.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..0c543094 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM mhart/alpine-node:0.10.48 + +LABEL Description="The awesome web app that supports awesome events" Vendor="SINFO" Version="0.0" + +WORKDIR /usr/src/app + +ENV NODE_ENV production + +# Build the npm modules. +COPY package.json package.json + +# We need to have native dependencies (e.g to install node-gyp) +RUN apk add --no-cache make gcc g++ python git bash + +RUN npm install && \ + npm cache clean && \ + npm uninstall -g npm + +# We don't need this anymore +RUN apk del git python g++ gcc make + +# Add the remaining source (excluding `./node_modules` thanks to `.dockerignore`). +ADD . /usr/src/app + +EXPOSE 8080 + +CMD [ "node", "server/index.js" ] diff --git a/package.json b/package.json index 9095527d..f3c95bfc 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,11 @@ { "name": "eventdeck", - "version": "0.0.0", + "version": "1.0.0", "description": "eventdeck", - "main": "index.js", + "main": "server/index.js", + "engines": { + "node": ">=6.9.0" + }, "scripts": { "start": "node server/index.js | bunyan", "mon": "nodemon server/index.js --ignore client/ | bunyan", @@ -19,8 +22,8 @@ ] }, "pre-commit": [ - "lint", - "test" + "lint" + // TODO: "test" ], "repository": { "type": "git", @@ -40,79 +43,76 @@ "homepage": "https://github.com/sinfo/eventdeck", "dependencies": { "ampersand-array-checkbox-view": "0.0.4", - "ampersand-array-input-view": "^3.0.3", + "ampersand-array-input-view": "^6.1.0", "ampersand-checkbox-view": "^2.0.2", "ampersand-chosen-view": "https://github.com/sinfo/ampersand-chosen-view/tarball/master", - "ampersand-collection": "^1.3.17", + "ampersand-collection": "^2.0.0", "ampersand-collection-single-request-mixin": "https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master", "ampersand-date-view": "https://github.com/sinfo/ampersand-date-view/tarball/master", - "ampersand-dom": "^1.2.1", - "ampersand-form-view": "^2.4.0", + "ampersand-dom": "^1.5.0", + "ampersand-form-view": "^7.0.0", "ampersand-fullcalendar-view": "0.0.2", "ampersand-infinite-scroll": "^0.1.0", "ampersand-input-view": "^4.0.5", "ampersand-io": "^0.4.2", "ampersand-io-collection": "^0.1.6", "ampersand-io-model": "^0.3.1", - "ampersand-model": "^4.1.0", + "ampersand-model": "^8.0.0", "ampersand-pagination-mixin": "^0.1.0", "ampersand-pikaday-view": "0.0.1", - "ampersand-rest-collection": "^2.0.4", - "ampersand-router": "^1.0.7", + "ampersand-rest-collection": "^6.0.0", + "ampersand-router": "^4.0.0", "ampersand-select-view": "https://github.com/sinfo/ampersand-select-view/tarball/master", - "ampersand-state": "^4.3.15", - "ampersand-subcollection": "^2.0.1", - "ampersand-view": "^7.4.2", - "ampersand-view-switcher": "^1.1.2", + "ampersand-state": "^5.0.2", + "ampersand-subcollection": "^2.0.3", + "ampersand-view": "^10.0.1", + "ampersand-view-switcher": "^2.1.0", "andlog": "^1.0.0", "async": "^0.2.10", - "boom": "^2.5.1", - "bows": "^1.3.2", - "cookie-getter": "0.0.2", + "boom": "^4.2.0", + "bows": "^1.6.0", + "bunyan": "^1.8.5", + "bunyan-logentries": "~1.0.0", + "cookie-getter": "1.0.1", "cron": "~1.0.4", - "domify": "^1.3.0", - "domready": "^1.0.5", + "domify": "^1.4.0", + "domready": "^1.0.8", "emailjs": "~0.3.8", "favicon-setter": "^0.1.1", - "handlebars": "^2.0.0", - "hapi": "^7.5.3", - "hapi-auth-cookie": "^1.4.2", - "hapi-swagger": "^0.4.2", + "handlebars": "^4.0.0", + "hapi": "^16.1.0", + "hapi-auth-cookie": "^6.1.1", + "hapi-swagger": "^7.6.0", "hoek": "^2.9.0", "icalendar": "^0.7.1", - "joi": "^4.9.0", + "inert": "^4.1.0", + "joi": "^10.2.0", "jquery": "^2.1.1", - "lout": "^5.1.2", + "lout": "^9.2.0", "mailcomposer": "~0.2.12", - "mailgun": "^0.4.3", + "mailgun": "^0.5.0", "markdown": "~0.5.0", - "marked": "^0.3.3", - "moment": "^2.8.4", - "mongoose": "^3.9.7", - "moonboots_hapi": "^3.0.2", + "marked": "^0.3.6", + "moment": "^2.17.1", + "mongoose": "^4.8.0", + "moonboots_hapi": "^7.0.0", "pmx": "^0.3.20", "rand-token": "~0.2.1", - "request": "^2.58.0", - "slug": "^0.7.1", - "socket.io": "^1.2.0", - "socket.io-client": "^1.2.0", - "stylizer": "^1.2.0", + "request": "^2.79.0", + "slug": "^0.9.1", + "socket.io": "^1.7.2", + "socket.io-client": "^1.7.2", + "stylizer": "^2.1.0", "templatizer": "^1.5.2", - "underscore": "^1.6.0" + "underscore": "^1.8.3", + "vision": "^4.1.1" }, "devDependencies": { - "bunyan": "~1.2.1", - "bunyan-logentries": "~1.0.0", - "code": "~1.2.0", - "lab": "~5.0.1", - "nodemon": "^1.7.1", - "standard": "^7.1.2", - "pre-commit": "^1.1.3", - "snazzy": "^4.0.0" - }, - "standard": { - "ignore": [ - "/client/js/ink-all.js" - ] + "code": "~4.0.0", + "nodemon": "^1.11.0", + "lab": "^12.1.0", + "pre-commit": "^1.2.2", + "snazzy": "^6.0.0", + "standard": "^8.6.0" } } diff --git a/server/index.js b/server/index.js index f135563e..08ae316e 100644 --- a/server/index.js +++ b/server/index.js @@ -1,23 +1,30 @@ // init http monitoring require('pmx').init() -var Hapi = require('hapi') -var IO = {server: require('socket.io'), client: require('socket.io-client')} -var log = require('./helpers/logger') -var config = require('../config') -var path = require('path') -var cookieConfig = config.cookie -var moonbootsConfig = require('../moonbootsConfig') +const Hapi = require('hapi') +const Vision = require('vision') +const IO = {server: require('socket.io'), client: require('socket.io-client')} +const log = require('./helpers/logger') +const config = require('../config') +const path = require('path') +const cookieConfig = config.cookie +const moonbootsConfig = require('../moonbootsConfig') -var cookieName = 'eventdeck-config' +const cookieName = 'eventdeck-config' -log.error({ env: process.env.NODE_ENV }, '### Starting EventDeck ###') +log.info({env: process.env.NODE_ENV}, '### Starting EventDeck ###') -var server = module.exports.hapi = new Hapi.Server(config.host, config.port, { cors: config.cors }) +const server = module.exports.hapi = new Hapi.Server() +server.connection({ + host: config.host, + port: config.port + // TODO: CORS in new Hapi version is disabled - it's needed ? + // { cors: config.cors } +}) require('./db') -var internals = {} +let internals = {} // set clientconfig cookie internals.configStateConfig = { encoding: 'none', @@ -29,7 +36,7 @@ server.state(cookieName, internals.configStateConfig) internals.clientConfig = JSON.stringify(config.client) server.ext('onPreResponse', function (request, reply) { if (!request.state.config && !request.response.isBoom) { - var response = request.response + let response = request.response return reply(response.state(cookieName, encodeURIComponent(internals.clientConfig))) } @@ -37,21 +44,25 @@ server.ext('onPreResponse', function (request, reply) { }) // Set view template engine -server.views({ - engines: { - hbs: require('handlebars') - }, - path: path.join(__dirname, 'templates') +server.register(Vision, (err) => { + if (err) throw err + + server.views({ + engines: { + hbs: require('handlebars') + }, + path: path.join(__dirname, 'templates') + }) }) -server.pack.register([ - { plugin: require('hapi-swagger'), options: config.swagger }, - { plugin: require('moonboots_hapi'), options: moonbootsConfig }, - require('hapi-auth-cookie'), - { plugin: require('./plugins/images'), options: config.images }, - { plugin: require('./plugins/templates'), options: config.templates } -], - function (err) { +server.register([ + {register: require('hapi-swagger'), options: config.swagger}, + {register: require('moonboots_hapi'), options: moonbootsConfig}, + {register: require('hapi-auth-cookie')}, + {register: require('./plugins/images'), options: config.images}, + {register: require('./plugins/templates'), options: config.templates}, + {register: require('inert')} ], + (err) => { if (err) throw err server.auth.strategy('session', 'cookie', { @@ -59,14 +70,14 @@ server.pack.register([ password: cookieConfig.password, ttl: 2592000000, /* appendNext: true, - redirectTo: '/login', - redirectOnTry: true, - isSecure: false, - isHttpOnly: false, */ + redirectTo: '/login', + redirectOnTry: true, + isSecure: false, + isHttpOnly: false, */ isSecure: false }) - var webSocket = {} + let webSocket = {} webSocket.server = IO.server.listen(server.listener) log.info('Websocket server started at: ' + server.info.uri) webSocket.client = IO.client('http://localhost:' + server.info.port) @@ -82,10 +93,10 @@ server.pack.register([ if (!module.parent) { server.start(function () { log.info('Server started at: ' + server.info.uri) - // var crono = require('./scripts/crono') - // var reminders = require('./resources/reminder') - // reminders(null, function(stuff){}) - // crono.reminder.start() + // var crono = require('./scripts/crono') + // var reminders = require('./resources/reminder') + // reminders(null, function(stuff){}) + // crono.reminder.start() }) } } diff --git a/server/resources/parser.js b/server/resources/parser.js index 8b896b70..57fa7f36 100644 --- a/server/resources/parser.js +++ b/server/resources/parser.js @@ -1,12 +1,12 @@ -var server = require('../index').hapi +const server = require('../index').hapi server.method('parser.members', parseMembers, {}) function parseMembers (text, thread, objectId, memberId, cb) { - var memberPattern = /\B@[a-z0-9\._-]+/gi + const memberPattern = /\B@[a-z0-9_-]+/gi - var membersFound = text.match(memberPattern) - for (var i in membersFound) { + let membersFound = text.match(memberPattern) + for (let i in membersFound) { membersFound[i] = membersFound[i].replace('@', '').toLowerCase() } diff --git a/server/routes/members/handlers.js b/server/routes/members/handlers.js index 56989851..c6b8112d 100644 --- a/server/routes/members/handlers.js +++ b/server/routes/members/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/member') +const Joi = require('joi') +const render = require('../../views/member') exports = module.exports @@ -11,7 +11,7 @@ exports.create = { id: Joi.string().description('id of the member'), name: Joi.string().required().description('name of the member'), img: Joi.string().description('image of the member'), - participations: Joi.array().includes(Joi.object().keys({ + participations: Joi.array().items(Joi.object().keys({ role: Joi.string().description('the user role id'), event: Joi.string().description('the event id') })).description('participations of the member'), @@ -54,7 +54,7 @@ exports.update = { id: Joi.string().description('id of the member'), name: Joi.string().description('name of the member'), img: Joi.string().description('image of the member'), - participations: Joi.array().includes(Joi.object().keys({ + participations: Joi.array().items(Joi.object().keys({ role: Joi.string().description('the user role id'), event: Joi.string().description('the event id') })).description('participations of the member'), diff --git a/server/routes/publicAssets.js b/server/routes/publicAssets.js index 49f9e765..29434fcb 100644 --- a/server/routes/publicAssets.js +++ b/server/routes/publicAssets.js @@ -1,16 +1,15 @@ -var server = require('../index').hapi +const server = require('../index').hapi -var publicAssets = { +const publicAssets = { method: 'GET', path: '/static/{path*}', - config: { - handler: { - directory: { - path: './public/', - listing: true, - index: true - } + handler: { + directory: { + path: './public/', + listing: true, + index: true } + } } diff --git a/server/routes/topics/handlers.js b/server/routes/topics/handlers.js index 98c9c0a4..3aef295c 100644 --- a/server/routes/topics/handlers.js +++ b/server/routes/topics/handlers.js @@ -1,8 +1,8 @@ -var Joi = require('joi') -var render = require('../../views/topic') -var options = require('../../../options') +const Joi = require('joi') +const render = require('../../views/topic') +const options = require('../../../options') -var topicKinds = options.kinds.topics.map(function (t) { return t.id }) +let topicKinds = options.kinds.topics.map(function (t) { return t.id }) exports = module.exports @@ -14,17 +14,17 @@ exports.create = { kind: Joi.string().required().valid(topicKinds).description('kind of the topic'), name: Joi.string().description('name of the topic'), text: Joi.string().description('text of the topic (can be markdown)'), - targets: Joi.array().includes(Joi.string()).description('targets of the topic'), + targets: Joi.array().items(Joi.string()).description('targets of the topic'), closed: Joi.boolean().description('closed of the topic'), poll: { kind: Joi.string().valid('text', 'images').description('kind of the poll'), - options: Joi.array().includes(Joi.object().keys({ + options: Joi.array().items(Joi.object().keys({ content: Joi.string().description('content of the option - can be image url or text'), - votes: Joi.array().includes(Joi.string()).description('members who voted for this option') + votes: Joi.array().items(Joi.string()).description('members who voted for this option') })).description('options of the poll') }, duedate: Joi.date().description('duedate of the poll'), - tags: Joi.array().includes(Joi.string()).description('tags of the topic') + tags: Joi.array().items(Joi.string()).description('tags of the topic') } }, pre: [ @@ -52,17 +52,17 @@ exports.update = { name: Joi.string().description('name of the topic'), text: Joi.string().description('text of the topic'), author: Joi.string().description('author of the topic'), - targets: Joi.array().includes(Joi.string()).description('targets of the topic'), + targets: Joi.array().items(Joi.string()).description('targets of the topic'), closed: Joi.boolean().description('closed of the topic'), poll: { kind: Joi.string().valid('text', 'images').description('kind of the poll'), - options: Joi.array().includes(Joi.object().keys({ + options: Joi.array().items(Joi.object().keys({ content: Joi.string().description('content of the option - can be image url or text'), - votes: Joi.array().includes(Joi.string()).description('members who voted for this option') + votes: Joi.array().items(Joi.string()).description('members who voted for this option') })).description('options of the poll') }, duedate: Joi.date().description('duedate of the poll'), - tags: Joi.array().includes(Joi.string()).description('tags of the topic') + tags: Joi.array().items(Joi.string()).description('tags of the topic') } }, pre: [ diff --git a/server/sockets/notification.js b/server/sockets/notification.js index 80d98c1d..8b9bd58e 100644 --- a/server/sockets/notification.js +++ b/server/sockets/notification.js @@ -66,7 +66,7 @@ var validators = { source: Joi.string().description('The source of the thread'), member: Joi.string().description('The member from whom the notification comes'), description: Joi.string().description('Description of the notification'), - targets: Joi.array().includes(Joi.string()).description('Targets to be notified'), + targets: Joi.array().items(Joi.string()).description('Targets to be notified'), unread: Joi.boolean(), posted: Joi.date() }) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..58eec7ec --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7372 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +Base64@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028" + +JSON2@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/JSON2/-/JSON2-0.1.0.tgz#8d7493040a63d5835af75f47decb83ab6c8c0790" + +JSONStream@^1.0.3: + version "1.2.1" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.2.1.tgz#32aa5790e799481083b49b4b7fa94e23bae69bf9" + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +JSONStream@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.6.4.tgz#4b2c8063f8f512787b2375f7ee9db69208fa2dcb" + dependencies: + jsonparse "0.0.5" + through "~2.2.7" + +JSONStream@~0.8.3, JSONStream@~0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + +abbrev@1, abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +accept@2.x.x: + version "2.1.3" + resolved "https://registry.yarnpkg.com/accept/-/accept-2.1.3.tgz#ab0f5bda4c449bbe926aea607b3522562f5acf86" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +accepts@1.3.3, accepts@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accessory@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/accessory/-/accessory-1.0.1.tgz#25954a258291a21b1be8f1902064e962cee6ce62" + dependencies: + dot-parts "~1.0.0" + +acorn-globals@^1.0.3: + version "1.0.9" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-1.0.9.tgz#55bb5e98691507b74579d0513413217c380c54cf" + dependencies: + acorn "^2.1.0" + +acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^1.0.1, acorn@^1.0.3: + version "1.2.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" + +acorn@^2.1.0, acorn@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + +acorn@^3.0.4, acorn@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + +addressparser@^0.3.2, addressparser@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-0.3.2.tgz#59873f35e8fcf6c7361c10239261d76e15348bb2" + +addressparser@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/addressparser/-/addressparser-0.2.1.tgz#d11a5b2eeda04cfefebdf3196c10ae13db6cd607" + +adm-zip@~0.4.3: + version "0.4.7" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +ajv-keywords@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.2.0.tgz#676c4f087bfe1e8b12dca6fda2f3c74f417b099c" + +ajv@^4.7.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.9.2.tgz#3f7dcda95b0c34bceb2d69945117d146219f1a2c" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ammo@2.x.x: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ammo/-/ammo-2.0.3.tgz#914bbcf65b043ed0f58a8a9d0196e250ec51e6a7" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +amp-clone@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-clone/-/amp-clone-1.0.1.tgz#d9053062a75a91d871f12daf5a40b4514949a20a" + dependencies: + amp-extend "^1.0.0" + amp-is-array "^1.0.0" + amp-is-object "^1.0.0" + +amp-extend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-extend/-/amp-extend-1.0.1.tgz#6c543bee629c116b831857642f0ff940a15ae1ff" + dependencies: + amp-is-object "^1.0.0" + +amp-is-array@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-array/-/amp-is-array-1.0.1.tgz#e7c42e450191b5e8a48ab02da69ce9e1f9a5058c" + +amp-is-date@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-date/-/amp-is-date-1.0.1.tgz#bcac2e9b3853b4f415b0d46c3822819cf3e961ce" + +amp-is-function@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-function/-/amp-is-function-1.0.1.tgz#8b5412ff5e61d13a94aa449ac01372ad0d2298c0" + +amp-is-object@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-object/-/amp-is-object-1.0.1.tgz#0a8cb5956b9112a16a73677e8cbad37bba247702" + +amp-result@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/amp-result/-/amp-result-1.1.0.tgz#abcac38062a044d576ab875b45321b113702a424" + dependencies: + amp-is-function "^1.0.0" + +ampersand-array-checkbox-view@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/ampersand-array-checkbox-view/-/ampersand-array-checkbox-view-0.0.4.tgz#3ed231be30ee500256196448fe496ba0a3589e05" + dependencies: + ampersand-checkbox-view "^2.0.0" + ampersand-form-view "^2.2.0" + ampersand-version "^1.0.0" + ampersand-view "^7.0.0" + underscore "^1.7.0" + +ampersand-array-input-view@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ampersand-array-input-view/-/ampersand-array-input-view-6.1.0.tgz#a8b825735651c8473f54064eb8d9c3d976fd7995" + dependencies: + ampersand-input-view "^7.0.0" + ampersand-version "^1.0.2" + ampersand-view "^10.0.1" + lodash "^4.15.0" + +ampersand-checkbox-view@^2.0.0, ampersand-checkbox-view@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ampersand-checkbox-view/-/ampersand-checkbox-view-2.0.2.tgz#b567dba21a84d694b264b0499752034469be0c6f" + dependencies: + ampersand-dom "^1.2.1" + ampersand-version "^1.0.0" + domify "~1.2.2" + +"ampersand-chosen-view@https://github.com/sinfo/ampersand-chosen-view/tarball/master": + version "0.0.1" + resolved "https://github.com/sinfo/ampersand-chosen-view/tarball/master#0d144eeed67aca16c355a52eae4e20f8d2c6490f" + dependencies: + amp-clone "^1.0.1" + ampersand-dom "^1.2.7" + ampersand-form-view "^2.2.0" + ampersand-version "^1.0.0" + ampersand-view "^7.0.0" + browserify-shim "^3.8.2" + domify "^1.3.1" + matches-selector "^1.0.0" + underscore "^1.7.0" + +ampersand-class-extend@^1.0.0, ampersand-class-extend@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ampersand-class-extend/-/ampersand-class-extend-1.0.2.tgz#8e3ab125d09bf7be943b50e98cce46ff517cbe91" + dependencies: + lodash.assign "^3.0.0" + +ampersand-class-extend@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ampersand-class-extend/-/ampersand-class-extend-2.0.0.tgz#52895ffa59217634a6188fd184b1048f5d808aff" + dependencies: + lodash "^4.11.1" + +ampersand-collection-lodash-mixin@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-2.0.1.tgz#31d85f39b5969ef7c136e0b5035dbed4511cfd70" + dependencies: + ampersand-version "^1.0.0" + lodash.countby "^3.1.0" + lodash.difference "^3.1.0" + lodash.drop "^3.0.0" + lodash.every "^3.2.0" + lodash.filter "^3.1.0" + lodash.find "^3.2.0" + lodash.foreach "^3.0.2" + lodash.groupby "^3.1.0" + lodash.includes "^3.1.0" + lodash.indexby "^3.1.0" + lodash.indexof "^3.0.2" + lodash.initial "^3.0.0" + lodash.invoke "^3.1.0" + lodash.isempty "^3.0.1" + lodash.isfunction "^3.0.2" + lodash.lastindexof "^3.0.2" + lodash.map "^3.1.0" + lodash.max "^3.2.0" + lodash.min "^3.2.0" + lodash.partition "^3.1.0" + lodash.reduce "^3.1.0" + lodash.reduceright "^3.1.0" + lodash.reject "^3.1.0" + lodash.rest "^3.0.0" + lodash.sample "^3.0.0" + lodash.shuffle "^3.0.0" + lodash.some "^3.2.0" + lodash.sortby "^3.1.0" + lodash.take "^3.0.0" + lodash.without "^3.1.0" + +ampersand-collection-lodash-mixin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-4.0.0.tgz#0ed047a8e73cb070bc36b678a463e382ac8db6dd" + dependencies: + ampersand-version "^1.0.0" + lodash "^4.6.1" + +ampersand-collection-rest-mixin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ampersand-collection-rest-mixin/-/ampersand-collection-rest-mixin-6.0.0.tgz#38568d3e522a9a78ae6e5814d4082dc22765576f" + dependencies: + ampersand-sync "^5.0.0" + ampersand-version "^1.0.2" + lodash "^4.11.1" + +"ampersand-collection-single-request-mixin@https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master": + version "0.0.1" + resolved "https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master#e49310fcf5e432c9903cdf60d40143bfc55a2f34" + dependencies: + ampersand-events "^1.1.1" + ampersand-version "^1.0.0" + lodash.assign "^3.0.0" + +ampersand-collection-view@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-1.4.0.tgz#f875162c4b7ffd64c55794e062060681d48bc025" + dependencies: + ampersand-class-extend "^1.0.0" + ampersand-events "^1.1.1" + ampersand-version "^1.0.0" + lodash.assign "^3.0.0" + lodash.difference "^3.1.0" + lodash.find "^3.1.0" + lodash.invoke "^3.1.0" + lodash.pick "^3.1.0" + +ampersand-collection-view@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-2.0.2.tgz#8990bf81b5a35f3ab87eecffafc61bb2fabe356b" + dependencies: + ampersand-class-extend "^2.0.0" + ampersand-events "^2.0.1" + ampersand-version "^1.0.0" + lodash "^4.11.1" + +ampersand-collection@^1.3.17: + version "1.6.1" + resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-1.6.1.tgz#430f654cf702e19d1dac6cd211755d503172a0c9" + dependencies: + ampersand-class-extend "^1.0.0" + ampersand-events "^1.0.1" + ampersand-version "^1.0.2" + lodash.assign "^3.0.0" + lodash.bind "^3.1.0" + lodash.isarray "^3.0.1" + +ampersand-collection@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-2.0.0.tgz#e82dcf3e5a5ad0687fbb381cc9335c647ab749bc" + dependencies: + ampersand-class-extend "^2.0.0" + ampersand-events "^2.0.1" + ampersand-version "^1.0.2" + lodash "^4.11.1" + +"ampersand-date-view@https://github.com/sinfo/ampersand-date-view/tarball/master": + version "0.0.7" + resolved "https://github.com/sinfo/ampersand-date-view/tarball/master#fdf294d7d476d8566f7282a48c8221ab546eea9d" + dependencies: + ampersand-input-view "^3.1.0" + ampersand-select-view "^2.2.1" + ampersand-version "^1.0.1" + ampersand-view "^7.0.0" + underscore "^1.6.0" + +ampersand-dom-bindings@^3.5.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/ampersand-dom-bindings/-/ampersand-dom-bindings-3.8.0.tgz#f29422b80d5fcb5bd3fd2965a15f8ce16f08937b" + dependencies: + ampersand-dom "^1.2.5" + ampersand-version "^1.0.0" + key-tree-store "^1.2.0" + lodash.partial "^3.1.1" + matches-selector "^1.0.0" + +ampersand-dom@^1.1.0, ampersand-dom@^1.2.1, ampersand-dom@^1.2.5, ampersand-dom@^1.2.7, ampersand-dom@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ampersand-dom/-/ampersand-dom-1.5.0.tgz#78e36f8b38aa5700f1a129d3423560a6c0523808" + dependencies: + ampersand-version "^1.0.0" + +ampersand-events@^1.0.1, ampersand-events@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ampersand-events/-/ampersand-events-1.1.1.tgz#a500e98ccae8ad92aa1d95744c533d9c10a16530" + dependencies: + ampersand-version "^1.0.2" + lodash.assign "^3.0.0" + lodash.bind "^3.1.0" + lodash.foreach "^3.0.2" + lodash.isempty "^3.0.1" + lodash.keys "^3.0.5" + lodash.once "^3.0.0" + lodash.uniqueid "^3.0.0" + +ampersand-events@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ampersand-events/-/ampersand-events-2.0.2.tgz#f402bc2e18305fabd995dbdcd3b7057bbdd7d347" + dependencies: + ampersand-version "^1.0.2" + lodash "^4.6.1" + +ampersand-form-view@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-2.4.0.tgz#48956e000d752260398548e7c5583a67f8542b2b" + dependencies: + amp-extend "^1.0.0" + amp-is-function "^1.0.0" + amp-result "^1.0.0" + ampersand-version "^1.0.0" + backbone-events-standalone "0.2.2" + +ampersand-form-view@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-7.0.0.tgz#63a71ea3fe9acb36a756659b9ed8ac43c33bbee1" + dependencies: + ampersand-version "^1.0.0" + ampersand-view "^10.0.1" + lodash "^4.11.1" + +ampersand-fullcalendar-view@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/ampersand-fullcalendar-view/-/ampersand-fullcalendar-view-0.0.2.tgz#1ed1d8fb3d7d0edf919f8500c87a6cf345dae358" + dependencies: + ampersand-version "^1.0.0" + ampersand-view "^7.2.0" + browserify-shim "^3.8.2" + +ampersand-infinite-scroll@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ampersand-infinite-scroll/-/ampersand-infinite-scroll-0.1.0.tgz#ff1de26392a39ede7acff7fa73c9a53d4a361c10" + dependencies: + ampersand-view "^8.0.0" + lodash.assign "^3.2.0" + +ampersand-input-view@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-3.1.1.tgz#3e5e832e7f373ec5e94c43ea5d6d39c6c91d7c5b" + dependencies: + ampersand-version "^1.0.1" + ampersand-view "^7.0.0" + +ampersand-input-view@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-4.0.5.tgz#f3124ecfa70b9952c6c58d7a0bf2ef7343683970" + dependencies: + ampersand-dom "^1.2.7" + ampersand-version "^1.0.1" + ampersand-view "^7.2.1" + matches-selector "^1.0.0" + +ampersand-input-view@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-7.0.0.tgz#ab1fb6b022531aed455e6071dcffb484988b11bf" + dependencies: + ampersand-dom "^1.2.7" + ampersand-version "^1.0.1" + ampersand-view "^10.0.0" + matches-selector "^1.0.0" + +ampersand-io-collection@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ampersand-io-collection/-/ampersand-io-collection-0.1.6.tgz#d3b54697b50cea444ba06c7ff3a83261166f6026" + dependencies: + ampersand-collection "^1.3.17" + ampersand-io "^0.4.2" + extend-object "^1.0.0" + +ampersand-io-model@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/ampersand-io-model/-/ampersand-io-model-0.3.1.tgz#7e5a552fbc5221a2726d69c15d46cb72cdc1433e" + dependencies: + ampersand-io "^0.4.2" + ampersand-state "^4.5.3" + underscore "^1.8.3" + +ampersand-io@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/ampersand-io/-/ampersand-io-0.4.2.tgz#973c39a5e76c91ee7e6ab672eeed8171a562003a" + dependencies: + ampersand-class-extend "^1.0.2" + socket.io-client "^1.3.5" + +ampersand-model@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ampersand-model/-/ampersand-model-8.0.0.tgz#85240edba92ddad46a85db3acc7ae408dccf57c5" + dependencies: + ampersand-state "^5.0.1" + ampersand-sync "^5.0.0" + ampersand-version "^1.0.2" + lodash "^4.11.1" + +ampersand-pagination-mixin@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ampersand-pagination-mixin/-/ampersand-pagination-mixin-0.1.0.tgz#ef2410e66c3c12c0c81ab2b84a21314ff938c30b" + dependencies: + lodash.assign "^3.2.0" + +ampersand-pikaday-view@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/ampersand-pikaday-view/-/ampersand-pikaday-view-0.0.1.tgz#eef32009b978eb9d5b0007aa67e88d42d852f979" + dependencies: + amp-is-date "^1.0.1" + ampersand-version "^1.0.1" + ampersand-view "^7.0.0" + pikaday "^1.3.1" + +ampersand-rest-collection@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/ampersand-rest-collection/-/ampersand-rest-collection-6.0.0.tgz#a051267979b2cf7606a38383d9ee96d121a628f3" + dependencies: + ampersand-collection "^2.0.0" + ampersand-collection-lodash-mixin "^4.0.0" + ampersand-collection-rest-mixin "^6.0.0" + ampersand-version "^1.0.2" + +ampersand-router@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ampersand-router/-/ampersand-router-4.0.0.tgz#1502c7ba6734af0394e7d8ab6780bcd543ea1338" + dependencies: + ampersand-class-extend "^2.0.0" + ampersand-events "^2.0.1" + ampersand-version "^1.0.0" + lodash "^4.11.1" + +ampersand-select-view@^2.2.1, "ampersand-select-view@https://github.com/sinfo/ampersand-select-view/tarball/master": + version "2.3.0" + resolved "https://github.com/sinfo/ampersand-select-view/tarball/master#679430d25a2c2cd14f5bca71b5761bf04a2e555b" + dependencies: + ampersand-dom "^1.1.0" + ampersand-version "^1.0.1" + domify "^1.2.2" + matches-selector "^1.0.0" + zuul "^1.16.4" + +ampersand-state@^4.5.2, ampersand-state@^4.5.3: + version "4.9.1" + resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-4.9.1.tgz#8ec482e1308ffc4682987287d753ad2d0368ca3e" + dependencies: + ampersand-events "^1.1.1" + ampersand-version "^1.0.0" + array-next "~0.0.1" + key-tree-store "^1.3.0" + lodash.assign "^3.2.0" + lodash.bind "^3.1.0" + lodash.escape "^3.0.0" + lodash.forown "^3.0.2" + lodash.has "^3.0.0" + lodash.includes "^3.1.3" + lodash.isarray "^3.0.4" + lodash.isdate "^3.0.1" + lodash.isequal "^3.0.1" + lodash.isfunction "^3.0.6" + lodash.isobject "^3.0.1" + lodash.isstring "^3.0.1" + lodash.omit "^3.1.0" + lodash.result "^3.0.0" + lodash.union "^3.1.0" + lodash.uniqueid "^3.0.0" + +ampersand-state@^5.0.1, ampersand-state@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-5.0.2.tgz#16830def866c644ecd21da8c8ba8717aa2b8d23c" + dependencies: + ampersand-events "^2.0.1" + ampersand-version "^1.0.0" + array-next "~0.0.1" + key-tree-store "^1.3.0" + lodash "^4.11.1" + +ampersand-subcollection@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/ampersand-subcollection/-/ampersand-subcollection-2.0.3.tgz#a36476fbbbf6be5f38fdf8fd6b62c50f36078641" + dependencies: + ampersand-class-extend "^1.0.0" + ampersand-collection-lodash-mixin "^2.0.0" + ampersand-events "^1.1.1" + ampersand-version "^1.0.0" + lodash.assign "^3.0.0" + lodash.difference "^3.1.0" + lodash.foreach "^3.0.2" + lodash.includes "^3.1.0" + lodash.isarray "^3.0.1" + lodash.isequal "^3.0.1" + lodash.keys "^3.0.5" + lodash.reduce "^3.1.0" + lodash.sortby "^3.1.0" + lodash.union "^3.1.0" + +ampersand-sync@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ampersand-sync/-/ampersand-sync-5.0.0.tgz#9db4ee313f289f98522279a9a66d6cae2c7777b1" + dependencies: + ampersand-version "^1.0.0" + lodash "^4.11.1" + media-type "0.3.0" + qs "^6.1.0" + request "^2.55.0" + xhr "^2.0.5" + +ampersand-version@^1.0.0, ampersand-version@^1.0.1, ampersand-version@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ampersand-version/-/ampersand-version-1.0.2.tgz#ff8f3d4ceac4d32ccd83f6bd6697397f7b59e2c0" + dependencies: + find-root "^0.1.1" + through2 "^0.6.3" + +ampersand-view-switcher@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ampersand-view-switcher/-/ampersand-view-switcher-2.1.0.tgz#e2375b5252f3127d5bc6ddda82c0c12ef3da2206" + dependencies: + ampersand-version "^1.0.0" + +ampersand-view@^10.0.0, ampersand-view@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-10.0.1.tgz#f5b9619c21ca390c5626ab94985eb3b1abfab938" + dependencies: + ampersand-collection-view "^2.0.1" + ampersand-dom-bindings "^3.5.0" + ampersand-state "^5.0.1" + ampersand-version "^1.0.2" + component-classes "^1.2.4" + domify "^1.3.2" + events-mixin "^1.2.0" + lodash "^4.11.1" + matches-selector "^1.0.0" + +ampersand-view@^7.0.0, ampersand-view@^7.2.0, ampersand-view@^7.2.1: + version "7.4.2" + resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-7.4.2.tgz#160cb5f81c89feae82bc6a3e0e61c365061a04c2" + dependencies: + ampersand-collection-view "^1.4.0" + ampersand-dom-bindings "^3.5.0" + ampersand-state "^4.5.2" + ampersand-version "^1.0.2" + component-classes "^1.2.4" + domify "^1.3.2" + events-mixin "^1.2.0" + get-object-path "^0.0.2" + lodash.assign "^3.0.0" + lodash.bind "^3.1.0" + lodash.flatten "^3.0.2" + lodash.foreach "^3.0.2" + lodash.invoke "^3.1.0" + lodash.isstring "^3.0.1" + lodash.last "^3.0.0" + lodash.pick "^3.1.0" + lodash.result "^3.0.0" + lodash.uniqueid "^3.0.0" + matches-selector "^1.0.0" + +ampersand-view@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-8.0.1.tgz#7f80867446af8a508596ed8d903f54151fb667e8" + dependencies: + ampersand-collection-view "^1.4.0" + ampersand-dom-bindings "^3.5.0" + ampersand-state "^4.5.2" + ampersand-version "^1.0.2" + component-classes "^1.2.4" + domify "^1.3.2" + events-mixin "^1.2.0" + get-object-path "^0.0.2" + lodash.assign "^3.0.0" + lodash.bind "^3.1.0" + lodash.flatten "^3.0.2" + lodash.foreach "^3.0.2" + lodash.invoke "^3.1.0" + lodash.isstring "^3.0.1" + lodash.last "^3.0.0" + lodash.pick "^3.1.0" + lodash.result "^3.0.0" + lodash.uniqueid "^3.0.0" + matches-selector "^1.0.0" + +andlog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/andlog/-/andlog-1.0.0.tgz#25b39047ac9c1e5f6b2c8e4cdb5e7bf9e65e534b" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.0.4.tgz#2713680775e7614c8ba186c065d4e2e52d1072c0" + +archiver@0.10.x: + version "0.10.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.10.1.tgz#c88a50fe114f744d059a07dfc4690f3a204146e4" + dependencies: + buffer-crc32 "~0.2.1" + file-utils "~0.2.0" + lazystream "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" + tar-stream "~0.4.0" + zip-stream "~0.3.0" + +archiver@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.12.0.tgz#b8ccde2508cab9092bb7106630139c0f39a280cc" + dependencies: + async "~0.9.0" + buffer-crc32 "~0.2.1" + glob "~4.0.6" + lazystream "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" + tar-stream "~1.0.0" + zip-stream "~0.4.0" + +archiver@~0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/archiver/-/archiver-0.7.1.tgz#cf152d794f86bbd93f9858da60d36aaeabad9bbf" + dependencies: + file-utils "~0.1.5" + lazystream "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.24" + zip-stream "~0.2.0" + +are-we-there-yet@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz#80e470e95a084794fe1899262c5667c6e88de1b3" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.0 || ^1.1.13" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +argparse@~0.1.4: + version "0.1.16" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c" + dependencies: + underscore "~1.7.0" + underscore.string "~2.4.0" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.1.tgz#e5ffe54d45e19f32f216e91eb99c8ce892bb604b" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-map@0.0.0, array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-next@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-next/-/array-next-0.0.1.tgz#e5e4660a4c27fda8151ff7764275d00900062be1" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asap/-/asap-1.0.0.tgz#b2a45da5fdfa20b0496fc3768cc27c12fa916a7d" + +asn1.js@^4.0.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.0.tgz#f71a1243f3e79d46d7b07d7fbf4824ee73af054a" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.5.tgz#ee74009413002d84cec7219c6ac811812e723160" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +assert@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.1.2.tgz#adaa04c46bb58c6dd1f294da3eb26e6228eb6e44" + dependencies: + util "0.10.3" + +astw@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astw/-/astw-2.0.0.tgz#08121ac8288d35611c0ceec663f6cd545604897d" + dependencies: + acorn "^1.0.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@0.9.x, async@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.0.tgz#ac3613b1da9bed1b47510bb4651b8931e47146c7" + +async@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" + dependencies: + lodash "^4.14.0" + +async@^0.2.10, async@~0.2.6, async@~0.2.7, async@~0.2.9: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.5.0.tgz#c57103f7a17fc037f02d7c2e64b602ea223f7d63" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" + +b64@3.x.x: + version "3.0.2" + resolved "https://registry.yarnpkg.com/b64/-/b64-3.0.2.tgz#7a9d60466adf7b8de114cbdf651a5fdfcc90894d" + +babel-code-frame@^6.16.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +backbone-events-standalone@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/backbone-events-standalone/-/backbone-events-standalone-0.2.2.tgz#59a0a4681fdc3604e749e54599014d89d5fdf508" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.7.tgz#54400dc91d696cec32a8a47902f971522fee8f48" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +batch@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.5.0.tgz#fd2e05a7a5d696b4db9314013e285d8ff3557ec3" + +bcrypt-pbkdf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" + dependencies: + tweetnacl "^0.14.3" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +bl@^0.9.0, bl@~0.9.0: + version "0.9.5" + resolved "https://registry.yarnpkg.com/bl/-/bl-0.9.5.tgz#c06b797af085ea00bc527afc8efcf11de2232054" + dependencies: + readable-stream "~1.0.26" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@2.10.2: + version "2.10.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.10.2.tgz#024a5517295308857f14f91f1106fc3b555f446b" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + +body-parser@~1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.4.3.tgz#4727952cff4af0773eefa4b226c2f4122f5e234d" + dependencies: + bytes "1.0.0" + depd "0.3.0" + iconv-lite "0.4.3" + media-typer "0.2.0" + qs "0.6.6" + raw-body "1.2.2" + type-is "1.3.1" + +body-parser@~1.8.0: + version "1.8.4" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.8.4.tgz#d497e04bc13b3f9a8bd8c70bb0cdc16f2e028898" + dependencies: + bytes "1.0.0" + depd "0.4.5" + iconv-lite "0.4.4" + media-typer "0.3.0" + on-finished "2.1.0" + qs "2.2.4" + raw-body "1.3.0" + type-is "~1.5.1" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@3.x.x: + version "3.2.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-3.2.2.tgz#0f0cc5d04adc5003b8c7d71f42cca7271fef0e78" + dependencies: + hoek "4.x.x" + +boom@4.x.x, boom@^4.0.0, boom@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.2.0.tgz#c1a74174b11fbba223f6162d4fd8851a1b82a536" + dependencies: + hoek "4.x.x" + +bossy@3.x.x: + version "3.0.4" + resolved "https://registry.yarnpkg.com/bossy/-/bossy-3.0.4.tgz#f9ae9f26e81b41a318f4ee0d83686e4a5c2507b9" + dependencies: + hoek "4.x.x" + joi "10.x.x" + +bouncy@3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/bouncy/-/bouncy-3.2.2.tgz#82ab4ad7beae05890eed54b9af3c45394b185dc7" + dependencies: + optimist "~0.3.5" + through "~2.3.4" + +bows@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/bows/-/bows-1.6.0.tgz#0c7d65c9682ce8adedac50d709cc498c9628da05" + dependencies: + andlog "^1.0.0" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.0.6.tgz#4028706b915f91f7b349a2e0bf3c376039d216e5" + +browser-pack@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-3.2.0.tgz#faa1cbc41487b1acc4747e373e1148adffd0e2d9" + dependencies: + JSONStream "~0.8.4" + combine-source-map "~0.3.0" + concat-stream "~1.4.1" + defined "~0.0.0" + through2 "~0.5.1" + umd "^2.1.0" + +browser-pack@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.7.1" + defined "^1.0.0" + through2 "^2.0.0" + umd "^3.0.0" + +browser-resolve@^1.11.0, browser-resolve@^1.3.0, browser-resolve@^1.7.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-istanbul@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/browserify-istanbul/-/browserify-istanbul-0.1.3.tgz#42eca8f8040b75fd601c8b3d30aebb612114a89d" + dependencies: + istanbul "^0.2.8" + minimatch "^0.2.14" + through "^2.3.4" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-shim@^3.8.2: + version "3.8.12" + resolved "https://registry.yarnpkg.com/browserify-shim/-/browserify-shim-3.8.12.tgz#e2c97a134c5eb122e2bb4f61707a07f6f73ff092" + dependencies: + exposify "~0.4.3" + mothership "~0.2.0" + rename-function-calls "~0.1.0" + resolve "~0.6.1" + through "~2.3.4" + +browserify-sign@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.0.tgz#10773910c3c206d5420a46aad8694f820b85968f" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserify@6.3.3: + version "6.3.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-6.3.3.tgz#d2a5031a24aec8045eb8174b501bf3f6248455d4" + dependencies: + JSONStream "~0.8.3" + assert "~1.1.0" + browser-pack "^3.2.0" + browser-resolve "^1.3.0" + browserify-zlib "~0.1.2" + buffer "^2.3.0" + builtins "~0.0.3" + commondir "0.0.1" + concat-stream "~1.4.1" + console-browserify "^1.1.0" + constants-browserify "~0.0.1" + crypto-browserify "^3.0.0" + deep-equal "~0.2.1" + defined "~0.0.0" + deps-sort "^1.3.5" + domain-browser "~1.1.0" + duplexer2 "~0.0.2" + events "~1.0.0" + glob "^4.0.5" + http-browserify "^1.4.0" + https-browserify "~0.0.0" + inherits "~2.0.1" + insert-module-globals "^6.1.0" + isarray "0.0.1" + labeled-stream-splicer "^1.0.0" + module-deps "^3.5.0" + os-browserify "~0.1.1" + parents "~0.0.1" + path-browserify "~0.0.0" + process "^0.8.0" + punycode "~1.2.3" + querystring-es3 "~0.2.0" + readable-stream "^1.0.33-1" + resolve "~0.7.1" + shallow-copy "0.0.1" + shasum "^1.0.0" + shell-quote "~0.0.1" + stream-browserify "^1.0.0" + string_decoder "~0.10.0" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^1.0.0" + timers-browserify "^1.0.1" + tty-browserify "~0.0.0" + umd "~2.1.0" + url "~0.10.1" + util "~0.10.1" + vm-browserify "~0.0.1" + xtend "^3.0.0" + +browserify@^13.0.0: + version "13.3.0" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce" + dependencies: + JSONStream "^1.0.3" + assert "^1.4.0" + browser-pack "^6.0.1" + browser-resolve "^1.11.0" + browserify-zlib "~0.1.2" + buffer "^4.1.0" + cached-path-relative "^1.0.0" + concat-stream "~1.5.1" + console-browserify "^1.1.0" + constants-browserify "~1.0.0" + crypto-browserify "^3.0.0" + defined "^1.0.0" + deps-sort "^2.0.0" + domain-browser "~1.1.0" + duplexer2 "~0.1.2" + events "~1.1.0" + glob "^7.1.0" + has "^1.0.0" + htmlescape "^1.1.0" + https-browserify "~0.0.0" + inherits "~2.0.1" + insert-module-globals "^7.0.0" + labeled-stream-splicer "^2.0.0" + module-deps "^4.0.8" + os-browserify "~0.1.1" + parents "^1.0.1" + path-browserify "~0.0.0" + process "~0.11.0" + punycode "^1.3.2" + querystring-es3 "~0.2.0" + read-only-stream "^2.0.0" + readable-stream "^2.0.2" + resolve "^1.1.4" + shasum "^1.0.0" + shell-quote "^1.6.1" + stream-browserify "^2.0.0" + stream-http "^2.0.0" + string_decoder "~0.10.0" + subarg "^1.0.0" + syntax-error "^1.1.1" + through2 "^2.0.0" + timers-browserify "^1.0.1" + tty-browserify "~0.0.0" + url "~0.11.0" + util "~0.10.1" + vm-browserify "~0.0.1" + xtend "^4.0.0" + +bson@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/bson/-/bson-1.0.4.tgz#93c10d39eaa5b58415cbc4052f3e53e562b0b72c" + +buffer-crc32@0.2.1, buffer-crc32@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.1.tgz#be3e5382fc02b6d6324956ac1af98aa98b08534c" + +buffer-shims@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^2.3.0: + version "2.8.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-2.8.2.tgz#d73c214c0334384dc29b04ee0ff5f5527c7974e7" + dependencies: + base64-js "0.0.7" + ieee754 "^1.1.4" + is-array "^1.0.1" + +buffer@^4.1.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +bufferjs@=1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/bufferjs/-/bufferjs-1.1.0.tgz#095ffa39c5e6b40a2178a1169c9effc584a73201" + +"bufferjs@>= 2.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/bufferjs/-/bufferjs-3.0.1.tgz#0692e829cb10a10550e647390b035eb06c38e8ef" + +"bufferstream@>= 0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/bufferstream/-/bufferstream-0.6.2.tgz#a5f27e10d3c760084d14b35126615007319e3731" + dependencies: + bufferjs ">= 2.0.0" + optionalDependencies: + buffertools ">= 1.0.3" + +"buffertools@>= 1.0.3": + version "2.1.4" + resolved "https://registry.yarnpkg.com/buffertools/-/buffertools-2.1.4.tgz#62d4e1584c0090a0c7d3587f25934a84b8b38de4" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +builtins@~0.0.3: + version "0.0.7" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a" + +bundle-metadata@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bundle-metadata/-/bundle-metadata-1.0.1.tgz#c675bb05fdb19f9c421a1e7eeb4d59e49e575809" + dependencies: + JSONStream "~0.6.4" + optimist "~0.4.0" + sha1sum "0.0.1" + through "~2.3.3" + +bunyan-logentries@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bunyan-logentries/-/bunyan-logentries-1.0.0.tgz#5497185d212159ff76593c0ca53204645cccb81c" + dependencies: + le_node "~0.2.0" + +bunyan@^1.8.5: + version "1.8.5" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.5.tgz#0d619e83005fb89070f5f47982fc1bf00600878a" + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.10.6" + mv "~2" + safe-json-stringify "~1" + +bytes@0.2.1, bytes@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-0.2.1.tgz#555b08abcb063f8975905302523e4cd4ffdfdf31" + +bytes@1, bytes@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" + +cached-path-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + +call@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/call/-/call-4.0.0.tgz#cd29381a98046a132db26e2628e70bd8321a1ddf" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsite@1.0.0, callsite@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + +caseless@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.6.0.tgz#8167c1ab8397fb5bb95f96d28e5a81c50f247ac4" + +catbox-memory@2.x.x: + version "2.0.4" + resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-2.0.4.tgz#433e255902caf54233d1286429c8f4df14e822d5" + dependencies: + hoek "4.x.x" + +catbox@7.x.x: + version "7.1.3" + resolved "https://registry.yarnpkg.com/catbox/-/catbox-7.1.3.tgz#9817edec5a921743282addfc9c45ace52847eebb" + dependencies: + boom "4.x.x" + hoek "4.x.x" + joi "10.x.x" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +char-split@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/char-split/-/char-split-0.2.0.tgz#8755eda641e5db277dd0f509b517c827e50a8edf" + dependencies: + through "2.3.4" + +character-parser@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/character-parser/-/character-parser-1.2.1.tgz#c0dde4ab182713b919b970959a123ecc1a30fcd6" + +chokidar@^1.4.3: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" + dependencies: + inherits "^2.0.1" + +circular-json@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +clean-css@^3.1.9: + version "3.4.21" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.21.tgz#2101d5dbd19d63dbc16a75ebd570e7c33948f65b" + dependencies: + commander "2.8.x" + source-map "0.4.x" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +closest@*: + version "0.0.1" + resolved "https://registry.yarnpkg.com/closest/-/closest-0.0.1.tgz#26da6f80b3e0e17e71f80f12782819e9f653495c" + dependencies: + matches-selector "0.0.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +code@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/code/-/code-4.0.0.tgz#ec7953fd79190052cea2569d63d7b4c0d47c0204" + dependencies: + hoek "4.x.x" + +colors@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" + +combine-source-map@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.3.0.tgz#d9e74f593d9cd43807312cb5d846d451efaa9eb7" + dependencies: + convert-source-map "~0.3.0" + inline-source-map "~0.3.0" + source-map "~0.1.31" + +combine-source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.6.1.tgz#9b4a09c316033d768e0f11e029fa2730e079ad96" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.5.0" + lodash.memoize "~3.0.3" + source-map "~0.4.2" + +combine-source-map@~0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-1.3.2.tgz#8a8f30ec670a6fdd64af52f1914b907d79ead5b5" + dependencies: + keypress "0.1.x" + +commander@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781" + +commander@2.8.x: + version "2.8.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.7.1, commander@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@~2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" + +commondir@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-0.0.1.tgz#89f00fdcd51b519c578733fec563e6a6da7f5be2" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-classes@^1.2.4: + version "1.2.6" + resolved "https://registry.yarnpkg.com/component-classes/-/component-classes-1.2.6.tgz#c642394c3618a4d8b0b8919efccbbd930e5cd691" + dependencies: + component-indexof "0.0.3" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-event@*, component-event@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/component-event/-/component-event-0.1.4.tgz#3de78fc28782381787e24bf2a7c536bf0142c9b4" + +component-indexof@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-indexof/-/component-indexof-0.0.3.tgz#11d091312239eb8f32c8f25ae9cb002ffe8d3c24" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compress-commons@~0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-0.1.6.tgz#0c740870fde58cba516f0ac0c822e33a0b85dfa3" + dependencies: + buffer-crc32 "~0.2.1" + crc32-stream "~0.3.1" + readable-stream "~1.0.26" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@~1.5.0, concat-stream@~1.5.1: + version "1.5.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" + dependencies: + inherits "~2.0.1" + readable-stream "~2.0.0" + typedarray "~0.0.5" + +concat-stream@~1.4.1, concat-stream@~1.4.5: + version "1.4.10" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.4.10.tgz#acc3bbf5602cb8cc980c6ac840fa7d8603e3ef36" + dependencies: + inherits "~2.0.1" + readable-stream "~1.1.9" + typedarray "~0.0.5" + +configstore@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-1.4.0.tgz#c35781d0501d268c25c54b8b17f6240e8a4fb021" + dependencies: + graceful-fs "^4.1.2" + mkdirp "^0.5.0" + object-assign "^4.0.1" + os-tmpdir "^1.0.0" + osenv "^0.1.0" + uuid "^2.0.1" + write-file-atomic "^1.1.2" + xdg-basedir "^2.0.0" + +connect@2.12.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/connect/-/connect-2.12.0.tgz#31d8fa0dcacdf1908d822bd2923be8a2d2a7ed9a" + dependencies: + batch "0.5.0" + buffer-crc32 "0.2.1" + bytes "0.2.1" + cookie "0.1.0" + cookie-signature "1.0.1" + debug ">= 0.7.3 < 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" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constantinople@~3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/constantinople/-/constantinople-3.0.2.tgz#4b945d9937907bcd98ee575122c3817516544141" + dependencies: + acorn "^2.1.0" + +constants-browserify@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" + +constants-browserify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +content-disposition@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" + +content-type@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed" + +content@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/content/-/content-3.0.3.tgz#000f8a01371b95c66afe99be9390fa6cb91aa87a" + dependencies: + boom "4.x.x" + +convert-source-map@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.4.1.tgz#f919a0099fe31f80fc5a1d0eb303161b394070c7" + +convert-source-map@~0.3.0: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + +cookie-getter@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cookie-getter/-/cookie-getter-1.0.1.tgz#4a4dcd6b8b2d63beaed8dfed0365d9ac53ef4c94" + +cookie-signature@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.1.tgz#44e072148af01e6e8e24afbf12690d68ae698ecb" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.1.0.tgz#90eb469ddce905c866de687efc43131d8801f9d0" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +cookiejar@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-1.3.0.tgz#dd00b35679021e99cbd4e855b9ad041913474765" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +crc32-stream@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-0.2.0.tgz#5c80d480c8682f904b6f15530dbbe0b8c063dbbe" + dependencies: + buffer-crc32 "~0.2.1" + readable-stream "~1.0.24" + +crc32-stream@~0.3.1: + version "0.3.4" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-0.3.4.tgz#73bc25b45fac1db6632231a7bfce8927e9f06552" + dependencies: + buffer-crc32 "~0.2.1" + readable-stream "~1.0.24" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^1.0.0" + sha.js "^2.3.6" + +create-hmac@^1.1.0, create-hmac@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" + dependencies: + create-hash "^1.1.0" + inherits "^2.0.1" + +cron@~1.0.4: + version "1.0.9" + resolved "https://registry.yarnpkg.com/cron/-/cron-1.0.9.tgz#5177cf751f3263f00f45ebf69fead1ea96d31cfc" + dependencies: + moment-timezone "~0.3.0" + +cross-spawn@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.0.1.tgz#a3bbb302db2297cbea3c04edf36941f4613aa399" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.1" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.1.tgz#86a9203f7367a0e9324bc7555ff0fcf5f81979ee" + dependencies: + boom "4.x.x" + +crypto-browserify@^3.0.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +css-parse@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.0.4.tgz#38b0503fbf9da9f54e9c1dbda60e145c77117bdd" + +css-parse@1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" + +css-stringify@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/css-stringify/-/css-stringify-1.0.5.tgz#b0d042946db2953bb9d292900a6cb5f6d0122031" + +css@~1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/css/-/css-1.0.8.tgz#9386811ca82bccc9ee7fb5a732b1e2a317c8a3e7" + dependencies: + css-parse "1.0.4" + css-stringify "1.0.5" + +cssesc@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +cssmin@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/cssmin/-/cssmin-0.4.3.tgz#c9194077e0ebdacd691d5f59015b9d819f38d015" + +ctype@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" + +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug-log@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + +debug@*, debug@2.3.3, debug@^2.1.1, debug@^2.2.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +debug@0.7.4, debug@~0.7.2, debug@~0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" + +debug@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.1.0.tgz#33ab915659d8c2cc8a41443d94d6ebd37697ed21" + dependencies: + ms "0.6.2" + +debug@2.2.0, debug@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +"debug@>= 0.7.3 < 1", debug@~0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-0.8.1.tgz#20ff4d26f5e422cb68a1bacbbb61039ad8c1c130" + +debug@~1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-1.0.4.tgz#5b9c256bd54b6ec02283176fa8a0ede6d154cbf8" + dependencies: + ms "0.6.2" + +decamelize@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@~0.2.0, deep-equal@~0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-0.2.2.tgz#84b745896f34c684e98f2ce0e42abaf43bba017d" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.2, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +defined@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-0.0.0.tgz#f35eea7d705e933baf13b2f03b3f83d921403b3e" + +deflate-crc32-stream@~0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/deflate-crc32-stream/-/deflate-crc32-stream-0.1.2.tgz#975ea0e7303b75d85232198ab7b405c2d47baad5" + dependencies: + buffer-crc32 "~0.2.1" + +deglob@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" + dependencies: + find-root "^1.0.0" + glob "^7.0.5" + ignore "^3.0.9" + pkg-config "^1.1.0" + run-parallel "^1.1.2" + uniq "^1.0.1" + +del@^2.0.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegate-events@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/delegate-events/-/delegate-events-1.1.1.tgz#dab490a9c1f1d40ca40ebcd21edaf717b671d4d4" + dependencies: + closest "*" + component-event "*" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +depd@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-0.3.0.tgz#11c9bc28e425325fbd8b38940beff69fa5326883" + +depd@0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/depd/-/depd-0.4.5.tgz#1a664b53388b4a6573e8ae67b5f767c693ca97f1" + +depd@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" + +deps-sort@^1.3.5: + version "1.3.9" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-1.3.9.tgz#29dfff53e17b36aecae7530adbbbf622c2ed1a71" + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^1.0.0" + +deps-sort@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" + dependencies: + JSONStream "^1.0.3" + shasum "^1.0.0" + subarg "^1.0.0" + through2 "^2.0.0" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detective@^4.0.0, detective@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/detective/-/detective-4.1.1.tgz#9c4bac1e9fb8bb34f7f18cae080ea1d03aff2cda" + dependencies: + acorn "^1.0.3" + defined "^1.0.0" + escodegen "^1.4.1" + +detective@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detective/-/detective-3.1.0.tgz#77782444ab752b88ca1be2e9d0a0395f1da25eed" + dependencies: + escodegen "~1.1.0" + esprima-fb "3001.1.0-dev-harmony-fb" + +diff@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dkim-signer@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dkim-signer/-/dkim-signer-0.1.2.tgz#2ff5d61c87d8fbff5a8b131cffc5ec3ba1c25553" + dependencies: + mimelib "~0.2.15" + punycode "~1.2.4" + +doctrine@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@~1.1.0: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domify@^1.2.2, domify@^1.3.1, domify@^1.3.2, domify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/domify/-/domify-1.4.0.tgz#11483617f764f8695975b4bdc79b14f0803b629b" + +domify@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/domify/-/domify-1.2.2.tgz#1425961479b9bfac7383577c87bdcc019ec693b9" + +domready@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/domready/-/domready-1.0.8.tgz#91f252e597b65af77e745ae24dd0185d5e26d58c" + +dot-parts@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dot-parts/-/dot-parts-1.0.1.tgz#884bd7bcfc3082ffad2fe5db53e494d8f3e0743f" + +dtrace-provider@~0.8: + version "0.8.0" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.0.tgz#fa95fbf67ed3ae3e97364f9664af7302e5ff5625" + dependencies: + nan "^2.3.3" + +duplexer2@0.0.2, duplexer2@~0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + dependencies: + readable-stream "^2.0.2" + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" + dependencies: + end-of-stream "1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.0.5.tgz#8c9b212898d8cd9f1a9436650ce7be202c9e9ff0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +elliptic@^6.0.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.2.tgz#e4c81e0829cf0a65ab70e998b8232723b5c1bc48" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + inherits "^2.0.1" + +emailjs@~0.3.8: + version "0.3.16" + resolved "https://registry.yarnpkg.com/emailjs/-/emailjs-0.3.16.tgz#f162735352ce7b6615a5d811714051f90f23331d" + dependencies: + addressparser "^0.3.2" + mimelib "0.2.14" + moment "= 1.7.0" + starttls "0.2.1" + optionalDependencies: + bufferjs "=1.1.0" + +emitter-component@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emitter-component/-/emitter-component-1.0.0.tgz#f04dd18fc3dc3e9a74cbc0f310b088666e4c016f" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +encoding@~0.1, encoding@~0.1.7: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +end-of-stream@1.0.0, end-of-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" + dependencies: + once "~1.3.0" + +engine.io-client@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.2.tgz#c38767547f2a7d184f5752f6f0ad501006703766" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.1" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.2.tgz#6b59be730b348c0125b0a4589de1c355abcf7a7e" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.1" + +es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0.10.7: + version "0.10.12" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.12.tgz#aa84641d4db76b62abba5e45fd805ecbab140047" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" + dependencies: + d "^0.1.1" + es5-ext "^0.10.7" + es6-symbol "3" + +es6-map@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.4.tgz#a34b147be224773a4d7da8072794cefa3632b897" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-set "~0.1.3" + es6-symbol "~3.1.0" + event-emitter "~0.3.4" + +es6-promise@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.2.1.tgz#ec56233868032909207170c39448e24449dd1fc4" + +es6-promise@^3.0.2, es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + +es6-set@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.4.tgz#9516b6761c2964b92ff479456233a247dc707ce8" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + es6-iterator "2" + es6-symbol "3" + event-emitter "~0.3.4" + +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" + dependencies: + d "~0.1.1" + es5-ext "~0.10.11" + +es6-weak-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.1.tgz#0d2bbd8827eb5fb4ba8f97fbfea50d43db21ea81" + dependencies: + d "^0.1.1" + es5-ext "^0.10.8" + es6-iterator "2" + es6-symbol "3" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@1.3.x: + version "1.3.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" + dependencies: + esprima "~1.1.1" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.33" + +escodegen@1.6.1, escodegen@^1.4.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.6.1.tgz#367de17d8510540d12bc6dcb8b3f918391265815" + dependencies: + esprima "^1.2.2" + estraverse "^1.9.1" + esutils "^1.1.6" + optionator "^0.5.0" + optionalDependencies: + source-map "~0.1.40" + +escodegen@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.1.0.tgz#c663923f6e20aad48d0c0fa49f31c6d4f49360cf" + dependencies: + esprima "~1.0.4" + estraverse "~1.5.0" + esutils "~1.0.0" + optionalDependencies: + source-map "~0.1.30" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-hapi@10.x.x: + version "10.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-hapi/-/eslint-config-hapi-10.0.0.tgz#9980affd76103ebc1fec92b45638345db19348f5" + +eslint-config-standard-jsx@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-3.2.0.tgz#c240e26ed919a11a42aa4de8059472b38268d620" + +eslint-config-standard@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-6.2.1.tgz#d3a68aafc7191639e7ee441e7348739026354292" + +eslint-plugin-hapi@4.x.x: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-hapi/-/eslint-plugin-hapi-4.0.0.tgz#44aa2e45f7939a523929cd832bb9aa129a95e823" + dependencies: + hapi-capitalize-modules "1.x.x" + hapi-for-you "1.x.x" + hapi-scope-start "2.x.x" + no-arrowception "1.x.x" + +eslint-plugin-promise@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.4.0.tgz#6ba9048c2df57be77d036e0c68918bc9b4fc4195" + +eslint-plugin-react@~6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.7.1.tgz#1af96aea545856825157d97c1b50d5a8fb64a5a7" + dependencies: + doctrine "^1.2.2" + jsx-ast-utils "^1.3.3" + +eslint-plugin-standard@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" + +eslint@3.13.x: + version "3.13.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.13.1.tgz#564d2646b5efded85df96985332edd91a23bff25" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + escope "^3.6.0" + espree "^3.3.1" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +eslint@~3.10.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.10.2.tgz#c9a10e8bf6e9d65651204778c503341f1eac3ce7" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.4.6" + debug "^2.1.1" + doctrine "^1.2.2" + escope "^3.6.0" + espree "^3.3.1" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.2.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~1.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@3.x.x: + version "3.1.4" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.1.4.tgz#0726d7ac83af97a7c8498da9b363a3609d2a68a1" + dependencies: + acorn "^3.1.0" + acorn-jsx "^3.0.0" + +espree@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.3.2.tgz#dbf3fadeb4ecb4d4778303e50103b3d36c88b89c" + dependencies: + acorn "^4.0.1" + acorn-jsx "^3.0.0" + +esprima-fb@3001.1.0-dev-harmony-fb: + version "3001.1.0-dev-harmony-fb" + resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" + +esprima@1.2.x, esprima@^1.2.2: + version "1.2.5" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.5.tgz#0993502feaf668138325756f30f9a51feeec11e9" + +esprima@^2.5.0, esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + +esprima@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +esutils@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + +etag@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.7.0.tgz#03d30b5f67dd6e632d2945d30d6652731a34d5d8" + +event-emitter@~0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.4.tgz#8d63ddfb4cfe1fae3b32ca265c4c720222080bb5" + dependencies: + d "~0.1.1" + es5-ext "~0.10.7" + +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +events-mixin@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/events-mixin/-/events-mixin-1.3.0.tgz#552167de80a8c350a1f200eb73d2017ae797ecdd" + dependencies: + component-event "^0.1.3" + delegate-events "^1.1.0" + +events@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/events/-/events-1.0.2.tgz#75849dcfe93d10fb057c30055afdbd51d06a8e24" + +events@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" + dependencies: + create-hash "^1.1.1" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +exposify@~0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/exposify/-/exposify-0.4.3.tgz#1963eb34c489f8bfba02dfd27fccfbc117384c9e" + dependencies: + globo "~1.0.0" + has-require "~1.1.0" + map-obj "~1.0.1" + replace-requires "~1.0.1" + through2 "~0.4.0" + transformify "~0.1.1" + +express-state@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/express-state/-/express-state-1.0.3.tgz#b6f368743a95d8a91b7683adf593d02b1577ec02" + +express@3.4.8: + version "3.4.8" + resolved "https://registry.yarnpkg.com/express/-/express-3.4.8.tgz#aa7a8986de07053337f4bc5ed9a6453d9cc8e2e1" + dependencies: + buffer-crc32 "0.2.1" + commander "1.3.2" + connect "2.12.0" + cookie "0.1.0" + cookie-signature "1.0.1" + debug ">= 0.7.3 < 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" + +express@4.x: + version "4.14.0" + resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.1" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "~2.2.0" + depd "~1.1.0" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + finalhandler "0.5.0" + fresh "0.3.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.2" + qs "6.2.0" + range-parser "~1.2.0" + send "0.14.1" + serve-static "~1.11.1" + type-is "~1.6.13" + utils-merge "1.0.0" + vary "~1.1.0" + +extend-object@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/extend-object/-/extend-object-1.0.0.tgz#42514f84015d1356caf5187969dfb2bc1bda0823" + +extend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +falafel@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" + dependencies: + acorn "^1.0.3" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +fast-levenshtein@~1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-1.0.7.tgz#0178dcdee023b92905193af0959e8a7639cfdcb9" + +fast-levenshtein@~2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz#bd33145744519ab1c36c3ee9f31f08e9079b67f2" + +favicon-setter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/favicon-setter/-/favicon-setter-0.1.1.tgz#853b50cf1578dc0bd1f91b235aec291d46de9313" + +faye-websocket@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.7.3.tgz#cc4074c7f4a4dfd03af54dd65c354b135132ce11" + dependencies: + websocket-driver ">=0.3.6" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +file-utils@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/file-utils/-/file-utils-0.1.5.tgz#dc8153c855387cb4dacb0a1725531fa444a6b48c" + dependencies: + findup-sync "~0.1.2" + glob "~3.2.6" + iconv-lite "~0.2.11" + isbinaryfile "~0.1.9" + lodash "~2.1.0" + minimatch "~0.2.12" + rimraf "~2.2.2" + +file-utils@~0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/file-utils/-/file-utils-0.2.2.tgz#4b7967bb2079ada4d4a7f5454206ecb5c0d4c589" + dependencies: + findup-sync "^0.2.1" + glob "^4.3.5" + iconv-lite "^0.4.3" + isbinaryfile "^2.0.1" + lodash "^2.4.1" + minimatch "^2.0.1" + rimraf "^2.2.2" + +filename-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" + +fileset@0.1.x: + version "0.1.8" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-0.1.8.tgz#506b91a9396eaa7e32fb42a84077c7a0c736b741" + dependencies: + glob "3.x" + minimatch "0.x" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.5.0.tgz#e9508abece9b6dba871a6942a1d7911b91911ac7" + dependencies: + debug "~2.2.0" + escape-html "~1.0.3" + on-finished "~2.3.0" + statuses "~1.3.0" + unpipe "~1.0.0" + +find-nearest-file@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-nearest-file/-/find-nearest-file-1.0.0.tgz#bf539d7d0f02996631fa2196680f6776762b9f70" + +find-parent-dir@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + +find-rc@3.0.x: + version "3.0.1" + resolved "https://registry.yarnpkg.com/find-rc/-/find-rc-3.0.1.tgz#54a4178370f10bc9371fa8d1b2c2809a2afa0cce" + +find-root@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-0.1.2.tgz#98d2267cff1916ccaf2743b3a0eea81d79d7dcd1" + +find-root@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" + +findup-sync@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.2.1.tgz#e0a90a450075c49466ee513732057514b81e878c" + dependencies: + glob "~4.3.0" + +findup-sync@~0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.1.3.tgz#7f3e7a97b82392c653bf06589bd85190e93c3683" + dependencies: + glob "~3.2.9" + lodash "~2.4.1" + +firefox-profile@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/firefox-profile/-/firefox-profile-0.2.7.tgz#fe46afc2ed6a96f62c5c3bd446fa259f6014a909" + dependencies: + adm-zip "~0.4.3" + archiver "~0.7.1" + async "~0.2.9" + fs-extra "~0.8.1" + lazystream "~0.1.0" + node-uuid "~1.4.1" + wrench "~1.5.1" + xml2js "~0.4.0" + +flat-cache@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.1.tgz#6c837d6225a7de5659323740b36d5361f71691ff" + dependencies: + circular-json "^0.3.0" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +follow-redirects@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-0.0.3.tgz#6ce67a24db1fe13f226c1171a72a7ef2b17b8f65" + dependencies: + underscore "" + +for-each@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + +for-in@^0.1.5: + version "0.1.6" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.6.tgz#c9f96e89bfad18a545af5ec3ed352a1d9e5b4dc8" + +for-own@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.4.tgz#0149b41a39088c7515f51ebe1c1386d45f935072" + dependencies: + for-in "^0.1.5" + +forEachAsync@~2.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/forEachAsync/-/forEachAsync-2.2.1.tgz#e3723f00903910e1eb4b1db3ad51b5c64a319fec" + dependencies: + sequence "2.x" + +foreach-shim@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/foreach-shim/-/foreach-shim-0.1.1.tgz#be61d75f46abb7176f5abd295e35885751b71d94" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~0.0.3: + version "0.0.10" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.0.10.tgz#db345a5378d86aeeb1ed5d553b869ac192d2f5ed" + dependencies: + async "~0.2.7" + combined-stream "~0.0.4" + mime "~1.2.2" + +form-data@~0.1.0: + version "0.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.1.4.tgz#91abd788aba9702b1aabfa8bc01031a2ac9e3b12" + dependencies: + async "~0.9.0" + combined-stream "~0.0.4" + mime "~1.2.11" + +form-data@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +formidable@1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.14.tgz#2b3f4c411cbb5fdd695c44843e2a23514a43231a" + +forwarded@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.0.tgz#19ef9874c4ae1c297bcf078fde63a09b66a84363" + +fresh@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.2.0.tgz#bfd9402cf3df12c4a4c310c79f99a3dde13d34a7" + +fresh@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.3.0.tgz#651f838e22424e7566de161d8358caa199f83d4f" + +from@~0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.3.tgz#ef63ac2062ac32acf7862e0d40b44b896f22f3bc" + +fs-extra@~0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.8.1.tgz#0e5779ffbfedf511bc755595c7f03c06d4b43e8d" + dependencies: + jsonfile "~1.1.0" + mkdirp "0.3.x" + ncp "~0.4.2" + rimraf "~2.2.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.0.15" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.10.tgz#604e8a92fe26ffd9f6fae30399d4984e1ab22822" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" + +gauge@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + supports-color "^0.2.0" + wide-align "^1.1.0" + +gaze@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +get-object-path@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/get-object-path/-/get-object-path-0.0.2.tgz#70fd926cb961a6195ba7732ce96d50d91a29f0b9" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +getpass@^0.1.1: + version "0.1.6" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@3.x, glob@~3.2.6, glob@~3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" + dependencies: + inherits "2" + minimatch "0.3" + +glob@7.0.x, glob@^7.0.3: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^4.0.5, glob@^4.3.5: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.14: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.0, glob@~7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.11: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +glob@~4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.0.6.tgz#695c50bdd4e2fb5c5d370b091f388d3707e291a7" + dependencies: + graceful-fs "^3.0.2" + inherits "2" + minimatch "^1.0.0" + once "^1.3.0" + +glob@~4.3.0: + version "4.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.3.5.tgz#80fbb08ca540f238acce5d11d1e9bc41e75173d3" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +global@~4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.1.tgz#5f757908c7cbabce54f386ae440e11e26b7916df" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.14.0, globals@^9.2.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.14.0.tgz#8859936af0038741263053b39d0e76ca241e4034" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globo@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/globo/-/globo-1.0.2.tgz#68f75ce2a045440d3a704131786f88d4205f49bd" + dependencies: + accessory "~1.0.0" + is-defined "~1.0.0" + ternary "~1.0.0" + +globule@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.1.0.tgz#c49352e4dc183d85893ee825385eb994bb6df45f" + dependencies: + glob "~7.1.1" + lodash "~4.16.4" + minimatch "~3.0.2" + +got@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/got/-/got-3.3.1.tgz#e5d0ed4af55fc3eef4d56007769d98192bcb2eca" + dependencies: + duplexify "^3.2.0" + infinity-agent "^2.0.0" + is-redirect "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + nested-error-stacks "^1.0.0" + object-assign "^3.0.0" + prepend-http "^1.0.0" + read-all-stream "^3.0.0" + timed-out "^2.0.0" + +graceful-fs@^3.0.2: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +handlebars@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.0.12.tgz#18c6d3440c35e91b19b3ff582b9151ab4985d4fc" + dependencies: + optimist "~0.3" + uglify-js "~2.3" + +handlebars@1.3.x: + version "1.3.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.3.0.tgz#9e9b130a93e389491322d975cf3ec1818c37ce34" + dependencies: + optimist "~0.3" + optionalDependencies: + uglify-js "~2.3" + +handlebars@4.x.x, handlebars@^4.0.0, handlebars@^4.0.5: + version "4.0.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.6.tgz#2ce4484850537f9c97a8026d5399b935c4ed4ed7" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +hapi-auth-cookie@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hapi-auth-cookie/-/hapi-auth-cookie-6.1.1.tgz#927db39e434916d81ab870d4181d70d53e745572" + dependencies: + boom "3.x.x" + hoek "3.x.x" + joi "7.x.x" + +hapi-capitalize-modules@1.x.x: + version "1.1.6" + resolved "https://registry.yarnpkg.com/hapi-capitalize-modules/-/hapi-capitalize-modules-1.1.6.tgz#7991171415e15e6aa3231e64dda73c8146665318" + +hapi-for-you@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hapi-for-you/-/hapi-for-you-1.0.0.tgz#d362fbee8d7bda9c2c7801e207e5a5cd1a0b6a7b" + +hapi-scope-start@2.x.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/hapi-scope-start/-/hapi-scope-start-2.1.1.tgz#7495a726fe72b7bca8de2cdcc1d87cd8ce6ab4f2" + +hapi-swagger@^7.6.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/hapi-swagger/-/hapi-swagger-7.6.0.tgz#20d84d388409992c416bfb098a00869cb5e72a20" + dependencies: + boom "^4.0.0" + handlebars "^4.0.5" + hoek "^4.0.1" + http-status "^0.2.3" + joi "10.0.5" + json-schema-ref-parser "^3.1.2" + swagger-parser "^3.4.1" + +hapi@^16.1.0: + version "16.1.0" + resolved "https://registry.yarnpkg.com/hapi/-/hapi-16.1.0.tgz#419dd86347588821eb5a0a5f493bce019802d33b" + dependencies: + accept "2.x.x" + ammo "2.x.x" + boom "4.x.x" + call "4.x.x" + catbox "7.x.x" + catbox-memory "2.x.x" + cryptiles "3.x.x" + heavy "4.x.x" + hoek "4.x.x" + iron "4.x.x" + items "2.x.x" + joi "10.x.x" + mimos "3.x.x" + podium "^1.2.x" + shot "3.x.x" + statehood "5.x.x" + subtext "^4.3.x" + topo "2.x.x" + +har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-require@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-require/-/has-require-1.1.0.tgz#41e3e8bb8623467893edbc3909a5893de52c76f8" + +has-require@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/has-require/-/has-require-1.2.2.tgz#921675ab130dbd9768fc8da8f1a8e242dfa41774" + dependencies: + escape-string-regexp "^1.0.3" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash.js@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + dependencies: + inherits "^2.0.1" + +hawk@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-1.1.1.tgz#87cd491f9b46e4e2aeaca335416766885d2d1ed9" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.9.x" + sntp "0.2.x" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hbs@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/hbs/-/hbs-2.4.0.tgz#f4c956cb660d6974dc61214b7c49a21f6aaa3f51" + dependencies: + handlebars "1.0.12" + walk "2.2.1" + +he@~0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/he/-/he-0.3.6.tgz#9d7bc446e77963933301dd602d5731cb861135e0" + +heavy@4.x.x: + version "4.0.3" + resolved "https://registry.yarnpkg.com/heavy/-/heavy-4.0.3.tgz#976bba118b011b15fe904aa4f292a168bfc6232f" + dependencies: + boom "4.x.x" + hoek "4.x.x" + joi "10.x.x" + +highlight.js@7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-7.5.0.tgz#0052595eef15845d842e02a03313afadc3ebd6cc" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@2.x.x, hoek@^2.9.0: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@3.x.x: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-3.0.4.tgz#268adff66bb6695c69b4789a88b1e0847c3f3123" + +hoek@4.x.x, hoek@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.1.0.tgz#4a4557460f69842ed463aa00628cc26d2683afa7" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hooks-fixed@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-1.2.0.tgz#0d2772d4d7d685ff9244724a9f0b5b2559aac96b" + +htmlescape@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" + +http-browserify@^1.4.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" + dependencies: + Base64 "~0.2.0" + inherits "~2.0.1" + +http-errors@~1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750" + dependencies: + inherits "2.0.3" + setprototypeof "1.0.2" + statuses ">= 1.3.1 < 2" + +http-signature@~0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.10.1.tgz#4fbdac132559aa8323121e540779c0a012b27e66" + dependencies: + asn1 "0.1.11" + assert-plus "^0.1.5" + ctype "0.5.3" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-status@^0.2.3: + version "0.2.5" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-0.2.5.tgz#976f91077ea7bfc15277cbcf8c80c4d5c51b49b0" + +https-browserify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +icalendar@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/icalendar/-/icalendar-0.7.1.tgz#d0d3486795f8f1c5cf4f8cafac081b4b4e7a32ae" + +iconv-lite@0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.3.tgz#9e7887793b769cc695eb22d2546a4fd2d79b7a1e" + +iconv-lite@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.4.tgz#e95f2e41db0735fc21652f7827a5ee32e63c83a8" + +iconv-lite@^0.4.3, iconv-lite@~0.4.13: + version "0.4.15" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" + +iconv-lite@~0.2.11: + version "0.2.11" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +ignore-by-default@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + +ignore@^3.0.9, ignore@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.2.0.tgz#8d88f03c3002a0ac52114db25d2c673b0bf1e435" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inert@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/inert/-/inert-4.1.0.tgz#e68df9fb0b87d8ad688e3428daaf35d623b64f5d" + dependencies: + ammo "2.x.x" + boom "4.x.x" + hoek "4.x.x" + items "2.x.x" + joi "10.x.x" + lru-cache "4.0.x" + +infinity-agent@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/infinity-agent/-/infinity-agent-2.0.3.tgz#45e0e2ff7a9eb030b27d62b74b3744b7a7ac4216" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inline-source-map@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.3.1.tgz#a528b514e689fce90db3089e870d92f527acb5eb" + dependencies: + source-map "~0.3.0" + +inline-source-map@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.5.0.tgz#4a4c5dd8e4fb5e9b3cda60c822dfadcaee66e0af" + dependencies: + source-map "~0.4.0" + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + dependencies: + source-map "~0.5.3" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +insert-module-globals@^6.1.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-6.6.3.tgz#20638e29a30f9ed1ca2e3a825fbc2cba5246ddfc" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.6.1" + concat-stream "~1.4.1" + is-buffer "^1.1.0" + lexical-scope "^1.2.0" + process "~0.11.0" + through2 "^1.0.0" + xtend "^4.0.0" + +insert-module-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3" + dependencies: + JSONStream "^1.0.3" + combine-source-map "~0.7.1" + concat-stream "~1.5.1" + is-buffer "^1.1.0" + lexical-scope "^1.2.0" + process "~0.11.0" + through2 "^2.0.0" + xtend "^4.0.0" + +interpret@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" + +ipaddr.js@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" + +iron@4.x.x: + version "4.0.4" + resolved "https://registry.yarnpkg.com/iron/-/iron-4.0.4.tgz#c1f8cc4c91454194ab8920d9247ba882e528061a" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + +is-array@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-array/-/is-array-1.0.1.tgz#e9850cc2cc860c3bc0977e84ccf0dd464584279a" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.4.tgz#cfc86ccd5dc5a52fa80489111c6920c457e2d98b" + +is-defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-defined/-/is-defined-1.0.0.tgz#1f07ca67d571f594c4b14415a45f7bef88f92bf5" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1, is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-promise@~1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-stream@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +isarray@0.0.1, isarray@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isbinaryfile@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-2.0.4.tgz#d23592e6a6f093efb84c2e6152056be294e414a1" + +isbinaryfile@~0.1.9: + version "0.1.9" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-0.1.9.tgz#15eece35c4ab708d8924da99fb874f2b5cc0b6c4" + +isemail@2.x.x: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" + +isexe@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-middleware@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/istanbul-middleware/-/istanbul-middleware-0.2.0.tgz#82c7951a044e94322cda679e95b0c40290d358d6" + dependencies: + archiver "0.10.x" + body-parser "~1.4.3" + express "4.x" + istanbul "0.2.x" + +istanbul@0.2.x, istanbul@^0.2.8: + version "0.2.16" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.2.16.tgz#870545a0d4f4b4ce161039e9e805a98c2c700bd9" + dependencies: + abbrev "1.0.x" + async "0.9.x" + escodegen "1.3.x" + esprima "1.2.x" + fileset "0.1.x" + handlebars "1.3.x" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + resolve "0.7.x" + which "1.0.x" + wordwrap "0.0.x" + +items@2.x.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/items/-/items-2.1.1.tgz#8bd16d9c83b19529de5aea321acaada78364a198" + +jade@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/jade/-/jade-1.11.0.tgz#9c80e538c12d3fb95c8d9bb9559fa0cc040405fd" + dependencies: + character-parser "1.2.1" + clean-css "^3.1.9" + commander "~2.6.0" + constantinople "~3.0.1" + jstransformer "0.0.2" + mkdirp "~0.5.0" + transformers "2.1.0" + void-elements "~2.0.1" + with "~4.0.0" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +joi@10.0.5: + version "10.0.5" + resolved "https://registry.yarnpkg.com/joi/-/joi-10.0.5.tgz#2e43af9bf24d2d5745852e9ab968c85be357bd6a" + dependencies: + hoek "4.x.x" + isemail "2.x.x" + items "2.x.x" + topo "2.x.x" + +joi@10.x.x, joi@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-10.2.0.tgz#2c9dba08240d453e58145667f0d5006de527e328" + dependencies: + hoek "4.x.x" + isemail "2.x.x" + items "2.x.x" + topo "2.x.x" + +joi@7.x.x: + version "7.3.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-7.3.0.tgz#4d9c9f181830444083665b5b6cd5b8ca6779a5e9" + dependencies: + hoek "3.x.x" + isemail "2.x.x" + moment "2.x.x" + topo "2.x.x" + +jquery@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-2.2.4.tgz#2c89d6889b5eac522a7eea32c14521559c6cbf02" + +js-tokens@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" + +js-yaml@3.x, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.6.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" + +json-schema-ref-parser@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-1.4.1.tgz#c0c2e438bf0796723b02451bae8bc7dd0b37fed0" + dependencies: + call-me-maybe "^1.0.1" + debug "^2.2.0" + es6-promise "^3.0.2" + js-yaml "^3.4.6" + ono "^2.0.1" + +json-schema-ref-parser@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-3.1.2.tgz#a38ecb7774f87f32e7eb9723d5921390e76a9a42" + dependencies: + call-me-maybe "^1.0.1" + debug "^2.2.0" + es6-promise "^3.1.2" + js-yaml "^3.6.0" + ono "^2.2.1" + z-schema "^3.17.0" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@1.x.x, json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stable-stringify@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz#611c23e814db375527df851193db59dd2af27f45" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@*, json-stringify-safe@5.x.x, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +jsonfile@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-1.1.1.tgz#da4fd6ad77f1a255203ea63c7bc32dc31ef64433" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonparse@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-0.0.5.tgz#330542ad3f0a654665b778f3eb2d9a9fa507ac64" + +jsonparse@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.2.0.tgz#5c0c5685107160e72fe7489bddea0b44c2bc67bd" + +jsonpointer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.0.tgz#6661e161d2fc445f19f98430231343722e1fcbd5" + +jsprim@^1.2.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" + dependencies: + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +jstransformer@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-0.0.2.tgz#7aae29a903d196cfa0973d885d3e47947ecd76ab" + dependencies: + is-promise "^2.0.0" + promise "^6.0.1" + +jsx-ast-utils@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.3.4.tgz#0257ed1cc4b1e65b39d7d9940f9fb4f20f7ba0a9" + dependencies: + acorn-jsx "^3.0.1" + object-assign "^4.1.0" + +kareem@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-1.2.0.tgz#59851e833feb1ce6cf60000e0c23acf75c8a3547" + +key-tree-store@^1.2.0, key-tree-store@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/key-tree-store/-/key-tree-store-1.3.0.tgz#5ea29afc2529a425938437d6955b714ce6a9791f" + +keypress@0.1.x: + version "0.1.0" + resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" + +kind-of@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.1.0.tgz#475d698a5e49ff5e53d14e3e732429dc8bf4cf47" + dependencies: + is-buffer "^1.0.2" + +lab@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/lab/-/lab-12.1.0.tgz#94cc889c6a9d71e30ab9e9d249b819664d60be47" + dependencies: + bossy "3.x.x" + diff "3.x.x" + eslint "3.13.x" + eslint-config-hapi "10.x.x" + eslint-plugin-hapi "4.x.x" + espree "3.x.x" + find-rc "3.0.x" + handlebars "4.x.x" + hoek "4.x.x" + items "2.x.x" + json-stable-stringify "1.x.x" + json-stringify-safe "5.x.x" + mkdirp "0.5.x" + seedrandom "2.4.x" + source-map-support "0.4.x" + +labeled-stream-splicer@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-1.0.2.tgz#4615331537784981e8fd264e1f3a434c4e0ddd65" + dependencies: + inherits "^2.0.1" + isarray "~0.0.1" + stream-splicer "^1.1.0" + +labeled-stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" + dependencies: + inherits "^2.0.1" + isarray "~0.0.1" + stream-splicer "^2.0.0" + +latest-version@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" + dependencies: + package-json "^1.0.0" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazystream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-0.1.0.tgz#1b25d63c772a4c20f0a5ed0a9d77f484b6e16920" + dependencies: + readable-stream "~1.0.2" + +le_node@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/le_node/-/le_node-0.2.1.tgz#ad7ac1ccd764ead0a9ff584b4e5c27da5ef5aae7" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +levn@~0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.2.5.tgz#ba8d339d0ca4a610e3a3f145b9caf48807155054" + dependencies: + prelude-ls "~1.1.0" + type-check "~0.3.1" + +lexical-scope@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.2.0.tgz#fcea5edc704a4b3a8796cdca419c3a0afaf22df4" + dependencies: + astw "^2.0.0" + +load-script@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/load-script/-/load-script-0.0.5.tgz#cbd54b27cd7309902b749640c70e996f4c643b63" + +localtunnel@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-1.5.0.tgz#5be949779325e9f3273021a3f38d2e7a8dcd7c4f" + dependencies: + debug "0.7.4" + optimist "0.3.4" + request "2.11.4" + +lodash._arraycopy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" + +lodash._arrayeach@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" + +lodash._arrayevery@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arrayevery/-/lodash._arrayevery-3.0.0.tgz#1f69249a42edf81d466df017b46ebc818486e779" + +lodash._arrayfilter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arrayfilter/-/lodash._arrayfilter-3.0.0.tgz#2debe11eec69e5dcc6f4b86137128a48f1524237" + +lodash._arraymap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arraymap/-/lodash._arraymap-3.0.0.tgz#1a8fd0f4c0df4b61dea076d717cdc97f0a3c3e66" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecallback@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/lodash._basecallback/-/lodash._basecallback-3.3.1.tgz#b7b2bb43dc2160424a21ccf26c57e443772a8e27" + dependencies: + lodash._baseisequal "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.isarray "^3.0.0" + lodash.pairs "^3.0.0" + +lodash._basecompareascending@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._basecompareascending/-/lodash._basecompareascending-3.0.2.tgz#17e24f181eea9ed2b1f989dc800b7619644eac53" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basedifference@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basedifference/-/lodash._basedifference-3.0.3.tgz#f2c204296c2a78e02b389081b6edcac933cf629c" + dependencies: + lodash._baseindexof "^3.0.0" + lodash._cacheindexof "^3.0.0" + lodash._createcache "^3.0.0" + +lodash._baseeach@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash._baseeach/-/lodash._baseeach-3.0.4.tgz#cf8706572ca144e8d9d75227c990da982f932af3" + dependencies: + lodash.keys "^3.0.0" + +lodash._baseeachright@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._baseeachright/-/lodash._baseeachright-3.0.3.tgz#9854a20cd4a89e985330ad1f6d1cba9bd803bd0a" + dependencies: + lodash._baseforright "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basefilter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basefilter/-/lodash._basefilter-3.0.0.tgz#4b76403df0e286d03d5e0f7295ed3441e101d121" + dependencies: + lodash._baseeach "^3.0.0" + +lodash._basefind@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basefind/-/lodash._basefind-3.0.0.tgz#b2bba05cc645f972de2cf925fa2bf63a0f60c8ae" + +lodash._basefindindex@^3.0.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/lodash._basefindindex/-/lodash._basefindindex-3.6.0.tgz#f083360a1b022418ed81bc899beb312e21e74a4f" + +lodash._baseflatten@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/lodash._baseflatten/-/lodash._baseflatten-3.1.4.tgz#0770ff80131af6e34f3b511796a7ba5214e65ff7" + dependencies: + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash._basefor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" + +lodash._baseforright@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._baseforright/-/lodash._baseforright-3.0.2.tgz#535a88acaf06d04d6c330649d021bd2ce69873af" + +lodash._baseget@^3.0.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/lodash._baseget/-/lodash._baseget-3.7.2.tgz#1b6ae1d5facf3c25532350a13c1197cb8bb674f4" + +lodash._baseindexof@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz#fe52b53a1c6761e42618d654e4a25789ed61822c" + +lodash._baseisequal@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/lodash._baseisequal/-/lodash._baseisequal-3.0.7.tgz#d8025f76339d29342767dcc887ce5cb95a5b51f1" + dependencies: + lodash.isarray "^3.0.0" + lodash.istypedarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._baserandom@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._baserandom/-/lodash._baserandom-3.0.1.tgz#e69cc081003ce234ea0cd34998950721bb919f0a" + +lodash._basereduce@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._basereduce/-/lodash._basereduce-3.0.2.tgz#13fb98fbde162083a0c967f0605c32acfbb270b2" + +lodash._baseslice@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._baseslice/-/lodash._baseslice-3.0.3.tgz#aa4ae3dc53eed53b08de2e3362b39357b5c87d75" + +lodash._basesortby@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basesortby/-/lodash._basesortby-3.0.0.tgz#d0a9aad47bb917c0ed90b1e22d0387ea189128cb" + +lodash._baseuniq@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._baseuniq/-/lodash._baseuniq-3.0.3.tgz#2123fa0db2d69c28d5beb1c1f36d61522a740234" + dependencies: + lodash._baseindexof "^3.0.0" + lodash._cacheindexof "^3.0.0" + lodash._createcache "^3.0.0" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._binaryindex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._binaryindex/-/lodash._binaryindex-3.0.1.tgz#a9470115e069c686d344edde40940a6191ca0930" + dependencies: + lodash._binaryindexby "^3.0.0" + +lodash._binaryindexby@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._binaryindexby/-/lodash._binaryindexby-3.0.3.tgz#b182b4eeb8af05a330a99a8dc28112e03fd4a711" + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + +lodash._cacheindexof@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz#3dc69ac82498d2ee5e3ce56091bafd2adc7bde92" + +lodash._createaggregator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._createaggregator/-/lodash._createaggregator-3.0.0.tgz#d66cbf39949b050d87df53461f0d059dfb08dc9f" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash.isarray "^3.0.0" + +lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + +lodash._createcache@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash._createcache/-/lodash._createcache-3.1.2.tgz#56d6a064017625e79ebca6b8018e17440bdcf093" + dependencies: + lodash._getnative "^3.0.0" + +lodash._createwrapper@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._createwrapper/-/lodash._createwrapper-3.2.0.tgz#df453e664163217b895a454065af1c47a0ea3c4d" + dependencies: + lodash._root "^3.0.0" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._invokepath@^3.0.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/lodash._invokepath/-/lodash._invokepath-3.7.2.tgz#194115808786e0c522fc1cefa5a2e7bb059b4e55" + dependencies: + lodash._baseget "^3.0.0" + lodash._baseslice "^3.0.0" + lodash._topath "^3.0.0" + lodash.isarray "^3.0.0" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + +lodash._pickbyarray@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash._pickbyarray/-/lodash._pickbyarray-3.0.2.tgz#1f898d9607eb560b0e167384b77c7c6d108aa4c5" + +lodash._pickbycallback@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._pickbycallback/-/lodash._pickbycallback-3.0.0.tgz#ff61b9a017a7b3af7d30e6c53de28afa19b8750a" + dependencies: + lodash._basefor "^3.0.0" + lodash.keysin "^3.0.0" + +lodash._replaceholders@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._replaceholders/-/lodash._replaceholders-3.0.0.tgz#8abbb7126c431f7ed744f7baaf39f08bc9bd9d58" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + dependencies: + lodash._objecttypes "~2.4.1" + +lodash._toiterable@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash._toiterable/-/lodash._toiterable-3.0.4.tgz#f5a1171e4fd6f6dac79aa9d2b13eff50a179c0d4" + dependencies: + lodash._basevalues "^3.0.0" + lodash.keys "^3.0.0" + +lodash._topath@^3.0.0: + version "3.8.1" + resolved "https://registry.yarnpkg.com/lodash._topath/-/lodash._topath-3.8.1.tgz#3ec5e2606014f4cb97f755fe6914edd8bfc00eac" + dependencies: + lodash.isarray "^3.0.0" + +lodash.assign@^3.0.0, lodash.assign@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + +lodash.before@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.before/-/lodash.before-3.0.3.tgz#687783660ea1a8fac4f01e2774de0f5206b161ce" + +lodash.bind@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-3.1.0.tgz#f95f48638d7d8bbb5854f908266527999fbfa4bb" + dependencies: + lodash._createwrapper "^3.0.0" + lodash._replaceholders "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.countby@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.countby/-/lodash.countby-3.1.1.tgz#9e1bd61d403674c90a8cc0371ab935d0233a7276" + dependencies: + lodash._createaggregator "^3.0.0" + lodash.keys "^3.0.0" + +lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.defaults@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54" + dependencies: + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + +lodash.difference@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-3.2.2.tgz#dc463fffe6619ab4af49a3c87ace6695a285dde6" + dependencies: + lodash._basedifference "^3.0.0" + lodash._baseflatten "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.drop@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.drop/-/lodash.drop-3.0.0.tgz#7ff29fa42ed11e88d9c1f5592fccfc7130e20eae" + dependencies: + lodash._baseslice "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.every@^3.2.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-3.2.3.tgz#ed365f757cdf93db81e70629f04a705f5481947f" + dependencies: + lodash._arrayevery "^3.0.0" + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.filter@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-3.1.1.tgz#9bb1d453372d9cf929127c354df723f47ae2dc3f" + dependencies: + lodash._arrayfilter "^3.0.0" + lodash._basecallback "^3.0.0" + lodash._basefilter "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.find@^3.1.0, lodash.find@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-3.2.1.tgz#046e319f3ace912ac6c9246c7f683c5ec07b36ad" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._basefind "^3.0.0" + lodash._basefindindex "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.flatten@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-3.0.2.tgz#de1cf57758f8f4479319d35c3e9cc60c4501938c" + dependencies: + lodash._baseflatten "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.foreach@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-3.0.3.tgz#6fd7efb79691aecd67fdeac2761c98e701d6c39a" + dependencies: + lodash._arrayeach "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.forown@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-3.0.2.tgz#90e29cdf7893048dd0529a333e304896b0bac28e" + dependencies: + lodash._basefor "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash.keys "^3.0.0" + +lodash.get@^4.1.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + +lodash.groupby@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-3.1.1.tgz#a688fe5f2b28bf6be7ff6da1c8d4f4a167695e82" + dependencies: + lodash._createaggregator "^3.0.0" + lodash.keys "^3.0.0" + +lodash.gt@^3.0.0: + version "3.9.2" + resolved "https://registry.yarnpkg.com/lodash.gt/-/lodash.gt-3.9.2.tgz#bd39de05e0cb682bfbf2b7a0b01f64662d1ac7f4" + +lodash.has@^3.0.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-3.2.1.tgz#3b75471d8d2083d8ad9d8a15e321ec78424958e6" + dependencies: + lodash._baseget "^3.0.0" + lodash._baseslice "^3.0.0" + lodash._topath "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.includes@^3.1.0, lodash.includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-3.1.3.tgz#c322d049c27892b29a01b995936e595381ebbc17" + dependencies: + lodash._baseindexof "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.isarray "^3.0.0" + lodash.isstring "^3.0.0" + lodash.keys "^3.0.0" + +lodash.indexby@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.indexby/-/lodash.indexby-3.1.1.tgz#f2caab0ff279837858147730d863cdd80c1c042e" + dependencies: + lodash._createaggregator "^3.0.0" + lodash.keys "^3.0.0" + +lodash.indexof@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-3.0.3.tgz#c75c03c548b8637b4ac07ae332f69095547c4118" + dependencies: + lodash._baseindexof "^3.0.0" + lodash._binaryindex "^3.0.0" + +lodash.initial@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.initial/-/lodash.initial-3.0.0.tgz#0dbd2d9bfc2b4e6cff6cf3cd233aa1a4a5fba6bb" + dependencies: + lodash._baseslice "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.invoke@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/lodash.invoke/-/lodash.invoke-3.2.3.tgz#9ecd448a7cc750e42233e3587b98044f41e06bc3" + dependencies: + lodash._baseeach "^3.0.0" + lodash._invokepath "^3.0.0" + lodash.isarray "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0, lodash.isarray@^3.0.1, lodash.isarray@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isdate@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isdate/-/lodash.isdate-3.0.3.tgz#bd6b9be645e6ae6716b5ad007a08fbd1abd0b020" + +lodash.isempty@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-3.0.4.tgz#3bc55bf811d6d232d5e3354ce2c86447a20f1ad5" + dependencies: + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + lodash.isfunction "^3.0.0" + lodash.isstring "^3.0.0" + lodash.keys "^3.0.0" + +lodash.isequal@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-3.0.4.tgz#1c35eb3b6ef0cd1ff51743e3ea3cf7fdffdacb64" + dependencies: + lodash._baseisequal "^3.0.0" + lodash._bindcallback "^3.0.0" + +lodash.isequal@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isfunction@^3.0.0, lodash.isfunction@^3.0.2, lodash.isfunction@^3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.8.tgz#4db709fc81bc4a8fd7127a458a5346c5cdce2c6b" + +lodash.isobject@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-3.0.2.tgz#3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d" + +lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.isstring@^3.0.0, lodash.isstring@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-3.0.1.tgz#41638944ea042ef67ad67c293aa541d3f3d6e53c" + +lodash.istypedarray@^3.0.0: + version "3.0.6" + resolved "https://registry.yarnpkg.com/lodash.istypedarray/-/lodash.istypedarray-3.0.6.tgz#c9a477498607501d8e8494d283b87c39281cef62" + +lodash.keys@^3.0.0, lodash.keys@^3.0.5: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +lodash.keysin@^3.0.0: + version "3.0.8" + resolved "https://registry.yarnpkg.com/lodash.keysin/-/lodash.keysin-3.0.8.tgz#22c4493ebbedb1427962a54b445b2c8a767fb47f" + dependencies: + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.last@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.last/-/lodash.last-3.0.0.tgz#242f663112dd4c6e63728c60a3c909d1bdadbd4c" + +lodash.lastindexof@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.lastindexof/-/lodash.lastindexof-3.0.2.tgz#8f0456fa91d0621a9ae4b7807b1445eb7e50a3fd" + dependencies: + lodash._binaryindex "^3.0.0" + +lodash.lt@^3.0.0: + version "3.9.2" + resolved "https://registry.yarnpkg.com/lodash.lt/-/lodash.lt-3.9.2.tgz#313b70c555f43d880da37bbb87b9e11e8bbb784e" + +lodash.map@^3.1.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-3.1.4.tgz#b483acd1b786c5c7b492c495f7b5266229bc00c2" + dependencies: + lodash._arraymap "^3.0.0" + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.max@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-3.4.0.tgz#692f55a02d2a918cded491b2584d8744380b7c5d" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._toiterable "^3.0.0" + lodash.gt "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + +lodash.min@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/lodash.min/-/lodash.min-3.4.0.tgz#bbd0ae69ab7373012e96eee2127bad8894192fa9" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._toiterable "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + lodash.lt "^3.0.0" + +lodash.omit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-3.1.0.tgz#897fe382e6413d9ac97c61f78ed1e057a00af9f3" + dependencies: + lodash._arraymap "^3.0.0" + lodash._basedifference "^3.0.0" + lodash._baseflatten "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash._pickbyarray "^3.0.0" + lodash._pickbycallback "^3.0.0" + lodash.keysin "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.once@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-3.0.1.tgz#18137ec96fa3cce868226f3dabb9ea70d0bc128f" + dependencies: + lodash.before "^3.0.0" + +lodash.pairs@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash.pairs/-/lodash.pairs-3.0.1.tgz#bbe08d5786eeeaa09a15c91ebf0dcb7d2be326a9" + dependencies: + lodash.keys "^3.0.0" + +lodash.partial@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.partial/-/lodash.partial-3.1.1.tgz#ab4a6ab6e32f03ecb1519048cdbae502680053e5" + dependencies: + lodash._createwrapper "^3.0.0" + lodash._replaceholders "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.partition@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.partition/-/lodash.partition-3.1.1.tgz#43abf35ec944bc507f54af8836641f53c052c8e3" + dependencies: + lodash._createaggregator "^3.0.0" + lodash.keys "^3.0.0" + +lodash.pick@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-3.1.0.tgz#f252a855b2046b61bcd3904b26f76bd2efc65550" + dependencies: + lodash._baseflatten "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash._pickbyarray "^3.0.0" + lodash._pickbycallback "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.reduce@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.reduce/-/lodash.reduce-3.1.2.tgz#2af3e2c688a0d939d86ea71714e8cd53ce327b02" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._basereduce "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.reduceright@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.reduceright/-/lodash.reduceright-3.1.2.tgz#71f14d1ff027661b6d9a82b9787c648b7c612230" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeachright "^3.0.0" + lodash._basereduce "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.reject@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.reject/-/lodash.reject-3.1.1.tgz#ff60824147ea4cbc276ee597ee982c6fbfe2cf01" + dependencies: + lodash._arrayfilter "^3.0.0" + lodash._basecallback "^3.0.0" + lodash._basefilter "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.rest@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.rest/-/lodash.rest-3.0.0.tgz#f83403108b8d5a4547a81cb26fe4b27eaaa00729" + dependencies: + lodash._baseslice "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.result@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.result/-/lodash.result-3.1.2.tgz#21172884e4da2449392472b50861c58c3f1ae279" + dependencies: + lodash._baseget "^3.0.0" + lodash._baseslice "^3.0.0" + lodash._topath "^3.0.0" + lodash.isarray "^3.0.0" + lodash.isfunction "^3.0.0" + +lodash.sample@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.sample/-/lodash.sample-3.1.0.tgz#4b0ed473abe4808d4dae3280b97b1c6f6b31c01c" + dependencies: + lodash._baserandom "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._toiterable "^3.0.0" + lodash.toarray "^3.0.0" + lodash.values "^3.0.0" + +lodash.shuffle@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-3.1.0.tgz#518546d6a51d63511e5128741f2943267f4cc479" + dependencies: + lodash.sample "^3.0.0" + +lodash.some@^3.2.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-3.2.3.tgz#76337da4fe04f0d32f10c93785af0f605bfe2eaf" + dependencies: + lodash._basecallback "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.sortby@^3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-3.1.5.tgz#98403acf75fefb240693831f4bc0d951f94701b8" + dependencies: + lodash._basecallback "^3.0.0" + lodash._basecompareascending "^3.0.0" + lodash._baseeach "^3.0.0" + lodash._basesortby "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash.take@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.take/-/lodash.take-3.0.0.tgz#5d176b348dc8b51b80823cb16cc7a93ad1c7b424" + dependencies: + lodash._baseslice "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.toarray@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-3.0.2.tgz#2b204f0fa4f51c285c6f00c81d1cea5a23041179" + dependencies: + lodash._arraycopy "^3.0.0" + lodash._basevalues "^3.0.0" + lodash.keys "^3.0.0" + +lodash.union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-3.1.0.tgz#a4a3066fc15d6a7f8151cce9bdfe63dce7f5bcff" + dependencies: + lodash._baseflatten "^3.0.0" + lodash._baseuniq "^3.0.0" + lodash.restparam "^3.0.0" + +lodash.uniqueid@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.uniqueid/-/lodash.uniqueid-3.2.0.tgz#59416f134103ce253d4b4aa818272be3fbbcbbdb" + dependencies: + lodash._root "^3.0.0" + +lodash.values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-3.0.0.tgz#0cef08fe7a007770dbbb404e319fcb49775d6659" + dependencies: + lodash._basevalues "^3.0.0" + lodash.keys "^3.0.0" + +lodash.without@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/lodash.without/-/lodash.without-3.2.1.tgz#d69614b3512e52294b6abab782e7ca96538ce816" + dependencies: + lodash._basedifference "^3.0.0" + lodash.restparam "^3.0.0" + +lodash@2.4.1, lodash@^2.4.1, lodash@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.4.1.tgz#5b7723034dda4d262e5a46fb2c58d7cc22f71420" + +lodash@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.3.0, lodash@^4.6.1: + version "4.17.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" + +lodash@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-2.1.0.tgz#0637eaaa36a8a1cfc865c3adfb942189bfb0998d" + +lodash@~4.16.4: + version "4.16.6" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.16.6.tgz#d22c9ac660288f3843e16ba7d2b5d06cca27d777" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +lout@^9.2.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/lout/-/lout-9.2.0.tgz#fb0e5f69c09752eef64fc35fccf8809fa42e1eef" + dependencies: + boom "3.x.x" + handlebars "4.x.x" + hoek "4.x.x" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.5.2.tgz#1fddad938aae1263ce138680be1b3f591c0ab41c" + +lru-cache@4.0.x, lru-cache@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +mailcomposer@~0.2.12: + version "0.2.12" + resolved "https://registry.yarnpkg.com/mailcomposer/-/mailcomposer-0.2.12.tgz#4d02a604616adcb45fb36d37513f4c1bd0b75681" + dependencies: + dkim-signer "~0.1.1" + follow-redirects "0.0.3" + he "~0.3.6" + mime "~1.2.11" + mimelib "~0.2.15" + +mailgun@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/mailgun/-/mailgun-0.5.0.tgz#bce0f3134a6d788b6f2368f71784ef20277cd697" + +map-obj@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +markdown@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/markdown/-/markdown-0.5.0.tgz#28205b565a8ae7592de207463d6637dc182722b2" + dependencies: + nopt "~2.1.1" + +marked@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" + +matches-selector@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/matches-selector/-/matches-selector-0.0.1.tgz#1df5262243ae341c1a0804dd302048267ac713bb" + +matches-selector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/matches-selector/-/matches-selector-1.0.0.tgz#434833447026a25ea4999edab18e4b8892b25721" + +media-type@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-type/-/media-type-0.3.0.tgz#ceff6aa0e3f41a4a4de3d7d6b96eb82ac78d9ee8" + +media-typer@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.2.0.tgz#d8a065213adfeaa2e76321a2b6dda36ff6335984" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +merge-descriptors@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-0.0.1.tgz#2ff0980c924cf81d0b5d1fb601177cb8bb56c0d0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +methods@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/methods/-/methods-0.0.1.tgz#277c90f8bef39709645a8371c51c3b6c648e068c" + +methods@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/methods/-/methods-0.1.0.tgz#335d429eefd21b7bacf2e9c922a8d2bd14a30e4f" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.x.x, mime-db@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" + +mime-db@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.12.0.tgz#3d0c63180f458eb10d325aaa37d7c58ae312e9d7" + +mime-types@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.0.tgz#6a7b4a6af2e7d92f97afe03f047c7801e8f001d2" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: + version "2.1.13" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" + dependencies: + mime-db "~1.25.0" + +mime-types@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-1.0.2.tgz#995ae1392ab8affcbfcb2641dd054e943c0d5dce" + +mime-types@~2.0.9: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.0.14.tgz#310e159db23e077f8bb22b748dabfa4957140aa6" + dependencies: + mime-db "~1.12.0" + +mime@1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.5.tgz#9eed073022a8bf5e16c8566c6867b8832bfbfa13" + +mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@~1.2.11, mime@~1.2.2, mime@~1.2.7, mime@~1.2.9: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mimelib@0.2.14: + version "0.2.14" + resolved "https://registry.yarnpkg.com/mimelib/-/mimelib-0.2.14.tgz#2a1aa724bd190b85bd526e6317ab6106edfd6831" + dependencies: + addressparser "~0.2.0" + encoding "~0.1" + +mimelib@~0.2.15: + version "0.2.19" + resolved "https://registry.yarnpkg.com/mimelib/-/mimelib-0.2.19.tgz#37ec90a6ac7d00954851d0b2c31618f0a49da0ee" + dependencies: + addressparser "~0.3.2" + encoding "~0.1.7" + +mimos@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/mimos/-/mimos-3.0.3.tgz#b9109072ad378c2b72f6a0101c43ddfb2b36641f" + dependencies: + hoek "4.x.x" + mime-db "1.x.x" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimatch@0.3, minimatch@0.x: + version "0.3.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^0.2.14, minimatch@~0.2.11, minimatch@~0.2.12: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimatch@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-1.0.0.tgz#e0dd2120b49e1b724ce8d714c520822a9438576d" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimatch@^2.0.1, minimatch@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" + +minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.3.5, mkdirp@0.3.x: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +module-deps@^3.5.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-3.9.1.tgz#ea75caf9199090d25b0d5512b5acacb96e7f87f3" + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + concat-stream "~1.4.5" + defined "^1.0.0" + detective "^4.0.0" + duplexer2 "0.0.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^1.1.13" + resolve "^1.1.3" + stream-combiner2 "~1.0.0" + subarg "^1.0.0" + through2 "^1.0.0" + xtend "^4.0.0" + +module-deps@^4.0.5, module-deps@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb" + dependencies: + JSONStream "^1.0.3" + browser-resolve "^1.7.0" + cached-path-relative "^1.0.0" + concat-stream "~1.5.0" + defined "^1.0.0" + detective "^4.0.0" + duplexer2 "^0.1.2" + inherits "^2.0.1" + parents "^1.0.0" + readable-stream "^2.0.2" + resolve "^1.1.3" + stream-combiner2 "^1.1.1" + subarg "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.0" + +moment-timezone@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.3.1.tgz#3ef47856b02d53b718a10a5ec2023aa299e07bf5" + dependencies: + moment ">= 2.6.0" + +moment@2.x, moment@2.x.x, "moment@>= 2.6.0", moment@^2.10.6, moment@^2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" + +"moment@= 1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-1.7.0.tgz#6f3d73a446c6bd6af1b993801d0b8071efad5e28" + +mongodb-core@2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/mongodb-core/-/mongodb-core-2.1.7.tgz#6a27909b98142ef2508d924c274969008954fa29" + dependencies: + bson "~1.0.4" + require_optional "~1.0.0" + +mongodb@2.2.22: + version "2.2.22" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-2.2.22.tgz#d67c588fc08f922db19754b1d2e03e2d7d1319fb" + dependencies: + es6-promise "3.2.1" + mongodb-core "2.1.7" + readable-stream "2.1.5" + +mongoose@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.8.0.tgz#6941807145b49a6d1a06e35e632e3f11f01bccb0" + dependencies: + async "2.1.4" + bson "~1.0.4" + hooks-fixed "1.2.0" + kareem "1.2.0" + mongodb "2.2.22" + mpath "0.2.1" + mpromise "0.5.5" + mquery "2.2.0" + ms "0.7.2" + muri "1.2.0" + regexp-clone "0.0.1" + sliced "1.0.1" + +moonboots@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/moonboots/-/moonboots-5.0.1.tgz#a87e25c764d545d5318db87647ed1c1d2ad61d72" + dependencies: + async "^1.5.2" + browserify "^13.0.0" + bundle-metadata "^1.0.1" + cssmin "^0.4.3" + module-deps "^4.0.5" + uglify-js "^2.6.2" + +moonboots_hapi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/moonboots_hapi/-/moonboots_hapi-7.0.0.tgz#2f50e9d35bc14941442be05b7ea382ff7e87cf1a" + dependencies: + moonboots "^5.0.0" + +mothership@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/mothership/-/mothership-0.2.0.tgz#93d48a2fbc3e50e2a5fc8ed586f5bc44c65f9a99" + dependencies: + find-parent-dir "~0.3.0" + +mpath@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.2.1.tgz#3a4e829359801de96309c27a6b2e102e89f9e96e" + +mpromise@0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6" + +mquery@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.2.0.tgz#0d3f86ec61520c3c59b39532d9a0f4cce8aa71a6" + dependencies: + bluebird "2.10.2" + debug "2.2.0" + regexp-clone "0.0.1" + sliced "0.0.5" + +ms@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.6.2.tgz#d89c2124c6fdc1353d65a8b77bf1aac4b193708c" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +multiparty@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/multiparty/-/multiparty-2.2.0.tgz#a567c2af000ad22dc8f2a653d91978ae1f5316f4" + dependencies: + readable-stream "~1.1.9" + stream-counter "~0.2.0" + +muri@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/muri/-/muri-1.2.0.tgz#b86383c902920b09ebe62af0e75c94de5f33cd3d" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.3.0, nan@^2.3.3: + version "2.4.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.4.0.tgz#fb3c59d45fe4effe215f0b890f8adf6eb32d2232" + +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +ncp@~0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-0.4.2.tgz#abcc6cbd3ec2ed2a729ff6e7c1fa8f01784a8574" + +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + +negotiator@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.3.0.tgz#706d692efeddf574d57ea9fb1ab89a4fa7ee8f60" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +nested-error-stacks@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz#19f619591519f096769a5ba9a86e6eeec823c3cf" + dependencies: + inherits "~2.0.1" + +nigel@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/nigel/-/nigel-2.0.2.tgz#93a1866fb0c52d87390aa75e2b161f4b5c75e5b1" + dependencies: + hoek "4.x.x" + vise "2.x.x" + +no-arrowception@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/no-arrowception/-/no-arrowception-1.0.0.tgz#5bf3e95eb9c41b57384a805333daa3b734ee327a" + +node-pre-gyp@^0.6.29: + version "0.6.32" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.32.tgz#fc452b376e7319b3d255f5f34853ef6fd8fe1fd5" + dependencies: + mkdirp "~0.5.1" + nopt "~3.0.6" + npmlog "^4.0.1" + rc "~1.1.6" + request "^2.79.0" + rimraf "~2.5.4" + semver "~5.3.0" + tar "~2.2.1" + tar-pack "~3.3.0" + +node-uuid@~1.4.0, node-uuid@~1.4.1: + version "1.4.7" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f" + +nodemon@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.11.0.tgz#226c562bd2a7b13d3d7518b49ad4828a3623d06c" + dependencies: + chokidar "^1.4.3" + debug "^2.2.0" + es6-promise "^3.0.2" + ignore-by-default "^1.0.0" + lodash.defaults "^3.1.2" + minimatch "^3.0.0" + ps-tree "^1.0.1" + touch "1.0.0" + undefsafe "0.0.3" + update-notifier "0.5.0" + +nopt@3.x, nopt@~3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + +nopt@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.1.2.tgz#6cccd977b80132a07731d6e8ce58c2c8303cf9af" + dependencies: + abbrev "1" + +normalize-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" + +npmlog@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.0.1.tgz#d14f503b4cd79710375553004ba96e6662fbc0b8" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.1" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.4.0.tgz#f22956f31ea7151a821e5f2fb32c113cad8b9f69" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@4.1.0, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-inspect@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-0.4.0.tgz#f5157c116c1455b243b06ee97703392c5ad89fec" + +object-keys@^1.0.6: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +on-finished@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.1.0.tgz#0c539f09291e8ffadde0c8a25850fb2cedc7022d" + dependencies: + ee-first "1.0.5" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0, once@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +ono@^2.0.1, ono@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/ono/-/ono-2.2.4.tgz#f6c1d9ea64da07a54863986535da3de67e502696" + +opener@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.0.tgz#d11f86eeeb076883735c9d509f538fe82d10b941" + +optimist@0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.4.tgz#4d6d0bd71ffad0da4ba4f6d876d5eeb04e07480b" + dependencies: + wordwrap "~0.0.2" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optimist@~0.3, optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + +optimist@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.4.0.tgz#cb8ec37f2fe3aa9864cb67a275250e7e19620a25" + dependencies: + wordwrap "~0.0.2" + +optionator@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.5.0.tgz#b75a8995a2d417df25b6e4e3862f50aa88651368" + dependencies: + deep-is "~0.1.2" + fast-levenshtein "~1.0.0" + levn "~0.2.5" + prelude-ls "~1.1.1" + type-check "~0.3.1" + wordwrap "~0.0.2" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +os-browserify@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.1.2.tgz#49ca0293e0b19590a5f5de10c7f265a617d8fe54" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-shim@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.0.3.tgz#cd6ad8ddb290915ad9e22765576025d411f29cb6" + +osenv@^0.1.0: + version "0.1.3" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.3.tgz#83cf05c6d6458fc4d5ac6362ea325d92f2754217" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +package-json@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-1.2.0.tgz#c8ecac094227cdf76a316874ed05e27cc939a0e0" + dependencies: + got "^3.2.0" + registry-url "^3.0.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parent-require@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" + +parents@^1.0.0, parents@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" + dependencies: + path-platform "~0.11.15" + +parents@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parents/-/parents-0.0.2.tgz#67147826e497d40759aaf5ba4c99659b6034d302" + +parse-asn1@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-headers@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" + dependencies: + for-each "^0.3.2" + trim "0.0.1" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.0, parseurl@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" + +patch-text@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/patch-text/-/patch-text-1.0.2.tgz#4bf36e65e51733d6e98f0cf62e09034daa0348ac" + +path-browserify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-platform@~0.11.15: + version "0.11.15" + resolved "https://registry.yarnpkg.com/path-platform/-/path-platform-0.11.15.tgz#e864217f74c36850f0852b78dc7bf7d4a5721bf2" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + +pbkdf2@^3.0.3: + version "3.0.9" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + dependencies: + create-hmac "^1.1.2" + +pez@2.x.x: + version "2.1.4" + resolved "https://registry.yarnpkg.com/pez/-/pez-2.1.4.tgz#73f822fa62d599d65c4606f490d54d345191bc7c" + dependencies: + b64 "3.x.x" + boom "4.x.x" + content "3.x.x" + hoek "4.x.x" + nigel "2.x.x" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pikaday@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.5.1.tgz#0a48549bc1a14ea1d08c44074d761bc2f2bfcfd3" + optionalDependencies: + moment "2.x" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-config@^1.0.1, pkg-config@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + dependencies: + debug-log "^1.0.0" + find-root "^1.0.0" + xtend "^4.0.1" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +pmx@^0.3.20: + version "0.3.31" + resolved "https://registry.yarnpkg.com/pmx/-/pmx-0.3.31.tgz#d8369bf1817d96a2862c3c55ca55597a34d85d4e" + dependencies: + debug "*" + json-stringify-safe "*" + +podium@^1.2.x: + version "1.2.5" + resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" + dependencies: + hoek "4.x.x" + items "2.x.x" + joi "10.x.x" + +pre-commit@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" + dependencies: + cross-spawn "^5.0.1" + spawn-sync "^1.0.15" + which "1.2.x" + +prelude-ls@~1.1.0, prelude-ls@~1.1.1, prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/process/-/process-0.8.0.tgz#7bbaf7187fe6ded3fd5be0cb6103fba9cacb9798" + +process@~0.11.0: + version "0.11.9" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.9.tgz#7bd5ad21aa6253e7da8682264f1e11d11c0318c1" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +promise@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-6.1.0.tgz#2ce729f6b94b45c26891ad0602c5c90e04c6eef6" + dependencies: + asap "~1.0.0" + +promise@~2.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-2.0.0.tgz#46648aa9d605af5d2e70c3024bf59436da02b80e" + dependencies: + is-promise "~1" + +proxy-addr@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.1.1" + +ps-tree@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.3.2, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +punycode@~1.2.3, punycode@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.2.4.tgz#54008ac972aec74175def9cba6df7fa9d3918740" + +q@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.0.1.tgz#11872aeedee89268110b10a718448ffb10112a14" + +qs@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.5.tgz#294b268e4b0d4250f6dde19b3b8b34935dff14ef" + +qs@0.6.6: + version "0.6.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + +qs@2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.4.tgz#2e9fbcd34b540e3421c924ecd01e90aa975319c8" + +qs@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + +qs@^6.1.0, qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + +qs@~1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" + +qs@~2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.5.tgz#1088abaf9dcc0ae5ae45b709e6c6b5888b23923c" + +querystring-es3@~0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +rand-token@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/rand-token/-/rand-token-0.2.1.tgz#dc67c8123306c91227b2dc3f5bea73d301376226" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + +range-parser@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-0.0.4.tgz#c0427ffef51c10acba0782a46c9602e744ff620b" + +range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.2.tgz#c74b3004dea5defd1696171106ac740ec31d62be" + dependencies: + bytes "~0.2.1" + +raw-body@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.2.2.tgz#0c68e1ee28cfed7dba4822234aec6078461cbc1f" + dependencies: + bytes "1" + iconv-lite "0.4.3" + +raw-body@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.3.0.tgz#978230a156a5548f42eef14de22d0f4f610083d1" + dependencies: + bytes "1" + iconv-lite "0.4.4" + +rc@^1.0.1, rc@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~1.0.4" + +read-all-stream@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" + dependencies: + pinkie-promise "^2.0.0" + readable-stream "^2.0.0" + +read-only-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" + dependencies: + readable-stream "^2.0.2" + +readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@~2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" + dependencies: + buffer-shims "^1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@^1.0.33-1, readable-stream@~1.0.17, readable-stream@~1.0.2, readable-stream@~1.0.24, readable-stream@~1.0.26: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +"readable-stream@>=1.1.13-1 <1.2.0-0", readable-stream@^1.0.27-1, readable-stream@^1.1.13, readable-stream@^1.1.13-1, readable-stream@~1.1.11, readable-stream@~1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + +readable-wrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readable-wrap/-/readable-wrap-1.0.0.tgz#3b5a211c631e12303a54991c806c17e7ae206bff" + dependencies: + readable-stream "^1.1.13-1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +reduce-component@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/reduce-component/-/reduce-component-1.0.1.tgz#e0c93542c574521bea13df0f9488ed82ab77c5da" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +regexp-clone@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-0.0.1.tgz#a7c2e09891fdbf38fbb10d376fb73003e68ac589" + +registry-url@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +rename-function-calls@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/rename-function-calls/-/rename-function-calls-0.1.1.tgz#7f83369c007a3007f6abe3033ccf81686a108e01" + dependencies: + detective "~3.1.0" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-1.1.3.tgz#3d4114218877537494f97f77f9785fab810fa4ac" + dependencies: + is-finite "^1.0.0" + +replace-requires@~1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/replace-requires/-/replace-requires-1.0.3.tgz#73e85df05bab562fe84df45d97d78c0fa13a7041" + dependencies: + detective "~4.1.0" + has-require "~1.2.1" + patch-text "~1.0.2" + xtend "~4.0.0" + +request@2.11.4: + version "2.11.4" + resolved "https://registry.yarnpkg.com/request/-/request-2.11.4.tgz#6347d7d44e52dc588108cc1ce5cee975fc8926de" + dependencies: + form-data "~0.0.3" + mime "~1.2.7" + +request@^2.55.0, request@^2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + +request@~2.44.0: + version "2.44.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.44.0.tgz#78d62454d68853cadfb07ad31f58b9ec98072ea8" + dependencies: + bl "~0.9.0" + caseless "~0.6.0" + forever-agent "~0.5.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + qs "~1.2.0" + tunnel-agent "~0.4.0" + optionalDependencies: + aws-sign2 "~0.5.0" + form-data "~0.1.0" + hawk "1.1.1" + http-signature "~0.10.0" + oauth-sign "~0.4.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + +request@~2.46.0: + version "2.46.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.46.0.tgz#359195d52eaf720bc69742579d04ad6d265a8274" + dependencies: + aws-sign2 "~0.5.0" + bl "~0.9.0" + caseless "~0.6.0" + forever-agent "~0.5.0" + form-data "~0.1.0" + hawk "1.1.1" + http-signature "~0.10.0" + json-stringify-safe "~5.0.0" + mime-types "~1.0.1" + node-uuid "~1.4.0" + oauth-sign "~0.4.0" + qs "~1.2.0" + stringstream "~0.0.4" + tough-cookie ">=0.12.0" + tunnel-agent "~0.4.0" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +require_optional@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/require_optional/-/require_optional-1.0.0.tgz#52a86137a849728eb60a55533617f8f914f59abf" + dependencies: + resolve-from "^2.0.0" + semver "^5.1.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve@0.7.x, resolve@~0.7.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.7.4.tgz#395a9ef9e873fbfe12bd14408bd91bb936003d69" + +resolve@1.1.7, resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@~0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4" + +resolve@~0.6.1: + version "0.6.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +rfile@~1.0, rfile@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rfile/-/rfile-1.0.0.tgz#59708cf90ca1e74c54c3cfc5c36fdb9810435261" + dependencies: + callsite "~1.0.0" + resolve "~0.3.0" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.2, rimraf@^2.2.8, rimraf@~2.5.1, rimraf@~2.5.4: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + dependencies: + glob "^7.0.5" + +rimraf@~2.2.0, rimraf@~2.2.2: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + dependencies: + glob "^6.0.1" + +ripemd160@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" + +ruglify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ruglify/-/ruglify-1.0.0.tgz#dc8930e2a9544a274301cc9972574c0d0986b675" + dependencies: + rfile "~1.0" + uglify-js "~2.2" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +run-parallel@^1.1.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +safe-json-stringify@~1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz#3cb6717660a086d07cb5bd9b7a6875bcf67bd05e" + +sax@0.5.x: + version "0.5.8" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" + +sax@>=0.6.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + +seedrandom@2.4.x: + version "2.4.2" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.2.tgz#18d78c41287d13aff8eadb29e235938b248aa9ff" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver@^5.0.3, semver@^5.1.0, semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/send/-/send-0.1.4.tgz#be70d8d1be01de61821af13780b50345a4f71abd" + dependencies: + debug "*" + fresh "0.2.0" + mime "~1.2.9" + range-parser "0.0.4" + +send@0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.14.1.tgz#a954984325392f51532a7760760e459598c89f7a" + dependencies: + debug "~2.2.0" + depd "~1.1.0" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.7.0" + fresh "0.3.0" + http-errors "~1.5.0" + mime "1.3.4" + ms "0.7.1" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.0" + +sequence@2.x: + version "2.2.1" + resolved "https://registry.yarnpkg.com/sequence/-/sequence-2.2.1.tgz#7f5617895d44351c0a047e764467690490a16b03" + +serve-static@~1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.11.1.tgz#d6cce7693505f733c759de57befc1af76c0f0805" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.14.1" + +set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setprototypeof@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" + +sha.js@^2.3.6, sha.js@~2.4.4: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +sha1sum@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/sha1sum/-/sha1sum-0.0.1.tgz#c882e2fc597d001f7789b87bbc074b10e66a9c15" + +shallow-copy@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + +shasum@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/shasum/-/shasum-1.0.2.tgz#e7012310d8f417f4deb5712150e5678b87ae565f" + dependencies: + json-stable-stringify "~0.0.0" + sha.js "~2.4.4" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.4.1.tgz#ae18442b536a08c720239b079d2f228acbedee40" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shell-quote@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-0.0.1.tgz#1a41196f3c0333c482323593d6886ecf153dd986" + +shelljs@^0.7.5: + version "0.7.6" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shot@3.x.x: + version "3.4.0" + resolved "https://registry.yarnpkg.com/shot/-/shot-3.4.0.tgz#e7125ee72575ae5218349e933636808d790d4b92" + dependencies: + hoek "4.x.x" + joi "10.x.x" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sliced@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-0.0.5.tgz#5edc044ca4eb6f7816d50ba2fc63e25d8fe4707f" + +sliced@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41" + +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +slug@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/slug/-/slug-0.9.1.tgz#af08f608a7c11516b61778aa800dce84c518cfda" + dependencies: + unicode ">= 0.3.1" + +snazzy@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/snazzy/-/snazzy-6.0.0.tgz#6a17d4798cbbc8bc6e113153694907a8bac9494d" + dependencies: + chalk "^1.1.0" + inherits "^2.0.1" + minimist "^1.1.1" + readable-stream "^2.0.6" + standard "*" + standard-json "^1.0.0" + text-table "^0.2.0" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.2, socket.io-client@^1.3.5, socket.io-client@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.2.tgz#39fdb0c3dd450e321b7e40cfd83612ec533dd644" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.2" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.2.tgz#83bbbdf2e79263b378900da403e7843e05dc3b71" + dependencies: + debug "2.3.3" + engine.io "1.8.2" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.2" + socket.io-parser "2.3.1" + +source-map-cjs@~0.1.31: + version "0.1.32" + resolved "https://registry.yarnpkg.com/source-map-cjs/-/source-map-cjs-0.1.32.tgz#b113f00065b484f4d3a1123ef084046a56228ce7" + +source-map-support@0.4.x: + version "0.4.11" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" + dependencies: + source-map "^0.5.3" + +source-map@0.1.34: + version "0.1.34" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.34.tgz#a7cfe89aec7b1682c3b198d0acfb47d7d090566b" + dependencies: + amdefine ">=0.0.4" + +source-map@0.1.x, source-map@~0.1.30, source-map@~0.1.31, source-map@~0.1.33, source-map@~0.1.40, source-map@~0.1.7: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@0.4.x, source-map@^0.4.4, source-map@~0.4.0, source-map@~0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.3.0.tgz#8586fb9a5a005e5b501e21cd18b6f21b457ad1f9" + dependencies: + amdefine ">=0.0.4" + +spawn-sync@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476" + dependencies: + concat-stream "^1.4.7" + os-shim "^0.1.2" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-mapper@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/stack-mapper/-/stack-mapper-0.2.2.tgz#789029054937b7d47c1b5b67612cbb1e7cfe7071" + dependencies: + array-map "0.0.0" + foreach-shim "~0.1.1" + isarray "0.0.1" + source-map-cjs "~0.1.31" + +stacktrace-js@defunctzombie/stacktrace.js#07e7b95: + version "0.6.0" + resolved "https://codeload.github.com/defunctzombie/stacktrace.js/tar.gz/07e7b95" + +standard-engine@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-5.2.0.tgz#400660ae5acce8afd4db60ff2214a9190ad790a3" + dependencies: + deglob "^2.0.0" + find-root "^1.0.0" + get-stdin "^5.0.1" + home-or-tmp "^2.0.0" + minimist "^1.1.0" + pkg-config "^1.0.1" + +standard-json@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/standard-json/-/standard-json-1.0.1.tgz#75dd5952c59bb6cb358b136af0633ae3d7f35b6b" + dependencies: + concat-stream "^1.5.0" + +standard@*, standard@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/standard/-/standard-8.6.0.tgz#635132be7bfb567c2921005f30f9e350e4752aad" + dependencies: + eslint "~3.10.2" + eslint-config-standard "6.2.1" + eslint-config-standard-jsx "3.2.0" + eslint-plugin-promise "~3.4.0" + eslint-plugin-react "~6.7.1" + eslint-plugin-standard "~2.0.1" + standard-engine "~5.2.0" + +starttls@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/starttls/-/starttls-0.2.1.tgz#b98d3e5e778d46f199c843a64f889f0347c6d19a" + +statehood@5.x.x: + version "5.0.1" + resolved "https://registry.yarnpkg.com/statehood/-/statehood-5.0.1.tgz#fc13c97b37751c18e70513d2b97e896ac8b73005" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + iron "4.x.x" + items "2.x.x" + joi "10.x.x" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stream-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-1.0.0.tgz#bf9b4abfb42b274d751479e44e0ff2656b6f1193" + dependencies: + inherits "~2.0.1" + readable-stream "^1.0.27-1" + +stream-browserify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner2@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" + dependencies: + duplexer2 "~0.1.0" + readable-stream "^2.0.2" + +stream-combiner2@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.0.2.tgz#ba72a6b50cbfabfa950fc8bc87604bd01eb60671" + dependencies: + duplexer2 "~0.0.2" + through2 "~0.5.1" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-counter@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de" + dependencies: + readable-stream "~1.1.8" + +stream-http@^2.0.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.3.tgz#4c3ddbf9635968ea2cfd4e48d43de5def2625ac3" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.1.0" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +stream-splicer@^1.1.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-1.3.2.tgz#3c0441be15b9bf4e226275e6dc83964745546661" + dependencies: + indexof "0.0.1" + inherits "^2.0.1" + isarray "~0.0.1" + readable-stream "^1.1.13-1" + readable-wrap "^1.0.0" + through2 "^1.0.0" + +stream-splicer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.2" + +string-length@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" + dependencies: + strip-ansi "^3.0.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~0.10.0, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +stylizer@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/stylizer/-/stylizer-2.2.0.tgz#f0dd21a468bbb3fccc3aabc6d5945b57568f2ba6" + dependencies: + cssesc "~0.1.0" + gaze "~1.1.1" + minimist "^1.1.0" + parent-require "~1.0.0" + request "~2.44.0" + stylus "^0.54.5" + tiny-lr "0.1.4" + +stylus@^0.54.5: + version "0.54.5" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" + dependencies: + css-parse "1.7.x" + debug "*" + glob "7.0.x" + mkdirp "0.5.x" + sax "0.5.x" + source-map "0.1.x" + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + +subtext@^4.3.x: + version "4.3.0" + resolved "https://registry.yarnpkg.com/subtext/-/subtext-4.3.0.tgz#dfac90492ec35669fd6e00c6e5d938b06d7ccfbb" + dependencies: + boom "4.x.x" + content "3.x.x" + hoek "4.x.x" + pez "2.x.x" + wreck "10.x.x" + +superagent@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-0.15.7.tgz#095c70b8afffbc072f1458f39684d4854d6333a3" + dependencies: + cookiejar "1.3.0" + debug "~0.7.2" + emitter-component "1.0.0" + formidable "1.0.14" + methods "0.0.1" + mime "1.2.5" + qs "0.6.5" + reduce-component "1.0.1" + +superstack@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/superstack/-/superstack-0.0.4.tgz#6fe87b7913e0fd748ab33e333b5ae87eb020935c" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +swagger-methods@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-1.0.0.tgz#b39c77957d305a6535c0a1e015081185b99d61fc" + +swagger-parser@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-3.4.1.tgz#0290529dbae254d178b442a95df60d23d142301d" + dependencies: + call-me-maybe "^1.0.1" + debug "^2.2.0" + es6-promise "^3.0.2" + json-schema-ref-parser "^1.4.1" + ono "^2.0.1" + swagger-methods "^1.0.0" + swagger-schema-official "2.0.0-bab6bed" + z-schema "^3.16.1" + +swagger-schema-official@2.0.0-bab6bed: + version "2.0.0-bab6bed" + resolved "https://registry.yarnpkg.com/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz#70070468d6d2977ca5237b2e519ca7d06a2ea3fd" + +syntax-error@^1.1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/syntax-error/-/syntax-error-1.1.6.tgz#b4549706d386cc1c1dc7c2423f18579b6cade710" + dependencies: + acorn "^2.7.0" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +tap-parser@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-0.7.0.tgz#728a61d64680a5b48d5dbd9dbd0a4d48f5c35bcb" + dependencies: + inherits "~2.0.1" + minimist "^0.2.0" + readable-stream "~1.1.11" + +tape@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-3.5.0.tgz#aebb061388104ad0cb407be842782049d64624f8" + dependencies: + deep-equal "~0.2.0" + defined "~0.0.0" + glob "~3.2.9" + inherits "~2.0.1" + object-inspect "~0.4.0" + resumer "~0.0.0" + through "~2.3.4" + +tar-pack@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.3.0.tgz#30931816418f55afc4d21775afdd6720cee45dae" + dependencies: + debug "~2.2.0" + fstream "~1.0.10" + fstream-ignore "~1.0.5" + once "~1.3.3" + readable-stream "~2.1.4" + rimraf "~2.5.1" + tar "~2.2.1" + uid-number "~0.0.6" + +tar-stream@~0.4.0: + version "0.4.7" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-0.4.7.tgz#1f1d2ce9ebc7b42765243ca0e8f1b7bfda0aadcd" + dependencies: + bl "^0.9.0" + end-of-stream "^1.0.0" + readable-stream "^1.0.27-1" + xtend "^4.0.0" + +tar-stream@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.0.2.tgz#fd19b4a17900fa704f6a133e3045aead0562ab95" + dependencies: + bl "^0.9.0" + end-of-stream "^1.0.0" + readable-stream "^1.0.27-1" + xtend "^4.0.0" + +tar@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +templatizer@^1.5.2: + version "1.5.4" + resolved "https://registry.yarnpkg.com/templatizer/-/templatizer-1.5.4.tgz#3b8d2f8406cdd57fbf1639cd238f17e976b159cc" + dependencies: + escodegen "1.6.1" + esprima "^2.5.0" + falafel "^1.2.0" + glob "^5.0.14" + jade "^1.11.0" + lodash "^3.10.1" + minimatch "^2.0.10" + minimist "^1.1.3" + uglify-js "^2.4.24" + walkdir "0.0.10" + +ternary@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ternary/-/ternary-1.0.0.tgz#45702725608c9499d46a9610e9b0e49ff26f789e" + +text-table@^0.2.0, text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@^0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-1.1.1.tgz#0847cbc4449f3405574dbdccd9bb841b83ac3545" + dependencies: + readable-stream ">=1.1.13-1 <1.2.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through2@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through2@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7" + dependencies: + readable-stream "~1.0.17" + xtend "~3.0.0" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@~2.3, through@~2.3.1, through@~2.3.3, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +through@2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.4.tgz#495e40e8d8a8eaebc7c275ea88c2b8fc14c56455" + +through@~2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/through/-/through-2.2.7.tgz#6e8e21200191d4eb6a99f6f010df46aa1c6eb2bd" + +timed-out@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-2.0.0.tgz#f38b0ae81d3747d628001f41dafc652ace671c0a" + +timers-browserify@^1.0.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-1.4.2.tgz#c9c58b575be8407375cb5e2462dacee74359f41d" + dependencies: + process "~0.11.0" + +tiny-lr@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/tiny-lr/-/tiny-lr-0.1.4.tgz#6e41d7e67dfd0878e5e0b37e37a06d67e309ff4d" + dependencies: + body-parser "~1.8.0" + debug "~0.8.1" + faye-websocket "~0.7.2" + parseurl "~1.3.0" + qs "~2.2.3" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +topo@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" + dependencies: + hoek "4.x.x" + +touch@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" + dependencies: + nopt "~1.0.10" + +tough-cookie@>=0.12.0, tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +transformers@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/transformers/-/transformers-2.1.0.tgz#5d23cb35561dd85dc67fb8482309b47d53cce9a7" + dependencies: + css "~1.0.8" + promise "~2.0" + uglify-js "~2.2.5" + +transformify@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/transformify/-/transformify-0.1.2.tgz#9a4f42a154433dd727b80575428a3c9e5489ebf1" + dependencies: + readable-stream "~1.1.9" + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +tty-browserify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@~0.4.0, tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.4" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.4.tgz#8c9dbfb52795686f166cd2023794bcf103d13c2b" + +type-check@~0.3.1, type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-is@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.3.1.tgz#a6789b5a52138289ade1ef8f6d9f2874ffd70b6b" + dependencies: + media-typer "0.2.0" + mime-types "1.0.0" + +type-is@~1.5.1: + version "1.5.7" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.5.7.tgz#b9368a593cc6ef7d0645e78b2f4c64cbecd05e90" + dependencies: + media-typer "0.3.0" + mime-types "~2.0.9" + +type-is@~1.6.13: + version "1.6.14" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.13" + +typedarray@~0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@^2.4.24, uglify-js@^2.6, uglify-js@^2.6.2: + version "2.7.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" + dependencies: + async "~0.2.6" + source-map "~0.5.1" + uglify-to-browserify "~1.0.0" + yargs "~3.10.0" + +uglify-js@~2.2, uglify-js@~2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.2.5.tgz#a6e02a70d839792b9780488b7b8b184c095c99c7" + dependencies: + optimist "~0.3.5" + source-map "~0.1.7" + +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" + +uglify-js@~2.4.0: + version "2.4.24" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.4.24.tgz#fad5755c1e1577658bb06ff9ab6e548c95bebd6e" + dependencies: + async "~0.2.6" + source-map "0.1.34" + uglify-to-browserify "~1.0.0" + yargs "~3.5.4" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@~0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uid2@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.3.tgz#483126e11774df2f71b8b639dcd799c376162b82" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +umd@^2.1.0, umd@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/umd/-/umd-2.1.0.tgz#4a6307b762f17f02d201b5fa154e673396c263cf" + dependencies: + rfile "~1.0.0" + ruglify "~1.0.0" + through "~2.3.4" + uglify-js "~2.4.0" + +umd@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" + +undefsafe@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" + +underscore.string@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.3.3.tgz#71c08bf6b428b1133f37e78fa3a21c82f7329b0d" + +underscore.string@~2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b" + +underscore@, underscore@^1.6.0, underscore@^1.7.0, underscore@^1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + +underscore@~1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" + +"unicode@>= 0.3.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/unicode/-/unicode-0.6.1.tgz#ec69e3c4537e2b9650b826133bcb068f0445d0bc" + dependencies: + bufferstream ">= 0.6.2" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +update-notifier@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.5.0.tgz#07b5dc2066b3627ab3b4f530130f7eddda07a4cc" + dependencies: + chalk "^1.0.0" + configstore "^1.0.0" + is-npm "^1.0.0" + latest-version "^1.0.0" + repeating "^1.1.2" + semver-diff "^2.0.0" + string-length "^1.0.0" + +url@~0.10.1: + version "0.10.3" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +url@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@~0.10.1: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +validator@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/validator/-/validator-6.2.1.tgz#bc575b78d15beb2e338a665ba9530c7f409ef667" + +vargs@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/vargs/-/vargs-0.1.0.tgz#6b6184da6520cc3204ce1b407cac26d92609ebff" + +vary@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vise@2.x.x: + version "2.0.2" + resolved "https://registry.yarnpkg.com/vise/-/vise-2.0.2.tgz#6b08e8fb4cb76e3a50cd6dd0ec37338e811a0d39" + dependencies: + hoek "4.x.x" + +vision@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/vision/-/vision-4.1.1.tgz#e1b612b2d2e2f20310a039290fd49d51248f82da" + dependencies: + boom "4.x.x" + hoek "4.x.x" + items "2.x.x" + joi "10.x.x" + +vm-browserify@~0.0.1: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +void-elements@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +walk@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/walk/-/walk-2.2.1.tgz#5ada1f8e49e47d4b7445d8be7a2e1e631ab43016" + dependencies: + forEachAsync "~2.2" + +walkdir@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.10.tgz#36037cab663b5e1c0166007b5f7b918b3279a54f" + +wd@0.3.11: + version "0.3.11" + resolved "https://registry.yarnpkg.com/wd/-/wd-0.3.11.tgz#522716c79a7a10e781acbb2c6cafe588f701fcc0" + dependencies: + archiver "~0.12.0" + async "~0.9.0" + lodash "~2.4.1" + q "~1.0.1" + request "~2.46.0" + underscore.string "~2.3.3" + vargs "~0.1.0" + +websocket-driver@>=0.3.6: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + dependencies: + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.1.tgz#76899499c184b6ef754377c2dbb0cd6cb55d29e7" + +which@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/which/-/which-1.0.9.tgz#460c1da0f810103d0321a9b633af9e575e64486f" + +which@1.2.x, which@^1.2.9: + version "1.2.12" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" + dependencies: + isexe "^1.1.1" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +with@~4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/with/-/with-4.0.3.tgz#eefd154e9e79d2c8d3417b647a8f14d9fecce14e" + dependencies: + acorn "^1.0.1" + acorn-globals "^1.0.3" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@0.0.x, wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +wreck@10.x.x: + version "10.0.0" + resolved "https://registry.yarnpkg.com/wreck/-/wreck-10.0.0.tgz#98ab882f85e16a526332507f101f5a7841162278" + dependencies: + boom "4.x.x" + hoek "4.x.x" + +wrench@~1.5.1: + version "1.5.9" + resolved "https://registry.yarnpkg.com/wrench/-/wrench-1.5.9.tgz#411691c63a9b2531b1700267279bdeca23b2142a" + +write-file-atomic@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.2.0.tgz#14c66d4e4cb3ca0565c28cf3b7a6f3e4d5938fab" + dependencies: + graceful-fs "^4.1.2" + imurmurhash "^0.1.4" + slide "^1.1.5" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +ws@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.1.tgz#082ddb6c641e85d4bb451f03d52f06eabdb1f018" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xdg-basedir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" + dependencies: + os-homedir "^1.0.0" + +xhr@^2.0.5: + version "2.3.3" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.3.3.tgz#ad6b810e0917ce72b5ec704f5d41f1503b8e7524" + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xml2js@~0.4.0: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + +xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + dependencies: + lodash "^4.0.0" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +xtend@2.1.2, xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@^3.0.0, xtend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" + +yallist@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.0.0.tgz#306c543835f09ee1a4cb23b7bce9ab341c91cdd4" + +yamljs@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/yamljs/-/yamljs-0.1.4.tgz#665789afc2ad4b902bf403f00e85b6434e0f3300" + dependencies: + argparse "~0.1.4" + glob "~3.1.11" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yargs@~3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.5.4.tgz#d8aff8f665e94c34bd259bdebd1bfaf0ddd35361" + dependencies: + camelcase "^1.0.2" + decamelize "^1.0.0" + window-size "0.1.0" + wordwrap "0.0.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +z-schema@^3.16.1, z-schema@^3.17.0: + version "3.18.2" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.18.2.tgz#e422196b5efe60b46adef3c3f2aef2deaa911161" + dependencies: + lodash.get "^4.1.2" + lodash.isequal "^4.4.0" + validator "^6.0.0" + optionalDependencies: + commander "^2.7.1" + +zip-stream@~0.2.0: + version "0.2.3" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.2.3.tgz#aef095376cfe138959a81341981d26338b46d8d3" + dependencies: + debug "~0.7.4" + lodash.defaults "~2.4.1" + readable-stream "~1.0.24" + +zip-stream@~0.3.0: + version "0.3.7" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.3.7.tgz#c84d057eb0bcc0139747bd3c6c97280bcf5f2bb2" + dependencies: + buffer-crc32 "~0.2.1" + crc32-stream "~0.2.0" + debug "~1.0.2" + deflate-crc32-stream "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" + +zip-stream@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-0.4.1.tgz#4ea795a8ce19e9fab49a31d1d0877214159f03a3" + dependencies: + compress-commons "~0.1.0" + lodash "~2.4.1" + readable-stream "~1.0.26" + +zuul-localtunnel@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/zuul-localtunnel/-/zuul-localtunnel-1.0.1.tgz#1a9823d84616a3cae707dd592412c4dfbf7f8669" + dependencies: + localtunnel "1.5.0" + +zuul@^1.16.4: + version "1.19.0" + resolved "https://registry.yarnpkg.com/zuul/-/zuul-1.19.0.tgz#2a88c0bde71a10a5d29dc006c24072e44b845e4a" + dependencies: + JSON2 "0.1.0" + batch "0.5.0" + bouncy "3.2.2" + browserify "6.3.3" + browserify-istanbul "0.1.3" + char-split "0.2.0" + colors "0.6.2" + commander "2.1.0" + convert-source-map "0.4.1" + debug "2.1.0" + express "3.4.8" + express-state "1.0.3" + find-nearest-file "1.0.0" + firefox-profile "0.2.7" + hbs "2.4.0" + highlight.js "7.5.0" + istanbul-middleware "0.2.0" + load-script "0.0.5" + lodash "2.4.1" + opener "1.4.0" + osenv "0.0.3" + shallow-copy "0.0.1" + shell-quote "1.4.1" + stack-mapper "0.2.2" + stacktrace-js defunctzombie/stacktrace.js#07e7b95 + superagent "0.15.7" + superstack "0.0.4" + tap-parser "0.7.0" + tape "3.5.0" + wd "0.3.11" + xtend "2.1.2" + yamljs "0.1.4" + zuul-localtunnel "1.0.1" From 3162f961f8532a1e7c526ded9fefd596f86ceb42 Mon Sep 17 00:00:00 2001 From: CarlosFaria94 Date: Sat, 4 Feb 2017 21:31:17 +0000 Subject: [PATCH 2/8] Initial refactoring to ES2015 and support to Node 6 --- .travis.yml | 1 + Dockerfile | 2 +- config.js | 10 +- package.json | 37 +- server/db/access.js | 4 +- server/db/comment.js | 4 +- server/db/member.js | 4 +- server/helpers/dupKeyParser.js | 4 +- server/index.js | 42 +- server/resources/access.js | 30 +- server/resources/comment.js | 62 ++- server/resources/communication.js | 2 +- server/resources/company.js | 2 +- server/resources/event.js | 2 +- server/resources/item.js | 2 +- server/resources/member.js | 53 +- server/resources/session.js | 2 +- server/resources/speaker.js | 2 +- server/resources/tag.js | 4 +- server/resources/topic.js | 65 ++- server/test/access.js | 26 +- server/test/comment.js | 60 +-- server/test/member.js | 94 ++-- server/test/topic.js | 36 +- yarn.lock | 775 +++++++++++++----------------- 25 files changed, 606 insertions(+), 719 deletions(-) diff --git a/.travis.yml b/.travis.yml index c09642ca..6f88d874 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js node_js: - "0.10" + - "6" services: - mongodb before_script: diff --git a/Dockerfile b/Dockerfile index 0c543094..aa814538 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM mhart/alpine-node:0.10.48 +FROM mhart/alpine-node:6.9.5 LABEL Description="The awesome web app that supports awesome events" Vendor="SINFO" Version="0.0" diff --git a/config.js b/config.js index bfa984fa..c2f4e7d2 100644 --- a/config.js +++ b/config.js @@ -1,8 +1,8 @@ -var pack = require('./package') -var path = require('path') -var bunyanLogentries = require('bunyan-logentries') +const pack = require('./package') +const path = require('path') +const bunyanLogentries = require('bunyan-logentries') -var config = { +const config = { url: process.env.EVENTDECK_URL || 'http://localhost:8080', host: process.env.EVENTDECK_HOST || 'localhost', port: process.env.EVENTDECK_PORT || 8080, @@ -57,7 +57,7 @@ config.bunyan = { config.swagger = { pathPrefixSize: 2, - apiVersion: pack.version, + version: pack.version, basePath: config.url } diff --git a/package.json b/package.json index f3c95bfc..2efb2932 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eventdeck", - "version": "1.0.0", + "version": "0.0.0", "description": "eventdeck", "main": "server/index.js", "engines": { @@ -22,8 +22,8 @@ ] }, "pre-commit": [ - "lint" - // TODO: "test" + "lint", + "test" ], "repository": { "type": "git", @@ -43,30 +43,30 @@ "homepage": "https://github.com/sinfo/eventdeck", "dependencies": { "ampersand-array-checkbox-view": "0.0.4", - "ampersand-array-input-view": "^6.1.0", + "ampersand-array-input-view": "^3.0.3", "ampersand-checkbox-view": "^2.0.2", "ampersand-chosen-view": "https://github.com/sinfo/ampersand-chosen-view/tarball/master", - "ampersand-collection": "^2.0.0", + "ampersand-collection": "^1.3.17", "ampersand-collection-single-request-mixin": "https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master", "ampersand-date-view": "https://github.com/sinfo/ampersand-date-view/tarball/master", - "ampersand-dom": "^1.5.0", - "ampersand-form-view": "^7.0.0", + "ampersand-dom": "^1.2.1", + "ampersand-form-view": "^2.4.0", "ampersand-fullcalendar-view": "0.0.2", "ampersand-infinite-scroll": "^0.1.0", "ampersand-input-view": "^4.0.5", "ampersand-io": "^0.4.2", "ampersand-io-collection": "^0.1.6", "ampersand-io-model": "^0.3.1", - "ampersand-model": "^8.0.0", + "ampersand-model": "^4.1.0", "ampersand-pagination-mixin": "^0.1.0", "ampersand-pikaday-view": "0.0.1", - "ampersand-rest-collection": "^6.0.0", - "ampersand-router": "^4.0.0", + "ampersand-rest-collection": "^2.0.4", + "ampersand-router": "^1.0.7", "ampersand-select-view": "https://github.com/sinfo/ampersand-select-view/tarball/master", - "ampersand-state": "^5.0.2", - "ampersand-subcollection": "^2.0.3", - "ampersand-view": "^10.0.1", - "ampersand-view-switcher": "^2.1.0", + "ampersand-state": "^4.3.15", + "ampersand-subcollection": "^2.0.1", + "ampersand-view": "^7.4.2", + "ampersand-view-switcher": "^1.1.2", "andlog": "^1.0.0", "async": "^0.2.10", "boom": "^4.2.0", @@ -94,12 +94,11 @@ "markdown": "~0.5.0", "marked": "^0.3.6", "moment": "^2.17.1", - "mongoose": "^4.8.0", - "moonboots_hapi": "^7.0.0", - "pmx": "^0.3.20", + "mongoose": "^4.8.1", + "moonboots_hapi": "^4.0.0", "rand-token": "~0.2.1", "request": "^2.79.0", - "slug": "^0.9.1", + "slug": "^0.7.1", "socket.io": "^1.7.2", "socket.io-client": "^1.7.2", "stylizer": "^2.1.0", @@ -109,8 +108,8 @@ }, "devDependencies": { "code": "~4.0.0", - "nodemon": "^1.11.0", "lab": "^12.1.0", + "nodemon": "^1.11.0", "pre-commit": "^1.2.2", "snazzy": "^6.0.0", "standard": "^8.6.0" diff --git a/server/db/access.js b/server/db/access.js index a7a851c5..62f7edd6 100644 --- a/server/db/access.js +++ b/server/db/access.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +let schema = new mongoose.Schema({ member: String, thread: String, last: Date diff --git a/server/db/comment.js b/server/db/comment.js index 5bf27297..5781ba74 100644 --- a/server/db/comment.js +++ b/server/db/comment.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +let schema = new mongoose.Schema({ thread: String, subthread: String, member: String, diff --git a/server/db/member.js b/server/db/member.js index 126c6bbe..60e1815e 100644 --- a/server/db/member.js +++ b/server/db/member.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +const schema = new mongoose.Schema({ id: {type: String, unique: true}, name: String, img: String, diff --git a/server/helpers/dupKeyParser.js b/server/helpers/dupKeyParser.js index c440519e..95ff22aa 100644 --- a/server/helpers/dupKeyParser.js +++ b/server/helpers/dupKeyParser.js @@ -1,6 +1,6 @@ -module.exports = function (err) { +module.exports = (err) => { // this example is showing how to get the field `email` out of the err message - var field = err.split('index: deck.')[1].split('.$')[1] + let field = err.split('index: deck.')[1].split('.$')[1] // now we have `email_1 dup key` field = field.split(' dup key')[0] field = field.substring(0, field.lastIndexOf('_')) // returns email diff --git a/server/index.js b/server/index.js index 08ae316e..145e1ac2 100644 --- a/server/index.js +++ b/server/index.js @@ -1,8 +1,9 @@ -// init http monitoring -require('pmx').init() - const Hapi = require('hapi') +const Inert = require('inert') const Vision = require('vision') +const HapiSwagger = require('hapi-swagger') +const Moonboots = require('moonboots_hapi') +const HapiAuthCookie = require('hapi-auth-cookie') const IO = {server: require('socket.io'), client: require('socket.io-client')} const log = require('./helpers/logger') const config = require('../config') @@ -18,10 +19,11 @@ const server = module.exports.hapi = new Hapi.Server() server.connection({ host: config.host, port: config.port - // TODO: CORS in new Hapi version is disabled - it's needed ? - // { cors: config.cors } }) +// TODO: CORS in new Hapi version is disabled - it's needed ? +// { cors: config.cors } + require('./db') let internals = {} @@ -43,28 +45,24 @@ server.ext('onPreResponse', function (request, reply) { return reply() }) -// Set view template engine -server.register(Vision, (err) => { - if (err) throw err - - server.views({ - engines: { - hbs: require('handlebars') - }, - path: path.join(__dirname, 'templates') - }) -}) - server.register([ - {register: require('hapi-swagger'), options: config.swagger}, - {register: require('moonboots_hapi'), options: moonbootsConfig}, - {register: require('hapi-auth-cookie')}, + Inert, + Vision, + {register: HapiSwagger, options: config.swagger}, + {register: Moonboots, options: moonbootsConfig}, + {register: HapiAuthCookie}, {register: require('./plugins/images'), options: config.images}, - {register: require('./plugins/templates'), options: config.templates}, - {register: require('inert')} ], + {register: require('./plugins/templates'), options: config.templates}], (err) => { if (err) throw err + server.views({ + engines: { + hbs: require('handlebars') + }, + path: path.join(__dirname, 'templates') + }) + server.auth.strategy('session', 'cookie', { cookie: cookieConfig.name, password: cookieConfig.password, diff --git a/server/resources/access.js b/server/resources/access.js index 04725b38..c5384216 100644 --- a/server/resources/access.js +++ b/server/resources/access.js @@ -1,14 +1,14 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var Access = require('../db/access') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const Access = require('../db/access') server.method('access.save', save, {}) server.method('access.get', get, {}) function save (memberId, path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -16,16 +16,16 @@ function save (memberId, path, id, cb) { thread = threadFromPath(path, id) } - var filter = { member: memberId, thread: thread } - var access = { + const filter = { member: memberId, thread } + const access = { member: memberId, - thread: thread, + thread, last: Date.now() } - Access.findOneAndUpdate(filter, access, {upsert: true}, function (err, savedAccess) { + Access.findOneAndUpdate(filter, access, {upsert: true}, (err, savedAccess) => { if (err) { - log.error({err: err, access: access}) + log.error({err, access}) return cb(Boom.internal()) } @@ -34,7 +34,7 @@ function save (memberId, path, id, cb) { } function get (memberId, path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -42,11 +42,11 @@ function get (memberId, path, id, cb) { thread = threadFromPath(path, id) } - var filter = { member: memberId, thread: thread } + const filter = { member: memberId, thread } - Access.findOne(filter, function (err, savedAccess) { + Access.findOne(filter, (err, savedAccess) => { if (err) { - log.error({err: err, access: filter}) + log.error({err, access: filter}) return cb(Boom.internal()) } diff --git a/server/resources/comment.js b/server/resources/comment.js index faf80478..69008e63 100644 --- a/server/resources/comment.js +++ b/server/resources/comment.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var threadFromPath = require('../helpers/threadFromPath') -var Comment = require('../db/comment') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const threadFromPath = require('../helpers/threadFromPath') +const Comment = require('../db/comment') server.method('comment.create', create, {}) server.method('comment.update', update, {}) @@ -20,7 +20,7 @@ function create (comment, memberId, cb) { comment.posted = Date.now() comment.updated = Date.now() - Comment.create(comment, function (err, _comment) { + Comment.create(comment, (err, _comment) => { if (err) { log.error({err: err, comment: comment}, 'error creating comment') return cb(Boom.internal()) @@ -32,9 +32,8 @@ function create (comment, memberId, cb) { function update (id, comment, cb) { comment.updated = Date.now() - var filter = {_id: id} - Comment.findOneAndUpdate(filter, comment, function (err, _comment) { + Comment.findByIdAndUpdate(id, comment, {new: true}, (err, _comment) => { if (err) { log.error({err: err, comment: id}, 'error updating comment') return cb(Boom.internal()) @@ -50,10 +49,9 @@ function update (id, comment, cb) { function get (id, query, cb) { cb = cb || query - var filter = {_id: id} - var fields = parser(query.fields) + const fields = parser(query.fields) - Comment.findOne(filter, fields, function (err, comment) { + Comment.findById(id, fields, (err, comment) => { if (err) { log.error({err: err, comment: id}, 'error getting comment') return cb(Boom.internal()) @@ -69,14 +67,13 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = {member: memberId} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Comment.find(filter, fields, options, function (err, comments) { + Comment.find({member: memberId}, fields, options, (err, comments) => { if (err) { log.error({err: err, member: memberId}, 'error getting comments') return cb(Boom.internal()) @@ -88,10 +85,10 @@ function getByMember (memberId, query, cb) { function getByThread (path, id, query, cb) { cb = cb || query - var thread = threadFromPath(path, id) - var filter = {thread: thread} - var fields = parser(query.fields) - Comment.find(filter, fields, filter, function (err, comments) { + const thread = threadFromPath(path, id) + const filter = {thread: thread} + const fields = parser(query.fields) + Comment.find(filter, fields, filter, (err, comments) => { if (err) { log.error({err: err, thread: thread}, 'error getting comments') return cb(Boom.internal()) @@ -103,10 +100,10 @@ function getByThread (path, id, query, cb) { function getBySubthread (path, id, query, cb) { cb = cb || query - var subthread = threadFromPath(path, id) - var filter = {subthread: subthread} - var fields = parser(query.fields) - Comment.find(filter, fields, filter, function (err, comments) { + const subthread = threadFromPath(path, id) + const filter = {subthread: subthread} + const fields = parser(query.fields) + Comment.find(filter, fields, filter, (err, comments) => { if (err) { log.error({err: err, subthread: subthread}, 'error getting comments') return cb(Boom.internal()) @@ -119,14 +116,13 @@ function getBySubthread (path, id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Comment.find(filter, fields, options, function (err, comments) { + Comment.find({}, fields, options, (err, comments) => { if (err) { log.error({err: err}, 'error getting all comments') return cb(Boom.internal()) @@ -137,9 +133,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {_id: id} - - Comment.findOneAndRemove(filter, function (err, comment) { + Comment.findByIdAndRemove(id, (err, comment) => { if (err) { log.error({err: err, comment: id}, 'error deleting comment') return cb(Boom.internal()) @@ -154,7 +148,7 @@ function remove (id, cb) { } function removeByThread (path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -162,8 +156,8 @@ function removeByThread (path, id, cb) { thread = threadFromPath(path, id) } - var filter = {thread: thread} - Comment.remove(filter, function (err, comments) { + const filter = {thread: thread} + Comment.remove(filter, (err, comments) => { if (err) { log.error({err: err, thread: thread}, 'error getting comments') return cb(Boom.internal()) diff --git a/server/resources/communication.js b/server/resources/communication.js index 3bf24d8b..cddd66ee 100644 --- a/server/resources/communication.js +++ b/server/resources/communication.js @@ -34,7 +34,7 @@ function create (communication, memberId, cb) { function update (id, communication, cb) { communication.updated = Date.now() var filter = {_id: id} - Communication.findOneAndUpdate(filter, communication, function (err, _communication) { + Communication.findOneAndUpdate(filter, communication, {new: true}, function (err, _communication) { if (err) { log.error({err: err, communication: id}, 'error updating communication') return cb(Boom.internal()) diff --git a/server/resources/company.js b/server/resources/company.js index f87b0428..ef7d28a3 100644 --- a/server/resources/company.js +++ b/server/resources/company.js @@ -36,7 +36,7 @@ function create (company, memberId, cb) { function update (id, company, cb) { company.updated = Date.now() - Company.findOneAndUpdate({id: id}, company, function (err, _company) { + Company.findOneAndUpdate({id: id}, company, {new: true}, function (err, _company) { if (err) { log.error({err: err, company: id}, 'error updating company') return cb(Boom.internal()) diff --git a/server/resources/event.js b/server/resources/event.js index b2294de7..6e7964b8 100644 --- a/server/resources/event.js +++ b/server/resources/event.js @@ -34,7 +34,7 @@ function create (event, memberId, cb) { function update (id, event, cb) { event.updated = Date.now() - eventModel.findOneAndUpdate({id: id}, event, function (err, _event) { + eventModel.findOneAndUpdate({id: id}, event, {new: true}, function (err, _event) { if (err) { log.error({err: err, event: id}, 'error updating event') return cb(Boom.internal()) diff --git a/server/resources/item.js b/server/resources/item.js index 0b32b6de..e1e47b88 100644 --- a/server/resources/item.js +++ b/server/resources/item.js @@ -27,7 +27,7 @@ function create (item, memberId, cb) { function update (id, item, cb) { var filter = { id: id } - Item.findOneAndUpdate(filter, item, function (err, _item) { + Item.findOneAndUpdate(filter, item, {new: true}, (err, _item) => { if (err) { log.error({err: err, item: id}, 'error updating item') return cb(Boom.internal()) diff --git a/server/resources/member.js b/server/resources/member.js index 77d7e7b1..41c7748f 100644 --- a/server/resources/member.js +++ b/server/resources/member.js @@ -1,13 +1,13 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var parser = require('../helpers/fieldsParser') -var dupKeyParser = require('../helpers/dupKeyParser') -var randtoken = require('rand-token') -var Member = require('../db/member') -var config = require('../../config') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const parser = require('../helpers/fieldsParser') +const dupKeyParser = require('../helpers/dupKeyParser') +const randtoken = require('rand-token') +const Member = require('../db/member') +const config = require('../../config') // TODO: GET TARGETS server.method('member.create', create, {}) @@ -21,12 +21,11 @@ server.method('member.search', search, {}) function create (member, cb) { member.id = slug(member.id || member.name, '.').toLowerCase() - - Member.create(member, function (err, _member) { + Member.create(member, (err, _member) => { if (err) { if (err.code === 11000) { log.warn({err: err, requestedMember: member.id}, 'member is a duplicate') - return cb(Boom.conflict(dupKeyParser(err.err) + ' is a duplicate')) + return cb(Boom.conflict(dupKeyParser(err.msg) + ' is a duplicate')) } log.error({err: err, member: member}, 'error creating member') @@ -38,7 +37,7 @@ function create (member, cb) { } function update (id, member, cb) { - Member.findOneAndUpdate({id: id}, member, function (err, _member) { + Member.findOneAndUpdate({id: id}, member, {new: true}, (err, _member) => { if (err && err !== {}) { log.error({err: err, member: id}, 'error updating member') return cb(Boom.badRequest('error updating member')) @@ -53,10 +52,9 @@ function update (id, member, cb) { } function createLoginCode (id, cb) { - var loginCode = randtoken.generate(config.loginCodes.length) - var code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} - var filter = {id: id} - Member.findOneAndUpdate(filter, code, function (err, _member) { + const loginCode = randtoken.generate(config.loginCodes.length) + const code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} + Member.findOneAndUpdate({id: id}, code, function (err, _member) { if (err) { log.error({err: err, member: id}, 'error creating login code for member') return cb(Boom.internal()) @@ -75,9 +73,9 @@ function createLoginCode (id, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) - var filter = {$or: [{id: id}, {'facebook.id': id}]} - Member.findOne(filter, fields, function (err, member) { + const fields = parser(query.fields) + const filter = {$or: [{id: id}, {'facebook.id': id}]} + Member.findOne(filter, fields, (err, member) => { if (err) { log.error({err: err, member: id}, 'error getting member') return cb(Boom.internal()) @@ -93,16 +91,16 @@ function get (id, query, cb) { function getSubscribers (path, id, query, cb) { cb = cb || query - var thread = threadFromPath(path, id) + const thread = threadFromPath(path, id) - var filter = {$or: [{'subscriptions.threads': thread}, {'subscriptions.all': true}]} - var fields = parser(query.fields) - var options = { + const filter = {$or: [{'subscriptions.threads': thread}, {'subscriptions.all': true}]} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Member.find(filter, fields, options, function (err, members) { + Member.find(filter, fields, options, (err, members) => { if (err) { log.error({err: err, thread: thread}, 'error getting members') return cb(Boom.internal()) @@ -146,8 +144,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {id: id} - Member.findOneAndRemove(filter, function (err, member) { + Member.findOneAndRemove({id: id}, function (err, member) { if (err) { log.error({err: err, member: id}, 'error deleting member') return cb(Boom.internal()) diff --git a/server/resources/session.js b/server/resources/session.js index 23195d57..67b31676 100644 --- a/server/resources/session.js +++ b/server/resources/session.js @@ -32,7 +32,7 @@ function create (session, memberId, cb) { function update (id, session, cb) { session.updated = Date.now() var filter = {id: id} - Session.findOneAndUpdate(filter, session, function (err, _session) { + Session.findOneAndUpdate(filter, session, {new: true}, function (err, _session) { if (err) { log.error({err: err, session: id}, 'error updating session') return cb(Boom.internal()) diff --git a/server/resources/speaker.js b/server/resources/speaker.js index e91b4a7b..066aaa3d 100644 --- a/server/resources/speaker.js +++ b/server/resources/speaker.js @@ -36,7 +36,7 @@ function create (speaker, memberId, cb) { function update (id, speaker, cb) { speaker.updated = Date.now() var filter = {id: id} - Speaker.findOneAndUpdate(filter, speaker, function (err, _speaker) { + Speaker.findOneAndUpdate(filter, speaker, {new: true}, function (err, _speaker) { if (err) { log.error({err: err, speaker: id}, 'error updating speaker') return cb(Boom.internal()) diff --git a/server/resources/tag.js b/server/resources/tag.js index d3ce975d..93b73931 100644 --- a/server/resources/tag.js +++ b/server/resources/tag.js @@ -14,7 +14,7 @@ server.method('tag.remove', remove, {}) function create (tag, memberId, cb) { tag.id = slug(tag.id || tag.name).toLowerCase() - Tag.create(tag, function (err, _tag) { + Tag.create(tag, (err, _tag) => { if (err) { log.error({err: err, tag: tag}, 'error creating tag') return cb(Boom.internal()) @@ -26,7 +26,7 @@ function create (tag, memberId, cb) { function update (id, tag, cb) { var filter = {id: id} - Tag.findOneAndUpdate(filter, tag, function (err, _tag) { + Tag.findOneAndUpdate(filter, tag, {new: true}, (err, _tag) => { if (err) { log.error({err: err, tag: id}, 'error updating tag') return cb(Boom.internal()) diff --git a/server/resources/topic.js b/server/resources/topic.js index b415f87c..e98e57c8 100644 --- a/server/resources/topic.js +++ b/server/resources/topic.js @@ -1,8 +1,8 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Topic = require('../db/topic') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Topic = require('../db/topic') server.method('topic.create', create, {}) server.method('topic.update', update, {}) @@ -19,7 +19,7 @@ function create (topic, memberId, cb) { topic.updated = Date.now() topic.author = memberId - Topic.create(topic, function (err, _topic) { + Topic.create(topic, (err, _topic) => { if (err) { log.error({err: err, topic: topic}, 'error creating topic') return cb(Boom.internal()) @@ -31,8 +31,7 @@ function create (topic, memberId, cb) { function update (id, topic, cb) { topic.updated = Date.now() - var filter = { _id: id } - Topic.findOneAndUpdate(filter, topic, function (err, _topic) { + Topic.findByIdAndUpdate(id, topic, {new: true}, (err, _topic) => { if (err) { log.error({err: err, topic: id}, 'error updating topic') return cb(Boom.internal()) @@ -48,9 +47,8 @@ function update (id, topic, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = query.fields - var filter = { _id: id } - Topic.findOne(filter, fields, function (err, topic) { + const fields = query.fields + Topic.findById(id, fields, (err, topic) => { if (err) { log.error({err: err, topic: id}, 'error getting topic') return cb(Boom.internal()) @@ -67,14 +65,14 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = { targets: { $in: [memberId] } } - var fields = query.fields - var options = { + const filter = { targets: { $in: [memberId] } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, member: memberId}, 'error getting topics') return cb(Boom.internal()) @@ -86,14 +84,14 @@ function getByMember (memberId, query, cb) { function getByDueDate (start, end, query, cb) { cb = cb || query - var filter = { duedate: { $gte: start, $lt: end } } - var fields = query.fields - var options = { + const filter = { duedate: { $gte: start, $lt: end } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, dates: filter}, 'error getting topics') return cb(Boom.internal()) @@ -105,14 +103,14 @@ function getByDueDate (start, end, query, cb) { function getByTag (tagId, query, cb) { cb = cb || query - var filter = { tags: { $in: [tagId] } } - var fields = query.fields - var options = { + const filter = { tags: { $in: [tagId] } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, tag: tagId}, 'error getting topics') return cb(Boom.internal()) @@ -125,15 +123,15 @@ function getByTag (tagId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const filter = {} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err}, 'error getting all topics') return cb(Boom.internal()) @@ -144,8 +142,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = { _id: id } - Topic.findOneAndRemove(filter, function (err, topic) { + Topic.findByIdAndRemove(id, (err, topic) => { if (err) { log.error({err: err, topic: id}, 'error deleting topic') return cb(Boom.internal()) @@ -162,15 +159,15 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,kind') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,kind') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, exactTopics) { + Topic.find(filter, fields, options, (err, exactTopics) => { if (err) { log.error({err: err, filter: filter}, 'error getting topics') return cb(Boom.internal()) @@ -187,7 +184,7 @@ function search (str, query, cb) { ] } - Topic.find(filter, fields, options, function (err, extendedTopics) { + Topic.find(filter, fields, options, (err, extendedTopics) => { if (err) { log.error({err: err, filter: filter}, 'error getting topics') return cb(Boom.internal()) diff --git a/server/test/access.js b/server/test/access.js index 2304eb5c..3472b173 100644 --- a/server/test/access.js +++ b/server/test/access.js @@ -1,27 +1,29 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var accessA = { +const accessA = { member: 'john.doe', thread: 'company-example', last: Date.now } -lab.experiment('Access', function () { - lab.test('Saving Access', function (done) { - server.methods.access.save(accessA.member, '/companies', accessA.member, function (err, result) { - Code.expect(err, 'err').to.be.null +lab.experiment('Access', () => { + lab.before((done) => setTimeout(() => done(), 1000)) + + lab.test('Saving Access', (done) => { + server.methods.access.save(accessA.member, '/companies', accessA.member, (err, result) => { + Code.expect(err, 'err').to.be.null() done() }) }) - lab.test('Getting Access', function (done) { - server.methods.access.get(accessA.member, '/companies', accessA.member, function (err, result) { - Code.expect(err, 'err').to.be.null + lab.test('Getting Access', (done) => { + server.methods.access.get(accessA.member, '/companies', accessA.member, (err, result) => { + Code.expect(err, 'err').to.be.null() Code.expect(result.member).to.equal(accessA.member) done() }) diff --git a/server/test/comment.js b/server/test/comment.js index 9bc84173..7ea96d50 100644 --- a/server/test/comment.js +++ b/server/test/comment.js @@ -1,11 +1,11 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var credentials = { +const credentials = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,28 +14,28 @@ var credentials = { }] } -var commentA = { +const commentA = { thread: 'company-example', subthread: 'company-example-subexample', - text: 'this is an example of a comentary' + text: 'this is an example of a comment' } -var changesToA = { +const changesToA = { text: 'This is an example of an example of another example.' } -var commId +let commId -lab.experiment('Comment', function () { - lab.test('Create', function (done) { - var options = { +lab.experiment('Comment', () => { + lab.test('Create', (done) => { + const options = { method: 'POST', url: '/api/comments', credentials: credentials, payload: commentA } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(201) Code.expect(result).to.be.instanceof(Object) @@ -49,15 +49,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('List all', function (done) { - var options = { + lab.test('List all', (done) => { + const options = { method: 'GET', url: '/api/comments', credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Array) @@ -68,15 +68,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('Get one', function (done) { - var options = { + lab.test('Get one', (done) => { + const options = { method: 'GET', url: '/api/comments/' + commId, credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -88,16 +88,16 @@ lab.experiment('Comment', function () { }) }) - lab.test('Update', function (done) { - var options = { + lab.test('Update', (done) => { + const options = { method: 'PUT', url: '/api/comments/' + commId, credentials: credentials, payload: changesToA } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -109,15 +109,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('Delete', function (done) { - var options = { + lab.test('Delete', (done) => { + const options = { method: 'DELETE', url: '/api/comments/' + commId, credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) diff --git a/server/test/member.js b/server/test/member.js index 870e1e89..e4df6f8c 100644 --- a/server/test/member.js +++ b/server/test/member.js @@ -1,11 +1,12 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') +const expect = Code.expect -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var memberA = { +const memberA = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,28 +15,19 @@ var memberA = { }] } -var changesMemberA = { +const changesMemberA = { name: 'Jane Doe' } -var credentials = memberA +const credentials = memberA -lab.experiment('Members', function () { - lab.test('Create', function (done) { - var options = { - method: 'POST', - url: '/api/members', - credentials: credentials, - payload: memberA - } - - server.inject(options, function (response) { - var result = response.result - - Code.expect(response.statusCode).to.equal(201) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(memberA.name) +lab.experiment('Members', () => { + lab.test('Create', (done) => { + server.methods.member.create(memberA, (err, result) => { + expect(err).to.be.null() + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(memberA.name) done() }) @@ -61,46 +53,46 @@ lab.experiment('Members', function () { }) }) - lab.test('Get me', function (done) { - var options = { + lab.test('Get me', (done) => { + let options = { method: 'GET', url: '/api/members/me', credentials: credentials } server.inject(options, function (response) { - var result = response.result + let result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(credentials.id) - Code.expect(result.name).to.equal(credentials.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(credentials.id) + expect(result.name).to.equal(credentials.name) done() }) }) - lab.test('Get one', function (done) { - var options = { + lab.test('Get one', (done) => { + let options = { method: 'GET', url: '/api/members/' + memberA.id, credentials: credentials } server.inject(options, function (response) { - var result = response.result + let result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(memberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(memberA.name) done() }) }) - lab.test('Update', function (done) { - var options = { + lab.test('Update', (done) => { + const options = { method: 'PUT', url: '/api/members/' + memberA.id, credentials: credentials, @@ -108,31 +100,31 @@ lab.experiment('Members', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(changesMemberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(changesMemberA.name) done() }) }) - lab.test('Delete', function (done) { - var options = { + lab.test('Delete', (done) => { + const options = { method: 'DELETE', url: '/api/members/' + memberA.id, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(changesMemberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(changesMemberA.name) done() }) diff --git a/server/test/topic.js b/server/test/topic.js index c87a8c37..5b7f9052 100644 --- a/server/test/topic.js +++ b/server/test/topic.js @@ -1,11 +1,11 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var credentials = { +const credentials = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,20 +14,20 @@ var credentials = { }] } -var topicA = { +const topicA = { text: 'hey', kind: 'idea' } -var topicAid +let topicAid -var changesTopicA = { +const changesTopicA = { text: 'Howdy' } lab.experiment('Topic', function () { lab.test('Create', function (done) { - var options = { + const options = { method: 'POST', url: '/api/topics', credentials: credentials, @@ -35,7 +35,7 @@ lab.experiment('Topic', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(201) Code.expect(result).to.be.instanceof(Object) @@ -49,14 +49,14 @@ lab.experiment('Topic', function () { }) lab.test('List all', function (done) { - var options = { + const options = { method: 'GET', url: '/api/topics', credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Array) @@ -68,14 +68,14 @@ lab.experiment('Topic', function () { }) lab.test('Get one', function (done) { - var options = { + const options = { method: 'GET', url: '/api/topics/' + topicAid, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -88,7 +88,7 @@ lab.experiment('Topic', function () { }) lab.test('Update', function (done) { - var options = { + const options = { method: 'PUT', url: '/api/topics/' + topicAid, credentials: credentials, @@ -96,7 +96,7 @@ lab.experiment('Topic', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -108,14 +108,14 @@ lab.experiment('Topic', function () { }) lab.test('Delete', function (done) { - var options = { + const options = { method: 'DELETE', url: '/api/topics/' + topicAid, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) diff --git a/yarn.lock b/yarn.lock index 58eec7ec..08a73bba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,6 +24,13 @@ JSONStream@~0.6.4: jsonparse "0.0.5" through "~2.2.7" +JSONStream@~0.7.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.7.4.tgz#734290e41511eea7c2cfe151fbf9a563a97b9786" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + JSONStream@~0.8.3, JSONStream@~0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" @@ -129,6 +136,13 @@ ammo@2.x.x: boom "4.x.x" hoek "4.x.x" +amp-bind@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-bind/-/amp-bind-1.0.1.tgz#985655aaa1c733e877e4a73fea976f985a8d4770" + dependencies: + amp-is-function "^1.0.0" + amp-is-object "^1.0.0" + amp-clone@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-clone/-/amp-clone-1.0.1.tgz#d9053062a75a91d871f12daf5a40b4514949a20a" @@ -137,7 +151,7 @@ amp-clone@^1.0.1: amp-is-array "^1.0.0" amp-is-object "^1.0.0" -amp-extend@^1.0.0: +amp-extend@^1.0.0, amp-extend@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-extend/-/amp-extend-1.0.1.tgz#6c543bee629c116b831857642f0ff940a15ae1ff" dependencies: @@ -151,7 +165,7 @@ amp-is-date@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-date/-/amp-is-date-1.0.1.tgz#bcac2e9b3853b4f415b0d46c3822819cf3e961ce" -amp-is-function@^1.0.0: +amp-is-function@^1.0.0, amp-is-function@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-function/-/amp-is-function-1.0.1.tgz#8b5412ff5e61d13a94aa449ac01372ad0d2298c0" @@ -159,7 +173,11 @@ amp-is-object@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-object/-/amp-is-object-1.0.1.tgz#0a8cb5956b9112a16a73677e8cbad37bba247702" -amp-result@^1.0.0: +amp-is-regexp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-regexp/-/amp-is-regexp-1.0.1.tgz#9c9ed8f29361fb5c8358e0c6f00ad3fe8965769b" + +amp-result@^1.0.0, amp-result@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/amp-result/-/amp-result-1.1.0.tgz#abcac38062a044d576ab875b45321b113702a424" dependencies: @@ -175,14 +193,15 @@ ampersand-array-checkbox-view@0.0.4: ampersand-view "^7.0.0" underscore "^1.7.0" -ampersand-array-input-view@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ampersand-array-input-view/-/ampersand-array-input-view-6.1.0.tgz#a8b825735651c8473f54064eb8d9c3d976fd7995" +ampersand-array-input-view@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ampersand-array-input-view/-/ampersand-array-input-view-3.0.4.tgz#1c23c3d1fc46cab893cc658091a648bbbff2f3ec" dependencies: - ampersand-input-view "^7.0.0" - ampersand-version "^1.0.2" - ampersand-view "^10.0.1" - lodash "^4.15.0" + ampersand-input-view "^2.0.0" + ampersand-version "^1.0.0" + ampersand-view "^7.0.0" + lodash.assign "^3.0.0" + lodash.without "^3.1.0" ampersand-checkbox-view@^2.0.0, ampersand-checkbox-view@^2.0.2: version "2.0.2" @@ -212,12 +231,6 @@ ampersand-class-extend@^1.0.0, ampersand-class-extend@^1.0.2: dependencies: lodash.assign "^3.0.0" -ampersand-class-extend@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ampersand-class-extend/-/ampersand-class-extend-2.0.0.tgz#52895ffa59217634a6188fd184b1048f5d808aff" - dependencies: - lodash "^4.11.1" - ampersand-collection-lodash-mixin@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-2.0.1.tgz#31d85f39b5969ef7c136e0b5035dbed4511cfd70" @@ -254,20 +267,13 @@ ampersand-collection-lodash-mixin@^2.0.0: lodash.take "^3.0.0" lodash.without "^3.1.0" -ampersand-collection-lodash-mixin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-4.0.0.tgz#0ed047a8e73cb070bc36b678a463e382ac8db6dd" +ampersand-collection-rest-mixin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ampersand-collection-rest-mixin/-/ampersand-collection-rest-mixin-3.0.1.tgz#3f71bb792a08a5c0ca5ebe8dc7f0043883065f5e" dependencies: + ampersand-sync "^2.0.0" ampersand-version "^1.0.0" - lodash "^4.6.1" - -ampersand-collection-rest-mixin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection-rest-mixin/-/ampersand-collection-rest-mixin-6.0.0.tgz#38568d3e522a9a78ae6e5814d4082dc22765576f" - dependencies: - ampersand-sync "^5.0.0" - ampersand-version "^1.0.2" - lodash "^4.11.1" + extend-object "^1.0.0" "ampersand-collection-single-request-mixin@https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master": version "0.0.1" @@ -277,6 +283,13 @@ ampersand-collection-rest-mixin@^6.0.0: ampersand-version "^1.0.0" lodash.assign "^3.0.0" +ampersand-collection-underscore-mixin@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ampersand-collection-underscore-mixin/-/ampersand-collection-underscore-mixin-1.0.4.tgz#3bd4f0a78654e30fe71fa43793f34ee7dae95f67" + dependencies: + ampersand-version "^1.0.0" + underscore "^1.6.0" + ampersand-collection-view@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-1.4.0.tgz#f875162c4b7ffd64c55794e062060681d48bc025" @@ -290,16 +303,7 @@ ampersand-collection-view@^1.4.0: lodash.invoke "^3.1.0" lodash.pick "^3.1.0" -ampersand-collection-view@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-2.0.2.tgz#8990bf81b5a35f3ab87eecffafc61bb2fabe356b" - dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" - ampersand-version "^1.0.0" - lodash "^4.11.1" - -ampersand-collection@^1.3.17: +ampersand-collection@^1.3.0, ampersand-collection@^1.3.17: version "1.6.1" resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-1.6.1.tgz#430f654cf702e19d1dac6cd211755d503172a0c9" dependencies: @@ -310,15 +314,6 @@ ampersand-collection@^1.3.17: lodash.bind "^3.1.0" lodash.isarray "^3.0.1" -ampersand-collection@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-2.0.0.tgz#e82dcf3e5a5ad0687fbb381cc9335c647ab749bc" - dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" - ampersand-version "^1.0.2" - lodash "^4.11.1" - "ampersand-date-view@https://github.com/sinfo/ampersand-date-view/tarball/master": version "0.0.7" resolved "https://github.com/sinfo/ampersand-date-view/tarball/master#fdf294d7d476d8566f7282a48c8221ab546eea9d" @@ -339,7 +334,7 @@ ampersand-dom-bindings@^3.5.0: lodash.partial "^3.1.1" matches-selector "^1.0.0" -ampersand-dom@^1.1.0, ampersand-dom@^1.2.1, ampersand-dom@^1.2.5, ampersand-dom@^1.2.7, ampersand-dom@^1.5.0: +ampersand-dom@^1.1.0, ampersand-dom@^1.2.1, ampersand-dom@^1.2.5, ampersand-dom@^1.2.7: version "1.5.0" resolved "https://registry.yarnpkg.com/ampersand-dom/-/ampersand-dom-1.5.0.tgz#78e36f8b38aa5700f1a129d3423560a6c0523808" dependencies: @@ -358,14 +353,7 @@ ampersand-events@^1.0.1, ampersand-events@^1.1.1: lodash.once "^3.0.0" lodash.uniqueid "^3.0.0" -ampersand-events@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ampersand-events/-/ampersand-events-2.0.2.tgz#f402bc2e18305fabd995dbdcd3b7057bbdd7d347" - dependencies: - ampersand-version "^1.0.2" - lodash "^4.6.1" - -ampersand-form-view@^2.2.0: +ampersand-form-view@^2.2.0, ampersand-form-view@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-2.4.0.tgz#48956e000d752260398548e7c5583a67f8542b2b" dependencies: @@ -375,14 +363,6 @@ ampersand-form-view@^2.2.0: ampersand-version "^1.0.0" backbone-events-standalone "0.2.2" -ampersand-form-view@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-7.0.0.tgz#63a71ea3fe9acb36a756659b9ed8ac43c33bbee1" - dependencies: - ampersand-version "^1.0.0" - ampersand-view "^10.0.1" - lodash "^4.11.1" - ampersand-fullcalendar-view@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/ampersand-fullcalendar-view/-/ampersand-fullcalendar-view-0.0.2.tgz#1ed1d8fb3d7d0edf919f8500c87a6cf345dae358" @@ -398,6 +378,12 @@ ampersand-infinite-scroll@^0.1.0: ampersand-view "^8.0.0" lodash.assign "^3.2.0" +ampersand-input-view@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-2.1.0.tgz#2a867eb57ca51d458551a6f3910430398763b5f2" + dependencies: + ampersand-view "^7.0.0" + ampersand-input-view@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-3.1.1.tgz#3e5e832e7f373ec5e94c43ea5d6d39c6c91d7c5b" @@ -414,15 +400,6 @@ ampersand-input-view@^4.0.5: ampersand-view "^7.2.1" matches-selector "^1.0.0" -ampersand-input-view@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-7.0.0.tgz#ab1fb6b022531aed455e6071dcffb484988b11bf" - dependencies: - ampersand-dom "^1.2.7" - ampersand-version "^1.0.1" - ampersand-view "^10.0.0" - matches-selector "^1.0.0" - ampersand-io-collection@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ampersand-io-collection/-/ampersand-io-collection-0.1.6.tgz#d3b54697b50cea444ba06c7ff3a83261166f6026" @@ -446,14 +423,14 @@ ampersand-io@^0.4.2: ampersand-class-extend "^1.0.2" socket.io-client "^1.3.5" -ampersand-model@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ampersand-model/-/ampersand-model-8.0.0.tgz#85240edba92ddad46a85db3acc7ae408dccf57c5" +ampersand-model@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ampersand-model/-/ampersand-model-4.1.0.tgz#735f99cbd8851f796436f15a92ad6133d9259b19" dependencies: - ampersand-state "^5.0.1" - ampersand-sync "^5.0.0" - ampersand-version "^1.0.2" - lodash "^4.11.1" + ampersand-state "^4.4.4" + ampersand-sync "^2.0.4" + ampersand-version "^1.0.0" + underscore "^1.6.0" ampersand-pagination-mixin@^0.1.0: version "0.1.0" @@ -470,23 +447,27 @@ ampersand-pikaday-view@0.0.1: ampersand-view "^7.0.0" pikaday "^1.3.1" -ampersand-rest-collection@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ampersand-rest-collection/-/ampersand-rest-collection-6.0.0.tgz#a051267979b2cf7606a38383d9ee96d121a628f3" +ampersand-rest-collection@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/ampersand-rest-collection/-/ampersand-rest-collection-2.0.4.tgz#9b63130938d9ede70374c3d53d83d8267d75ea72" dependencies: - ampersand-collection "^2.0.0" - ampersand-collection-lodash-mixin "^4.0.0" - ampersand-collection-rest-mixin "^6.0.0" - ampersand-version "^1.0.2" + ampersand-collection "^1.3.0" + ampersand-collection-rest-mixin "^3.0.0" + ampersand-collection-underscore-mixin "^1.0.0" + ampersand-version "^1.0.0" -ampersand-router@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ampersand-router/-/ampersand-router-4.0.0.tgz#1502c7ba6734af0394e7d8ab6780bcd543ea1338" +ampersand-router@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/ampersand-router/-/ampersand-router-1.0.7.tgz#0a91a8e9f49a7088b37a6aa24a9ad1be14509423" dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" + amp-bind "^1.0.1" + amp-extend "^1.0.1" + amp-is-function "^1.0.1" + amp-is-regexp "^1.0.1" + amp-result "^1.0.1" + ampersand-class-extend "^1.0.0" ampersand-version "^1.0.0" - lodash "^4.11.1" + backbone-events-standalone "0.2.2" ampersand-select-view@^2.2.1, "ampersand-select-view@https://github.com/sinfo/ampersand-select-view/tarball/master": version "2.3.0" @@ -498,7 +479,7 @@ ampersand-select-view@^2.2.1, "ampersand-select-view@https://github.com/sinfo/am matches-selector "^1.0.0" zuul "^1.16.4" -ampersand-state@^4.5.2, ampersand-state@^4.5.3: +ampersand-state@^4.3.15, ampersand-state@^4.4.4, ampersand-state@^4.5.2, ampersand-state@^4.5.3: version "4.9.1" resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-4.9.1.tgz#8ec482e1308ffc4682987287d753ad2d0368ca3e" dependencies: @@ -523,17 +504,7 @@ ampersand-state@^4.5.2, ampersand-state@^4.5.3: lodash.union "^3.1.0" lodash.uniqueid "^3.0.0" -ampersand-state@^5.0.1, ampersand-state@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-5.0.2.tgz#16830def866c644ecd21da8c8ba8717aa2b8d23c" - dependencies: - ampersand-events "^2.0.1" - ampersand-version "^1.0.0" - array-next "~0.0.1" - key-tree-store "^1.3.0" - lodash "^4.11.1" - -ampersand-subcollection@^2.0.3: +ampersand-subcollection@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/ampersand-subcollection/-/ampersand-subcollection-2.0.3.tgz#a36476fbbbf6be5f38fdf8fd6b62c50f36078641" dependencies: @@ -552,16 +523,13 @@ ampersand-subcollection@^2.0.3: lodash.sortby "^3.1.0" lodash.union "^3.1.0" -ampersand-sync@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ampersand-sync/-/ampersand-sync-5.0.0.tgz#9db4ee313f289f98522279a9a66d6cae2c7777b1" +ampersand-sync@^2.0.0, ampersand-sync@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/ampersand-sync/-/ampersand-sync-2.0.4.tgz#3b4144885c85132ab51f4fd1d0239fd9e9cbe00c" dependencies: - ampersand-version "^1.0.0" - lodash "^4.11.1" - media-type "0.3.0" - qs "^6.1.0" - request "^2.55.0" - xhr "^2.0.5" + qs "^1.2.1" + underscore "~1.6.0" + xhr "^1.10.0" ampersand-version@^1.0.0, ampersand-version@^1.0.1, ampersand-version@^1.0.2: version "1.0.2" @@ -570,27 +538,13 @@ ampersand-version@^1.0.0, ampersand-version@^1.0.1, ampersand-version@^1.0.2: find-root "^0.1.1" through2 "^0.6.3" -ampersand-view-switcher@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ampersand-view-switcher/-/ampersand-view-switcher-2.1.0.tgz#e2375b5252f3127d5bc6ddda82c0c12ef3da2206" +ampersand-view-switcher@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ampersand-view-switcher/-/ampersand-view-switcher-1.1.2.tgz#393db617a4193832bbc94437f1c696e8356e6885" dependencies: ampersand-version "^1.0.0" -ampersand-view@^10.0.0, ampersand-view@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-10.0.1.tgz#f5b9619c21ca390c5626ab94985eb3b1abfab938" - dependencies: - ampersand-collection-view "^2.0.1" - ampersand-dom-bindings "^3.5.0" - ampersand-state "^5.0.1" - ampersand-version "^1.0.2" - component-classes "^1.2.4" - domify "^1.3.2" - events-mixin "^1.2.0" - lodash "^4.11.1" - matches-selector "^1.0.0" - -ampersand-view@^7.0.0, ampersand-view@^7.2.0, ampersand-view@^7.2.1: +ampersand-view@^7.0.0, ampersand-view@^7.2.0, ampersand-view@^7.2.1, ampersand-view@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-7.4.2.tgz#160cb5f81c89feae82bc6a3e0e61c365061a04c2" dependencies: @@ -804,12 +758,6 @@ assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -assert@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - assert@~1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/assert/-/assert-1.1.2.tgz#adaa04c46bb58c6dd1f294da3eb26e6228eb6e44" @@ -840,7 +788,11 @@ async@^0.2.10, async@~0.2.6, async@~0.2.7, async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" -async@^1.4.0, async@^1.5.2: +async@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/async/-/async-0.7.0.tgz#4429e0e62f5de0a54f37458c49f0b897eb52ada5" + +async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -888,14 +840,10 @@ base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" -base64-js@0.0.7: +base64-js@0.0.7, base64-js@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.7.tgz#54400dc91d696cec32a8a47902f971522fee8f48" -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" @@ -1043,22 +991,26 @@ browser-pack@^3.2.0: through2 "~0.5.1" umd "^2.1.0" -browser-pack@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531" +browser-pack@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-2.0.1.tgz#5d1c527f56c582677411c4db2a128648ff6bf150" dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.7.1" - defined "^1.0.0" - through2 "^2.0.0" - umd "^3.0.0" + JSONStream "~0.6.4" + combine-source-map "~0.3.0" + through "~2.3.4" -browser-resolve@^1.11.0, browser-resolve@^1.3.0, browser-resolve@^1.7.0: +browser-resolve@^1.3.0, browser-resolve@^1.7.0: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" dependencies: resolve "1.1.7" +browser-resolve@~1.2.2, browser-resolve@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.2.4.tgz#59ae7820a82955ecd32f5fb7c468ac21c4723806" + dependencies: + resolve "0.6.3" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" @@ -1182,57 +1134,58 @@ browserify@6.3.3: vm-browserify "~0.0.1" xtend "^3.0.0" -browserify@^13.0.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce" +browserify@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-4.2.3.tgz#0e0d8f98e6df6a664aa2c055120f3848246ee4d0" dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" + JSONStream "~0.8.3" + assert "~1.1.0" + browser-pack "~2.0.0" + browser-resolve "^1.3.0" browserify-zlib "~0.1.2" - buffer "^4.1.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.1" + buffer "^2.3.0" + builtins "~0.0.3" + commondir "0.0.1" + concat-stream "~1.4.1" console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" + constants-browserify "~0.0.1" + crypto-browserify "^2.1.8" + deep-equal "~0.2.1" + defined "~0.0.0" + deps-sort "~0.1.1" + derequire "~0.8.0" domain-browser "~1.1.0" - duplexer2 "~0.1.2" - events "~1.1.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" + duplexer "~0.1.1" + events "~1.0.0" + glob "~3.2.8" + http-browserify "^1.4.0" https-browserify "~0.0.0" inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - module-deps "^4.0.8" + insert-module-globals "~6.0.0" + module-deps "~2.1.1" os-browserify "~0.1.1" - parents "^1.0.1" + parents "~0.0.1" path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" + process "^0.7.0" + punycode "~1.2.3" querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "~0.10.0" - subarg "^1.0.0" + readable-stream "^1.0.27-1" + resolve "~0.7.1" + shallow-copy "0.0.1" + shell-quote "~0.0.1" + stream-browserify "^1.0.0" + stream-combiner "~0.0.2" + string_decoder "~0.0.0" + subarg "0.0.1" syntax-error "^1.1.1" - through2 "^2.0.0" + through2 "^1.0.0" timers-browserify "^1.0.1" tty-browserify "~0.0.0" - url "~0.11.0" + umd "~2.1.0" + url "~0.10.1" util "~0.10.1" vm-browserify "~0.0.1" - xtend "^4.0.0" + xtend "^3.0.0" bson@~1.0.4: version "1.0.4" @@ -1258,13 +1211,12 @@ buffer@^2.3.0: ieee754 "^1.1.4" is-array "^1.0.1" -buffer@^4.1.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" +buffer@~2.3.2: + version "2.3.4" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-2.3.4.tgz#7e4af5a23c15e13fcbfd5c5a1ec974cb61668a4c" dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "~0.0.4" + ieee754 "~1.1.1" bufferjs@=1.1.0: version "1.1.0" @@ -1286,10 +1238,6 @@ bufferjs@=1.1.0: version "2.1.4" resolved "https://registry.yarnpkg.com/buffertools/-/buffertools-2.1.4.tgz#62d4e1584c0090a0c7d3587f25934a84b8b38de4" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - builtins@~0.0.3: version "0.0.7" resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a" @@ -1326,10 +1274,6 @@ bytes@1, bytes@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" -cached-path-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4" - call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -1499,15 +1443,6 @@ combine-source-map@~0.6.1: lodash.memoize "~3.0.3" source-map "~0.4.2" -combine-source-map@~0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1592,7 +1527,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@~1.5.0, concat-stream@~1.5.1: +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: @@ -1661,10 +1596,6 @@ constants-browserify@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - content-disposition@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" @@ -1788,6 +1719,13 @@ cryptiles@3.x.x: dependencies: boom "4.x.x" +crypto-browserify@^2.1.8: + version "2.1.10" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-2.1.10.tgz#4f2ca6311843cf087cdf008e43a4f3686ef6e6bb" + dependencies: + ripemd160 "0.2.0" + sha.js "2.1.6" + crypto-browserify@^3.0.0: version "3.11.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" @@ -1826,7 +1764,7 @@ cssesc@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -cssmin@^0.4.3: +cssmin@^0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/cssmin/-/cssmin-0.4.3.tgz#c9194077e0ebdacd691d5f59015b9d819f38d015" @@ -1979,14 +1917,21 @@ deps-sort@^1.3.5: subarg "^1.0.0" through2 "^1.0.0" -deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" +deps-sort@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-0.1.2.tgz#daa2fb614a17c9637d801e2f55339ae370f3611a" dependencies: - JSONStream "^1.0.3" - shasum "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" + JSONStream "~0.6.4" + minimist "~0.0.1" + through "~2.3.4" + +derequire@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/derequire/-/derequire-0.8.0.tgz#c1f7f1da2cede44adede047378f03f444e9c4c0d" + dependencies: + esprima-fb "^3001.1.0-dev-harmony-fb" + esrefactor "~0.1.0" + estraverse "~1.5.0" des.js@^1.0.0: version "1.0.0" @@ -2076,12 +2021,6 @@ duplexer2@0.0.2, duplexer2@~0.0.2: dependencies: readable-stream "~1.1.9" -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -2296,6 +2235,12 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" +escope@~0.0.13: + version "0.0.16" + resolved "https://registry.yarnpkg.com/escope/-/escope-0.0.16.tgz#418c7a0afca721dafe659193fd986283e746538f" + dependencies: + estraverse ">= 0.0.2" + eslint-config-hapi@10.x.x: version "10.0.0" resolved "https://registry.yarnpkg.com/eslint-config-hapi/-/eslint-config-hapi-10.0.0.tgz#9980affd76103ebc1fec92b45638345db19348f5" @@ -2424,7 +2369,7 @@ espree@^3.3.1: acorn "^4.0.1" acorn-jsx "^3.0.0" -esprima-fb@3001.1.0-dev-harmony-fb: +esprima-fb@3001.1.0-dev-harmony-fb, esprima-fb@^3001.1.0-dev-harmony-fb: version "3001.1.0-dev-harmony-fb" resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" @@ -2436,7 +2381,7 @@ esprima@^2.5.0, esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~1.0.4: +esprima@~1.0.2, esprima@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" @@ -2451,13 +2396,25 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" +esrefactor@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/esrefactor/-/esrefactor-0.1.0.tgz#d142795a282339ab81e936b5b7a21b11bf197b13" + dependencies: + escope "~0.0.13" + esprima "~1.0.2" + estraverse "~0.0.4" + +"estraverse@>= 0.0.2", estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +estraverse@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-0.0.4.tgz#01a0932dfee574684a598af5a67c3bf9b6428db2" estraverse@~1.5.0: version "1.5.1" @@ -2513,10 +2470,6 @@ events@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/events/-/events-1.0.2.tgz#75849dcfe93d10fb057c30055afdbd51d06a8e24" -events@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" @@ -2896,10 +2849,6 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - gauge@~2.7.1: version "2.7.2" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" @@ -2957,7 +2906,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@3.x, glob@~3.2.6, glob@~3.2.9: +glob@3.x, glob@~3.2.6, glob@~3.2.8, glob@~3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" dependencies: @@ -3004,7 +2953,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.5, glob@^7.1.0, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.5, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -3231,12 +3180,6 @@ has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -has@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - hash.js@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" @@ -3311,10 +3254,6 @@ hooks-fixed@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-1.2.0.tgz#0d2772d4d7d685ff9244724a9f0b5b2559aac96b" -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - http-browserify@^1.4.0: version "1.7.0" resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" @@ -3374,7 +3313,7 @@ iconv-lite@~0.2.11: version "0.2.11" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" -ieee754@^1.1.4: +ieee754@^1.1.4, ieee754@~1.1.1: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -3444,12 +3383,6 @@ inline-source-map@~0.5.0: dependencies: source-map "~0.4.0" -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - dependencies: - source-map "~0.5.3" - inquirer@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" @@ -3481,18 +3414,16 @@ insert-module-globals@^6.1.0: through2 "^1.0.0" xtend "^4.0.0" -insert-module-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3" +insert-module-globals@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-6.0.0.tgz#ee8aeb9dee16819e33aa14588a558824af0c15dc" dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.7.1" - concat-stream "~1.5.1" - is-buffer "^1.1.0" - lexical-scope "^1.2.0" - process "~0.11.0" - through2 "^2.0.0" - xtend "^4.0.0" + JSONStream "~0.7.1" + concat-stream "~1.4.1" + lexical-scope "~1.1.0" + process "~0.6.0" + through "~2.3.4" + xtend "^3.0.0" interpret@^1.0.0: version "1.0.1" @@ -3562,7 +3493,7 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-function@^1.0.1, is-function@~1.0.0: +is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -3812,7 +3743,7 @@ json-stable-stringify@~0.0.0: dependencies: jsonify "~0.0.0" -json-stringify-safe@*, json-stringify-safe@5.x.x, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: +json-stringify-safe@5.x.x, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -3908,14 +3839,6 @@ labeled-stream-splicer@^1.0.0: isarray "~0.0.1" stream-splicer "^1.1.0" -labeled-stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" - dependencies: - inherits "^2.0.1" - isarray "~0.0.1" - stream-splicer "^2.0.0" - latest-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" @@ -3956,6 +3879,12 @@ lexical-scope@^1.2.0: dependencies: astw "^2.0.0" +lexical-scope@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.1.1.tgz#debac1067435f1359d90fcfd9e94bcb2ee47b2bf" + dependencies: + astw "^2.0.0" + load-script@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/load-script/-/load-script-0.0.5.tgz#cbd54b27cd7309902b749640c70e996f4c643b63" @@ -4719,7 +4648,7 @@ lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.3.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.3.0: version "4.17.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" @@ -4798,10 +4727,6 @@ matches-selector@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/matches-selector/-/matches-selector-1.0.0.tgz#434833447026a25ea4999edab18e4b8892b25721" -media-type@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-type/-/media-type-0.3.0.tgz#ceff6aa0e3f41a4a4de3d7d6b96eb82ac78d9ee8" - media-typer@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.2.0.tgz#d8a065213adfeaa2e76321a2b6dda36ff6335984" @@ -4959,7 +4884,7 @@ minimatch@^2.0.1, minimatch@^2.0.10: dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8, minimist@~0.0.1, minimist@~0.0.5: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4971,6 +4896,10 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.7, minimist@~0.0.9: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.3.5, mkdirp@0.3.x: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" @@ -4981,6 +4910,19 @@ mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkd dependencies: minimist "0.0.8" +module-deps@^1.8.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-1.10.0.tgz#57a9cac9dbd092428ec5249f6cf37fb249d77db6" + dependencies: + JSONStream "~0.7.1" + browser-resolve "~1.2.2" + concat-stream "~1.4.1" + detective "~3.1.0" + minimist "~0.0.5" + parents "0.0.2" + resolve "~0.6.0" + through "~2.3.4" + module-deps@^3.5.0: version "3.9.1" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-3.9.1.tgz#ea75caf9199090d25b0d5512b5acacb96e7f87f3" @@ -5000,25 +4942,23 @@ module-deps@^3.5.0: through2 "^1.0.0" xtend "^4.0.0" -module-deps@^4.0.5, module-deps@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb" +module-deps@~2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-2.1.5.tgz#375a9bc804ccd64cebb3c62ee643755f0b3ccf29" dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^4.0.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.1.3" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" + JSONStream "~0.7.1" + browser-resolve "~1.2.4" + concat-stream "~1.4.5" + detective "~3.1.0" + duplexer2 "0.0.2" + inherits "~2.0.1" + minimist "~0.0.9" + parents "0.0.2" + readable-stream "^1.0.27-1" + resolve "~0.6.3" + stream-combiner "~0.1.0" + subarg "0.0.1" + through2 "~0.4.1" moment-timezone@~0.3.0: version "0.3.1" @@ -5049,9 +4989,9 @@ mongodb@2.2.22: mongodb-core "2.1.7" readable-stream "2.1.5" -mongoose@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.8.0.tgz#6941807145b49a6d1a06e35e632e3f11f01bccb0" +mongoose@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.8.1.tgz#1dbd3014fb39e9344271a53ec5dd741205864aae" dependencies: async "2.1.4" bson "~1.0.4" @@ -5060,28 +5000,28 @@ mongoose@^4.8.0: mongodb "2.2.22" mpath "0.2.1" mpromise "0.5.5" - mquery "2.2.0" + mquery "2.2.1" ms "0.7.2" muri "1.2.0" regexp-clone "0.0.1" sliced "1.0.1" -moonboots@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/moonboots/-/moonboots-5.0.1.tgz#a87e25c764d545d5318db87647ed1c1d2ad61d72" +moonboots@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/moonboots/-/moonboots-3.0.2.tgz#032b42f0a4732ec7e0fea0ae7b32479a173cb7ea" dependencies: - async "^1.5.2" - browserify "^13.0.0" + async "^0.7.0" + browserify "^4.2.1" bundle-metadata "^1.0.1" - cssmin "^0.4.3" - module-deps "^4.0.5" - uglify-js "^2.6.2" + cssmin "^0.4.1" + module-deps "^1.8.0" + uglify-js "^2.4.0" -moonboots_hapi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/moonboots_hapi/-/moonboots_hapi-7.0.0.tgz#2f50e9d35bc14941442be05b7ea382ff7e87cf1a" +moonboots_hapi@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/moonboots_hapi/-/moonboots_hapi-4.0.2.tgz#e06db90bc38de9ebf297bbd084f1f5b6197b404d" dependencies: - moonboots "^5.0.0" + moonboots "^3.0.0" mothership@~0.2.0: version "0.2.0" @@ -5097,9 +5037,9 @@ mpromise@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6" -mquery@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.2.0.tgz#0d3f86ec61520c3c59b39532d9a0f4cce8aa71a6" +mquery@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.2.1.tgz#aa31076419adce2b06e9757f4cfc5d7f371b47ce" dependencies: bluebird "2.10.2" debug "2.2.0" @@ -5311,6 +5251,10 @@ once@^1.3.0: dependencies: wrappy "1" +once@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/once/-/once-1.1.1.tgz#9db574933ccb08c3a7614d154032c09ea6f339e7" + once@~1.3.0, once@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" @@ -5422,16 +5366,16 @@ parent-require@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" -parents@^1.0.0, parents@^1.0.1: +parents@0.0.2, parents@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parents/-/parents-0.0.2.tgz#67147826e497d40759aaf5ba4c99659b6034d302" + +parents@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" dependencies: path-platform "~0.11.15" -parents@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/parents/-/parents-0.0.2.tgz#67147826e497d40759aaf5ba4c99659b6034d302" - parse-asn1@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" @@ -5562,13 +5506,6 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" -pmx@^0.3.20: - version "0.3.31" - resolved "https://registry.yarnpkg.com/pmx/-/pmx-0.3.31.tgz#d8369bf1817d96a2862c3c55ca55597a34d85d4e" - dependencies: - debug "*" - json-stringify-safe "*" - podium@^1.2.x: version "1.2.5" resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" @@ -5601,6 +5538,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/process/-/process-0.7.0.tgz#c52208161a34adf3812344ae85d3e6150469389d" + process@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/process/-/process-0.8.0.tgz#7bbaf7187fe6ded3fd5be0cb6103fba9cacb9798" @@ -5613,6 +5554,10 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" +process@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/process/-/process-0.6.0.tgz#7dd9be80ffaaedd4cb628f1827f1cbab6dc0918f" + progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" @@ -5660,7 +5605,7 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.3.2, punycode@^1.4.1: +punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -5688,11 +5633,7 @@ qs@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" -qs@^6.1.0, qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -qs@~1.2.0: +qs@^1.2.1, qs@~1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" @@ -5700,6 +5641,10 @@ qs@~2.2.3: version "2.2.5" resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.5.tgz#1088abaf9dcc0ae5ae45b709e6c6b5888b23923c" +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5767,13 +5712,7 @@ read-all-stream@^3.0.0: pinkie-promise "^2.0.0" readable-stream "^2.0.0" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - dependencies: - readable-stream "^2.0.2" - -readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@~2.1.4: +readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.1.4: version "2.1.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" dependencies: @@ -5900,7 +5839,7 @@ request@2.11.4: form-data "~0.0.3" mime "~1.2.7" -request@^2.55.0, request@^2.79.0: +request@^2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -5988,11 +5927,15 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" +resolve@0.6.3, resolve@~0.6.0, resolve@~0.6.1, resolve@~0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" + resolve@0.7.x, resolve@~0.7.1: version "0.7.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.7.4.tgz#395a9ef9e873fbfe12bd14408bd91bb936003d69" -resolve@1.1.7, resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6: +resolve@1.1.7, resolve@^1.1.3, resolve@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -6000,10 +5943,6 @@ resolve@~0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4" -resolve@~0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -6046,6 +5985,10 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" @@ -6149,6 +6092,12 @@ setprototypeof@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" +sha.js@2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.1.6.tgz#20e6eb81f3e66f081ddf84dd8f0464bea6c02fd4" + dependencies: + buffer "~2.3.2" + sha.js@^2.3.6, sha.js@~2.4.4: version "2.4.8" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" @@ -6189,15 +6138,6 @@ shell-quote@1.4.1: array-reduce "~0.0.0" jsonify "~0.0.0" -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - shell-quote@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-0.0.1.tgz#1a41196f3c0333c482323593d6886ecf153dd986" @@ -6241,9 +6181,9 @@ slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" -slug@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/slug/-/slug-0.9.1.tgz#af08f608a7c11516b61778aa800dce84c518cfda" +slug@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/slug/-/slug-0.7.1.tgz#c79cfb4b6f4a88028c915f8b5a14b10881024383" dependencies: unicode ">= 0.3.1" @@ -6343,7 +6283,7 @@ source-map@0.4.x, source-map@^0.4.4, source-map@~0.4.0, source-map@~0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: +source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -6453,20 +6393,6 @@ stream-browserify@^1.0.0: inherits "~2.0.1" readable-stream "^1.0.27-1" -stream-browserify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - stream-combiner2@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.0.2.tgz#ba72a6b50cbfabfa950fc8bc87604bd01eb60671" @@ -6474,28 +6400,25 @@ stream-combiner2@~1.0.0: duplexer2 "~0.0.2" through2 "~0.5.1" -stream-combiner@~0.0.4: +stream-combiner@~0.0.2, stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" dependencies: duplexer "~0.1.1" +stream-combiner@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.1.0.tgz#0dc389a3c203f8f4d56368f95dde52eb9269b5be" + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + stream-counter@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de" dependencies: readable-stream "~1.1.8" -stream-http@^2.0.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.3.tgz#4c3ddbf9635968ea2cfd4e48d43de5def2625ac3" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.1.0" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -6511,13 +6434,6 @@ stream-splicer@^1.1.0: readable-wrap "^1.0.0" through2 "^1.0.0" -stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - string-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" @@ -6539,6 +6455,10 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" +string_decoder@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.0.1.tgz#f5472d0a8d1650ec823752d24e6fd627b39bf141" + string_decoder@~0.10.0, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -6588,6 +6508,12 @@ stylus@^0.54.5: sax "0.5.x" source-map "0.1.x" +subarg@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-0.0.1.tgz#3d56b07dacfbc45bbb63f7672b43b63e46368e3a" + dependencies: + minimist "~0.0.7" + subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" @@ -6763,14 +6689,7 @@ through2@^1.0.0: readable-stream ">=1.1.13-1 <1.2.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through2@~0.4.0: +through2@~0.4.0, through2@~0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" dependencies: @@ -6820,10 +6739,6 @@ to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - topo@2.x.x: version "2.0.2" resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" @@ -6907,7 +6822,7 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@^2.4.24, uglify-js@^2.6, uglify-js@^2.6.2: +uglify-js@^2.4.0, uglify-js@^2.4.24, uglify-js@^2.6: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -6965,10 +6880,6 @@ umd@^2.1.0, umd@~2.1.0: through "~2.3.4" uglify-js "~2.4.0" -umd@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" - undefsafe@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" @@ -6985,6 +6896,10 @@ underscore@, underscore@^1.6.0, underscore@^1.7.0, underscore@^1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + underscore@~1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" @@ -7022,13 +6937,6 @@ url@~0.10.1: punycode "1.3.2" querystring "0.2.0" -url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -7217,14 +7125,13 @@ xdg-basedir@^2.0.0: dependencies: os-homedir "^1.0.0" -xhr@^2.0.5: - version "2.3.3" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.3.3.tgz#ad6b810e0917ce72b5ec704f5d41f1503b8e7524" +xhr@^1.10.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-1.17.1.tgz#0533349e4a7bb967d0bd878a961d9505f9052dff" dependencies: global "~4.3.0" - is-function "^1.0.1" + once "~1.1.1" parse-headers "^2.0.0" - xtend "^4.0.0" xml2js@~0.4.0: version "0.4.17" @@ -7249,7 +7156,7 @@ xtend@2.1.2, xtend@~2.1.1: dependencies: object-keys "~0.4.0" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From f48d09e1c3e379ad51805164f71703a5fb63a5b2 Mon Sep 17 00:00:00 2001 From: CarlosFaria94 Date: Sun, 5 Feb 2017 00:54:51 +0000 Subject: [PATCH 3/8] Remove Node 0.10 from Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6f88d874..c6cab2f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: node_js node_js: - - "0.10" - "6" services: - mongodb From c1c29a79c656fe94b14c2bf35881c95cceec7e7f Mon Sep 17 00:00:00 2001 From: CarlosFaria94 Date: Sun, 5 Feb 2017 02:38:06 +0000 Subject: [PATCH 4/8] Refactoring --- server/db/index.js | 12 +- server/resources/auth.js | 79 +++++------ server/resources/authorization.js | 6 +- server/resources/chat.js | 38 +++--- server/resources/comment.js | 16 +-- server/resources/communication.js | 67 +++++----- server/resources/company.js | 78 +++++------ server/resources/email.js | 22 ++-- server/resources/event.js | 41 +++--- server/resources/item.js | 43 +++--- server/resources/member.js | 38 +++--- server/resources/message.js | 40 +++--- server/resources/notification.js | 160 +++++++++++------------ server/resources/topic.js | 18 +-- server/routes/auth/handlers.js | 6 +- server/routes/auth/index.js | 4 +- server/routes/chats/handlers.js | 4 +- server/routes/chats/index.js | 4 +- server/routes/comments/handlers.js | 4 +- server/routes/comments/index.js | 4 +- server/routes/communications/handlers.js | 4 +- server/routes/communications/index.js | 4 +- server/routes/companies/handlers.js | 6 +- server/routes/companies/index.js | 4 +- server/routes/events/handlers.js | 4 +- server/routes/events/index.js | 4 +- server/routes/fonts.js | 17 ++- server/routes/items/handlers.js | 4 +- server/routes/items/index.js | 4 +- server/routes/members/index.js | 4 +- server/routes/messages/handlers.js | 4 +- server/routes/messages/index.js | 4 +- server/routes/notifications/handlers.js | 4 +- server/routes/notifications/index.js | 4 +- server/routes/roles/handlers.js | 4 +- server/routes/roles/index.js | 4 +- server/routes/search/handlers.js | 12 +- server/routes/search/index.js | 4 +- server/routes/sessions/handlers.js | 12 +- server/routes/sessions/index.js | 4 +- server/routes/speakers/handlers.js | 6 +- server/routes/speakers/index.js | 4 +- server/routes/subscriptions/handlers.js | 4 +- server/routes/subscriptions/index.js | 4 +- server/routes/tags/handlers.js | 4 +- server/routes/tags/index.js | 4 +- server/routes/test/index.js | 4 +- server/routes/topics/index.js | 4 +- server/scripts/crono/reminder.js | 4 +- server/scripts/subscribeAll.js | 14 +- 50 files changed, 412 insertions(+), 435 deletions(-) diff --git a/server/db/index.js b/server/db/index.js index 9c9d038e..f7d0cd0c 100644 --- a/server/db/index.js +++ b/server/db/index.js @@ -1,15 +1,15 @@ -var mongoose = require('mongoose') -var mongoUrl = require('../../config').mongo.url -var log = require('../helpers/logger') +const mongoose = require('mongoose') +const mongoUrl = require('../../config').mongo.url +const log = require('../helpers/logger') mongoose.connect(mongoUrl) -var db = mongoose.connection +const db = mongoose.connection -db.on('error', function (err) { +db.on('error', (err) => { log.error('Connection error:', err) }) -db.once('open', function () { +db.once('open', () => { log.info('Successfuly connected to mongoDB') }) diff --git a/server/resources/auth.js b/server/resources/auth.js index 6b0cb0dd..686bccd9 100644 --- a/server/resources/auth.js +++ b/server/resources/auth.js @@ -1,27 +1,27 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var urlPrefix = require('../../config').url -var Request = require('request') -var facebookConfig = require('../../config').facebook +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const urlPrefix = require('../../config').url +const Request = require('request') +const facebookConfig = require('../../config').facebook server.method('auth.createCode', createCode, {}) server.method('auth.verifyCode', verifyCode, {}) server.method('auth.verifyFacebook', verifyFacebook, {}) function createCode (memberId, cb) { - server.methods.member.createLoginCode(memberId, function (err, result) { + server.methods.member.createLoginCode(memberId, (err, result) => { if (err) { log.error({err: err, member: memberId}, 'error creating code') return cb(err) } - var member = result.member - var loginCode = result.loginCode + const member = result.member + const loginCode = result.loginCode - log.info({member: memberId, loginCode: loginCode}, 'login code created') + log.info({member: memberId, loginCode}, 'login code created') - var message = { + const message = { to: member.name + '<' + member.mails.main + '>', subject: '[SINFO] Login code for Deck!', text: 'Hey ' + member.name + '!\n\n Here is your code for logging in on EventDeck: ' + loginCode + '\n\n' + urlPrefix + '/login/' + member.id + '/' + loginCode @@ -30,7 +30,7 @@ function createCode (memberId, cb) { server.methods.email.send(message, function (err) { if (err) { log.warn(err) - log.error({err: err, member: memberId}, 'error sending code') + log.error({err, member: memberId}, 'error sending code') return cb(Boom.internal('error sending email')) } cb(null, member) @@ -39,18 +39,22 @@ function createCode (memberId, cb) { } function verifyCode (memberId, loginCode, cb) { - server.methods.member.get(memberId, '', function (err, member) { + server.methods.member.get(memberId, '', (err, member) => { if (err) { - log.error({err: err, member: memberId}, 'error finding member') + log.error({err, member: memberId}, 'error finding member') return cb(err) } - var index = member.loginCodes.map(function (o) { + const index = member.loginCodes.map((o) => { return o.code }).indexOf(loginCode) if (index === -1 || member.loginCodes[index].created - new Date() > 5 * 60 * 1000) { - log.warn({member: memberId, loginCode: loginCode, loginCodes: member.loginCodes}, '[auth] member tried to login with an invalid code') + log.warn({ + member: memberId, + loginCode: loginCode, + loginCodes: member.loginCodes + }, '[auth] member tried to login with an invalid code') return cb(Boom.unauthorized()) } cb(null, member) @@ -60,31 +64,30 @@ function verifyCode (memberId, loginCode, cb) { function verifyFacebook (facebookUserId, facebookUserToken, cb) { Request.get('https://graph.facebook.com/debug_token?input_token=' + facebookUserToken + '&access_token=' + facebookConfig.appId + '|' + facebookConfig.appSecret, { json: true - }, - function (error, response, result) { - if (error || response.statusCode !== 200) { - log.error({err: error, member: facebookUserToken}, 'error logging in with facebook') - return cb(Boom.unauthorized(error)) - } + }, (error, response, result) => { + if (error || response.statusCode !== 200) { + log.error({err: error, member: facebookUserToken}, 'error logging in with facebook') + return cb(Boom.unauthorized(error)) + } - if (!result.data || result.data.app_id !== facebookConfig.appId || result.data.user_id !== facebookUserId) { - log.error({ - 'result-app-id': result.data.app_id, - 'config-app-id': facebookConfig.appId, - 'result-user-id': result.data.user_id, - 'requested-user-id': facebookUserId - }, 'error logging in with facebook') + if (!result.data || result.data.app_id !== facebookConfig.appId || result.data.user_id !== facebookUserId) { + log.error({ + 'result-app-id': result.data.app_id, + 'config-app-id': facebookConfig.appId, + 'result-user-id': result.data.user_id, + 'requested-user-id': facebookUserId + }, 'error logging in with facebook') - return cb(Boom.unauthorized()) - } + return cb(Boom.unauthorized()) + } - server.methods.member.get(facebookUserId, '', function (err, member) { - if (err) { - log.error({err: err, facebookUserId: facebookUserId}, 'error finding member') - return cb(err) - } + server.methods.member.get(facebookUserId, '', (err, member) => { + if (err) { + log.error({err, facebookUserId}, 'error finding member') + return cb(err) + } - cb(null, member) - }) + cb(null, member) }) + }) } diff --git a/server/resources/authorization.js b/server/resources/authorization.js index 37414e52..8b43c646 100644 --- a/server/resources/authorization.js +++ b/server/resources/authorization.js @@ -1,10 +1,10 @@ -var Boom = require('boom') -var server = require('../index').hapi +const Boom = require('boom') +const server = require('../index').hapi server.method('authorization.isAdmin', isAdmin, {}) function isAdmin (member, cb) { - var isAuthorized = member.participations.filter(function (participation) { + let isAuthorized = member.participations.filter((participation) => { return participation.role === 'coordination' }).length > 0 diff --git a/server/resources/chat.js b/server/resources/chat.js index 04b9f3aa..43b38fa8 100644 --- a/server/resources/chat.js +++ b/server/resources/chat.js @@ -1,8 +1,8 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Chat = require('../db/chat') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Chat = require('../db/chat') server.method('chat.create', create, {}) server.method('chat.update', update, {}) @@ -24,8 +24,7 @@ function create (chat, cb) { } function update (id, chat, cb) { - var filter = {id: id} - Chat.findOneAndUpdate(filter, chat, function (err, _chat) { + Chat.findOneAndUpdate({id: id}, chat, (err, _chat) => { if (err) { log.error({err: err, chat: id}, 'error updating chat') return cb(Boom.internal()) @@ -41,10 +40,9 @@ function update (id, chat, cb) { function get (id, query, cb) { cb = cb || query - var filter = {id: id} - var fields = parser(query.fields) + const fields = parser(query.fields) - Chat.findOne(filter, fields, function (err, chat) { + Chat.findOne({id: id}, fields, (err, chat) => { if (err) { log.error({err: err, chat: id}, 'error getting chat') return cb(Boom.internal()) @@ -61,14 +59,13 @@ function get (id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Chat.find(filter, fields, options, function (err, chats) { + Chat.find({}, fields, options, (err, chats) => { if (err) { log.error({err: err}, 'error getting all chats') return cb(Boom.internal()) @@ -79,8 +76,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {id: id} - Chat.findOneAndRemove(filter, function (err, chat) { + Chat.findOneAndRemove({id: id}, (err, chat) => { if (err) { log.error({err: err, chat: id}, 'error deleting chat') return cb(Boom.internal()) @@ -95,9 +91,8 @@ function remove (id, cb) { } function addMessage (id, message, cb) { - var filter = {id: id} - var update = {$push: {messages: message}} - Chat.findOneAndUpdate(filter, update, function (err, chat) { + const update = {$push: {messages: message}} + Chat.findOneAndUpdate({id: id}, update, (err, chat) => { if (err) { log.error({err: err, chat: id}, 'error adding chat message') return cb(Boom.internal()) @@ -112,9 +107,8 @@ function addMessage (id, message, cb) { } function removeMessage (id, message, cb) { - var filter = {id: id} - var update = {$pull: {messages: message}} - Chat.findOneAndUpdate(filter, update, function (err, chat) { + const update = {$pull: {messages: message}} + Chat.findOneAndUpdate({id: id}, update, (err, chat) => { if (err) { log.error({err: err, chat: id}, 'error removing chat message') return cb(Boom.internal()) diff --git a/server/resources/comment.js b/server/resources/comment.js index 69008e63..d3e7169c 100644 --- a/server/resources/comment.js +++ b/server/resources/comment.js @@ -22,7 +22,7 @@ function create (comment, memberId, cb) { Comment.create(comment, (err, _comment) => { if (err) { - log.error({err: err, comment: comment}, 'error creating comment') + log.error({err, comment}, 'error creating comment') return cb(Boom.internal()) } @@ -35,7 +35,7 @@ function update (id, comment, cb) { Comment.findByIdAndUpdate(id, comment, {new: true}, (err, _comment) => { if (err) { - log.error({err: err, comment: id}, 'error updating comment') + log.error({err, comment: id}, 'error updating comment') return cb(Boom.internal()) } if (!_comment) { @@ -53,7 +53,7 @@ function get (id, query, cb) { Comment.findById(id, fields, (err, comment) => { if (err) { - log.error({err: err, comment: id}, 'error getting comment') + log.error({err, comment: id}, 'error getting comment') return cb(Boom.internal()) } if (!comment) { @@ -75,7 +75,7 @@ function getByMember (memberId, query, cb) { } Comment.find({member: memberId}, fields, options, (err, comments) => { if (err) { - log.error({err: err, member: memberId}, 'error getting comments') + log.error({err, member: memberId}, 'error getting comments') return cb(Boom.internal()) } @@ -90,7 +90,7 @@ function getByThread (path, id, query, cb) { const fields = parser(query.fields) Comment.find(filter, fields, filter, (err, comments) => { if (err) { - log.error({err: err, thread: thread}, 'error getting comments') + log.error({err, thread}, 'error getting comments') return cb(Boom.internal()) } @@ -101,11 +101,11 @@ function getByThread (path, id, query, cb) { function getBySubthread (path, id, query, cb) { cb = cb || query const subthread = threadFromPath(path, id) - const filter = {subthread: subthread} + const filter = {subthread} const fields = parser(query.fields) Comment.find(filter, fields, filter, (err, comments) => { if (err) { - log.error({err: err, subthread: subthread}, 'error getting comments') + log.error({err, subthread}, 'error getting comments') return cb(Boom.internal()) } @@ -159,7 +159,7 @@ function removeByThread (path, id, cb) { const filter = {thread: thread} Comment.remove(filter, (err, comments) => { if (err) { - log.error({err: err, thread: thread}, 'error getting comments') + log.error({err, thread}, 'error getting comments') return cb(Boom.internal()) } diff --git a/server/resources/communication.js b/server/resources/communication.js index cddd66ee..3720e582 100644 --- a/server/resources/communication.js +++ b/server/resources/communication.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var parser = require('../helpers/fieldsParser') -var Communication = require('../db/communication') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const parser = require('../helpers/fieldsParser') +const Communication = require('../db/communication') server.method('communication.create', create, {}) server.method('communication.update', update, {}) @@ -21,9 +21,9 @@ function create (communication, memberId, cb) { communication.posted = Date.now() communication.updated = Date.now() - Communication.create(communication, function (err, _communication) { + Communication.create(communication, (err, _communication) => { if (err) { - log.error({err: err, communication: communication}, 'error creating communication') + log.error({err, communication}, 'error creating communication') return cb(Boom.internal()) } @@ -33,10 +33,10 @@ function create (communication, memberId, cb) { function update (id, communication, cb) { communication.updated = Date.now() - var filter = {_id: id} - Communication.findOneAndUpdate(filter, communication, {new: true}, function (err, _communication) { + + Communication.findByIdAndUpdate(id, communication, {new: true}, (err, _communication) => { if (err) { - log.error({err: err, communication: id}, 'error updating communication') + log.error({err, communication: id}, 'error updating communication') return cb(Boom.internal()) } if (!_communication) { @@ -51,12 +51,11 @@ function update (id, communication, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var filter = {_id: id} - var fields = parser(query.fields) + const fields = parser(query.fields) - Communication.findOne(filter, fields, function (err, communication) { + Communication.findById(id, fields, (err, communication) => { if (err) { - log.error({err: err, communication: id}, 'error getting communication') + log.error({err, communication: id}, 'error getting communication') return cb(Boom.internal()) } if (!communication) { @@ -71,14 +70,14 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query // fields is optional - var filter = {member: memberId} - var fields = parser(query.fields) - var options = { + const filter = {member: memberId} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Communication.find(filter, fields, options, function (err, communications) { + Communication.find(filter, fields, options, (err, communications) => { if (err) { log.error({err: err, member: memberId}, 'error getting communications') return cb(Boom.internal()) @@ -91,11 +90,11 @@ function getByMember (memberId, query, cb) { function getByThread (path, id, query, cb) { cb = cb || query // fields is optional - var thread = threadFromPath(path, id) - var filter = {thread: thread} - Communication.find(filter, function (err, communications) { + const thread = threadFromPath(path, id) + const filter = {thread} + Communication.find(filter, (err, communications) => { if (err) { - log.error({err: err, thread: thread}, 'error getting communications') + log.error({err: err, thread}, 'error getting communications') return cb(Boom.internal()) } @@ -106,8 +105,8 @@ function getByThread (path, id, query, cb) { function getByEvent (eventId, query, cb) { cb = cb || query // fields is optional - var filter = {event: eventId} - Communication.find(filter, function (err, communications) { + const filter = {event: eventId} + Communication.find(filter, (err, communications) => { if (err) { log.error({err: err, event: eventId}, 'error getting communications') return cb(Boom.internal()) @@ -120,19 +119,19 @@ function getByEvent (eventId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} + let filter = {} if (query.status) { filter.status = query.status } if (query.member) { filter.member = query.member } if (query.kind) { filter.kind = query.kind } if (query.event) { filter.event = query.event } - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Communication.find(filter, fields, options, function (err, communications) { + Communication.find(filter, fields, options, (err, communications) => { if (err) { log.error({err: err}, 'error getting all communications') return cb(Boom.internal()) @@ -143,8 +142,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {_id: id} - Communication.findOneAndRemove(filter, function (err, communication) { + Communication.findByIdAndRemove(id, (err, communication) => { if (err) { log.error({err: err, communication: id}, 'error deleting communication') return cb(Boom.internal()) @@ -159,7 +157,7 @@ function remove (id, cb) { } function removeByThread (path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -167,10 +165,9 @@ function removeByThread (path, id, cb) { thread = threadFromPath(path, id) } - var filter = {thread: thread} - Communication.remove(filter, function (err, communications) { + Communication.remove({thread}, (err, communications) => { if (err) { - log.error({err: err, thread: thread}, 'error getting communications') + log.error({err, thread}, 'error getting communications') return cb(Boom.internal()) } diff --git a/server/resources/company.js b/server/resources/company.js index ef7d28a3..ba5b57af 100644 --- a/server/resources/company.js +++ b/server/resources/company.js @@ -1,10 +1,10 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Company = require('../db/company') -var dupKeyParser = require('../helpers/dupKeyParser') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Company = require('../db/company') +const dupKeyParser = require('../helpers/dupKeyParser') server.method('company.create', create, {}) server.method('company.update', update, {}) @@ -19,14 +19,14 @@ function create (company, memberId, cb) { company.id = slug(company.id || company.name).toLowerCase() company.updated = Date.now() - Company.create(company, function (err, _company) { + Company.create(company, (err, _company) => { if (err) { if (err.code === 11000) { - log.warn({err: err, requestedCompany: company.id}, 'company is a duplicate') + log.warn({err, requestedCompany: company.id}, 'company is a duplicate') return cb(Boom.conflict(dupKeyParser(err.err) + ' is a duplicate')) } - log.error({err: err, company: company}, 'error creating company') + log.error({err, company}, 'error creating company') return cb(Boom.internal()) } cb(null, _company.toObject({ getters: true })) @@ -36,9 +36,9 @@ function create (company, memberId, cb) { function update (id, company, cb) { company.updated = Date.now() - Company.findOneAndUpdate({id: id}, company, {new: true}, function (err, _company) { + Company.findOneAndUpdate({id: id}, company, {new: true}, (err, _company) => { if (err) { - log.error({err: err, company: id}, 'error updating company') + log.error({err, company: id}, 'error updating company') return cb(Boom.internal()) } if (!_company) { @@ -53,10 +53,10 @@ function update (id, company, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) - Company.findOne({id: id}, fields, function (err, company) { + const fields = parser(query.fields) + Company.findOne({id: id}, fields, (err, company) => { if (err) { - log.error({err: err, company: id}, 'error getting company') + log.error({err, company: id}, 'error getting company') return cb(Boom.internal()) } if (!company) { @@ -71,17 +71,17 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query // fields is optional - var filter = { participations: { $elemMatch: { member: memberId } } } - var fields = parser(query.fields) - var options = { + const filter = { participations: { $elemMatch: { member: memberId } } } + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Company.find(filter, fields, options, function (err, companies) { + Company.find(filter, fields, options, (err, companies) => { if (err) { - log.error({err: err, member: memberId}, 'error getting companies') + log.error({err, member: memberId}, 'error getting companies') return cb(Boom.internal()) } @@ -92,17 +92,17 @@ function getByMember (memberId, query, cb) { function getByEvent (eventId, query, cb) { cb = cb || query // fields is optional - var filter = { participations: { $elemMatch: { event: eventId } } } - var fields = parser(query.fields) - var options = { + const filter = { participations: { $elemMatch: { event: eventId } } } + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Company.find(filter, fields, options, function (err, companies) { + Company.find(filter, fields, options, (err, companies) => { if (err) { - log.error({err: err, event: eventId}, 'error getting companies') + log.error({err, event: eventId}, 'error getting companies') return cb(Boom.internal()) } @@ -112,10 +112,10 @@ function getByEvent (eventId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var eventsFilter = {} - var filter = {} - var fields = parser(query.fields) - var options = { + let eventsFilter = {} + let filter = {} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) @@ -135,9 +135,9 @@ function list (query, cb) { filter.participations = query.participations ? {$elemMatch: eventsFilter} : {$not: {$elemMatch: eventsFilter}} } - Company.find(filter, fields, options, function (err, companies) { + Company.find(filter, fields, options, (err, companies) => { if (err) { - log.error({err: err}, 'error getting all companies') + log.error({err}, 'error getting all companies') return cb(Boom.internal()) } @@ -146,9 +146,9 @@ function list (query, cb) { } function remove (id, cb) { - Company.findOneAndRemove({id: id}, function (err, company) { + Company.findOneAndRemove({id: id}, (err, company) => { if (err) { - log.error({err: err, company: id}, 'error deleting company') + log.error({err, company: id}, 'error deleting company') return cb(Boom.internal()) } if (!company) { @@ -163,9 +163,9 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,img') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,img') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) @@ -173,7 +173,7 @@ function search (str, query, cb) { Company.find(filter, fields, options, function (err, exactCompanies) { if (err) { - log.error({err: err, filter: filter}, 'error getting companies') + log.error({err, filter}, 'error getting companies') return cb(Boom.internal()) } @@ -190,9 +190,9 @@ function search (str, query, cb) { ] } - Company.find(filter, fields, options, function (err, extendedCompanies) { + Company.find(filter, fields, options, (err, extendedCompanies) => { if (err) { - log.error({err: err, filter: filter}, 'error getting companies') + log.error({err, filter}, 'error getting companies') return cb(Boom.internal()) } diff --git a/server/resources/email.js b/server/resources/email.js index 6b16aada..595ffe46 100644 --- a/server/resources/email.js +++ b/server/resources/email.js @@ -1,25 +1,25 @@ -var server = require('../index').hapi -var log = require('../helpers/logger') -var Mailgun = require('mailgun').Mailgun -var mgConfig = require('../../config').mailgun +const server = require('../index').hapi +const log = require('../helpers/logger') +const Mailgun = require('mailgun').Mailgun +const mgConfig = require('../../config').mailgun -var MailComposer = require('mailcomposer').MailComposer +const MailComposer = require('mailcomposer').MailComposer -var mg = new Mailgun(mgConfig.api) -var mailcomposer = new MailComposer() +const mg = new Mailgun(mgConfig.api) +const mailcomposer = new MailComposer() server.method('email.send', send, {}) exports = module.exports = send function send (message, cb) { - log.debug({message: message, mg: mgConfig}, 'sending email') + log.debug({message, mg: mgConfig}, 'sending email') if (!message.html || message.html === '') { mg.sendText(mgConfig.email, message.to, message.subject, message.text, - function (err) { + (err) => { if (err) { return cb('error on mailgun') } cb() } @@ -35,12 +35,12 @@ function send (message, cb) { html: message.html }) - mailcomposer.buildMessage(function (err, rawBody) { + mailcomposer.buildMessage((err, rawBody) => { if (err) { return cb(err) } mg.sendRaw(mgConfig.email, message.to, rawBody, - function (err) { + (err) => { if (err) { return cb(err) } cb() } diff --git a/server/resources/event.js b/server/resources/event.js index 6e7964b8..9b0f7eb9 100644 --- a/server/resources/event.js +++ b/server/resources/event.js @@ -1,10 +1,10 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var eventModel = require('../db/event') -var dupKeyParser = require('../helpers/dupKeyParser') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const eventModel = require('../db/event') +const dupKeyParser = require('../helpers/dupKeyParser') server.method('event.create', create, {}) server.method('event.update', update, {}) @@ -16,10 +16,10 @@ function create (event, memberId, cb) { event.id = slug(event.id || event.name).toLowerCase() event.updated = Date.now() - eventModel.create(event, function (err, _event) { + eventModel.create(event, (err, _event) => { if (err) { if (err.code === 11000) { - log.warn({err: err, requestedEvent: _event.id}, 'event is a duplicate') + log.warn({err, requestedEvent: _event.id}, 'event is a duplicate') return cb(Boom.conflict(dupKeyParser(err.err) + ' is a duplicate')) } @@ -36,7 +36,7 @@ function update (id, event, cb) { eventModel.findOneAndUpdate({id: id}, event, {new: true}, function (err, _event) { if (err) { - log.error({err: err, event: id}, 'error updating event') + log.error({err, event: id}, 'error updating event') return cb(Boom.internal()) } if (!_event) { @@ -51,11 +51,11 @@ function update (id, event, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) + const fields = parser(query.fields) - eventModel.findOne({id: id}, fields, function (err, event) { + eventModel.findOne({id: id}, fields, (err, event) => { if (err) { - log.error({err: err, event: id}, 'error getting event') + log.error({err, event: id}, 'error getting event') return cb(Boom.internal()) } if (!event) { @@ -70,17 +70,16 @@ function get (id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - eventModel.find(filter, fields, options, function (err, events) { + eventModel.find({}, fields, options, (err, events) => { if (err) { - log.error({err: err}, 'error getting all events') + log.error({err}, 'error getting all events') return cb(Boom.internal()) } @@ -89,13 +88,13 @@ function list (query, cb) { } function remove (id, cb) { - eventModel.findOneAndRemove({id: id}, function (err, event) { + eventModel.findOneAndRemove({id: id}, (err, event) => { if (err) { - log.error({err: err, event: id}, 'error deleting event') + log.error({err, event: id}, 'error deleting event') return cb(Boom.internal()) } if (!event) { - log.error({err: err, event: id}, 'error deleting event') + log.error({err, event: id}, 'error deleting event') return cb(Boom.notFound()) } diff --git a/server/resources/item.js b/server/resources/item.js index e1e47b88..453824d6 100644 --- a/server/resources/item.js +++ b/server/resources/item.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Item = require('../db/item') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Item = require('../db/item') server.method('item.create', create, {}) server.method('item.update', update, {}) @@ -16,7 +16,7 @@ function create (item, memberId, cb) { Item.create(item, function (err, _item) { if (err) { - log.error({err: err, item: item}, 'error creating item') + log.error({err, item: item}, 'error creating item') return cb(Boom.internal()) } @@ -25,11 +25,9 @@ function create (item, memberId, cb) { } function update (id, item, cb) { - var filter = { id: id } - - Item.findOneAndUpdate(filter, item, {new: true}, (err, _item) => { + Item.findOneAndUpdate({ id: id }, item, {new: true}, (err, _item) => { if (err) { - log.error({err: err, item: id}, 'error updating item') + log.error({err, item: id}, 'error updating item') return cb(Boom.internal()) } if (!_item) { @@ -43,13 +41,11 @@ function update (id, item, cb) { function get (id, query, cb) { cb = cb || query + const fields = parser(query.fields) - var filter = { id: id } - var fields = parser(query.fields) - - Item.findOne(filter, fields, function (err, item) { + Item.findOne({ id: id }, fields, (err, item) => { if (err) { - log.error({err: err, item: id}, 'error getting item') + log.error({err, item: id}, 'error getting item') return cb(Boom.internal()) } if (!item) { @@ -64,17 +60,16 @@ function get (id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Item.find(filter, fields, options, function (err, items) { + Item.find({}, fields, options, (err, items) => { if (err) { - log.error({err: err}, 'error getting all items') + log.error({err}, 'error getting all items') return cb(Boom.internal()) } @@ -83,11 +78,9 @@ function list (query, cb) { } function remove (id, cb) { - var filter = { id: id } - - Item.findOneAndRemove(filter, function (err, item) { + Item.findOneAndRemove({ id: id }, (err, item) => { if (err) { - log.error({err: err, item: id}, 'error deleting item') + log.error({err, item: id}, 'error deleting item') return cb(Boom.internal()) } if (!item) { diff --git a/server/resources/member.js b/server/resources/member.js index 41c7748f..7c3f2806 100644 --- a/server/resources/member.js +++ b/server/resources/member.js @@ -24,11 +24,11 @@ function create (member, cb) { Member.create(member, (err, _member) => { if (err) { if (err.code === 11000) { - log.warn({err: err, requestedMember: member.id}, 'member is a duplicate') + log.warn({err, requestedMember: member.id}, 'member is a duplicate') return cb(Boom.conflict(dupKeyParser(err.msg) + ' is a duplicate')) } - log.error({err: err, member: member}, 'error creating member') + log.error({err, member}, 'error creating member') return cb(Boom.internal()) } @@ -39,7 +39,7 @@ function create (member, cb) { function update (id, member, cb) { Member.findOneAndUpdate({id: id}, member, {new: true}, (err, _member) => { if (err && err !== {}) { - log.error({err: err, member: id}, 'error updating member') + log.error({err, member: id}, 'error updating member') return cb(Boom.badRequest('error updating member')) } if (!_member) { @@ -56,7 +56,7 @@ function createLoginCode (id, cb) { const code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} Member.findOneAndUpdate({id: id}, code, function (err, _member) { if (err) { - log.error({err: err, member: id}, 'error creating login code for member') + log.error({err, member: id}, 'error creating login code for member') return cb(Boom.internal()) } if (!_member) { @@ -77,7 +77,7 @@ function get (id, query, cb) { const filter = {$or: [{id: id}, {'facebook.id': id}]} Member.findOne(filter, fields, (err, member) => { if (err) { - log.error({err: err, member: id}, 'error getting member') + log.error({err, member: id}, 'error getting member') return cb(Boom.internal()) } if (!member) { @@ -102,7 +102,7 @@ function getSubscribers (path, id, query, cb) { } Member.find(filter, fields, options, (err, members) => { if (err) { - log.error({err: err, thread: thread}, 'error getting members') + log.error({err, thread}, 'error getting members') return cb(Boom.internal()) } @@ -113,10 +113,10 @@ function getSubscribers (path, id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var eventsFilter = {} - var filter = {} - var fields = parser(query.fields) - var options = { + let filter = {} + let eventsFilter = {} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) @@ -133,9 +133,9 @@ function list (query, cb) { filter.participations = query.participations ? {$elemMatch: eventsFilter} : {$not: {$elemMatch: eventsFilter}} } - Member.find(filter, fields, options, function (err, members) { + Member.find(filter, fields, options, (err, members) => { if (err) { - log.error({err: err}, 'error getting all members') + log.error({err}, 'error getting all members') return cb(Boom.internal()) } @@ -146,11 +146,11 @@ function list (query, cb) { function remove (id, cb) { Member.findOneAndRemove({id: id}, function (err, member) { if (err) { - log.error({err: err, member: id}, 'error deleting member') + log.error({err, member: id}, 'error deleting member') return cb(Boom.internal()) } if (!member) { - log.error({err: err, member: id}, 'error deleting member') + log.error({err, member: id}, 'error deleting member') return cb(Boom.notFound()) } @@ -161,9 +161,9 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,img,facebook') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,img,facebook') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) @@ -171,7 +171,7 @@ function search (str, query, cb) { Member.find(filter, fields, options, function (err, exactMembers) { if (err) { - log.error({err: err, filter: filter}, 'error getting members') + log.error({err, filter}, 'error getting members') return cb(Boom.internal()) } @@ -190,7 +190,7 @@ function search (str, query, cb) { Member.find(filter, fields, options, function (err, extendedMembers) { if (err) { - log.error({err: err, filter: filter}, 'error getting members') + log.error({err, filter}, 'error getting members') return cb(Boom.internal()) } diff --git a/server/resources/message.js b/server/resources/message.js index 2bcaafec..d0ecd8de 100644 --- a/server/resources/message.js +++ b/server/resources/message.js @@ -1,8 +1,8 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Message = require('../db/message') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Message = require('../db/message') server.method('message.create', create, {}) server.method('message.get', get, {}) @@ -10,9 +10,9 @@ server.method('message.list', list, {}) server.method('message.getByChat', getByChat, {}) function create (message, cb) { - Message.create(message, function (err, _message) { + Message.create(message, (err, _message) => { if (err) { - log.error({err: err, message: message}, 'error creating message') + log.error({err, message}, 'error creating message') return cb(Boom.internal()) } @@ -22,13 +22,11 @@ function create (message, cb) { function get (id, query, cb) { cb = cb || query // fields is optional + const fields = parser(query.fields) - var fields = parser(query.fields) - var filter = {id: id} - - Message.findOne(filter, fields, function (err, message) { + Message.findOne({id: id}, fields, (err, message) => { if (err) { - log.error({err: err, message: id}, 'error getting message') + log.error({err, message: id}, 'error getting message') return cb(Boom.internal()) } if (!message) { @@ -43,17 +41,16 @@ function get (id, query, cb) { function getByChat (chatId, query, cb) { cb = cb || query - var filter = {chatId: chatId} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Message.find(filter, fields, options, function (err, messages) { + Message.find({chatId: chatId}, fields, options, (err, messages) => { if (err) { - log.error({err: err, chat: chatId}, 'error getting messages') + log.error({err, chat: chatId}, 'error getting messages') return cb(Boom.internal()) } cb(null, messages) @@ -63,16 +60,15 @@ function getByChat (chatId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Message.find(filter, fields, options, function (err, messages) { + Message.find({}, fields, options, (err, messages) => { if (err) { - log.error({err: err}, 'error getting all messages') + log.error({err}, 'error getting all messages') return cb(Boom.internal()) } diff --git a/server/resources/notification.js b/server/resources/notification.js index d7bf08e8..bc81294c 100644 --- a/server/resources/notification.js +++ b/server/resources/notification.js @@ -1,15 +1,15 @@ -var Boom = require('boom') -var async = require('async') -var server = require('../index').hapi -var IO = require('../index').socket.client -var events = require('../sockets').notification.events -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var parser = require('../helpers/fieldsParser') -var Notification = require('../db/notification') -var Member = require('../db/member') -var Access = require('../db/access') -var Subscription = require('../db/subscription') +const Boom = require('boom') +const async = require('async') +const server = require('../index').hapi +const IO = require('../index').socket.client +const events = require('../sockets').notification.events +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const parser = require('../helpers/fieldsParser') +const Notification = require('../db/notification') +const Member = require('../db/member') +const Access = require('../db/access') +const Subscription = require('../db/subscription') server.method('notification.notifyCreate', notifyCreate, {}) server.method('notification.notifyUpdate', notifyUpdate, {}) @@ -33,7 +33,7 @@ function broadcast (notification, cb) { if (!notification) { return cb() } - IO.emit(events.notify, {data: notification}, function (err) { + IO.emit(events.notify, {data: notification}, (err) => { if (err) { log.error({err: err, notification: notification}, 'notification broadcast failed') } @@ -42,7 +42,7 @@ function broadcast (notification, cb) { } function notifyCreate (memberId, path, thing, cb) { - var notification = { + const notification = { thread: threadFromPath(path, thing.id), member: memberId, description: 'created', @@ -53,7 +53,7 @@ function notifyCreate (memberId, path, thing, cb) { } function notifyUpdate (memberId, path, thing, cb) { - var notification = { + const notification = { thread: threadFromPath(path, thing.id), member: memberId, description: 'updated', @@ -64,7 +64,7 @@ function notifyUpdate (memberId, path, thing, cb) { } function notifyMention (memberId, thread, targets, source, cb) { - var index = targets.indexOf(memberId) + const index = targets.indexOf(memberId) if (index !== -1) { targets.splice(index, 1) if (!targets.length) { @@ -72,7 +72,7 @@ function notifyMention (memberId, thread, targets, source, cb) { } } - var notification = { + const notification = { thread: thread, member: memberId, description: 'mentioned you', @@ -85,7 +85,7 @@ function notifyMention (memberId, thread, targets, source, cb) { } function notifyComment (memberId, thread, source, cb) { - var notification = { + const notification = { thread: thread, member: memberId, description: 'posted a new comment', @@ -97,7 +97,7 @@ function notifyComment (memberId, thread, source, cb) { } function notifyCommunication (memberId, thread, source, cb) { - var notification = { + const notification = { thread: thread, member: memberId, description: 'posted a new communication', @@ -109,7 +109,7 @@ function notifyCommunication (memberId, thread, source, cb) { } function notify (memberId, thread, description, objectId, targets, cb) { - var notification = { + const notification = { thread: thread, source: objectId, member: memberId, @@ -124,9 +124,9 @@ function notify (memberId, thread, description, objectId, targets, cb) { function create (notification, cb) { notification.posted = Date.now() - Notification.create(notification, function (err, _notification) { + Notification.create(notification, (err, _notification) => { if (err) { - log.error({err: err, notification: notification}, 'error creating notification') + log.error({err, notification}, 'error creating notification') return cb(Boom.internal()) } _notification.set('unread', true, { strict: false }) @@ -136,12 +136,11 @@ function create (notification, cb) { function get (id, query, cb) { cb = cb || query - var filter = {_id: id} - var fields = query.fields + const fields = query.fields - Notification.findOne(filter, fields, function (err, notification) { + Notification.findOne({_id: id}, fields, (err, notification) => { if (err) { - log.error({err: err, notification: id}, 'error getting notification') + log.error({err, notification: id}, 'error getting notification') return cb(Boom.internal()) } if (!notification) { @@ -155,17 +154,17 @@ function get (id, query, cb) { function getByThread (path, id, query, cb) { cb = cb || query - var thread = threadFromPath(path, id) - var filter = {thread: thread, targets: []} - var fields = query.fields - var options = { + const thread = threadFromPath(path, id) + const filter = {thread, targets: []} + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Notification.find(filter, fields, options, function (err, notifications) { + Notification.find(filter, fields, options, (err, notifications) => { if (err) { - log.error({err: err, thread: thread}, 'error getting notifications') + log.error({err, thread}, 'error getting notifications') return cb(Boom.internal()) } @@ -185,25 +184,25 @@ function getUnreadCount (memberId, query, cb) { async.waterfall([ function getSubscriptions (cbAsync) { - var filter = {member: memberId} - Subscription.find(filter, function (err, subscriptions) { + const filter = {member: memberId} + Subscription.find(filter, (err, subscriptions) => { if (err) { - log.error({err: err, subscriptions: subscriptions}, 'error getting subscriptions') + log.error({err, subscriptions}, 'error getting subscriptions') return cbAsync(Boom.internal()) } cbAsync(null, subscriptions) }) }, function getLastAccess (subscriptions, cbAsync) { - var filter = {id: memberId} - var memberFields = {unreadAccess: true} - Member.findOne(filter, memberFields, function (err, member) { + const filter = {id: memberId} + const memberFields = {unreadAccess: true} + Member.findOne(filter, memberFields, (err, member) => { if (err) { - log.error({err: err, member: member}, 'error getting member notification accesses') + log.error({err, member}, 'error getting member notification accesses') return cbAsync(Boom.internal()) } if (!member) { - log.error({err: err, member: member}, 'member not found while getting last access') + log.error({err, member}, 'member not found while getting last access') return cbAsync(Boom.notFound()) } @@ -211,13 +210,13 @@ function getUnreadCount (memberId, query, cb) { }) }, function getUnreadNotifications (subscriptions, access, cbAsync) { - var filter = {$or: [{targets: {$in: [memberId]}}], posted: {$gt: access}} + const filter = {$or: [{targets: {$in: [memberId]}}], posted: {$gt: access}} if (subscriptions.length) { filter.$or.push({thread: {$in: subscriptions}}) } - Notification.count(filter, function (err, count) { + Notification.count(filter, (err, count) => { if (err) { - log.error({err: err, count: count}, 'error counting notifications') + log.error({err, count}, 'error counting notifications') return cbAsync(Boom.internal()) } cbAsync(null, count) @@ -225,7 +224,7 @@ function getUnreadCount (memberId, query, cb) { } ], function done (err, result) { if (err) { - log.error({err: err}, 'error counting notifications') + log.error({err}, 'error counting notifications') return cb(err) } cb(null, result) @@ -235,8 +234,8 @@ function getUnreadCount (memberId, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) @@ -244,28 +243,28 @@ function getByMember (memberId, query, cb) { async.waterfall([ function getSubscriptions (cbAsync) { - var filter = {member: memberId} - var fields = {thread: true} - var result = [] - Subscription.find(filter, fields, function (err, subscriptions) { + const filter = {member: memberId} + const fields = {thread: true} + let result = [] + Subscription.find(filter, fields, (err, subscriptions) => { if (err) { - log.error({err: err, subscriptions: subscriptions}, 'error getting subscriptions') + log.error({err, subscriptions}, 'error getting subscriptions') return cbAsync(Boom.internal()) } - for (var i = 0; i < subscriptions.length; i++) { + for (let i = 0; i < subscriptions.length; i++) { result.push(subscriptions[i].thread) } cbAsync(null, result) }) }, function getNotificationsFromSubscriptions (subscriptions, cbAsync) { - var filter = {$or: [{targets: {$in: [memberId]}}], member: {$ne: memberId}} + let filter = {$or: [{targets: {$in: [memberId]}}], member: {$ne: memberId}} if (subscriptions.length) { filter.$or.push({thread: {$in: subscriptions}}) } - Notification.find(filter, fields, options, function (err, notifications) { + Notification.find(filter, fields, options, (err, notifications) => { if (err) { - log.error({err: err, filter: filter}, 'error getting notifications') + log.error({err, filter}, 'error getting notifications') return cbAsync(Boom.internal()) } @@ -284,16 +283,16 @@ function getByMember (memberId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {targets: {$size: 0}} - var fields = parser(query.fields) - var options = { + const filter = {targets: {$size: 0}} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Notification.find(filter, fields, options, function (err, notifications) { + Notification.find(filter, fields, options, (err, notifications) => { if (err) { - log.error({err: err}, 'error getting all notifications') + log.error({err}, 'error getting all notifications') return cb(Boom.internal()) } @@ -302,53 +301,52 @@ function list (query, cb) { } function decorateWithUnreadStatus (memberId, collection, cb) { - var threads = collection.map(function (o) { + const threads = collection.map((o) => { return o.thread }) - var filter = { member: memberId, thread: { $in: threads } } - Access.find(filter, function (err, accesses) { + const filter = { member: memberId, thread: { $in: threads } } + Access.find(filter, (err, accesses) => { if (err) { - log.error({err: err, access: filter}) + log.error({err, access: filter}) return cb(Boom.internal()) } - var accessLookup = {} - for (var i = 0, len = accesses.length; i < len; i++) { + let accessLookup = {} + for (let i = 0, len = accesses.length; i < len; i++) { accessLookup[accesses[i].thread] = accesses[i] } - var accessedThreads = accesses.map(function (o) { + const accessedThreads = accesses.map(function (o) { return o.thread }) - async.map(collection, function (o, asyncCb) { + async.map(collection, (o, asyncCb) => { if (accessedThreads.indexOf(o.thread) === -1) { o.set('unread', true, { strict: false }) return asyncCb(null, o) } - var notificationFilter = {thread: o.thread, posted: {$gt: accessLookup[o.thread].last}} - Notification.count(notificationFilter, function (err, count) { + const notificationFilter = {thread: o.thread, posted: {$gt: accessLookup[o.thread].last}} + Notification.count(notificationFilter, (err, count) => { if (err) { - log.error({err: err, count: count}, 'error counting notifications') + log.error({err, count}, 'error counting notifications') return asyncCb() } o.set('unread', count > 0, { strict: false }) asyncCb(null, o) }) - }, function (err, result) { + }, (err, result) => { cb(err, result) }) }) } function remove (id, cb) { - var filter = {id: id} - Notification.findOneAndRemove(filter, function (err, notification) { + Notification.findOneAndRemove({id: id}, (err, notification) => { if (err) { - log.error({err: err, notification: id}, 'error deleting notification') + log.error({err, notification: id}, 'error deleting notification') return cb(Boom.internal()) } if (!notification) { @@ -361,7 +359,7 @@ function remove (id, cb) { } function removeByThread (path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -369,10 +367,9 @@ function removeByThread (path, id, cb) { thread = threadFromPath(path, id) } - var filter = {thread: thread} - Notification.remove(filter, function (err, notifications) { + Notification.remove({thread}, (err, notifications) => { if (err) { - log.error({err: err, thread: thread}, 'error removing notifications') + log.error({err, thread}, 'error removing notifications') return cb(Boom.internal()) } @@ -381,10 +378,9 @@ function removeByThread (path, id, cb) { } function removeBySource (source, cb) { - var filter = { source: source } - Notification.remove(filter, function (err, notifications) { + Notification.remove({source}, (err, notifications) => { if (err) { - log.error({err: err, source: source}, 'error removing notifications') + log.error({err, source}, 'error removing notifications') return cb(Boom.internal()) } diff --git a/server/resources/topic.js b/server/resources/topic.js index e98e57c8..08c6405c 100644 --- a/server/resources/topic.js +++ b/server/resources/topic.js @@ -21,7 +21,7 @@ function create (topic, memberId, cb) { Topic.create(topic, (err, _topic) => { if (err) { - log.error({err: err, topic: topic}, 'error creating topic') + log.error({err, topic}, 'error creating topic') return cb(Boom.internal()) } @@ -33,7 +33,7 @@ function update (id, topic, cb) { topic.updated = Date.now() Topic.findByIdAndUpdate(id, topic, {new: true}, (err, _topic) => { if (err) { - log.error({err: err, topic: id}, 'error updating topic') + log.error({err, topic: id}, 'error updating topic') return cb(Boom.internal()) } if (!_topic) { @@ -50,7 +50,7 @@ function get (id, query, cb) { const fields = query.fields Topic.findById(id, fields, (err, topic) => { if (err) { - log.error({err: err, topic: id}, 'error getting topic') + log.error({err, topic: id}, 'error getting topic') return cb(Boom.internal()) } if (!topic) { @@ -74,7 +74,7 @@ function getByMember (memberId, query, cb) { } Topic.find(filter, fields, options, (err, topics) => { if (err) { - log.error({err: err, member: memberId}, 'error getting topics') + log.error({err, member: memberId}, 'error getting topics') return cb(Boom.internal()) } @@ -93,7 +93,7 @@ function getByDueDate (start, end, query, cb) { } Topic.find(filter, fields, options, (err, topics) => { if (err) { - log.error({err: err, dates: filter}, 'error getting topics') + log.error({err, dates: filter}, 'error getting topics') return cb(Boom.internal()) } @@ -112,7 +112,7 @@ function getByTag (tagId, query, cb) { } Topic.find(filter, fields, options, (err, topics) => { if (err) { - log.error({err: err, tag: tagId}, 'error getting topics') + log.error({err, tag: tagId}, 'error getting topics') return cb(Boom.internal()) } @@ -144,7 +144,7 @@ function list (query, cb) { function remove (id, cb) { Topic.findByIdAndRemove(id, (err, topic) => { if (err) { - log.error({err: err, topic: id}, 'error deleting topic') + log.error({err, topic: id}, 'error deleting topic') return cb(Boom.internal()) } if (!topic) { @@ -169,7 +169,7 @@ function search (str, query, cb) { Topic.find(filter, fields, options, (err, exactTopics) => { if (err) { - log.error({err: err, filter: filter}, 'error getting topics') + log.error({err, filter}, 'error getting topics') return cb(Boom.internal()) } @@ -186,7 +186,7 @@ function search (str, query, cb) { Topic.find(filter, fields, options, (err, extendedTopics) => { if (err) { - log.error({err: err, filter: filter}, 'error getting topics') + log.error({err, filter}, 'error getting topics') return cb(Boom.internal()) } diff --git a/server/routes/auth/handlers.js b/server/routes/auth/handlers.js index 441426cb..8177a171 100644 --- a/server/routes/auth/handlers.js +++ b/server/routes/auth/handlers.js @@ -1,6 +1,6 @@ -var Joi = require('joi') -var log = require('../../helpers/logger') -var render = require('../../views/member') +const Joi = require('joi') +const log = require('../../helpers/logger') +const render = require('../../views/member') exports = module.exports diff --git a/server/routes/auth/index.js b/server/routes/auth/index.js index 599d1b8e..83c4f397 100644 --- a/server/routes/auth/index.js +++ b/server/routes/auth/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/chats/handlers.js b/server/routes/chats/handlers.js index dc12a291..d35cea14 100644 --- a/server/routes/chats/handlers.js +++ b/server/routes/chats/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/chat') +const Joi = require('joi') +const render = require('../../views/chat') exports = module.exports diff --git a/server/routes/chats/index.js b/server/routes/chats/index.js index 8c37c54a..cf00ce92 100644 --- a/server/routes/chats/index.js +++ b/server/routes/chats/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/comments/handlers.js b/server/routes/comments/handlers.js index 5817f81c..a6095704 100644 --- a/server/routes/comments/handlers.js +++ b/server/routes/comments/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/comment') +const Joi = require('joi') +const render = require('../../views/comment') exports = module.exports diff --git a/server/routes/comments/index.js b/server/routes/comments/index.js index a3e21910..556f2579 100644 --- a/server/routes/comments/index.js +++ b/server/routes/comments/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/communications/handlers.js b/server/routes/communications/handlers.js index 3d39e755..1dd1a6e8 100644 --- a/server/routes/communications/handlers.js +++ b/server/routes/communications/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/communication') +const Joi = require('joi') +const render = require('../../views/communication') exports = module.exports diff --git a/server/routes/communications/index.js b/server/routes/communications/index.js index b081b4dc..e746ef27 100644 --- a/server/routes/communications/index.js +++ b/server/routes/communications/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/companies/handlers.js b/server/routes/companies/handlers.js index fc2687e2..87755994 100644 --- a/server/routes/companies/handlers.js +++ b/server/routes/companies/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/company') +const Joi = require('joi') +const render = require('../../views/company') exports = module.exports @@ -172,7 +172,7 @@ exports.list = { ], handler: function (request, reply) { // Because in public views, when an event is selected, we want to address that participation - var selectedEvent = request.query && request.query.event + const selectedEvent = request.query && request.query.event reply(render(request.pre.companies, request.auth.isAuthenticated && !request.headers['Only-Public'], selectedEvent)) }, description: 'Gets all the companies' diff --git a/server/routes/companies/index.js b/server/routes/companies/index.js index 22909df4..01e07ee8 100644 --- a/server/routes/companies/index.js +++ b/server/routes/companies/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/events/handlers.js b/server/routes/events/handlers.js index 5b8bef7f..5b8729b3 100644 --- a/server/routes/events/handlers.js +++ b/server/routes/events/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/event') +const Joi = require('joi') +const render = require('../../views/event') exports = module.exports diff --git a/server/routes/events/index.js b/server/routes/events/index.js index 7ba2a4e1..dd41a732 100644 --- a/server/routes/events/index.js +++ b/server/routes/events/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/fonts.js b/server/routes/fonts.js index 1787964b..d7c828b8 100644 --- a/server/routes/fonts.js +++ b/server/routes/fonts.js @@ -1,16 +1,15 @@ -var server = require('../index').hapi +const server = require('../index').hapi -var fonts = { +const fonts = { method: 'GET', path: '/fonts/{path*}', - config: { - handler: { - directory: { - path: './public/fonts/', - listing: true, - index: true - } + handler: { + directory: { + path: './public/fonts/', + listing: true, + index: true } + } } diff --git a/server/routes/items/handlers.js b/server/routes/items/handlers.js index a7246854..780e7dd6 100644 --- a/server/routes/items/handlers.js +++ b/server/routes/items/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/item') +const Joi = require('joi') +const render = require('../../views/item') exports = module.exports diff --git a/server/routes/items/index.js b/server/routes/items/index.js index 494a175a..fbb340ac 100644 --- a/server/routes/items/index.js +++ b/server/routes/items/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/members/index.js b/server/routes/members/index.js index 60db33ed..490387b6 100644 --- a/server/routes/members/index.js +++ b/server/routes/members/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/messages/handlers.js b/server/routes/messages/handlers.js index d194c3e0..e08d3aed 100644 --- a/server/routes/messages/handlers.js +++ b/server/routes/messages/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/message') +const Joi = require('joi') +const render = require('../../views/message') exports = module.exports diff --git a/server/routes/messages/index.js b/server/routes/messages/index.js index 80f34312..1fc39fec 100644 --- a/server/routes/messages/index.js +++ b/server/routes/messages/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/notifications/handlers.js b/server/routes/notifications/handlers.js index 22df45eb..1d41b4bb 100644 --- a/server/routes/notifications/handlers.js +++ b/server/routes/notifications/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/notification') +const Joi = require('joi') +const render = require('../../views/notification') exports = module.exports diff --git a/server/routes/notifications/index.js b/server/routes/notifications/index.js index 7c66c2d4..bd3d279a 100644 --- a/server/routes/notifications/index.js +++ b/server/routes/notifications/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/roles/handlers.js b/server/routes/roles/handlers.js index 5c385cb1..4c523a59 100644 --- a/server/routes/roles/handlers.js +++ b/server/routes/roles/handlers.js @@ -1,6 +1,6 @@ -// var render = require('../../views/roles') +// const render = require('../../views/roles') -var roles = require('../../../options').roles +const roles = require('../../../options').roles exports = module.exports diff --git a/server/routes/roles/index.js b/server/routes/roles/index.js index 82419741..5f10da65 100644 --- a/server/routes/roles/index.js +++ b/server/routes/roles/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/search/handlers.js b/server/routes/search/handlers.js index b2b75ebd..8f69f2f0 100644 --- a/server/routes/search/handlers.js +++ b/server/routes/search/handlers.js @@ -1,9 +1,9 @@ -var Joi = require('joi') -var companiesRender = require('../../views/company') -var speakersRender = require('../../views/speaker') -var membersRender = require('../../views/member') -var topicsRender = require('../../views/topic') -var sessionsRender = require('../../views/session') +const Joi = require('joi') +const companiesRender = require('../../views/company') +const speakersRender = require('../../views/speaker') +const membersRender = require('../../views/member') +const topicsRender = require('../../views/topic') +const sessionsRender = require('../../views/session') exports = module.exports diff --git a/server/routes/search/index.js b/server/routes/search/index.js index 27db1f85..9a547143 100644 --- a/server/routes/search/index.js +++ b/server/routes/search/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/sessions/handlers.js b/server/routes/sessions/handlers.js index f81ebd49..ec51af90 100644 --- a/server/routes/sessions/handlers.js +++ b/server/routes/sessions/handlers.js @@ -1,8 +1,8 @@ -var Joi = require('joi') -var render = require('../../views/session') -var ical = require('../../helpers/ical') -var config = require('../../../config') -var fs = require('fs') +const Joi = require('joi') +const render = require('../../views/session') +const ical = require('../../helpers/ical') +const config = require('../../../config') +const fs = require('fs') exports = module.exports @@ -159,7 +159,7 @@ exports.getIcal = { }, tags: ['api', 'session'], handler: function (request, reply) { - var icalPath = config.ical.path + const icalPath = config.ical.path fs.exists(icalPath, function (exists) { if (exists) { diff --git a/server/routes/sessions/index.js b/server/routes/sessions/index.js index 6a7f580a..a527f565 100644 --- a/server/routes/sessions/index.js +++ b/server/routes/sessions/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/speakers/handlers.js b/server/routes/speakers/handlers.js index 1a8226e2..de19d8f4 100644 --- a/server/routes/speakers/handlers.js +++ b/server/routes/speakers/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/speaker') +const Joi = require('joi') +const render = require('../../views/speaker') exports = module.exports @@ -148,7 +148,7 @@ exports.list = { ], handler: function (request, reply) { // Because in public views, when an event is selected, we want to address that participation - var selectedEvent = request.query && request.query.event + const selectedEvent = request.query && request.query.event reply(render(request.pre.speakers, request.auth.isAuthenticated && !request.headers['Only-Public'], selectedEvent)) }, description: 'Gets all the speakers' diff --git a/server/routes/speakers/index.js b/server/routes/speakers/index.js index 55a7b009..39866c94 100644 --- a/server/routes/speakers/index.js +++ b/server/routes/speakers/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/subscriptions/handlers.js b/server/routes/subscriptions/handlers.js index 6331a837..b837e3fa 100644 --- a/server/routes/subscriptions/handlers.js +++ b/server/routes/subscriptions/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/subscription') +const Joi = require('joi') +const render = require('../../views/subscription') exports = module.exports diff --git a/server/routes/subscriptions/index.js b/server/routes/subscriptions/index.js index 460804ac..1c8da9ae 100644 --- a/server/routes/subscriptions/index.js +++ b/server/routes/subscriptions/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/tags/handlers.js b/server/routes/tags/handlers.js index fc29cd63..955c2744 100644 --- a/server/routes/tags/handlers.js +++ b/server/routes/tags/handlers.js @@ -1,5 +1,5 @@ -var Joi = require('joi') -var render = require('../../views/tag') +const Joi = require('joi') +const render = require('../../views/tag') exports = module.exports diff --git a/server/routes/tags/index.js b/server/routes/tags/index.js index 0f7b6ad3..c44994b2 100644 --- a/server/routes/tags/index.js +++ b/server/routes/tags/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/routes/test/index.js b/server/routes/test/index.js index e083987f..7e23edea 100644 --- a/server/routes/test/index.js +++ b/server/routes/test/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var socketServer = require('../../index').socket.server +const server = require('../../index').hapi +const socketServer = require('../../index').socket.server server.route({ method: 'GET', diff --git a/server/routes/topics/index.js b/server/routes/topics/index.js index d58fc355..b2096454 100644 --- a/server/routes/topics/index.js +++ b/server/routes/topics/index.js @@ -1,5 +1,5 @@ -var server = require('../../index').hapi -var handlers = require('./handlers') +const server = require('../../index').hapi +const handlers = require('./handlers') server.route({ method: 'GET', diff --git a/server/scripts/crono/reminder.js b/server/scripts/crono/reminder.js index 7ee1f069..ba65ddc5 100644 --- a/server/scripts/crono/reminder.js +++ b/server/scripts/crono/reminder.js @@ -1,5 +1,5 @@ -var CronJob = require('cron').CronJob -var reminder = require('./../../resources/reminder') +const CronJob = require('cron').CronJob +const reminder = require('./../../resources/reminder') module.exports = new CronJob({ cronTime: '00 00 */6 * * *', diff --git a/server/scripts/subscribeAll.js b/server/scripts/subscribeAll.js index 987548a5..962fa739 100644 --- a/server/scripts/subscribeAll.js +++ b/server/scripts/subscribeAll.js @@ -1,14 +1,14 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var Member = require('../db/member') -var Company = require('../db/company') -var Topic = require('../db/topic') -var Speaker = require('../db/speaker') -var Subscription = require('../db/subscription') +const Member = require('../db/member') +const Company = require('../db/company') +const Topic = require('../db/topic') +const Speaker = require('../db/speaker') +const Subscription = require('../db/subscription') mongoose.connect('mongodb://localhost/deck') -var coordinators +let coordinators // TODO creating for all coordinators Member.find({ From 31e4d5dd14a8a9e6166813254a328819aa20b200 Mon Sep 17 00:00:00 2001 From: Carlos Faria Date: Sun, 5 Feb 2017 16:24:16 +0000 Subject: [PATCH 5/8] Initial refactoring to ES2015 and support to Node 6 (#335) --- .travis.yml | 1 + Dockerfile | 2 +- config.js | 10 +- package.json | 37 +- server/db/access.js | 4 +- server/db/comment.js | 4 +- server/db/member.js | 4 +- server/helpers/dupKeyParser.js | 4 +- server/index.js | 42 +- server/resources/access.js | 30 +- server/resources/comment.js | 62 ++- server/resources/communication.js | 2 +- server/resources/company.js | 2 +- server/resources/event.js | 2 +- server/resources/item.js | 2 +- server/resources/member.js | 53 +- server/resources/session.js | 2 +- server/resources/speaker.js | 2 +- server/resources/tag.js | 4 +- server/resources/topic.js | 65 ++- server/test/access.js | 26 +- server/test/comment.js | 60 +-- server/test/member.js | 94 ++-- server/test/topic.js | 36 +- yarn.lock | 775 +++++++++++++----------------- 25 files changed, 606 insertions(+), 719 deletions(-) diff --git a/.travis.yml b/.travis.yml index c09642ca..6f88d874 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js node_js: - "0.10" + - "6" services: - mongodb before_script: diff --git a/Dockerfile b/Dockerfile index 0c543094..aa814538 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM mhart/alpine-node:0.10.48 +FROM mhart/alpine-node:6.9.5 LABEL Description="The awesome web app that supports awesome events" Vendor="SINFO" Version="0.0" diff --git a/config.js b/config.js index bfa984fa..c2f4e7d2 100644 --- a/config.js +++ b/config.js @@ -1,8 +1,8 @@ -var pack = require('./package') -var path = require('path') -var bunyanLogentries = require('bunyan-logentries') +const pack = require('./package') +const path = require('path') +const bunyanLogentries = require('bunyan-logentries') -var config = { +const config = { url: process.env.EVENTDECK_URL || 'http://localhost:8080', host: process.env.EVENTDECK_HOST || 'localhost', port: process.env.EVENTDECK_PORT || 8080, @@ -57,7 +57,7 @@ config.bunyan = { config.swagger = { pathPrefixSize: 2, - apiVersion: pack.version, + version: pack.version, basePath: config.url } diff --git a/package.json b/package.json index f3c95bfc..2efb2932 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eventdeck", - "version": "1.0.0", + "version": "0.0.0", "description": "eventdeck", "main": "server/index.js", "engines": { @@ -22,8 +22,8 @@ ] }, "pre-commit": [ - "lint" - // TODO: "test" + "lint", + "test" ], "repository": { "type": "git", @@ -43,30 +43,30 @@ "homepage": "https://github.com/sinfo/eventdeck", "dependencies": { "ampersand-array-checkbox-view": "0.0.4", - "ampersand-array-input-view": "^6.1.0", + "ampersand-array-input-view": "^3.0.3", "ampersand-checkbox-view": "^2.0.2", "ampersand-chosen-view": "https://github.com/sinfo/ampersand-chosen-view/tarball/master", - "ampersand-collection": "^2.0.0", + "ampersand-collection": "^1.3.17", "ampersand-collection-single-request-mixin": "https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master", "ampersand-date-view": "https://github.com/sinfo/ampersand-date-view/tarball/master", - "ampersand-dom": "^1.5.0", - "ampersand-form-view": "^7.0.0", + "ampersand-dom": "^1.2.1", + "ampersand-form-view": "^2.4.0", "ampersand-fullcalendar-view": "0.0.2", "ampersand-infinite-scroll": "^0.1.0", "ampersand-input-view": "^4.0.5", "ampersand-io": "^0.4.2", "ampersand-io-collection": "^0.1.6", "ampersand-io-model": "^0.3.1", - "ampersand-model": "^8.0.0", + "ampersand-model": "^4.1.0", "ampersand-pagination-mixin": "^0.1.0", "ampersand-pikaday-view": "0.0.1", - "ampersand-rest-collection": "^6.0.0", - "ampersand-router": "^4.0.0", + "ampersand-rest-collection": "^2.0.4", + "ampersand-router": "^1.0.7", "ampersand-select-view": "https://github.com/sinfo/ampersand-select-view/tarball/master", - "ampersand-state": "^5.0.2", - "ampersand-subcollection": "^2.0.3", - "ampersand-view": "^10.0.1", - "ampersand-view-switcher": "^2.1.0", + "ampersand-state": "^4.3.15", + "ampersand-subcollection": "^2.0.1", + "ampersand-view": "^7.4.2", + "ampersand-view-switcher": "^1.1.2", "andlog": "^1.0.0", "async": "^0.2.10", "boom": "^4.2.0", @@ -94,12 +94,11 @@ "markdown": "~0.5.0", "marked": "^0.3.6", "moment": "^2.17.1", - "mongoose": "^4.8.0", - "moonboots_hapi": "^7.0.0", - "pmx": "^0.3.20", + "mongoose": "^4.8.1", + "moonboots_hapi": "^4.0.0", "rand-token": "~0.2.1", "request": "^2.79.0", - "slug": "^0.9.1", + "slug": "^0.7.1", "socket.io": "^1.7.2", "socket.io-client": "^1.7.2", "stylizer": "^2.1.0", @@ -109,8 +108,8 @@ }, "devDependencies": { "code": "~4.0.0", - "nodemon": "^1.11.0", "lab": "^12.1.0", + "nodemon": "^1.11.0", "pre-commit": "^1.2.2", "snazzy": "^6.0.0", "standard": "^8.6.0" diff --git a/server/db/access.js b/server/db/access.js index a7a851c5..62f7edd6 100644 --- a/server/db/access.js +++ b/server/db/access.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +let schema = new mongoose.Schema({ member: String, thread: String, last: Date diff --git a/server/db/comment.js b/server/db/comment.js index 5bf27297..5781ba74 100644 --- a/server/db/comment.js +++ b/server/db/comment.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +let schema = new mongoose.Schema({ thread: String, subthread: String, member: String, diff --git a/server/db/member.js b/server/db/member.js index 126c6bbe..60e1815e 100644 --- a/server/db/member.js +++ b/server/db/member.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +const schema = new mongoose.Schema({ id: {type: String, unique: true}, name: String, img: String, diff --git a/server/helpers/dupKeyParser.js b/server/helpers/dupKeyParser.js index c440519e..95ff22aa 100644 --- a/server/helpers/dupKeyParser.js +++ b/server/helpers/dupKeyParser.js @@ -1,6 +1,6 @@ -module.exports = function (err) { +module.exports = (err) => { // this example is showing how to get the field `email` out of the err message - var field = err.split('index: deck.')[1].split('.$')[1] + let field = err.split('index: deck.')[1].split('.$')[1] // now we have `email_1 dup key` field = field.split(' dup key')[0] field = field.substring(0, field.lastIndexOf('_')) // returns email diff --git a/server/index.js b/server/index.js index 08ae316e..145e1ac2 100644 --- a/server/index.js +++ b/server/index.js @@ -1,8 +1,9 @@ -// init http monitoring -require('pmx').init() - const Hapi = require('hapi') +const Inert = require('inert') const Vision = require('vision') +const HapiSwagger = require('hapi-swagger') +const Moonboots = require('moonboots_hapi') +const HapiAuthCookie = require('hapi-auth-cookie') const IO = {server: require('socket.io'), client: require('socket.io-client')} const log = require('./helpers/logger') const config = require('../config') @@ -18,10 +19,11 @@ const server = module.exports.hapi = new Hapi.Server() server.connection({ host: config.host, port: config.port - // TODO: CORS in new Hapi version is disabled - it's needed ? - // { cors: config.cors } }) +// TODO: CORS in new Hapi version is disabled - it's needed ? +// { cors: config.cors } + require('./db') let internals = {} @@ -43,28 +45,24 @@ server.ext('onPreResponse', function (request, reply) { return reply() }) -// Set view template engine -server.register(Vision, (err) => { - if (err) throw err - - server.views({ - engines: { - hbs: require('handlebars') - }, - path: path.join(__dirname, 'templates') - }) -}) - server.register([ - {register: require('hapi-swagger'), options: config.swagger}, - {register: require('moonboots_hapi'), options: moonbootsConfig}, - {register: require('hapi-auth-cookie')}, + Inert, + Vision, + {register: HapiSwagger, options: config.swagger}, + {register: Moonboots, options: moonbootsConfig}, + {register: HapiAuthCookie}, {register: require('./plugins/images'), options: config.images}, - {register: require('./plugins/templates'), options: config.templates}, - {register: require('inert')} ], + {register: require('./plugins/templates'), options: config.templates}], (err) => { if (err) throw err + server.views({ + engines: { + hbs: require('handlebars') + }, + path: path.join(__dirname, 'templates') + }) + server.auth.strategy('session', 'cookie', { cookie: cookieConfig.name, password: cookieConfig.password, diff --git a/server/resources/access.js b/server/resources/access.js index 04725b38..c5384216 100644 --- a/server/resources/access.js +++ b/server/resources/access.js @@ -1,14 +1,14 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var Access = require('../db/access') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const Access = require('../db/access') server.method('access.save', save, {}) server.method('access.get', get, {}) function save (memberId, path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -16,16 +16,16 @@ function save (memberId, path, id, cb) { thread = threadFromPath(path, id) } - var filter = { member: memberId, thread: thread } - var access = { + const filter = { member: memberId, thread } + const access = { member: memberId, - thread: thread, + thread, last: Date.now() } - Access.findOneAndUpdate(filter, access, {upsert: true}, function (err, savedAccess) { + Access.findOneAndUpdate(filter, access, {upsert: true}, (err, savedAccess) => { if (err) { - log.error({err: err, access: access}) + log.error({err, access}) return cb(Boom.internal()) } @@ -34,7 +34,7 @@ function save (memberId, path, id, cb) { } function get (memberId, path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -42,11 +42,11 @@ function get (memberId, path, id, cb) { thread = threadFromPath(path, id) } - var filter = { member: memberId, thread: thread } + const filter = { member: memberId, thread } - Access.findOne(filter, function (err, savedAccess) { + Access.findOne(filter, (err, savedAccess) => { if (err) { - log.error({err: err, access: filter}) + log.error({err, access: filter}) return cb(Boom.internal()) } diff --git a/server/resources/comment.js b/server/resources/comment.js index faf80478..69008e63 100644 --- a/server/resources/comment.js +++ b/server/resources/comment.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var threadFromPath = require('../helpers/threadFromPath') -var Comment = require('../db/comment') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const threadFromPath = require('../helpers/threadFromPath') +const Comment = require('../db/comment') server.method('comment.create', create, {}) server.method('comment.update', update, {}) @@ -20,7 +20,7 @@ function create (comment, memberId, cb) { comment.posted = Date.now() comment.updated = Date.now() - Comment.create(comment, function (err, _comment) { + Comment.create(comment, (err, _comment) => { if (err) { log.error({err: err, comment: comment}, 'error creating comment') return cb(Boom.internal()) @@ -32,9 +32,8 @@ function create (comment, memberId, cb) { function update (id, comment, cb) { comment.updated = Date.now() - var filter = {_id: id} - Comment.findOneAndUpdate(filter, comment, function (err, _comment) { + Comment.findByIdAndUpdate(id, comment, {new: true}, (err, _comment) => { if (err) { log.error({err: err, comment: id}, 'error updating comment') return cb(Boom.internal()) @@ -50,10 +49,9 @@ function update (id, comment, cb) { function get (id, query, cb) { cb = cb || query - var filter = {_id: id} - var fields = parser(query.fields) + const fields = parser(query.fields) - Comment.findOne(filter, fields, function (err, comment) { + Comment.findById(id, fields, (err, comment) => { if (err) { log.error({err: err, comment: id}, 'error getting comment') return cb(Boom.internal()) @@ -69,14 +67,13 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = {member: memberId} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Comment.find(filter, fields, options, function (err, comments) { + Comment.find({member: memberId}, fields, options, (err, comments) => { if (err) { log.error({err: err, member: memberId}, 'error getting comments') return cb(Boom.internal()) @@ -88,10 +85,10 @@ function getByMember (memberId, query, cb) { function getByThread (path, id, query, cb) { cb = cb || query - var thread = threadFromPath(path, id) - var filter = {thread: thread} - var fields = parser(query.fields) - Comment.find(filter, fields, filter, function (err, comments) { + const thread = threadFromPath(path, id) + const filter = {thread: thread} + const fields = parser(query.fields) + Comment.find(filter, fields, filter, (err, comments) => { if (err) { log.error({err: err, thread: thread}, 'error getting comments') return cb(Boom.internal()) @@ -103,10 +100,10 @@ function getByThread (path, id, query, cb) { function getBySubthread (path, id, query, cb) { cb = cb || query - var subthread = threadFromPath(path, id) - var filter = {subthread: subthread} - var fields = parser(query.fields) - Comment.find(filter, fields, filter, function (err, comments) { + const subthread = threadFromPath(path, id) + const filter = {subthread: subthread} + const fields = parser(query.fields) + Comment.find(filter, fields, filter, (err, comments) => { if (err) { log.error({err: err, subthread: subthread}, 'error getting comments') return cb(Boom.internal()) @@ -119,14 +116,13 @@ function getBySubthread (path, id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Comment.find(filter, fields, options, function (err, comments) { + Comment.find({}, fields, options, (err, comments) => { if (err) { log.error({err: err}, 'error getting all comments') return cb(Boom.internal()) @@ -137,9 +133,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {_id: id} - - Comment.findOneAndRemove(filter, function (err, comment) { + Comment.findByIdAndRemove(id, (err, comment) => { if (err) { log.error({err: err, comment: id}, 'error deleting comment') return cb(Boom.internal()) @@ -154,7 +148,7 @@ function remove (id, cb) { } function removeByThread (path, id, cb) { - var thread = '' + let thread = '' if (typeof (id) === 'function') { thread = path cb = id @@ -162,8 +156,8 @@ function removeByThread (path, id, cb) { thread = threadFromPath(path, id) } - var filter = {thread: thread} - Comment.remove(filter, function (err, comments) { + const filter = {thread: thread} + Comment.remove(filter, (err, comments) => { if (err) { log.error({err: err, thread: thread}, 'error getting comments') return cb(Boom.internal()) diff --git a/server/resources/communication.js b/server/resources/communication.js index 3bf24d8b..cddd66ee 100644 --- a/server/resources/communication.js +++ b/server/resources/communication.js @@ -34,7 +34,7 @@ function create (communication, memberId, cb) { function update (id, communication, cb) { communication.updated = Date.now() var filter = {_id: id} - Communication.findOneAndUpdate(filter, communication, function (err, _communication) { + Communication.findOneAndUpdate(filter, communication, {new: true}, function (err, _communication) { if (err) { log.error({err: err, communication: id}, 'error updating communication') return cb(Boom.internal()) diff --git a/server/resources/company.js b/server/resources/company.js index f87b0428..ef7d28a3 100644 --- a/server/resources/company.js +++ b/server/resources/company.js @@ -36,7 +36,7 @@ function create (company, memberId, cb) { function update (id, company, cb) { company.updated = Date.now() - Company.findOneAndUpdate({id: id}, company, function (err, _company) { + Company.findOneAndUpdate({id: id}, company, {new: true}, function (err, _company) { if (err) { log.error({err: err, company: id}, 'error updating company') return cb(Boom.internal()) diff --git a/server/resources/event.js b/server/resources/event.js index b2294de7..6e7964b8 100644 --- a/server/resources/event.js +++ b/server/resources/event.js @@ -34,7 +34,7 @@ function create (event, memberId, cb) { function update (id, event, cb) { event.updated = Date.now() - eventModel.findOneAndUpdate({id: id}, event, function (err, _event) { + eventModel.findOneAndUpdate({id: id}, event, {new: true}, function (err, _event) { if (err) { log.error({err: err, event: id}, 'error updating event') return cb(Boom.internal()) diff --git a/server/resources/item.js b/server/resources/item.js index 0b32b6de..e1e47b88 100644 --- a/server/resources/item.js +++ b/server/resources/item.js @@ -27,7 +27,7 @@ function create (item, memberId, cb) { function update (id, item, cb) { var filter = { id: id } - Item.findOneAndUpdate(filter, item, function (err, _item) { + Item.findOneAndUpdate(filter, item, {new: true}, (err, _item) => { if (err) { log.error({err: err, item: id}, 'error updating item') return cb(Boom.internal()) diff --git a/server/resources/member.js b/server/resources/member.js index 77d7e7b1..41c7748f 100644 --- a/server/resources/member.js +++ b/server/resources/member.js @@ -1,13 +1,13 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var threadFromPath = require('../helpers/threadFromPath') -var parser = require('../helpers/fieldsParser') -var dupKeyParser = require('../helpers/dupKeyParser') -var randtoken = require('rand-token') -var Member = require('../db/member') -var config = require('../../config') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const threadFromPath = require('../helpers/threadFromPath') +const parser = require('../helpers/fieldsParser') +const dupKeyParser = require('../helpers/dupKeyParser') +const randtoken = require('rand-token') +const Member = require('../db/member') +const config = require('../../config') // TODO: GET TARGETS server.method('member.create', create, {}) @@ -21,12 +21,11 @@ server.method('member.search', search, {}) function create (member, cb) { member.id = slug(member.id || member.name, '.').toLowerCase() - - Member.create(member, function (err, _member) { + Member.create(member, (err, _member) => { if (err) { if (err.code === 11000) { log.warn({err: err, requestedMember: member.id}, 'member is a duplicate') - return cb(Boom.conflict(dupKeyParser(err.err) + ' is a duplicate')) + return cb(Boom.conflict(dupKeyParser(err.msg) + ' is a duplicate')) } log.error({err: err, member: member}, 'error creating member') @@ -38,7 +37,7 @@ function create (member, cb) { } function update (id, member, cb) { - Member.findOneAndUpdate({id: id}, member, function (err, _member) { + Member.findOneAndUpdate({id: id}, member, {new: true}, (err, _member) => { if (err && err !== {}) { log.error({err: err, member: id}, 'error updating member') return cb(Boom.badRequest('error updating member')) @@ -53,10 +52,9 @@ function update (id, member, cb) { } function createLoginCode (id, cb) { - var loginCode = randtoken.generate(config.loginCodes.length) - var code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} - var filter = {id: id} - Member.findOneAndUpdate(filter, code, function (err, _member) { + const loginCode = randtoken.generate(config.loginCodes.length) + const code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} + Member.findOneAndUpdate({id: id}, code, function (err, _member) { if (err) { log.error({err: err, member: id}, 'error creating login code for member') return cb(Boom.internal()) @@ -75,9 +73,9 @@ function createLoginCode (id, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) - var filter = {$or: [{id: id}, {'facebook.id': id}]} - Member.findOne(filter, fields, function (err, member) { + const fields = parser(query.fields) + const filter = {$or: [{id: id}, {'facebook.id': id}]} + Member.findOne(filter, fields, (err, member) => { if (err) { log.error({err: err, member: id}, 'error getting member') return cb(Boom.internal()) @@ -93,16 +91,16 @@ function get (id, query, cb) { function getSubscribers (path, id, query, cb) { cb = cb || query - var thread = threadFromPath(path, id) + const thread = threadFromPath(path, id) - var filter = {$or: [{'subscriptions.threads': thread}, {'subscriptions.all': true}]} - var fields = parser(query.fields) - var options = { + const filter = {$or: [{'subscriptions.threads': thread}, {'subscriptions.all': true}]} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Member.find(filter, fields, options, function (err, members) { + Member.find(filter, fields, options, (err, members) => { if (err) { log.error({err: err, thread: thread}, 'error getting members') return cb(Boom.internal()) @@ -146,8 +144,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {id: id} - Member.findOneAndRemove(filter, function (err, member) { + Member.findOneAndRemove({id: id}, function (err, member) { if (err) { log.error({err: err, member: id}, 'error deleting member') return cb(Boom.internal()) diff --git a/server/resources/session.js b/server/resources/session.js index 23195d57..67b31676 100644 --- a/server/resources/session.js +++ b/server/resources/session.js @@ -32,7 +32,7 @@ function create (session, memberId, cb) { function update (id, session, cb) { session.updated = Date.now() var filter = {id: id} - Session.findOneAndUpdate(filter, session, function (err, _session) { + Session.findOneAndUpdate(filter, session, {new: true}, function (err, _session) { if (err) { log.error({err: err, session: id}, 'error updating session') return cb(Boom.internal()) diff --git a/server/resources/speaker.js b/server/resources/speaker.js index e91b4a7b..066aaa3d 100644 --- a/server/resources/speaker.js +++ b/server/resources/speaker.js @@ -36,7 +36,7 @@ function create (speaker, memberId, cb) { function update (id, speaker, cb) { speaker.updated = Date.now() var filter = {id: id} - Speaker.findOneAndUpdate(filter, speaker, function (err, _speaker) { + Speaker.findOneAndUpdate(filter, speaker, {new: true}, function (err, _speaker) { if (err) { log.error({err: err, speaker: id}, 'error updating speaker') return cb(Boom.internal()) diff --git a/server/resources/tag.js b/server/resources/tag.js index d3ce975d..93b73931 100644 --- a/server/resources/tag.js +++ b/server/resources/tag.js @@ -14,7 +14,7 @@ server.method('tag.remove', remove, {}) function create (tag, memberId, cb) { tag.id = slug(tag.id || tag.name).toLowerCase() - Tag.create(tag, function (err, _tag) { + Tag.create(tag, (err, _tag) => { if (err) { log.error({err: err, tag: tag}, 'error creating tag') return cb(Boom.internal()) @@ -26,7 +26,7 @@ function create (tag, memberId, cb) { function update (id, tag, cb) { var filter = {id: id} - Tag.findOneAndUpdate(filter, tag, function (err, _tag) { + Tag.findOneAndUpdate(filter, tag, {new: true}, (err, _tag) => { if (err) { log.error({err: err, tag: id}, 'error updating tag') return cb(Boom.internal()) diff --git a/server/resources/topic.js b/server/resources/topic.js index b415f87c..e98e57c8 100644 --- a/server/resources/topic.js +++ b/server/resources/topic.js @@ -1,8 +1,8 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Topic = require('../db/topic') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Topic = require('../db/topic') server.method('topic.create', create, {}) server.method('topic.update', update, {}) @@ -19,7 +19,7 @@ function create (topic, memberId, cb) { topic.updated = Date.now() topic.author = memberId - Topic.create(topic, function (err, _topic) { + Topic.create(topic, (err, _topic) => { if (err) { log.error({err: err, topic: topic}, 'error creating topic') return cb(Boom.internal()) @@ -31,8 +31,7 @@ function create (topic, memberId, cb) { function update (id, topic, cb) { topic.updated = Date.now() - var filter = { _id: id } - Topic.findOneAndUpdate(filter, topic, function (err, _topic) { + Topic.findByIdAndUpdate(id, topic, {new: true}, (err, _topic) => { if (err) { log.error({err: err, topic: id}, 'error updating topic') return cb(Boom.internal()) @@ -48,9 +47,8 @@ function update (id, topic, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = query.fields - var filter = { _id: id } - Topic.findOne(filter, fields, function (err, topic) { + const fields = query.fields + Topic.findById(id, fields, (err, topic) => { if (err) { log.error({err: err, topic: id}, 'error getting topic') return cb(Boom.internal()) @@ -67,14 +65,14 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = { targets: { $in: [memberId] } } - var fields = query.fields - var options = { + const filter = { targets: { $in: [memberId] } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, member: memberId}, 'error getting topics') return cb(Boom.internal()) @@ -86,14 +84,14 @@ function getByMember (memberId, query, cb) { function getByDueDate (start, end, query, cb) { cb = cb || query - var filter = { duedate: { $gte: start, $lt: end } } - var fields = query.fields - var options = { + const filter = { duedate: { $gte: start, $lt: end } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, dates: filter}, 'error getting topics') return cb(Boom.internal()) @@ -105,14 +103,14 @@ function getByDueDate (start, end, query, cb) { function getByTag (tagId, query, cb) { cb = cb || query - var filter = { tags: { $in: [tagId] } } - var fields = query.fields - var options = { + const filter = { tags: { $in: [tagId] } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err, tag: tagId}, 'error getting topics') return cb(Boom.internal()) @@ -125,15 +123,15 @@ function getByTag (tagId, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const filter = {} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, topics) { + Topic.find(filter, fields, options, (err, topics) => { if (err) { log.error({err: err}, 'error getting all topics') return cb(Boom.internal()) @@ -144,8 +142,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = { _id: id } - Topic.findOneAndRemove(filter, function (err, topic) { + Topic.findByIdAndRemove(id, (err, topic) => { if (err) { log.error({err: err, topic: id}, 'error deleting topic') return cb(Boom.internal()) @@ -162,15 +159,15 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,kind') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,kind') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) } - Topic.find(filter, fields, options, function (err, exactTopics) { + Topic.find(filter, fields, options, (err, exactTopics) => { if (err) { log.error({err: err, filter: filter}, 'error getting topics') return cb(Boom.internal()) @@ -187,7 +184,7 @@ function search (str, query, cb) { ] } - Topic.find(filter, fields, options, function (err, extendedTopics) { + Topic.find(filter, fields, options, (err, extendedTopics) => { if (err) { log.error({err: err, filter: filter}, 'error getting topics') return cb(Boom.internal()) diff --git a/server/test/access.js b/server/test/access.js index 2304eb5c..3472b173 100644 --- a/server/test/access.js +++ b/server/test/access.js @@ -1,27 +1,29 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var accessA = { +const accessA = { member: 'john.doe', thread: 'company-example', last: Date.now } -lab.experiment('Access', function () { - lab.test('Saving Access', function (done) { - server.methods.access.save(accessA.member, '/companies', accessA.member, function (err, result) { - Code.expect(err, 'err').to.be.null +lab.experiment('Access', () => { + lab.before((done) => setTimeout(() => done(), 1000)) + + lab.test('Saving Access', (done) => { + server.methods.access.save(accessA.member, '/companies', accessA.member, (err, result) => { + Code.expect(err, 'err').to.be.null() done() }) }) - lab.test('Getting Access', function (done) { - server.methods.access.get(accessA.member, '/companies', accessA.member, function (err, result) { - Code.expect(err, 'err').to.be.null + lab.test('Getting Access', (done) => { + server.methods.access.get(accessA.member, '/companies', accessA.member, (err, result) => { + Code.expect(err, 'err').to.be.null() Code.expect(result.member).to.equal(accessA.member) done() }) diff --git a/server/test/comment.js b/server/test/comment.js index 9bc84173..7ea96d50 100644 --- a/server/test/comment.js +++ b/server/test/comment.js @@ -1,11 +1,11 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var credentials = { +const credentials = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,28 +14,28 @@ var credentials = { }] } -var commentA = { +const commentA = { thread: 'company-example', subthread: 'company-example-subexample', - text: 'this is an example of a comentary' + text: 'this is an example of a comment' } -var changesToA = { +const changesToA = { text: 'This is an example of an example of another example.' } -var commId +let commId -lab.experiment('Comment', function () { - lab.test('Create', function (done) { - var options = { +lab.experiment('Comment', () => { + lab.test('Create', (done) => { + const options = { method: 'POST', url: '/api/comments', credentials: credentials, payload: commentA } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(201) Code.expect(result).to.be.instanceof(Object) @@ -49,15 +49,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('List all', function (done) { - var options = { + lab.test('List all', (done) => { + const options = { method: 'GET', url: '/api/comments', credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Array) @@ -68,15 +68,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('Get one', function (done) { - var options = { + lab.test('Get one', (done) => { + const options = { method: 'GET', url: '/api/comments/' + commId, credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -88,16 +88,16 @@ lab.experiment('Comment', function () { }) }) - lab.test('Update', function (done) { - var options = { + lab.test('Update', (done) => { + const options = { method: 'PUT', url: '/api/comments/' + commId, credentials: credentials, payload: changesToA } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -109,15 +109,15 @@ lab.experiment('Comment', function () { }) }) - lab.test('Delete', function (done) { - var options = { + lab.test('Delete', (done) => { + const options = { method: 'DELETE', url: '/api/comments/' + commId, credentials: credentials } - server.inject(options, function (response) { - var result = response.result + server.inject(options, (response) => { + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) diff --git a/server/test/member.js b/server/test/member.js index 870e1e89..e4df6f8c 100644 --- a/server/test/member.js +++ b/server/test/member.js @@ -1,11 +1,12 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') +const expect = Code.expect -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var memberA = { +const memberA = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,28 +15,19 @@ var memberA = { }] } -var changesMemberA = { +const changesMemberA = { name: 'Jane Doe' } -var credentials = memberA +const credentials = memberA -lab.experiment('Members', function () { - lab.test('Create', function (done) { - var options = { - method: 'POST', - url: '/api/members', - credentials: credentials, - payload: memberA - } - - server.inject(options, function (response) { - var result = response.result - - Code.expect(response.statusCode).to.equal(201) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(memberA.name) +lab.experiment('Members', () => { + lab.test('Create', (done) => { + server.methods.member.create(memberA, (err, result) => { + expect(err).to.be.null() + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(memberA.name) done() }) @@ -61,46 +53,46 @@ lab.experiment('Members', function () { }) }) - lab.test('Get me', function (done) { - var options = { + lab.test('Get me', (done) => { + let options = { method: 'GET', url: '/api/members/me', credentials: credentials } server.inject(options, function (response) { - var result = response.result + let result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(credentials.id) - Code.expect(result.name).to.equal(credentials.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(credentials.id) + expect(result.name).to.equal(credentials.name) done() }) }) - lab.test('Get one', function (done) { - var options = { + lab.test('Get one', (done) => { + let options = { method: 'GET', url: '/api/members/' + memberA.id, credentials: credentials } server.inject(options, function (response) { - var result = response.result + let result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(memberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(memberA.name) done() }) }) - lab.test('Update', function (done) { - var options = { + lab.test('Update', (done) => { + const options = { method: 'PUT', url: '/api/members/' + memberA.id, credentials: credentials, @@ -108,31 +100,31 @@ lab.experiment('Members', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(changesMemberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(changesMemberA.name) done() }) }) - lab.test('Delete', function (done) { - var options = { + lab.test('Delete', (done) => { + const options = { method: 'DELETE', url: '/api/members/' + memberA.id, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result - Code.expect(response.statusCode).to.equal(200) - Code.expect(result).to.be.instanceof(Object) - Code.expect(result.id).to.equal(memberA.id) - Code.expect(result.name).to.equal(changesMemberA.name) + expect(response.statusCode).to.equal(200) + expect(result).to.be.instanceof(Object) + expect(result.id).to.equal(memberA.id) + expect(result.name).to.equal(changesMemberA.name) done() }) diff --git a/server/test/topic.js b/server/test/topic.js index c87a8c37..5b7f9052 100644 --- a/server/test/topic.js +++ b/server/test/topic.js @@ -1,11 +1,11 @@ -var Lab = require('lab') -var Code = require('code') +const Lab = require('lab') +const Code = require('code') -var server = require('../').hapi +const server = require('../').hapi -var lab = exports.lab = Lab.script() +const lab = exports.lab = Lab.script() -var credentials = { +const credentials = { id: 'john.doe', name: 'John Doe', participations: [{ @@ -14,20 +14,20 @@ var credentials = { }] } -var topicA = { +const topicA = { text: 'hey', kind: 'idea' } -var topicAid +let topicAid -var changesTopicA = { +const changesTopicA = { text: 'Howdy' } lab.experiment('Topic', function () { lab.test('Create', function (done) { - var options = { + const options = { method: 'POST', url: '/api/topics', credentials: credentials, @@ -35,7 +35,7 @@ lab.experiment('Topic', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(201) Code.expect(result).to.be.instanceof(Object) @@ -49,14 +49,14 @@ lab.experiment('Topic', function () { }) lab.test('List all', function (done) { - var options = { + const options = { method: 'GET', url: '/api/topics', credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Array) @@ -68,14 +68,14 @@ lab.experiment('Topic', function () { }) lab.test('Get one', function (done) { - var options = { + const options = { method: 'GET', url: '/api/topics/' + topicAid, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -88,7 +88,7 @@ lab.experiment('Topic', function () { }) lab.test('Update', function (done) { - var options = { + const options = { method: 'PUT', url: '/api/topics/' + topicAid, credentials: credentials, @@ -96,7 +96,7 @@ lab.experiment('Topic', function () { } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) @@ -108,14 +108,14 @@ lab.experiment('Topic', function () { }) lab.test('Delete', function (done) { - var options = { + const options = { method: 'DELETE', url: '/api/topics/' + topicAid, credentials: credentials } server.inject(options, function (response) { - var result = response.result + const result = response.result Code.expect(response.statusCode).to.equal(200) Code.expect(result).to.be.instanceof(Object) diff --git a/yarn.lock b/yarn.lock index 58eec7ec..08a73bba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24,6 +24,13 @@ JSONStream@~0.6.4: jsonparse "0.0.5" through "~2.2.7" +JSONStream@~0.7.1: + version "0.7.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.7.4.tgz#734290e41511eea7c2cfe151fbf9a563a97b9786" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + JSONStream@~0.8.3, JSONStream@~0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" @@ -129,6 +136,13 @@ ammo@2.x.x: boom "4.x.x" hoek "4.x.x" +amp-bind@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-bind/-/amp-bind-1.0.1.tgz#985655aaa1c733e877e4a73fea976f985a8d4770" + dependencies: + amp-is-function "^1.0.0" + amp-is-object "^1.0.0" + amp-clone@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-clone/-/amp-clone-1.0.1.tgz#d9053062a75a91d871f12daf5a40b4514949a20a" @@ -137,7 +151,7 @@ amp-clone@^1.0.1: amp-is-array "^1.0.0" amp-is-object "^1.0.0" -amp-extend@^1.0.0: +amp-extend@^1.0.0, amp-extend@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-extend/-/amp-extend-1.0.1.tgz#6c543bee629c116b831857642f0ff940a15ae1ff" dependencies: @@ -151,7 +165,7 @@ amp-is-date@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-date/-/amp-is-date-1.0.1.tgz#bcac2e9b3853b4f415b0d46c3822819cf3e961ce" -amp-is-function@^1.0.0: +amp-is-function@^1.0.0, amp-is-function@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-function/-/amp-is-function-1.0.1.tgz#8b5412ff5e61d13a94aa449ac01372ad0d2298c0" @@ -159,7 +173,11 @@ amp-is-object@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/amp-is-object/-/amp-is-object-1.0.1.tgz#0a8cb5956b9112a16a73677e8cbad37bba247702" -amp-result@^1.0.0: +amp-is-regexp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amp-is-regexp/-/amp-is-regexp-1.0.1.tgz#9c9ed8f29361fb5c8358e0c6f00ad3fe8965769b" + +amp-result@^1.0.0, amp-result@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/amp-result/-/amp-result-1.1.0.tgz#abcac38062a044d576ab875b45321b113702a424" dependencies: @@ -175,14 +193,15 @@ ampersand-array-checkbox-view@0.0.4: ampersand-view "^7.0.0" underscore "^1.7.0" -ampersand-array-input-view@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ampersand-array-input-view/-/ampersand-array-input-view-6.1.0.tgz#a8b825735651c8473f54064eb8d9c3d976fd7995" +ampersand-array-input-view@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/ampersand-array-input-view/-/ampersand-array-input-view-3.0.4.tgz#1c23c3d1fc46cab893cc658091a648bbbff2f3ec" dependencies: - ampersand-input-view "^7.0.0" - ampersand-version "^1.0.2" - ampersand-view "^10.0.1" - lodash "^4.15.0" + ampersand-input-view "^2.0.0" + ampersand-version "^1.0.0" + ampersand-view "^7.0.0" + lodash.assign "^3.0.0" + lodash.without "^3.1.0" ampersand-checkbox-view@^2.0.0, ampersand-checkbox-view@^2.0.2: version "2.0.2" @@ -212,12 +231,6 @@ ampersand-class-extend@^1.0.0, ampersand-class-extend@^1.0.2: dependencies: lodash.assign "^3.0.0" -ampersand-class-extend@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ampersand-class-extend/-/ampersand-class-extend-2.0.0.tgz#52895ffa59217634a6188fd184b1048f5d808aff" - dependencies: - lodash "^4.11.1" - ampersand-collection-lodash-mixin@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-2.0.1.tgz#31d85f39b5969ef7c136e0b5035dbed4511cfd70" @@ -254,20 +267,13 @@ ampersand-collection-lodash-mixin@^2.0.0: lodash.take "^3.0.0" lodash.without "^3.1.0" -ampersand-collection-lodash-mixin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection-lodash-mixin/-/ampersand-collection-lodash-mixin-4.0.0.tgz#0ed047a8e73cb070bc36b678a463e382ac8db6dd" +ampersand-collection-rest-mixin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ampersand-collection-rest-mixin/-/ampersand-collection-rest-mixin-3.0.1.tgz#3f71bb792a08a5c0ca5ebe8dc7f0043883065f5e" dependencies: + ampersand-sync "^2.0.0" ampersand-version "^1.0.0" - lodash "^4.6.1" - -ampersand-collection-rest-mixin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection-rest-mixin/-/ampersand-collection-rest-mixin-6.0.0.tgz#38568d3e522a9a78ae6e5814d4082dc22765576f" - dependencies: - ampersand-sync "^5.0.0" - ampersand-version "^1.0.2" - lodash "^4.11.1" + extend-object "^1.0.0" "ampersand-collection-single-request-mixin@https://github.com/franciscocgoncalves/ampersand-collection-single-request-mixin/tarball/master": version "0.0.1" @@ -277,6 +283,13 @@ ampersand-collection-rest-mixin@^6.0.0: ampersand-version "^1.0.0" lodash.assign "^3.0.0" +ampersand-collection-underscore-mixin@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ampersand-collection-underscore-mixin/-/ampersand-collection-underscore-mixin-1.0.4.tgz#3bd4f0a78654e30fe71fa43793f34ee7dae95f67" + dependencies: + ampersand-version "^1.0.0" + underscore "^1.6.0" + ampersand-collection-view@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-1.4.0.tgz#f875162c4b7ffd64c55794e062060681d48bc025" @@ -290,16 +303,7 @@ ampersand-collection-view@^1.4.0: lodash.invoke "^3.1.0" lodash.pick "^3.1.0" -ampersand-collection-view@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ampersand-collection-view/-/ampersand-collection-view-2.0.2.tgz#8990bf81b5a35f3ab87eecffafc61bb2fabe356b" - dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" - ampersand-version "^1.0.0" - lodash "^4.11.1" - -ampersand-collection@^1.3.17: +ampersand-collection@^1.3.0, ampersand-collection@^1.3.17: version "1.6.1" resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-1.6.1.tgz#430f654cf702e19d1dac6cd211755d503172a0c9" dependencies: @@ -310,15 +314,6 @@ ampersand-collection@^1.3.17: lodash.bind "^3.1.0" lodash.isarray "^3.0.1" -ampersand-collection@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ampersand-collection/-/ampersand-collection-2.0.0.tgz#e82dcf3e5a5ad0687fbb381cc9335c647ab749bc" - dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" - ampersand-version "^1.0.2" - lodash "^4.11.1" - "ampersand-date-view@https://github.com/sinfo/ampersand-date-view/tarball/master": version "0.0.7" resolved "https://github.com/sinfo/ampersand-date-view/tarball/master#fdf294d7d476d8566f7282a48c8221ab546eea9d" @@ -339,7 +334,7 @@ ampersand-dom-bindings@^3.5.0: lodash.partial "^3.1.1" matches-selector "^1.0.0" -ampersand-dom@^1.1.0, ampersand-dom@^1.2.1, ampersand-dom@^1.2.5, ampersand-dom@^1.2.7, ampersand-dom@^1.5.0: +ampersand-dom@^1.1.0, ampersand-dom@^1.2.1, ampersand-dom@^1.2.5, ampersand-dom@^1.2.7: version "1.5.0" resolved "https://registry.yarnpkg.com/ampersand-dom/-/ampersand-dom-1.5.0.tgz#78e36f8b38aa5700f1a129d3423560a6c0523808" dependencies: @@ -358,14 +353,7 @@ ampersand-events@^1.0.1, ampersand-events@^1.1.1: lodash.once "^3.0.0" lodash.uniqueid "^3.0.0" -ampersand-events@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ampersand-events/-/ampersand-events-2.0.2.tgz#f402bc2e18305fabd995dbdcd3b7057bbdd7d347" - dependencies: - ampersand-version "^1.0.2" - lodash "^4.6.1" - -ampersand-form-view@^2.2.0: +ampersand-form-view@^2.2.0, ampersand-form-view@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-2.4.0.tgz#48956e000d752260398548e7c5583a67f8542b2b" dependencies: @@ -375,14 +363,6 @@ ampersand-form-view@^2.2.0: ampersand-version "^1.0.0" backbone-events-standalone "0.2.2" -ampersand-form-view@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ampersand-form-view/-/ampersand-form-view-7.0.0.tgz#63a71ea3fe9acb36a756659b9ed8ac43c33bbee1" - dependencies: - ampersand-version "^1.0.0" - ampersand-view "^10.0.1" - lodash "^4.11.1" - ampersand-fullcalendar-view@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/ampersand-fullcalendar-view/-/ampersand-fullcalendar-view-0.0.2.tgz#1ed1d8fb3d7d0edf919f8500c87a6cf345dae358" @@ -398,6 +378,12 @@ ampersand-infinite-scroll@^0.1.0: ampersand-view "^8.0.0" lodash.assign "^3.2.0" +ampersand-input-view@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-2.1.0.tgz#2a867eb57ca51d458551a6f3910430398763b5f2" + dependencies: + ampersand-view "^7.0.0" + ampersand-input-view@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-3.1.1.tgz#3e5e832e7f373ec5e94c43ea5d6d39c6c91d7c5b" @@ -414,15 +400,6 @@ ampersand-input-view@^4.0.5: ampersand-view "^7.2.1" matches-selector "^1.0.0" -ampersand-input-view@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/ampersand-input-view/-/ampersand-input-view-7.0.0.tgz#ab1fb6b022531aed455e6071dcffb484988b11bf" - dependencies: - ampersand-dom "^1.2.7" - ampersand-version "^1.0.1" - ampersand-view "^10.0.0" - matches-selector "^1.0.0" - ampersand-io-collection@^0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ampersand-io-collection/-/ampersand-io-collection-0.1.6.tgz#d3b54697b50cea444ba06c7ff3a83261166f6026" @@ -446,14 +423,14 @@ ampersand-io@^0.4.2: ampersand-class-extend "^1.0.2" socket.io-client "^1.3.5" -ampersand-model@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ampersand-model/-/ampersand-model-8.0.0.tgz#85240edba92ddad46a85db3acc7ae408dccf57c5" +ampersand-model@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ampersand-model/-/ampersand-model-4.1.0.tgz#735f99cbd8851f796436f15a92ad6133d9259b19" dependencies: - ampersand-state "^5.0.1" - ampersand-sync "^5.0.0" - ampersand-version "^1.0.2" - lodash "^4.11.1" + ampersand-state "^4.4.4" + ampersand-sync "^2.0.4" + ampersand-version "^1.0.0" + underscore "^1.6.0" ampersand-pagination-mixin@^0.1.0: version "0.1.0" @@ -470,23 +447,27 @@ ampersand-pikaday-view@0.0.1: ampersand-view "^7.0.0" pikaday "^1.3.1" -ampersand-rest-collection@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/ampersand-rest-collection/-/ampersand-rest-collection-6.0.0.tgz#a051267979b2cf7606a38383d9ee96d121a628f3" +ampersand-rest-collection@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/ampersand-rest-collection/-/ampersand-rest-collection-2.0.4.tgz#9b63130938d9ede70374c3d53d83d8267d75ea72" dependencies: - ampersand-collection "^2.0.0" - ampersand-collection-lodash-mixin "^4.0.0" - ampersand-collection-rest-mixin "^6.0.0" - ampersand-version "^1.0.2" + ampersand-collection "^1.3.0" + ampersand-collection-rest-mixin "^3.0.0" + ampersand-collection-underscore-mixin "^1.0.0" + ampersand-version "^1.0.0" -ampersand-router@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ampersand-router/-/ampersand-router-4.0.0.tgz#1502c7ba6734af0394e7d8ab6780bcd543ea1338" +ampersand-router@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/ampersand-router/-/ampersand-router-1.0.7.tgz#0a91a8e9f49a7088b37a6aa24a9ad1be14509423" dependencies: - ampersand-class-extend "^2.0.0" - ampersand-events "^2.0.1" + amp-bind "^1.0.1" + amp-extend "^1.0.1" + amp-is-function "^1.0.1" + amp-is-regexp "^1.0.1" + amp-result "^1.0.1" + ampersand-class-extend "^1.0.0" ampersand-version "^1.0.0" - lodash "^4.11.1" + backbone-events-standalone "0.2.2" ampersand-select-view@^2.2.1, "ampersand-select-view@https://github.com/sinfo/ampersand-select-view/tarball/master": version "2.3.0" @@ -498,7 +479,7 @@ ampersand-select-view@^2.2.1, "ampersand-select-view@https://github.com/sinfo/am matches-selector "^1.0.0" zuul "^1.16.4" -ampersand-state@^4.5.2, ampersand-state@^4.5.3: +ampersand-state@^4.3.15, ampersand-state@^4.4.4, ampersand-state@^4.5.2, ampersand-state@^4.5.3: version "4.9.1" resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-4.9.1.tgz#8ec482e1308ffc4682987287d753ad2d0368ca3e" dependencies: @@ -523,17 +504,7 @@ ampersand-state@^4.5.2, ampersand-state@^4.5.3: lodash.union "^3.1.0" lodash.uniqueid "^3.0.0" -ampersand-state@^5.0.1, ampersand-state@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/ampersand-state/-/ampersand-state-5.0.2.tgz#16830def866c644ecd21da8c8ba8717aa2b8d23c" - dependencies: - ampersand-events "^2.0.1" - ampersand-version "^1.0.0" - array-next "~0.0.1" - key-tree-store "^1.3.0" - lodash "^4.11.1" - -ampersand-subcollection@^2.0.3: +ampersand-subcollection@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/ampersand-subcollection/-/ampersand-subcollection-2.0.3.tgz#a36476fbbbf6be5f38fdf8fd6b62c50f36078641" dependencies: @@ -552,16 +523,13 @@ ampersand-subcollection@^2.0.3: lodash.sortby "^3.1.0" lodash.union "^3.1.0" -ampersand-sync@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ampersand-sync/-/ampersand-sync-5.0.0.tgz#9db4ee313f289f98522279a9a66d6cae2c7777b1" +ampersand-sync@^2.0.0, ampersand-sync@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/ampersand-sync/-/ampersand-sync-2.0.4.tgz#3b4144885c85132ab51f4fd1d0239fd9e9cbe00c" dependencies: - ampersand-version "^1.0.0" - lodash "^4.11.1" - media-type "0.3.0" - qs "^6.1.0" - request "^2.55.0" - xhr "^2.0.5" + qs "^1.2.1" + underscore "~1.6.0" + xhr "^1.10.0" ampersand-version@^1.0.0, ampersand-version@^1.0.1, ampersand-version@^1.0.2: version "1.0.2" @@ -570,27 +538,13 @@ ampersand-version@^1.0.0, ampersand-version@^1.0.1, ampersand-version@^1.0.2: find-root "^0.1.1" through2 "^0.6.3" -ampersand-view-switcher@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ampersand-view-switcher/-/ampersand-view-switcher-2.1.0.tgz#e2375b5252f3127d5bc6ddda82c0c12ef3da2206" +ampersand-view-switcher@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ampersand-view-switcher/-/ampersand-view-switcher-1.1.2.tgz#393db617a4193832bbc94437f1c696e8356e6885" dependencies: ampersand-version "^1.0.0" -ampersand-view@^10.0.0, ampersand-view@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-10.0.1.tgz#f5b9619c21ca390c5626ab94985eb3b1abfab938" - dependencies: - ampersand-collection-view "^2.0.1" - ampersand-dom-bindings "^3.5.0" - ampersand-state "^5.0.1" - ampersand-version "^1.0.2" - component-classes "^1.2.4" - domify "^1.3.2" - events-mixin "^1.2.0" - lodash "^4.11.1" - matches-selector "^1.0.0" - -ampersand-view@^7.0.0, ampersand-view@^7.2.0, ampersand-view@^7.2.1: +ampersand-view@^7.0.0, ampersand-view@^7.2.0, ampersand-view@^7.2.1, ampersand-view@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/ampersand-view/-/ampersand-view-7.4.2.tgz#160cb5f81c89feae82bc6a3e0e61c365061a04c2" dependencies: @@ -804,12 +758,6 @@ assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -assert@^1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - assert@~1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/assert/-/assert-1.1.2.tgz#adaa04c46bb58c6dd1f294da3eb26e6228eb6e44" @@ -840,7 +788,11 @@ async@^0.2.10, async@~0.2.6, async@~0.2.7, async@~0.2.9: version "0.2.10" resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" -async@^1.4.0, async@^1.5.2: +async@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/async/-/async-0.7.0.tgz#4429e0e62f5de0a54f37458c49f0b897eb52ada5" + +async@^1.4.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -888,14 +840,10 @@ base64-arraybuffer@0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" -base64-js@0.0.7: +base64-js@0.0.7, base64-js@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.7.tgz#54400dc91d696cec32a8a47902f971522fee8f48" -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - base64id@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" @@ -1043,22 +991,26 @@ browser-pack@^3.2.0: through2 "~0.5.1" umd "^2.1.0" -browser-pack@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-6.0.2.tgz#f86cd6cef4f5300c8e63e07a4d512f65fbff4531" +browser-pack@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/browser-pack/-/browser-pack-2.0.1.tgz#5d1c527f56c582677411c4db2a128648ff6bf150" dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.7.1" - defined "^1.0.0" - through2 "^2.0.0" - umd "^3.0.0" + JSONStream "~0.6.4" + combine-source-map "~0.3.0" + through "~2.3.4" -browser-resolve@^1.11.0, browser-resolve@^1.3.0, browser-resolve@^1.7.0: +browser-resolve@^1.3.0, browser-resolve@^1.7.0: version "1.11.2" resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" dependencies: resolve "1.1.7" +browser-resolve@~1.2.2, browser-resolve@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.2.4.tgz#59ae7820a82955ecd32f5fb7c468ac21c4723806" + dependencies: + resolve "0.6.3" + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" @@ -1182,57 +1134,58 @@ browserify@6.3.3: vm-browserify "~0.0.1" xtend "^3.0.0" -browserify@^13.0.0: - version "13.3.0" - resolved "https://registry.yarnpkg.com/browserify/-/browserify-13.3.0.tgz#b5a9c9020243f0c70e4675bec8223bc627e415ce" +browserify@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/browserify/-/browserify-4.2.3.tgz#0e0d8f98e6df6a664aa2c055120f3848246ee4d0" dependencies: - JSONStream "^1.0.3" - assert "^1.4.0" - browser-pack "^6.0.1" - browser-resolve "^1.11.0" + JSONStream "~0.8.3" + assert "~1.1.0" + browser-pack "~2.0.0" + browser-resolve "^1.3.0" browserify-zlib "~0.1.2" - buffer "^4.1.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.1" + buffer "^2.3.0" + builtins "~0.0.3" + commondir "0.0.1" + concat-stream "~1.4.1" console-browserify "^1.1.0" - constants-browserify "~1.0.0" - crypto-browserify "^3.0.0" - defined "^1.0.0" - deps-sort "^2.0.0" + constants-browserify "~0.0.1" + crypto-browserify "^2.1.8" + deep-equal "~0.2.1" + defined "~0.0.0" + deps-sort "~0.1.1" + derequire "~0.8.0" domain-browser "~1.1.0" - duplexer2 "~0.1.2" - events "~1.1.0" - glob "^7.1.0" - has "^1.0.0" - htmlescape "^1.1.0" + duplexer "~0.1.1" + events "~1.0.0" + glob "~3.2.8" + http-browserify "^1.4.0" https-browserify "~0.0.0" inherits "~2.0.1" - insert-module-globals "^7.0.0" - labeled-stream-splicer "^2.0.0" - module-deps "^4.0.8" + insert-module-globals "~6.0.0" + module-deps "~2.1.1" os-browserify "~0.1.1" - parents "^1.0.1" + parents "~0.0.1" path-browserify "~0.0.0" - process "~0.11.0" - punycode "^1.3.2" + process "^0.7.0" + punycode "~1.2.3" querystring-es3 "~0.2.0" - read-only-stream "^2.0.0" - readable-stream "^2.0.2" - resolve "^1.1.4" - shasum "^1.0.0" - shell-quote "^1.6.1" - stream-browserify "^2.0.0" - stream-http "^2.0.0" - string_decoder "~0.10.0" - subarg "^1.0.0" + readable-stream "^1.0.27-1" + resolve "~0.7.1" + shallow-copy "0.0.1" + shell-quote "~0.0.1" + stream-browserify "^1.0.0" + stream-combiner "~0.0.2" + string_decoder "~0.0.0" + subarg "0.0.1" syntax-error "^1.1.1" - through2 "^2.0.0" + through2 "^1.0.0" timers-browserify "^1.0.1" tty-browserify "~0.0.0" - url "~0.11.0" + umd "~2.1.0" + url "~0.10.1" util "~0.10.1" vm-browserify "~0.0.1" - xtend "^4.0.0" + xtend "^3.0.0" bson@~1.0.4: version "1.0.4" @@ -1258,13 +1211,12 @@ buffer@^2.3.0: ieee754 "^1.1.4" is-array "^1.0.1" -buffer@^4.1.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" +buffer@~2.3.2: + version "2.3.4" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-2.3.4.tgz#7e4af5a23c15e13fcbfd5c5a1ec974cb61668a4c" dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" + base64-js "~0.0.4" + ieee754 "~1.1.1" bufferjs@=1.1.0: version "1.1.0" @@ -1286,10 +1238,6 @@ bufferjs@=1.1.0: version "2.1.4" resolved "https://registry.yarnpkg.com/buffertools/-/buffertools-2.1.4.tgz#62d4e1584c0090a0c7d3587f25934a84b8b38de4" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - builtins@~0.0.3: version "0.0.7" resolved "https://registry.yarnpkg.com/builtins/-/builtins-0.0.7.tgz#355219cd6cf18dbe7c01cc7fd2dce765cfdc549a" @@ -1326,10 +1274,6 @@ bytes@1, bytes@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-1.0.0.tgz#3569ede8ba34315fab99c3e92cb04c7220de1fa8" -cached-path-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cached-path-relative/-/cached-path-relative-1.0.0.tgz#d1094c577fbd9a8b8bd43c96af6188aa205d05f4" - call-me-maybe@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" @@ -1499,15 +1443,6 @@ combine-source-map@~0.6.1: lodash.memoize "~3.0.3" source-map "~0.4.2" -combine-source-map@~0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/combine-source-map/-/combine-source-map-0.7.2.tgz#0870312856b307a87cc4ac486f3a9a62aeccc09e" - dependencies: - convert-source-map "~1.1.0" - inline-source-map "~0.6.0" - lodash.memoize "~3.0.3" - source-map "~0.5.3" - combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1592,7 +1527,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@~1.5.0, concat-stream@~1.5.1: +concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.2.tgz#708978624d856af41a5a741defdd261da752c266" dependencies: @@ -1661,10 +1596,6 @@ constants-browserify@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-0.0.1.tgz#92577db527ba6c4cf0a4568d84bc031f441e21f2" -constants-browserify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - content-disposition@0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.1.tgz#87476c6a67c8daa87e32e87616df883ba7fb071b" @@ -1788,6 +1719,13 @@ cryptiles@3.x.x: dependencies: boom "4.x.x" +crypto-browserify@^2.1.8: + version "2.1.10" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-2.1.10.tgz#4f2ca6311843cf087cdf008e43a4f3686ef6e6bb" + dependencies: + ripemd160 "0.2.0" + sha.js "2.1.6" + crypto-browserify@^3.0.0: version "3.11.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" @@ -1826,7 +1764,7 @@ cssesc@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" -cssmin@^0.4.3: +cssmin@^0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/cssmin/-/cssmin-0.4.3.tgz#c9194077e0ebdacd691d5f59015b9d819f38d015" @@ -1979,14 +1917,21 @@ deps-sort@^1.3.5: subarg "^1.0.0" through2 "^1.0.0" -deps-sort@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-2.0.0.tgz#091724902e84658260eb910748cccd1af6e21fb5" +deps-sort@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/deps-sort/-/deps-sort-0.1.2.tgz#daa2fb614a17c9637d801e2f55339ae370f3611a" dependencies: - JSONStream "^1.0.3" - shasum "^1.0.0" - subarg "^1.0.0" - through2 "^2.0.0" + JSONStream "~0.6.4" + minimist "~0.0.1" + through "~2.3.4" + +derequire@~0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/derequire/-/derequire-0.8.0.tgz#c1f7f1da2cede44adede047378f03f444e9c4c0d" + dependencies: + esprima-fb "^3001.1.0-dev-harmony-fb" + esrefactor "~0.1.0" + estraverse "~1.5.0" des.js@^1.0.0: version "1.0.0" @@ -2076,12 +2021,6 @@ duplexer2@0.0.2, duplexer2@~0.0.2: dependencies: readable-stream "~1.1.9" -duplexer2@^0.1.2, duplexer2@~0.1.0, duplexer2@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" @@ -2296,6 +2235,12 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" +escope@~0.0.13: + version "0.0.16" + resolved "https://registry.yarnpkg.com/escope/-/escope-0.0.16.tgz#418c7a0afca721dafe659193fd986283e746538f" + dependencies: + estraverse ">= 0.0.2" + eslint-config-hapi@10.x.x: version "10.0.0" resolved "https://registry.yarnpkg.com/eslint-config-hapi/-/eslint-config-hapi-10.0.0.tgz#9980affd76103ebc1fec92b45638345db19348f5" @@ -2424,7 +2369,7 @@ espree@^3.3.1: acorn "^4.0.1" acorn-jsx "^3.0.0" -esprima-fb@3001.1.0-dev-harmony-fb: +esprima-fb@3001.1.0-dev-harmony-fb, esprima-fb@^3001.1.0-dev-harmony-fb: version "3001.1.0-dev-harmony-fb" resolved "https://registry.yarnpkg.com/esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz#b77d37abcd38ea0b77426bb8bc2922ce6b426411" @@ -2436,7 +2381,7 @@ esprima@^2.5.0, esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~1.0.4: +esprima@~1.0.2, esprima@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" @@ -2451,13 +2396,25 @@ esrecurse@^4.1.0: estraverse "~4.1.0" object-assign "^4.0.1" +esrefactor@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/esrefactor/-/esrefactor-0.1.0.tgz#d142795a282339ab81e936b5b7a21b11bf197b13" + dependencies: + escope "~0.0.13" + esprima "~1.0.2" + estraverse "~0.0.4" + +"estraverse@>= 0.0.2", estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" -estraverse@^4.1.1, estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" +estraverse@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-0.0.4.tgz#01a0932dfee574684a598af5a67c3bf9b6428db2" estraverse@~1.5.0: version "1.5.1" @@ -2513,10 +2470,6 @@ events@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/events/-/events-1.0.2.tgz#75849dcfe93d10fb057c30055afdbd51d06a8e24" -events@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" @@ -2896,10 +2849,6 @@ fstream@^1.0.0, fstream@^1.0.2, fstream@~1.0.10: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" - gauge@~2.7.1: version "2.7.2" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.2.tgz#15cecc31b02d05345a5d6b0e171cdb3ad2307774" @@ -2957,7 +2906,7 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" -glob@3.x, glob@~3.2.6, glob@~3.2.9: +glob@3.x, glob@~3.2.6, glob@~3.2.8, glob@~3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" dependencies: @@ -3004,7 +2953,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.5, glob@^7.1.0, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.5, glob@~7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" dependencies: @@ -3231,12 +3180,6 @@ has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -has@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" - dependencies: - function-bind "^1.0.2" - hash.js@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" @@ -3311,10 +3254,6 @@ hooks-fixed@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hooks-fixed/-/hooks-fixed-1.2.0.tgz#0d2772d4d7d685ff9244724a9f0b5b2559aac96b" -htmlescape@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" - http-browserify@^1.4.0: version "1.7.0" resolved "https://registry.yarnpkg.com/http-browserify/-/http-browserify-1.7.0.tgz#33795ade72df88acfbfd36773cefeda764735b20" @@ -3374,7 +3313,7 @@ iconv-lite@~0.2.11: version "0.2.11" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" -ieee754@^1.1.4: +ieee754@^1.1.4, ieee754@~1.1.1: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -3444,12 +3383,6 @@ inline-source-map@~0.5.0: dependencies: source-map "~0.4.0" -inline-source-map@~0.6.0: - version "0.6.2" - resolved "https://registry.yarnpkg.com/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" - dependencies: - source-map "~0.5.3" - inquirer@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" @@ -3481,18 +3414,16 @@ insert-module-globals@^6.1.0: through2 "^1.0.0" xtend "^4.0.0" -insert-module-globals@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-7.0.1.tgz#c03bf4e01cb086d5b5e5ace8ad0afe7889d638c3" +insert-module-globals@~6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/insert-module-globals/-/insert-module-globals-6.0.0.tgz#ee8aeb9dee16819e33aa14588a558824af0c15dc" dependencies: - JSONStream "^1.0.3" - combine-source-map "~0.7.1" - concat-stream "~1.5.1" - is-buffer "^1.1.0" - lexical-scope "^1.2.0" - process "~0.11.0" - through2 "^2.0.0" - xtend "^4.0.0" + JSONStream "~0.7.1" + concat-stream "~1.4.1" + lexical-scope "~1.1.0" + process "~0.6.0" + through "~2.3.4" + xtend "^3.0.0" interpret@^1.0.0: version "1.0.1" @@ -3562,7 +3493,7 @@ is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" -is-function@^1.0.1, is-function@~1.0.0: +is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -3812,7 +3743,7 @@ json-stable-stringify@~0.0.0: dependencies: jsonify "~0.0.0" -json-stringify-safe@*, json-stringify-safe@5.x.x, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: +json-stringify-safe@5.x.x, json-stringify-safe@~5.0.0, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -3908,14 +3839,6 @@ labeled-stream-splicer@^1.0.0: isarray "~0.0.1" stream-splicer "^1.1.0" -labeled-stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/labeled-stream-splicer/-/labeled-stream-splicer-2.0.0.tgz#a52e1d138024c00b86b1c0c91f677918b8ae0a59" - dependencies: - inherits "^2.0.1" - isarray "~0.0.1" - stream-splicer "^2.0.0" - latest-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-1.0.1.tgz#72cfc46e3e8d1be651e1ebb54ea9f6ea96f374bb" @@ -3956,6 +3879,12 @@ lexical-scope@^1.2.0: dependencies: astw "^2.0.0" +lexical-scope@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/lexical-scope/-/lexical-scope-1.1.1.tgz#debac1067435f1359d90fcfd9e94bcb2ee47b2bf" + dependencies: + astw "^2.0.0" + load-script@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/load-script/-/load-script-0.0.5.tgz#cbd54b27cd7309902b749640c70e996f4c643b63" @@ -4719,7 +4648,7 @@ lodash@^3.10.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.3.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.3.0: version "4.17.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" @@ -4798,10 +4727,6 @@ matches-selector@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/matches-selector/-/matches-selector-1.0.0.tgz#434833447026a25ea4999edab18e4b8892b25721" -media-type@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-type/-/media-type-0.3.0.tgz#ceff6aa0e3f41a4a4de3d7d6b96eb82ac78d9ee8" - media-typer@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.2.0.tgz#d8a065213adfeaa2e76321a2b6dda36ff6335984" @@ -4959,7 +4884,7 @@ minimatch@^2.0.1, minimatch@^2.0.10: dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8, minimist@~0.0.1, minimist@~0.0.5: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4971,6 +4896,10 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.7, minimist@~0.0.9: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.3.5, mkdirp@0.3.x: version "0.3.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" @@ -4981,6 +4910,19 @@ mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkd dependencies: minimist "0.0.8" +module-deps@^1.8.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-1.10.0.tgz#57a9cac9dbd092428ec5249f6cf37fb249d77db6" + dependencies: + JSONStream "~0.7.1" + browser-resolve "~1.2.2" + concat-stream "~1.4.1" + detective "~3.1.0" + minimist "~0.0.5" + parents "0.0.2" + resolve "~0.6.0" + through "~2.3.4" + module-deps@^3.5.0: version "3.9.1" resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-3.9.1.tgz#ea75caf9199090d25b0d5512b5acacb96e7f87f3" @@ -5000,25 +4942,23 @@ module-deps@^3.5.0: through2 "^1.0.0" xtend "^4.0.0" -module-deps@^4.0.5, module-deps@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-4.0.8.tgz#55fd70623399706c3288bef7a609ff1e8c0ed2bb" +module-deps@~2.1.1: + version "2.1.5" + resolved "https://registry.yarnpkg.com/module-deps/-/module-deps-2.1.5.tgz#375a9bc804ccd64cebb3c62ee643755f0b3ccf29" dependencies: - JSONStream "^1.0.3" - browser-resolve "^1.7.0" - cached-path-relative "^1.0.0" - concat-stream "~1.5.0" - defined "^1.0.0" - detective "^4.0.0" - duplexer2 "^0.1.2" - inherits "^2.0.1" - parents "^1.0.0" - readable-stream "^2.0.2" - resolve "^1.1.3" - stream-combiner2 "^1.1.1" - subarg "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.0" + JSONStream "~0.7.1" + browser-resolve "~1.2.4" + concat-stream "~1.4.5" + detective "~3.1.0" + duplexer2 "0.0.2" + inherits "~2.0.1" + minimist "~0.0.9" + parents "0.0.2" + readable-stream "^1.0.27-1" + resolve "~0.6.3" + stream-combiner "~0.1.0" + subarg "0.0.1" + through2 "~0.4.1" moment-timezone@~0.3.0: version "0.3.1" @@ -5049,9 +4989,9 @@ mongodb@2.2.22: mongodb-core "2.1.7" readable-stream "2.1.5" -mongoose@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.8.0.tgz#6941807145b49a6d1a06e35e632e3f11f01bccb0" +mongoose@^4.8.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-4.8.1.tgz#1dbd3014fb39e9344271a53ec5dd741205864aae" dependencies: async "2.1.4" bson "~1.0.4" @@ -5060,28 +5000,28 @@ mongoose@^4.8.0: mongodb "2.2.22" mpath "0.2.1" mpromise "0.5.5" - mquery "2.2.0" + mquery "2.2.1" ms "0.7.2" muri "1.2.0" regexp-clone "0.0.1" sliced "1.0.1" -moonboots@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/moonboots/-/moonboots-5.0.1.tgz#a87e25c764d545d5318db87647ed1c1d2ad61d72" +moonboots@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/moonboots/-/moonboots-3.0.2.tgz#032b42f0a4732ec7e0fea0ae7b32479a173cb7ea" dependencies: - async "^1.5.2" - browserify "^13.0.0" + async "^0.7.0" + browserify "^4.2.1" bundle-metadata "^1.0.1" - cssmin "^0.4.3" - module-deps "^4.0.5" - uglify-js "^2.6.2" + cssmin "^0.4.1" + module-deps "^1.8.0" + uglify-js "^2.4.0" -moonboots_hapi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/moonboots_hapi/-/moonboots_hapi-7.0.0.tgz#2f50e9d35bc14941442be05b7ea382ff7e87cf1a" +moonboots_hapi@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/moonboots_hapi/-/moonboots_hapi-4.0.2.tgz#e06db90bc38de9ebf297bbd084f1f5b6197b404d" dependencies: - moonboots "^5.0.0" + moonboots "^3.0.0" mothership@~0.2.0: version "0.2.0" @@ -5097,9 +5037,9 @@ mpromise@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mpromise/-/mpromise-0.5.5.tgz#f5b24259d763acc2257b0a0c8c6d866fd51732e6" -mquery@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.2.0.tgz#0d3f86ec61520c3c59b39532d9a0f4cce8aa71a6" +mquery@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-2.2.1.tgz#aa31076419adce2b06e9757f4cfc5d7f371b47ce" dependencies: bluebird "2.10.2" debug "2.2.0" @@ -5311,6 +5251,10 @@ once@^1.3.0: dependencies: wrappy "1" +once@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/once/-/once-1.1.1.tgz#9db574933ccb08c3a7614d154032c09ea6f339e7" + once@~1.3.0, once@~1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" @@ -5422,16 +5366,16 @@ parent-require@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" -parents@^1.0.0, parents@^1.0.1: +parents@0.0.2, parents@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/parents/-/parents-0.0.2.tgz#67147826e497d40759aaf5ba4c99659b6034d302" + +parents@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parents/-/parents-1.0.1.tgz#fedd4d2bf193a77745fe71e371d73c3307d9c751" dependencies: path-platform "~0.11.15" -parents@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/parents/-/parents-0.0.2.tgz#67147826e497d40759aaf5ba4c99659b6034d302" - parse-asn1@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.0.0.tgz#35060f6d5015d37628c770f4e091a0b5a278bc23" @@ -5562,13 +5506,6 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" -pmx@^0.3.20: - version "0.3.31" - resolved "https://registry.yarnpkg.com/pmx/-/pmx-0.3.31.tgz#d8369bf1817d96a2862c3c55ca55597a34d85d4e" - dependencies: - debug "*" - json-stringify-safe "*" - podium@^1.2.x: version "1.2.5" resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" @@ -5601,6 +5538,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/process/-/process-0.7.0.tgz#c52208161a34adf3812344ae85d3e6150469389d" + process@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/process/-/process-0.8.0.tgz#7bbaf7187fe6ded3fd5be0cb6103fba9cacb9798" @@ -5613,6 +5554,10 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" +process@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/process/-/process-0.6.0.tgz#7dd9be80ffaaedd4cb628f1827f1cbab6dc0918f" + progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" @@ -5660,7 +5605,7 @@ punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -punycode@^1.3.2, punycode@^1.4.1: +punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -5688,11 +5633,7 @@ qs@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" -qs@^6.1.0, qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -qs@~1.2.0: +qs@^1.2.1, qs@~1.2.0: version "1.2.2" resolved "https://registry.yarnpkg.com/qs/-/qs-1.2.2.tgz#19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88" @@ -5700,6 +5641,10 @@ qs@~2.2.3: version "2.2.5" resolved "https://registry.yarnpkg.com/qs/-/qs-2.2.5.tgz#1088abaf9dcc0ae5ae45b709e6c6b5888b23923c" +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + querystring-es3@~0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -5767,13 +5712,7 @@ read-all-stream@^3.0.0: pinkie-promise "^2.0.0" readable-stream "^2.0.0" -read-only-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-only-stream/-/read-only-stream-2.0.0.tgz#2724fd6a8113d73764ac288d4386270c1dbf17f0" - dependencies: - readable-stream "^2.0.2" - -readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.0, readable-stream@^2.1.5, readable-stream@~2.1.4: +readable-stream@2.1.5, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@~2.1.4: version "2.1.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.1.5.tgz#66fa8b720e1438b364681f2ad1a63c618448c9d0" dependencies: @@ -5900,7 +5839,7 @@ request@2.11.4: form-data "~0.0.3" mime "~1.2.7" -request@^2.55.0, request@^2.79.0: +request@^2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -5988,11 +5927,15 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" +resolve@0.6.3, resolve@~0.6.0, resolve@~0.6.1, resolve@~0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" + resolve@0.7.x, resolve@~0.7.1: version "0.7.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.7.4.tgz#395a9ef9e873fbfe12bd14408bd91bb936003d69" -resolve@1.1.7, resolve@^1.1.3, resolve@^1.1.4, resolve@^1.1.6: +resolve@1.1.7, resolve@^1.1.3, resolve@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -6000,10 +5943,6 @@ resolve@~0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.3.1.tgz#34c63447c664c70598d1c9b126fc43b2a24310a4" -resolve@~0.6.1: - version "0.6.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.6.3.tgz#dd957982e7e736debdf53b58a4dd91754575dd46" - restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -6046,6 +5985,10 @@ rimraf@~2.4.0: dependencies: glob "^6.0.1" +ripemd160@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce" + ripemd160@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" @@ -6149,6 +6092,12 @@ setprototypeof@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08" +sha.js@2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.1.6.tgz#20e6eb81f3e66f081ddf84dd8f0464bea6c02fd4" + dependencies: + buffer "~2.3.2" + sha.js@^2.3.6, sha.js@~2.4.4: version "2.4.8" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" @@ -6189,15 +6138,6 @@ shell-quote@1.4.1: array-reduce "~0.0.0" jsonify "~0.0.0" -shell-quote@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" - dependencies: - array-filter "~0.0.0" - array-map "~0.0.0" - array-reduce "~0.0.0" - jsonify "~0.0.0" - shell-quote@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-0.0.1.tgz#1a41196f3c0333c482323593d6886ecf153dd986" @@ -6241,9 +6181,9 @@ slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" -slug@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/slug/-/slug-0.9.1.tgz#af08f608a7c11516b61778aa800dce84c518cfda" +slug@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/slug/-/slug-0.7.1.tgz#c79cfb4b6f4a88028c915f8b5a14b10881024383" dependencies: unicode ">= 0.3.1" @@ -6343,7 +6283,7 @@ source-map@0.4.x, source-map@^0.4.4, source-map@~0.4.0, source-map@~0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: +source-map@^0.5.3, source-map@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -6453,20 +6393,6 @@ stream-browserify@^1.0.0: inherits "~2.0.1" readable-stream "^1.0.27-1" -stream-browserify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-combiner2@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" - dependencies: - duplexer2 "~0.1.0" - readable-stream "^2.0.2" - stream-combiner2@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.0.2.tgz#ba72a6b50cbfabfa950fc8bc87604bd01eb60671" @@ -6474,28 +6400,25 @@ stream-combiner2@~1.0.0: duplexer2 "~0.0.2" through2 "~0.5.1" -stream-combiner@~0.0.4: +stream-combiner@~0.0.2, stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" dependencies: duplexer "~0.1.1" +stream-combiner@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.1.0.tgz#0dc389a3c203f8f4d56368f95dde52eb9269b5be" + dependencies: + duplexer "~0.1.1" + through "~2.3.4" + stream-counter@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-0.2.0.tgz#ded266556319c8b0e222812b9cf3b26fa7d947de" dependencies: readable-stream "~1.1.8" -stream-http@^2.0.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.3.tgz#4c3ddbf9635968ea2cfd4e48d43de5def2625ac3" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.1.0" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" @@ -6511,13 +6434,6 @@ stream-splicer@^1.1.0: readable-wrap "^1.0.0" through2 "^1.0.0" -stream-splicer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/stream-splicer/-/stream-splicer-2.0.0.tgz#1b63be438a133e4b671cc1935197600175910d83" - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.2" - string-length@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/string-length/-/string-length-1.0.1.tgz#56970fb1c38558e9e70b728bf3de269ac45adfac" @@ -6539,6 +6455,10 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" +string_decoder@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.0.1.tgz#f5472d0a8d1650ec823752d24e6fd627b39bf141" + string_decoder@~0.10.0, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -6588,6 +6508,12 @@ stylus@^0.54.5: sax "0.5.x" source-map "0.1.x" +subarg@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-0.0.1.tgz#3d56b07dacfbc45bbb63f7672b43b63e46368e3a" + dependencies: + minimist "~0.0.7" + subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" @@ -6763,14 +6689,7 @@ through2@^1.0.0: readable-stream ">=1.1.13-1 <1.2.0-0" xtend ">=4.0.0 <4.1.0-0" -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through2@~0.4.0: +through2@~0.4.0, through2@~0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" dependencies: @@ -6820,10 +6739,6 @@ to-array@0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - topo@2.x.x: version "2.0.2" resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" @@ -6907,7 +6822,7 @@ typedarray@~0.0.5: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@^2.4.24, uglify-js@^2.6, uglify-js@^2.6.2: +uglify-js@^2.4.0, uglify-js@^2.4.24, uglify-js@^2.6: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -6965,10 +6880,6 @@ umd@^2.1.0, umd@~2.1.0: through "~2.3.4" uglify-js "~2.4.0" -umd@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/umd/-/umd-3.0.1.tgz#8ae556e11011f63c2596708a8837259f01b3d60e" - undefsafe@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-0.0.3.tgz#ecca3a03e56b9af17385baac812ac83b994a962f" @@ -6985,6 +6896,10 @@ underscore@, underscore@^1.6.0, underscore@^1.7.0, underscore@^1.8.3: version "1.8.3" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + underscore@~1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" @@ -7022,13 +6937,6 @@ url@~0.10.1: punycode "1.3.2" querystring "0.2.0" -url@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -7217,14 +7125,13 @@ xdg-basedir@^2.0.0: dependencies: os-homedir "^1.0.0" -xhr@^2.0.5: - version "2.3.3" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.3.3.tgz#ad6b810e0917ce72b5ec704f5d41f1503b8e7524" +xhr@^1.10.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-1.17.1.tgz#0533349e4a7bb967d0bd878a961d9505f9052dff" dependencies: global "~4.3.0" - is-function "^1.0.1" + once "~1.1.1" parse-headers "^2.0.0" - xtend "^4.0.0" xml2js@~0.4.0: version "0.4.17" @@ -7249,7 +7156,7 @@ xtend@2.1.2, xtend@~2.1.1: dependencies: object-keys "~0.4.0" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From d41ba1ca1b19e8bde88d8370265f28ba2dbcec0b Mon Sep 17 00:00:00 2001 From: JGAntunes Date: Sun, 5 Feb 2017 16:30:24 +0000 Subject: [PATCH 6/8] fix: Remove node 0.10 support from travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6f88d874..c6cab2f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: node_js node_js: - - "0.10" - "6" services: - mongodb From 890454b12c5382093294f9ffbcc2b15001df05d2 Mon Sep 17 00:00:00 2001 From: JGAntunes Date: Sun, 5 Feb 2017 16:32:13 +0000 Subject: [PATCH 7/8] fix: Lint scripts folder also --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 2efb2932..1b7c5a72 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,7 @@ "standard": { "ignore": [ "client/js/templates.js", - "client/js/ink-all.js", - "server/scripts/*" + "client/js/ink-all.js" ] }, "pre-commit": [ From 22f3007b4dd1bf12c5901e70e5f0112726911c79 Mon Sep 17 00:00:00 2001 From: CarlosFaria94 Date: Tue, 7 Feb 2017 00:01:43 +0000 Subject: [PATCH 8/8] More refactoring --- README.md | 4 +- config.js | 7 +-- package.json | 3 +- server/db/chat.js | 4 +- server/resources/chat.js | 17 +++---- server/resources/email.js | 6 +-- server/resources/member.js | 17 ++++--- server/resources/notification.js | 2 +- server/resources/session.js | 45 ++++++++--------- server/resources/speaker.js | 83 +++++++++++++++----------------- server/resources/subscription.js | 52 ++++++++++---------- server/resources/tag.js | 42 ++++++++-------- 12 files changed, 139 insertions(+), 143 deletions(-) diff --git a/README.md b/README.md index 24d2b4b7..c4b77c02 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,6 @@ The backend is based on hapi, and the frontend initially was Angular but we're r ### Installation: 1. Clone the repo: git clone git@github.com:sinfo/eventdeck.git 2. Enter the directory: cd eventdeck - 3. Install the dependencies: npm install or npm i + 3. Install the dependencies: npm install or yarn 4. Set the environment variables used on config.js - 5. Start the server: npm start + 5. Start the server: npm start or yarn start diff --git a/config.js b/config.js index c2f4e7d2..ec0263ab 100644 --- a/config.js +++ b/config.js @@ -6,8 +6,7 @@ const config = { url: process.env.EVENTDECK_URL || 'http://localhost:8080', host: process.env.EVENTDECK_HOST || 'localhost', port: process.env.EVENTDECK_PORT || 8080, - isDev: process.env.NODE_ENV !== 'production', - isSecure: process.env.EVENTDECK_IS_SECURE === true || process.env.EVENTDECK_IS_SECURE === 'true' + isDev: process.env.NODE_ENV !== 'production' } config.cannon = { @@ -57,7 +56,9 @@ config.bunyan = { config.swagger = { pathPrefixSize: 2, - version: pack.version, + info: { + version: pack.version + }, basePath: config.url } diff --git a/package.json b/package.json index 1b7c5a72..8400abb1 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "João Antunes ", "Diogo Pais ", "Duarte Paiva ", - "Francisco Gonçalves " + "Francisco Gonçalves ", + "Carlos Faria " ], "license": "MIT", "bugs": { diff --git a/server/db/chat.js b/server/db/chat.js index 09f7e4fd..5b77260f 100644 --- a/server/db/chat.js +++ b/server/db/chat.js @@ -1,6 +1,6 @@ -var mongoose = require('mongoose') +const mongoose = require('mongoose') -var schema = new mongoose.Schema({ +const schema = new mongoose.Schema({ id: {type: String, unique: true}, name: String, members: [String], diff --git a/server/resources/chat.js b/server/resources/chat.js index 43b38fa8..cbfff51a 100644 --- a/server/resources/chat.js +++ b/server/resources/chat.js @@ -13,20 +13,19 @@ server.method('chat.message.add', addMessage, {}) server.method('chat.message.remove', removeMessage, {}) function create (chat, cb) { - Chat.create(chat, function (err, _chat) { + Chat.create(chat, (err, _chat) => { if (err) { - log.error({err: err, chat: chat}, 'error creating chat') + log.error({err, chat}, 'error creating chat') return cb(Boom.internal()) } - cb(null, _chat) }) } function update (id, chat, cb) { - Chat.findOneAndUpdate({id: id}, chat, (err, _chat) => { + Chat.findOneAndUpdate({id: id}, chat, {new: true}, (err, _chat) => { if (err) { - log.error({err: err, chat: id}, 'error updating chat') + log.error({err, chat: id}, 'error updating chat') return cb(Boom.internal()) } if (!_chat) { @@ -44,7 +43,7 @@ function get (id, query, cb) { Chat.findOne({id: id}, fields, (err, chat) => { if (err) { - log.error({err: err, chat: id}, 'error getting chat') + log.error({err, chat: id}, 'error getting chat') return cb(Boom.internal()) } if (!chat) { @@ -78,7 +77,7 @@ function list (query, cb) { function remove (id, cb) { Chat.findOneAndRemove({id: id}, (err, chat) => { if (err) { - log.error({err: err, chat: id}, 'error deleting chat') + log.error({err, chat: id}, 'error deleting chat') return cb(Boom.internal()) } if (!chat) { @@ -94,7 +93,7 @@ function addMessage (id, message, cb) { const update = {$push: {messages: message}} Chat.findOneAndUpdate({id: id}, update, (err, chat) => { if (err) { - log.error({err: err, chat: id}, 'error adding chat message') + log.error({err, chat: id}, 'error adding chat message') return cb(Boom.internal()) } if (!chat) { @@ -110,7 +109,7 @@ function removeMessage (id, message, cb) { const update = {$pull: {messages: message}} Chat.findOneAndUpdate({id: id}, update, (err, chat) => { if (err) { - log.error({err: err, chat: id}, 'error removing chat message') + log.error({err, chat: id}, 'error removing chat message') return cb(Boom.internal()) } if (!chat) { diff --git a/server/resources/email.js b/server/resources/email.js index 595ffe46..4564e772 100644 --- a/server/resources/email.js +++ b/server/resources/email.js @@ -6,7 +6,7 @@ const mgConfig = require('../../config').mailgun const MailComposer = require('mailcomposer').MailComposer const mg = new Mailgun(mgConfig.api) -const mailcomposer = new MailComposer() +const mailComposer = new MailComposer() server.method('email.send', send, {}) @@ -25,7 +25,7 @@ function send (message, cb) { } ) } else { - mailcomposer.setMessageOption({ + mailComposer.setMessageOption({ from: mgConfig.email, to: message.to, cc: message.cc, @@ -35,7 +35,7 @@ function send (message, cb) { html: message.html }) - mailcomposer.buildMessage((err, rawBody) => { + mailComposer.buildMessage((err, rawBody) => { if (err) { return cb(err) } mg.sendRaw(mgConfig.email, message.to, diff --git a/server/resources/member.js b/server/resources/member.js index 7c3f2806..bb30cb6b 100644 --- a/server/resources/member.js +++ b/server/resources/member.js @@ -54,7 +54,8 @@ function update (id, member, cb) { function createLoginCode (id, cb) { const loginCode = randtoken.generate(config.loginCodes.length) const code = {$push: {'loginCodes': {code: loginCode, created: new Date()}}} - Member.findOneAndUpdate({id: id}, code, function (err, _member) { + + Member.findOneAndUpdate({id: id}, code, {new: true}, (err, _member) => { if (err) { log.error({err, member: id}, 'error creating login code for member') return cb(Boom.internal()) @@ -64,9 +65,13 @@ function createLoginCode (id, cb) { return cb(Boom.notFound('member not found')) } - log.info({member: id, loginCode: loginCode}, 'login code created') + if (config.isDev) { + log.info({member: id, loginCode}, 'login code created') + } else { + log.info('login code created') + } - cb(null, {member: _member, loginCode: loginCode}) + cb(null, {member: _member, loginCode}) }) } @@ -144,7 +149,7 @@ function list (query, cb) { } function remove (id, cb) { - Member.findOneAndRemove({id: id}, function (err, member) { + Member.findOneAndRemove({id: id}, (err, member) => { if (err) { log.error({err, member: id}, 'error deleting member') return cb(Boom.internal()) @@ -169,7 +174,7 @@ function search (str, query, cb) { sort: parser(query.sort) } - Member.find(filter, fields, options, function (err, exactMembers) { + Member.find(filter, fields, options, (err, exactMembers) => { if (err) { log.error({err, filter}, 'error getting members') return cb(Boom.internal()) @@ -188,7 +193,7 @@ function search (str, query, cb) { ] } - Member.find(filter, fields, options, function (err, extendedMembers) { + Member.find(filter, fields, options, (err, extendedMembers) => { if (err) { log.error({err, filter}, 'error getting members') return cb(Boom.internal()) diff --git a/server/resources/notification.js b/server/resources/notification.js index bc81294c..db39c6fc 100644 --- a/server/resources/notification.js +++ b/server/resources/notification.js @@ -317,7 +317,7 @@ function decorateWithUnreadStatus (memberId, collection, cb) { accessLookup[accesses[i].thread] = accesses[i] } - const accessedThreads = accesses.map(function (o) { + const accessedThreads = accesses.map((o) => { return o.thread }) diff --git a/server/resources/session.js b/server/resources/session.js index 67b31676..f88cc8e6 100644 --- a/server/resources/session.js +++ b/server/resources/session.js @@ -1,10 +1,10 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Session = require('../db/session') -var ical = require('../helpers/ical') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Session = require('../db/session') +const ical = require('../helpers/ical') server.method('session.create', create, {}) server.method('session.update', update, {}) @@ -17,7 +17,7 @@ function create (session, memberId, cb) { session.updated = Date.now() session.id = slug((session.id || session.name) + '-' + session.event).toLowerCase() - Session.create(session, function (err, _session) { + Session.create(session, (err, _session) => { if (err) { log.error({err: err, session: session}, 'error creating session') return cb(Boom.internal()) @@ -31,8 +31,7 @@ function create (session, memberId, cb) { function update (id, session, cb) { session.updated = Date.now() - var filter = {id: id} - Session.findOneAndUpdate(filter, session, {new: true}, function (err, _session) { + Session.findOneAndUpdate({id: id}, session, {new: true}, (err, _session) => { if (err) { log.error({err: err, session: id}, 'error updating session') return cb(Boom.internal()) @@ -50,10 +49,9 @@ function update (id, session, cb) { function get (id, query, cb) { cb = cb || query - var filter = {id: id} - var fields = query.fields + const fields = query.fields - Session.findOne(filter, fields, function (err, session) { + Session.findOne({id: id}, fields, (err, session) => { if (err) { log.error({err: err, session: id}, 'error getting session') return cb(Boom.internal()) @@ -69,16 +67,16 @@ function get (id, query, cb) { function list (query, cb) { cb = cb || query - var filter = {} - var fields = query.fields - var options = { + const filter = {} + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } if (query.event) { filter.event = query.event } - Session.find(filter, fields, options, function (err, sessions) { + Session.find(filter, fields, options, (err, sessions) => { if (err) { log.error({err: err}, 'error getting all sessions') return cb(Boom.internal()) @@ -89,8 +87,7 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {id: id} - Session.findOneAndRemove(filter, function (err, session) { + Session.findOneAndRemove({id: id}, (err, session) => { if (err) { log.error({err: err, session: id}, 'error deleting session') return cb(Boom.internal()) @@ -109,15 +106,15 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,img') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,img') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) } - Session.find(filter, fields, options, function (err, exactSessions) { + Session.find(filter, fields, options, (err, exactSessions) => { if (err) { log.error({err: err, filter: filter}, 'error getting sessions') return cb(Boom.internal()) @@ -135,7 +132,7 @@ function search (str, query, cb) { ] } - Session.find(filter, fields, options, function (err, extendedSessions) { + Session.find(filter, fields, options, (err, extendedSessions) => { if (err) { log.error({err: err, filter: filter}, 'error getting sessions') return cb(Boom.internal()) diff --git a/server/resources/speaker.js b/server/resources/speaker.js index 066aaa3d..dd92018d 100644 --- a/server/resources/speaker.js +++ b/server/resources/speaker.js @@ -1,10 +1,10 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Speaker = require('../db/speaker') -var dupKeyParser = require('../helpers/dupKeyParser') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Speaker = require('../db/speaker') +const dupKeyParser = require('../helpers/dupKeyParser') server.method('speaker.create', create, {}) server.method('speaker.update', update, {}) @@ -19,14 +19,14 @@ function create (speaker, memberId, cb) { speaker.id = slug(speaker.id || speaker.name).toLowerCase() speaker.updated = Date.now() - Speaker.create(speaker, function (err, _speaker) { + Speaker.create(speaker, (err, _speaker) => { if (err) { if (err.code === 11000) { - log.warn({err: err, requestedSpeaker: speaker.id}, 'speaker is a duplicate') + log.warn({err, requestedSpeaker: speaker.id}, 'speaker is a duplicate') return cb(Boom.conflict(dupKeyParser(err.err) + ' is a duplicate')) } - log.error({err: err, speaker: speaker}, 'error creating speaker') + log.error({err, speaker: speaker}, 'error creating speaker') return cb(Boom.internal()) } cb(null, _speaker.toObject({ getters: true })) @@ -35,10 +35,9 @@ function create (speaker, memberId, cb) { function update (id, speaker, cb) { speaker.updated = Date.now() - var filter = {id: id} - Speaker.findOneAndUpdate(filter, speaker, {new: true}, function (err, _speaker) { + Speaker.findOneAndUpdate({id: id}, speaker, {new: true}, (err, _speaker) => { if (err) { - log.error({err: err, speaker: id}, 'error updating speaker') + log.error({err, speaker: id}, 'error updating speaker') return cb(Boom.internal()) } if (!_speaker) { @@ -53,11 +52,10 @@ function update (id, speaker, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) - var filter = {id: id} - Speaker.findOne(filter, fields, function (err, speaker) { + const fields = parser(query.fields) + Speaker.findOne({id: id}, fields, function (err, speaker) { if (err) { - log.error({err: err, speaker: id}, 'error getting speaker') + log.error({err, speaker: id}, 'error getting speaker') return cb(Boom.internal()) } if (!speaker) { @@ -71,16 +69,16 @@ function get (id, query, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = { participations: { $elemMatch: { member: memberId } } } - var fields = query.fields - var options = { + const filter = { participations: { $elemMatch: { member: memberId } } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Speaker.find(filter, fields, options, function (err, speaker) { + Speaker.find(filter, fields, options, (err, speaker) => { if (err) { - log.error({err: err, member: memberId}, 'error getting speaker') + log.error({err, member: memberId}, 'error getting speaker') return cb(Boom.internal()) } @@ -90,16 +88,16 @@ function getByMember (memberId, query, cb) { function getByEvent (eventId, query, cb) { cb = cb || query - var filter = { participations: { $elemMatch: { event: eventId } } } - var fields = query.fields - var options = { + const filter = { participations: { $elemMatch: { event: eventId } } } + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Speaker.find(filter, fields, options, function (err, speaker) { + Speaker.find(filter, fields, options, (err, speaker) => { if (err) { - log.error({err: err, event: eventId}, 'error getting speaker') + log.error({err, event: eventId}, 'error getting speaker') } cb(null, speaker) @@ -108,10 +106,10 @@ function getByEvent (eventId, query, cb) { function list (query, cb) { cb = cb || query - var eventsFilter = {} - var filter = {} - var fields = parser(query.fields) - var options = { + let eventsFilter = {} + let filter = {} + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort), @@ -132,9 +130,9 @@ function list (query, cb) { filter.participations = query.participations ? {$elemMatch: eventsFilter} : {$not: {$elemMatch: eventsFilter}} } - Speaker.find(filter, fields, options, function (err, speaker) { + Speaker.find(filter, fields, options, (err, speaker) => { if (err) { - log.error({err: err}, 'error getting all speaker') + log.error({err}, 'error getting all speaker') return cb(Boom.internal()) } @@ -143,14 +141,13 @@ function list (query, cb) { } function remove (id, cb) { - var filter = {id: id} - Speaker.findOneAndRemove(filter, function (err, speaker) { + Speaker.findOneAndRemove({id: id}, (err, speaker) => { if (err) { log.error({err: err, speaker: id}, 'error deleting speaker') return cb(Boom.internal()) } if (!speaker) { - log.error({err: err, speaker: id}, 'error deleting speaker') + log.error({err, speaker: id}, 'error deleting speaker') return cb(Boom.notFound()) } @@ -161,17 +158,17 @@ function remove (id, cb) { function search (str, query, cb) { cb = cb || query // fields is optional - var filter = { name: new RegExp(str, 'i') } - var fields = parser(query.fields || 'id,name,img') - var options = { + let filter = { name: new RegExp(str, 'i') } + const fields = parser(query.fields || 'id,name,img') + const options = { skip: query.skip, limit: query.limit || 10, sort: parser(query.sort) } - Speaker.find(filter, fields, options, function (err, exactSpeakers) { + Speaker.find(filter, fields, options, (err, exactSpeakers) => { if (err) { - log.error({err: err, filter: filter}, 'error getting speakers') + log.error({err, filter}, 'error getting speakers') return cb(Boom.internal()) } @@ -188,9 +185,9 @@ function search (str, query, cb) { ] } - Speaker.find(filter, fields, options, function (err, extendedSpeakers) { + Speaker.find(filter, fields, options, (err, extendedSpeakers) => { if (err) { - log.error({err: err, filter: filter}, 'error getting speakers') + log.error({err, filter}, 'error getting speakers') return cb(Boom.internal()) } diff --git a/server/resources/subscription.js b/server/resources/subscription.js index 923a27da..1a23b369 100644 --- a/server/resources/subscription.js +++ b/server/resources/subscription.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Subscription = require('../db/subscription') -var Member = require('../db/member') +const Boom = require('boom') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Subscription = require('../db/subscription') +const Member = require('../db/member') server.method('subscription.create', create, {}) server.method('subscription.createForCoordinators', createForCoordinators, {}) @@ -13,11 +13,11 @@ server.method('subscription.getByThread', getByThread, {}) server.method('subscription.remove', remove, {}) function create (thread, memberId, cb) { - var subscription = { thread: thread, member: memberId } + const subscription = { thread: thread, member: memberId } - Subscription.create(subscription, function (err, _subscription) { + Subscription.create(subscription, (err, _subscription) => { if (err) { - log.error({err: err, subscription: subscription}, 'error creating subscription') + log.error({err, subscription}, 'error creating subscription') return cb(Boom.internal()) } @@ -33,23 +33,23 @@ function createForCoordinators (thread, cb) { role: 'coordination' } } - }, function (err, coordinators) { + }, (err, coordinators) => { if (err) { - log.error({err: err, thread: thread}, 'error finding coordinators while creating subscriptions') + log.error({err, thread}, 'error finding coordinators while creating subscriptions') return cb(Boom.internal()) } - var subscriptions = [] + let subscriptions = [] - coordinators.forEach(function (coordinator) { - var subscription = { - thread: thread, + coordinators.forEach((coordinator) => { + const subscription = { + thread, member: coordinator.id } - Subscription.create(subscription, function (err, _subscription) { + Subscription.create(subscription, (err, _subscription) => { if (err) { - log.error({err: err, subscription: subscription}, 'error creating subscription') + log.error({err, subscription}, 'error creating subscription') return cb(Boom.internal()) } @@ -64,8 +64,8 @@ function createForCoordinators (thread, cb) { function get (thread, memberId, query, cb) { cb = cb || query // fields is optional - var fields = parser(query.fields) - var filter = { member: memberId, thread: thread } + const fields = parser(query.fields) + const filter = { member: memberId, thread: thread } Subscription.findOne(filter, fields, function (err, subscription) { if (err) { @@ -78,7 +78,7 @@ function get (thread, memberId, query, cb) { } function remove (thread, memberId, cb) { - var filter = { thread: thread, member: memberId } + const filter = { thread: thread, member: memberId } Subscription.findOneAndRemove(filter, function (err, subscription) { if (err) { @@ -96,9 +96,9 @@ function remove (thread, memberId, cb) { function getByMember (memberId, query, cb) { cb = cb || query - var filter = {members: {$in: [memberId]}} - var fields = query.fields - var options = { + const filter = {members: {$in: [memberId]}} + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) @@ -116,9 +116,9 @@ function getByMember (memberId, query, cb) { function getByThread (thread, query, cb) { cb = cb || query - var filter = {thread: thread} - var fields = query.fields - var options = { + const filter = {thread: thread} + const fields = query.fields + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) diff --git a/server/resources/tag.js b/server/resources/tag.js index 93b73931..b16e4866 100644 --- a/server/resources/tag.js +++ b/server/resources/tag.js @@ -1,9 +1,9 @@ -var Boom = require('boom') -var slug = require('slug') -var server = require('../index').hapi -var log = require('../helpers/logger') -var parser = require('../helpers/fieldsParser') -var Tag = require('../db/tag') +const Boom = require('boom') +const slug = require('slug') +const server = require('../index').hapi +const log = require('../helpers/logger') +const parser = require('../helpers/fieldsParser') +const Tag = require('../db/tag') server.method('tag.create', create, {}) server.method('tag.update', update, {}) @@ -16,7 +16,7 @@ function create (tag, memberId, cb) { Tag.create(tag, (err, _tag) => { if (err) { - log.error({err: err, tag: tag}, 'error creating tag') + log.error({err, tag}, 'error creating tag') return cb(Boom.internal()) } @@ -25,10 +25,9 @@ function create (tag, memberId, cb) { } function update (id, tag, cb) { - var filter = {id: id} - Tag.findOneAndUpdate(filter, tag, {new: true}, (err, _tag) => { + Tag.findOneAndUpdate({id: id}, tag, {new: true}, (err, _tag) => { if (err) { - log.error({err: err, tag: id}, 'error updating tag') + log.error({err, tag: id}, 'error updating tag') return cb(Boom.internal()) } if (!_tag) { @@ -42,12 +41,11 @@ function update (id, tag, cb) { function get (id, query, cb) { cb = cb || query // fields is optional - var filter = {id: id} - var fields = parser(query.fields) - Tag.findOne(filter, fields, function (err, tag) { + const fields = parser(query.fields) + Tag.findOne({id: id}, fields, (err, tag) => { if (err) { - log.error({err: err, tag: id}, 'error getting tag') + log.error({err, tag: id}, 'error getting tag') return cb(Boom.internal()) } if (!tag) { @@ -62,17 +60,16 @@ function get (id, query, cb) { function list (query, cb) { cb = cb || query // fields is optional - var filter = {} - var fields = parser(query.fields) - var options = { + const fields = parser(query.fields) + const options = { skip: query.skip, limit: query.limit, sort: parser(query.sort) } - Tag.find(filter, fields, options, function (err, companies) { + Tag.find({}, fields, options, (err, companies) => { if (err) { - log.error({err: err}, 'error getting all companies') + log.error({err}, 'error getting all companies') return cb(Boom.internal()) } @@ -80,14 +77,13 @@ function list (query, cb) { }) } function remove (id, cb) { - var filter = {id: id} - Tag.findOneAndRemove(filter, function (err, tag) { + Tag.findOneAndRemove({id: id}, (err, tag) => { if (err) { - log.error({err: err, tag: id}, 'error deleting tag') + log.error({err, tag: id}, 'error deleting tag') return cb(Boom.internal()) } if (!tag) { - log.error({err: err, tag: id}, 'error deleting tag') + log.error({err, tag: id}, 'error deleting tag') return cb(Boom.notFound()) }