From 9caf0cddbfbff329da5b83cfb675892ab9ed0d36 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 8 Jun 2017 17:33:03 -0300 Subject: [PATCH 001/253] Do not use users collection for visitors --- packages/rocketchat-lib/package.js | 1 + .../server/functions/loadMessageHistory.js | 86 ++++++++++ .../server/lib/sendNotificationsOnMessage.js | 5 + .../app/client/lib/CustomFields.js | 4 +- .../app/client/lib/LivechatVideoCall.js | 1 + .../app/client/lib/_livechat.js | 6 +- .../app/client/lib/chatMessages.js | 15 +- .../app/client/lib/commands.js | 3 + .../app/client/lib/fromApp/Notifications.js | 12 +- .../client/lib/fromApp/RoomHistoryManager.js | 5 +- .../app/client/lib/hooks.js | 2 + .../app/client/lib/msgTyping.js | 4 +- .../app/client/lib/triggers.js | 4 +- .../app/client/methods/sendMessageExternal.js | 4 +- .../app/client/routes/router.js | 2 + .../app/client/startup/visitor.js | 13 +- .../app/client/views/avatar.js | 1 + .../app/client/views/livechatWindow.js | 3 +- .../app/client/views/message.js | 4 +- .../app/client/views/messages.js | 12 +- .../app/client/views/options.js | 1 + .../app/client/views/register.js | 9 +- .../app/client/views/survey.js | 2 + .../app/client/views/switchDepartment.js | 1 + .../_visitor.js => imports/client/visitor.js} | 33 ++-- .../imports/server/rest/sms.js | 8 +- packages/rocketchat-livechat/package.js | 1 + .../server/lib/Livechat.js | 85 +++++----- .../server/methods/getAgentData.js | 9 +- .../server/methods/loadHistory.js | 13 ++ .../server/methods/loginByToken.js | 38 +++-- .../server/methods/registerGuest.js | 10 +- .../server/methods/saveSurveyFeedback.js | 5 +- .../server/methods/sendMessageLivechat.js | 31 +++- .../server/methods/sendTranscript.js | 2 +- .../server/methods/setCustomField.js | 4 +- .../server/models/LivechatVisitors.js | 148 ++++++++++++++++++ .../server/models/Users.js | 139 ---------------- .../rocketchat-livechat/server/rest/sms.js | 8 +- .../server/sendMessageBySMS.js | 4 +- server/methods/loadHistory.js | 85 +--------- server/stream/messages.js | 32 ++-- 42 files changed, 475 insertions(+), 380 deletions(-) create mode 100644 packages/rocketchat-lib/server/functions/loadMessageHistory.js rename packages/rocketchat-livechat/app/{client/lib/_visitor.js => imports/client/visitor.js} (76%) create mode 100644 packages/rocketchat-livechat/server/methods/loadHistory.js create mode 100644 packages/rocketchat-livechat/server/models/LivechatVisitors.js diff --git a/packages/rocketchat-lib/package.js b/packages/rocketchat-lib/package.js index b4e0168c2664..ad418fe2264d 100644 --- a/packages/rocketchat-lib/package.js +++ b/packages/rocketchat-lib/package.js @@ -78,6 +78,7 @@ Package.onUse(function(api) { api.addFiles('server/functions/deleteUser.js', 'server'); api.addFiles('server/functions/getFullUserData.js', 'server'); api.addFiles('server/functions/getRoomByNameOrIdWithOptionToJoin.js', 'server'); + api.addFiles('server/functions/loadMessageHistory.js', 'server'); api.addFiles('server/functions/removeUserFromRoom.js', 'server'); api.addFiles('server/functions/saveUser.js', 'server'); api.addFiles('server/functions/saveCustomFields.js', 'server'); diff --git a/packages/rocketchat-lib/server/functions/loadMessageHistory.js b/packages/rocketchat-lib/server/functions/loadMessageHistory.js new file mode 100644 index 000000000000..f98ba1efe977 --- /dev/null +++ b/packages/rocketchat-lib/server/functions/loadMessageHistory.js @@ -0,0 +1,86 @@ +const hideMessagesOfType = []; + +RocketChat.settings.get(/Message_HideType_.+/, function(key, value) { + const type = key.replace('Message_HideType_', ''); + const types = type === 'mute_unmute' ? ['user-muted', 'user-unmuted'] : [type]; + + return types.forEach((type) => { + const index = hideMessagesOfType.indexOf(type); + + if (value === true && index === -1) { + return hideMessagesOfType.push(type); + } + + if (index > -1) { + return hideMessagesOfType.splice(index, 1); + } + }); +}); + +RocketChat.loadMessageHistory = function loadMessageHistory({ userId, rid, end, limit = 20, ls }) { + const options = { + sort: { + ts: -1 + }, + limit + }; + + if (!RocketChat.settings.get('Message_ShowEditedStatus')) { + options.fields = { + editedAt: 0 + }; + } + + let records; + if (end != null) { + records = RocketChat.models.Messages.findVisibleByRoomIdBeforeTimestampNotContainingTypes(rid, end, hideMessagesOfType, options).fetch(); + } else { + records = RocketChat.models.Messages.findVisibleByRoomIdNotContainingTypes(rid, hideMessagesOfType, options).fetch(); + } + + const UI_Use_Real_Name = RocketChat.settings.get('UI_Use_Real_Name') === true; + + const messages = records.map((message) => { + message.starred = _.findWhere(message.starred, { + _id: userId + }); + if (message.u && message.u._id && UI_Use_Real_Name) { + const user = RocketChat.models.Users.findOneById(message.u._id); + message.u.name = user && user.name; + } + if (message.mentions && message.mentions.length && UI_Use_Real_Name) { + message.mentions.forEach((mention) => { + const user = RocketChat.models.Users.findOneById(mention._id); + mention.name = user && user.name; + }); + } + return message; + }); + + let unreadNotLoaded = 0; + let firstUnread; + + if (ls != null) { + const firstMessage = messages[messages.length - 1]; + + if ((firstMessage != null ? firstMessage.ts : undefined) > ls) { + delete options.limit; + + const unreadMessages = RocketChat.models.Messages.findVisibleByRoomIdBetweenTimestampsNotContainingTypes(rid, ls, firstMessage.ts, hideMessagesOfType, { + limit: 1, + sort: { + ts: 1 + } + }); + + firstUnread = unreadMessages.fetch()[0]; + unreadNotLoaded = unreadMessages.count(); + } + } + + return { + messages, + firstUnread, + unreadNotLoaded + }; +}; diff --git a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js index 7beab8fdfcfa..f30e58de8383 100644 --- a/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js +++ b/packages/rocketchat-lib/server/lib/sendNotificationsOnMessage.js @@ -96,6 +96,11 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { const user = RocketChat.models.Users.findOneById(message.u._id); + // @TODO maybe a livechat visitor + if (!user) { + return message; + } + /* Increment unread couter if direct messages */ diff --git a/packages/rocketchat-livechat/app/client/lib/CustomFields.js b/packages/rocketchat-livechat/app/client/lib/CustomFields.js index 4f984139c7db..36132c9aa714 100644 --- a/packages/rocketchat-livechat/app/client/lib/CustomFields.js +++ b/packages/rocketchat-livechat/app/client/lib/CustomFields.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + this.CustomFields = (function() { let queue = {}; let initiated = false; @@ -13,7 +15,7 @@ this.CustomFields = (function() { const init = function() { Tracker.autorun(function() { - if (Meteor.userId()) { + if (visitor.getId()) { initiated = true; Object.keys(queue).forEach((key) => { setCustomField.call(this, queue[key].token, key, queue[key].value, queue[key].overwrite); diff --git a/packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js b/packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js index 88bdd62e0f2c..e31490bb45f0 100644 --- a/packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js +++ b/packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js @@ -1,4 +1,5 @@ /* globals LivechatVideoCall, cordova, JitsiMeetExternalAPI */ +import visitor from '../../imports/client/visitor'; LivechatVideoCall = new (class LivechatVideoCall { constructor() { diff --git a/packages/rocketchat-livechat/app/client/lib/_livechat.js b/packages/rocketchat-livechat/app/client/lib/_livechat.js index eb94f7b84974..d1a04ec71600 100644 --- a/packages/rocketchat-livechat/app/client/lib/_livechat.js +++ b/packages/rocketchat-livechat/app/client/lib/_livechat.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + this.Livechat = new (class Livechat { constructor() { this._online = new ReactiveVar(null); @@ -30,12 +32,12 @@ this.Livechat = new (class Livechat { this.stream = new Meteor.Streamer('livechat-room'); Tracker.autorun(() => { - if (this._room.get() && Meteor.userId()) { + if (this._room.get() && visitor.getId()) { RoomHistoryManager.getMoreIfIsEmpty(this._room.get()); visitor.subscribeToRoom(this._room.get()); visitor.setRoom(this._room.get()); - Meteor.call('livechat:getAgentData', this._room.get(), (error, result) => { + Meteor.call('livechat:getAgentData', { roomId: this._room.get(), token: visitor.getToken() }, (error, result) => { if (!error) { this._agent.set(result); } diff --git a/packages/rocketchat-livechat/app/client/lib/chatMessages.js b/packages/rocketchat-livechat/app/client/lib/chatMessages.js index 2649809fd286..5f9c6e6fb6c5 100644 --- a/packages/rocketchat-livechat/app/client/lib/chatMessages.js +++ b/packages/rocketchat-livechat/app/client/lib/chatMessages.js @@ -1,5 +1,6 @@ /* globals MsgTyping, showError, Livechat */ import toastr from 'toastr'; +import visitor from '../../imports/client/visitor'; this.ChatMessages = class ChatMessages { init(node) { @@ -61,7 +62,7 @@ this.ChatMessages = class ChatMessages { } this.clearEditing(); const id = element.getAttribute('id'); - const message = ChatMessage.findOne({ _id: id, 'u._id': Meteor.userId() }); + const message = ChatMessage.findOne({ _id: id, 'u._id': visitor.getId() }); this.input.value = message.msg; this.editing.element = element; this.editing.index = index || this.getEditingIndex(element); @@ -125,7 +126,7 @@ this.ChatMessages = class ChatMessages { }); }; - if (!Meteor.userId()) { + if (!visitor.getId()) { const guest = { token: visitor.getToken() }; @@ -139,13 +140,8 @@ this.ChatMessages = class ChatMessages { return showError(error.reason); } - Meteor.loginWithToken(result.token, (error) => { - if (error) { - return showError(error.reason); - } - - sendMessage(); - }); + visitor.setId(result._id); + sendMessage(); }); } else { sendMessage(); @@ -194,6 +190,7 @@ this.ChatMessages = class ChatMessages { const re = new RegExp(value, 'i'); + // @TODO verify if used const user = Meteor.users.findOne({ username: re }, { fields: { username: 1 } }); if (user) { input.value = input.value.replace(value, `@${ user.username } `); diff --git a/packages/rocketchat-livechat/app/client/lib/commands.js b/packages/rocketchat-livechat/app/client/lib/commands.js index f215fdad0c96..23e10d3b9812 100644 --- a/packages/rocketchat-livechat/app/client/lib/commands.js +++ b/packages/rocketchat-livechat/app/client/lib/commands.js @@ -1,4 +1,6 @@ /* globals LivechatVideoCall, Livechat */ +import visitor from '../../imports/client/visitor'; + // Functions to call on messages of type 'command' this.Commands = { survey() { @@ -13,6 +15,7 @@ this.Commands = { promptTranscript() { if (Livechat.transcript) { + // @TODO get visitor email const user = Meteor.user(); const email = user.visitorEmails && user.visitorEmails.length > 0 ? user.visitorEmails[0].address : ''; diff --git a/packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js b/packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js index d33705486995..836f9388e489 100644 --- a/packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js +++ b/packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js @@ -1,12 +1,14 @@ +import visitor from '../../../imports/client/visitor'; + this.Notifications = new class { constructor() { - this.logged = Meteor.userId() !== null; + this.logged = visitor.getId() !== null; this.loginCb = []; Tracker.autorun(() => { - if (Meteor.userId() !== null && this.logged === false) { + if (visitor.getId() !== null && this.logged === false) { this.loginCb.forEach(cb => cb()); } - return this.logged = Meteor.userId() !== null; + return this.logged = visitor.getId() !== null; }); this.debug = false; this.streamAll = new Meteor.Streamer('notify-all'); @@ -61,7 +63,7 @@ this.Notifications = new class { return this.streamRoom.on(`${ room }/${ eventName }`, callback); } onUser(eventName, callback) { - return this.streamUser.on(`${ Meteor.userId() }/${ eventName }`, callback); + return this.streamUser.on(`${ visitor.getId() }/${ eventName }`, callback); } unAll(callback) { return this.streamAll.removeListener('notify', callback); @@ -73,7 +75,7 @@ this.Notifications = new class { return this.streamRoom.removeListener(`${ room }/${ eventName }`, callback); } unUser(callback) { - return this.streamUser.removeListener(Meteor.userId(), callback); + return this.streamUser.removeListener(visitor.getId(), callback); } }; diff --git a/packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js b/packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js index 2f94b4d1c5b4..648eb78fd371 100644 --- a/packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js +++ b/packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js @@ -1,4 +1,7 @@ /* globals readMessage UserRoles RoomRoles*/ + +import visitor from '../../../imports/client/visitor'; + export const RoomHistoryManager = new class { constructor() { this.defaultLimit = 50; @@ -40,7 +43,7 @@ export const RoomHistoryManager = new class { ts = new Date(); } - Meteor.call('loadHistory', rid, ts, limit, undefined, (err, result) => { + Meteor.call('livechat:loadHistory', { token: visitor.getToken(), rid, ts, limit }, (err, result) => { if (err) { return; } diff --git a/packages/rocketchat-livechat/app/client/lib/hooks.js b/packages/rocketchat-livechat/app/client/lib/hooks.js index eb7a2e34c56c..3a525c34cf5d 100644 --- a/packages/rocketchat-livechat/app/client/lib/hooks.js +++ b/packages/rocketchat-livechat/app/client/lib/hooks.js @@ -1,4 +1,6 @@ /* globals CustomFields, Livechat */ +import visitor from '../../imports/client/visitor'; + const api = { pageVisited(info) { if (info.change === 'url') { diff --git a/packages/rocketchat-livechat/app/client/lib/msgTyping.js b/packages/rocketchat-livechat/app/client/lib/msgTyping.js index 1d387f744e06..c120f01ae2ed 100644 --- a/packages/rocketchat-livechat/app/client/lib/msgTyping.js +++ b/packages/rocketchat-livechat/app/client/lib/msgTyping.js @@ -1,4 +1,6 @@ /* globals Notifications */ +import visitor from '../../imports/client/visitor'; + export const MsgTyping = (function() { const timeout = 15000; const timeouts = {}; @@ -34,7 +36,7 @@ export const MsgTyping = (function() { }; Tracker.autorun(() => { - if (visitor.getRoom() && Meteor.userId()) { + if (visitor.getRoom() && visitor.getId()) { addStream(visitor.getRoom()); } }); diff --git a/packages/rocketchat-livechat/app/client/lib/triggers.js b/packages/rocketchat-livechat/app/client/lib/triggers.js index e303ef110937..72f68df99294 100644 --- a/packages/rocketchat-livechat/app/client/lib/triggers.js +++ b/packages/rocketchat-livechat/app/client/lib/triggers.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + this.Triggers = (function() { let triggers = []; let initiated = false; @@ -5,7 +7,7 @@ this.Triggers = (function() { let enabled = true; const fire = function(trigger) { - if (!enabled || Meteor.userId()) { + if (!enabled || visitor.getId()) { return; } trigger.actions.forEach(function(action) { diff --git a/packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js b/packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js index 35c8844fa881..89b0f0e7a720 100644 --- a/packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js +++ b/packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + Meteor.methods({ sendMessageLivechat(message) { if (s.trim(message.msg) !== '') { @@ -10,7 +12,7 @@ Meteor.methods({ const user = Meteor.user(); message.u = { - _id: Meteor.userId(), + _id: visitor.getId(), username: user && user.username || 'visitor' }; diff --git a/packages/rocketchat-livechat/app/client/routes/router.js b/packages/rocketchat-livechat/app/client/routes/router.js index 6762a019a5e2..9b6e69af2952 100644 --- a/packages/rocketchat-livechat/app/client/routes/router.js +++ b/packages/rocketchat-livechat/app/client/routes/router.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + BlazeLayout.setRoot('body'); FlowRouter.route('/livechat', { diff --git a/packages/rocketchat-livechat/app/client/startup/visitor.js b/packages/rocketchat-livechat/app/client/startup/visitor.js index bd27d17e99af..c9aae1ecac63 100644 --- a/packages/rocketchat-livechat/app/client/startup/visitor.js +++ b/packages/rocketchat-livechat/app/client/startup/visitor.js @@ -1,21 +1,18 @@ -this.visitorId = new ReactiveVar(null); +import visitor from '../../imports/client/visitor'; Meteor.startup(() => { if (!localStorage.getItem('rocketChatLivechat')) { localStorage.setItem('rocketChatLivechat', Random.id()); } else { Tracker.autorun(c => { - if (!Meteor.userId() && visitor.getToken()) { + if (!visitor.getId() && visitor.getToken()) { Meteor.call('livechat:loginByToken', visitor.getToken(), (err, result) => { - if (result && result.token) { - Meteor.loginWithToken(result.token, () => { - c.stop(); - }); + if (result && result._id) { + visitor.setId(result._id); + c.stop(); } }); } }); } - - this.visitorId.set(localStorage.getItem('rocketChatLivechat')); }); diff --git a/packages/rocketchat-livechat/app/client/views/avatar.js b/packages/rocketchat-livechat/app/client/views/avatar.js index 5ab46c366a45..e863c6ba45aa 100644 --- a/packages/rocketchat-livechat/app/client/views/avatar.js +++ b/packages/rocketchat-livechat/app/client/views/avatar.js @@ -6,6 +6,7 @@ Template.avatar.helpers({ username = user && user.username; } + // @TODO get visitor username const currentUser = Meteor.users.findOne(Meteor.userId(), { fields: { username: 1 }}); if (!username || (currentUser && currentUser.username === username)) { return; diff --git a/packages/rocketchat-livechat/app/client/views/livechatWindow.js b/packages/rocketchat-livechat/app/client/views/livechatWindow.js index fcbe88f9587d..0d56c2561c2c 100644 --- a/packages/rocketchat-livechat/app/client/views/livechatWindow.js +++ b/packages/rocketchat-livechat/app/client/views/livechatWindow.js @@ -1,4 +1,5 @@ /* globals Department, Livechat, LivechatVideoCall */ +import visitor from '../../imports/client/visitor'; Template.livechatWindow.helpers({ title() { @@ -17,7 +18,7 @@ Template.livechatWindow.helpers({ return Session.get('sound'); }, showRegisterForm() { - if (Session.get('triggered') || Meteor.userId()) { + if (Session.get('triggered') || visitor.getId()) { return false; } return Livechat.registrationForm; diff --git a/packages/rocketchat-livechat/app/client/views/message.js b/packages/rocketchat-livechat/app/client/views/message.js index 86c64ed26e79..880fb0edbca7 100644 --- a/packages/rocketchat-livechat/app/client/views/message.js +++ b/packages/rocketchat-livechat/app/client/views/message.js @@ -1,9 +1,11 @@ /* globals Livechat, t, tr, livechatAutolinker */ import moment from 'moment'; +import visitor from '../../imports/client/visitor'; Template.message.helpers({ own() { - if (this.u && this.u._id === Meteor.userId()) { + console.log(this.u._id, visitor.getId()); + if (this.u && this.u._id === visitor.getId()) { return 'own'; } }, diff --git a/packages/rocketchat-livechat/app/client/views/messages.js b/packages/rocketchat-livechat/app/client/views/messages.js index 9c0fe36b43e9..c6523802f77a 100644 --- a/packages/rocketchat-livechat/app/client/views/messages.js +++ b/packages/rocketchat-livechat/app/client/views/messages.js @@ -1,4 +1,5 @@ /* globals Livechat, LivechatVideoCall, MsgTyping */ +import visitor from '../../imports/client/visitor'; Template.messages.helpers({ messages() { @@ -114,19 +115,14 @@ Template.messages.events({ 'click .video-button'(event) { event.preventDefault(); - if (!Meteor.userId()) { + if (!visitor.getId()) { Meteor.call('livechat:registerGuest', { token: visitor.getToken() }, (error, result) => { if (error) { return console.log(error.reason); } - Meteor.loginWithToken(result.token, (error) => { - if (error) { - return console.log(error.reason); - } - - LivechatVideoCall.request(); - }); + visitor.setId(result._id); + LivechatVideoCall.request(); }); } else { LivechatVideoCall.request(); diff --git a/packages/rocketchat-livechat/app/client/views/options.js b/packages/rocketchat-livechat/app/client/views/options.js index 0329f6c73f63..ec5bc787377f 100644 --- a/packages/rocketchat-livechat/app/client/views/options.js +++ b/packages/rocketchat-livechat/app/client/views/options.js @@ -1,4 +1,5 @@ /* globals Department, Livechat */ +import visitor from '../../imports/client/visitor'; Template.options.helpers({ showDepartments() { diff --git a/packages/rocketchat-livechat/app/client/views/register.js b/packages/rocketchat-livechat/app/client/views/register.js index 607d2e57c768..e26e1ee68ef8 100644 --- a/packages/rocketchat-livechat/app/client/views/register.js +++ b/packages/rocketchat-livechat/app/client/views/register.js @@ -1,4 +1,5 @@ /* globals Department, Livechat, LivechatVideoCall */ +import visitor from '../../imports/client/visitor'; Template.register.helpers({ error() { @@ -56,12 +57,8 @@ Template.register.events({ return instance.showError(error.reason); } parentCall('callback', ['pre-chat-form-submit', _.omit(guest, 'token')]); - Meteor.loginWithToken(result.token, function(error) { - if (error) { - return instance.showError(error.reason); - } - start(); - }); + visitor.setId(result._id); + start(); }); } }, diff --git a/packages/rocketchat-livechat/app/client/views/survey.js b/packages/rocketchat-livechat/app/client/views/survey.js index 51d3928cd668..fb53137c9cee 100644 --- a/packages/rocketchat-livechat/app/client/views/survey.js +++ b/packages/rocketchat-livechat/app/client/views/survey.js @@ -1,3 +1,5 @@ +import visitor from '../../imports/client/visitor'; + Template.survey.events({ 'click button.skip'(e, instance) { instance.$('#survey').remove(); diff --git a/packages/rocketchat-livechat/app/client/views/switchDepartment.js b/packages/rocketchat-livechat/app/client/views/switchDepartment.js index 70ce6893d17b..803ec46d442d 100644 --- a/packages/rocketchat-livechat/app/client/views/switchDepartment.js +++ b/packages/rocketchat-livechat/app/client/views/switchDepartment.js @@ -1,4 +1,5 @@ /* globals Department, Livechat */ +import visitor from '../../imports/client/visitor'; Template.switchDepartment.helpers({ departments() { diff --git a/packages/rocketchat-livechat/app/client/lib/_visitor.js b/packages/rocketchat-livechat/app/imports/client/visitor.js similarity index 76% rename from packages/rocketchat-livechat/app/client/lib/_visitor.js rename to packages/rocketchat-livechat/app/imports/client/visitor.js index 21080388f652..ccc0937d4270 100644 --- a/packages/rocketchat-livechat/app/client/lib/_visitor.js +++ b/packages/rocketchat-livechat/app/imports/client/visitor.js @@ -1,13 +1,12 @@ /* globals Commands */ const msgStream = new Meteor.Streamer('room-messages'); -this.visitor = new class { - constructor() { - this.token = new ReactiveVar(null); - this.room = new ReactiveVar(null); - this.roomToSubscribe = new ReactiveVar(null); - this.roomSubscribed = null; - } +export default { + id: new ReactiveVar(null), + token: new ReactiveVar(null), + room: new ReactiveVar(null), + roomToSubscribe: new ReactiveVar(null), + roomSubscribed: null, register() { if (!localStorage.getItem('visitorToken')) { @@ -15,15 +14,23 @@ this.visitor = new class { } this.token.set(localStorage.getItem('visitorToken')); - } + }, + + getId() { + return this.id.get(); + }, + + setId(id) { + return this.id.set(id); + }, getToken() { return this.token.get(); - } + }, setRoom(rid) { this.room.set(rid); - } + }, getRoom(createOnEmpty = false) { let roomId = this.room.get(); @@ -33,11 +40,11 @@ this.visitor = new class { } return roomId; - } + }, isSubscribed(roomId) { return this.roomSubscribed === roomId; - } + }, subscribeToRoom(roomId) { if (this.roomSubscribed && this.roomSubscribed === roomId) { @@ -57,7 +64,7 @@ this.visitor = new class { } // notification sound - if (Session.equals('sound', true) && msg.u._id !== Meteor.userId()) { + if (Session.equals('sound', true) && msg.u._id !== this.getId()) { $('#chatAudioNotification')[0].play(); } } diff --git a/packages/rocketchat-livechat/imports/server/rest/sms.js b/packages/rocketchat-livechat/imports/server/rest/sms.js index c01a1b34fb06..31d5b4e13df7 100644 --- a/packages/rocketchat-livechat/imports/server/rest/sms.js +++ b/packages/rocketchat-livechat/imports/server/rest/sms.js @@ -1,10 +1,12 @@ +import LivechatVisitors from '../../../server/models/LivechatVisitors'; + RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { post() { const SMSService = RocketChat.SMS.getService(this.urlParams.service); const sms = SMSService.parse(this.bodyParams); - let visitor = RocketChat.models.Users.findOneVisitorByPhone(sms.from); + let visitor = LivechatVisitors.findOneVisitorByPhone(sms.from); const sendMessage = { message: { @@ -18,14 +20,14 @@ RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { }; if (visitor) { - const rooms = RocketChat.models.Rooms.findOpenByVisitorToken(visitor.profile.token).fetch(); + const rooms = RocketChat.models.Rooms.findOpenByVisitorToken(visitor.token).fetch(); if (rooms && rooms.length > 0) { sendMessage.message.rid = rooms[0]._id; } else { sendMessage.message.rid = Random.id(); } - sendMessage.message.token = visitor.profile.token; + sendMessage.message.token = visitor.token; } else { sendMessage.message.rid = Random.id(); sendMessage.message.token = Random.id(); diff --git a/packages/rocketchat-livechat/package.js b/packages/rocketchat-livechat/package.js index 26451fc650ac..7f162cbb2c63 100644 --- a/packages/rocketchat-livechat/package.js +++ b/packages/rocketchat-livechat/package.js @@ -138,6 +138,7 @@ Package.onUse(function(api) { api.addFiles('server/methods/getCustomFields.js', 'server'); api.addFiles('server/methods/getAgentData.js', 'server'); api.addFiles('server/methods/getInitialData.js', 'server'); + api.addFiles('server/methods/loadHistory.js', 'server'); api.addFiles('server/methods/loginByToken.js', 'server'); api.addFiles('server/methods/pageVisited.js', 'server'); api.addFiles('server/methods/registerGuest.js', 'server'); diff --git a/packages/rocketchat-livechat/server/lib/Livechat.js b/packages/rocketchat-livechat/server/lib/Livechat.js index aa9200a1ac9c..778906758862 100644 --- a/packages/rocketchat-livechat/server/lib/Livechat.js +++ b/packages/rocketchat-livechat/server/lib/Livechat.js @@ -1,5 +1,6 @@ /* globals HTTP */ import UAParser from 'ua-parser-js'; +import LivechatVisitors from '../models/LivechatVisitors'; RocketChat.Livechat = { historyMonitorType: 'url', @@ -58,11 +59,12 @@ RocketChat.Livechat = { room = RocketChat.QueueMethods[routingMethod](guest, message, roomInfo); newRoom = true; - } else { - room = Meteor.call('canAccessRoom', message.rid, guest._id); } - if (!room) { - throw new Meteor.Error('cannot-acess-room'); + console.log('getRoom.room ->', room); + console.log('getRoom.guest ->', guest); + + if (room.v.token !== guest.token) { + throw new Meteor.Error('cannot-access-room'); } return { room, newRoom }; @@ -76,53 +78,49 @@ RocketChat.Livechat = { // return messages; return _.extend(RocketChat.sendMessage(guest, message, room), { newRoom, showConnecting: this.showConnecting() }); }, - registerGuest({ token, name, email, department, phone, loginToken, username } = {}) { + registerGuest({ token, name, email, department, phone, username } = {}) { check(token, String); let userId; const updateUser = { $set: { - profile: { - guest: true, - token - } + token } }; - const user = RocketChat.models.Users.getVisitorByToken(token, { fields: { _id: 1 } }); + const user = LivechatVisitors.getVisitorByToken(token, { fields: { _id: 1 } }); if (user) { userId = user._id; - if (loginToken) { - if (!updateUser.$addToSet) { - updateUser.$addToSet = {}; - } - updateUser.$addToSet['services.resume.loginTokens'] = loginToken; - } + // if (loginToken) { + // if (!updateUser.$addToSet) { + // updateUser.$addToSet = {}; + // } + // updateUser.$addToSet['services.resume.loginTokens'] = loginToken; + // } } else { if (!username) { - username = RocketChat.models.Users.getNextVisitorUsername(); + username = LivechatVisitors.getNextVisitorUsername(); } let existingUser = null; - if (s.trim(email) !== '' && (existingUser = RocketChat.models.Users.findOneGuestByEmailAddress(email))) { - if (loginToken) { - if (!updateUser.$addToSet) { - updateUser.$addToSet = {}; - } - updateUser.$addToSet['services.resume.loginTokens'] = loginToken; - } + if (s.trim(email) !== '' && (existingUser = LivechatVisitors.findOneGuestByEmailAddress(email))) { + // if (loginToken) { + // if (!updateUser.$addToSet) { + // updateUser.$addToSet = {}; + // } + // updateUser.$addToSet['services.resume.loginTokens'] = loginToken; + // } userId = existingUser._id; } else { - const userData = { username, - globalRoles: ['livechat-guest'], - department, - type: 'visitor', - joinDefaultChannels: false + // globalRoles: ['livechat-guest'], + department + // type: 'visitor', + // joinDefaultChannels: false }; if (this.connection) { @@ -131,15 +129,16 @@ RocketChat.Livechat = { userData.host = this.connection.httpHeaders.host; } - userId = Accounts.insertUserDoc({}, userData); + // userId = Accounts.insertUserDoc({}, userData); - if (loginToken) { - updateUser.$set.services = { - resume: { - loginTokens: [ loginToken ] - } - }; - } + // if (loginToken) { + // updateUser.$set.services = { + // resume: { + // loginTokens: [ loginToken ] + // } + // }; + // } + userId = LivechatVisitors.insert(userData); } } @@ -156,10 +155,10 @@ RocketChat.Livechat = { } if (name) { - RocketChat._setRealName(userId, name); + updateUser.$set.name = name; } - Meteor.users.update(userId, updateUser); + LivechatVisitors.updateById(userId, updateUser); return userId; }, @@ -172,7 +171,7 @@ RocketChat.Livechat = { } }; - const user = RocketChat.models.Users.getVisitorByToken(token, { fields: { _id: 1 } }); + const user = LivechatVisitors.getVisitorByToken(token, { fields: { _id: 1 } }); if (user) { return Meteor.users.update(user._id, updateUser); } @@ -190,7 +189,7 @@ RocketChat.Livechat = { if (phone) { updateData.phone = phone; } - const ret = RocketChat.models.Users.saveGuestById(_id, updateData); + const ret = LivechatVisitors.saveGuestById(_id, updateData); Meteor.defer(() => { RocketChat.callbacks.run('livechat.saveGuest', updateData); @@ -534,7 +533,9 @@ RocketChat.Livechat = { }; RocketChat.Livechat.stream = new Meteor.Streamer('livechat-room'); -RocketChat.Livechat.stream.allowRead('logged'); + +// @TODO create a allow function +RocketChat.Livechat.stream.allowRead('all'); RocketChat.settings.get('Livechat_history_monitor_type', (key, value) => { RocketChat.Livechat.historyMonitorType = value; diff --git a/packages/rocketchat-livechat/server/methods/getAgentData.js b/packages/rocketchat-livechat/server/methods/getAgentData.js index 98f8e2808ae8..75a6981abb51 100644 --- a/packages/rocketchat-livechat/server/methods/getAgentData.js +++ b/packages/rocketchat-livechat/server/methods/getAgentData.js @@ -1,12 +1,15 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.methods({ - 'livechat:getAgentData'(roomId) { + 'livechat:getAgentData'({ roomId, token }) { check(roomId, String); + check(token, String); const room = RocketChat.models.Rooms.findOneById(roomId); - const user = Meteor.user(); + const visitor = LivechatVisitors.getVisitorByToken(token); // allow to only user to send transcripts from their own chats - if (!room || room.t !== 'l' || !room.v || !user.profile || room.v.token !== user.profile.token) { + if (!room || room.t !== 'l' || !room.v || room.v.token !== visitor.token) { throw new Meteor.Error('error-invalid-room', 'Invalid room'); } diff --git a/packages/rocketchat-livechat/server/methods/loadHistory.js b/packages/rocketchat-livechat/server/methods/loadHistory.js new file mode 100644 index 000000000000..fdbab8bcc23c --- /dev/null +++ b/packages/rocketchat-livechat/server/methods/loadHistory.js @@ -0,0 +1,13 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + +Meteor.methods({ + 'livechat:loadHistory'({ token, rid, end, limit = 20, ls}) { + const visitor = LivechatVisitors.getVisitorByToken(token, { fields: { _id: 1 } }); + + if (!visitor) { + return; + } + + return RocketChat.loadMessageHistory({ userId: visitor._id, rid, end, limit, ls }); + } +}); diff --git a/packages/rocketchat-livechat/server/methods/loginByToken.js b/packages/rocketchat-livechat/server/methods/loginByToken.js index 78c08a4d454f..264e97caaa7a 100644 --- a/packages/rocketchat-livechat/server/methods/loginByToken.js +++ b/packages/rocketchat-livechat/server/methods/loginByToken.js @@ -1,28 +1,34 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.methods({ 'livechat:loginByToken'(token) { - const user = RocketChat.models.Users.getVisitorByToken(token, { fields: { _id: 1 } }); + const user = LivechatVisitors.getVisitorByToken(token, { fields: { _id: 1 } }); if (!user) { return; } - const stampedToken = Accounts._generateStampedLoginToken(); - const hashStampedToken = Accounts._hashStampedToken(stampedToken); - - const updateUser = { - $set: { - services: { - resume: { - loginTokens: [ hashStampedToken ] - } - } - } + return { + _id: user._id }; - Meteor.users.update(user._id, updateUser); + // const stampedToken = Accounts._generateStampedLoginToken(); + // const hashStampedToken = Accounts._hashStampedToken(stampedToken); - return { - token: stampedToken.token - }; + // const updateUser = { + // $set: { + // services: { + // resume: { + // loginTokens: [ hashStampedToken ] + // } + // } + // } + // }; + + // Meteor.users.update(user._id, updateUser); + + // return { + // token: stampedToken.token + // }; } }); diff --git a/packages/rocketchat-livechat/server/methods/registerGuest.js b/packages/rocketchat-livechat/server/methods/registerGuest.js index 9dcc0b9082cd..303fd58a9075 100644 --- a/packages/rocketchat-livechat/server/methods/registerGuest.js +++ b/packages/rocketchat-livechat/server/methods/registerGuest.js @@ -1,22 +1,20 @@ Meteor.methods({ 'livechat:registerGuest'({ token, name, email, department } = {}) { - const stampedToken = Accounts._generateStampedLoginToken(); - const hashStampedToken = Accounts._hashStampedToken(stampedToken); + // const stampedToken = Accounts._generateStampedLoginToken(); + // const hashStampedToken = Accounts._hashStampedToken(stampedToken); const userId = RocketChat.Livechat.registerGuest.call(this, { token, name, email, - department, - loginToken: hashStampedToken + department }); // update visited page history to not expire RocketChat.models.LivechatPageVisited.keepHistoryForToken(token); return { - userId, - token: stampedToken.token + userId }; } }); diff --git a/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js b/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js index 4d04b268f051..bf313234f7d2 100644 --- a/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js +++ b/packages/rocketchat-livechat/server/methods/saveSurveyFeedback.js @@ -1,4 +1,5 @@ /* eslint new-cap: [2, {"capIsNewExceptions": ["Match.ObjectIncluding"]}] */ +import LivechatVisitors from '../models/LivechatVisitors'; Meteor.methods({ 'livechat:saveSurveyFeedback'(visitorToken, visitorRoom, formData) { @@ -6,10 +7,10 @@ Meteor.methods({ check(visitorRoom, String); check(formData, [Match.ObjectIncluding({ name: String, value: String })]); - const visitor = RocketChat.models.Users.getVisitorByToken(visitorToken); + const visitor = LivechatVisitors.getVisitorByToken(visitorToken); const room = RocketChat.models.Rooms.findOneById(visitorRoom); - if (visitor !== undefined && room !== undefined && room.v !== undefined && visitor.profile !== undefined && room.v.token === visitor.profile.token) { + if (visitor !== undefined && room !== undefined && room.v !== undefined && room.v.token === visitor.token) { const updateData = {}; for (const item of formData) { if (_.contains(['satisfaction', 'agentKnowledge', 'agentResposiveness', 'agentFriendliness'], item.name) && _.contains(['1', '2', '3', '4', '5'], item.value)) { diff --git a/packages/rocketchat-livechat/server/methods/sendMessageLivechat.js b/packages/rocketchat-livechat/server/methods/sendMessageLivechat.js index b34c80019d98..4dabd29c07cf 100644 --- a/packages/rocketchat-livechat/server/methods/sendMessageLivechat.js +++ b/packages/rocketchat-livechat/server/methods/sendMessageLivechat.js @@ -1,16 +1,35 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.methods({ - sendMessageLivechat(message) { - check(message.rid, String); - check(message.token, String); + sendMessageLivechat({ token, _id, rid, msg }) { + check(token, String); + check(_id, String); + check(rid, String); + check(msg, String); - const guest = Meteor.users.findOne(Meteor.userId(), { + const guest = LivechatVisitors.getVisitorByToken(token, { fields: { name: 1, username: 1, - department: 1 + department: 1, + token: 1 } }); - return RocketChat.Livechat.sendMessage({ guest, message }); + console.log('guest ->', guest); + + if (!guest) { + throw new Meteor.Error('invalid-token'); + } + + return RocketChat.Livechat.sendMessage({ + guest, + message: { + _id, + rid, + msg, + token + } + }); } }); diff --git a/packages/rocketchat-livechat/server/methods/sendTranscript.js b/packages/rocketchat-livechat/server/methods/sendTranscript.js index a37a874a9c4f..2b5474718e8c 100644 --- a/packages/rocketchat-livechat/server/methods/sendTranscript.js +++ b/packages/rocketchat-livechat/server/methods/sendTranscript.js @@ -12,7 +12,7 @@ Meteor.methods({ const userLanguage = user.language || RocketChat.settings.get('language') || 'en'; // allow to only user to send transcripts from their own chats - if (!room || room.t !== 'l' || !room.v || !user.profile || room.v.token !== user.profile.token) { + if (!room || room.t !== 'l' || !room.v || room.v.token !== user.token) { throw new Meteor.Error('error-invalid-room', 'Invalid room'); } diff --git a/packages/rocketchat-livechat/server/methods/setCustomField.js b/packages/rocketchat-livechat/server/methods/setCustomField.js index 5187cedde36e..1ff16847a5a0 100644 --- a/packages/rocketchat-livechat/server/methods/setCustomField.js +++ b/packages/rocketchat-livechat/server/methods/setCustomField.js @@ -1,3 +1,5 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.methods({ 'livechat:setCustomField'(token, key, value, overwrite = true) { const customField = RocketChat.models.LivechatCustomField.findOneById(key); @@ -6,7 +8,7 @@ Meteor.methods({ return RocketChat.models.Rooms.updateLivechatDataByToken(token, key, value, overwrite); } else { // Save in user - return RocketChat.models.Users.updateLivechatDataByToken(token, key, value, overwrite); + return LivechatVisitors.updateLivechatDataByToken(token, key, value, overwrite); } } diff --git a/packages/rocketchat-livechat/server/models/LivechatVisitors.js b/packages/rocketchat-livechat/server/models/LivechatVisitors.js new file mode 100644 index 000000000000..13881cbcf0ef --- /dev/null +++ b/packages/rocketchat-livechat/server/models/LivechatVisitors.js @@ -0,0 +1,148 @@ +class LivechatVisitors extends RocketChat.models._Base { + constructor() { + super('livechat_visitor'); + } + + /** + * Gets visitor by token + * @param {string} token - Visitor token + */ + getVisitorByToken(token, options) { + const query = { + token + }; + + return this.findOne(query, options); + } + + /** + * Gets visitor by token + * @param {string} token - Visitor token + */ + findVisitorByToken(token) { + const query = { + token + }; + + return this.find(query); + } + + updateLivechatDataByToken(token, key, value, overwrite = true) { + const query = { + token + }; + + if (!overwrite) { + const user = this.findOne(query, { fields: { livechatData: 1 } }); + if (user.livechatData && typeof user.livechatData[key] !== 'undefined') { + return true; + } + } + + const update = { + $set: { + [`livechatData.${ key }`]: value + } + }; + + return this.update(query, update); + } + + /** + * Find a visitor by their phone number + * @return {object} User from db + */ + findOneVisitorByPhone(phone) { + const query = { + 'phone.phoneNumber': phone + }; + + return this.findOne(query); + } + + /** + * Get the next visitor name + * @return {string} The next visitor name + */ + getNextVisitorUsername() { + const settingsRaw = RocketChat.models.Settings.model.rawCollection(); + const findAndModify = Meteor.wrapAsync(settingsRaw.findAndModify, settingsRaw); + + const query = { + _id: 'Livechat_guest_count' + }; + + const update = { + $inc: { + value: 1 + } + }; + + const livechatCount = findAndModify(query, null, update); + + return `guest-${ livechatCount.value.value + 1 }`; + } + + updateById(_id, update) { + return this.update({ _id }, update); + } + + saveGuestById(_id, data) { + const setData = {}; + const unsetData = {}; + + if (data.name) { + if (!_.isEmpty(s.trim(data.name))) { + setData.name = s.trim(data.name); + } else { + unsetData.name = 1; + } + } + + if (data.email) { + if (!_.isEmpty(s.trim(data.email))) { + setData.visitorEmails = [ + { address: s.trim(data.email) } + ]; + } else { + unsetData.visitorEmails = 1; + } + } + + if (data.phone) { + if (!_.isEmpty(s.trim(data.phone))) { + setData.phone = [ + { phoneNumber: s.trim(data.phone) } + ]; + } else { + unsetData.phone = 1; + } + } + + const update = {}; + + if (!_.isEmpty(setData)) { + update.$set = setData; + } + + if (!_.isEmpty(unsetData)) { + update.$unset = unsetData; + } + + if (_.isEmpty(update)) { + return true; + } + + return this.update({ _id }, update); + } + + findOneGuestByEmailAddress(emailAddress) { + const query = { + 'visitorEmails.address': new RegExp(`^${ s.escapeRegExp(emailAddress) }$`, 'i') + }; + + return this.findOne(query); + } +} + +export default new LivechatVisitors(); diff --git a/packages/rocketchat-livechat/server/models/Users.js b/packages/rocketchat-livechat/server/models/Users.js index 75cd14114d79..0c341d635216 100644 --- a/packages/rocketchat-livechat/server/models/Users.js +++ b/packages/rocketchat-livechat/server/models/Users.js @@ -102,32 +102,6 @@ RocketChat.models.Users.getNextAgent = function() { } }; -/** - * Gets visitor by token - * @param {string} token - Visitor token - */ -RocketChat.models.Users.getVisitorByToken = function(token, options) { - const query = { - 'profile.guest': true, - 'profile.token': token - }; - - return this.findOne(query, options); -}; - -/** - * Gets visitor by token - * @param {string} token - Visitor token - */ -RocketChat.models.Users.findVisitorByToken = function(token) { - const query = { - 'profile.guest': true, - 'profile.token': token - }; - - return this.find(query); -}; - /** * Change user's livechat status * @param {string} token - Visitor token @@ -166,119 +140,6 @@ RocketChat.models.Users.openOffice = function() { }); }; -RocketChat.models.Users.updateLivechatDataByToken = function(token, key, value, overwrite = true) { - const query = { - 'profile.token': token - }; - - if (!overwrite) { - const user = this.findOne(query, { fields: { livechatData: 1 } }); - if (user.livechatData && typeof user.livechatData[key] !== 'undefined') { - return true; - } - } - - const update = { - $set: { - [`livechatData.${ key }`]: value - } - }; - - return this.update(query, update); -}; - -/** - * Find a visitor by their phone number - * @return {object} User from db - */ -RocketChat.models.Users.findOneVisitorByPhone = function(phone) { - const query = { - 'phone.phoneNumber': phone - }; - - return this.findOne(query); -}; - -/** - * Get the next visitor name - * @return {string} The next visitor name - */ -RocketChat.models.Users.getNextVisitorUsername = function() { - const settingsRaw = RocketChat.models.Settings.model.rawCollection(); - const findAndModify = Meteor.wrapAsync(settingsRaw.findAndModify, settingsRaw); - - const query = { - _id: 'Livechat_guest_count' - }; - - const update = { - $inc: { - value: 1 - } - }; - - const livechatCount = findAndModify(query, null, update); - - return `guest-${ livechatCount.value.value + 1 }`; -}; - -RocketChat.models.Users.saveGuestById = function(_id, data) { - const setData = {}; - const unsetData = {}; - - if (data.name) { - if (!_.isEmpty(s.trim(data.name))) { - setData.name = s.trim(data.name); - } else { - unsetData.name = 1; - } - } - - if (data.email) { - if (!_.isEmpty(s.trim(data.email))) { - setData.visitorEmails = [ - { address: s.trim(data.email) } - ]; - } else { - unsetData.visitorEmails = 1; - } - } - - if (data.phone) { - if (!_.isEmpty(s.trim(data.phone))) { - setData.phone = [ - { phoneNumber: s.trim(data.phone) } - ]; - } else { - unsetData.phone = 1; - } - } - - const update = {}; - - if (!_.isEmpty(setData)) { - update.$set = setData; - } - - if (!_.isEmpty(unsetData)) { - update.$unset = unsetData; - } - - if (_.isEmpty(update)) { - return true; - } - - return this.update({ _id }, update); -}; - -RocketChat.models.Users.findOneGuestByEmailAddress = function(emailAddress) { - const query = { - 'visitorEmails.address': new RegExp(`^${ s.escapeRegExp(emailAddress) }$`, 'i') - }; - - return this.findOne(query); -}; - RocketChat.models.Users.getAgentInfo = function(agentId) { const query = { _id: agentId diff --git a/packages/rocketchat-livechat/server/rest/sms.js b/packages/rocketchat-livechat/server/rest/sms.js index c01a1b34fb06..6bb7d63fead1 100644 --- a/packages/rocketchat-livechat/server/rest/sms.js +++ b/packages/rocketchat-livechat/server/rest/sms.js @@ -1,10 +1,12 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { post() { const SMSService = RocketChat.SMS.getService(this.urlParams.service); const sms = SMSService.parse(this.bodyParams); - let visitor = RocketChat.models.Users.findOneVisitorByPhone(sms.from); + let visitor = LivechatVisitors.findOneVisitorByPhone(sms.from); const sendMessage = { message: { @@ -18,14 +20,14 @@ RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { }; if (visitor) { - const rooms = RocketChat.models.Rooms.findOpenByVisitorToken(visitor.profile.token).fetch(); + const rooms = RocketChat.models.Rooms.findOpenByVisitorToken(visitor.token).fetch(); if (rooms && rooms.length > 0) { sendMessage.message.rid = rooms[0]._id; } else { sendMessage.message.rid = Random.id(); } - sendMessage.message.token = visitor.profile.token; + sendMessage.message.token = visitor.token; } else { sendMessage.message.rid = Random.id(); sendMessage.message.token = Random.id(); diff --git a/packages/rocketchat-livechat/server/sendMessageBySMS.js b/packages/rocketchat-livechat/server/sendMessageBySMS.js index fc849bc9be9c..313d3ce6370f 100644 --- a/packages/rocketchat-livechat/server/sendMessageBySMS.js +++ b/packages/rocketchat-livechat/server/sendMessageBySMS.js @@ -1,3 +1,5 @@ +import LivechatVisitors from './models/LivechatVisitors'; + RocketChat.callbacks.add('afterSaveMessage', function(message, room) { // skips this callback if the message was edited if (message.editedAt) { @@ -29,7 +31,7 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { return message; } - const visitor = RocketChat.models.Users.getVisitorByToken(room.v.token); + const visitor = LivechatVisitors.getVisitorByToken(room.v.token); if (!visitor || !visitor.profile || !visitor.phone || visitor.phone.length === 0) { return message; diff --git a/server/methods/loadHistory.js b/server/methods/loadHistory.js index 31858c9aa821..0e7472870ed1 100644 --- a/server/methods/loadHistory.js +++ b/server/methods/loadHistory.js @@ -1,22 +1,3 @@ -const hideMessagesOfType = []; - -RocketChat.settings.get(/Message_HideType_.+/, function(key, value) { - const type = key.replace('Message_HideType_', ''); - const types = type === 'mute_unmute' ? ['user-muted', 'user-unmuted'] : [type]; - - return types.forEach((type) => { - const index = hideMessagesOfType.indexOf(type); - - if (value === true && index === -1) { - return hideMessagesOfType.push(type); - } - - if (index > -1) { - return hideMessagesOfType.splice(index, 1); - } - }); -}); - Meteor.methods({ loadHistory(rid, end, limit = 20, ls) { check(rid, String); @@ -40,70 +21,6 @@ Meteor.methods({ return false; } - const options = { - sort: { - ts: -1 - }, - limit - }; - - if (!RocketChat.settings.get('Message_ShowEditedStatus')) { - options.fields = { - editedAt: 0 - }; - } - - let records; - if (end != null) { - records = RocketChat.models.Messages.findVisibleByRoomIdBeforeTimestampNotContainingTypes(rid, end, hideMessagesOfType, options).fetch(); - } else { - records = RocketChat.models.Messages.findVisibleByRoomIdNotContainingTypes(rid, hideMessagesOfType, options).fetch(); - } - - const UI_Use_Real_Name = RocketChat.settings.get('UI_Use_Real_Name') === true; - - const messages = records.map((message) => { - message.starred = _.findWhere(message.starred, { - _id: fromId - }); - if (message.u && message.u._id && UI_Use_Real_Name) { - const user = RocketChat.models.Users.findOneById(message.u._id); - message.u.name = user && user.name; - } - if (message.mentions && message.mentions.length && UI_Use_Real_Name) { - message.mentions.forEach((mention) => { - const user = RocketChat.models.Users.findOneById(mention._id); - mention.name = user && user.name; - }); - } - return message; - }); - - let unreadNotLoaded = 0; - let firstUnread; - - if (ls != null) { - const firstMessage = messages[messages.length - 1]; - - if ((firstMessage != null ? firstMessage.ts : undefined) > ls) { - delete options.limit; - - const unreadMessages = RocketChat.models.Messages.findVisibleByRoomIdBetweenTimestampsNotContainingTypes(rid, ls, firstMessage.ts, hideMessagesOfType, { - limit: 1, - sort: { - ts: 1 - } - }); - - firstUnread = unreadMessages.fetch()[0]; - unreadNotLoaded = unreadMessages.count(); - } - } - - return { - messages, - firstUnread, - unreadNotLoaded - }; + return RocketChat.loadMessageHistory({ userId: fromId, rid, end, limit, ls }); } }); diff --git a/server/stream/messages.js b/server/stream/messages.js index 96afa00f6bc7..94dded4a9485 100644 --- a/server/stream/messages.js +++ b/server/stream/messages.js @@ -3,24 +3,26 @@ this.msgStream = msgStream; msgStream.allowWrite('none'); -msgStream.allowRead(function(eventName) { - try { - const room = Meteor.call('canAccessRoom', eventName, this.userId); +msgStream.allowRead('all'); +// @TODO fix livechat +// msgStream.allowRead(function(eventName) { +// try { +// const room = Meteor.call('canAccessRoom', eventName, this.userId); - if (!room) { - return false; - } +// if (!room) { +// return false; +// } - if (room.t === 'c' && !RocketChat.authz.hasPermission(this.userId, 'preview-c-room') && room.usernames.indexOf(room.username) === -1) { - return false; - } +// if (room.t === 'c' && !RocketChat.authz.hasPermission(this.userId, 'preview-c-room') && room.usernames.indexOf(room.username) === -1) { +// return false; +// } - return true; - } catch (error) { - /*error*/ - return false; - } -}); +// return true; +// } catch (error) { +// /*error*/ +// return false; +// } +// }); msgStream.allowRead('__my_messages__', 'all'); From 98097d6c25ebfc266d82dd197b89b7b8df61aed7 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 9 Jun 2017 10:44:23 -0300 Subject: [PATCH 002/253] Do not show visitor avatar --- packages/rocketchat-livechat/app/client/stylesheets/main.less | 4 ++++ packages/rocketchat-livechat/app/client/views/message.js | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/rocketchat-livechat/app/client/stylesheets/main.less b/packages/rocketchat-livechat/app/client/stylesheets/main.less index afad4f334141..d4f0e14aa553 100644 --- a/packages/rocketchat-livechat/app/client/stylesheets/main.less +++ b/packages/rocketchat-livechat/app/client/stylesheets/main.less @@ -340,6 +340,10 @@ input:focus { left: inherit; } } + + .thumb { + display: none; + } } .delete-message { diff --git a/packages/rocketchat-livechat/app/client/views/message.js b/packages/rocketchat-livechat/app/client/views/message.js index 880fb0edbca7..ac8bcd2b4d12 100644 --- a/packages/rocketchat-livechat/app/client/views/message.js +++ b/packages/rocketchat-livechat/app/client/views/message.js @@ -4,7 +4,6 @@ import visitor from '../../imports/client/visitor'; Template.message.helpers({ own() { - console.log(this.u._id, visitor.getId()); if (this.u && this.u._id === visitor.getId()) { return 'own'; } From affb966b443b8f4b32e34473e2407e081a2108b7 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 9 Jun 2017 10:59:11 -0300 Subject: [PATCH 003/253] Make livechat app folder hidden This will make Meteor ignore changes on this folder which will prevent rebuilds of whole livechat package. For local development it is recommended to run the livechat app individually like on run.sh file. --- .eslintignore | 2 +- .gitignore | 2 +- .travis.yml | 4 ++-- .../{app => .app}/.meteor/.finished-upgraders | 0 packages/rocketchat-livechat/{app => .app}/.meteor/.gitignore | 0 packages/rocketchat-livechat/{app => .app}/.meteor/.id | 0 packages/rocketchat-livechat/{app => .app}/.meteor/packages | 0 packages/rocketchat-livechat/{app => .app}/.meteor/platforms | 0 packages/rocketchat-livechat/{app => .app}/.meteor/release | 0 packages/rocketchat-livechat/{app => .app}/.meteor/versions | 0 .../{app => .app}/client/components/modal.html | 0 .../{app => .app}/client/lib/CustomFields.js | 0 .../{app => .app}/client/lib/LivechatVideoCall.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/_livechat.js | 0 .../{app => .app}/client/lib/autolinker.js | 0 .../{app => .app}/client/lib/chatMessages.js | 0 .../{app => .app}/client/lib/collections.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/commands.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/error.js | 0 .../{app => .app}/client/lib/fromApp/Notifications.js | 0 .../{app => .app}/client/lib/fromApp/RoomHistoryManager.js | 0 .../{app => .app}/client/lib/fromApp/avatar.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/hooks.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/msgTyping.js | 0 .../{app => .app}/client/lib/parentCall.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/tapi18n.js | 0 .../rocketchat-livechat/{app => .app}/client/lib/triggers.js | 0 .../{app => .app}/client/methods/sendMessageExternal.js | 0 .../rocketchat-livechat/{app => .app}/client/routes/router.js | 0 .../{app => .app}/client/startup/customFields.js | 0 .../{app => .app}/client/startup/visitor.js | 0 .../{app => .app}/client/stylesheets/main.less | 0 .../client/stylesheets/utils/_keyframes.import.less | 0 .../client/stylesheets/utils/_loading.import.less | 0 .../{app => .app}/client/stylesheets/utils/_reset.import.less | 0 .../client/stylesheets/utils/_variables.import.less | 0 .../{app => .app}/client/views/avatar.html | 0 .../rocketchat-livechat/{app => .app}/client/views/avatar.js | 0 .../{app => .app}/client/views/livechatWindow.html | 0 .../{app => .app}/client/views/livechatWindow.js | 0 .../{app => .app}/client/views/loading.html | 0 .../rocketchat-livechat/{app => .app}/client/views/main.html | 0 .../{app => .app}/client/views/message.html | 0 .../rocketchat-livechat/{app => .app}/client/views/message.js | 0 .../{app => .app}/client/views/messages.html | 0 .../{app => .app}/client/views/messages.js | 0 .../{app => .app}/client/views/offlineForm.html | 0 .../{app => .app}/client/views/offlineForm.js | 0 .../{app => .app}/client/views/options.html | 0 .../rocketchat-livechat/{app => .app}/client/views/options.js | 0 .../{app => .app}/client/views/poweredBy.html | 0 .../{app => .app}/client/views/register.html | 0 .../{app => .app}/client/views/register.js | 0 .../{app => .app}/client/views/survey.html | 0 .../rocketchat-livechat/{app => .app}/client/views/survey.js | 0 .../{app => .app}/client/views/switchDepartment.html | 0 .../{app => .app}/client/views/switchDepartment.js | 0 .../{app => .app}/client/views/videoCall.html | 0 .../{app => .app}/client/views/videoCall.js | 0 packages/rocketchat-livechat/{app => .app}/i18n/ar.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/az.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/bg.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ca.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/cs.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/da.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/de-AT.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/de.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/el.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/en.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/eo.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/es.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/fa.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/fi.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/fr.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/he.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/hr.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/hu.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/id.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/it.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ja.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/km.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ko.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ku.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/lo.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/lt.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/ms-MY.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/nl.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/no.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/pl.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/pt-BR.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/pt.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ro.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ru.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/sq.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/sr.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/sv.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/ta-IN.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/tr.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/ug.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/uk.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/zh-HK.i18n.json | 0 .../rocketchat-livechat/{app => .app}/i18n/zh-TW.i18n.json | 0 packages/rocketchat-livechat/{app => .app}/i18n/zh.i18n.json | 0 .../{app => .app}/imports/client/visitor.js | 0 packages/rocketchat-livechat/{app => .app}/package.json | 0 packages/rocketchat-livechat/{app => .app}/run.sh | 0 packages/rocketchat-livechat/plugin/build.bat | 2 +- packages/rocketchat-livechat/plugin/build.sh | 2 +- private/node_scripts/auto-translate.js | 2 +- 109 files changed, 7 insertions(+), 7 deletions(-) rename packages/rocketchat-livechat/{app => .app}/.meteor/.finished-upgraders (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/.gitignore (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/.id (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/packages (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/platforms (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/release (100%) rename packages/rocketchat-livechat/{app => .app}/.meteor/versions (100%) rename packages/rocketchat-livechat/{app => .app}/client/components/modal.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/CustomFields.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/LivechatVideoCall.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/_livechat.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/autolinker.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/chatMessages.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/collections.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/commands.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/error.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/fromApp/Notifications.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/fromApp/RoomHistoryManager.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/fromApp/avatar.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/hooks.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/msgTyping.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/parentCall.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/tapi18n.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/lib/triggers.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/methods/sendMessageExternal.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/routes/router.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/startup/customFields.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/startup/visitor.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/stylesheets/main.less (100%) rename packages/rocketchat-livechat/{app => .app}/client/stylesheets/utils/_keyframes.import.less (100%) rename packages/rocketchat-livechat/{app => .app}/client/stylesheets/utils/_loading.import.less (100%) rename packages/rocketchat-livechat/{app => .app}/client/stylesheets/utils/_reset.import.less (100%) rename packages/rocketchat-livechat/{app => .app}/client/stylesheets/utils/_variables.import.less (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/avatar.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/avatar.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/livechatWindow.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/livechatWindow.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/loading.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/main.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/message.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/message.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/messages.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/messages.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/offlineForm.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/offlineForm.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/options.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/options.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/poweredBy.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/register.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/register.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/survey.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/survey.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/switchDepartment.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/switchDepartment.js (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/videoCall.html (100%) rename packages/rocketchat-livechat/{app => .app}/client/views/videoCall.js (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ar.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/az.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/bg.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ca.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/cs.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/da.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/de-AT.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/de.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/el.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/en.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/eo.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/es.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/fa.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/fi.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/fr.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/he.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/hr.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/hu.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/id.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/it.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ja.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/km.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ko.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ku.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/lo.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/lt.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ms-MY.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/nl.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/no.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/pl.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/pt-BR.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/pt.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ro.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ru.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/sq.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/sr.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/sv.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ta-IN.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/tr.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/ug.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/uk.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/zh-HK.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/zh-TW.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/i18n/zh.i18n.json (100%) rename packages/rocketchat-livechat/{app => .app}/imports/client/visitor.js (100%) rename packages/rocketchat-livechat/{app => .app}/package.json (100%) rename packages/rocketchat-livechat/{app => .app}/run.sh (100%) diff --git a/.eslintignore b/.eslintignore index 03b1ad39e1a6..984ba1d5dc35 100644 --- a/.eslintignore +++ b/.eslintignore @@ -5,7 +5,7 @@ packages/meteor-timesync/ packages/rocketchat-emoji-emojione/generateEmojiIndex.js packages/rocketchat-favico/favico.js packages/rocketchat-katex/client/katex/katex.min.js -packages/rocketchat-livechat/app/node_modules +packages/rocketchat-livechat/.app/node_modules packages/rocketchat-livechat/assets/rocketchat-livechat.min.js packages/rocketchat-livechat/assets/rocket-livechat.js packages/rocketchat-migrations/ diff --git a/.gitignore b/.gitignore index 0f1c300b4d17..22a8d5865323 100644 --- a/.gitignore +++ b/.gitignore @@ -40,7 +40,7 @@ .meteor/local* .meteor/meteorite .meteor/dev_bundle -packages/rocketchat-livechat/app/.meteor/dev_bundle +packages/rocketchat-livechat/.app/.meteor/dev_bundle packages/rocketchat-livechat/assets/rocketchat-livechat.min.js .mule .pmd diff --git a/.travis.yml b/.travis.yml index 948ec8f880c7..24ac2fb1b9a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,8 +32,8 @@ cache: - "$HOME/build/RocketChat/Rocket.Chat/node_modules" - "$HOME/build/RocketChat/Rocket.Chat/.meteor/local" - "$HOME/build/RocketChat/Rocket.Chat/packages/rocketchat-livechat/.npm" - - "$HOME/build/RocketChat/Rocket.Chat/packages/rocketchat-livechat/app/node_modules" - - "$HOME/build/RocketChat/Rocket.Chat/packages/rocketchat-livechat/app/.meteor/local" + - "$HOME/build/RocketChat/Rocket.Chat/packages/rocketchat-livechat/.app/node_modules" + - "$HOME/build/RocketChat/Rocket.Chat/packages/rocketchat-livechat/.app/.meteor/local" before_install: - if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi # Start X Virtual Frame Buffer for headless testing with real browsers diff --git a/packages/rocketchat-livechat/app/.meteor/.finished-upgraders b/packages/rocketchat-livechat/.app/.meteor/.finished-upgraders similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/.finished-upgraders rename to packages/rocketchat-livechat/.app/.meteor/.finished-upgraders diff --git a/packages/rocketchat-livechat/app/.meteor/.gitignore b/packages/rocketchat-livechat/.app/.meteor/.gitignore similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/.gitignore rename to packages/rocketchat-livechat/.app/.meteor/.gitignore diff --git a/packages/rocketchat-livechat/app/.meteor/.id b/packages/rocketchat-livechat/.app/.meteor/.id similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/.id rename to packages/rocketchat-livechat/.app/.meteor/.id diff --git a/packages/rocketchat-livechat/app/.meteor/packages b/packages/rocketchat-livechat/.app/.meteor/packages similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/packages rename to packages/rocketchat-livechat/.app/.meteor/packages diff --git a/packages/rocketchat-livechat/app/.meteor/platforms b/packages/rocketchat-livechat/.app/.meteor/platforms similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/platforms rename to packages/rocketchat-livechat/.app/.meteor/platforms diff --git a/packages/rocketchat-livechat/app/.meteor/release b/packages/rocketchat-livechat/.app/.meteor/release similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/release rename to packages/rocketchat-livechat/.app/.meteor/release diff --git a/packages/rocketchat-livechat/app/.meteor/versions b/packages/rocketchat-livechat/.app/.meteor/versions similarity index 100% rename from packages/rocketchat-livechat/app/.meteor/versions rename to packages/rocketchat-livechat/.app/.meteor/versions diff --git a/packages/rocketchat-livechat/app/client/components/modal.html b/packages/rocketchat-livechat/.app/client/components/modal.html similarity index 100% rename from packages/rocketchat-livechat/app/client/components/modal.html rename to packages/rocketchat-livechat/.app/client/components/modal.html diff --git a/packages/rocketchat-livechat/app/client/lib/CustomFields.js b/packages/rocketchat-livechat/.app/client/lib/CustomFields.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/CustomFields.js rename to packages/rocketchat-livechat/.app/client/lib/CustomFields.js diff --git a/packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js b/packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/LivechatVideoCall.js rename to packages/rocketchat-livechat/.app/client/lib/LivechatVideoCall.js diff --git a/packages/rocketchat-livechat/app/client/lib/_livechat.js b/packages/rocketchat-livechat/.app/client/lib/_livechat.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/_livechat.js rename to packages/rocketchat-livechat/.app/client/lib/_livechat.js diff --git a/packages/rocketchat-livechat/app/client/lib/autolinker.js b/packages/rocketchat-livechat/.app/client/lib/autolinker.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/autolinker.js rename to packages/rocketchat-livechat/.app/client/lib/autolinker.js diff --git a/packages/rocketchat-livechat/app/client/lib/chatMessages.js b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/chatMessages.js rename to packages/rocketchat-livechat/.app/client/lib/chatMessages.js diff --git a/packages/rocketchat-livechat/app/client/lib/collections.js b/packages/rocketchat-livechat/.app/client/lib/collections.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/collections.js rename to packages/rocketchat-livechat/.app/client/lib/collections.js diff --git a/packages/rocketchat-livechat/app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/commands.js rename to packages/rocketchat-livechat/.app/client/lib/commands.js diff --git a/packages/rocketchat-livechat/app/client/lib/error.js b/packages/rocketchat-livechat/.app/client/lib/error.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/error.js rename to packages/rocketchat-livechat/.app/client/lib/error.js diff --git a/packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/fromApp/Notifications.js rename to packages/rocketchat-livechat/.app/client/lib/fromApp/Notifications.js diff --git a/packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/fromApp/RoomHistoryManager.js rename to packages/rocketchat-livechat/.app/client/lib/fromApp/RoomHistoryManager.js diff --git a/packages/rocketchat-livechat/app/client/lib/fromApp/avatar.js b/packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/fromApp/avatar.js rename to packages/rocketchat-livechat/.app/client/lib/fromApp/avatar.js diff --git a/packages/rocketchat-livechat/app/client/lib/hooks.js b/packages/rocketchat-livechat/.app/client/lib/hooks.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/hooks.js rename to packages/rocketchat-livechat/.app/client/lib/hooks.js diff --git a/packages/rocketchat-livechat/app/client/lib/msgTyping.js b/packages/rocketchat-livechat/.app/client/lib/msgTyping.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/msgTyping.js rename to packages/rocketchat-livechat/.app/client/lib/msgTyping.js diff --git a/packages/rocketchat-livechat/app/client/lib/parentCall.js b/packages/rocketchat-livechat/.app/client/lib/parentCall.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/parentCall.js rename to packages/rocketchat-livechat/.app/client/lib/parentCall.js diff --git a/packages/rocketchat-livechat/app/client/lib/tapi18n.js b/packages/rocketchat-livechat/.app/client/lib/tapi18n.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/tapi18n.js rename to packages/rocketchat-livechat/.app/client/lib/tapi18n.js diff --git a/packages/rocketchat-livechat/app/client/lib/triggers.js b/packages/rocketchat-livechat/.app/client/lib/triggers.js similarity index 100% rename from packages/rocketchat-livechat/app/client/lib/triggers.js rename to packages/rocketchat-livechat/.app/client/lib/triggers.js diff --git a/packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js b/packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js similarity index 100% rename from packages/rocketchat-livechat/app/client/methods/sendMessageExternal.js rename to packages/rocketchat-livechat/.app/client/methods/sendMessageExternal.js diff --git a/packages/rocketchat-livechat/app/client/routes/router.js b/packages/rocketchat-livechat/.app/client/routes/router.js similarity index 100% rename from packages/rocketchat-livechat/app/client/routes/router.js rename to packages/rocketchat-livechat/.app/client/routes/router.js diff --git a/packages/rocketchat-livechat/app/client/startup/customFields.js b/packages/rocketchat-livechat/.app/client/startup/customFields.js similarity index 100% rename from packages/rocketchat-livechat/app/client/startup/customFields.js rename to packages/rocketchat-livechat/.app/client/startup/customFields.js diff --git a/packages/rocketchat-livechat/app/client/startup/visitor.js b/packages/rocketchat-livechat/.app/client/startup/visitor.js similarity index 100% rename from packages/rocketchat-livechat/app/client/startup/visitor.js rename to packages/rocketchat-livechat/.app/client/startup/visitor.js diff --git a/packages/rocketchat-livechat/app/client/stylesheets/main.less b/packages/rocketchat-livechat/.app/client/stylesheets/main.less similarity index 100% rename from packages/rocketchat-livechat/app/client/stylesheets/main.less rename to packages/rocketchat-livechat/.app/client/stylesheets/main.less diff --git a/packages/rocketchat-livechat/app/client/stylesheets/utils/_keyframes.import.less b/packages/rocketchat-livechat/.app/client/stylesheets/utils/_keyframes.import.less similarity index 100% rename from packages/rocketchat-livechat/app/client/stylesheets/utils/_keyframes.import.less rename to packages/rocketchat-livechat/.app/client/stylesheets/utils/_keyframes.import.less diff --git a/packages/rocketchat-livechat/app/client/stylesheets/utils/_loading.import.less b/packages/rocketchat-livechat/.app/client/stylesheets/utils/_loading.import.less similarity index 100% rename from packages/rocketchat-livechat/app/client/stylesheets/utils/_loading.import.less rename to packages/rocketchat-livechat/.app/client/stylesheets/utils/_loading.import.less diff --git a/packages/rocketchat-livechat/app/client/stylesheets/utils/_reset.import.less b/packages/rocketchat-livechat/.app/client/stylesheets/utils/_reset.import.less similarity index 100% rename from packages/rocketchat-livechat/app/client/stylesheets/utils/_reset.import.less rename to packages/rocketchat-livechat/.app/client/stylesheets/utils/_reset.import.less diff --git a/packages/rocketchat-livechat/app/client/stylesheets/utils/_variables.import.less b/packages/rocketchat-livechat/.app/client/stylesheets/utils/_variables.import.less similarity index 100% rename from packages/rocketchat-livechat/app/client/stylesheets/utils/_variables.import.less rename to packages/rocketchat-livechat/.app/client/stylesheets/utils/_variables.import.less diff --git a/packages/rocketchat-livechat/app/client/views/avatar.html b/packages/rocketchat-livechat/.app/client/views/avatar.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/avatar.html rename to packages/rocketchat-livechat/.app/client/views/avatar.html diff --git a/packages/rocketchat-livechat/app/client/views/avatar.js b/packages/rocketchat-livechat/.app/client/views/avatar.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/avatar.js rename to packages/rocketchat-livechat/.app/client/views/avatar.js diff --git a/packages/rocketchat-livechat/app/client/views/livechatWindow.html b/packages/rocketchat-livechat/.app/client/views/livechatWindow.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/livechatWindow.html rename to packages/rocketchat-livechat/.app/client/views/livechatWindow.html diff --git a/packages/rocketchat-livechat/app/client/views/livechatWindow.js b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/livechatWindow.js rename to packages/rocketchat-livechat/.app/client/views/livechatWindow.js diff --git a/packages/rocketchat-livechat/app/client/views/loading.html b/packages/rocketchat-livechat/.app/client/views/loading.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/loading.html rename to packages/rocketchat-livechat/.app/client/views/loading.html diff --git a/packages/rocketchat-livechat/app/client/views/main.html b/packages/rocketchat-livechat/.app/client/views/main.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/main.html rename to packages/rocketchat-livechat/.app/client/views/main.html diff --git a/packages/rocketchat-livechat/app/client/views/message.html b/packages/rocketchat-livechat/.app/client/views/message.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/message.html rename to packages/rocketchat-livechat/.app/client/views/message.html diff --git a/packages/rocketchat-livechat/app/client/views/message.js b/packages/rocketchat-livechat/.app/client/views/message.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/message.js rename to packages/rocketchat-livechat/.app/client/views/message.js diff --git a/packages/rocketchat-livechat/app/client/views/messages.html b/packages/rocketchat-livechat/.app/client/views/messages.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/messages.html rename to packages/rocketchat-livechat/.app/client/views/messages.html diff --git a/packages/rocketchat-livechat/app/client/views/messages.js b/packages/rocketchat-livechat/.app/client/views/messages.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/messages.js rename to packages/rocketchat-livechat/.app/client/views/messages.js diff --git a/packages/rocketchat-livechat/app/client/views/offlineForm.html b/packages/rocketchat-livechat/.app/client/views/offlineForm.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/offlineForm.html rename to packages/rocketchat-livechat/.app/client/views/offlineForm.html diff --git a/packages/rocketchat-livechat/app/client/views/offlineForm.js b/packages/rocketchat-livechat/.app/client/views/offlineForm.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/offlineForm.js rename to packages/rocketchat-livechat/.app/client/views/offlineForm.js diff --git a/packages/rocketchat-livechat/app/client/views/options.html b/packages/rocketchat-livechat/.app/client/views/options.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/options.html rename to packages/rocketchat-livechat/.app/client/views/options.html diff --git a/packages/rocketchat-livechat/app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/options.js rename to packages/rocketchat-livechat/.app/client/views/options.js diff --git a/packages/rocketchat-livechat/app/client/views/poweredBy.html b/packages/rocketchat-livechat/.app/client/views/poweredBy.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/poweredBy.html rename to packages/rocketchat-livechat/.app/client/views/poweredBy.html diff --git a/packages/rocketchat-livechat/app/client/views/register.html b/packages/rocketchat-livechat/.app/client/views/register.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/register.html rename to packages/rocketchat-livechat/.app/client/views/register.html diff --git a/packages/rocketchat-livechat/app/client/views/register.js b/packages/rocketchat-livechat/.app/client/views/register.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/register.js rename to packages/rocketchat-livechat/.app/client/views/register.js diff --git a/packages/rocketchat-livechat/app/client/views/survey.html b/packages/rocketchat-livechat/.app/client/views/survey.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/survey.html rename to packages/rocketchat-livechat/.app/client/views/survey.html diff --git a/packages/rocketchat-livechat/app/client/views/survey.js b/packages/rocketchat-livechat/.app/client/views/survey.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/survey.js rename to packages/rocketchat-livechat/.app/client/views/survey.js diff --git a/packages/rocketchat-livechat/app/client/views/switchDepartment.html b/packages/rocketchat-livechat/.app/client/views/switchDepartment.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/switchDepartment.html rename to packages/rocketchat-livechat/.app/client/views/switchDepartment.html diff --git a/packages/rocketchat-livechat/app/client/views/switchDepartment.js b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/switchDepartment.js rename to packages/rocketchat-livechat/.app/client/views/switchDepartment.js diff --git a/packages/rocketchat-livechat/app/client/views/videoCall.html b/packages/rocketchat-livechat/.app/client/views/videoCall.html similarity index 100% rename from packages/rocketchat-livechat/app/client/views/videoCall.html rename to packages/rocketchat-livechat/.app/client/views/videoCall.html diff --git a/packages/rocketchat-livechat/app/client/views/videoCall.js b/packages/rocketchat-livechat/.app/client/views/videoCall.js similarity index 100% rename from packages/rocketchat-livechat/app/client/views/videoCall.js rename to packages/rocketchat-livechat/.app/client/views/videoCall.js diff --git a/packages/rocketchat-livechat/app/i18n/ar.i18n.json b/packages/rocketchat-livechat/.app/i18n/ar.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ar.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ar.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/az.i18n.json b/packages/rocketchat-livechat/.app/i18n/az.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/az.i18n.json rename to packages/rocketchat-livechat/.app/i18n/az.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/bg.i18n.json b/packages/rocketchat-livechat/.app/i18n/bg.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/bg.i18n.json rename to packages/rocketchat-livechat/.app/i18n/bg.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ca.i18n.json b/packages/rocketchat-livechat/.app/i18n/ca.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ca.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ca.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/cs.i18n.json b/packages/rocketchat-livechat/.app/i18n/cs.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/cs.i18n.json rename to packages/rocketchat-livechat/.app/i18n/cs.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/da.i18n.json b/packages/rocketchat-livechat/.app/i18n/da.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/da.i18n.json rename to packages/rocketchat-livechat/.app/i18n/da.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/de-AT.i18n.json b/packages/rocketchat-livechat/.app/i18n/de-AT.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/de-AT.i18n.json rename to packages/rocketchat-livechat/.app/i18n/de-AT.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/de.i18n.json b/packages/rocketchat-livechat/.app/i18n/de.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/de.i18n.json rename to packages/rocketchat-livechat/.app/i18n/de.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/el.i18n.json b/packages/rocketchat-livechat/.app/i18n/el.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/el.i18n.json rename to packages/rocketchat-livechat/.app/i18n/el.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/en.i18n.json b/packages/rocketchat-livechat/.app/i18n/en.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/en.i18n.json rename to packages/rocketchat-livechat/.app/i18n/en.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/eo.i18n.json b/packages/rocketchat-livechat/.app/i18n/eo.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/eo.i18n.json rename to packages/rocketchat-livechat/.app/i18n/eo.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/es.i18n.json b/packages/rocketchat-livechat/.app/i18n/es.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/es.i18n.json rename to packages/rocketchat-livechat/.app/i18n/es.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/fa.i18n.json b/packages/rocketchat-livechat/.app/i18n/fa.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/fa.i18n.json rename to packages/rocketchat-livechat/.app/i18n/fa.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/fi.i18n.json b/packages/rocketchat-livechat/.app/i18n/fi.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/fi.i18n.json rename to packages/rocketchat-livechat/.app/i18n/fi.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/fr.i18n.json b/packages/rocketchat-livechat/.app/i18n/fr.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/fr.i18n.json rename to packages/rocketchat-livechat/.app/i18n/fr.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/he.i18n.json b/packages/rocketchat-livechat/.app/i18n/he.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/he.i18n.json rename to packages/rocketchat-livechat/.app/i18n/he.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/hr.i18n.json b/packages/rocketchat-livechat/.app/i18n/hr.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/hr.i18n.json rename to packages/rocketchat-livechat/.app/i18n/hr.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/hu.i18n.json b/packages/rocketchat-livechat/.app/i18n/hu.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/hu.i18n.json rename to packages/rocketchat-livechat/.app/i18n/hu.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/id.i18n.json b/packages/rocketchat-livechat/.app/i18n/id.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/id.i18n.json rename to packages/rocketchat-livechat/.app/i18n/id.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/it.i18n.json b/packages/rocketchat-livechat/.app/i18n/it.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/it.i18n.json rename to packages/rocketchat-livechat/.app/i18n/it.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ja.i18n.json b/packages/rocketchat-livechat/.app/i18n/ja.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ja.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ja.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/km.i18n.json b/packages/rocketchat-livechat/.app/i18n/km.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/km.i18n.json rename to packages/rocketchat-livechat/.app/i18n/km.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ko.i18n.json b/packages/rocketchat-livechat/.app/i18n/ko.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ko.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ko.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ku.i18n.json b/packages/rocketchat-livechat/.app/i18n/ku.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ku.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ku.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/lo.i18n.json b/packages/rocketchat-livechat/.app/i18n/lo.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/lo.i18n.json rename to packages/rocketchat-livechat/.app/i18n/lo.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/lt.i18n.json b/packages/rocketchat-livechat/.app/i18n/lt.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/lt.i18n.json rename to packages/rocketchat-livechat/.app/i18n/lt.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ms-MY.i18n.json b/packages/rocketchat-livechat/.app/i18n/ms-MY.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ms-MY.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ms-MY.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/nl.i18n.json b/packages/rocketchat-livechat/.app/i18n/nl.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/nl.i18n.json rename to packages/rocketchat-livechat/.app/i18n/nl.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/no.i18n.json b/packages/rocketchat-livechat/.app/i18n/no.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/no.i18n.json rename to packages/rocketchat-livechat/.app/i18n/no.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/pl.i18n.json b/packages/rocketchat-livechat/.app/i18n/pl.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/pl.i18n.json rename to packages/rocketchat-livechat/.app/i18n/pl.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/pt-BR.i18n.json b/packages/rocketchat-livechat/.app/i18n/pt-BR.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/pt-BR.i18n.json rename to packages/rocketchat-livechat/.app/i18n/pt-BR.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/pt.i18n.json b/packages/rocketchat-livechat/.app/i18n/pt.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/pt.i18n.json rename to packages/rocketchat-livechat/.app/i18n/pt.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ro.i18n.json b/packages/rocketchat-livechat/.app/i18n/ro.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ro.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ro.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ru.i18n.json b/packages/rocketchat-livechat/.app/i18n/ru.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ru.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ru.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/sq.i18n.json b/packages/rocketchat-livechat/.app/i18n/sq.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/sq.i18n.json rename to packages/rocketchat-livechat/.app/i18n/sq.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/sr.i18n.json b/packages/rocketchat-livechat/.app/i18n/sr.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/sr.i18n.json rename to packages/rocketchat-livechat/.app/i18n/sr.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/sv.i18n.json b/packages/rocketchat-livechat/.app/i18n/sv.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/sv.i18n.json rename to packages/rocketchat-livechat/.app/i18n/sv.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ta-IN.i18n.json b/packages/rocketchat-livechat/.app/i18n/ta-IN.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ta-IN.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ta-IN.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/tr.i18n.json b/packages/rocketchat-livechat/.app/i18n/tr.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/tr.i18n.json rename to packages/rocketchat-livechat/.app/i18n/tr.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/ug.i18n.json b/packages/rocketchat-livechat/.app/i18n/ug.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/ug.i18n.json rename to packages/rocketchat-livechat/.app/i18n/ug.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/uk.i18n.json b/packages/rocketchat-livechat/.app/i18n/uk.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/uk.i18n.json rename to packages/rocketchat-livechat/.app/i18n/uk.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/zh-HK.i18n.json b/packages/rocketchat-livechat/.app/i18n/zh-HK.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/zh-HK.i18n.json rename to packages/rocketchat-livechat/.app/i18n/zh-HK.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/zh-TW.i18n.json b/packages/rocketchat-livechat/.app/i18n/zh-TW.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/zh-TW.i18n.json rename to packages/rocketchat-livechat/.app/i18n/zh-TW.i18n.json diff --git a/packages/rocketchat-livechat/app/i18n/zh.i18n.json b/packages/rocketchat-livechat/.app/i18n/zh.i18n.json similarity index 100% rename from packages/rocketchat-livechat/app/i18n/zh.i18n.json rename to packages/rocketchat-livechat/.app/i18n/zh.i18n.json diff --git a/packages/rocketchat-livechat/app/imports/client/visitor.js b/packages/rocketchat-livechat/.app/imports/client/visitor.js similarity index 100% rename from packages/rocketchat-livechat/app/imports/client/visitor.js rename to packages/rocketchat-livechat/.app/imports/client/visitor.js diff --git a/packages/rocketchat-livechat/app/package.json b/packages/rocketchat-livechat/.app/package.json similarity index 100% rename from packages/rocketchat-livechat/app/package.json rename to packages/rocketchat-livechat/.app/package.json diff --git a/packages/rocketchat-livechat/app/run.sh b/packages/rocketchat-livechat/.app/run.sh similarity index 100% rename from packages/rocketchat-livechat/app/run.sh rename to packages/rocketchat-livechat/.app/run.sh diff --git a/packages/rocketchat-livechat/plugin/build.bat b/packages/rocketchat-livechat/plugin/build.bat index d586b8120482..bf51ac5c687b 100644 --- a/packages/rocketchat-livechat/plugin/build.bat +++ b/packages/rocketchat-livechat/plugin/build.bat @@ -1,7 +1,7 @@ @echo off SET NODE_ENV="production" -cd packages/rocketchat-livechat/app +cd packages/rocketchat-livechat/.app call meteor npm install --production call meteor build --headless --directory .meteor/build/ diff --git a/packages/rocketchat-livechat/plugin/build.sh b/packages/rocketchat-livechat/plugin/build.sh index 1039e6a20717..f44175f215b0 100644 --- a/packages/rocketchat-livechat/plugin/build.sh +++ b/packages/rocketchat-livechat/plugin/build.sh @@ -3,7 +3,7 @@ export LIVECHAT_DIR="../../../public/livechat" export BUILD_DIR="../build" export BUNDLE_DIR="../build/bundle/programs/web.browser" -cd packages/rocketchat-livechat/app +cd packages/rocketchat-livechat/.app meteor npm install --production meteor build --headless --directory $BUILD_DIR diff --git a/private/node_scripts/auto-translate.js b/private/node_scripts/auto-translate.js index e78ad5eabc7f..1e7c2fc194d3 100644 --- a/private/node_scripts/auto-translate.js +++ b/private/node_scripts/auto-translate.js @@ -15,7 +15,7 @@ googleTranslate.getSupportedLanguages(function(err, langs) { return; } - async.eachSeries(['../../packages/rocketchat-lib/i18n/', '../../packages/rocketchat-livechat/app/i18n/'], function(path, callback) { + async.eachSeries(['../../packages/rocketchat-lib/i18n/', '../../packages/rocketchat-livechat/.app/i18n/'], function(path, callback) { console.log(`Translating files in: ${ path }`); const enContents = fs.readFileSync(`${ path }en.i18n.json`, 'utf-8'); const enUnsorted = JSON.parse(enContents); From 1ba5965fcc11bb62a54159a9ebc2102a7b0e0bcb Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 9 Jun 2017 11:08:10 -0300 Subject: [PATCH 004/253] Fix avatar size --- .../.app/client/stylesheets/main.less | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/rocketchat-livechat/.app/client/stylesheets/main.less b/packages/rocketchat-livechat/.app/client/stylesheets/main.less index d4f0e14aa553..695ebb332081 100644 --- a/packages/rocketchat-livechat/.app/client/stylesheets/main.less +++ b/packages/rocketchat-livechat/.app/client/stylesheets/main.less @@ -447,18 +447,23 @@ input:focus { text-decoration: line-through; } - .avatar .avatar-image { + .avatar { height: 100%; width: 100%; - min-height: 20px; - min-width: 20px; - display: block; - position: relative; - background-color: transparent; - background-size: cover; - background-repeat: no-repeat; - background-position: center; - border-radius: 4px; + + .avatar-image { + height: 100%; + width: 100%; + min-height: 20px; + min-width: 20px; + display: block; + position: relative; + background-color: transparent; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + border-radius: 4px; + } } } } From 7eae4d624078cbfbc78a2ec6255123c09714c908 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Tue, 15 Aug 2017 12:57:40 -0300 Subject: [PATCH 005/253] Fix visitor info flex tab --- .../client/collections/LivechatVisitor.js | 1 + .../client/views/app/tabbar/visitorInfo.js | 4 +++- packages/rocketchat-livechat/package.js | 1 + .../server/models/LivechatVisitors.js | 12 ++++++++++++ .../server/publications/visitorInfo.js | 4 +++- 5 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 packages/rocketchat-livechat/client/collections/LivechatVisitor.js diff --git a/packages/rocketchat-livechat/client/collections/LivechatVisitor.js b/packages/rocketchat-livechat/client/collections/LivechatVisitor.js new file mode 100644 index 000000000000..e2b44ef3f14f --- /dev/null +++ b/packages/rocketchat-livechat/client/collections/LivechatVisitor.js @@ -0,0 +1 @@ +this.LivechatVisitor = new Mongo.Collection('rocketchat_livechat_visitor'); diff --git a/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js b/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js index 92d1a22ab449..ca1d44ac34b4 100644 --- a/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js +++ b/packages/rocketchat-livechat/client/views/app/tabbar/visitorInfo.js @@ -1,3 +1,5 @@ +/* globals LivechatVisitor */ + import moment from 'moment'; import UAParser from 'ua-parser-js'; @@ -241,6 +243,6 @@ Template.visitorInfo.onCreated(function() { } this.autorun(() => { - this.user.set(Meteor.users.findOne({ '_id': this.visitorId.get() })); + this.user.set(LivechatVisitor.findOne({ '_id': this.visitorId.get() })); }); }); diff --git a/packages/rocketchat-livechat/package.js b/packages/rocketchat-livechat/package.js index 7f162cbb2c63..b0e49bc549f6 100644 --- a/packages/rocketchat-livechat/package.js +++ b/packages/rocketchat-livechat/package.js @@ -67,6 +67,7 @@ Package.onUse(function(api) { api.addFiles('client/collections/LivechatTrigger.js', 'client'); api.addFiles('client/collections/LivechatInquiry.js', 'client'); api.addFiles('client/collections/livechatOfficeHour.js', 'client'); + api.addFiles('client/collections/LivechatVisitor.js', 'client'); api.addFiles('client/methods/changeLivechatStatus.js', 'client'); diff --git a/packages/rocketchat-livechat/server/models/LivechatVisitors.js b/packages/rocketchat-livechat/server/models/LivechatVisitors.js index 13881cbcf0ef..85f0aecccfd5 100644 --- a/packages/rocketchat-livechat/server/models/LivechatVisitors.js +++ b/packages/rocketchat-livechat/server/models/LivechatVisitors.js @@ -15,6 +15,18 @@ class LivechatVisitors extends RocketChat.models._Base { return this.findOne(query, options); } + /** + * Find visitors by _id + * @param {string} token - Visitor token + */ + findById(_id, options) { + const query = { + _id + }; + + return this.find(query, options); + } + /** * Gets visitor by token * @param {string} token - Visitor token diff --git a/packages/rocketchat-livechat/server/publications/visitorInfo.js b/packages/rocketchat-livechat/server/publications/visitorInfo.js index 1e1462b68d51..b09b0d9dac8f 100644 --- a/packages/rocketchat-livechat/server/publications/visitorInfo.js +++ b/packages/rocketchat-livechat/server/publications/visitorInfo.js @@ -1,3 +1,5 @@ +import LivechatVisitors from '../models/LivechatVisitors'; + Meteor.publish('livechat:visitorInfo', function({ rid: roomId }) { if (!this.userId) { return this.error(new Meteor.Error('error-not-authorized', 'Not authorized', { publish: 'livechat:visitorInfo' })); @@ -10,7 +12,7 @@ Meteor.publish('livechat:visitorInfo', function({ rid: roomId }) { const room = RocketChat.models.Rooms.findOneById(roomId); if (room && room.v && room.v._id) { - return RocketChat.models.Users.findById(room.v._id); + return LivechatVisitors.findById(room.v._id); } else { return this.ready(); } From 6bc76dff1c6a17164af86cc47f68e891562060c0 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Tue, 15 Aug 2017 12:58:01 -0300 Subject: [PATCH 006/253] Remove duplicate files --- .../imports/server/rest/sms.js | 4 +- .../server/rest/departments.js | 103 ------------- .../rocketchat-livechat/server/rest/sms.js | 71 --------- .../rocketchat-livechat/server/rest/users.js | 139 ------------------ 4 files changed, 2 insertions(+), 315 deletions(-) delete mode 100644 packages/rocketchat-livechat/server/rest/departments.js delete mode 100644 packages/rocketchat-livechat/server/rest/sms.js delete mode 100644 packages/rocketchat-livechat/server/rest/users.js diff --git a/packages/rocketchat-livechat/imports/server/rest/sms.js b/packages/rocketchat-livechat/imports/server/rest/sms.js index 31d5b4e13df7..56ca236c3b5b 100644 --- a/packages/rocketchat-livechat/imports/server/rest/sms.js +++ b/packages/rocketchat-livechat/imports/server/rest/sms.js @@ -32,7 +32,7 @@ RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { sendMessage.message.rid = Random.id(); sendMessage.message.token = Random.id(); - const userId = RocketChat.Livechat.registerGuest({ + const visitorId = RocketChat.Livechat.registerGuest({ username: sms.from.replace(/[^0-9]/g, ''), token: sendMessage.message.token, phone: { @@ -40,7 +40,7 @@ RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { } }); - visitor = RocketChat.models.Users.findOneById(userId); + visitor = LivechatVisitors.findOneById(visitorId); } sendMessage.message.msg = sms.body; diff --git a/packages/rocketchat-livechat/server/rest/departments.js b/packages/rocketchat-livechat/server/rest/departments.js deleted file mode 100644 index 810d3a1c6c6d..000000000000 --- a/packages/rocketchat-livechat/server/rest/departments.js +++ /dev/null @@ -1,103 +0,0 @@ -RocketChat.API.v1.addRoute('livechat/department', { authRequired: true }, { - get() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - return RocketChat.API.v1.success({ - departments: RocketChat.models.LivechatDepartment.find().fetch() - }); - }, - post() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.bodyParams, { - department: Object, - agents: Array - }); - - const department = RocketChat.Livechat.saveDepartment(null, this.bodyParams.department, this.bodyParams.agents); - - if (department) { - return RocketChat.API.v1.success({ - department, - agents: RocketChat.models.LivechatDepartmentAgents.find({ departmentId: department._id }).fetch() - }); - } - - RocketChat.API.v1.failure(); - } catch (e) { - return RocketChat.API.v1.failure(e); - } - } -}); - -RocketChat.API.v1.addRoute('livechat/department/:_id', { authRequired: true }, { - get() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - _id: String - }); - - return RocketChat.API.v1.success({ - department: RocketChat.models.LivechatDepartment.findOneById(this.urlParams._id), - agents: RocketChat.models.LivechatDepartmentAgents.find({ departmentId: this.urlParams._id }).fetch() - }); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - }, - put() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - _id: String - }); - - check(this.bodyParams, { - department: Object, - agents: Array - }); - - if (RocketChat.Livechat.saveDepartment(this.urlParams._id, this.bodyParams.department, this.bodyParams.agents)) { - return RocketChat.API.v1.success({ - department: RocketChat.models.LivechatDepartment.findOneById(this.urlParams._id), - agents: RocketChat.models.LivechatDepartmentAgents.find({ departmentId: this.urlParams._id }).fetch() - }); - } - - return RocketChat.API.v1.failure(); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - }, - delete() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - _id: String - }); - - if (RocketChat.Livechat.removeDepartment(this.urlParams._id)) { - return RocketChat.API.v1.success(); - } - - return RocketChat.API.v1.failure(); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - } -}); diff --git a/packages/rocketchat-livechat/server/rest/sms.js b/packages/rocketchat-livechat/server/rest/sms.js deleted file mode 100644 index 6bb7d63fead1..000000000000 --- a/packages/rocketchat-livechat/server/rest/sms.js +++ /dev/null @@ -1,71 +0,0 @@ -import LivechatVisitors from '../models/LivechatVisitors'; - -RocketChat.API.v1.addRoute('livechat/sms-incoming/:service', { - post() { - const SMSService = RocketChat.SMS.getService(this.urlParams.service); - - const sms = SMSService.parse(this.bodyParams); - - let visitor = LivechatVisitors.findOneVisitorByPhone(sms.from); - - const sendMessage = { - message: { - _id: Random.id() - }, - roomInfo: { - sms: { - from: sms.to - } - } - }; - - if (visitor) { - const rooms = RocketChat.models.Rooms.findOpenByVisitorToken(visitor.token).fetch(); - - if (rooms && rooms.length > 0) { - sendMessage.message.rid = rooms[0]._id; - } else { - sendMessage.message.rid = Random.id(); - } - sendMessage.message.token = visitor.token; - } else { - sendMessage.message.rid = Random.id(); - sendMessage.message.token = Random.id(); - - const userId = RocketChat.Livechat.registerGuest({ - username: sms.from.replace(/[^0-9]/g, ''), - token: sendMessage.message.token, - phone: { - number: sms.from - } - }); - - visitor = RocketChat.models.Users.findOneById(userId); - } - - sendMessage.message.msg = sms.body; - sendMessage.guest = visitor; - - try { - const message = SMSService.response.call(this, RocketChat.Livechat.sendMessage(sendMessage)); - - Meteor.defer(() => { - if (sms.extra) { - if (sms.extra.fromCountry) { - Meteor.call('livechat:setCustomField', sendMessage.message.token, 'country', sms.extra.fromCountry); - } - if (sms.extra.fromState) { - Meteor.call('livechat:setCustomField', sendMessage.message.token, 'state', sms.extra.fromState); - } - if (sms.extra.fromCity) { - Meteor.call('livechat:setCustomField', sendMessage.message.token, 'city', sms.extra.fromCity); - } - } - }); - - return message; - } catch (e) { - return SMSService.error.call(this, e); - } - } -}); diff --git a/packages/rocketchat-livechat/server/rest/users.js b/packages/rocketchat-livechat/server/rest/users.js deleted file mode 100644 index c203d9df8b87..000000000000 --- a/packages/rocketchat-livechat/server/rest/users.js +++ /dev/null @@ -1,139 +0,0 @@ -RocketChat.API.v1.addRoute('livechat/users/:type', { authRequired: true }, { - get() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - type: String - }); - - let role; - if (this.urlParams.type === 'agent') { - role = 'livechat-agent'; - } else if (this.urlParams.type === 'manager') { - role = 'livechat-manager'; - } else { - throw 'Invalid type'; - } - - const users = RocketChat.authz.getUsersInRole(role); - - return RocketChat.API.v1.success({ - users: users.fetch().map(user => ({ _id: user._id, username: user.username })) - }); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - }, - post() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - try { - check(this.urlParams, { - type: String - }); - - check(this.bodyParams, { - username: String - }); - - if (this.urlParams.type === 'agent') { - const user = RocketChat.Livechat.addAgent(this.bodyParams.username); - if (user) { - return RocketChat.API.v1.success({ user }); - } - } else if (this.urlParams.type === 'manager') { - const user = RocketChat.Livechat.addManager(this.bodyParams.username); - if (user) { - return RocketChat.API.v1.success({ user }); - } - } else { - throw 'Invalid type'; - } - - return RocketChat.API.v1.failure(); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - } -}); - -RocketChat.API.v1.addRoute('livechat/users/:type/:_id', { authRequired: true }, { - get() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - type: String, - _id: String - }); - - const user = RocketChat.models.Users.findOneById(this.urlParams._id); - - if (!user) { - return RocketChat.API.v1.failure('User not found'); - } - - let role; - - if (this.urlParams.type === 'agent') { - role = 'livechat-agent'; - } else if (this.urlParams.type === 'manager') { - role = 'livechat-manager'; - } else { - throw 'Invalid type'; - } - - if (user.roles.indexOf(role) !== -1) { - return RocketChat.API.v1.success({ - user: _.pick(user, '_id', 'username') - }); - } - - return RocketChat.API.v1.success({ - user: null - }); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - }, - delete() { - if (!RocketChat.authz.hasPermission(this.userId, 'view-livechat-manager')) { - return RocketChat.API.v1.unauthorized(); - } - - try { - check(this.urlParams, { - type: String, - _id: String - }); - - const user = RocketChat.models.Users.findOneById(this.urlParams._id); - - if (!user) { - return RocketChat.API.v1.failure(); - } - - if (this.urlParams.type === 'agent') { - if (RocketChat.Livechat.removeAgent(user.username)) { - return RocketChat.API.v1.success(); - } - } else if (this.urlParams.type === 'manager') { - if (RocketChat.Livechat.removeManager(user.username)) { - return RocketChat.API.v1.success(); - } - } else { - throw 'Invalid type'; - } - - return RocketChat.API.v1.failure(); - } catch (e) { - return RocketChat.API.v1.failure(e.error); - } - } -}); From 6ec1172ae183477a2986dbf6aef1afbc05b6db94 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Wed, 23 Aug 2017 11:19:49 -0300 Subject: [PATCH 007/253] Add support for visitor status --- .../.app/client/lib/chatMessages.js | 2 ++ .../.app/client/lib/commands.js | 2 +- .../.app/client/startup/visitor.js | 11 +++++++ .../.app/client/views/livechatWindow.js | 2 ++ .../.app/client/views/options.js | 2 +- .../.app/client/views/switchDepartment.js | 2 +- .../.app/imports/client/visitor.js | 9 ++++++ packages/rocketchat-livechat/package.js | 1 + packages/rocketchat-livechat/roomType.js | 11 +++---- .../server/lib/Livechat.js | 31 +++++++++++++------ .../server/lib/QueueMethods.js | 6 ++-- .../server/methods/closeByVisitor.js | 16 +++++----- .../server/models/Rooms.js | 28 ++++++++++++----- .../server/visitorStatus.js | 8 +++++ 14 files changed, 95 insertions(+), 36 deletions(-) create mode 100644 packages/rocketchat-livechat/server/visitorStatus.js diff --git a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js index 1b1a3c7975f0..a336a6283e3e 100644 --- a/packages/rocketchat-livechat/.app/client/lib/chatMessages.js +++ b/packages/rocketchat-livechat/.app/client/lib/chatMessages.js @@ -121,6 +121,8 @@ this.ChatMessages = class ChatMessages { ChatMessage.update(result._id, _.omit(result, '_id')); Livechat.room = result.rid; + visitor.setConnected(); + parentCall('callback', 'chat-started'); } }); diff --git a/packages/rocketchat-livechat/.app/client/lib/commands.js b/packages/rocketchat-livechat/.app/client/lib/commands.js index 23e10d3b9812..5851f34b1d69 100644 --- a/packages/rocketchat-livechat/.app/client/lib/commands.js +++ b/packages/rocketchat-livechat/.app/client/lib/commands.js @@ -17,7 +17,7 @@ this.Commands = { if (Livechat.transcript) { // @TODO get visitor email const user = Meteor.user(); - const email = user.visitorEmails && user.visitorEmails.length > 0 ? user.visitorEmails[0].address : ''; + const email = user && user.visitorEmails && user.visitorEmails.length > 0 ? user.visitorEmails[0].address : ''; swal({ title: t('Chat_ended'), diff --git a/packages/rocketchat-livechat/.app/client/startup/visitor.js b/packages/rocketchat-livechat/.app/client/startup/visitor.js index c9aae1ecac63..92b723bc05fa 100644 --- a/packages/rocketchat-livechat/.app/client/startup/visitor.js +++ b/packages/rocketchat-livechat/.app/client/startup/visitor.js @@ -16,3 +16,14 @@ Meteor.startup(() => { }); } }); + +Meteor.startup(() => { + let connected = false; + Tracker.autorun(function() { + var connectionStatus = Meteor.status(); + if (visitor.getRoom() && visitor.getToken() && connectionStatus.connected && !connected) { + connected = connectionStatus.connected; + visitor.setConnected(); + } + }); +}); diff --git a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js index 0d56c2561c2c..24693a6262fc 100644 --- a/packages/rocketchat-livechat/.app/client/views/livechatWindow.js +++ b/packages/rocketchat-livechat/.app/client/views/livechatWindow.js @@ -115,6 +115,8 @@ Template.livechatWindow.onCreated(function() { if (result.room) { Livechat.room = result.room._id; + + visitor.setConnected(); } if (result.agentData) { diff --git a/packages/rocketchat-livechat/.app/client/views/options.js b/packages/rocketchat-livechat/.app/client/views/options.js index ec5bc787377f..4bde94255eef 100644 --- a/packages/rocketchat-livechat/.app/client/views/options.js +++ b/packages/rocketchat-livechat/.app/client/views/options.js @@ -26,7 +26,7 @@ Template.options.events({ closeOnConfirm: true, html: false }, () => { - Meteor.call('livechat:closeByVisitor', visitor.getRoom(), (error) => { + Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { if (error) { return console.log('Error ->', error); } diff --git a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js index 803ec46d442d..80874c292ed7 100644 --- a/packages/rocketchat-livechat/.app/client/views/switchDepartment.js +++ b/packages/rocketchat-livechat/.app/client/views/switchDepartment.js @@ -45,7 +45,7 @@ Template.switchDepartment.events({ closeOnConfirm: true, html: false }, () => { - Meteor.call('livechat:closeByVisitor', visitor.getRoom(), (error) => { + Meteor.call('livechat:closeByVisitor', { roomId: visitor.getRoom(), token: visitor.getToken() }, (error) => { if (error) { return console.log('Error ->', error); } diff --git a/packages/rocketchat-livechat/.app/imports/client/visitor.js b/packages/rocketchat-livechat/.app/imports/client/visitor.js index ad121134c959..7fb60fbcd8c9 100644 --- a/packages/rocketchat-livechat/.app/imports/client/visitor.js +++ b/packages/rocketchat-livechat/.app/imports/client/visitor.js @@ -7,6 +7,7 @@ export default { room: new ReactiveVar(null), roomToSubscribe: new ReactiveVar(null), roomSubscribed: null, + connected: null, register() { if (!localStorage.getItem('visitorToken')) { @@ -70,5 +71,13 @@ export default { } } }); + }, + + setConnected() { + if (this.connected) { + return; + } + this.connected = true; + Meteor.call('UserPresence:connect', this.getToken(), { visitor: this.getToken() }); } }; diff --git a/packages/rocketchat-livechat/package.js b/packages/rocketchat-livechat/package.js index b0e49bc549f6..a46d9b0a6c05 100644 --- a/packages/rocketchat-livechat/package.js +++ b/packages/rocketchat-livechat/package.js @@ -45,6 +45,7 @@ Package.onUse(function(api) { api.addFiles('livechat.js', 'server'); api.addFiles('server/startup.js', 'server'); + api.addFiles('server/visitorStatus.js', 'server'); api.addFiles('permissions.js', 'server'); api.addFiles('messageTypes.js'); api.addFiles('roomType.js'); diff --git a/packages/rocketchat-livechat/roomType.js b/packages/rocketchat-livechat/roomType.js index 84e0ee616117..6effc0c378a2 100644 --- a/packages/rocketchat-livechat/roomType.js +++ b/packages/rocketchat-livechat/roomType.js @@ -38,19 +38,18 @@ RocketChat.roomTypes.add('l', 5, { }, getUserStatus(roomId) { - let guestName; const room = Session.get(`roomData${ roomId }`); if (room) { - guestName = room.v && room.v.username; + return room.v && room.v.status; } else { const inquiry = LivechatInquiry.findOne({ rid: roomId }); - guestName = inquiry && inquiry.v && inquiry.v.username; + return inquiry && inquiry.v && inquiry.v.status; } - if (guestName) { - return Session.get(`user_${ guestName }_status`); - } + // if (guestName) { + // return Session.get(`user_${ guestName }_status`); + // } }, notSubscribedTpl: { diff --git a/packages/rocketchat-livechat/server/lib/Livechat.js b/packages/rocketchat-livechat/server/lib/Livechat.js index d3e19ce5478a..50e3da16ce8a 100644 --- a/packages/rocketchat-livechat/server/lib/Livechat.js +++ b/packages/rocketchat-livechat/server/lib/Livechat.js @@ -198,16 +198,29 @@ RocketChat.Livechat = { return ret; }, - closeRoom({ user, room, comment }) { + closeRoom({ user, visitor, room, comment }) { const now = new Date(); - RocketChat.models.Rooms.closeByRoomId(room._id, { - user: { - _id: user._id, - username: user.username - }, + + const closeData = { closedAt: now, chatDuration: (now.getTime() - room.ts) / 1000 - }); + }; + + if (user) { + closeData.closer = 'user'; + closeData.closedBy = { + _id: user._id, + username: user.username + }; + } else if (visitor) { + closeData.closer = 'visitor'; + closeData.closedBy = { + _id: visitor._id, + username: visitor.username + }; + } + + RocketChat.models.Rooms.closeByRoomId(room._id, closeData); const message = { t: 'livechat-close', @@ -217,8 +230,8 @@ RocketChat.Livechat = { RocketChat.sendMessage(user, message, room); - RocketChat.models.Subscriptions.hideByRoomIdAndUserId(room._id, user._id); - RocketChat.models.Messages.createCommandWithRoomIdAndUser('promptTranscript', room._id, user); + RocketChat.models.Subscriptions.hideByRoomIdAndUserId(room._id, room.servedBy._id); + RocketChat.models.Messages.createCommandWithRoomIdAndUser('promptTranscript', room._id, room.servedBy); Meteor.defer(() => { RocketChat.callbacks.run('livechat.closeRoom', room); diff --git a/packages/rocketchat-livechat/server/lib/QueueMethods.js b/packages/rocketchat-livechat/server/lib/QueueMethods.js index 425dc26fdded..09ea166fb61b 100644 --- a/packages/rocketchat-livechat/server/lib/QueueMethods.js +++ b/packages/rocketchat-livechat/server/lib/QueueMethods.js @@ -24,7 +24,8 @@ RocketChat.QueueMethods = { v: { _id: guest._id, username: guest.username, - token: message.token + token: message.token, + status: guest.status }, servedBy: { _id: agent.agentId, @@ -123,7 +124,8 @@ RocketChat.QueueMethods = { v: { _id: guest._id, username: guest.username, - token: message.token + token: message.token, + status: guest.status }, cl: false, open: true, diff --git a/packages/rocketchat-livechat/server/methods/closeByVisitor.js b/packages/rocketchat-livechat/server/methods/closeByVisitor.js index 4aa20f1a1c8c..c6c54596c53d 100644 --- a/packages/rocketchat-livechat/server/methods/closeByVisitor.js +++ b/packages/rocketchat-livechat/server/methods/closeByVisitor.js @@ -1,21 +1,19 @@ -Meteor.methods({ - 'livechat:closeByVisitor'(roomId) { - if (!Meteor.userId()) { - throw new Meteor.Error('error-not-authorized', 'Not authorized', { method: 'livechat:closeByVisitor' }); - } +import LivechatVisitors from '../models/LivechatVisitors'; - const room = RocketChat.models.Rooms.findOneOpenByVisitorId(Meteor.userId(), roomId); +Meteor.methods({ + 'livechat:closeByVisitor'({ roomId, token }) { + const room = RocketChat.models.Rooms.findOneOpenByVisitorToken(token, roomId); if (!room || !room.open) { return false; } - const user = Meteor.user(); + const visitor = LivechatVisitors.getVisitorByToken(token); - const language = (user && user.language) || RocketChat.settings.get('language') || 'en'; + const language = (visitor && visitor.language) || RocketChat.settings.get('language') || 'en'; return RocketChat.Livechat.closeRoom({ - user, + visitor, room, comment: TAPi18n.__('Closed_by_visitor', { lng: language }) }); diff --git a/packages/rocketchat-livechat/server/models/Rooms.js b/packages/rocketchat-livechat/server/models/Rooms.js index f22755901968..ea3fdc6158b0 100644 --- a/packages/rocketchat-livechat/server/models/Rooms.js +++ b/packages/rocketchat-livechat/server/models/Rooms.js @@ -115,11 +115,11 @@ RocketChat.models.Rooms.findByVisitorId = function(visitorId) { return this.find(query); }; -RocketChat.models.Rooms.findOneOpenByVisitorId = function(visitorId, roomId) { +RocketChat.models.Rooms.findOneOpenByVisitorToken = function(token, roomId) { const query = { _id: roomId, open: true, - 'v._id': visitorId + 'v.token': token }; return this.findOne(query); @@ -148,12 +148,11 @@ RocketChat.models.Rooms.closeByRoomId = function(roomId, closeInfo) { _id: roomId }, { $set: { - closedBy: { - _id: closeInfo.user._id, - username: closeInfo.user.username - }, + closer: closeInfo.closer, + closedBy: closeInfo.closedBy, closedAt: closeInfo.closedAt, - chatDuration: closeInfo.chatDuration + chatDuration: closeInfo.chatDuration, + 'v.status': 'offline' }, $unset: { open: 1 @@ -202,3 +201,18 @@ RocketChat.models.Rooms.saveCRMDataByRoomId = function(roomId, crmData) { return this.update(query, update); }; + +RocketChat.models.Rooms.updateVisitorStatus = function(token, status) { + const query = { + 'v.token': token, + open: true + }; + + const update = { + $set: { + 'v.status': status + } + }; + + return this.update(query, update); +}; diff --git a/packages/rocketchat-livechat/server/visitorStatus.js b/packages/rocketchat-livechat/server/visitorStatus.js new file mode 100644 index 000000000000..c28b364cb371 --- /dev/null +++ b/packages/rocketchat-livechat/server/visitorStatus.js @@ -0,0 +1,8 @@ +/* globals UserPresenceEvents */ +Meteor.startup(() => { + UserPresenceEvents.on('setStatus', (session, status) => { + if (session && session.metadata && session.metadata.visitor) { + RocketChat.models.Rooms.updateVisitorStatus(session.metadata.visitor, status); + } + }); +}); From 576ae0565769077782b5963bca761ccce4e85d47 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Wed, 27 Sep 2017 14:15:36 -0500 Subject: [PATCH 008/253] Add Circle CI build for contextual bar redesign --- .circleci/Dockerfile | 20 ++++++++++++ .circleci/config.yml | 77 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 .circleci/Dockerfile create mode 100644 .circleci/config.yml diff --git a/.circleci/Dockerfile b/.circleci/Dockerfile new file mode 100644 index 000000000000..2d2fd2c845e5 --- /dev/null +++ b/.circleci/Dockerfile @@ -0,0 +1,20 @@ +FROM node:4 + +ADD . /app + +ENV RC_VERSION=0.57.0-designpreview \ + DEPLOY_METHOD=docker \ + NODE_ENV=production \ + PORT=3000 \ + ROOT_URL=http://localhost:3000 + +RUN set -x \ + && cd /app/bundle/programs/server \ + && npm install \ + && npm cache clear + +WORKDIR /app/bundle + +EXPOSE 3000 + +CMD ["node", "main.js"] diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000000..108353fd513a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,77 @@ +# Javascript Node CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-javascript/ for more details +# +version: 2 +jobs: + build: + docker: + # specify the version you desire here + - image: circleci/node:7.10 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/mongo:3.4.4 + + working_directory: ~/repo + + steps: + - checkout + + - run: + name: Install Meteor + command: if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi + filters: + branches: + only: contextual-bar-redesign + + # Download and cache dependencies + - restore_cache: + key: dependency-cache-{{ checksum "package.json" }} + filters: + branches: + only: contextual-bar-redesign + + - run: + name: Build Rocket.Chat + command: | + meteor npm install + set +e + meteor add rocketchat:lib + set -e + meteor build --server-only --directory /tmp/build + filters: + branches: + only: contextual-bar-redesign + + - save_cache: + key: dependency-cache-{{ checksum "package.json" }} + paths: + - ./node_modules + - ./.meteor + - $HOME/.meteor + filters: + branches: + only: contextual-bar-redesign + + - setup_remote_docker + + - run: + name: Build Docker image + command: | + docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD + cp .circleci/Dockerfile /tmp/build + cd /tmp/build + docker build -t rocketchat/rocket.chat:contextual-bar-redesign . + docker push rocketchat/rocket.chat:contextual-bar-redesign + filters: + branches: + only: contextual-bar-redesign + - run: + name: Notify on demo + command: | + curl -X POST -H 'Content-Type: application/json' --data "{\"text\":\"@here Nova [build](${CIRCLE_BUILD_URL}) pronta :marioparty:\"}" $WEBHOOK_URL + filters: + branches: + only: contextual-bar-redesign From be8747e7fecdfc7d5ba159709e2ea45337b52ed9 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Wed, 27 Sep 2017 16:36:34 -0500 Subject: [PATCH 009/253] remove circleci and add droneci --- .circleci/config.yml | 77 ------------------- .../Dockerfile => .docker/Dockerfile.local | 0 .drone.yml | 17 ++++ 3 files changed, 17 insertions(+), 77 deletions(-) delete mode 100644 .circleci/config.yml rename .circleci/Dockerfile => .docker/Dockerfile.local (100%) create mode 100644 .drone.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 108353fd513a..000000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,77 +0,0 @@ -# Javascript Node CircleCI 2.0 configuration file -# -# Check https://circleci.com/docs/2.0/language-javascript/ for more details -# -version: 2 -jobs: - build: - docker: - # specify the version you desire here - - image: circleci/node:7.10 - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/mongo:3.4.4 - - working_directory: ~/repo - - steps: - - checkout - - - run: - name: Install Meteor - command: if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi - filters: - branches: - only: contextual-bar-redesign - - # Download and cache dependencies - - restore_cache: - key: dependency-cache-{{ checksum "package.json" }} - filters: - branches: - only: contextual-bar-redesign - - - run: - name: Build Rocket.Chat - command: | - meteor npm install - set +e - meteor add rocketchat:lib - set -e - meteor build --server-only --directory /tmp/build - filters: - branches: - only: contextual-bar-redesign - - - save_cache: - key: dependency-cache-{{ checksum "package.json" }} - paths: - - ./node_modules - - ./.meteor - - $HOME/.meteor - filters: - branches: - only: contextual-bar-redesign - - - setup_remote_docker - - - run: - name: Build Docker image - command: | - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - cp .circleci/Dockerfile /tmp/build - cd /tmp/build - docker build -t rocketchat/rocket.chat:contextual-bar-redesign . - docker push rocketchat/rocket.chat:contextual-bar-redesign - filters: - branches: - only: contextual-bar-redesign - - run: - name: Notify on demo - command: | - curl -X POST -H 'Content-Type: application/json' --data "{\"text\":\"@here Nova [build](${CIRCLE_BUILD_URL}) pronta :marioparty:\"}" $WEBHOOK_URL - filters: - branches: - only: contextual-bar-redesign diff --git a/.circleci/Dockerfile b/.docker/Dockerfile.local similarity index 100% rename from .circleci/Dockerfile rename to .docker/Dockerfile.local diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 000000000000..49dda54f02c1 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,17 @@ +pipeline: + build: + image: ubuntu:16.04 + commands: + - apt update && apt install curl git bzip2 -y + - if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi + - meteor npm install + - set +e + - meteor add rocketchat:lib + - set -e + - meteor build --allow-superuser --server-only --directory /drone/build + docker: + image: plugins/docker + repo: rocketchat/rocket.chat + dockerfile: .docker/Dockerfile.local + storage_driver: overlay + context: /drone/build From be84dde00844d81c91a19390645aa6772e82874b Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Wed, 27 Sep 2017 21:23:57 -0500 Subject: [PATCH 010/253] fix drone build --- .drone.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 49dda54f02c1..47b406db72db 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,10 +8,13 @@ pipeline: - set +e - meteor add rocketchat:lib - set -e + - mkdir /drone/build - meteor build --allow-superuser --server-only --directory /drone/build + - cp .docker/Dockerfile.local /drone/build/Dockerfile + - ls -lah /drone/build docker: image: plugins/docker repo: rocketchat/rocket.chat - dockerfile: .docker/Dockerfile.local + #dockerfile: .docker/Dockerfile.local storage_driver: overlay context: /drone/build From 13cbf121cff1b76df0b69a8ee0163c4925133b2a Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 28 Sep 2017 10:50:36 -0300 Subject: [PATCH 011/253] Fix drone build --- .drone.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.drone.yml b/.drone.yml index 47b406db72db..0b4b8efafc8c 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,8 @@ pipeline: build: image: ubuntu:16.04 + environment: + - METEOR_ALLOW_SUPERUSER=true commands: - apt update && apt install curl git bzip2 -y - if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi @@ -18,3 +20,4 @@ pipeline: #dockerfile: .docker/Dockerfile.local storage_driver: overlay context: /drone/build + secrets: [ docker_username, docker_password ] From f775e20bd9c31faf338d541d6cdfd8910919cc5f Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 28 Sep 2017 11:54:01 -0300 Subject: [PATCH 012/253] Fix Drone docker build --- .drone.yml | 2 +- .drone.yml.sig | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .drone.yml.sig diff --git a/.drone.yml b/.drone.yml index 0b4b8efafc8c..84eb67fcbd30 100644 --- a/.drone.yml +++ b/.drone.yml @@ -17,7 +17,7 @@ pipeline: docker: image: plugins/docker repo: rocketchat/rocket.chat - #dockerfile: .docker/Dockerfile.local + dockerfile: /drone/build/Dockerfile storage_driver: overlay context: /drone/build secrets: [ docker_username, docker_password ] diff --git a/.drone.yml.sig b/.drone.yml.sig new file mode 100644 index 000000000000..60ca007c23f7 --- /dev/null +++ b/.drone.yml.sig @@ -0,0 +1 @@ +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgYnVpbGQ6CiAgICBpbWFnZTogdWJ1bnR1OjE2LjA0CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNRVRFT1JfQUxMT1dfU1VQRVJVU0VSPXRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIGxzIC1sYWggL2Ryb25lL2J1aWxkCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCg.otjnxUe-M8f8M6IIgbcMdzCJOOp-LKUHImcD2Z4-NVI \ No newline at end of file From cab62b55590254c99cc937ac5472339bdfc61a9c Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Thu, 28 Sep 2017 12:30:31 -0300 Subject: [PATCH 013/253] Add Docker tag --- .drone.yml | 1 + .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 84eb67fcbd30..09e0f9ee632b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -21,3 +21,4 @@ pipeline: storage_driver: overlay context: /drone/build secrets: [ docker_username, docker_password ] + tag: designpreview diff --git a/.drone.yml.sig b/.drone.yml.sig index 60ca007c23f7..ae0f94aa2e89 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgYnVpbGQ6CiAgICBpbWFnZTogdWJ1bnR1OjE2LjA0CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNRVRFT1JfQUxMT1dfU1VQRVJVU0VSPXRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIGxzIC1sYWggL2Ryb25lL2J1aWxkCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCg.otjnxUe-M8f8M6IIgbcMdzCJOOp-LKUHImcD2Z4-NVI \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgYnVpbGQ6CiAgICBpbWFnZTogdWJ1bnR1OjE2LjA0CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNRVRFT1JfQUxMT1dfU1VQRVJVU0VSPXRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIGxzIC1sYWggL2Ryb25lL2J1aWxkCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.giKVh9AARDC8H58kmMLaD7LCHOjItAFgtMGWZlKYtOE \ No newline at end of file From db551c6e6f378d4e072c1763b58203b66afee223 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 13:50:29 -0500 Subject: [PATCH 014/253] try cache for drone --- .drone.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 09e0f9ee632b..f920d3b24269 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,11 +1,19 @@ pipeline: + restore-cache: + image: drillster/drone-volume-cache + restore: true + mount: + - /drone/meteor_install/ + volumes: + - /tmp/cache/Rocket.Chat:/cache build: image: ubuntu:16.04 environment: - METEOR_ALLOW_SUPERUSER=true + - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - if [ ! -e "$HOME/.meteor/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi + - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/meteor /usr/local/bin/ fi - meteor npm install - set +e - meteor add rocketchat:lib @@ -13,7 +21,14 @@ pipeline: - mkdir /drone/build - meteor build --allow-superuser --server-only --directory /drone/build - cp .docker/Dockerfile.local /drone/build/Dockerfile - - ls -lah /drone/build + - mv $HOME/.meteor /drone/meteor_install + rebuild-cache: + image: drillster/drone-volume-cache + rebuild: true + mount: + - /drone/meteor_install/ + volumes: + - /tmp/cache/Rocket.Chat:/cache docker: image: plugins/docker repo: rocketchat/rocket.chat From 6e8a3b841e5336abe9a2e822d09e509549ad22f5 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 14:08:46 -0500 Subject: [PATCH 015/253] add additional cache locations --- .drone.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index f920d3b24269..d196abf229d1 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,6 +4,8 @@ pipeline: restore: true mount: - /drone/meteor_install/ + - ./node_modules + - ./.meteor/local volumes: - /tmp/cache/Rocket.Chat:/cache build: @@ -13,7 +15,7 @@ pipeline: - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/meteor /usr/local/bin/ fi + - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/meteor /usr/local/bin/; fi - meteor npm install - set +e - meteor add rocketchat:lib @@ -27,6 +29,8 @@ pipeline: rebuild: true mount: - /drone/meteor_install/ + - ./node_modules + - ./.meteor/local volumes: - /tmp/cache/Rocket.Chat:/cache docker: From 5762d56f98bda39ade400736d49b0dfa95fd38b3 Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 14:27:38 -0500 Subject: [PATCH 016/253] fix proper path for meteor launcher --- .drone.yml | 2 +- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index d196abf229d1..9a70fea4a9e8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,7 +15,7 @@ pipeline: - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/meteor /usr/local/bin/; fi + - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/$(dirname $(readlink "$HOME/.meteor/meteor"))/scripts/admin/launch-meteor /usr/local/bin/; fi - meteor npm install - set +e - meteor add rocketchat:lib diff --git a/.drone.yml.sig b/.drone.yml.sig index ae0f94aa2e89..961dcdef9f8e 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgYnVpbGQ6CiAgICBpbWFnZTogdWJ1bnR1OjE2LjA0CiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBNRVRFT1JfQUxMT1dfU1VQRVJVU0VSPXRydWUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIGxzIC1sYWggL2Ryb25lL2J1aWxkCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.giKVh9AARDC8H58kmMLaD7LCHOjItAFgtMGWZlKYtOE \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvbWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBidWlsZDoKICAgIGltYWdlOiB1YnVudHU6MTYuMDQKICAgIGVudmlyb25tZW50OgogICAgICAtIE1FVEVPUl9BTExPV19TVVBFUlVTRVI9dHJ1ZQogICAgICAtIEhPTUU9L2Ryb25lCiAgICBjb21tYW5kczoKICAgICAgLSBhcHQgdXBkYXRlICYmIGFwdCBpbnN0YWxsIGN1cmwgZ2l0IGJ6aXAyIC15CiAgICAgIC0gaWYgWyAhIC1lICIvZHJvbmUvbWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGVsc2UgbXYgL2Ryb25lL21ldGVvcl9pbnN0YWxsICRIT01FLy5tZXRlb3I7IGNwICRIT01FLy5tZXRlb3IvJChkaXJuYW1lICQocmVhZGxpbmsgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIikpL3NjcmlwdHMvYWRtaW4vbGF1bmNoLW1ldGVvciAvdXNyL2xvY2FsL2Jpbi87IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIG12ICRIT01FLy5tZXRlb3IgL2Ryb25lL21ldGVvcl9pbnN0YWxsCiAgcmVidWlsZC1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZWJ1aWxkOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvbWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IHJvY2tldGNoYXQvcm9ja2V0LmNoYXQKICAgIGRvY2tlcmZpbGU6IC9kcm9uZS9idWlsZC9Eb2NrZXJmaWxlCiAgICBzdG9yYWdlX2RyaXZlcjogb3ZlcmxheQogICAgY29udGV4dDogL2Ryb25lL2J1aWxkCiAgICBzZWNyZXRzOiBbIGRvY2tlcl91c2VybmFtZSwgZG9ja2VyX3Bhc3N3b3JkIF0KICAgIHRhZzogZGVzaWducHJldmlldwo.jXIixhmu9ReQHZtWXzl9WsSqGLSBMhPhC4pkyC7IypM \ No newline at end of file From 302ec9e7ce69ca5ad48336f4285d9258e11c62ee Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 15:17:25 -0500 Subject: [PATCH 017/253] clean up meteor install and cache step --- .drone.yml | 9 ++++++--- .drone.yml.sig | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9a70fea4a9e8..2647629355f8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,8 @@ pipeline: image: drillster/drone-volume-cache restore: true mount: - - /drone/meteor_install/ + - /.meteor_install/ + - . - ./node_modules - ./.meteor/local volumes: @@ -15,7 +16,10 @@ pipeline: - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - if [ ! -e "/drone/meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else mv /drone/meteor_install $HOME/.meteor; cp $HOME/.meteor/$(dirname $(readlink "$HOME/.meteor/meteor"))/scripts/admin/launch-meteor /usr/local/bin/; fi + - mkdir -p $PWD/.meteor_install $HOME/.meteor + - ln -s $PWD/.meteor_install $HOME/.meteor + - export PATH="$HOME/.meteor:$PATH" + - if [ ! -e "$PWD/.meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi - meteor npm install - set +e - meteor add rocketchat:lib @@ -23,7 +27,6 @@ pipeline: - mkdir /drone/build - meteor build --allow-superuser --server-only --directory /drone/build - cp .docker/Dockerfile.local /drone/build/Dockerfile - - mv $HOME/.meteor /drone/meteor_install rebuild-cache: image: drillster/drone-volume-cache rebuild: true diff --git a/.drone.yml.sig b/.drone.yml.sig index 961dcdef9f8e..2f4072ec64ed 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvbWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBidWlsZDoKICAgIGltYWdlOiB1YnVudHU6MTYuMDQKICAgIGVudmlyb25tZW50OgogICAgICAtIE1FVEVPUl9BTExPV19TVVBFUlVTRVI9dHJ1ZQogICAgICAtIEhPTUU9L2Ryb25lCiAgICBjb21tYW5kczoKICAgICAgLSBhcHQgdXBkYXRlICYmIGFwdCBpbnN0YWxsIGN1cmwgZ2l0IGJ6aXAyIC15CiAgICAgIC0gaWYgWyAhIC1lICIvZHJvbmUvbWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGVsc2UgbXYgL2Ryb25lL21ldGVvcl9pbnN0YWxsICRIT01FLy5tZXRlb3I7IGNwICRIT01FLy5tZXRlb3IvJChkaXJuYW1lICQocmVhZGxpbmsgIiRIT01FLy5tZXRlb3IvbWV0ZW9yIikpL3NjcmlwdHMvYWRtaW4vbGF1bmNoLW1ldGVvciAvdXNyL2xvY2FsL2Jpbi87IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgICAtIG12ICRIT01FLy5tZXRlb3IgL2Ryb25lL21ldGVvcl9pbnN0YWxsCiAgcmVidWlsZC1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZWJ1aWxkOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvbWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IHJvY2tldGNoYXQvcm9ja2V0LmNoYXQKICAgIGRvY2tlcmZpbGU6IC9kcm9uZS9idWlsZC9Eb2NrZXJmaWxlCiAgICBzdG9yYWdlX2RyaXZlcjogb3ZlcmxheQogICAgY29udGV4dDogL2Ryb25lL2J1aWxkCiAgICBzZWNyZXRzOiBbIGRvY2tlcl91c2VybmFtZSwgZG9ja2VyX3Bhc3N3b3JkIF0KICAgIHRhZzogZGVzaWducHJldmlldwo.jXIixhmu9ReQHZtWXzl9WsSqGLSBMhPhC4pkyC7IypM \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvLm1ldGVvcl9pbnN0YWxsLwogICAgICAtIC4KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBta2RpciAtcCAkUFdELy5tZXRlb3JfaW5zdGFsbCAkSE9NRS8ubWV0ZW9yCiAgICAgIC0gbG4gLXMgJFBXRC8ubWV0ZW9yX2luc3RhbGwgJEhPTUUvLm1ldGVvcgogICAgICAtIGV4cG9ydCBQQVRIPSIkSE9NRS8ubWV0ZW9yOiRQQVRIIgogICAgICAtIGlmIFsgISAtZSAiJFBXRC8ubWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogIHJlYnVpbGQtY2FjaGU6CiAgICBpbWFnZTogZHJpbGxzdGVyL2Ryb25lLXZvbHVtZS1jYWNoZQogICAgcmVidWlsZDogdHJ1ZQogICAgbW91bnQ6CiAgICAgIC0gL2Ryb25lL21ldGVvcl9pbnN0YWxsLwogICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gLi8ubWV0ZW9yL2xvY2FsCiAgICB2b2x1bWVzOgogICAgICAtIC90bXAvY2FjaGUvUm9ja2V0LkNoYXQ6L2NhY2hlCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.5lshC7-gH-3fgElu-6NTmdnxv9XWA6qnHEquhYKz458 \ No newline at end of file From 6859e73d81b9aef1d555245cec12dbd706768ecd Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 15:20:09 -0500 Subject: [PATCH 018/253] I guess lets just go with the good ol: CI BUMP --- .drone.yml | 5 ++--- .drone.yml.sig | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2647629355f8..ded56ab8d3d8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,8 +3,7 @@ pipeline: image: drillster/drone-volume-cache restore: true mount: - - /.meteor_install/ - - . + - ./.meteor_install/ - ./node_modules - ./.meteor/local volumes: @@ -31,7 +30,7 @@ pipeline: image: drillster/drone-volume-cache rebuild: true mount: - - /drone/meteor_install/ + - ./.meteor_install/ - ./node_modules - ./.meteor/local volumes: diff --git a/.drone.yml.sig b/.drone.yml.sig index 2f4072ec64ed..9f4995974793 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvLm1ldGVvcl9pbnN0YWxsLwogICAgICAtIC4KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBta2RpciAtcCAkUFdELy5tZXRlb3JfaW5zdGFsbCAkSE9NRS8ubWV0ZW9yCiAgICAgIC0gbG4gLXMgJFBXRC8ubWV0ZW9yX2luc3RhbGwgJEhPTUUvLm1ldGVvcgogICAgICAtIGV4cG9ydCBQQVRIPSIkSE9NRS8ubWV0ZW9yOiRQQVRIIgogICAgICAtIGlmIFsgISAtZSAiJFBXRC8ubWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogIHJlYnVpbGQtY2FjaGU6CiAgICBpbWFnZTogZHJpbGxzdGVyL2Ryb25lLXZvbHVtZS1jYWNoZQogICAgcmVidWlsZDogdHJ1ZQogICAgbW91bnQ6CiAgICAgIC0gL2Ryb25lL21ldGVvcl9pbnN0YWxsLwogICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gLi8ubWV0ZW9yL2xvY2FsCiAgICB2b2x1bWVzOgogICAgICAtIC90bXAvY2FjaGUvUm9ja2V0LkNoYXQ6L2NhY2hlCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.5lshC7-gH-3fgElu-6NTmdnxv9XWA6qnHEquhYKz458 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAuLy5tZXRlb3JfaW5zdGFsbC8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBta2RpciAtcCAkUFdELy5tZXRlb3JfaW5zdGFsbCAkSE9NRS8ubWV0ZW9yCiAgICAgIC0gbG4gLXMgJFBXRC8ubWV0ZW9yX2luc3RhbGwgJEhPTUUvLm1ldGVvcgogICAgICAtIGV4cG9ydCBQQVRIPSIkSE9NRS8ubWV0ZW9yOiRQQVRIIgogICAgICAtIGlmIFsgISAtZSAiJFBXRC8ubWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogIHJlYnVpbGQtY2FjaGU6CiAgICBpbWFnZTogZHJpbGxzdGVyL2Ryb25lLXZvbHVtZS1jYWNoZQogICAgcmVidWlsZDogdHJ1ZQogICAgbW91bnQ6CiAgICAgIC0gLi8ubWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IHJvY2tldGNoYXQvcm9ja2V0LmNoYXQKICAgIGRvY2tlcmZpbGU6IC9kcm9uZS9idWlsZC9Eb2NrZXJmaWxlCiAgICBzdG9yYWdlX2RyaXZlcjogb3ZlcmxheQogICAgY29udGV4dDogL2Ryb25lL2J1aWxkCiAgICBzZWNyZXRzOiBbIGRvY2tlcl91c2VybmFtZSwgZG9ja2VyX3Bhc3N3b3JkIF0KICAgIHRhZzogZGVzaWducHJldmlldwo.xOvmkuXZHBQY9gq4Zn0zdNs24_e6VZGm7CUSfyLXpAI \ No newline at end of file From afe6750302d46426db4810a37a673ca2249b4b2a Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 16:00:47 -0500 Subject: [PATCH 019/253] drone fixed I think.. --- .drone.yml | 5 +---- .drone.yml.sig | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index ded56ab8d3d8..2601a6758483 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,10 +15,7 @@ pipeline: - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - mkdir -p $PWD/.meteor_install $HOME/.meteor - - ln -s $PWD/.meteor_install $HOME/.meteor - - export PATH="$HOME/.meteor:$PATH" - - if [ ! -e "$PWD/.meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi + - if [ ! -e "$PWD/.meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else ln -s $PWD/.meteor_install/ $HOME/.meteor; export PATH="$PWD/.meteor_install:$PATH"; fi - meteor npm install - set +e - meteor add rocketchat:lib diff --git a/.drone.yml.sig b/.drone.yml.sig index 9f4995974793..13af4a165f97 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAuLy5tZXRlb3JfaW5zdGFsbC8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBta2RpciAtcCAkUFdELy5tZXRlb3JfaW5zdGFsbCAkSE9NRS8ubWV0ZW9yCiAgICAgIC0gbG4gLXMgJFBXRC8ubWV0ZW9yX2luc3RhbGwgJEhPTUUvLm1ldGVvcgogICAgICAtIGV4cG9ydCBQQVRIPSIkSE9NRS8ubWV0ZW9yOiRQQVRIIgogICAgICAtIGlmIFsgISAtZSAiJFBXRC8ubWV0ZW9yX2luc3RhbGwvbWV0ZW9yIiBdOyB0aGVuIGN1cmwgaHR0cHM6Ly9pbnN0YWxsLm1ldGVvci5jb20gfCBzZWQgcy8tLXByb2dyZXNzLWJhci8tc0wvZyB8IC9iaW4vc2g7IGZpCiAgICAgIC0gbWV0ZW9yIG5wbSBpbnN0YWxsCiAgICAgIC0gc2V0ICtlCiAgICAgIC0gbWV0ZW9yIGFkZCByb2NrZXRjaGF0OmxpYgogICAgICAtIHNldCAtZQogICAgICAtIG1rZGlyIC9kcm9uZS9idWlsZAogICAgICAtIG1ldGVvciBidWlsZCAtLWFsbG93LXN1cGVydXNlciAtLXNlcnZlci1vbmx5IC0tZGlyZWN0b3J5IC9kcm9uZS9idWlsZAogICAgICAtIGNwIC5kb2NrZXIvRG9ja2VyZmlsZS5sb2NhbCAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogIHJlYnVpbGQtY2FjaGU6CiAgICBpbWFnZTogZHJpbGxzdGVyL2Ryb25lLXZvbHVtZS1jYWNoZQogICAgcmVidWlsZDogdHJ1ZQogICAgbW91bnQ6CiAgICAgIC0gLi8ubWV0ZW9yX2luc3RhbGwvCiAgICAgIC0gLi9ub2RlX21vZHVsZXMKICAgICAgLSAuLy5tZXRlb3IvbG9jYWwKICAgIHZvbHVtZXM6CiAgICAgIC0gL3RtcC9jYWNoZS9Sb2NrZXQuQ2hhdDovY2FjaGUKICBkb2NrZXI6CiAgICBpbWFnZTogcGx1Z2lucy9kb2NrZXIKICAgIHJlcG86IHJvY2tldGNoYXQvcm9ja2V0LmNoYXQKICAgIGRvY2tlcmZpbGU6IC9kcm9uZS9idWlsZC9Eb2NrZXJmaWxlCiAgICBzdG9yYWdlX2RyaXZlcjogb3ZlcmxheQogICAgY29udGV4dDogL2Ryb25lL2J1aWxkCiAgICBzZWNyZXRzOiBbIGRvY2tlcl91c2VybmFtZSwgZG9ja2VyX3Bhc3N3b3JkIF0KICAgIHRhZzogZGVzaWducHJldmlldwo.xOvmkuXZHBQY9gq4Zn0zdNs24_e6VZGm7CUSfyLXpAI \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAuLy5tZXRlb3JfaW5zdGFsbC8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRQV0QvLm1ldGVvcl9pbnN0YWxsL21ldGVvciIgXTsgdGhlbiBjdXJsIGh0dHBzOi8vaW5zdGFsbC5tZXRlb3IuY29tIHwgc2VkIHMvLS1wcm9ncmVzcy1iYXIvLXNML2cgfCAvYmluL3NoOyBlbHNlIGxuIC1zICRQV0QvLm1ldGVvcl9pbnN0YWxsLyAkSE9NRS8ubWV0ZW9yOyBleHBvcnQgUEFUSD0iJFBXRC8ubWV0ZW9yX2luc3RhbGw6JFBBVEgiOyBmaQogICAgICAtIG1ldGVvciBucG0gaW5zdGFsbAogICAgICAtIHNldCArZQogICAgICAtIG1ldGVvciBhZGQgcm9ja2V0Y2hhdDpsaWIKICAgICAgLSBzZXQgLWUKICAgICAgLSBta2RpciAvZHJvbmUvYnVpbGQKICAgICAgLSBtZXRlb3IgYnVpbGQgLS1hbGxvdy1zdXBlcnVzZXIgLS1zZXJ2ZXItb25seSAtLWRpcmVjdG9yeSAvZHJvbmUvYnVpbGQKICAgICAgLSBjcCAuZG9ja2VyL0RvY2tlcmZpbGUubG9jYWwgL2Ryb25lL2J1aWxkL0RvY2tlcmZpbGUKICByZWJ1aWxkLWNhY2hlOgogICAgaW1hZ2U6IGRyaWxsc3Rlci9kcm9uZS12b2x1bWUtY2FjaGUKICAgIHJlYnVpbGQ6IHRydWUKICAgIG1vdW50OgogICAgICAtIC4vLm1ldGVvcl9pbnN0YWxsLwogICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gLi8ubWV0ZW9yL2xvY2FsCiAgICB2b2x1bWVzOgogICAgICAtIC90bXAvY2FjaGUvUm9ja2V0LkNoYXQ6L2NhY2hlCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.Tm-oVUO_o2XbrrVj4comy0_Ws0MWO3JIzzFA7Q9Rj94 \ No newline at end of file From 6ab5d913985abac1e854fb05618f35414f84f50f Mon Sep 17 00:00:00 2001 From: Aaron Ogle Date: Thu, 28 Sep 2017 16:44:10 -0500 Subject: [PATCH 020/253] another attempt to clean up by setting home folder on drone --- .drone.yml | 10 ++++++---- .drone.yml.sig | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.drone.yml b/.drone.yml index 2601a6758483..64c7a6e1f06a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ pipeline: image: drillster/drone-volume-cache restore: true mount: - - ./.meteor_install/ + - /drone/.meteor/ - ./node_modules - ./.meteor/local volumes: @@ -12,10 +12,12 @@ pipeline: image: ubuntu:16.04 environment: - METEOR_ALLOW_SUPERUSER=true - - HOME=/drone commands: - apt update && apt install curl git bzip2 -y - - if [ ! -e "$PWD/.meteor_install/meteor" ]; then curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; else ln -s $PWD/.meteor_install/ $HOME/.meteor; export PATH="$PWD/.meteor_install:$PATH"; fi + - export HOME=/drone + - export PATH="/drone/.meteor:$PATH" + - if [ ! -e "/drone/.meteor/meteor" ]; then export HOME=/drone; curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh; fi + - which meteor - meteor npm install - set +e - meteor add rocketchat:lib @@ -27,7 +29,7 @@ pipeline: image: drillster/drone-volume-cache rebuild: true mount: - - ./.meteor_install/ + - /drone/.meteor/ - ./node_modules - ./.meteor/local volumes: diff --git a/.drone.yml.sig b/.drone.yml.sig index 13af4a165f97..d5119416c445 100644 --- a/.drone.yml.sig +++ b/.drone.yml.sig @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAuLy5tZXRlb3JfaW5zdGFsbC8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICAgIC0gSE9NRT0vZHJvbmUKICAgIGNvbW1hbmRzOgogICAgICAtIGFwdCB1cGRhdGUgJiYgYXB0IGluc3RhbGwgY3VybCBnaXQgYnppcDIgLXkKICAgICAgLSBpZiBbICEgLWUgIiRQV0QvLm1ldGVvcl9pbnN0YWxsL21ldGVvciIgXTsgdGhlbiBjdXJsIGh0dHBzOi8vaW5zdGFsbC5tZXRlb3IuY29tIHwgc2VkIHMvLS1wcm9ncmVzcy1iYXIvLXNML2cgfCAvYmluL3NoOyBlbHNlIGxuIC1zICRQV0QvLm1ldGVvcl9pbnN0YWxsLyAkSE9NRS8ubWV0ZW9yOyBleHBvcnQgUEFUSD0iJFBXRC8ubWV0ZW9yX2luc3RhbGw6JFBBVEgiOyBmaQogICAgICAtIG1ldGVvciBucG0gaW5zdGFsbAogICAgICAtIHNldCArZQogICAgICAtIG1ldGVvciBhZGQgcm9ja2V0Y2hhdDpsaWIKICAgICAgLSBzZXQgLWUKICAgICAgLSBta2RpciAvZHJvbmUvYnVpbGQKICAgICAgLSBtZXRlb3IgYnVpbGQgLS1hbGxvdy1zdXBlcnVzZXIgLS1zZXJ2ZXItb25seSAtLWRpcmVjdG9yeSAvZHJvbmUvYnVpbGQKICAgICAgLSBjcCAuZG9ja2VyL0RvY2tlcmZpbGUubG9jYWwgL2Ryb25lL2J1aWxkL0RvY2tlcmZpbGUKICByZWJ1aWxkLWNhY2hlOgogICAgaW1hZ2U6IGRyaWxsc3Rlci9kcm9uZS12b2x1bWUtY2FjaGUKICAgIHJlYnVpbGQ6IHRydWUKICAgIG1vdW50OgogICAgICAtIC4vLm1ldGVvcl9pbnN0YWxsLwogICAgICAtIC4vbm9kZV9tb2R1bGVzCiAgICAgIC0gLi8ubWV0ZW9yL2xvY2FsCiAgICB2b2x1bWVzOgogICAgICAtIC90bXAvY2FjaGUvUm9ja2V0LkNoYXQ6L2NhY2hlCiAgZG9ja2VyOgogICAgaW1hZ2U6IHBsdWdpbnMvZG9ja2VyCiAgICByZXBvOiByb2NrZXRjaGF0L3JvY2tldC5jaGF0CiAgICBkb2NrZXJmaWxlOiAvZHJvbmUvYnVpbGQvRG9ja2VyZmlsZQogICAgc3RvcmFnZV9kcml2ZXI6IG92ZXJsYXkKICAgIGNvbnRleHQ6IC9kcm9uZS9idWlsZAogICAgc2VjcmV0czogWyBkb2NrZXJfdXNlcm5hbWUsIGRvY2tlcl9wYXNzd29yZCBdCiAgICB0YWc6IGRlc2lnbnByZXZpZXcK.Tm-oVUO_o2XbrrVj4comy0_Ws0MWO3JIzzFA7Q9Rj94 \ No newline at end of file +eyJhbGciOiJIUzI1NiJ9.cGlwZWxpbmU6CiAgcmVzdG9yZS1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZXN0b3JlOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvLm1ldGVvci8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGJ1aWxkOgogICAgaW1hZ2U6IHVidW50dToxNi4wNAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gTUVURU9SX0FMTE9XX1NVUEVSVVNFUj10cnVlCiAgICBjb21tYW5kczoKICAgICAgLSBhcHQgdXBkYXRlICYmIGFwdCBpbnN0YWxsIGN1cmwgZ2l0IGJ6aXAyIC15CiAgICAgIC0gZXhwb3J0IEhPTUU9L2Ryb25lCiAgICAgIC0gZXhwb3J0IFBBVEg9Ii9kcm9uZS8ubWV0ZW9yOiRQQVRIIgogICAgICAtIGlmIFsgISAtZSAiL2Ryb25lLy5tZXRlb3IvbWV0ZW9yIiBdOyB0aGVuIGV4cG9ydCBIT01FPS9kcm9uZTsgY3VybCBodHRwczovL2luc3RhbGwubWV0ZW9yLmNvbSB8IHNlZCBzLy0tcHJvZ3Jlc3MtYmFyLy1zTC9nIHwgL2Jpbi9zaDsgZmkKICAgICAgLSB3aGljaCBtZXRlb3IKICAgICAgLSBtZXRlb3IgbnBtIGluc3RhbGwKICAgICAgLSBzZXQgK2UKICAgICAgLSBtZXRlb3IgYWRkIHJvY2tldGNoYXQ6bGliCiAgICAgIC0gc2V0IC1lCiAgICAgIC0gbWtkaXIgL2Ryb25lL2J1aWxkCiAgICAgIC0gbWV0ZW9yIGJ1aWxkIC0tYWxsb3ctc3VwZXJ1c2VyIC0tc2VydmVyLW9ubHkgLS1kaXJlY3RvcnkgL2Ryb25lL2J1aWxkCiAgICAgIC0gY3AgLmRvY2tlci9Eb2NrZXJmaWxlLmxvY2FsIC9kcm9uZS9idWlsZC9Eb2NrZXJmaWxlCiAgcmVidWlsZC1jYWNoZToKICAgIGltYWdlOiBkcmlsbHN0ZXIvZHJvbmUtdm9sdW1lLWNhY2hlCiAgICByZWJ1aWxkOiB0cnVlCiAgICBtb3VudDoKICAgICAgLSAvZHJvbmUvLm1ldGVvci8KICAgICAgLSAuL25vZGVfbW9kdWxlcwogICAgICAtIC4vLm1ldGVvci9sb2NhbAogICAgdm9sdW1lczoKICAgICAgLSAvdG1wL2NhY2hlL1JvY2tldC5DaGF0Oi9jYWNoZQogIGRvY2tlcjoKICAgIGltYWdlOiBwbHVnaW5zL2RvY2tlcgogICAgcmVwbzogcm9ja2V0Y2hhdC9yb2NrZXQuY2hhdAogICAgZG9ja2VyZmlsZTogL2Ryb25lL2J1aWxkL0RvY2tlcmZpbGUKICAgIHN0b3JhZ2VfZHJpdmVyOiBvdmVybGF5CiAgICBjb250ZXh0OiAvZHJvbmUvYnVpbGQKICAgIHNlY3JldHM6IFsgZG9ja2VyX3VzZXJuYW1lLCBkb2NrZXJfcGFzc3dvcmQgXQogICAgdGFnOiBkZXNpZ25wcmV2aWV3Cg.xYcBD1th17aUlLzA3Es2Ux0ghs4grfme2RxEUTXJZ3s \ No newline at end of file From 0dd396c4e2af0b4c65c05425d2e7001ac9901548 Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Thu, 5 Oct 2017 11:05:17 -0300 Subject: [PATCH 021/253] [NEW] Header Redesign (#7750) * Rc main content header work in progress * header redesign work in progress * Clean up some css and fix burger * Fix reviews * Apply the new header to some admin pages * Start using typography on fonts * add the new header to more pages * add more new headers * Fix admin buttons * add the new header to the account screens and fix some flexs * fix profile header and use new burger * Add favorite star fill * allign preferences contents to center * Put description under the title * fix overflow on channel topic and title * start making the header a component * move channel header template to the new one and fix burger menu * Make the header a modular component * fix some buttons on integrations * add channel icons and fix star fill * fix line height and css lint * add livechat icon * fix part of the tests * fix tests * add a max-width to header * hide room image on channels * Fix reviews and some issues with firefox also remove a console.log() * fix mobile max width * Fix Reviews reduce some elements and try to improve the naming of elements * Fix realNames on Header * [FIX] After deleting the room, cache is not synchronizing * Put delete action on another popover group * check if user can delete * [FIX] Email Subjects not being sent * fix on android * fix for ios * Tab Bar Icons moved to header * remove sidebar header on admin embedded version * fix lint issue * remove console.log * contextual bar header * remove last activity * Update meteor to 1.5.2.2-rc.0 * Fix missing i18n translations * fix header on administration * migration 101 * fix admin view header * remove accountBox from admin menu * add sidebar flex title and icons * smaller accountBox * Fix some tests and skip others skipping due some features that need fixing * Update sidebarItem.html * unify unread and mentions badge * make sidebar item width 100% * fixed tests * LingoHub Update :rocket: Manual push by LingoHub User: Gabriel Engel. Project: Rocket.Chat Made with :heart: by https://lingohub.com * meteor update --all-packages * LingoHub Update :rocket: Manual push by LingoHub User: Gabriel Engel. Project: Rocket.Chat Made with :heart: by https://lingohub.com * meteor update --release 1.5.2.2 * [FIX] Vairous LDAP issues & add pagination * LingoHub Update :rocket: Manual push by LingoHub User: Rodrigo Nascimento. Project: Rocket.Chat Made with :heart: by https://lingohub.com * LingoHub Update :rocket: Manual push by LingoHub User: Rodrigo Nascimento. Project: Rocket.Chat Made with :heart: by https://lingohub.com * contextual-bar template * fix stylelinty * fix icons --- .meteor/packages | 10 +- .meteor/release | 2 +- .meteor/versions | 12 +- package-lock.json | 10363 ++++++++++++++-- package.json | 10 +- .../client/accountSecurity.html | 15 +- .../client/startup.js | 1 + .../client/admin/adminSounds.html | 7 +- .../client/admin/startup.js | 1 + .../admin/adminEmoji.html | 7 +- .../rocketchat-emoji-custom/admin/startup.js | 1 + .../.npm/package/npm-shrinkwrap.json | 10 +- packages/rocketchat-i18n/i18n/ar.i18n.json | 402 +- packages/rocketchat-i18n/i18n/ca.i18n.json | 665 +- packages/rocketchat-i18n/i18n/cs.i18n.json | 697 +- packages/rocketchat-i18n/i18n/de-AT.i18n.json | 51 +- packages/rocketchat-i18n/i18n/de.i18n.json | 1565 ++- packages/rocketchat-i18n/i18n/el.i18n.json | 37 +- packages/rocketchat-i18n/i18n/en.i18n.json | 55 +- packages/rocketchat-i18n/i18n/es.i18n.json | 69 +- packages/rocketchat-i18n/i18n/fa.i18n.json | 84 +- packages/rocketchat-i18n/i18n/fi.i18n.json | 55 +- packages/rocketchat-i18n/i18n/fr.i18n.json | 194 +- packages/rocketchat-i18n/i18n/he.i18n.json | 39 +- packages/rocketchat-i18n/i18n/hr.i18n.json | 78 +- packages/rocketchat-i18n/i18n/hu.i18n.json | 51 +- packages/rocketchat-i18n/i18n/id.i18n.json | 37 +- packages/rocketchat-i18n/i18n/it.i18n.json | 264 +- packages/rocketchat-i18n/i18n/ja.i18n.json | 49 +- packages/rocketchat-i18n/i18n/km.i18n.json | 37 +- packages/rocketchat-i18n/i18n/ko.i18n.json | 53 +- packages/rocketchat-i18n/i18n/ku.i18n.json | 37 +- packages/rocketchat-i18n/i18n/lo.i18n.json | 37 +- packages/rocketchat-i18n/i18n/ms-MY.i18n.json | 37 +- packages/rocketchat-i18n/i18n/nl.i18n.json | 37 +- packages/rocketchat-i18n/i18n/no.i18n.json | 4 +- packages/rocketchat-i18n/i18n/pl.i18n.json | 129 +- packages/rocketchat-i18n/i18n/pt-BR.i18n.json | 39 +- packages/rocketchat-i18n/i18n/pt.i18n.json | 67 +- packages/rocketchat-i18n/i18n/ro.i18n.json | 37 +- packages/rocketchat-i18n/i18n/ru.i18n.json | 644 +- packages/rocketchat-i18n/i18n/sl-SI.i18n.json | 3 + packages/rocketchat-i18n/i18n/sq.i18n.json | 37 +- packages/rocketchat-i18n/i18n/sr.i18n.json | 37 +- packages/rocketchat-i18n/i18n/sv.i18n.json | 128 +- packages/rocketchat-i18n/i18n/ta-IN.i18n.json | 37 +- packages/rocketchat-i18n/i18n/tr.i18n.json | 95 +- packages/rocketchat-i18n/i18n/ug.i18n.json | 37 +- packages/rocketchat-i18n/i18n/uk.i18n.json | 37 +- packages/rocketchat-i18n/i18n/zh-TW.i18n.json | 37 +- packages/rocketchat-i18n/i18n/zh.i18n.json | 126 +- .../client/admin/adminImport.html | 7 +- .../client/admin/adminImportPrepare.html | 7 +- .../rocketchat-integrations/client/startup.js | 1 + .../client/views/integrations.html | 15 +- .../client/views/integrationsNew.html | 7 +- .../client/views/integrationsOutgoing.html | 17 +- .../client/views/integrationsOutgoing.js | 6 +- .../views/integrationsOutgoingHistory.html | 17 +- packages/rocketchat-katex/package-lock.json | 6 +- packages/rocketchat-ldap/package.js | 10 +- packages/rocketchat-ldap/server/index.js | 5 + packages/rocketchat-ldap/server/ldap.js | 314 +- .../rocketchat-ldap/server/loginHandler.js | 30 +- packages/rocketchat-ldap/server/settings.js | 114 +- packages/rocketchat-ldap/server/sync.js | 211 +- packages/rocketchat-ldap/server/syncUsers.js | 18 +- .../rocketchat-ldap/server/testConnection.js | 3 +- .../rocketchat-lib/client/MessageAction.js | 1 + .../client/lib/cachedCollection.js | 1 + .../server/lib/notifyUsersOnMessage.js | 2 - .../server/lib/sendEmailOnMessage.js | 2 +- .../server/models/Subscriptions.js | 13 - .../rocketchat-livechat/app/.meteor/packages | 16 +- .../rocketchat-livechat/app/.meteor/release | 2 +- .../rocketchat-livechat/app/.meteor/versions | 10 +- .../rocketchat-livechat/app/i18n/de.i18n.json | 12 +- .../rocketchat-livechat/app/i18n/fa.i18n.json | 22 +- .../rocketchat-livechat/app/i18n/fi.i18n.json | 1 + .../rocketchat-livechat/app/i18n/pl.i18n.json | 2 +- .../app/i18n/sl-SI.i18n.json | 4 + .../rocketchat-livechat/app/i18n/tr.i18n.json | 12 +- .../client/views/sideNav/livechatFlex.html | 15 +- .../client/views/sideNav/livechatFlex.js | 5 +- packages/rocketchat-logger/client/viewLogs.js | 3 +- packages/rocketchat-mailer/client/startup.js | 1 + .../client/views/mailer.html | 7 +- packages/rocketchat-markdown/markdown.js | 14 +- .../parser/marked/marked.js | 1 + .../admin/client/startup.js | 1 + .../client/rocketchat.otr.room.js | 2 +- .../client/imports/components/badge.css | 3 +- .../imports/components/contextual-bar.css | 63 + .../client/imports/components/header.css | 350 + .../client/imports/components/popover.css | 27 +- .../imports/components/sidebar/rooms-list.css | 18 +- .../components/sidebar/sidebar-account.css | 7 +- .../components/sidebar/sidebar-flex.css | 17 +- .../components/sidebar/sidebar-item.css | 30 +- .../imports/components/sidebar/toolbar.css | 2 +- .../client/imports/components/tooltip.css | 39 +- .../client/imports/forms/button.css | 12 + .../client/imports/general/base.css | 47 +- .../client/imports/general/base_old.css | 9 +- .../client/imports/general/forms.css | 21 +- .../client/imports/general/variables.css | 48 +- packages/rocketchat-theme/client/main.css | 2 + .../client/accountFlex.html | 15 +- .../client/accountFlex.js | 5 +- .../client/accountPreferences.html | 25 +- .../client/accountPreferences.js | 2 +- .../client/accountProfile.html | 9 +- .../client/avatar/prompt.html | 7 +- .../rocketchat-ui-admin/client/admin.html | 40 +- packages/rocketchat-ui-admin/client/admin.js | 12 +- .../rocketchat-ui-admin/client/adminFlex.html | 26 +- .../rocketchat-ui-admin/client/adminFlex.js | 5 +- .../rocketchat-ui-admin/client/adminInfo.html | 7 +- .../client/rooms/adminRooms.html | 7 +- .../client/users/adminUsers.html | 7 +- .../client/flexTabBar.html | 56 + .../client/flexTabBar.js | 190 +- .../rocketchat-ui-master/public/icons.svg | 10 +- .../startup/messageBoxActions.js | 47 +- .../rocketchat-ui-sidenav/client/roomList.js | 8 +- .../client/sidebarItem.html | 21 +- .../client/sidebarItem.js | 4 + .../client/components/contextualBar.html | 18 + .../client/components/contextualBar.js | 23 + .../client/components/header/header.html | 68 + .../client/components/header/header.js | 124 + .../client/views/404/roomNotFound.html | 7 +- .../client/views/app/burger.html | 8 +- .../rocketchat-ui/client/views/app/burger.js | 6 + .../rocketchat-ui/client/views/app/home.html | 7 +- .../client/views/app/pageContainer.html | 19 +- .../views/app/pageSettingsContainer.html | 7 +- .../client/views/app/popover.html | 48 +- .../rocketchat-ui/client/views/app/popover.js | 100 +- .../client/views/app/privateHistory.html | 7 +- .../rocketchat-ui/client/views/app/room.html | 41 +- .../rocketchat-ui/client/views/app/room.js | 116 +- packages/rocketchat-ui/package.js | 4 + .../rocketchat-videobridge/lib/messageType.js | 2 +- .../server/methods/jitsiSetTimeout.js | 2 +- server/publications/room.js | 3 +- server/publications/subscription.js | 1 - server/startup/migrations/v101.js | 6 + server/startup/migrations/v102.js | 136 + .../end-to-end/ui/04-main-elements-render.js | 42 +- tests/end-to-end/ui/09-channel.js | 2 +- tests/end-to-end/ui/11-admin.js | 6 +- tests/end-to-end/ui/13-permissions.js | 2 +- tests/pageobjects/flex-tab.page.js | 1 + tests/pageobjects/main-content.page.js | 6 +- tests/pageobjects/side-nav.page.js | 26 +- 156 files changed, 14712 insertions(+), 4824 deletions(-) create mode 100644 packages/rocketchat-i18n/i18n/sl-SI.i18n.json create mode 100644 packages/rocketchat-ldap/server/index.js create mode 100644 packages/rocketchat-livechat/app/i18n/sl-SI.i18n.json create mode 100644 packages/rocketchat-theme/client/imports/components/contextual-bar.css create mode 100644 packages/rocketchat-theme/client/imports/components/header.css create mode 100644 packages/rocketchat-ui/client/components/contextualBar.html create mode 100644 packages/rocketchat-ui/client/components/contextualBar.js create mode 100644 packages/rocketchat-ui/client/components/header/header.html create mode 100644 packages/rocketchat-ui/client/components/header/header.js create mode 100644 server/startup/migrations/v101.js create mode 100644 server/startup/migrations/v102.js diff --git a/.meteor/packages b/.meteor/packages index 72d393aa44b6..750803841107 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -13,7 +13,7 @@ accounts-twitter@1.3.0 blaze-html-templates check@1.2.5 ddp-rate-limiter@1.0.7 -ecmascript@0.8.2 +ecmascript@0.8.3 ejson@1.0.14 email@1.2.3 fastclick@1.0.13 @@ -22,8 +22,8 @@ jquery@1.11.10 less@2.7.9 logging@1.1.17 meteor-base@1.1.0 -mobile-experience@1.0.4 -mongo@1.2.0 +mobile-experience@1.0.5 +mongo@1.2.2 random@1.0.10 rate-limit@1.0.8 reactive-dict@1.1.9 @@ -33,7 +33,7 @@ service-configuration@1.0.11 session@1.1.7 shell-server@0.2.4 spacebars -standard-minifier-js@2.1.1 +standard-minifier-js@2.1.2 tracker@1.1.3 rocketchat:2fa @@ -175,5 +175,5 @@ yasaricli:slugify yasinuslu:blaze-meta deepwell:bootstrap-datepicker2 rocketchat:postcss -dynamic-import@0.1.1 +dynamic-import@0.1.3 keepnox:perfect-scrollbar diff --git a/.meteor/release b/.meteor/release index 47c31abcf451..099d5b9c0e8a 100644 --- a/.meteor/release +++ b/.meteor/release @@ -1 +1 @@ -METEOR@1.5.2 +METEOR@1.5.2.2 diff --git a/.meteor/versions b/.meteor/versions index 61b6df76fa60..752e9253d1d0 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,4 +1,4 @@ -accounts-base@1.3.3 +accounts-base@1.3.4 accounts-facebook@1.2.1 accounts-github@1.3.0 accounts-google@1.2.0 @@ -35,7 +35,7 @@ deps@1.0.12 diff-sequence@1.0.7 dispatch:run-as-user@1.1.1 dynamic-import@0.1.3 -ecmascript@0.8.2 +ecmascript@0.8.3 ecmascript-runtime@0.4.1 ecmascript-runtime-client@0.4.3 ecmascript-runtime-server@0.4.1 @@ -84,11 +84,11 @@ meteorhacks:inject-initial@1.0.4 meteorhacks:meteorx@1.4.1 meteorspark:util@0.2.0 minifier-css@1.2.16 -minifier-js@2.1.3 -minimongo@1.3.1 +minifier-js@2.1.4 +minimongo@1.3.2 mizzao:autocomplete@0.5.1 mizzao:timesync@0.3.4 -mobile-experience@1.0.4 +mobile-experience@1.0.5 mobile-status-bar@1.0.14 modules@0.10.0 modules-runtime@0.8.0 @@ -239,7 +239,7 @@ smoral:sweetalert@1.1.1 spacebars@1.0.15 spacebars-compiler@1.1.3 srp@1.0.10 -standard-minifier-js@2.1.1 +standard-minifier-js@2.1.2 steffo:meteor-accounts-saml@0.0.1 tap:i18n@1.8.2 templating@1.3.2 diff --git a/package-lock.json b/package-lock.json index 516cfc5322a6..6ca86bcb0222 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,9 +30,9 @@ } }, "@google-cloud/storage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.2.1.tgz", - "integrity": "sha1-oPLiCHG4YvDqZKkKxI/AiEXPlQU=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-1.3.0.tgz", + "integrity": "sha512-kZ2Q7vTyeCQP/V3Ru0DwolSsXVFaZhrX5LeCdi+jh3IDF/GiYrgLVXL7fO8IPTqS4ZfzMdPcrSxycr0rF/CM3Q==", "requires": { "@google-cloud/common": "0.13.5", "arrify": "1.0.1", @@ -41,12 +41,13 @@ "create-error-class": "3.0.2", "duplexify": "3.5.1", "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "gcs-resumable-upload": "0.8.1", + "gcs-resumable-upload": "0.8.2", "hash-stream-validation": "0.2.1", "is": "3.2.1", "mime-types": "2.1.17", "once": "1.4.0", "pumpify": "1.3.5", + "safe-buffer": "5.1.1", "stream-events": "1.0.2", "string-format-obj": "1.1.0", "through2": "2.0.3" @@ -59,19 +60,81 @@ "requires": { "mime-db": "1.30.0" } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" } } }, + "JSONStream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", + "integrity": "sha1-cH92HgHa6eFvG8+TcDt4xwlmV5o=", + "dev": true, + "requires": { + "jsonparse": "1.3.1", + "through": "2.3.8" + } + }, "abbrev": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=" }, + "acorn": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz", + "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==", + "dev": true + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "3.3.0" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", + "dev": true + }, "addressparser": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", "integrity": "sha1-R6++GiqSYhkdtoOOT9HTm0CCF0Y=" }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "dev": true, + "requires": { + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "dev": true + } + } + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -81,6 +144,35 @@ "json-stable-stringify": "1.0.1" } }, + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, "ansi-regex": { "version": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" @@ -90,10 +182,121 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, + "any-promise": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", + "integrity": "sha1-gwtoCqflbzNFHUsEnzvYBESY7ic=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, "aproba": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", - "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==" + "integrity": "sha1-RcZikJTeTpb2k+9+q3SuB5wkD8E=" + }, + "archiver": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", + "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "async": "2.5.0", + "buffer-crc32": "0.2.13", + "glob": "7.1.2", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "readable-stream": "2.3.3", + "tar-stream": "1.5.2", + "walkdir": "0.0.11", + "zip-stream": "1.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "archiver-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", + "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", + "dev": true, + "requires": { + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lazystream": "1.0.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "normalize-path": "2.1.1", + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } }, "are-we-there-yet": { "version": "1.1.4", @@ -133,6 +336,50 @@ } } }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=", + "dev": true + }, "array-includes": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", @@ -142,11 +389,26 @@ "es-abstract": "1.7.0" } }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", @@ -162,6 +424,12 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", @@ -170,14 +438,40 @@ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" } }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, "asynckit": { "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-1.1.3.tgz", + "integrity": "sha1-lfE2KbEsOlGl0hWr3OKqnzL4B3M=", + "dev": true + }, + "autoprefixer": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.4.tgz", + "integrity": "sha512-MB1XybOJqu1uAwpfSilAa1wSURNc4W310CFKvMj1fNaJBFxr1PGgz72vZaPr9ryKGqs2vYZ6jDyJ0aiGELjsoA==", + "dev": true, + "requires": { + "browserslist": "2.4.0", + "caniuse-lite": "1.0.30000738", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.12", + "postcss-value-parser": "3.3.0" + } + }, "aws-sdk": { - "version": "2.111.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.111.0.tgz", - "integrity": "sha1-qDTOE/9ECzSOReBHyNx71pbxsm0=", + "version": "2.123.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.123.0.tgz", + "integrity": "sha1-JFKDMjznPj050KFmhhRRzhKcqL4=", "requires": { "buffer": "4.9.1", "crypto-browserify": "1.0.9", @@ -851,6 +1145,15 @@ "regenerator-transform": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz" } }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-strict-mode": { "version": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", @@ -860,6 +1163,25 @@ "babel-types": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz" } }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + }, + "dependencies": { + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + } + } + }, "babel-preset-es2015": { "version": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", "integrity": "sha1-l9zn7ykuGMubK3VF2AxZPCjZUX8=", @@ -1072,7 +1394,7 @@ "bcrypt": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-1.0.3.tgz", - "integrity": "sha512-pRyDdo73C8Nim3jwFJ7DWe3TZCgwDfWZ6nHS5LSdU77kWbj1frruvdndP02AOavtD4y8v6Fp2dolbHgp4SDrfg==", + "integrity": "sha1-sC3cbAtS6ha40883XVoy54DatUg=", "requires": { "nan": "2.6.2", "node-pre-gyp": "0.6.36" @@ -1087,11 +1409,48 @@ "tweetnacl": "0.14.5" } }, + "binary-extensions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", + "dev": true + }, "bintrees": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" }, + "bl": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "integrity": "sha1-/cqHGplxOqANGeO7ukHER4emU5g=", + "dev": true, + "requires": { + "readable-stream": "2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "0.10.31", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "block-stream": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", @@ -1100,6 +1459,12 @@ "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" } }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -1116,6 +1481,33 @@ "concat-map": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" } }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "browserslist": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.4.0.tgz", + "integrity": "sha512-aM2Gt4x9bVlCUteADBS6JP0F+2tMWKM1jQzUulVROtdFWFIcIVvY76AJbr7GDqy0eDhn+PcnpzzivGxY4qiaKQ==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000738", + "electron-to-chromium": "1.3.22" + } + }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", @@ -1126,6 +1518,12 @@ "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", @@ -1140,1304 +1538,7534 @@ "version": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" }, - "capture-stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", - "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "caller-id": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-id/-/caller-id-0.1.0.tgz", + "integrity": "sha1-Wb2sCJPRLDhxQIJ5Ix+XRYNk8Hs=", + "dev": true, + "requires": { + "stack-trace": "0.0.10" + } }, - "chalk": { - "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + "callsites": "0.2.0" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true }, - "codemirror": { - "version": "5.29.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.29.0.tgz", - "integrity": "sha512-nlG9m0YQ0gFhdEdnKDG+XJRB/bW+K6M9Axs01+LScjVamWtd4dEwgyohf/r4voW1efnGi6U6hHHvDQ9tt9BtoA==" + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true }, - "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, - "component-emitter": { - "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "concat-map": { - "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000738", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" }, "dependencies": { - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "caniuse-db": "1.0.30000738", + "electron-to-chromium": "1.3.22" } } } }, - "configstore": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", - "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.0.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "convert-source-map": { - "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "cookiejar": { - "version": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", - "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "caniuse-db": { + "version": "1.0.30000738", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000738.tgz", + "integrity": "sha1-hICavEmjkOWowiSrk2nT+NAaogI=", "dev": true }, - "core-js": { - "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "caniuse-lite": { + "version": "1.0.30000738", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000738.tgz", + "integrity": "sha1-GCDDya25oRfjEaW9yh0lvDQojro=", "dev": true }, - "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "create-error-class": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", - "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", - "requires": { - "capture-stack-trace": "1.0.0" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "2.10.1" - } - }, - "crypto-browserify": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", - "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" - }, - "crypto-random-string": { + "capture-stack-trace": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz", + "integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=" }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, + "optional": true, "requires": { - "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - }, - "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" - }, - "define-properties": { - "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "requires": { - "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" + "align-text": "0.1.4", + "lazy-cache": "1.0.4" } }, - "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "detect-indent": { - "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "chai": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", + "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true, "requires": { - "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "assertion-error": "1.0.2", + "deep-eql": "0.1.3", + "type-detect": "1.0.0" } }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "chai-as-promised": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-6.0.0.tgz", + "integrity": "sha1-GgKkM6byTa+sY7nJb6FoTbGqjaY=", + "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" - } + "check-error": "1.0.2" } }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" - }, - "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "chalk": { + "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "requires": { - "domelementtype": "1.3.0" + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } }, - "domutils": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", - "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "requires": { - "is-obj": "1.0.1" - } + "child-process-debug": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/child-process-debug/-/child-process-debug-0.0.7.tgz", + "integrity": "sha1-VOEfuBw7b5Spa2MfrKk+0a9/itA=", + "dev": true }, - "duplexify": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", - "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", + "chimp": { + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/chimp/-/chimp-0.50.0.tgz", + "integrity": "sha512-OZiGO1UWMi/msriskMGy0lCofI+BMVTZoGwY3u/feHA2UfxMtEYIuCbX+MQMJT6bsSWkIah7DpmBlFPD1rOPnA==", + "dev": true, "requires": { - "end-of-stream": "1.4.0", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" + "async": "0.9.2", + "babel-core": "https://registry.npmjs.org/babel-core/-/babel-core-6.9.1.tgz", + "babel-plugin-transform-runtime": "6.23.0", + "babel-polyfill": "6.26.0", + "babel-preset-es2015": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", + "babel-preset-stage-2": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "bluebird": "3.5.0", + "chai": "3.5.0", + "chai-as-promised": "6.0.0", + "child-process-debug": "0.0.7", + "chokidar": "1.6.1", + "chromedriver": "2.32.3", + "colors": "1.1.2", + "commander": "2.11.0", + "cucumber": "1.3.0", + "deep-extend": "0.4.2", + "exit": "0.1.2", + "fibers": "1.0.15", + "freeport": "1.0.5", + "fs-extra": "1.0.0", + "glob": "7.1.1", + "hapi": "8.8.0", + "jasmine": "2.8.0", + "loglevel": "1.4.1", + "minimist": "1.2.0", + "mocha": "3.5.3", + "phantomjs-prebuilt": "2.1.13", + "progress": "1.1.8", + "request": "2.81.0", + "requestretry": "1.5.0", + "saucelabs": "1.4.0", + "selenium-standalone": "5.11.2", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "xolvio-ddp": "0.12.3", + "xolvio-jasmine-expect": "1.1.0", + "xolvio-sync-webdriverio": "9.0.1" }, "dependencies": { - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "js-tokens": "3.0.2" } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "jsesc": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" + } }, - "string_decoder": { + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.1", + "home-or-tmp": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "lodash": "4.17.4", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "source-map-support": "0.4.18" + }, + "dependencies": { + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "slash": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "source-map": "0.5.7" + } + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "lodash": "4.17.4", + "to-fast-properties": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "camel-case": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "no-case": "2.3.1", + "upper-case": "1.1.3" + } + }, + "cli-table": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "bundled": true, + "dev": true + } + } + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true + }, + "colors": { + "version": "1.1.2", + "bundled": true, + "dev": true + }, + "commander": { + "version": "2.11.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "cucumber": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "camel-case": "3.0.0", + "cli-table": "0.3.1", + "co": "4.6.0", + "colors": "1.1.2", + "commander": "2.11.0", + "duration": "0.2.0", + "fibers": "1.0.15", + "figures": "1.7.0", + "gherkin": "4.0.0", + "glob": "7.1.1", + "is-generator": "1.0.3", + "lodash": "4.17.4", + "meteor-promise": "0.8.6", + "stack-chain": "1.3.7", + "stacktrace-js": "1.3.1" + } + }, + "d": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "requires": { + "es5-ext": "0.10.30" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "duration": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "requires": { + "d": "0.1.1", + "es5-ext": "0.10.30" + } + }, + "error-stack-parser": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "requires": { + "stackframe": "0.3.1" + } + }, + "es5-ext": { + "version": "0.10.30", + "bundled": true, + "dev": true, + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30", + "es6-symbol": "3.1.1" + }, + "dependencies": { + "d": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "es5-ext": "0.10.30" + } + } + } + }, + "es6-symbol": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30" + }, + "dependencies": { + "d": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "es5-ext": "0.10.30" + } + } + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, + "fibers": { + "version": "1.0.15", + "bundled": true, + "dev": true + }, + "figures": { + "version": "1.7.0", + "bundled": true, + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "gherkin": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "glob": { + "version": "7.1.1", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.3.0", + "path-is-absolute": "1.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.3.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "is-generator": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "bundled": true, + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "bundled": true, + "dev": true + }, + "lower-case": { + "version": "1.1.4", + "bundled": true, + "dev": true + }, + "meteor-promise": { + "version": "0.8.6", + "bundled": true, + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "no-case": { + "version": "2.3.1", + "bundled": true, + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true + }, + "once": { + "version": "1.3.0", + "bundled": true, + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "stack-chain": { + "version": "1.3.7", + "bundled": true, + "dev": true + }, + "stack-generator": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "stackframe": "1.0.4" + }, + "dependencies": { + "stackframe": { + "version": "1.0.4", + "bundled": true, + "dev": true + } + } + }, + "stackframe": { + "version": "0.3.1", + "bundled": true, + "dev": true + }, + "stacktrace-gps": { + "version": "2.4.4", + "bundled": true, + "dev": true, + "requires": { + "source-map": "0.5.6", + "stackframe": "0.3.1" + }, + "dependencies": { + "source-map": { + "version": "0.5.6", + "bundled": true, + "dev": true + } + } + }, + "stacktrace-js": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "error-stack-parser": "1.3.6", + "stack-generator": "1.1.0", + "stacktrace-gps": "2.4.4" } + }, + "upper-case": { + "version": "1.1.3", + "bundled": true, + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "chokidar": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", + "integrity": "sha1-L0RHq16W5Q+z14n9kNTHLg5McMI=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.2", + "glob-parent": "2.0.0", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "readdirp": "2.1.0" + } + }, + "chromedriver": { + "version": "2.32.3", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.32.3.tgz", + "integrity": "sha1-zoTwVb7ny/5W8xGCsnbzMlaxK/E=", + "dev": true, + "requires": { + "extract-zip": "1.6.5", + "kew": "0.7.0", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "request": "2.81.0", + "rimraf": "2.6.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true } } }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", + "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "dev": true, + "requires": { + "is-regexp": "1.0.0", + "is-supported-regexp-flag": "1.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "codemirror": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.30.0.tgz", + "integrity": "sha512-pfJV/7fLAUUenuGK3iANkQu1AxNLuWpeF7HV6YFDjSBMp53F8FTa2F6oPs9NKAHFweT2m08usmXUIA+7sohdew==" + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.2", + "color-convert": "1.9.0", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "combined-stream": { + "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } + }, + "compare-func": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", + "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", + "dev": true, + "requires": { + "array-ify": "1.0.0", + "dot-prop": "3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", + "dev": true, + "requires": { + "is-obj": "1.0.1" + } + } + } + }, + "complex.js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.0.4.tgz", + "integrity": "sha512-Syl95HpxUTS0QjwNxencZsKukgh1zdS9uXeXX2Us0pHaqBR6kiZZi0AkZ9VpZFwHJyVIUVzI4EumjWdXP3fy6w==", + "dev": true + }, + "component-emitter": { + "version": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "compress-commons": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.0.tgz", + "integrity": "sha1-WFhwku8g03y1i68AARLJJ4/3O58=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "crc32-stream": "2.0.0", + "normalize-path": "2.1.1", + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "concat-map": { + "version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "configstore": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.0.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "conventional-changelog": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-1.1.5.tgz", + "integrity": "sha512-DUM0iXhgE11uRCoEQnFuYQA5zJcxfvKn940ZFyXziFl0y05yBCoy5ci2fcQYFWQ+OyyxgE2H02EdgYpuz9XG4w==", + "dev": true, + "requires": { + "conventional-changelog-angular": "1.5.0", + "conventional-changelog-atom": "0.1.1", + "conventional-changelog-codemirror": "0.2.0", + "conventional-changelog-core": "1.9.1", + "conventional-changelog-ember": "0.2.7", + "conventional-changelog-eslint": "0.2.0", + "conventional-changelog-express": "0.2.0", + "conventional-changelog-jquery": "0.1.0", + "conventional-changelog-jscs": "0.1.0", + "conventional-changelog-jshint": "0.2.0" + } + }, + "conventional-changelog-angular": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-1.5.0.tgz", + "integrity": "sha512-Gt0qSf5wdFmLabgdSlqjguDAmPyYTXtUl4WH5W3SlpElHhnU/UiCY3M7xcIkZxrNQfVA1UxUBgu65eBbaJnZVA==", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "q": "1.5.0" + } + }, + "conventional-changelog-atom": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-0.1.1.tgz", + "integrity": "sha512-6Nlu/+MiD4gi7k3Z+N1vMJWpaPSdvFPWzPGnH4OXewHAxiAl0L/TT9CGgA01fosPxmYr4hMNtD7kyN0tkg8vIA==", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-cli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-1.3.3.tgz", + "integrity": "sha512-2bsDXAidc7TWErFHl58IDPPkcHvtscDr6a63tpne7OZPu5JAqeDc3iKimvzvhdUfcWLowlXmoei8sBHMQ0sMYw==", + "dev": true, + "requires": { + "add-stream": "1.0.0", + "conventional-changelog": "1.1.5", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "meow": "3.7.0", + "tempfile": "1.1.1" + } + }, + "conventional-changelog-codemirror": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.0.tgz", + "integrity": "sha512-jUbY98JoKdAOR5k3pOBiKZ+Iz9t2F84hL7x4WjSRW6x7FdeCEUOjyfml+YClE2h/h62Tf3mwur5jSO8upxxc1g==", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-1.9.1.tgz", + "integrity": "sha512-Fo0bSeO+NsO6GtuQXts0xQeRpLrxaABTPU8NK4Zij9sJB3zFkU4BObSefJS4F4+EkKujaKCWtfS6Uih+9NpXrQ==", + "dev": true, + "requires": { + "conventional-changelog-writer": "2.0.1", + "conventional-commits-parser": "2.0.0", + "dateformat": "1.0.12", + "get-pkg-repo": "1.4.0", + "git-raw-commits": "1.2.0", + "git-remote-origin-url": "2.0.0", + "git-semver-tags": "1.2.1", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "normalize-package-data": "2.4.0", + "q": "1.5.0", + "read-pkg": "1.1.0", + "read-pkg-up": "1.0.1", + "through2": "2.0.3" + } + }, + "conventional-changelog-ember": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-0.2.7.tgz", + "integrity": "sha512-Xj1v9uVcKM8N798hMr7e6yiw8IFyvI6Ik+TdjdmG54uGupqvEEWW37xAbPPbdKvgoitbyZkqUTancj055actEg==", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-eslint": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.0.tgz", + "integrity": "sha512-WGKnC0bGPD6BHGiRBfYqNGfy6DZDn2jGs1yxPRT8I2796wYdGqsbDF4477o4fdsxUJvckoW2OFPqkmRMQaCHSA==", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-express": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-0.2.0.tgz", + "integrity": "sha512-ujSEmbWfozC1iIjH5Pl7AKtREowvAl10whs1q6c7nZLnoNZK5CmdB2PQ/V42O6rCgUzaLX+ACRW2+g0A/Htqvw==", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-jquery": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-0.1.0.tgz", + "integrity": "sha1-Agg5cWLjhGmG5xJztsecW1+A9RA=", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-jscs": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jscs/-/conventional-changelog-jscs-0.1.0.tgz", + "integrity": "sha1-BHnrRDzH1yxYvwvPDvHURKkvDlw=", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "conventional-changelog-jshint": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.0.tgz", + "integrity": "sha512-uUP4c0et6F2teapl+YY2JHFAHD401U5CkgI+P8PyU0y1zS8BdBy6EnhqgZEXhFOp9fPzUdic+Wv/9alOqw3agQ==", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "q": "1.5.0" + } + }, + "conventional-changelog-writer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-2.0.1.tgz", + "integrity": "sha512-X4qC758celQOKw0iUPAsH5sJX6fH6N5dboFc3elXb1/SIKhsYMukhhaxWmxRdtVUSqGt9rZg8giwBQG5B2GeKg==", + "dev": true, + "requires": { + "compare-func": "1.3.2", + "conventional-commits-filter": "1.0.0", + "dateformat": "1.0.12", + "handlebars": "4.0.10", + "json-stringify-safe": "5.0.1", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "meow": "3.7.0", + "semver": "5.4.1", + "split": "1.0.1", + "through2": "2.0.3" + } + }, + "conventional-commits-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-1.0.0.tgz", + "integrity": "sha1-b8KmWTcrw/IznPn//34bA0S5MDk=", + "dev": true, + "requires": { + "is-subset": "0.1.1", + "modify-values": "1.0.0" + } + }, + "conventional-commits-parser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.0.0.tgz", + "integrity": "sha512-8od6g684Fhi5Vpp4ABRv/RBsW1AY6wSHbJHEK6FGTv+8jvAAnlABniZu/FVmX9TcirkHepaEsa1QGkRvbg0CKw==", + "dev": true, + "requires": { + "JSONStream": "1.3.1", + "is-text-path": "1.0.1", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3", + "trim-off-newlines": "1.0.1" + } + }, + "convert-source-map": { + "version": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookiejar": { + "version": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.1.tgz", + "integrity": "sha1-Qa1XsbVVlR7BcUEqgZQrHoIA00o=", + "dev": true + }, + "core-js": { + "version": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "dev": true + }, + "core-util-is": { + "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.10.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "crc": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz", + "integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=", + "dev": true + }, + "crc32-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", + "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", + "dev": true, + "requires": { + "crc": "3.5.0", + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "requires": { + "capture-stack-trace": "1.0.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.2.14" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "crypto-browserify": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", + "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "css-color-function": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/css-color-function/-/css-color-function-1.3.0.tgz", + "integrity": "sha1-csdnuvl48BuKipT0Lxe6XSKndvw=", + "dev": true, + "requires": { + "balanced-match": "0.1.0", + "color": "0.11.4", + "debug": "0.7.4", + "rgb": "0.1.0" + }, + "dependencies": { + "balanced-match": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.1.0.tgz", + "integrity": "sha1-tQS9BYabOSWd0MXvw12EMXbczEo=", + "dev": true + }, + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + } + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "2.2.1" + } + }, + "css-value": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/css-value/-/css-value-0.0.1.tgz", + "integrity": "sha1-Xv1sLupeof1rasV+wEJ7GEUkJOo=", + "dev": true + }, + "ctype": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "dargs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", + "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", + "dev": true, + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "dateformat": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", + "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", + "dev": true, + "requires": { + "get-stdin": "4.0.1", + "meow": "3.7.0" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + } + } + }, + "ddp-ejson": { + "version": "0.8.1-3", + "resolved": "https://registry.npmjs.org/ddp-ejson/-/ddp-ejson-0.8.1-3.tgz", + "integrity": "sha1-6dZ0Zqt4m9dOfZcHSjbiQGkO7sI=", + "dev": true, + "requires": { + "ddp-underscore-patched": "0.8.1-2" + } + }, + "ddp-underscore-patched": { + "version": "0.8.1-2", + "resolved": "https://registry.npmjs.org/ddp-underscore-patched/-/ddp-underscore-patched-0.8.1-2.tgz", + "integrity": "sha1-ZaQU6fIuxagqoWOG40NmtI/Ozx0=", + "dev": true + }, + "debug": { + "version": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decimal.js": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-7.2.3.tgz", + "integrity": "sha512-AoFI37QS0S87Ft0r3Bdz4q9xSpm1Paa9lSeKLXgMPk/u/+QPIM5Gy4DHcZQS1seqPJH4gHLauPGn347z0HbsrA==", + "dev": true + }, + "deep-eql": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", + "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", + "dev": true, + "requires": { + "type-detect": "0.1.1" + }, + "dependencies": { + "type-detect": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz", + "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=", + "dev": true + } + } + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.3.2.tgz", + "integrity": "sha1-FmNpFinU2/42T6EqKk8KqGqjoFA=", + "dev": true + }, + "define-properties": { + "version": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "requires": { + "foreach": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.1" + }, + "dependencies": { + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "delayed-stream": { + "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-indent": { + "version": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + } + }, + "diff": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "dev": true + }, + "doctrine": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.0.0.tgz", + "integrity": "sha1-xz2NKQnSIpHhoAejlYBNqLZl/mM=", + "dev": true, + "requires": { + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" + }, + "domhandler": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", + "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.6.2.tgz", + "integrity": "sha1-GVjMC0yUJuntNn+xyOhUiRsPo/8=", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "1.0.1" + } + }, + "duplexify": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", + "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", + "requires": { + "end-of-stream": "1.4.0", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "2.3.3", + "stream-shift": "1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", + "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "requires": { + "base64url": "2.0.0", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "ejs": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz", + "integrity": "sha1-zIcsFoiArjxxiXYv1f/ACJbJUYo=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.22", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.22.tgz", + "integrity": "sha1-QyLVLBUUBuPq73StAmdog+hBZBg=", + "dev": true + }, + "emailreplyparser": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/emailreplyparser/-/emailreplyparser-0.0.5.tgz", + "integrity": "sha1-BpYswKRCFnWbo7mOOyV3wM4w/Aw=" + }, + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "requires": { + "once": "1.4.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", + "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "es6-promise": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", + "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=", + "dev": true + }, + "escape-string-regexp": { + "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.7.2.tgz", + "integrity": "sha1-/29fUZOEiifum2J74+c/ucteZi4=", + "dev": true, + "requires": { + "ajv": "5.2.3", + "babel-code-frame": "6.26.0", + "chalk": "2.1.0", + "concat-stream": "1.6.0", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.0.0", + "eslint-scope": "3.7.1", + "espree": "3.5.1", + "esquery": "1.0.0", + "estraverse": "4.2.0", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "9.18.0", + "ignore": "3.3.5", + "imurmurhash": "0.1.4", + "inquirer": "3.0.6", + "is-resolvable": "1.0.0", + "js-yaml": "3.10.0", + "json-stable-stringify": "1.0.1", + "levn": "0.3.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "require-uncached": "1.0.3", + "semver": "5.4.1", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", + "table": "4.0.2", + "text-table": "0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", + "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "strip-ansi": "3.0.1", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } + } + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "progress": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", + "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + } + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "espree": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz", + "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=", + "dev": true, + "requires": { + "acorn": "5.1.2", + "acorn-jsx": "3.0.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esquery": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", + "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "dev": true, + "requires": { + "estraverse": "4.2.0" + } + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "execall": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-1.0.0.tgz", + "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", + "dev": true, + "requires": { + "clone-regexp": "1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "extend": { + "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz", + "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19", + "jschardet": "1.5.1", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extract-zip": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.5.tgz", + "integrity": "sha1-maBnNbbqIOqbcF13ms/8yHz/BEA=", + "dev": true, + "requires": { + "concat-stream": "1.6.0", + "debug": "2.2.0", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "faye-websocket": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.9.4.tgz", + "integrity": "sha1-iFk0x57/sECVSeDAo4Ae0XpAza0=", + "dev": true, + "requires": { + "websocket-driver": "0.7.0" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "1.2.0" + } + }, + "fg-lodash": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/fg-lodash/-/fg-lodash-0.0.2.tgz", + "integrity": "sha1-mINSU39CfaavIiEpu2OsyknmL6M=", + "dev": true, + "requires": { + "lodash": "2.4.2", + "underscore.string": "2.3.3" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "dev": true + }, + "underscore.string": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz", + "integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=", + "dev": true + } + } + }, + "fibers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/fibers/-/fibers-1.0.15.tgz", + "integrity": "sha1-IvA5yPGLhWGQ+75N7PBWFUwerpw=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz", + "integrity": "sha1-mo+jb06K1jTjv2tPPIiCVRRS6yA=", + "dev": true, + "requires": { + "is-object": "1.0.1", + "merge-descriptors": "1.0.1" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz" + } + }, + "formidable": { + "version": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", + "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", + "dev": true + }, + "fraction.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.2.tgz", + "integrity": "sha512-OswcigOSil3vYXgrPSx4NCaSyPikXqVNYN/4CyhS0ucVOJ4GVYr6KQQLLcAudvS/4bBOzxqJ3XIsFaaMjl98ZQ==", + "dev": true + }, + "freeport": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/freeport/-/freeport-1.0.5.tgz", + "integrity": "sha1-JV6KuEFwwzuoXZkOghrl9KGpvF0=", + "dev": true + }, + "fs-extra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", + "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", + "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true, + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true, + "dev": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true, + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "dev": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true, + "dev": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "dev": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.36", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true, + "dev": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true, + "dev": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "dev": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + } + } + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.11", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", + "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "requires": { + "fstream": "1.0.11", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + } + }, + "function-bind": { + "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "wide-align": "1.1.2" + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "requires": { + "globule": "1.2.0" + } + }, + "gcp-metadata": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.3.1.tgz", + "integrity": "sha512-5kJPX/RXuqoLmHiOOgkSDk/LI0QaXpEvZ3pvQP4ifjGGDKZKVSOjL/GcDjXA5kLxppFCOjmmsu0Uoop9d1upaQ==", + "requires": { + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "retry-request": "3.0.0" + }, + "dependencies": { + "retry-request": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.0.0.tgz", + "integrity": "sha1-i60rHc8Ek4uyEeLO2GLlkbgvGRc=", + "requires": { + "request": "2.81.0", + "through2": "2.0.3" + } + } + } + }, + "gcs-resumable-upload": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.2.tgz", + "integrity": "sha512-PBl1OFABYxubxfYPh000I0+JLbQzBRtNqxzgxYboIQk2tdw7BvjJ2dVukk3YH4QM6GiUwqItyNqWBuxjLH8GhA==", + "requires": { + "buffer-equal": "1.0.0", + "configstore": "3.1.1", + "google-auto-auth": "0.7.2", + "pumpify": "1.3.5", + "request": "2.81.0", + "stream-events": "1.0.2", + "through2": "2.0.3" + } + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true, + "requires": { + "is-property": "1.0.2" + } + }, + "get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "meow": "3.7.0", + "normalize-package-data": "2.4.0", + "parse-github-repo-url": "1.4.1", + "through2": "2.0.3" + } + }, + "get-stdin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", + "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "git-raw-commits": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.2.0.tgz", + "integrity": "sha1-DzqL/ZmuDy2LkiTViJKXXppS0Dw=", + "dev": true, + "requires": { + "dargs": "4.1.0", + "lodash.template": "4.4.0", + "meow": "3.7.0", + "split2": "2.2.0", + "through2": "2.0.3" + } + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "1.0.0", + "pify": "2.3.0" + } + }, + "git-semver-tags": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-1.2.1.tgz", + "integrity": "sha512-fFyxtzTHCTQKwB4clA2AInVrlflBbVbbJD4NWwmxKXHUgsU/K9kmHNlkPLqFiuy9xu9q3lNopghR4VXeQwZbTQ==", + "dev": true, + "requires": { + "meow": "3.7.0", + "semver": "5.4.1" + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "requires": { + "ini": "1.3.4" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "once": "1.4.0", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", + "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + } + }, + "gonzales-pe": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.2.tgz", + "integrity": "sha512-jbQFnd6CD3iEuGtSKVhsh37tQIkkx+/eil3tufyYOHMouG89uqtkWGP03P4vxY+XGeJnCi3ewIY+BnBogyC61Q==", + "dev": true, + "requires": { + "minimist": "1.1.3" + }, + "dependencies": { + "minimist": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", + "dev": true + } + } + }, + "google-auth-library": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.10.0.tgz", + "integrity": "sha1-bhW6vuhf0d0U2NEoopW2g41SE24=", + "requires": { + "gtoken": "1.2.2", + "jws": "3.1.4", + "lodash.noop": "3.0.1", + "request": "2.81.0" + } + }, + "google-auto-auth": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.2.tgz", + "integrity": "sha512-ux2n2AE2g3+vcLXwL4dP/M12SFMRX5dzCzBfhAEkTeAB7dpyGdOIEj7nmUx0BHKaCcUQrRWg9kT63X/Mmtk1+A==", + "requires": { + "async": "2.5.0", + "gcp-metadata": "0.3.1", + "google-auth-library": "0.10.0", + "request": "2.81.0" + } + }, + "google-p12-pem": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz", + "integrity": "sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=", + "requires": { + "node-forge": "0.7.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "gtoken": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.2.tgz", + "integrity": "sha1-Fyd2oanZasCfwioA9b6DzubeiCA=", + "requires": { + "google-p12-pem": "0.1.2", + "jws": "3.1.4", + "mime": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "request": "2.81.0" + } + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "hapi": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/hapi/-/hapi-8.8.0.tgz", + "integrity": "sha1-h+N6Bum0meiXkOLcERqpZotuYX8=", + "dev": true, + "requires": { + "accept": "1.0.0", + "ammo": "1.0.0", + "boom": "2.7.2", + "call": "2.0.1", + "catbox": "4.3.0", + "catbox-memory": "1.1.1", + "cryptiles": "2.0.4", + "h2o2": "4.0.1", + "heavy": "3.0.0", + "hoek": "2.14.0", + "inert": "2.1.5", + "iron": "2.1.2", + "items": "1.1.0", + "joi": "6.4.1", + "kilt": "1.1.1", + "mimos": "2.0.2", + "peekaboo": "1.0.0", + "qs": "4.0.0", + "shot": "1.5.3", + "statehood": "2.1.1", + "subtext": "1.1.1", + "topo": "1.0.2", + "vision": "2.0.1" + }, + "dependencies": { + "accept": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/accept/-/accept-1.0.0.tgz", + "integrity": "sha1-g++IOWi4WkDFARYEKCoiD/AeYq0=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0" + } + }, + "ammo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ammo/-/ammo-1.0.0.tgz", + "integrity": "sha1-4FlIG/aAhzj66G1GT3L6DBLWeoU=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0" + } + }, + "boom": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.7.2.tgz", + "integrity": "sha1-2tYo2Jf3/S4yzIIZfxMweXHPg1Q=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "call": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/call/-/call-2.0.1.tgz", + "integrity": "sha1-SbQnCZQ96JoyJYqpEbWHUeI3eg4=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0" + } + }, + "catbox": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/catbox/-/catbox-4.3.0.tgz", + "integrity": "sha1-IiN3vWfxKRrA4l0AAC0GWp3385o=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0", + "joi": "6.4.1" + } + }, + "catbox-memory": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/catbox-memory/-/catbox-memory-1.1.1.tgz", + "integrity": "sha1-QqUvgLye+nJmAeltQBYDNhJIGig=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "cryptiles": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz", + "integrity": "sha1-CeoXdbnhx95+YKmdQqtvCM4aEoU=", + "dev": true, + "requires": { + "boom": "2.7.2" + } + }, + "h2o2": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/h2o2/-/h2o2-4.0.1.tgz", + "integrity": "sha1-eg4rztHZcXjsVs48ykjgxW3un40=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0", + "joi": "6.4.1", + "wreck": "6.0.0" + } + }, + "heavy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/heavy/-/heavy-3.0.0.tgz", + "integrity": "sha1-/QEIdiExYy+IVIontVQSws9SKwA=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0", + "joi": "6.4.1" + } + }, + "hoek": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.14.0.tgz", + "integrity": "sha1-gSEWkfUqWoNa5J7b8eickANHaqQ=", + "dev": true + }, + "inert": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/inert/-/inert-2.1.5.tgz", + "integrity": "sha1-eybZTEHGLAPsHU726LRe1WuDSFk=", + "dev": true, + "requires": { + "ammo": "1.0.0", + "boom": "2.7.2", + "hoek": "2.14.0", + "items": "1.1.0", + "joi": "6.4.1", + "lru-cache": "2.6.4" + }, + "dependencies": { + "lru-cache": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.4.tgz", + "integrity": "sha1-JnUZDM0bBwHsL2UqTQ09QA12wN0=", + "dev": true + } + } + }, + "iron": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/iron/-/iron-2.1.2.tgz", + "integrity": "sha1-WR2RiiVAdTxEbY5DfNzwz6gBEU8=", + "dev": true, + "requires": { + "boom": "2.7.2", + "cryptiles": "2.0.4", + "hoek": "2.14.0" + } + }, + "items": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/items/-/items-1.1.0.tgz", + "integrity": "sha1-rZ1VhAsimGDLPRYLMidMLUvZ4mI=", + "dev": true + }, + "joi": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/joi/-/joi-6.4.1.tgz", + "integrity": "sha1-9Q9CRTVgBo5jg9oVrC0w3Xzra24=", + "dev": true, + "requires": { + "hoek": "2.14.0", + "isemail": "1.1.1", + "moment": "2.10.3", + "topo": "1.0.2" + }, + "dependencies": { + "isemail": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.1.1.tgz", + "integrity": "sha1-4Mj23D9HCX53dzlcaJYnGqJWw7U=", + "dev": true + }, + "moment": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.10.3.tgz", + "integrity": "sha1-CruZ8wf2UhgwjGk17+KcV7Ggon8=", + "dev": true + } + } + }, + "kilt": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/kilt/-/kilt-1.1.1.tgz", + "integrity": "sha1-d7SmFjyn+lshN6iMFzNCFuwj1ds=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "mimos": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mimos/-/mimos-2.0.2.tgz", + "integrity": "sha1-wyQXF+dblZkr54esfdbbGptTmx4=", + "dev": true, + "requires": { + "hoek": "2.14.0", + "mime-db": "1.14.0" + }, + "dependencies": { + "mime-db": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.14.0.tgz", + "integrity": "sha1-1WHxC27mbbUflK5leilRp0IX7YM=", + "dev": true + } + } + }, + "peekaboo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/peekaboo/-/peekaboo-1.0.0.tgz", + "integrity": "sha1-wNspJq1lTSygH3ymUKtFkadk/EI=", + "dev": true + }, + "qs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=", + "dev": true + }, + "shot": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/shot/-/shot-1.5.3.tgz", + "integrity": "sha1-SGEHREO8VHLCNRthpGtOrsAH9Xo=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "statehood": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/statehood/-/statehood-2.1.1.tgz", + "integrity": "sha1-AfFwtmxeklqvZ5qdMiulkYb8AAk=", + "dev": true, + "requires": { + "boom": "2.7.2", + "cryptiles": "2.0.4", + "hoek": "2.14.0", + "iron": "2.1.2", + "items": "1.1.0", + "joi": "6.4.1" + } + }, + "subtext": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/subtext/-/subtext-1.1.1.tgz", + "integrity": "sha1-DJGCWuZdUXhVWT2DHjPvdaKEFWs=", + "dev": true, + "requires": { + "boom": "2.7.2", + "content": "1.0.1", + "hoek": "2.14.0", + "pez": "1.0.0", + "qs": "4.0.0", + "wreck": "6.0.0" + }, + "dependencies": { + "content": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/content/-/content-1.0.1.tgz", + "integrity": "sha1-gD60s7eJVGD9jGnGhMd1RmmvG6E=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0" + } + }, + "pez": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pez/-/pez-1.0.0.tgz", + "integrity": "sha1-hEMYpc5wku7d/6KV4YB5rHefoBg=", + "dev": true, + "requires": { + "b64": "2.0.0", + "boom": "2.7.2", + "content": "1.0.1", + "hoek": "2.14.0", + "nigel": "1.0.1" + }, + "dependencies": { + "b64": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/b64/-/b64-2.0.0.tgz", + "integrity": "sha1-tZlbJPR+v9nxMQF6bntdZHVvtvM=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "nigel": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nigel/-/nigel-1.0.1.tgz", + "integrity": "sha1-RjmJr4gSePuqHTzJOCPb0XtDYKE=", + "dev": true, + "requires": { + "hoek": "2.14.0", + "vise": "1.0.0" + }, + "dependencies": { + "vise": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vise/-/vise-1.0.0.tgz", + "integrity": "sha1-KDRb5N5aNB4V/SgW/Z6j5zA+jfM=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + } + } + } + } + } + } + }, + "topo": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-1.0.2.tgz", + "integrity": "sha1-QhV8N8HeTTeIPM3R1skChHqGDbk=", + "dev": true, + "requires": { + "hoek": "2.14.0" + } + }, + "vision": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vision/-/vision-2.0.1.tgz", + "integrity": "sha1-0BIlW6buQm0GlqNOHfMy/sVeZzw=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0", + "items": "1.1.0", + "joi": "6.4.1" + } + }, + "wreck": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/wreck/-/wreck-6.0.0.tgz", + "integrity": "sha1-T0CGaWHl14rOBPMqa38x8/PFFjg=", + "dev": true, + "requires": { + "boom": "2.7.2", + "hoek": "2.14.0" + } + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "requires": { + "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" + } + }, + "has-ansi": { + "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hash-stream-validation": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz", + "integrity": "sha1-7Mm5l7IYvluzEphii7gHhptz3NE=", + "requires": { + "through2": "2.0.3" + } + }, + "hasha": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", + "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", + "dev": true, + "requires": { + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "highlight.js": { + "version": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", + "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "home-or-tmp": { + "version": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "html-to-text": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-3.1.0.tgz", + "integrity": "sha1-fwfvIXPloEQecxXBkgE6AKUtXko=", + "requires": { + "he": "1.1.1", + "htmlparser2": "3.9.2", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "underscore.string": "3.3.4" + }, + "dependencies": { + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "requires": { + "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + } + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.4.1", + "domutils": "1.6.2", + "entities": "1.1.1", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "http-parser-js": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.8.tgz", + "integrity": "sha512-jmHp99g6/fLx0pRNJqzsQgjsclCHAY7NhIeA3/U+bsGNvgbvUCQFQY9m5AYpqpAxY/2VcikfbKpjQozSTiz0jA==", + "dev": true + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.9", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ignore": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz", + "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==", + "dev": true + }, + "imap": { + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz", + "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=", + "requires": { + "readable-stream": "1.1.14", + "utf7": "1.0.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "inherits-ex": { + "version": "https://registry.npmjs.org/inherits-ex/-/inherits-ex-1.1.8.tgz", + "integrity": "sha1-9wmppZxYqT3f4B01MOZyR7rim+M=", + "requires": { + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "inquirer": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", + "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", + "dev": true, + "requires": { + "ansi-escapes": "1.4.0", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.0.5", + "figures": "2.0.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "2.1.1", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + } + } + }, + "invariant": { + "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + } + }, + "is": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", + "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" + }, + "is-absolute": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", + "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", + "dev": true, + "requires": { + "is-relative": "0.1.3" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.10.0" + } + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-my-json-valid": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", + "integrity": "sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==", + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-relative": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", + "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=", + "dev": true + }, + "is-resolvable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.0.0.tgz", + "integrity": "sha1-jfV8YeouPFAUCNEA+wE8+NbgzGI=", + "dev": true, + "requires": { + "tryit": "1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-stream-ended": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz", + "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=" + }, + "is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "dev": true + }, + "is-supported-regexp-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", + "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + }, + "is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", + "dev": true, + "requires": { + "text-extensions": "1.6.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isnumeric": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/isnumeric/-/isnumeric-0.2.0.tgz", + "integrity": "sha1-ojR7o2DeGeM9D/1ZD933dVy/LmQ=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2", + "jasmine-core": "2.8.0" + } + }, + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k=", + "dev": true + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "jquery": { + "version": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + }, + "js-base64": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.3.2.tgz", + "integrity": "sha512-Y2/+DnfJJXT1/FCwUebUhLWb3QihxiSC42+ctHLGogmW2jPY6LCapMdFZXRvVP2z6qyKW7s6qncE/9gSqZiArw==", + "dev": true + }, + "js-tokens": { + "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", + "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jschardet": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", + "dev": true + }, + "jsesc": { + "version": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", + "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", + "dev": true + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "jwa": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", + "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "requires": { + "base64url": "2.0.0", + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.9", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "jws": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", + "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "requires": { + "base64url": "2.0.0", + "jwa": "1.1.5", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "kew": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", + "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "known-css-properties": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.3.0.tgz", + "integrity": "sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ==", + "dev": true + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "libbase64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", + "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" + }, + "libmime": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.1.0.tgz", + "integrity": "sha1-EVAS8WcgUa3IgJqPk5Vf/DZI7fk=", + "requires": { + "iconv-lite": "0.4.15", + "libbase64": "0.1.0", + "libqp": "1.1.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + } + } + }, + "libqp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", + "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "lodash": { + "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._basecreate": "3.0.3", + "lodash._isiterateecall": "3.0.9" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.noop": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.1.tgz", + "integrity": "sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=" + }, + "lodash.template": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", + "integrity": "sha1-5zoDhcg1VZF0bgILmWecaQ5o+6A=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0", + "lodash.templatesettings": "4.1.0" + } + }, + "lodash.templatesettings": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz", + "integrity": "sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=", + "dev": true, + "requires": { + "lodash._reinterpolate": "3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" + }, + "log-symbols": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.1.0.tgz", + "integrity": "sha512-zLeLrzMA1A2vRF1e/0Mo+LNINzi6jzBylHj5WqvQ/WK/5WCZt8si9SyN4p9llr/HRYvVR1AoXHRHl4WTHyQAzQ==", + "dev": true, + "requires": { + "chalk": "2.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "loglevel": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.4.1.tgz", + "integrity": "sha1-lbOD+Ro8J1b9SrCTZn5DCRYfK80=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "mailparser-node4": { + "version": "2.0.2-2", + "resolved": "https://registry.npmjs.org/mailparser-node4/-/mailparser-node4-2.0.2-2.tgz", + "integrity": "sha1-IK4hESKWWldb3a6bTADTwtgkR/U=", + "requires": { + "addressparser": "1.0.1", + "array-includes": "3.0.3", + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "he": "1.1.1", + "html-to-text": "3.1.0", + "iconv-lite": "0.4.15", + "libmime": "3.1.0", + "mailsplit-node4": "4.0.1", + "marked": "0.3.6" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + } + } + }, + "mailsplit-node4": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mailsplit-node4/-/mailsplit-node4-4.0.1.tgz", + "integrity": "sha1-XVEiiDVA/Ac/fQcWwv9ntlDP1oI=", + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "libbase64": "0.1.0", + "libmime": "3.1.0", + "libqp": "1.1.0" + } + }, + "make-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", + "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", + "requires": { + "pify": "2.3.0" + } + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "marked": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", + "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "mathjs": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-3.16.3.tgz", + "integrity": "sha512-lb7Q0+4RCFdAJk/+01nDpRuQfoPm2EXmAy9LSa8nXzAQjeTqeLELdsQsRlMBDvJ53KXC7IOTHdhBOwZd7Q6FjQ==", + "dev": true, + "requires": { + "complex.js": "2.0.4", + "decimal.js": "7.2.3", + "fraction.js": "4.0.2", + "javascript-natural-sort": "0.7.1", + "seed-random": "2.2.0", + "tiny-emitter": "2.0.0", + "typed-function": "0.10.5" + } + }, + "mathml-tag-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz", + "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=", + "dev": true + }, + "media-typer": { + "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "meteor-promise": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/meteor-promise/-/meteor-promise-0.8.6.tgz", + "integrity": "sha512-HP6tOr67z/9XU2Dr0F2SSr8WRTuE23AG9Dj578DCJPEYHs67OLKBviU8A8rwvbwMD7Lu2+Of+yAMz2Wd8r4yxg==", + "dev": true + }, + "methmeth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", + "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" + }, + "methods": { + "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mime": { + "version": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=" + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + }, + "mime-type": { + "version": "https://registry.npmjs.org/mime-type/-/mime-type-3.0.5.tgz", + "integrity": "sha1-ftKSan2oImifgSVPWYf+lQNiLpo=", + "requires": { + "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "path.js": "https://registry.npmjs.org/path.js/-/path.js-1.0.7.tgz", + "util-ex": "https://registry.npmjs.org/util-ex/-/util-ex-0.3.15.tgz" + } + }, + "mime-types": { + "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", + "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "requires": { + "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz" + }, + "dependencies": { + "mime-db": { + "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", + "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + } + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimatch": { + "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + } + }, + "minimist": { + "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + }, + "mocha": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.8", + "diff": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "glob": "7.1.1", + "growl": "1.9.2", + "he": "1.1.1", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "supports-color": "3.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "once": "1.4.0", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "mock-require": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mock-require/-/mock-require-2.0.2.tgz", + "integrity": "sha1-HqpxqtIwE3c9En3H6Ro/u0g31g0=", + "dev": true, + "requires": { + "caller-id": "0.1.0" + } + }, + "modelo": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.0.tgz", + "integrity": "sha1-O0tCACOmbKfjK9uhbnEJN+FNGws=" + }, + "modify-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.0.tgz", + "integrity": "sha1-4rbN65zhn5kxelNyLz2/XfXqqrI=", + "dev": true + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", + "dev": true + }, + "moment": { + "version": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" + }, + "moment-timezone": { + "version": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz", + "integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=", + "requires": { + "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz" + } + }, + "ms": { + "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-forge": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", + "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" + }, + "node-pre-gyp": { + "version": "0.6.36", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", + "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", + "requires": { + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "nopt": "4.0.1", + "npmlog": "4.1.2", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.4.1", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "jsbn": "0.1.1" + "abbrev": "1.1.0", + "osenv": "0.1.4" } }, - "ecdsa-sig-formatter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.9.tgz", - "integrity": "sha1-S8kmJ07Dtau1AW5+HWCSGsJisqE=", + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, "requires": { - "base64url": "2.0.0", - "safe-buffer": "5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" - } + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" } }, - "emailreplyparser": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/emailreplyparser/-/emailreplyparser-0.0.5.tgz", - "integrity": "sha1-BpYswKRCFnWbo7mOOyV3wM4w/Aw=" - }, - "end-of-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, "requires": { - "once": "1.4.0" + "remove-trailing-separator": "1.1.0" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=" + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true }, - "es-abstract": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=", - "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "is-callable": "1.1.3", - "is-regex": "1.0.4" - } + "npm-install-package": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", + "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU=", + "dev": true }, - "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, - "escape-string-regexp": { - "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - }, - "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "number-is-nan": { + "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, - "file-type": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.1.0.tgz", - "integrity": "sha1-Wn26mBOPoKvsevxD5amgsqrHKfE=" + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" }, - "foreach": { - "version": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "object-keys": { + "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, - "form-data": { - "version": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "object.assign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", + "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", + "dev": true, "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz" + "define-properties": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "object-keys": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz" } }, - "formidable": { - "version": "https://registry.npmjs.org/formidable/-/formidable-1.1.1.tgz", - "integrity": "sha1-lriIb3w8NQi5Mta9cMTTqI818ak=", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "rimraf": "2.6.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "fstream": "1.0.11", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "wrappy": "1.0.2" } }, - "function-bind": { - "version": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + "onecolor": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/onecolor/-/onecolor-2.4.2.tgz", + "integrity": "sha1-pT7D/xccNEYBbdUhDRobVEv32HQ=", + "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, "requires": { - "aproba": "1.1.2", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "wide-align": "1.1.2" + "mimic-fn": "1.1.0" } }, - "gcp-metadata": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.3.0.tgz", - "integrity": "sha512-puqMtZV/eukdfsafq0tir21+/k9hPbN9FRhgeN7NwtvEJQaviJoZOOlh1+dBeWgsRSYwAqcEVh63grU7a6bJyw==", + "optimist": { + "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "retry-request": "3.0.0" + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" }, "dependencies": { - "retry-request": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-3.0.0.tgz", - "integrity": "sha1-i60rHc8Ek4uyEeLO2GLlkbgvGRc=", - "requires": { - "request": "2.81.0", - "through2": "2.0.3" - } + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true } } }, - "gcs-resumable-upload": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.8.1.tgz", - "integrity": "sha512-Ps/yvSzdNL41oiRzSE8UgjcW8hdNQNyMqdsDSmCAn+fwWG8Sg5TR2CqSPchkMiYQQDqN7WWkheTEd0w1hfn/dw==", + "os-homedir": { + "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", "requires": { - "buffer-equal": "1.0.0", - "configstore": "3.1.1", - "google-auto-auth": "0.7.2", - "pumpify": "1.3.5", - "request": "2.81.0", - "stream-events": "1.0.2", - "through2": "2.0.3" + "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "parse-github-repo-url": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz", + "integrity": "sha1-nn2LslKmy2ukJZUGC3v23z28H1A=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "once": "1.4.0", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "error-ex": "1.3.1" } }, - "globals": { - "version": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=", + "path-exists": { + "version": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", + "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", + "dev": true + }, + "path-is-absolute": { + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, - "google-auth-library": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-0.10.0.tgz", - "integrity": "sha1-bhW6vuhf0d0U2NEoopW2g41SE24=", - "requires": { - "gtoken": "1.2.2", - "jws": "3.1.4", - "lodash.noop": "3.0.1", - "request": "2.81.0" - } + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true }, - "google-auto-auth": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.7.2.tgz", - "integrity": "sha512-ux2n2AE2g3+vcLXwL4dP/M12SFMRX5dzCzBfhAEkTeAB7dpyGdOIEj7nmUx0BHKaCcUQrRWg9kT63X/Mmtk1+A==", + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, "requires": { - "async": "2.5.0", - "gcp-metadata": "0.3.0", - "google-auth-library": "0.10.0", - "request": "2.81.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, - "google-p12-pem": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-0.1.2.tgz", - "integrity": "sha1-M8RqsCGqc0+gMys5YKmj/8svMXc=", + "path.js": { + "version": "https://registry.npmjs.org/path.js/-/path.js-1.0.7.tgz", + "integrity": "sha1-fRNrYH3hm/2YugaIdJJih+ZTSTk=", "requires": { - "node-forge": "0.7.1" + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "inherits-ex": "https://registry.npmjs.org/inherits-ex/-/inherits-ex-1.1.8.tgz", + "util-ex": "https://registry.npmjs.org/util-ex/-/util-ex-0.3.15.tgz" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true }, - "gtoken": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-1.2.2.tgz", - "integrity": "sha1-Fyd2oanZasCfwioA9b6DzubeiCA=", + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "phantomjs-prebuilt": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.13.tgz", + "integrity": "sha1-ZlVq2ell2JPKWn3J52PffoaX920=", + "dev": true, "requires": { - "google-p12-pem": "0.1.2", - "jws": "3.1.4", - "mime": "1.4.0", - "request": "2.81.0" + "es6-promise": "4.0.5", + "extract-zip": "1.5.0", + "fs-extra": "0.30.0", + "hasha": "2.2.0", + "kew": "0.7.0", + "progress": "1.1.8", + "request": "2.74.0", + "request-progress": "2.0.1", + "which": "1.2.14" }, "dependencies": { - "mime": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz", - "integrity": "sha512-n9ChLv77+QQEapYz8lV+rIZAW3HhAPW2CXnzb1GN5uMkuczshwvkW7XPsbzU0ZQN3sP47Er2KVkp2p3KyqZKSQ==" + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "concat-stream": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.0.tgz", + "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "2.0.6", + "typedarray": "0.0.6" + } + }, + "debug": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz", + "integrity": "sha1-BuHqgILCyxTjmAbiLi9vdX+Srzk=", + "dev": true + }, + "extract-zip": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.5.0.tgz", + "integrity": "sha1-ksz22B73Cp+kwXRxFMzvbYaIpsQ=", + "dev": true, + "requires": { + "concat-stream": "1.5.0", + "debug": "0.7.4", + "mkdirp": "0.5.0", + "yauzl": "2.4.1" + } + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "dev": true, + "requires": { + "async": "2.5.0", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "mime-types": "2.1.17" + } + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "rimraf": "2.6.1" + } + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "commander": "2.9.0", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + } + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "qs": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", + "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", + "dev": true + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "0.10.31", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "request": { + "version": "2.74.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", + "integrity": "sha1-dpPKdou7DqXIzgjAhKRe+gW4kqs=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "bl": "1.1.2", + "caseless": "0.11.0", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "forever-agent": "0.6.1", + "form-data": "1.0.1", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "node-uuid": "1.4.8", + "oauth-sign": "0.8.2", + "qs": "6.2.3", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.4.3" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true } } }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "photoswipe": { + "version": "https://registry.npmjs.org/photoswipe/-/photoswipe-4.1.2.tgz", + "integrity": "sha1-lcIKdc6iO3DWKZZBytguA8rn95c=" }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "pinkie": "2.0.4" } }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "pixrem": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pixrem/-/pixrem-3.0.2.tgz", + "integrity": "sha1-MNG6+0w73Ojpu0vVahOYVhkyDDQ=", + "dev": true, "requires": { - "function-bind": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz" + "browserslist": "1.7.7", + "postcss": "5.2.17", + "reduce-css-calc": "1.3.0" + }, + "dependencies": { + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000738", + "electron-to-chromium": "1.3.22" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "has-ansi": { - "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "pleeease-filters": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-3.0.1.tgz", + "integrity": "sha1-Tf4OjxBGYTUXxktyi8gGCKfr8i8=", "dev": true, "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "onecolor": "2.4.2", + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "dev": true }, - "hash-stream-validation": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz", - "integrity": "sha1-7Mm5l7IYvluzEphii7gHhptz3NE=", + "poplib": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz", + "integrity": "sha1-L0tYtVkpcjUM2X9IKrpo+OBVdLw=", "requires": { - "through2": "2.0.3" + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" } }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "postcss": { + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.12.tgz", + "integrity": "sha512-K6SLofXEK43FBSyZ6/ExQV7ji24OEw4tEY6x1CAf7+tcoMWJoO24Rf3rVFVpk+5IQL1e1Cy3sTKfg7hXuLzafg==", + "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } } }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "highlight.js": { - "version": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", - "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=" - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "home-or-tmp": { - "version": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "postcss-apply": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.3.0.tgz", + "integrity": "sha1-ovN8W9+ogeTBX08kXsDNlt0ucNU=", "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "balanced-match": "0.4.2", + "postcss": "5.2.17" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "html-to-text": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-3.1.0.tgz", - "integrity": "sha1-fwfvIXPloEQecxXBkgE6AKUtXko=", + "postcss-attribute-case-insensitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-1.0.1.tgz", + "integrity": "sha1-zrc3d+EGFn6yM/GTjJvZ8uaXMI0=", + "dev": true, "requires": { - "he": "1.1.1", - "htmlparser2": "3.9.2", - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "underscore.string": "3.3.4" + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3" }, "dependencies": { - "underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" } } } }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.1", - "domutils": "1.6.2", - "entities": "1.1.1", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "2.3.3" + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" }, "dependencies": { - "readable-stream": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, "requires": { - "safe-buffer": "5.1.1" + "has-flag": "1.0.0" } } } }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "postcss-color-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-2.0.1.tgz", + "integrity": "sha1-mtIm9VDop8f4uKd4YFRbbdf1UkE=", + "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "css-color-function": "1.3.0", + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" - }, - "imap": { - "version": "0.8.19", - "resolved": "https://registry.npmjs.org/imap/-/imap-0.8.19.tgz", - "integrity": "sha1-NniHOTSrCc6mukh0HyhNoq9Z2NU=", + "postcss-color-gray": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-3.0.1.tgz", + "integrity": "sha1-dEMu3mbdg7HRNjVlxos3bhj/Z3A=", + "dev": true, "requires": { - "readable-stream": "1.1.14", - "utf7": "1.0.2" + "color": "0.11.4", + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-function-call": "1.0.2" }, "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "0.0.1", - "string_decoder": "0.10.31" + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "postcss-color-hex-alpha": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-2.0.0.tgz", + "integrity": "sha1-RP1uyt5mAoZIyIHLZQTNy/3GzQk=", + "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "color": "0.10.1", + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0" + }, + "dependencies": { + "color": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/color/-/color-0.10.1.tgz", + "integrity": "sha1-wEGI34KiCd3rzOzazT7DIPGTc58=", + "dev": true, + "requires": { + "color-convert": "0.5.3", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "inherits-ex": { - "version": "https://registry.npmjs.org/inherits-ex/-/inherits-ex-1.1.8.tgz", - "integrity": "sha1-9wmppZxYqT3f4B01MOZyR7rim+M=", + "postcss-color-hsl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-1.0.5.tgz", + "integrity": "sha1-9Tuxw0gxDOMHrYnjGBqGRzi15oc=", + "dev": true, "requires": { - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "units-css": "0.4.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" - }, - "invariant": { - "version": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "postcss-color-hwb": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-2.0.1.tgz", + "integrity": "sha1-1jr6+bcMtZX5AKKcn+V78qMvq+w=", "dev": true, "requires": { - "loose-envify": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz" + "color": "0.11.4", + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=" - }, - "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-finite": { - "version": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "postcss-color-rebeccapurple": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-2.0.1.tgz", + "integrity": "sha1-dMZETny7fYVhO19yht96SRYIRRw=", "dev": true, "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "color": "0.11.4", + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "postcss-color-rgb": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-1.1.4.tgz", + "integrity": "sha1-8pJD4i6OjBNDRHQJI3LUzmBb6Lw=", + "dev": true, "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "postcss-color-rgba-fallback": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-2.2.0.tgz", + "integrity": "sha1-bSlJG+WZCpMXPUfnx29YELCUAro=", + "dev": true, "requires": { - "has": "1.0.1" + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "rgb-hex": "1.0.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "is-stream-ended": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.3.tgz", - "integrity": "sha1-oEc7Jnx1ZjVIa+7cfjNE5UnRUqw=" - }, - "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jmespath": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" - }, - "jquery": { - "version": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", - "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" - }, - "js-tokens": { - "version": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "jsesc": { - "version": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "postcss-cssnext": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-2.11.0.tgz", + "integrity": "sha1-MeaPAB5AlgTacDtm3hS4uMjJ8rE=", + "dev": true, "requires": { - "jsonify": "0.0.0" + "autoprefixer": "6.7.7", + "caniuse-api": "1.6.1", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "pixrem": "3.0.2", + "pleeease-filters": "3.0.1", + "postcss": "5.2.17", + "postcss-apply": "0.3.0", + "postcss-attribute-case-insensitive": "1.0.1", + "postcss-calc": "5.3.1", + "postcss-color-function": "2.0.1", + "postcss-color-gray": "3.0.1", + "postcss-color-hex-alpha": "2.0.0", + "postcss-color-hsl": "1.0.5", + "postcss-color-hwb": "2.0.1", + "postcss-color-rebeccapurple": "2.0.1", + "postcss-color-rgb": "1.1.4", + "postcss-color-rgba-fallback": "2.2.0", + "postcss-custom-media": "5.0.1", + "postcss-custom-properties": "5.0.2", + "postcss-custom-selectors": "3.0.0", + "postcss-font-family-system-ui": "1.0.2", + "postcss-font-variant": "2.0.1", + "postcss-image-set-polyfill": "0.3.5", + "postcss-initial": "1.5.3", + "postcss-media-minmax": "2.1.2", + "postcss-nesting": "2.3.1", + "postcss-pseudo-class-any-link": "1.0.0", + "postcss-pseudoelements": "3.0.0", + "postcss-replace-overflow-wrap": "1.0.0", + "postcss-selector-matches": "2.0.5", + "postcss-selector-not": "2.0.0" + }, + "dependencies": { + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000738", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000738", + "electron-to-chromium": "1.3.22" + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "json-stringify-safe": { + "postcss-custom-media": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json5": { - "version": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", - "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-5.0.1.tgz", + "integrity": "sha1-E40loYS/LrVN4S1VpsAcMKnYvYE=", + "dev": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "postcss": "5.2.17" }, "dependencies": { - "assert-plus": { + "has-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "jwa": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.5.tgz", - "integrity": "sha1-oFUs4CIHQs1S4VN3SjKQXDDnVuU=", + "postcss-custom-properties": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-5.0.2.tgz", + "integrity": "sha1-lxnXjy2pz59TgQrrwj1GVhMKzrE=", + "dev": true, "requires": { - "base64url": "2.0.0", - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.9", - "safe-buffer": "5.1.1" + "balanced-match": "0.4.2", + "postcss": "5.2.17" }, "dependencies": { - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "jws": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.4.tgz", - "integrity": "sha1-+ei5M46KhHJ31kRLFGT2GIDgUKI=", + "postcss-custom-selectors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-3.0.0.tgz", + "integrity": "sha1-j4Ekn17Qeo0JF89qOf5bBWt/lqw=", + "dev": true, "requires": { - "base64url": "2.0.0", - "jwa": "1.1.5", - "safe-buffer": "5.1.1" + "balanced-match": "0.2.1", + "postcss": "5.2.17", + "postcss-selector-matches": "2.0.5" }, "dependencies": { - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "balanced-match": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", + "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "libbase64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-0.1.0.tgz", - "integrity": "sha1-YjUag5VjrF/1vSbxL2Dpgwu3UeY=" - }, - "libmime": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/libmime/-/libmime-3.1.0.tgz", - "integrity": "sha1-EVAS8WcgUa3IgJqPk5Vf/DZI7fk=", + "postcss-font-family-system-ui": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-1.0.2.tgz", + "integrity": "sha1-PhpeP7fjHl6ecUOcyw6AFFVpJ8c=", + "dev": true, + "requires": { + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-font-variant": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-2.0.1.tgz", + "integrity": "sha1-fKKRA/WfoCyjrOLKIrL3VoU9Tvg=", + "dev": true, "requires": { - "iconv-lite": "0.4.15", - "libbase64": "0.1.0", - "libqp": "1.1.0" + "postcss": "5.2.17" }, "dependencies": { - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "libqp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libqp/-/libqp-1.1.0.tgz", - "integrity": "sha1-9ebgatdLeU+1tbZpiL9yjvHe2+g=" - }, - "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - }, - "lodash.noop": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.noop/-/lodash.noop-3.0.1.tgz", - "integrity": "sha1-OBiPTWUKOkdCWEObluxFsyYXEzw=" - }, - "log-driver": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", - "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=" - }, - "loose-envify": { - "version": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "postcss-image-set-polyfill": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", + "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=", "dev": true, "requires": { - "js-tokens": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz" + "postcss": "6.0.12", + "postcss-media-query-parser": "0.2.3" } }, - "mailparser-node4": { - "version": "2.0.2-2", - "resolved": "https://registry.npmjs.org/mailparser-node4/-/mailparser-node4-2.0.2-2.tgz", - "integrity": "sha1-IK4hESKWWldb3a6bTADTwtgkR/U=", + "postcss-initial": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-1.5.3.tgz", + "integrity": "sha1-IMPpHJaCLdsb7UlQjbltVrrDd9A=", + "dev": true, "requires": { - "addressparser": "1.0.1", - "array-includes": "3.0.3", - "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "he": "1.1.1", - "html-to-text": "3.1.0", - "iconv-lite": "0.4.15", - "libmime": "3.1.0", - "mailsplit-node4": "4.0.1", - "marked": "0.3.6" + "lodash.template": "4.4.0", + "postcss": "5.2.17" }, "dependencies": { - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=" + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "mailsplit-node4": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/mailsplit-node4/-/mailsplit-node4-4.0.1.tgz", - "integrity": "sha1-XVEiiDVA/Ac/fQcWwv9ntlDP1oI=", + "postcss-less": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.0.tgz", + "integrity": "sha1-vcx2vmTEMk2HP7xc2foueZ5DBfo=", + "dev": true, "requires": { - "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "libbase64": "0.1.0", - "libmime": "3.1.0", - "libqp": "1.1.0" + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "make-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz", - "integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=", + "postcss-media-minmax": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-2.1.2.tgz", + "integrity": "sha1-RExc+JJqteT9iiUJ6Sl+dRZJzfg=", + "dev": true, "requires": { - "pify": "2.3.0" + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=" - }, - "media-typer": { - "version": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "methmeth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", - "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" - }, - "methods": { - "version": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, - "mime": { - "version": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", - "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", "dev": true }, - "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" - }, - "mime-type": { - "version": "https://registry.npmjs.org/mime-type/-/mime-type-3.0.5.tgz", - "integrity": "sha1-ftKSan2oImifgSVPWYf+lQNiLpo=", + "postcss-nesting": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-2.3.1.tgz", + "integrity": "sha1-lKa2pO9wf77CCof+5clXdZtOAc8=", + "dev": true, "requires": { - "media-typer": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "path.js": "https://registry.npmjs.org/path.js/-/path.js-1.0.7.tgz", - "util-ex": "https://registry.npmjs.org/util-ex/-/util-ex-0.3.15.tgz" + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "mime-types": { - "version": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", + "postcss-pseudo-class-any-link": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-1.0.0.tgz", + "integrity": "sha1-kDI5GWQB0zX+c6x1YYb6YuaTryY=", + "dev": true, "requires": { - "mime-db": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz" + "postcss": "5.2.17", + "postcss-selector-parser": "1.3.3" }, "dependencies": { - "mime-db": { - "version": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "postcss-selector-parser": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz", + "integrity": "sha1-0u4Z33pk+O8hwacchvfUg1yIwoE=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, - "minimatch": { - "version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "postcss-pseudoelements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudoelements/-/postcss-pseudoelements-3.0.0.tgz", + "integrity": "sha1-bGghd8eQC6BTtt8X+MWQKEx7i7w=", + "dev": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz" + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "minimist": { - "version": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "postcss-replace-overflow-wrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-1.0.0.tgz", + "integrity": "sha1-8KA7Meq5Y2ppNr/SEOKu8bQ0pkM=", + "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - }, - "modelo": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.0.tgz", - "integrity": "sha1-O0tCACOmbKfjK9uhbnEJN+FNGws=" - }, - "moment": { - "version": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" - }, - "moment-timezone": { - "version": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.13.tgz", - "integrity": "sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=", + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-reporter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-5.0.0.tgz", + "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", + "dev": true, "requires": { - "moment": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz" + "chalk": "2.1.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "log-symbols": "2.1.0", + "postcss": "6.0.12" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } } }, - "ms": { - "version": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" - }, - "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=" - }, - "node-pre-gyp": { - "version": "0.6.36", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz", - "integrity": "sha1-22BBEst04NR3VU6bUFsXq936t4Y=", + "postcss-sass": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.1.0.tgz", + "integrity": "sha1-DSplW10kHsj0Gbs9o43lyhF0bds=", + "dev": true, "requires": { - "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "nopt": "4.0.1", - "npmlog": "4.1.2", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.4.1", - "tar": "2.2.1", - "tar-pack": "3.4.0" + "gonzales-pe": "4.2.2", + "mathjs": "3.16.3", + "postcss": "5.2.17" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "nopt": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "postcss-scss": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.2.tgz", + "integrity": "sha1-/0XPM1S4ee6JpOtoaA9GrJuxT5Q=", + "dev": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "postcss": "6.0.12" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "postcss-selector-matches": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-2.0.5.tgz", + "integrity": "sha1-+g9Dvle2jneqTNEYBwI0kqExAn8=", + "dev": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "balanced-match": "0.4.2", + "postcss": "5.2.17" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "number-is-nan": { - "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-keys": { - "version": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "postcss-selector-not": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-2.0.0.tgz", + "integrity": "sha1-xzrSGj91I0vuf+4mnhVP1qhpeY0=", + "dev": true, "requires": { - "wrappy": "1.0.2" + "balanced-match": "0.2.1", + "postcss": "5.2.17" + }, + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz", + "integrity": "sha1-e8ZYtL7WHu5CStdPdfXD4sTfPMc=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "js-base64": "2.3.2", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, - "optimist": { - "version": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, "requires": { - "minimist": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "wordwrap": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" } }, - "os-homedir": { - "version": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "postcss-smart-import": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/postcss-smart-import/-/postcss-smart-import-0.7.5.tgz", + "integrity": "sha512-Bs9wAFxH5irGpenBg9a65jTcydZLh7VBTX6NYwMXvVXO6y9CQ83kRmfpQDs5lHhl6IODeIeQfJep5HBMd9UVCQ==", + "dev": true, "requires": { - "os-homedir": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "babel-runtime": "6.26.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "object-assign": "4.1.1", + "postcss": "6.0.12", + "postcss-sass": "0.1.0", + "postcss-scss": "1.0.2", + "postcss-value-parser": "3.3.0", + "promise-each": "2.2.0", + "read-cache": "1.0.0", + "resolve": "1.4.0", + "sugarss": "1.0.0" } }, - "path-exists": { - "version": "https://registry.npmjs.org/path-exists/-/path-exists-1.0.0.tgz", - "integrity": "sha1-1aiZjrce83p0w06w2eum6HjuoIE=", - "dev": true - }, - "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path.js": { - "version": "https://registry.npmjs.org/path.js/-/path.js-1.0.7.tgz", - "integrity": "sha1-fRNrYH3hm/2YugaIdJJih+ZTSTk=", + "postcss-sorting": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-3.0.2.tgz", + "integrity": "sha1-c+aRO3FUJiAdIuihdpsFAio3qvw=", + "dev": true, "requires": { - "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "inherits-ex": "https://registry.npmjs.org/inherits-ex/-/inherits-ex-1.1.8.tgz", - "util-ex": "https://registry.npmjs.org/util-ex/-/util-ex-0.3.15.tgz" + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "postcss": "6.0.12" } }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - }, - "photoswipe": { - "version": "https://registry.npmjs.org/photoswipe/-/photoswipe-4.1.2.tgz", - "integrity": "sha1-lcIKdc6iO3DWKZZBytguA8rn95c=" + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true }, - "poplib": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/poplib/-/poplib-0.1.7.tgz", - "integrity": "sha1-L0tYtVkpcjUM2X9IKrpo+OBVdLw=", - "requires": { - "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz" - } + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true }, "private": { "version": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", @@ -2448,6 +9076,12 @@ "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" }, + "progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", + "dev": true + }, "prom-client": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-10.1.0.tgz", @@ -2456,6 +9090,40 @@ "tdigest": "0.1.1" } }, + "promise-each": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", + "integrity": "sha1-M1MXTv8mlEgQN+BOAfd6oPttG2A=", + "dev": true, + "requires": { + "any-promise": "0.1.0" + } + }, + "proxyquire": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-1.8.0.tgz", + "integrity": "sha1-AtUUpb7ZhvBMuyCTrxZ0FTX3ntw=", + "dev": true, + "requires": { + "fill-keys": "1.0.2", + "module-not-found-error": "1.0.1", + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + } + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, "pump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", @@ -2480,6 +9148,12 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "dev": true + }, "qs": { "version": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" @@ -2489,6 +9163,47 @@ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, "rc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", @@ -2507,6 +9222,36 @@ } } }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, "readable-stream": { "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", @@ -2521,11 +9266,107 @@ "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, "regenerate": { "version": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", "dev": true }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + }, "regenerator-transform": { "version": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", @@ -2536,6 +9377,15 @@ "private": "https://registry.npmjs.org/private/-/private-0.1.7.tgz" } }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, "regexpu-core": { "version": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", @@ -2566,6 +9416,24 @@ } } }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, "repeating": { "version": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", @@ -2618,6 +9486,80 @@ } } }, + "request-progress": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", + "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", + "dev": true, + "requires": { + "throttleit": "1.0.0" + } + }, + "requestretry": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.5.0.tgz", + "integrity": "sha1-7RV7ulNSbt6z7DKo5wSkmYvs5ic=", + "dev": true, + "requires": { + "fg-lodash": "0.0.2", + "request": "2.81.0" + } + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "0.1.0", + "resolve-from": "1.0.1" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } + } + }, + "resolve": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, "retry-request": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-2.0.5.tgz", @@ -2627,6 +9569,34 @@ "through2": "2.0.3" } }, + "rgb": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/rgb/-/rgb-0.1.0.tgz", + "integrity": "sha1-vieykej+/+rBvZlylyG/pA/AN7U=", + "dev": true + }, + "rgb-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgb-hex/-/rgb-hex-1.0.0.tgz", + "integrity": "sha1-v6+M2c2RZLWibXHrTxWgllMks8E=", + "dev": true + }, + "rgb2hex": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/rgb2hex/-/rgb2hex-0.1.0.tgz", + "integrity": "sha1-zNVfhgrgxcTqN1BLlY5ELY0SMls=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", @@ -2635,26 +9605,227 @@ "glob": "7.1.2" } }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, "safe-buffer": { "version": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "dev": true }, + "saucelabs": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.4.0.tgz", + "integrity": "sha1-uTSpr52ih0s/QKrh/N5QpEZvXzg=", + "dev": true, + "requires": { + "https-proxy-agent": "1.0.0" + } + }, "sax": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, + "seed-random": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz", + "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=", + "dev": true + }, + "selenium-standalone": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-5.11.2.tgz", + "integrity": "sha1-ckzKpy+ybzcR4OIJieR4xBM9+EQ=", + "dev": true, + "requires": { + "async": "1.2.1", + "commander": "2.6.0", + "lodash": "3.9.3", + "minimist": "1.1.0", + "mkdirp": "0.5.0", + "progress": "1.1.8", + "request": "2.79.0", + "tar-stream": "1.5.2", + "urijs": "1.16.1", + "which": "1.1.1", + "yauzl": "2.8.0" + }, + "dependencies": { + "async": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", + "integrity": "sha1-pIFqF81f9RbfosdpikUzabl5DeA=", + "dev": true + }, + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "commander": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "commander": "2.11.0", + "is-my-json-valid": "2.16.1", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + } + } + }, + "lodash": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz", + "integrity": "sha1-AVnoaDL+/8bWHYUrEqlTuZSWvTI=", + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "minimist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.0.tgz", + "integrity": "sha1-zfIl6ImPhAolje1E/JF3Z3Cv3JM=", + "dev": true + }, + "mkdirp": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "forever-agent": "0.6.1", + "form-data": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.4.3", + "uuid": "3.1.0" + } + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "which": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.1.1.tgz", + "integrity": "sha1-nOUSRZlGFm4SwIPwjsBzOA/Iy7s=", + "dev": true, + "requires": { + "is-absolute": "0.1.7" + } + }, + "yauzl": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz", + "integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=", + "dev": true, + "requires": { + "buffer-crc32": "0.2.13", + "fd-slicer": "1.0.1" + } + } + } + }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=" }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + } + }, "shebang-regex": { "version": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", @@ -2665,11 +9836,54 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, + "simple-git": { + "version": "1.77.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.77.0.tgz", + "integrity": "sha1-UmU3RwuUbl9vk9ED71S0aUlgCTk=", + "dev": true, + "requires": { + "debug": "2.6.9" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "slash": { "version": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + } + } + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -2683,12 +9897,66 @@ "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, - "source-map-support": { - "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "source-map-resolve": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", + "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", + "dev": true, + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } + }, + "source-map-support": { + "version": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true, + "requires": { + "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + } + }, + "source-map-url": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.3.0.tgz", + "integrity": "sha1-fsrxO1e80J2opAxdJp2zN5nUqvk=", + "dev": true + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "specificity": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.3.2.tgz", + "integrity": "sha512-Nc/QN/A425Qog7j9aHmwOrlwX2e7pNI47ciwxwy4jOlvbbMHkNNJchit+FX+UjF3IAdiaaV5BKeWuDUnws6G1A==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "requires": { - "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz" + "through": "2.3.8" } }, "split-array-stream": { @@ -2700,6 +9968,15 @@ "is-stream-ended": "0.1.3" } }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "2.0.3" + } + }, "sprintf-js": { "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" @@ -2726,6 +10003,12 @@ } } }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, "stream-events": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.2.tgz", @@ -2739,14 +10022,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", - "dev": true, - "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz" - } - }, "string-format-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/string-format-obj/-/string-format-obj-1.1.0.tgz", @@ -2762,6 +10037,14 @@ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" } }, + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", + "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "dev": true, + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -2774,6 +10057,32 @@ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" } }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + }, + "dependencies": { + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + } + } + }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2784,6 +10093,166 @@ "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "dev": true + }, + "stylelint": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-8.1.1.tgz", + "integrity": "sha512-RtjUtqG2h3dP4CuMU1M++GRJGvKXWozmv5yhLoOLy7NWP2jJZOwLZSVwtcjXQsBJBfGuC33mooBOwNaCIhi2tQ==", + "dev": true, + "requires": { + "autoprefixer": "7.1.4", + "balanced-match": "1.0.0", + "chalk": "2.1.0", + "cosmiconfig": "2.2.2", + "debug": "3.1.0", + "execall": "1.0.0", + "file-entry-cache": "2.0.0", + "get-stdin": "5.0.1", + "globby": "6.1.0", + "globjoin": "0.1.4", + "html-tags": "2.0.0", + "ignore": "3.3.5", + "imurmurhash": "0.1.4", + "known-css-properties": "0.3.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "log-symbols": "2.1.0", + "mathml-tag-names": "2.0.1", + "meow": "3.7.0", + "micromatch": "2.3.11", + "normalize-selector": "0.2.0", + "pify": "3.0.0", + "postcss": "6.0.12", + "postcss-less": "1.1.0", + "postcss-media-query-parser": "0.2.3", + "postcss-reporter": "5.0.0", + "postcss-resolve-nested-selector": "0.1.1", + "postcss-scss": "1.0.2", + "postcss-selector-parser": "2.2.3", + "postcss-value-parser": "3.3.0", + "resolve-from": "3.0.0", + "specificity": "0.3.2", + "string-width": "2.1.1", + "style-search": "0.1.0", + "sugarss": "1.0.0", + "svg-tags": "1.0.0", + "table": "4.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "stylelint-order": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-0.6.0.tgz", + "integrity": "sha1-ciIr4MZNh4Ky/CN9DZrJdAOflos=", + "dev": true, + "requires": { + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "postcss": "6.0.12", + "postcss-sorting": "3.0.2", + "stylelint": "8.1.1" + } + }, + "sugarss": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-1.0.0.tgz", + "integrity": "sha1-ZeUbOVhDL7cNVFGmi7M+MtDPHvc=", + "dev": true, + "requires": { + "postcss": "6.0.12" + } + }, "superagent": { "version": "https://registry.npmjs.org/superagent/-/superagent-3.5.2.tgz", "integrity": "sha1-M2GjlxVnUEw1EGOr6q4PqiPb8/g=", @@ -2815,6 +10284,100 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", + "dev": true, + "requires": { + "ajv": "5.2.3", + "ajv-keywords": "2.1.0", + "chalk": "2.1.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "slice-ansi": "1.0.0", + "string-width": "2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz", + "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "supports-color": "4.4.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, "tar": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", @@ -2882,6 +10445,50 @@ } } }, + "tar-stream": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz", + "integrity": "sha1-+8bG6DwaGdTLSMfZYXH8JI7/x78=", + "dev": true, + "requires": { + "bl": "1.1.2", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.3", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, "tdigest": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz", @@ -2890,6 +10497,48 @@ "bintrees": "1.0.1" } }, + "tempfile": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz", + "integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=", + "dev": true, + "requires": { + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "uuid": "2.0.3" + }, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "text-extensions": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.6.0.tgz", + "integrity": "sha512-U2M04F2rbuYYCNioiTD14cImLTae4ys1rC57tllzKg3dt5DPR2JXs5yFdC017yOBrW6wM6s5gtAlFJ7yye04rA==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", @@ -2928,6 +10577,21 @@ } } }, + "tiny-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.0.tgz", + "integrity": "sha1-utMnrbGAS0KiMa+nQVMr2ITNCa0=", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + } + }, "to-fast-properties": { "version": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", @@ -2945,11 +10609,29 @@ "punycode": "1.4.1" } }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-off-newlines": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz", + "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", + "dev": true + }, "trim-right": { "version": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", "dev": true }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -2971,11 +10653,60 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "type-detect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", + "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", + "dev": true + }, + "typed-function": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-0.10.5.tgz", + "integrity": "sha1-Lg8Yq9BlIZ+raUpEamXG0ZgYMsA=", + "dev": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, "uid-number": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", @@ -2985,6 +10716,30 @@ "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, + "underscore.string": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "dev": true, + "requires": { + "sprintf-js": "1.1.1", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", + "dev": true + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", @@ -2993,6 +10748,28 @@ "crypto-random-string": "1.0.0" } }, + "units-css": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/units-css/-/units-css-0.4.0.tgz", + "integrity": "sha1-1iKGU6UZg9fBb/KPi53Dsf/tOgc=", + "dev": true, + "requires": { + "isnumeric": "0.2.0", + "viewport-dimensions": "0.2.0" + } + }, + "urijs": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.16.1.tgz", + "integrity": "sha1-hZrTGJD1+VKHJ76J8ZMslPtHMeI=", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", @@ -3039,7 +10816,23 @@ "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "validator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-7.0.0.tgz", + "integrity": "sha1-x03rgGNRL6w1VHk45vCxUEooL9I=", + "dev": true }, "verror": { "version": "1.10.0", @@ -3058,14 +10851,184 @@ } } }, + "viewport-dimensions": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/viewport-dimensions/-/viewport-dimensions-0.2.0.tgz", + "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", + "dev": true + }, + "walkdir": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", + "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", + "dev": true + }, + "wdio-dot-reporter": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/wdio-dot-reporter/-/wdio-dot-reporter-0.0.9.tgz", + "integrity": "sha1-kpsq2v1J1rBTT9oGjocxm0fjj+U=", + "dev": true + }, + "wdio-sync": { + "version": "0.6.14", + "resolved": "https://registry.npmjs.org/wdio-sync/-/wdio-sync-0.6.14.tgz", + "integrity": "sha1-odzVkHuh0EFUquYXbGItkQw8qbM=", + "dev": true, + "requires": { + "babel-runtime": "6.23.0", + "fibers": "1.0.15", + "object.assign": "4.0.4" + }, + "dependencies": { + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + } + } + }, + "webdriverio": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-4.8.0.tgz", + "integrity": "sha1-1Skpt0kID4mWf24WFAUcvIFy0TI=", + "dev": true, + "requires": { + "archiver": "1.3.0", + "babel-runtime": "6.23.0", + "css-parse": "2.0.0", + "css-value": "0.0.1", + "deepmerge": "1.3.2", + "ejs": "2.5.7", + "gaze": "1.1.2", + "glob": "7.1.2", + "inquirer": "3.0.6", + "json-stringify-safe": "5.0.1", + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "npm-install-package": "2.1.0", + "optimist": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "q": "1.5.0", + "request": "2.81.0", + "rgb2hex": "0.1.0", + "safe-buffer": "5.0.1", + "supports-color": "3.2.3", + "url": "0.11.0", + "validator": "7.0.0", + "wdio-dot-reporter": "0.0.9", + "wgxpath": "1.0.0" + }, + "dependencies": { + "babel-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", + "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.10.5" + } + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "safe-buffer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", + "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + } + } + }, + "websocket-driver": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", + "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", + "dev": true, + "requires": { + "http-parser-js": "0.4.8", + "websocket-extensions": "0.1.2" + } + }, + "websocket-extensions": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz", + "integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=", + "dev": true + }, + "wgxpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wgxpath/-/wgxpath-1.0.0.tgz", + "integrity": "sha1-7vikudVYzEla06mit1FZfs2a9pA=", + "dev": true + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", "requires": { "string-width": "1.0.2" } }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, "wolfy87-eventemitter": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.2.tgz", @@ -3080,6 +11043,15 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + } + }, "write-file-atomic": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", @@ -3112,9 +11084,326 @@ "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" } }, + "xolvio-ddp": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/xolvio-ddp/-/xolvio-ddp-0.12.3.tgz", + "integrity": "sha1-NqarlhKyQLWg0cCoNJCK8XwLjwI=", + "dev": true, + "requires": { + "bluebird": "2.11.0", + "ddp-ejson": "0.8.1-3", + "ddp-underscore-patched": "0.8.1-2", + "faye-websocket": "0.9.4", + "request": "2.53.0" + }, + "dependencies": { + "asn1": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=", + "dev": true + }, + "assert-plus": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=", + "dev": true + }, + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + }, + "aws-sign2": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=", + "dev": true + }, + "bl": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", + "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", + "dev": true, + "requires": { + "readable-stream": "1.0.34" + } + }, + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", + "dev": true + }, + "caseless": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz", + "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g=", + "dev": true + }, + "combined-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", + "dev": true, + "requires": { + "delayed-stream": "0.0.5" + } + }, + "delayed-stream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", + "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=", + "dev": true + }, + "forever-agent": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", + "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=", + "dev": true + }, + "form-data": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", + "dev": true, + "requires": { + "async": "0.9.2", + "combined-stream": "0.0.7", + "mime-types": "2.0.14" + } + }, + "hawk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz", + "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "http-signature": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", + "dev": true, + "requires": { + "asn1": "0.1.11", + "assert-plus": "0.1.5", + "ctype": "0.5.3" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "mime-db": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", + "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=", + "dev": true + }, + "mime-types": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", + "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", + "dev": true, + "requires": { + "mime-db": "1.12.0" + } + }, + "node-uuid": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", + "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=", + "dev": true + }, + "oauth-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz", + "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM=", + "dev": true + }, + "qs": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", + "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "request": { + "version": "2.53.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.53.0.tgz", + "integrity": "sha1-GAo66St7Y5gC5PlUXdj83rcddgw=", + "dev": true, + "requires": { + "aws-sign2": "0.5.0", + "bl": "0.9.5", + "caseless": "0.9.0", + "combined-stream": "0.0.7", + "forever-agent": "0.5.2", + "form-data": "0.2.0", + "hawk": "2.3.1", + "http-signature": "0.10.1", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.0.14", + "node-uuid": "1.4.8", + "oauth-sign": "0.6.0", + "qs": "2.3.3", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.4.3" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + } + } + }, + "xolvio-fiber-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/xolvio-fiber-utils/-/xolvio-fiber-utils-2.0.3.tgz", + "integrity": "sha1-vsjXDHQGGjFjFbun0w0lyz6C3FA=", + "dev": true, + "requires": { + "fibers": "1.0.15", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" + } + }, + "xolvio-jasmine-expect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xolvio-jasmine-expect/-/xolvio-jasmine-expect-1.1.0.tgz", + "integrity": "sha1-vCud1ghCMR8EV59agtzqaisxnH0=", + "dev": true, + "requires": { + "jasmine-core": "2.8.0" + } + }, + "xolvio-sync-webdriverio": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/xolvio-sync-webdriverio/-/xolvio-sync-webdriverio-9.0.1.tgz", + "integrity": "sha1-WRri2MiqynQiZJWfzM+QtPndUWA=", + "dev": true, + "requires": { + "fibers": "1.0.15", + "meteor-promise": "0.8.6", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "wdio-sync": "0.6.14", + "webdriverio": "4.8.0", + "xolvio-fiber-utils": "2.0.3" + } + }, "xtend": { "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "1.0.1" + } + }, + "zip-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", + "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", + "dev": true, + "requires": { + "archiver-utils": "1.3.0", + "compress-commons": "1.2.0", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "readable-stream": "2.3.3" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } } } } diff --git a/package.json b/package.json index ea3eab6bbf58..ac98474ff0d2 100644 --- a/package.json +++ b/package.json @@ -90,21 +90,21 @@ "babel-plugin-array-includes": "^2.0.3", "chimp": "^0.50.0", "conventional-changelog-cli": "^1.3.3", - "eslint": "^4.7.2", + "eslint": "^4.8.0", "mock-require": "^2.0.2", "postcss-cssnext": "^2.11.0", "postcss-smart-import": "^0.7.5", "proxyquire": "^1.8.0", "simple-git": "^1.77.0", "stylelint": "^8.1.1", - "stylelint-order": "^0.6.0", + "stylelint-order": "^0.7.0", "supertest": "^3.0.0", "underscore": "^1.8.3", "underscore.string": "^3.3.4" }, "dependencies": { - "@google-cloud/storage": "^1.3.0", - "aws-sdk": "^2.122.0", + "@google-cloud/storage": "^1.3.1", + "aws-sdk": "^2.125.0", "babel-runtime": "^6.26.0", "bcrypt": "^1.0.3", "codemirror": "^5.30.0", @@ -120,7 +120,7 @@ "moment-timezone": "^0.5.13", "photoswipe": "^4.1.2", "poplib": "^0.1.7", - "prom-client": "^10.1.0", + "prom-client": "^10.1.1", "semver": "^5.4.1", "toastr": "^2.1.2", "wolfy87-eventemitter": "^5.2.2" diff --git a/packages/rocketchat-2fa/client/accountSecurity.html b/packages/rocketchat-2fa/client/accountSecurity.html index ad8d6a1f231a..fedc074e5808 100644 --- a/packages/rocketchat-2fa/client/accountSecurity.html +++ b/packages/rocketchat-2fa/client/accountSecurity.html @@ -1,13 +1,8 @@ diff --git a/packages/rocketchat-authorization/client/startup.js b/packages/rocketchat-authorization/client/startup.js index c4ef2b2deaf5..fc62cafc60db 100644 --- a/packages/rocketchat-authorization/client/startup.js +++ b/packages/rocketchat-authorization/client/startup.js @@ -3,6 +3,7 @@ Meteor.subscribe('roles'); RocketChat.AdminBox.addOption({ href: 'admin-permissions', i18nLabel: 'Permissions', + icon: 'lock', permissionGranted() { return RocketChat.authz.hasAllPermission('access-permissions'); } diff --git a/packages/rocketchat-custom-sounds/client/admin/adminSounds.html b/packages/rocketchat-custom-sounds/client/admin/adminSounds.html index 018aab665eaa..f956516fd716 100644 --- a/packages/rocketchat-custom-sounds/client/admin/adminSounds.html +++ b/packages/rocketchat-custom-sounds/client/admin/adminSounds.html @@ -1,12 +1,7 @@