From 735775662582022407df51e011150e9c51d3cb44 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Thu, 25 Jan 2018 15:40:22 +0000 Subject: [PATCH 01/45] Fix MAILER_STMP_SECURE This should resolve https://github.com/tellform/tellform/issues/281, matching the description in the Configuration section of `README.md`. This also corrects the case of `TRUE` in an example. --- README.md | 2 +- config/env/all.js | 2 +- config/env/development.js | 2 +- config/env/secure.js | 2 +- config/env/test.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4f5a35ce..afa7cd57 100755 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ MAILER_SERVICE_PROVIDER=SendGrid # Note: MAILER_SMTP_HOST will override MAILER_SERVICE_PROVIDER MAILER_SMTP_HOST=smtp.domain.com MAILER_SMTP_PORT=465 -MAILER_SMTP_SECURE=true +MAILER_SMTP_SECURE=TRUE ``` diff --git a/config/env/all.js b/config/env/all.js index 7130af77..35fe1db4 100755 --- a/config/env/all.js +++ b/config/env/all.js @@ -40,7 +40,7 @@ module.exports = { options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set host: process.env.MAILER_SMTP_HOST || '', port: process.env.MAILER_SMTP_PORT || 465, - secure: process.env.MAILER_SMTP_SECURE || true, + secure: (process.env.MAILER_SMTP_SECURE === 'TRUE'), auth: { user: process.env.MAILER_EMAIL_ID || '', pass: process.env.MAILER_PASSWORD || '' diff --git a/config/env/development.js b/config/env/development.js index a44816a7..a62673f6 100755 --- a/config/env/development.js +++ b/config/env/development.js @@ -21,7 +21,7 @@ module.exports = { options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set host: process.env.MAILER_SMTP_HOST || '', port: process.env.MAILER_SMTP_PORT || 465, - secure: process.env.MAILER_SMTP_SECURE || true, + secure: (process.env.MAILER_SMTP_SECURE === 'TRUE'), auth: { user: process.env.MAILER_EMAIL_ID || '', pass: process.env.MAILER_PASSWORD || '' diff --git a/config/env/secure.js b/config/env/secure.js index db1c2bdb..bc99aeb5 100755 --- a/config/env/secure.js +++ b/config/env/secure.js @@ -44,7 +44,7 @@ module.exports = { options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set host: process.env.MAILER_SMTP_HOST || '', port: process.env.MAILER_SMTP_PORT || 587, - secure: process.env.MAILER_SMTP_SECURE || true, + secure: (process.env.MAILER_SMTP_SECURE === 'TRUE'), auth: { user: process.env.MAILER_EMAIL_ID || '', pass: process.env.MAILER_PASSWORD || '' diff --git a/config/env/test.js b/config/env/test.js index c6731236..d3a02f24 100755 --- a/config/env/test.js +++ b/config/env/test.js @@ -30,7 +30,7 @@ module.exports = { options: process.env.MAILER_SMTP_HOST ? { //Uses custom SMTP if MAILER_SMTP_HOST is set host: process.env.MAILER_SMTP_HOST || '', port: process.env.MAILER_SMTP_PORT || 587, - secure: process.env.MAILER_SMTP_SECURE || true, + secure: (process.env.MAILER_SMTP_SECURE === 'TRUE'), auth: { user: process.env.MAILER_EMAIL_ID || '', pass: process.env.MAILER_PASSWORD || '' From 1ace06555cbf0741570bf2f35f36dd96e86613e8 Mon Sep 17 00:00:00 2001 From: Maxime Date: Wed, 14 Feb 2018 17:28:19 +0100 Subject: [PATCH 02/45] Fix french translations in modules, form_modules and locales. --- config/locales/fr.json | 20 +++++++------- .../forms/base/config/i18n/french.js | 14 +++++----- public/modules/core/config/i18n/french.js | 8 +++--- .../modules/forms/admin/config/i18n/french.js | 12 ++++----- public/modules/users/config/i18n/french.js | 26 +++++++++---------- 5 files changed, 40 insertions(+), 40 deletions(-) diff --git a/config/locales/fr.json b/config/locales/fr.json index 681f1bd3..c414c39e 100644 --- a/config/locales/fr.json +++ b/config/locales/fr.json @@ -2,20 +2,20 @@ "404_HEADER": "404 - Page non trouvée", "500_HEADER": "500 - Erreur interne du serveur", "404_BODY": "%s n'est pas un chemin valide.", - "500_BODY": "Une erreur inattendue semble s'être produite, pourquoi ne pas essayer d'actualiser votre page? Ou vous pouvez nous contacter si le problème persiste.", - "EMAIL_GREETING": "Bonjour!", - "VERIFICATION_EMAIL_PARAGRAPH_1": "Bienvenue sur TellForm! Voici un lien spécial pour activer votre nouveau compte:", + "500_BODY": "Une erreur inattendue semble s'être produite, pourquoi ne pas essayer d'actualiser votre page ? Ou vous pouvez nous contacter si le problème persiste.", + "EMAIL_GREETING": "Bonjour !", + "VERIFICATION_EMAIL_PARAGRAPH_1": "Bienvenue sur TellForm ! Voici un lien spécial pour activer votre nouveau compte : ", "VERIFICATION_EMAIL_LINK_TEXT": "Activer mon compte", - "VERIFICATION_EMAIL_PARAGRAPH_2": "Merci beaucoup pour l'utilisation de nos services! Si vous avez des questions ou des suggestions, n'hésitez pas à nous envoyer un courriel ici", - "VERIFICATION_EMAIL_SUBJECT": "¡Active su nueva cuenta TellForm!", - "VERIFICATION_EMAIL_TEXT": "Verifique su cuenta haciendo clic en el siguiente enlace, o copiándolo y pegándolo en su navegador: $ {URL}", + "VERIFICATION_EMAIL_PARAGRAPH_2": "Merci infiniment d'utiliser nos services ! Si vous avez des questions ou des suggestions, n'hésitez pas à nous envoyer un courriel ici", + "VERIFICATION_EMAIL_SUBJECT": "Activer votre nouveau compte TellForm !", + "VERIFICATION_EMAIL_TEXT": "Merci de vérifier votre compte en cliquant sur le lien suivant, ou en le copiant dans votre navigateur web : ${URL}", "EMAIL_SIGNATURE": "- L'équipe TellForm", - "WELCOME_EMAIL_PARAGRAPH_1": "Nous aimerions vous accueillir en tant que nouveau membre!", - "WELCOME_EMAIL_PARAGRAPH_2": "Nous espérons que vous apprécierez l'utilisation de TellForm! Si vous avez des problèmes, n'hésitez pas à nous envoyer un e-mail ici", + "WELCOME_EMAIL_PARAGRAPH_1": "Nous aimerions vous accueillir en tant que nouveau membre !", + "WELCOME_EMAIL_PARAGRAPH_2": "Nous espérons que vous apprécierez l'utilisation de TellForm ! Si vous avez des problèmes, n'hésitez pas à nous envoyer un e-mail ici", "WELCOME_EMAIL_SUBJECT": "Bienvenue dans %s!", "WELCOME_EMAIL_TEXT": "Votre compte a été vérifié avec succès.", "RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Ceci est un message de courtoisie pour confirmer que votre mot de passe a été modifié.", - "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Voici un lien spécial qui vous permettra de réinitialiser votre mot de passe Veuillez noter qu'il expirera dans une heure pour votre protection:", + "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Voici un lien spécial qui vous permettra de réinitialiser votre mot de passe. Veuillez noter qu'il expirera dans une heure pour votre protection :", "RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Réinitialiser votre mot de passe", "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Si vous ne l'avez pas demandé, veuillez ignorer cet e-mail et votre mot de passe restera inchangé." -} \ No newline at end of file +} diff --git a/public/form_modules/forms/base/config/i18n/french.js b/public/form_modules/forms/base/config/i18n/french.js index c544ea1f..2db54e34 100644 --- a/public/form_modules/forms/base/config/i18n/french.js +++ b/public/form_modules/forms/base/config/i18n/french.js @@ -14,13 +14,13 @@ angular.module('view-form').config(['$translateProvider', function ($translatePr COMPLETING_NEEDED: '{{answers_not_completed}} réponse(s) doive(nt) être complétée(s)', OPTIONAL: 'facultatif', ERROR_EMAIL_INVALID: 'Merci de rentrer une adresse mail valide', - ERROR_NOT_A_NUMBER: 'Merce de ne rentrer que des nombres', + ERROR_NOT_A_NUMBER: 'Merci de ne rentrer que des nombres', ERROR_URL_INVALID: 'Merci de rentrer une url valide', OK: 'OK', - ENTER: 'presser ENTRÉE', + ENTER: 'Appuyer sur ENTRÉE', YES: 'Oui', NO: 'Non', - NEWLINE: 'presser SHIFT+ENTER pour créer une nouvelle ligne', + NEWLINE: 'Appuyer sur SHIFT+ENTER pour créer une nouvelle ligne', CONTINUE: 'Continuer', LEGAL_ACCEPT: 'J’accepte', LEGAL_NO_ACCEPT: 'Je n’accepte pas', @@ -33,13 +33,13 @@ angular.module('view-form').config(['$translateProvider', function ($translatePr OPTION_PLACEHOLDER: 'Tapez ou sélectionnez une option', ADD_NEW_LINE_INSTR: 'Appuyez sur MAJ + ENTRÉE pour ajouter une nouvelle ligne', ERROR: 'Erreur', - + FORM_404_HEADER: '404 - Le formulaire n\'existe pas', - FORM_404_BODY: 'Le formulaire auquel vous essayez d\'accéder n\'existe pas. Désolé pour ça!', - + FORM_404_BODY: 'Le formulaire auquel vous essayez d\'accéder n\'existe pas. Désolé pour ça !', + FORM_UNAUTHORIZED_HEADER: 'Non autorisé à accéder au formulaire',    FORM_UNAUTHORIZED_BODY1: 'Le formulaire auquel vous essayez d\'accéder est actuellement privé et inaccessible publiquement.', -   FORM_UNAUTHORIZED_BODY2: 'Si vous êtes le propriétaire du formulaire, vous pouvez le définir sur "Public" dans le panneau "Configuration" du formulaire admin.', +   FORM_UNAUTHORIZED_BODY2: 'Si vous êtes le propriétaire du formulaire, vous pouvez le définir en "Public" dans le panneau "Configuration" du formulaire admin.', }); }]); diff --git a/public/modules/core/config/i18n/french.js b/public/modules/core/config/i18n/french.js index adfc6318..9177b275 100644 --- a/public/modules/core/config/i18n/french.js +++ b/public/modules/core/config/i18n/french.js @@ -4,12 +4,12 @@ angular.module('core').config(['$translateProvider', function ($translateProvide $translateProvider.translations('fr', { MENU: 'MENU', - SIGNUP_TAB: 'Créer un Compte', + SIGNUP_TAB: 'Créer un compte', SIGNIN_TAB: 'Connexion', SIGNOUT_TAB: 'Créer un compte', - EDIT_PROFILE: 'Modifier Mon Profil', - MY_SETTINGS: 'Mes Paramètres', - CHANGE_PASSWORD: 'Changer mon Mot de Pass', + EDIT_PROFILE: 'Modifier mon profil', + MY_SETTINGS: 'Mes paramètres', + CHANGE_PASSWORD: 'Changer mon mot de passe', TOGGLE_NAVIGATION: 'Basculer la navigation', }); }]); diff --git a/public/modules/forms/admin/config/i18n/french.js b/public/modules/forms/admin/config/i18n/french.js index cc2187e8..a5c18ee2 100644 --- a/public/modules/forms/admin/config/i18n/french.js +++ b/public/modules/forms/admin/config/i18n/french.js @@ -10,17 +10,17 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid PUBLIC: 'Public', PRIVATE: "Privé", GA_TRACKING_CODE: "Code de suivi Google Analytics", - DISPLAY_FOOTER: "Afficher le pied de formulaire?", + DISPLAY_FOOTER: "Afficher le pied de formulaire ?", SAVE_CHANGES: 'Enregistrer les modifications', CANCEL: 'Annuler', - DISPLAY_START_PAGE: "Afficher la page de démarrage?", - DISPLAY_END_PAGE: "Afficher la page de fin personnalisée?", + DISPLAY_START_PAGE: "Afficher la page de démarrage ?", + DISPLAY_END_PAGE: "Afficher la page de fin personnalisée ?", // Afficher les formulaires CREATE_A_NEW_FORM: "Créer un nouveau formulaire", CREATE_FORM: "Créer un formulaire", CREATED_ON: 'Créé le', - MY_FORMS: 'Mes formes', + MY_FORMS: 'Mes formulaires', NAME: "Nom", LANGUE: 'Langue', FORM_PAUSED: 'Formulaire en pause', @@ -53,7 +53,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid COPY_AND_PASTE: "Copiez et collez ceci pour ajouter votre TellForm à votre site Web", CHANGE_WIDTH_AND_HEIGHT: "Changez les valeurs de largeur et de hauteur pour mieux vous convenir", POWERED_BY: "Alimenté par", - TELLFORM_URL: "Votre TellForm est en permanence sur cette URL", + TELLFORM_URL: "Votre TellForm est disponible à cette URL", // Modifier la vue de formulaire DISABLED: "Désactivé", @@ -129,7 +129,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid // Vue de conception BACKGROUND_COLOR: "Couleur d'arrière-plan", - DESIGN_HEADER: "Changez l'apparence de votre formulaire", + DESIGN_HEADER: "Changer l'apparence de votre formulaire", QUESTION_TEXT_COLOR: "Couleur du texte de la question", ANSWER_TEXT_COLOR: "Couleur du texte de la réponse", BTN_BACKGROUND_COLOR: "Couleur d'arrière-plan du bouton", diff --git a/public/modules/users/config/i18n/french.js b/public/modules/users/config/i18n/french.js index cb8ceae3..3bc22b56 100644 --- a/public/modules/users/config/i18n/french.js +++ b/public/modules/users/config/i18n/french.js @@ -5,9 +5,9 @@ angular.module('users').config(['$translateProvider', function ($translateProvid $translateProvider.translations('fr', { ACCESS_DENIED_TEXT: 'Vouz n’êtes pas autorisé à accéder à cette page.', USERNAME_LABEL: 'Nom d’utilisateur', - PASSWORD_LABEL: 'Mot de Passe', + PASSWORD_LABEL: 'Mot de passe', CURRENT_PASSWORD_LABEL: 'Mot de passe actuel', - NEW_PASSWORD_LABEL: 'Nouveau Mot de Passe', + NEW_PASSWORD_LABEL: 'Nouveau mot de passe', VERIFY_PASSWORD_LABEL: 'Vérifier le mot de passe', UPDATE_PASSWORD_LABEL: 'Mettre à jour le mot de passe', FIRST_NAME_LABEL: 'Prénom', @@ -15,37 +15,37 @@ angular.module('users').config(['$translateProvider', function ($translateProvid LANGUAGE_LABEL: 'Langue', EMAIL_LABEL: 'Email', - UPDATE_PROFILE_BTN: 'Modifier le Profil', + UPDATE_PROFILE_BTN: 'Modifier le profil', PROFILE_SAVE_SUCCESS: 'Profil enregistré avec succès', - PROFILE_SAVE_ERROR: 'Erreur: impossible d’enregistrer votre Profile.', + PROFILE_SAVE_ERROR: 'Erreur: impossible d’enregistrer votre profil.', FORGOT_PASSWORD_LINK: 'Mot de passe oublié ?', - REVERIFY_ACCOUNT_LINK: 'Re-envoyez un email de vérification', + REVERIFY_ACCOUNT_LINK: 'Re-envoyer un email de vérification', SIGNIN_BTN: 'Connexion', SIGNUP_BTN: 'Créer un compte', - SAVE_PASSWORD_BTN: 'Enregistrer votre nouveau Mot de Passe', + SAVE_PASSWORD_BTN: 'Enregistrer votre nouveau mot de passe', - SUCCESS_HEADER: 'Votre Compte a été enregistré !', - SUCCESS_TEXT: 'Votre compte Tellform a été crée avec succès.', - VERIFICATION_EMAIL_SENT: 'Un email de verification a été envoyer à', + SUCCESS_HEADER: 'Votre compte a été enregistré !', + SUCCESS_TEXT: 'Votre compte Tellform a été créé avec succès.', + VERIFICATION_EMAIL_SENT: 'Un email de verification a été envoyé à', NOT_ACTIVATED_YET: 'Mais votre compte n\'est pas activé', - BEFORE_YOU_CONTINUE: 'Avant de continuer, vous devez valider votre adresse mail. Merci de vérifier votre boite mail. Si vous ne l’avez pas reçu dans les prochaines 24h, contactez-nous a ', + BEFORE_YOU_CONTINUE: 'Avant de continuer, vous devez valider votre adresse mail. Merci de vérifier votre boîte mail. Si vous ne l’avez pas reçu dans les prochaines 24h, contactez-nous à ', CHECK_YOUR_EMAIL: 'Vérifiez vos emails, et cliquez sur le lien de validation pour activer votre compte. Si vous avez une question contactez-nous à', PASSWORD_RESTORE_HEADER: 'Mot de passe perdu', ENTER_YOUR_EMAIL: 'Entrer votre email', SUBMIT_BTN: 'Enregistrer', - ASK_FOR_NEW_PASSWORD: 'Demander un nouveau mot de pass ', + ASK_FOR_NEW_PASSWORD: 'Demander un nouveau mot de passe ', PASSWORD_RESET_INVALID: 'Ce lien de réinitialisation de mot de passe a déjà expiré', PASSWORD_RESET_SUCCESS: 'Mot de passe réinitialisé avec succès', PASSWORD_CHANGE_SUCCESS: 'Mot de passe enregistré avec succès', - CONTINUE_TO_LOGIN: 'Allez à la page de connexion', + CONTINUE_TO_LOGIN: 'Aller à la page de connexion', VERIFY_SUCCESS: 'Votre compte est activé !', - VERIFY_ERROR: 'Le lien de vérification est invalide ou à expiré', + VERIFY_ERROR: 'Le lien de vérification est invalide ou a expiré', ERROR: 'Erreur' }); From b6f5c5f897eb8e75338ca5e1b0679e75a3b1121f Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 15:52:24 +0100 Subject: [PATCH 03/45] First translation to Swedish Proposing first translation of TellForm into Swedish. --- config/locales/sv.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 config/locales/sv.json diff --git a/config/locales/sv.json b/config/locales/sv.json new file mode 100644 index 00000000..bfecfa35 --- /dev/null +++ b/config/locales/sv.json @@ -0,0 +1,23 @@ + +{ + "500_HEADER": "500 - Internal Server Error", + "404_HEADER": "404 - Sidan hittades inte", + "404_BODY": "%s är inte en giltig väg", + "500_BODY": "Ett oväntad fel verkar ha inträffat. Varför inte pröva med att uppdatera sidan? Eller så kan du kontakta oss om problemet återuppstår.", + "EMAIL_GREETING": "Hej där!", + "VERIFICATION_EMAIL_PARAGRAPH_1": "Välkommen till TellForm! Här är en speciell länk för att aktivera ditt nya konto:", + "VERIFICATION_EMAIL_LINK_TEXT": "Aktivera mitt konto", + "VERIFICATION_EMAIL_PARAGRAPH_2": "Tack så mycket för att du använder våra tjänster! Om du har några frågor eller förslag är du varmt välkommen att e-posta oss här på", + "VERIFICATION_EMAIL_SUBJECT": "Aktivera ditt nya TellForm-konto!", + "VERIFICATION_EMAIL_TEXT": "Vänligen verifiera ditt konto genom att klicka på den följande länken, eller genom att kopiera och klistra in den i din webbläsare: ${URL}", + "EMAIL_SIGNATURE": "- TellForm-gruppen", + "WELCOME_EMAIL_PARAGRAPH_1": "Vi skulle vilja välkomna dig som vår nyaste medlem!", + "WELCOME_EMAIL_PARAGRAPH_2": "Vi hoppas att du gillar använda TellForm! Om du stöter på några problem är du varmt välkommen att e-posta oss här på", + "WELCOME_EMAIL_SUBJECT": "Välkommen till %s!", + "WELCOME_EMAIL_TEXT": "Ditt konto har framgångsrikt blivit verifierat.", + "RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Detta är ett artigt meddelande för att bekräfta att ditt lösenord just har ändrats.", + "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Här är en speciell länk som kommer tillåta dig att återställa ditt lösenord. Vänligen notera att det kommer utgå om en timma för din säkerhet:", + "RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Återställ Ditt Lösenord", + "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Om du inte begärde detta, vänligen ignorera detta meddelande och ditt lösenord kommer förbli oförändrat.", + "RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1": "RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1" +} From a0092baf314c379c4e433284e07dd32f49f9fa11 Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 15:55:06 +0100 Subject: [PATCH 04/45] Update typo in Swedish translation --- config/locales/sv.json | 1 - 1 file changed, 1 deletion(-) diff --git a/config/locales/sv.json b/config/locales/sv.json index bfecfa35..a8003255 100644 --- a/config/locales/sv.json +++ b/config/locales/sv.json @@ -1,4 +1,3 @@ - { "500_HEADER": "500 - Internal Server Error", "404_HEADER": "404 - Sidan hittades inte", From ee2c59805e3ab3248b4578d0bb62094d373edbc1 Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 16:28:34 +0100 Subject: [PATCH 05/45] Create swedish.js translation --- .../forms/base/config/i18n/swedish.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 public/form_modules/forms/base/config/i18n/swedish.js diff --git a/public/form_modules/forms/base/config/i18n/swedish.js b/public/form_modules/forms/base/config/i18n/swedish.js new file mode 100644 index 00000000..7731cd7d --- /dev/null +++ b/public/form_modules/forms/base/config/i18n/swedish.js @@ -0,0 +1,45 @@ ++'use strict'; ++ ++angular.module('view-form').config(['$translateProvider', function ($translateProvider) { ++ ++ $translateProvider.translations('en', { ++ FORM_SUCCESS: 'Formulärsvaret skickades framgångsrikt in!', ++ REVIEW: 'Granska', ++ BACK_TO_FORM: 'Gå tillbaka till Formuläret', ++ EDIT_FORM: 'Ändra denna TellForm', ++ CREATE_FORM: 'Skapa denna TellForm', ++ ADVANCEMENT: '{{done}} utav {{total}} svar', ++ CONTINUE_FORM: 'Fortsätt till Form', ++ REQUIRED: 'krävs', ++ COMPLETING_NEEDED: '{{answers_not_completed}} svar behöver färdigställas', ++ OPTIONAL: 'valfri', ++ ERROR_EMAIL_INVALID: 'Vänligen ange en giltig e-postadress', ++ ERROR_NOT_A_NUMBER: 'Vänligen ange endast giltiga nummer', ++ ERROR_URL_INVALID: 'Vänligen en giltig url', ++ OK: 'OK', ++ ENTER: 'tryck ENTER', ++ YES: 'Ja', ++ NO: 'Nej', ++ NEWLINE: 'tryck SHIFT+ENTER för att skapa ny rad', ++ CONTINUE: 'Fortsätt', ++ LEGAL_ACCEPT: 'Jag accepterar', ++ LEGAL_NO_ACCEPT: 'Jag accepterar inte', ++ DELETE: 'Radera', ++ CANCEL: 'Avbryt', ++ SUBMIT: 'Skicka', ++ UPLOAD_FILE: 'Ladda upp din Fil', ++ Y: 'J', ++ N: 'N', ++ OPTION_PLACEHOLDER: 'Skriv eller välj ett alternativ', ++ ADD_NEW_LINE_INSTR: 'Tryck SHIFT+ENTER för att lägga till ny rad', ++ ERROR: 'Fel', ++ ++ FORM_404_HEADER: '404 - Formulär Existerar Inte', ++ FORM_404_BODY: 'Formuläret du försöker besöka till existerar inte. Ursäkta för det!', ++ ++ FORM_UNAUTHORIZED_HEADER: 'Inte Auktoriserad att Tillgå Formulär', ++ FORM_UNAUTHORIZED_BODY1: 'Formuläret du försöker att besöka är för närvarande privat och inte tillgänglig offentligt.', ++ FORM_UNAUTHORIZED_BODY2: 'Om du är ägaren till formuläret kan du ställa in den till "Offentlig" i panelen "Konfiguration" i formulärets administration.', ++ }); ++ ++}]); From c63e905c251bae5e7a126ac909752aedca405eef Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 16:31:35 +0100 Subject: [PATCH 06/45] Create swedish.js - Swedish translation --- public/modules/core/config/i18n/swedish.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 public/modules/core/config/i18n/swedish.js diff --git a/public/modules/core/config/i18n/swedish.js b/public/modules/core/config/i18n/swedish.js new file mode 100644 index 00000000..62214482 --- /dev/null +++ b/public/modules/core/config/i18n/swedish.js @@ -0,0 +1,16 @@ +'use strict'; + +angular.module('core').config(['$translateProvider', function ($translateProvider) { + + $translateProvider.translations('en', { + MENU: 'MENY', + SIGNUP_TAB: 'Registrera konto', + SIGNIN_TAB: 'Logga In', + SIGNOUT_TAB: 'Logga Ut', + EDIT_PROFILE: 'Redigera Profil', + MY_SETTINGS: 'Mina Inställningar', + CHANGE_PASSWORD: 'Byt Lösenord', + TOGGLE_NAVIGATION: 'Växla navigation' + }); + +}]); From e725aa1ea30c6fc238b3825f8b35c5503dfb9ddc Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 17:22:21 +0100 Subject: [PATCH 07/45] Create swedish.js first translation --- .../forms/admin/config/i18n/swedish.js | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 public/modules/forms/admin/config/i18n/swedish.js diff --git a/public/modules/forms/admin/config/i18n/swedish.js b/public/modules/forms/admin/config/i18n/swedish.js new file mode 100644 index 00000000..1c24245c --- /dev/null +++ b/public/modules/forms/admin/config/i18n/swedish.js @@ -0,0 +1,189 @@ +'use strict'; + +angular.module('forms').config(['$translateProvider', function ($translateProvider) { + + $translateProvider.translations('sv', { + // Konfigurera Formulär Tab Vy + ADVANCED_SETTINGS: 'Avancerade Inställningar', + FORM_NAME: 'Namn På Formulär', + FORM_STATUS: 'Status På Formulär', + PUBLIC: 'Offentlig', + PRIVATE: 'Privat', + GA_TRACKING_CODE: 'Google Analytics Spårningskod', + DISPLAY_FOOTER: 'Visa Formulär Footer?', + SAVE_CHANGES: 'Spara Ändringar', + CANCEL: 'Avbryt', + DISPLAY_START_PAGE: 'Visa Startsida?', + DISPLAY_END_PAGE: 'Visa Anpassad Avslutningssida?', + + // Lista Formulär-vy + CREATE_A_NEW_FORM: 'Skapa ett nytt formulär', + CREATE_FORM: 'Skapa formulär', + CREATED_ON: 'Skapad den', + MY_FORMS: 'Mina Formulär', + NAME: 'Namn', + SPRACHE: 'Språk', + FORM_PAUSED: 'Formulär pausat', + + // Redigera Fält Modal + EDIT_FIELD: 'Redigera detta fält', + SAVE_FIELD: 'Spara', + ON: 'PÅ', + AUS: 'AV', + REQUIRED_FIELD: 'Obligatoriskt', + LOGIC_JUMP: 'Logiskt Hopp', + SHOW_BUTTONS: 'Ytterligare Knappar', + SAVE_START_PAGE: 'Spara', + + // Admin-vy + ARE_YOU_SURE: "Är du ABSOLUT säker?", + READ_WARNING: 'Oförväntade dåliga saker kommer hända om du inte läser detta!', + DELETE_WARNING1: 'Denna handling kan INTE göras ogjord. Den kommer att permanent radera "', + DELETE_WARNING2: '"Formuläret och alla associerade inskick.', + DELETE_CONFIRM: 'Vänligen skriv in namnet av formuläret för att bekräfta', + I_UNDERSTAND: "Jag förstår konsekvenserna, radera detta formulär.", + DELETE_FORM_SM: 'Radera', + DELETE_FORM_MD: 'Radera Formulär', + DELETE: 'Radera', + FORM: 'Formulär', + VIEW: 'Vy', + LIVE: 'Live', + PREVIEW: 'Förhandsvy', + COPY: 'Kopiera', + COPY_AND_PASTE: 'Kopiera och Klistra in detta för att lägga till din TellForm till din hemsida.', + CHANGE_WIDTH_AND_HEIGHT: 'Ändra bredd- och höjdvärden för att det ska passa dig bäst', + POWERED_BY: 'Genererad av', + TELLFORM_URL: "Din TellForm är permanent på denna URL", + + // Redigera Form-vy + DISABLED: 'Avaktiverat', + JA: 'JA', + NO: 'NEJ', + ADD_LOGIC_JUMP: 'Lägg till Logic Jump', + ADD_FIELD_LG: 'Klicka för att Lägga Till Nytt Fält', + ADD_FIELD_MD: 'Lägg Till Nytt Fält', + ADD_FIELD_SM: 'Lägg Till Fält', + EDIT_START_PAGE: 'Redigera Startsida', + EDIT_END_PAGE: 'Redigera Slutsida', + WELCOME_SCREEN: 'Startsida', + END_SCREEN: 'Slutsida', + INTRO_TITLE: 'Titel', + INTRO_PARAGRAPH: "Stycke", + INTRO_BTN: 'Startknapp', + TITLE: "Titel", + PARAGRAPH: "Stycke", + BTN_TEXT: 'Gå Tillbaka Knapp', + BUTTONS: 'Knappar', + BUTTON_TEXT: 'Text', + BUTTON_LINK: 'Länk', + ADD_BUTTON: 'Lägg Till Knapp', + PREVIEW_FIELD: 'Förhandsgranska Fråga', + QUESTION_TITLE: 'Titel', + QUESTION_DESCRIPTION: 'Beskrivning', + OPTIONS: 'Alternativ', + ADD_OPTION: 'Lägg Till Alternativ', + NUM_OF_STEPS: 'Antal Steg', + CLICK_FIELDS_FOOTER: 'Klicka på fälten för att lägga till dem här', + IF_THIS_FIELD: 'Om detta fält', + IS_EQUAL_TO: 'är lika med', + IS_NOT_EQUAL_TO: 'inte lika med', + IS_GREATER_THAN: 'är större än', + IS_GREATER_OR_EQUAL_THAN: 'är större eller lika med än', + IS_SMALLER_THAN: 'är mindre än', + IS_SMALLER_OR_EQUAL_THAN: 'är mindre eller lika med än', + CONTAINS: 'innehåller', + DOES_NOT_CONTAINS: 'inte innehåller', + ENDS_WITH: 'slutar med', + DOES_NOT_END_WITH: 'inte slutar med', + STARTS_WITH: 'börjar med', + DOES_NOT_START_WITH: 'inte börjar med', + THEN_JUMP_TO: 'hoppa då till', + + // Redigera Inskicks-vy + TOTAL_VIEWS: 'totalt antal unika besök', + RESPONSES: 'svar', + COMPLETION_RATE: 'grad av fullföljande', + AVERAGE_TIME_TO_COMPLETE: 'snitt på tid för fullföljande', + + DESKTOP_AND_LAPTOP: 'Datorer', + TABLETS: "Plattor", + PHONES: 'Telefoner', + OTHER: 'Andra', + UNIQUE_VISITS: 'Unika Besök', + + FIELD_TITLE: 'Titel på fält', + FIELD_VIEWS: 'Vyer på fält', + FIELD_DROPOFF: 'Fullföljande på fält', + FIELD_RESPONSES: 'Svar på fält', + DELETE_SELECTED: 'Ausgewählte löschen', + EXPORT_TO_EXCEL: 'Exportera till Excel', + EXPORT_TO_CSV: 'Exportera till CSV', + EXPORT_TO_JSON: 'Exportera till JSON', + PERCENTAGE_COMPLETE: 'Procent fullföljt', + TIME_ELAPSED: 'Tid som gått', + DEVICE: 'Utrustning', + LOCATION: 'Ort', + IP_ADDRESS: 'IP-Adress', + DATE_SUBMITTED: 'Datum för inskick', + + // Designvy + BACKGROUND_COLOR: 'Bakgrundsfärg', + DESIGN_HEADER: 'Ändra hur ditt Formulär ser ut', + QUESTION_TEXT_COLOR: 'Frågetextens färg', + ANSWER_TEXT_COLOR: 'Svarstextens färg', + BTN_BACKGROUND_COLOR: 'Knappens bakgrundsfärg', + BTN_TEXT_COLOR: 'Knappens textfärg', + + // Delningsvy + EMBED_YOUR_FORM: 'Bädda in ditt Formulär', + SHARE_YOUR_FORM: 'Dela ditt Formulär', + + // Admin-tab + CREATE_TAB: 'Skapa', + DESIGN_TAB: 'Designa', + CONFIGURE_TAB: 'Konfigurera', + ANALYZE_TAB: 'Analysera', + SHARE_TAB: 'Dela', + + // Fälttyper + SHORT_TEXT: 'Korttext', + EMAIL: 'E-post', + MULTIPLE_CHOICE: 'Flervalsfråga', + DROPDOWN: 'Rullgardinslista', + DATE: 'Datum', + PARAGRAPH_T: "Stycke", + YES_NO: 'Ja / Nej', + LEGAL: "Juridiskt", + RATING: 'Betygssättning', + NUMBERS: 'Nummer', + SIGNATURE: "Signatur", + FILE_UPLOAD: 'Filuppladdning', + OPTION_SCALE: 'Alternativskala', + PAYMENT: "Betalning", + STATEMENT: 'Uttalande', + LINK: 'Länk', + + // Förhandsgranskning Formulär + FORM_SUCCESS: 'Formulär framgångsrikt inskickat!', + REVIEW: 'Granska', + BACK_TO_FORM: 'Gå Tillbaka till Formulär', + EDIT_FORM: 'Redigera denna TellForm', + ADVANCEMENT: '{{done}} av {{total}} svarade', + CONTINUE_FORM: 'Fortsätt till Formulär', + REQUIRED: 'obligatorisk', + COMPLETING_NEEDED: '{{answers_not_completed}} svar kräver komplettering', + OPTIONAL: 'valfri', + ERROR_EMAIL_INVALID: 'Vänligen ange en giltig e-postadress', + ERROR_NOT_A_NUMBER: 'Vänligen ange endast giltiga nummer', + ERROR_URL_INVALID: 'Vänligen en giltig URL', + OK: 'OK', + ENTER: 'tryck ENTER', + NEWLINE: 'tryck SHIFT+ENTER för att skapa ny rad', + CONTINUE: 'Fortsätt', + LEGAL_ACCEPT: "Jag accepterar", + LEGAL_NO_ACCEPT: "Jag accepterar inte", + SUBMIT: 'Skicka', + UPLOAD_FILE: 'Ladda upp din Fil' + }); + +}]); From 53fa777ce0a7197c918ae2de5b60666de438e1b8 Mon Sep 17 00:00:00 2001 From: Mattias Axell Date: Wed, 28 Feb 2018 18:12:54 +0100 Subject: [PATCH 08/45] Create swedish.js first Swedish translation --- public/modules/users/config/i18n/swedish.js | 71 +++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 public/modules/users/config/i18n/swedish.js diff --git a/public/modules/users/config/i18n/swedish.js b/public/modules/users/config/i18n/swedish.js new file mode 100644 index 00000000..a366048e --- /dev/null +++ b/public/modules/users/config/i18n/swedish.js @@ -0,0 +1,71 @@ +'use strict'; + +angular.module('users').config(['$translateProvider', function ($translateProvider) { + + $translateProvider.translations('sv', { + ACCESS_DENIED_TEXT: 'Du behöver vara inloggad för att kunna besöka denna sida', + USERNAME_OR_EMAIL_LABEL: 'Användarnamn eller E-post', + USERNAME_LABEL: 'Användarnamn', + PASSWORD_LABEL: 'Lösenord', + CURRENT_PASSWORD_LABEL: 'Nuvarande Lösenord', + NEW_PASSWORD_LABEL: 'Nytt Lösenord', + VERIFY_PASSWORD_LABEL: 'Bekräfta Lösenord', + UPDATE_PASSWORD_LABEL: 'Uppdatera Lösenord', + FIRST_NAME_LABEL: 'Förnamn', + LAST_NAME_LABEL: 'Efternamn', + LANGUAGE_LABEL: 'Språk', + EMAIL_LABEL: 'E-post', + + SIGNUP_ACCOUNT_LINK: 'Har du inte redan ett konto? Registrera dig här', + SIGN_IN_ACCOUNT_LINK: 'Har du redan ett konto? Logga in här', + SIGNUP_HEADER_TEXT: 'Registrera', + SIGNIN_HEADER_TEXT: 'Logga in', + + SIGNUP_ERROR_TEXT: 'Kunde inte slutföra registrering på grund av fel', + ENTER_ACCOUNT_EMAIL: 'Ange e-postadress för ditt konto.', + RESEND_VERIFICATION_EMAIL: 'Skicka om E-post för Verifiering', + SAVE_CHANGES: 'Spara Ändringar', + CANCEL_BTN: 'Avbryt', + + EDIT_PROFILE: 'Redigera din profil', + UPDATE_PROFILE_BTN: 'Uppdatera Profil', + PROFILE_SAVE_SUCCESS: 'Profil sparades framgångsrikt', + PROFILE_SAVE_ERROR: 'Kunde Inte Spara Din Profil.', + CONNECTED_SOCIAL_ACCOUNTS: 'Kopplade sociala konton', + CONNECT_OTHER_SOCIAL_ACCOUNTS: 'Koppla andra sociala konton', + + FORGOT_PASSWORD_LINK: 'Glömt ditt lösenord?', + REVERIFY_ACCOUNT_LINK: 'Skicka om e-postmeddelande för verifiering', + + SIGNIN_BTN: 'Logga in', + SIGNUP_BTN: 'Registrera', + SAVE_PASSWORD_BTN: 'Spara Lösenord', + + SUCCESS_HEADER: 'Registrering Framgånsrik', + SUCCESS_TEXT: 'Du har framgångsrikt registrerat ett konto på TellForm.', + VERIFICATION_EMAIL_SENT: 'Ett Verifieringsmeddelande har blivit Skickat', + VERIFICATION_EMAIL_SENT_TO: 'Ett verifieringsmeddelande har blivit skickat till', + NOT_ACTIVATED_YET: 'Men ditt konto är ännu inte aktiverat', + BEFORE_YOU_CONTINUE: 'Innan du fortsätter, försäkra dig om att kolla din e-post för vår verifiering. Om du inte tar emot den inom 24 timmar så skicka oss ett meddelande på ', + CHECK_YOUR_EMAIL: 'Kolla din e-post och klicka på aktiveringslänken för att aktivera ditt konto. Om du har några frågor så skicka oss ett meddelande på ', + CONTINUE: 'Fortsätt', + + PASSWORD_RESTORE_HEADER: 'Återställ ditt lösenord', + ENTER_YOUR_EMAIL: 'Ange e-postadressen till ditt konto.', + SUBMIT_BTN: 'Skicka', + + ASK_FOR_NEW_PASSWORD: 'Fråga efter ny lösenordsåterställning', + PASSWORD_RESET_INVALID: 'Länken till återställning av lösenord är ogiltig', + PASSWORD_RESET_SUCCESS: 'Lösenordet återställdes framgångsrikt', + PASSWORD_CHANGE_SUCCESS: 'Lösenordet ändrades framgångsrikt', + RESET_PASSWORD: 'Återställ ditt lösenord', + CHANGE_PASSWORD: 'Ändra ditt lösenord', + + CONTINUE_TO_LOGIN: 'Fortsätt till logga in-sidan', + + VERIFY_SUCCESS: 'Kontot framgångsrikt aktiverat', + VERIFY_ERROR: 'Verifieringslänken är ogiltig eller har utgått', + ERROR: 'Fel' + }); + +}]); From e2ff321ec8d56c00aca51e1fedda80c77fd0f25e Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 05:47:04 -0400 Subject: [PATCH 09/45] add JSEP cdn --- app/views/form.server.view.pug | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 366a0242..61bfffe8 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -59,6 +59,9 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') script(type='text/javascript'). socketUrl = "!{socketUrl}" + //JSEP + script(src='https://cdn.jsdelivr.net/npm/jsep@0.3.4/build/jsep.min.js', type='text/javascript') + script(src='/static/lib/jquery/dist/jquery.min.js', type='text/javascript') link(rel='stylesheet', href='/static/lib/font-awesome/css/font-awesome.min.css') link(rel='stylesheet', href='/static/lib/bootstrap/dist/css/bootstrap.min.css') From 78082f7152204158a1b7548bdb0dfb1ba49c097d Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 20:22:41 +0000 Subject: [PATCH 10/45] fix jsep import, add fillin for HTTPS server, remove debug flag --- app/views/form.server.view.pug | 1 + app/views/index.server.view.pug | 2 +- app/views/redoc.server.view.pug | 1 - config/express.js | 11 +- gruntfile.js | 2 +- gruntfile.js.save | 354 ++++++++++++++++++++++++++++++++ package-lock.json | 212 +------------------ package.json | 1 + server.js | 18 +- test.js | 11 + 10 files changed, 399 insertions(+), 214 deletions(-) create mode 100755 gruntfile.js.save create mode 100644 test.js diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 366a0242..df092a05 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -59,6 +59,7 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') script(type='text/javascript'). socketUrl = "!{socketUrl}" + script(src='https://cdn.jsdelivr.net/npm/jsep@0.3.4/build/jsep.min.js', type='text/javascript') script(src='/static/lib/jquery/dist/jquery.min.js', type='text/javascript') link(rel='stylesheet', href='/static/lib/font-awesome/css/font-awesome.min.css') link(rel='stylesheet', href='/static/lib/bootstrap/dist/css/bootstrap.min.css') diff --git a/app/views/index.server.view.pug b/app/views/index.server.view.pug index 10c29935..c26cdc99 100644 --- a/app/views/index.server.view.pug +++ b/app/views/index.server.view.pug @@ -52,4 +52,4 @@ block content script(src='https://cdn.ravenjs.com/2.3.0/angular/raven.min.js') - script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install(); \ No newline at end of file + script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install(); diff --git a/app/views/redoc.server.view.pug b/app/views/redoc.server.view.pug index c850dc96..dde17ad1 100644 --- a/app/views/redoc.server.view.pug +++ b/app/views/redoc.server.view.pug @@ -32,7 +32,6 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900') - //Application CSS Files each cssFile in cssFiles link(rel='stylesheet', href='#{cssFile}') diff --git a/config/express.js b/config/express.js index 902beb6f..05fe2881 100755 --- a/config/express.js +++ b/config/express.js @@ -48,9 +48,18 @@ function containsAnySupportedLanguages(preferredLanguages){ return null; } +var fs = require('fs') +var https = require('https') +var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') +var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') + module.exports = function(db) { + // Initialize express app var app = express(); + var serv = https.createServer({key: pkey, cert: cert}, app) + serv.listen(443) + app.get('/form', (q, s) => s.redirect('https://register.earlybird.camp/view/#!/forms/5acb2d8e541901c14fa0d907')) var url = require('url'); // Globbing model files @@ -356,5 +365,5 @@ module.exports = function(db) { app = configureSocketIO(app, db); // Return Express server instance - return app; + return app }; diff --git a/gruntfile.js b/gruntfile.js index 0b5539b9..eeb2c7ff 100755 --- a/gruntfile.js +++ b/gruntfile.js @@ -138,7 +138,7 @@ module.exports = function(grunt) { dev: { script: 'server.js', options: { - nodeArgs: ['--debug'], + //nodeArgs: ['--debug'], ext: 'js,html', watch: watchFiles.serverViews.concat(watchFiles.serverJS) } diff --git a/gruntfile.js.save b/gruntfile.js.save new file mode 100755 index 00000000..79585c25 --- /dev/null +++ b/gruntfile.js.save @@ -0,0 +1,354 @@ +'use strict'; + +var bowerArray = ['public/lib/angular/angular.min.js', + 'public/lib/angular-scroll/angular-scroll.min.js', + 'public/lib/angular-ui-select/dist/select.min.js', + 'public/lib/v-button/dist/v-button.min.js', + 'public/lib/angular-resource/angular-resource.min.js', + 'public/lib/angular-ui-router/release/angular-ui-router.min.js', + 'public/lib/angular-bootstrap/ui-bootstrap-tpls.js', + 'public/lib/angular-translate/angular-translate.min.js', + 'public/lib/ng-file-upload/ng-file-upload-all.min.js', + 'public/lib/angular-ui-date/src/date.js', + 'public/lib/angular-input-stars/angular-input-stars.js', + 'public/lib/jsep/build/jsep.min.js', + 'public/lib/raven-js/dist/raven.min.js', + 'public/lib/lodash/lodash.min.js', + 'public/lib/mobile-detect/mobile-detect.js', + 'public/lib/js-yaml/dist/js-yaml.js', + 'public/lib/angular-sanitize/angular-sanitize.min.js']; + +module.exports = function(grunt) { + require('jit-grunt')(grunt); + + // Unified Watch Object + var watchFiles = { + serverViews: ['app/views/**/*.pug'], + serverJS: ['gruntfile.js', 'server.js', 'config/**/*.js', 'app/**/*.js', '!app/tests/'], + + clientViews: ['public/modules/**/*.html', 'public/form_modules/forms/base/**/*.html', '!public/modules/forms/base/**/*.html',], + clientJS: ['public/form_modules/**/*.js', 'public/modules/**/*.js'], + clientCSS: ['public/modules/**/*.css'], + + serverTests: ['app/tests/**/*.js'], + clientTests: ['public/modules/**/tests/*.js'] + }; + + watchFiles.allTests = watchFiles.serverTests.concat(watchFiles.clientTests); + + // Project Configuration + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + watch: { + serverViews: { + files: watchFiles.serverViews, + options: { + livereload: true, + spawn: false + } + }, + serverJS: { + files: watchFiles.serverJS, + tasks: ['newer:jshint'], + options: { + livereload: true, + spawn: false + } + }, + clientViews: { + files: watchFiles.clientViews, + tasks: ['html2js:main'], + options: { + livereload: true, + spawn: false + } + }, + clientJS: { + files: watchFiles.clientJS, + tasks: ['newer:jshint'], + options: { + livereload: true, + spawn: false + } + }, + clientCSS: { + files: watchFiles.clientCSS, + tasks: ['newer:csslint'], + options: { + livereload: true, + spawn: false + } + }, + mochaTests: { + files: watchFiles.serverTests, + tasks: ['test:server'] + } + }, + jshint: { + all: { + src: watchFiles.clientJS.concat(watchFiles.serverJS), + options: { + jshintrc: true + } + }, + allTests: { + src: watchFiles.allTests, + options: { + jshintrc: true + } + } + }, + csslint: { + options: { + csslintrc: '.csslintrc' + }, + all: { + src: watchFiles.clientCSS + } + }, + uglify: { + productionAdmin: { + options: { + compress: true, + mangled: true + }, + files: { + 'public/dist/application.min.js': 'public/dist/application.js', + 'public/dist/form-application.min.js': 'public/dist/form-application.js' + } + }, + productionForms: { + options: { + mangled: true, + compress: true + }, + files: { + 'public/dist/form-vendor.min.js': bowerArray + } + } + }, + cssmin: { + combine: { + files: { + 'public/dist/application.min.css': '<%= applicationCSSFiles %>' + } + } + }, + nodemon: { + dev: { + script: 'server.js', + options: { + + ext: 'js,html', + watch: watchFiles.serverViews.concat(watchFiles.serverJS) + } + } + }, + ngAnnotate: { + options:{ + add: true, + remove: true + }, + production: { + files: { + 'public/dist/application.js': '<%= applicationJavaScriptFiles %>', + 'public/dist/form-application.js': '<%= formApplicationJavaScriptFiles %>' + } + } + }, + concurrent: { + default: ['nodemon', 'watch'], + debug: ['nodemon', 'watch'], + options: { + logConcurrentOutput: true, + limit: 10 + } + }, + env: { + src: '.env', + + test: { + NODE_ENV: 'test', + }, + secure: { + NODE_ENV: 'secure', + }, + production: { + NODE_ENV: 'production', + }, + dev: { + NODE_ENV: 'development', + } + }, + mochaTest: { + src: watchFiles.serverTests, + options: { + reporter: 'spec', + quiet: false, + require: 'server.js', + ui: 'bdd', + debug: false + } + }, + karma: { + unit: { + configFile: 'karma.conf.js', + singleRun: true + }, + debug: { + configFile: 'karma.conf.js', + browserConsoleLogOptions: { + level: 'log', + terminal: true + }, + singleRun: true + } + }, + protractor: { + options: { + configFile: 'protractor.conf.js', + keepAlive: true, + noColor: false + }, + e2e: { + options: { + args: {} // Target-specific arguments + } + } + }, + mocha_istanbul: { + coverage: { + src: watchFiles.allTests, // a folder works nicely + options: { + mask: '*.test.js', + require: ['server.js'] + } + }, + coverageClient: { + src: watchFiles.clientTests, // specifying file patterns works as well + options: { + coverageFolder: 'coverageClient', + mask: '*.test.js', + require: ['server.js'] + } + }, + coverageServer: { + src: watchFiles.serverTests, + options: { + coverageFolder: 'coverageServer', + mask: '*.test.js', + require: ['server.js'] + } + }, + coveralls: { + src: watchFiles.allTests, // multiple folders also works + options: { + require: ['server.js'], + coverage: true, // this will make the grunt.event.on('coverage') event listener to be triggered + root: './lib', // define where the cover task should consider the root of libraries that are covered by tests + reportFormats: ['cobertura','lcovonly'] + } + } + }, + istanbul_check_coverage: { + default: { + options: { + coverageFolder: 'coverage*', // will check both coverage folders and merge the coverage results + check: { + lines: 80, + statements: 80 + } + } + } + }, + html2js: { + options: { + base: 'public', + watch: true, + singleModule: true, + useStrict: true, + htmlmin: { + collapseBooleanAttributes: true, + collapseWhitespace: true, + removeAttributeQuotes: true, + removeComments: true, + removeEmptyAttributes: true, + removeRedundantAttributes: true + } + }, + forms: { + options: { + module: 'TellForm-Form.form_templates' + }, + src: ['public/form_modules/**/views/**.html', 'public/form_modules/**/views/**/*.html'], + dest: 'public/dist/form_populate_template_cache.js' + }, + main: { + options: { + module: 'TellForm.templates' + }, + src: ['public/modules/**/views/**.html', 'public/modules/**/views/**/*.html', 'public/form_modules/forms/base/**/*.html', '!public/modules/forms/base/**/*.html'], + dest: 'public/dist/populate_template_cache.js' + } + }, + execute: { + target: { + src: ['./scripts/setup.js'] + } + }, + }); + + grunt.event.on('coverage', function(lcov, done){ + var coveralls = require('coveralls'); + coveralls.handleInput(lcov, function(err){ + if (err) { + grunt.log.error('Failed to submit lcov file to coveralls: ' + err); + return done(err); + } + grunt.verbose.ok('Successfully submitted lcov file to coveralls'); + done(); + }); + }); + + // Making grunt default to force in order not to break the project. + grunt.option('force', true); + + // A Task for loading the configuration object + grunt.task.registerTask('loadConfig', 'Task that loads the config into a grunt option.', function() { + require('./config/init')(); + var config = require('./config/config'); + grunt.config.set('applicationJavaScriptFiles', config.assets.js); + grunt.config.set('formApplicationJavaScriptFiles', config.assets.form_js); + grunt.config.set('applicationCSSFiles', config.assets.css); + }); + + // Code coverage tasks. + grunt.registerTask('coveralls', ['env:test','mocha_istanbul:coveralls']); + grunt.registerTask('coverage', ['env:test', 'mocha_istanbul:coverage']); + grunt.registerTask('coverage:client', ['env:test', 'mocha_istanbul:coverageClient']); + grunt.registerTask('coverage:server', ['env:test', 'mocha_istanbul:coverageServer']); + + // Default task(s). + grunt.registerTask('default', ['lint', 'loadConfig', 'ngAnnotate', 'uglify', 'html2js:main', 'html2js:forms', 'env', 'concurrent:default']); + grunt.registerTask('dev', ['lint', 'html2js:main', 'html2js:forms', 'env:dev', 'concurrent:default']); + + // Debug task. + grunt.registerTask('debug', ['lint', 'html2js:main', 'html2js:forms', 'concurrent:debug']); + + // Lint task(s). + grunt.registerTask('lint', ['jshint', 'csslint', 'i18nlint:client', 'i18nlint:server']); + grunt.registerTask('lint:tests', ['jshint:allTests']); + + // Build task(s). + grunt.registerTask('build', ['lint', 'loadConfig', 'cssmin', 'ngAnnotate', 'uglify', 'html2js:main', 'html2js:forms']); + + //Setup task(s). + grunt.registerTask('setup', ['execute']); + + // Test task(s). + grunt.registerTask('test', ['lint:tests', 'test:server', 'test:client']); + grunt.registerTask('test:server', ['lint:tests', 'env:test', 'mochaTest']); + grunt.registerTask('test:client', ['lint:tests', 'html2js:main', 'html2js:forms', 'env:test', 'karma:unit']); + + grunt.registerTask('testdebug', ['env:test', 'karma:debug']); +}; diff --git a/package-lock.json b/package-lock.json index fcb91c18..da5ada29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -505,11 +505,6 @@ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" }, - "bluebird": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", - "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs=" - }, "body-parser": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", @@ -3866,75 +3861,6 @@ "integrity": "sha1-24qsR/+Ap9+CtMgsEm/olwhwYm8=", "dev": true }, - "email-verification": { - "version": "github:tellform/node-email-verification#8b179f34e0943c389b2058c9ec1e6d2135a72857", - "requires": { - "mongoose": "3.8.40", - "nodemailer": "4.0.1", - "rand-token": "0.2.1" - }, - "dependencies": { - "bson": { - "version": "0.2.22", - "resolved": "https://registry.npmjs.org/bson/-/bson-0.2.22.tgz", - "integrity": "sha1-/NoQPybQwHTVpS1Qkn24D9ArSzk=", - "requires": { - "nan": "1.8.4" - } - }, - "mongodb": { - "version": "1.4.38", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-1.4.38.tgz", - "integrity": "sha1-jP/WGBAK86RkiplUmL/Py07Yq9I=", - "requires": { - "bson": "0.2.22", - "kerberos": "0.0.11", - "readable-stream": "2.3.3" - } - }, - "mongoose": { - "version": "3.8.40", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-3.8.40.tgz", - "integrity": "sha1-Ay9bpVWCSXVZqHwfP0s5WcJkBqc=", - "requires": { - "hooks": "0.2.1", - "mongodb": "1.4.38", - "mpath": "0.1.1", - "mpromise": "0.4.3", - "mquery": "1.10.0", - "ms": "0.1.0", - "muri": "1.1.0", - "regexp-clone": "0.0.1", - "sliced": "0.0.5" - } - }, - "ms": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.1.0.tgz", - "integrity": "sha1-8h+sSQ2vHXZn/RgP6QdzicyUQrI=" - }, - "nan": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", - "integrity": "sha1-PHa1OC6rM+RLdY0oE8qdkuk0LzQ=" - }, - "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==", - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - } - } - }, "encodeurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", @@ -6261,14 +6187,6 @@ "jade": "1.11.0" } }, - "grunt-i18nlint": { - "version": "github:jwarby/grunt-i18nlint#6b398f775c8ca881a16f45a3cb94c5b79ee11e20", - "dev": true, - "requires": { - "chalk": "1.1.3", - "i18n-lint": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1" - } - }, "grunt-karma": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-0.12.2.tgz", @@ -6695,11 +6613,6 @@ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" }, - "hooks": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/hooks/-/hooks-0.2.1.tgz", - "integrity": "sha1-D1kbGzRL3LPfWXc/Yvu6+Fv0Aos=" - }, "hooks-fixed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-1.1.0.tgz", @@ -6854,6 +6767,11 @@ "sshpk": "1.13.1" } }, + "https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", + "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" + }, "https-proxy-agent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", @@ -6889,48 +6807,6 @@ "sprintf-js": "1.1.1" } }, - "i18n-lint": { - "version": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1", - "dev": true, - "requires": { - "chalk": "1.1.3", - "commander": "2.8.1", - "glob": "5.0.15", - "htmlparser2": "3.8.3", - "lodash": "3.10.1", - "node.extend": "1.1.6" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "1.1.8" - } - } - } - }, "iconv-lite": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", @@ -7115,12 +6991,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", "integrity": "sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=" }, - "is": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", - "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=", - "dev": true - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7935,23 +7805,6 @@ "phantomjs-prebuilt": "2.1.15" } }, - "kerberos": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-0.0.11.tgz", - "integrity": "sha1-yymJHCHCKsGV8xQLl90SIE/qfcI=", - "optional": true, - "requires": { - "nan": "1.8.4" - }, - "dependencies": { - "nan": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", - "integrity": "sha1-PHa1OC6rM+RLdY0oE8qdkuk0LzQ=", - "optional": true - } - } - }, "kew": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -9022,42 +8875,6 @@ "resolved": "https://registry.npmjs.org/mout/-/mout-1.1.0.tgz", "integrity": "sha512-XsP0vf4As6BfqglxZqbqQ8SR6KQot2AgxvR0gG+WtUkf90vUXchMOZQtPf/Hml1rEffJupqL/tIrU6EYhsUQjw==" }, - "mpath": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.1.1.tgz", - "integrity": "sha1-I9qFK3wjLuCX9HWdKcDunNItXkY=" - }, - "mpromise": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.4.3.tgz", - "integrity": "sha1-7cR6daKhd7DpOCc121Lb7DgIzDM=" - }, - "mquery": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-1.10.0.tgz", - "integrity": "sha1-hgPwKwtSTResBTmoWZYSTuF7fLM=", - "requires": { - "bluebird": "2.10.2", - "debug": "2.2.0", - "regexp-clone": "0.0.1", - "sliced": "0.0.5" - }, - "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - } - } - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -9230,15 +9047,6 @@ "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" }, - "node.extend": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz", - "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", - "dev": true, - "requires": { - "is": "3.2.1" - } - }, "nodemailer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.0.1.tgz", @@ -10749,11 +10557,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, - "rand-token": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-0.2.1.tgz", - "integrity": "sha1-3GfIEjMGyRInstw/W+pz0wE3YiY=" - }, "random-js": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/random-js/-/random-js-1.0.8.tgz", @@ -11370,11 +11173,6 @@ "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", "integrity": "sha1-Krt1qt453rXMgVzhDmGRFkhQuvA=" }, - "sliced": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", - "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" - }, "smart-buffer": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", diff --git a/package.json b/package.json index 63c6aa5a..9b3b4e17 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "grunt-html2js": "~0.3.5", "grunt-ng-annotate": "~1.0.1", "helmet": "3.5.0", + "https": "^1.0.0", "i18n": "^0.8.3", "jit-grunt": "^0.9.1", "lodash": "^4.17.4", diff --git a/server.js b/server.js index 78aeefa6..d2b091ad 100755 --- a/server.js +++ b/server.js @@ -1,7 +1,10 @@ + 'use strict'; /** * Module dependencies. */ +var fs = require('fs') +var https = require('https') require('dotenv').config({path: './.env'}); @@ -9,6 +12,9 @@ if(!process.env.NODE_ENV){ process.env.NODE_ENV = 'development'; } +var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') +var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') + require('events').EventEmitter.prototype._maxListeners = 0; @@ -35,7 +41,7 @@ mongoose.connection.on('error', function (err) { }); const smtpTransport = nodemailer.createTransport(config.mailer.options); - +console.log("GOT PAST MONGOOSE") // verify connection configuration on startup smtpTransport.verify(function(error, success) { if (error) { @@ -61,10 +67,16 @@ if (process.env.CREATE_ADMIN_ACCOUNT === 'TRUE') { // Bootstrap passport config require('./config/passport')(); - +console.log("Got past passport!") // Start the app by listening on -app.listen(config.port); +app.listen(80, () => console.log("Listening")); +console.log("Got past Listen1") +//https.createServer({key: pkey, cert: cert}, app).listen(config.port, () => { +// console.log('Listening on 443') +//}) + +console.log("GOT PAST LISTEN"); // Expose app exports = module.exports = app; diff --git a/test.js b/test.js new file mode 100644 index 00000000..10251638 --- /dev/null +++ b/test.js @@ -0,0 +1,11 @@ +var fs = require('fs') +var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') +var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') + +var express = require('express') +var app = express() +app.get('/', (q, s) => s.send('hello')) +app.listen(80) + +var https = require('https') +https.createServer({key: pkey, cert: cert}, app).listen(443) From ca875ed01d57c69c0001719bda5375f94db4c46e Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 20:30:44 +0000 Subject: [PATCH 11/45] disable signups --- config/express.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config/express.js b/config/express.js index 05fe2881..2aba4179 100755 --- a/config/express.js +++ b/config/express.js @@ -70,7 +70,7 @@ module.exports = function(db) { // Setting application local variables app.locals.google_analytics_id = config.app.google_analytics_id; app.locals.title = config.app.title; - app.locals.signupDisabled = config.signupDisabled; + app.locals.signupDisabled = true; //config.signupDisabled; app.locals.description = config.app.description; app.locals.keywords = config.app.keywords; @@ -117,6 +117,10 @@ module.exports = function(db) { return next(); } + if (urlPath.indexOf('signup') > -1) { + res.send(400); return; + } + if (urlPath.indexOf('users') > -1 && urlPath.indexOf('me') > -1) { return next(); } From 623cb865c23c994ab74e0ee8abe2563d8b284a6f Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 20:35:09 +0000 Subject: [PATCH 12/45] fix readme --- README.md | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index afa7cd57..cfb591df 100755 --- a/README.md +++ b/README.md @@ -1,14 +1,24 @@ -TellForm 2.1.0 +TellForm 2.1.EB ======== -[![Build Status](https://travis-ci.org/tellform/tellform.svg?branch=master)](https://travis-ci.org/tellform/tellform) -![Project Status](https://img.shields.io/badge/status-2.1.0-green.svg) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3491e86eb7194308b8fc80711d736ede)](https://www.codacy.com/app/david-baldwin/tellform?utm_source=github.com&utm_medium=referral&utm_content=tellform/tellform&utm_campaign=Badge_Grade) -[![Gitter](https://badges.gitter.im/tellform/Lobby.svg)](https://gitter.im/tellform/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +## EarlyBird version -> An *opensource alternative to TypeForm* that can create [stunning mobile-ready forms](https://tellform.com/examples) , surveys and questionnaires. +We've made some changes and will continue to be changing this particular fork of TellForm to comply with our guidelines. -[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/tellform/tellform/tree/master) +Below you will find a changelog. + +## Changelog + +(newest to oldest) + +- disable signups (turn on disable flag, hardcode in automatic 400 if the URL contains `signup`) +- build in HTTPS support in `config/express.js` +- fix JSEP import so form appears + + +======== +======== +======== ## Table of Contents From 45f8fe7a02387fb182cc7d1407169ba0d017eb87 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 21:34:26 +0000 Subject: [PATCH 13/45] fix form styling --- app/views/form.server.view.pug | 22 ++++++++++++++++++++++ app/views/verification.email.view.pug | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 61bfffe8..0a11e449 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -35,6 +35,28 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') background: url('/static/dist/page-loader.gif') 50% 35% no-repeat rgb(249,249,249); background-size: 50px 50px; } + body { + font-family: 'Raleway' !important; + } + label.btn-default { + font-size: 14pt !important; + width: 10% !important; + padding-right: 30px; + background: none !important; + color: rgba(0,0,0,0.3) !important; + border-color: rgba(0,0,0,0.3) !important; + } + label.btn-default:hover, label.btn-default:visited, label.btn-default:active { + color: #000 !important; + background: none !important; + border-color: #000 !important; + font-weight: 400 !important; + } + .navbar { display: none !important; } + #submit_field { + height: auto !important; padding-bottom: 2% !important; + } + // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') diff --git a/app/views/verification.email.view.pug b/app/views/verification.email.view.pug index fb225507..2810481d 100644 --- a/app/views/verification.email.view.pug +++ b/app/views/verification.email.view.pug @@ -30,7 +30,7 @@ html p a(href='http://${URL}')=__('VERIFICATION_EMAIL_LINK_TEXT') p=__('VERIFICATION_EMAIL_PARAGRAPH_2') - a(href='mailto:team@tellform.com') + a(href='mailto:hello@earlybird.camp') | team@tellform.com p=__('EMAIL_SIGNATURE') td(width='36') From 7afc7eef8749c2dc877088c8549b8ac9589e24c8 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 21:36:17 +0000 Subject: [PATCH 14/45] update changelog --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index cfb591df..a2873f56 100755 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Below you will find a changelog. (newest to oldest) +- fix form styling so it isn't terrible (use Raleway, change bg color) - disable signups (turn on disable flag, hardcode in automatic 400 if the URL contains `signup`) - build in HTTPS support in `config/express.js` - fix JSEP import so form appears From 2835280ff368e5aa9635712112b2db5f62d526a3 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Mon, 9 Apr 2018 21:41:37 +0000 Subject: [PATCH 15/45] fix mobile responsiveness --- README.md | 1 + app/views/form.server.view.pug | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a2873f56..c5d55907 100755 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Below you will find a changelog. (newest to oldest) +- fix responsiveness and mobile design - fix form styling so it isn't terrible (use Raleway, change bg color) - disable signups (turn on disable flag, hardcode in automatic 400 if the URL contains `signup`) - build in HTTPS support in `config/express.js` diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 0a11e449..e91d7406 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -40,12 +40,15 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') } label.btn-default { font-size: 14pt !important; - width: 10% !important; + width: 6em !important; padding-right: 30px; background: none !important; color: rgba(0,0,0,0.3) !important; border-color: rgba(0,0,0,0.3) !important; } + .field-directive { + margin-right: 10px !important; margin-left: 10px !important; + } label.btn-default:hover, label.btn-default:visited, label.btn-default:active { color: #000 !important; background: none !important; From 9a9c1ae02ec7176c8a38f0556f2f92732d43b077 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 10 Apr 2018 00:35:12 +0000 Subject: [PATCH 16/45] fix styling on form --- app/views/form.server.view.pug | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index e91d7406..d1c26b02 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -3,6 +3,8 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') head title=title // General META + link(rel='stylesheet', type='text/css', href='https://fonts.googleapis.com/css?family=Raleway') + meta(charset='utf-8') meta(http-equiv='Content-type', content='text/html;charset=UTF-8') meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1') @@ -59,6 +61,15 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') #submit_field { height: auto !important; padding-bottom: 2% !important; } + #submit_field > div.text-left { + background-color: #f8f8f8 !important; + color: #755 !important; + margin-top: 12px; + text-align: center !important; + } + #submit_field > button { + background-color: #755 !important; + } // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') From f99049d155677f087b90555a0066eded687db678 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:01:58 +0300 Subject: [PATCH 17/45] Revert "fix jsep import, add fillin for HTTPS server, remove debug flag" This reverts commit 78082f7152204158a1b7548bdb0dfb1ba49c097d. --- app/views/form.server.view.pug | 3 + app/views/index.server.view.pug | 2 +- app/views/redoc.server.view.pug | 1 + config/express.js | 11 +- gruntfile.js | 2 +- gruntfile.js.save | 354 -------------------------------- package-lock.json | 212 ++++++++++++++++++- package.json | 1 - server.js | 18 +- test.js | 11 - 10 files changed, 217 insertions(+), 398 deletions(-) delete mode 100755 gruntfile.js.save delete mode 100644 test.js diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index d1c26b02..9264b36a 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -95,9 +95,12 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') script(type='text/javascript'). socketUrl = "!{socketUrl}" +<<<<<<< HEAD //JSEP script(src='https://cdn.jsdelivr.net/npm/jsep@0.3.4/build/jsep.min.js', type='text/javascript') +======= +>>>>>>> parent of 78082f71... fix jsep import, add fillin for HTTPS server, remove debug flag script(src='/static/lib/jquery/dist/jquery.min.js', type='text/javascript') link(rel='stylesheet', href='/static/lib/font-awesome/css/font-awesome.min.css') link(rel='stylesheet', href='/static/lib/bootstrap/dist/css/bootstrap.min.css') diff --git a/app/views/index.server.view.pug b/app/views/index.server.view.pug index c26cdc99..10c29935 100644 --- a/app/views/index.server.view.pug +++ b/app/views/index.server.view.pug @@ -52,4 +52,4 @@ block content script(src='https://cdn.ravenjs.com/2.3.0/angular/raven.min.js') - script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install(); + script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install(); \ No newline at end of file diff --git a/app/views/redoc.server.view.pug b/app/views/redoc.server.view.pug index dde17ad1..c850dc96 100644 --- a/app/views/redoc.server.view.pug +++ b/app/views/redoc.server.view.pug @@ -32,6 +32,7 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900') + //Application CSS Files each cssFile in cssFiles link(rel='stylesheet', href='#{cssFile}') diff --git a/config/express.js b/config/express.js index 2aba4179..1b0bb1d9 100755 --- a/config/express.js +++ b/config/express.js @@ -48,18 +48,9 @@ function containsAnySupportedLanguages(preferredLanguages){ return null; } -var fs = require('fs') -var https = require('https') -var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') -var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') - module.exports = function(db) { - // Initialize express app var app = express(); - var serv = https.createServer({key: pkey, cert: cert}, app) - serv.listen(443) - app.get('/form', (q, s) => s.redirect('https://register.earlybird.camp/view/#!/forms/5acb2d8e541901c14fa0d907')) var url = require('url'); // Globbing model files @@ -369,5 +360,5 @@ module.exports = function(db) { app = configureSocketIO(app, db); // Return Express server instance - return app + return app; }; diff --git a/gruntfile.js b/gruntfile.js index eeb2c7ff..0b5539b9 100755 --- a/gruntfile.js +++ b/gruntfile.js @@ -138,7 +138,7 @@ module.exports = function(grunt) { dev: { script: 'server.js', options: { - //nodeArgs: ['--debug'], + nodeArgs: ['--debug'], ext: 'js,html', watch: watchFiles.serverViews.concat(watchFiles.serverJS) } diff --git a/gruntfile.js.save b/gruntfile.js.save deleted file mode 100755 index 79585c25..00000000 --- a/gruntfile.js.save +++ /dev/null @@ -1,354 +0,0 @@ -'use strict'; - -var bowerArray = ['public/lib/angular/angular.min.js', - 'public/lib/angular-scroll/angular-scroll.min.js', - 'public/lib/angular-ui-select/dist/select.min.js', - 'public/lib/v-button/dist/v-button.min.js', - 'public/lib/angular-resource/angular-resource.min.js', - 'public/lib/angular-ui-router/release/angular-ui-router.min.js', - 'public/lib/angular-bootstrap/ui-bootstrap-tpls.js', - 'public/lib/angular-translate/angular-translate.min.js', - 'public/lib/ng-file-upload/ng-file-upload-all.min.js', - 'public/lib/angular-ui-date/src/date.js', - 'public/lib/angular-input-stars/angular-input-stars.js', - 'public/lib/jsep/build/jsep.min.js', - 'public/lib/raven-js/dist/raven.min.js', - 'public/lib/lodash/lodash.min.js', - 'public/lib/mobile-detect/mobile-detect.js', - 'public/lib/js-yaml/dist/js-yaml.js', - 'public/lib/angular-sanitize/angular-sanitize.min.js']; - -module.exports = function(grunt) { - require('jit-grunt')(grunt); - - // Unified Watch Object - var watchFiles = { - serverViews: ['app/views/**/*.pug'], - serverJS: ['gruntfile.js', 'server.js', 'config/**/*.js', 'app/**/*.js', '!app/tests/'], - - clientViews: ['public/modules/**/*.html', 'public/form_modules/forms/base/**/*.html', '!public/modules/forms/base/**/*.html',], - clientJS: ['public/form_modules/**/*.js', 'public/modules/**/*.js'], - clientCSS: ['public/modules/**/*.css'], - - serverTests: ['app/tests/**/*.js'], - clientTests: ['public/modules/**/tests/*.js'] - }; - - watchFiles.allTests = watchFiles.serverTests.concat(watchFiles.clientTests); - - // Project Configuration - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - watch: { - serverViews: { - files: watchFiles.serverViews, - options: { - livereload: true, - spawn: false - } - }, - serverJS: { - files: watchFiles.serverJS, - tasks: ['newer:jshint'], - options: { - livereload: true, - spawn: false - } - }, - clientViews: { - files: watchFiles.clientViews, - tasks: ['html2js:main'], - options: { - livereload: true, - spawn: false - } - }, - clientJS: { - files: watchFiles.clientJS, - tasks: ['newer:jshint'], - options: { - livereload: true, - spawn: false - } - }, - clientCSS: { - files: watchFiles.clientCSS, - tasks: ['newer:csslint'], - options: { - livereload: true, - spawn: false - } - }, - mochaTests: { - files: watchFiles.serverTests, - tasks: ['test:server'] - } - }, - jshint: { - all: { - src: watchFiles.clientJS.concat(watchFiles.serverJS), - options: { - jshintrc: true - } - }, - allTests: { - src: watchFiles.allTests, - options: { - jshintrc: true - } - } - }, - csslint: { - options: { - csslintrc: '.csslintrc' - }, - all: { - src: watchFiles.clientCSS - } - }, - uglify: { - productionAdmin: { - options: { - compress: true, - mangled: true - }, - files: { - 'public/dist/application.min.js': 'public/dist/application.js', - 'public/dist/form-application.min.js': 'public/dist/form-application.js' - } - }, - productionForms: { - options: { - mangled: true, - compress: true - }, - files: { - 'public/dist/form-vendor.min.js': bowerArray - } - } - }, - cssmin: { - combine: { - files: { - 'public/dist/application.min.css': '<%= applicationCSSFiles %>' - } - } - }, - nodemon: { - dev: { - script: 'server.js', - options: { - - ext: 'js,html', - watch: watchFiles.serverViews.concat(watchFiles.serverJS) - } - } - }, - ngAnnotate: { - options:{ - add: true, - remove: true - }, - production: { - files: { - 'public/dist/application.js': '<%= applicationJavaScriptFiles %>', - 'public/dist/form-application.js': '<%= formApplicationJavaScriptFiles %>' - } - } - }, - concurrent: { - default: ['nodemon', 'watch'], - debug: ['nodemon', 'watch'], - options: { - logConcurrentOutput: true, - limit: 10 - } - }, - env: { - src: '.env', - - test: { - NODE_ENV: 'test', - }, - secure: { - NODE_ENV: 'secure', - }, - production: { - NODE_ENV: 'production', - }, - dev: { - NODE_ENV: 'development', - } - }, - mochaTest: { - src: watchFiles.serverTests, - options: { - reporter: 'spec', - quiet: false, - require: 'server.js', - ui: 'bdd', - debug: false - } - }, - karma: { - unit: { - configFile: 'karma.conf.js', - singleRun: true - }, - debug: { - configFile: 'karma.conf.js', - browserConsoleLogOptions: { - level: 'log', - terminal: true - }, - singleRun: true - } - }, - protractor: { - options: { - configFile: 'protractor.conf.js', - keepAlive: true, - noColor: false - }, - e2e: { - options: { - args: {} // Target-specific arguments - } - } - }, - mocha_istanbul: { - coverage: { - src: watchFiles.allTests, // a folder works nicely - options: { - mask: '*.test.js', - require: ['server.js'] - } - }, - coverageClient: { - src: watchFiles.clientTests, // specifying file patterns works as well - options: { - coverageFolder: 'coverageClient', - mask: '*.test.js', - require: ['server.js'] - } - }, - coverageServer: { - src: watchFiles.serverTests, - options: { - coverageFolder: 'coverageServer', - mask: '*.test.js', - require: ['server.js'] - } - }, - coveralls: { - src: watchFiles.allTests, // multiple folders also works - options: { - require: ['server.js'], - coverage: true, // this will make the grunt.event.on('coverage') event listener to be triggered - root: './lib', // define where the cover task should consider the root of libraries that are covered by tests - reportFormats: ['cobertura','lcovonly'] - } - } - }, - istanbul_check_coverage: { - default: { - options: { - coverageFolder: 'coverage*', // will check both coverage folders and merge the coverage results - check: { - lines: 80, - statements: 80 - } - } - } - }, - html2js: { - options: { - base: 'public', - watch: true, - singleModule: true, - useStrict: true, - htmlmin: { - collapseBooleanAttributes: true, - collapseWhitespace: true, - removeAttributeQuotes: true, - removeComments: true, - removeEmptyAttributes: true, - removeRedundantAttributes: true - } - }, - forms: { - options: { - module: 'TellForm-Form.form_templates' - }, - src: ['public/form_modules/**/views/**.html', 'public/form_modules/**/views/**/*.html'], - dest: 'public/dist/form_populate_template_cache.js' - }, - main: { - options: { - module: 'TellForm.templates' - }, - src: ['public/modules/**/views/**.html', 'public/modules/**/views/**/*.html', 'public/form_modules/forms/base/**/*.html', '!public/modules/forms/base/**/*.html'], - dest: 'public/dist/populate_template_cache.js' - } - }, - execute: { - target: { - src: ['./scripts/setup.js'] - } - }, - }); - - grunt.event.on('coverage', function(lcov, done){ - var coveralls = require('coveralls'); - coveralls.handleInput(lcov, function(err){ - if (err) { - grunt.log.error('Failed to submit lcov file to coveralls: ' + err); - return done(err); - } - grunt.verbose.ok('Successfully submitted lcov file to coveralls'); - done(); - }); - }); - - // Making grunt default to force in order not to break the project. - grunt.option('force', true); - - // A Task for loading the configuration object - grunt.task.registerTask('loadConfig', 'Task that loads the config into a grunt option.', function() { - require('./config/init')(); - var config = require('./config/config'); - grunt.config.set('applicationJavaScriptFiles', config.assets.js); - grunt.config.set('formApplicationJavaScriptFiles', config.assets.form_js); - grunt.config.set('applicationCSSFiles', config.assets.css); - }); - - // Code coverage tasks. - grunt.registerTask('coveralls', ['env:test','mocha_istanbul:coveralls']); - grunt.registerTask('coverage', ['env:test', 'mocha_istanbul:coverage']); - grunt.registerTask('coverage:client', ['env:test', 'mocha_istanbul:coverageClient']); - grunt.registerTask('coverage:server', ['env:test', 'mocha_istanbul:coverageServer']); - - // Default task(s). - grunt.registerTask('default', ['lint', 'loadConfig', 'ngAnnotate', 'uglify', 'html2js:main', 'html2js:forms', 'env', 'concurrent:default']); - grunt.registerTask('dev', ['lint', 'html2js:main', 'html2js:forms', 'env:dev', 'concurrent:default']); - - // Debug task. - grunt.registerTask('debug', ['lint', 'html2js:main', 'html2js:forms', 'concurrent:debug']); - - // Lint task(s). - grunt.registerTask('lint', ['jshint', 'csslint', 'i18nlint:client', 'i18nlint:server']); - grunt.registerTask('lint:tests', ['jshint:allTests']); - - // Build task(s). - grunt.registerTask('build', ['lint', 'loadConfig', 'cssmin', 'ngAnnotate', 'uglify', 'html2js:main', 'html2js:forms']); - - //Setup task(s). - grunt.registerTask('setup', ['execute']); - - // Test task(s). - grunt.registerTask('test', ['lint:tests', 'test:server', 'test:client']); - grunt.registerTask('test:server', ['lint:tests', 'env:test', 'mochaTest']); - grunt.registerTask('test:client', ['lint:tests', 'html2js:main', 'html2js:forms', 'env:test', 'karma:unit']); - - grunt.registerTask('testdebug', ['env:test', 'karma:debug']); -}; diff --git a/package-lock.json b/package-lock.json index da5ada29..fcb91c18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -505,6 +505,11 @@ "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=" }, + "bluebird": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", + "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs=" + }, "body-parser": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", @@ -3861,6 +3866,75 @@ "integrity": "sha1-24qsR/+Ap9+CtMgsEm/olwhwYm8=", "dev": true }, + "email-verification": { + "version": "github:tellform/node-email-verification#8b179f34e0943c389b2058c9ec1e6d2135a72857", + "requires": { + "mongoose": "3.8.40", + "nodemailer": "4.0.1", + "rand-token": "0.2.1" + }, + "dependencies": { + "bson": { + "version": "0.2.22", + "resolved": "https://registry.npmjs.org/bson/-/bson-0.2.22.tgz", + "integrity": "sha1-/NoQPybQwHTVpS1Qkn24D9ArSzk=", + "requires": { + "nan": "1.8.4" + } + }, + "mongodb": { + "version": "1.4.38", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-1.4.38.tgz", + "integrity": "sha1-jP/WGBAK86RkiplUmL/Py07Yq9I=", + "requires": { + "bson": "0.2.22", + "kerberos": "0.0.11", + "readable-stream": "2.3.3" + } + }, + "mongoose": { + "version": "3.8.40", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-3.8.40.tgz", + "integrity": "sha1-Ay9bpVWCSXVZqHwfP0s5WcJkBqc=", + "requires": { + "hooks": "0.2.1", + "mongodb": "1.4.38", + "mpath": "0.1.1", + "mpromise": "0.4.3", + "mquery": "1.10.0", + "ms": "0.1.0", + "muri": "1.1.0", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + } + }, + "ms": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.1.0.tgz", + "integrity": "sha1-8h+sSQ2vHXZn/RgP6QdzicyUQrI=" + }, + "nan": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", + "integrity": "sha1-PHa1OC6rM+RLdY0oE8qdkuk0LzQ=" + }, + "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==", + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + } + } + }, "encodeurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", @@ -6187,6 +6261,14 @@ "jade": "1.11.0" } }, + "grunt-i18nlint": { + "version": "github:jwarby/grunt-i18nlint#6b398f775c8ca881a16f45a3cb94c5b79ee11e20", + "dev": true, + "requires": { + "chalk": "1.1.3", + "i18n-lint": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1" + } + }, "grunt-karma": { "version": "0.12.2", "resolved": "https://registry.npmjs.org/grunt-karma/-/grunt-karma-0.12.2.tgz", @@ -6613,6 +6695,11 @@ "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=" }, + "hooks": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/hooks/-/hooks-0.2.1.tgz", + "integrity": "sha1-D1kbGzRL3LPfWXc/Yvu6+Fv0Aos=" + }, "hooks-fixed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-1.1.0.tgz", @@ -6767,11 +6854,6 @@ "sshpk": "1.13.1" } }, - "https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" - }, "https-proxy-agent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", @@ -6807,6 +6889,48 @@ "sprintf-js": "1.1.1" } }, + "i18n-lint": { + "version": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.8.1", + "glob": "5.0.15", + "htmlparser2": "3.8.3", + "lodash": "3.10.1", + "node.extend": "1.1.6" + }, + "dependencies": { + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + } + } + }, "iconv-lite": { "version": "0.2.11", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz", @@ -6991,6 +7115,12 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", "integrity": "sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=" }, + "is": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is/-/is-3.2.1.tgz", + "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7805,6 +7935,23 @@ "phantomjs-prebuilt": "2.1.15" } }, + "kerberos": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-0.0.11.tgz", + "integrity": "sha1-yymJHCHCKsGV8xQLl90SIE/qfcI=", + "optional": true, + "requires": { + "nan": "1.8.4" + }, + "dependencies": { + "nan": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", + "integrity": "sha1-PHa1OC6rM+RLdY0oE8qdkuk0LzQ=", + "optional": true + } + } + }, "kew": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -8875,6 +9022,42 @@ "resolved": "https://registry.npmjs.org/mout/-/mout-1.1.0.tgz", "integrity": "sha512-XsP0vf4As6BfqglxZqbqQ8SR6KQot2AgxvR0gG+WtUkf90vUXchMOZQtPf/Hml1rEffJupqL/tIrU6EYhsUQjw==" }, + "mpath": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.1.1.tgz", + "integrity": "sha1-I9qFK3wjLuCX9HWdKcDunNItXkY=" + }, + "mpromise": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/mpromise/-/mpromise-0.4.3.tgz", + "integrity": "sha1-7cR6daKhd7DpOCc121Lb7DgIzDM=" + }, + "mquery": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-1.10.0.tgz", + "integrity": "sha1-hgPwKwtSTResBTmoWZYSTuF7fLM=", + "requires": { + "bluebird": "2.10.2", + "debug": "2.2.0", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -9047,6 +9230,15 @@ "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.0.0.tgz", "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" }, + "node.extend": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.6.tgz", + "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", + "dev": true, + "requires": { + "is": "3.2.1" + } + }, "nodemailer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.0.1.tgz", @@ -10557,6 +10749,11 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, + "rand-token": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-0.2.1.tgz", + "integrity": "sha1-3GfIEjMGyRInstw/W+pz0wE3YiY=" + }, "random-js": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/random-js/-/random-js-1.0.8.tgz", @@ -11173,6 +11370,11 @@ "resolved": "https://registry.npmjs.org/simple-is/-/simple-is-0.2.0.tgz", "integrity": "sha1-Krt1qt453rXMgVzhDmGRFkhQuvA=" }, + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" + }, "smart-buffer": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz", diff --git a/package.json b/package.json index 9b3b4e17..63c6aa5a 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "grunt-html2js": "~0.3.5", "grunt-ng-annotate": "~1.0.1", "helmet": "3.5.0", - "https": "^1.0.0", "i18n": "^0.8.3", "jit-grunt": "^0.9.1", "lodash": "^4.17.4", diff --git a/server.js b/server.js index d2b091ad..78aeefa6 100755 --- a/server.js +++ b/server.js @@ -1,10 +1,7 @@ - 'use strict'; /** * Module dependencies. */ -var fs = require('fs') -var https = require('https') require('dotenv').config({path: './.env'}); @@ -12,9 +9,6 @@ if(!process.env.NODE_ENV){ process.env.NODE_ENV = 'development'; } -var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') -var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') - require('events').EventEmitter.prototype._maxListeners = 0; @@ -41,7 +35,7 @@ mongoose.connection.on('error', function (err) { }); const smtpTransport = nodemailer.createTransport(config.mailer.options); -console.log("GOT PAST MONGOOSE") + // verify connection configuration on startup smtpTransport.verify(function(error, success) { if (error) { @@ -67,16 +61,10 @@ if (process.env.CREATE_ADMIN_ACCOUNT === 'TRUE') { // Bootstrap passport config require('./config/passport')(); -console.log("Got past passport!") + // Start the app by listening on -app.listen(80, () => console.log("Listening")); -console.log("Got past Listen1") +app.listen(config.port); -//https.createServer({key: pkey, cert: cert}, app).listen(config.port, () => { -// console.log('Listening on 443') -//}) - -console.log("GOT PAST LISTEN"); // Expose app exports = module.exports = app; diff --git a/test.js b/test.js deleted file mode 100644 index 10251638..00000000 --- a/test.js +++ /dev/null @@ -1,11 +0,0 @@ -var fs = require('fs') -var pkey = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/privkey.pem') -var cert = fs.readFileSync('/etc/letsencrypt/live/register.earlybird.camp/fullchain.pem') - -var express = require('express') -var app = express() -app.get('/', (q, s) => s.send('hello')) -app.listen(80) - -var https = require('https') -https.createServer({key: pkey, cert: cert}, app).listen(443) From eaab2ff3396bc0e584777d82a640a837f4e6c718 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:03:15 +0300 Subject: [PATCH 18/45] Revert "disable signups" This reverts commit ca875ed01d57c69c0001719bda5375f94db4c46e. --- config/express.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/config/express.js b/config/express.js index 1b0bb1d9..902beb6f 100755 --- a/config/express.js +++ b/config/express.js @@ -61,7 +61,7 @@ module.exports = function(db) { // Setting application local variables app.locals.google_analytics_id = config.app.google_analytics_id; app.locals.title = config.app.title; - app.locals.signupDisabled = true; //config.signupDisabled; + app.locals.signupDisabled = config.signupDisabled; app.locals.description = config.app.description; app.locals.keywords = config.app.keywords; @@ -108,10 +108,6 @@ module.exports = function(db) { return next(); } - if (urlPath.indexOf('signup') > -1) { - res.send(400); return; - } - if (urlPath.indexOf('users') > -1 && urlPath.indexOf('me') > -1) { return next(); } From 808439cf47048c52f963d679ab3edbe588048c97 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:03:36 +0300 Subject: [PATCH 19/45] Revert "Merge branch 'master' into server" This reverts commit 83ca05e64ba6bb7ce8383d5e385e6b141dfd64ed, reversing changes made to 78082f7152204158a1b7548bdb0dfb1ba49c097d. --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c5d55907..0791ee52 100755 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@ -TellForm 2.1.EB +TellForm 2.1.0 ======== -## EarlyBird version +[![Build Status](https://travis-ci.org/tellform/tellform.svg?branch=master)](https://travis-ci.org/tellform/tellform) +![Project Status](https://img.shields.io/badge/status-2.1.0-green.svg) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3491e86eb7194308b8fc80711d736ede)](https://www.codacy.com/app/david-baldwin/tellform?utm_source=github.com&utm_medium=referral&utm_content=tellform/tellform&utm_campaign=Badge_Grade) +[![Gitter](https://badges.gitter.im/tellform/Lobby.svg)](https://gitter.im/tellform/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -We've made some changes and will continue to be changing this particular fork of TellForm to comply with our guidelines. +> An *opensource alternative to TypeForm* that can create [stunning mobile-ready forms](https://tellform.com/examples) , surveys and questionnaires. +<<<<<<< HEAD Below you will find a changelog. ## Changelog @@ -21,6 +25,9 @@ Below you will find a changelog. ======== ======== ======== +======= +[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/tellform/tellform/tree/master) +>>>>>>> parent of 623cb865... fix readme ## Table of Contents From 985c3c1aae1551279b466472fa636d510e8c4eca Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:04:16 +0300 Subject: [PATCH 20/45] revert custom Earlybird changes to form --- app/views/form.server.view.pug | 3 +++ app/views/verification.email.view.pug | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 9264b36a..f27809f9 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -37,6 +37,7 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') background: url('/static/dist/page-loader.gif') 50% 35% no-repeat rgb(249,249,249); background-size: 50px 50px; } +<<<<<<< HEAD body { font-family: 'Raleway' !important; } @@ -71,6 +72,8 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') background-color: #755 !important; } +======= +>>>>>>> parent of 45f8fe7a... fix form styling // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') diff --git a/app/views/verification.email.view.pug b/app/views/verification.email.view.pug index 2810481d..fb225507 100644 --- a/app/views/verification.email.view.pug +++ b/app/views/verification.email.view.pug @@ -30,7 +30,7 @@ html p a(href='http://${URL}')=__('VERIFICATION_EMAIL_LINK_TEXT') p=__('VERIFICATION_EMAIL_PARAGRAPH_2') - a(href='mailto:hello@earlybird.camp') + a(href='mailto:team@tellform.com') | team@tellform.com p=__('EMAIL_SIGNATURE') td(width='36') From 65fd117b04e440822017927e748c19a5a46b67fe Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:05:05 +0300 Subject: [PATCH 21/45] revert changelog --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0791ee52..ccc824c1 100755 --- a/README.md +++ b/README.md @@ -15,8 +15,11 @@ Below you will find a changelog. (newest to oldest) +<<<<<<< HEAD - fix responsiveness and mobile design - fix form styling so it isn't terrible (use Raleway, change bg color) +======= +>>>>>>> parent of 7afc7eef... update changelog - disable signups (turn on disable flag, hardcode in automatic 400 if the URL contains `signup`) - build in HTTPS support in `config/express.js` - fix JSEP import so form appears From 0f2cf42cebe839f10ce9f836498af771bd763353 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:05:40 +0300 Subject: [PATCH 22/45] revert changelog --- README.md | 3 +++ app/views/form.server.view.pug | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ccc824c1..b269cf7a 100755 --- a/README.md +++ b/README.md @@ -15,8 +15,11 @@ Below you will find a changelog. (newest to oldest) +<<<<<<< HEAD <<<<<<< HEAD - fix responsiveness and mobile design +======= +>>>>>>> parent of 2835280f... fix mobile responsiveness - fix form styling so it isn't terrible (use Raleway, change bg color) ======= >>>>>>> parent of 7afc7eef... update changelog diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index f27809f9..d74a3897 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -43,15 +43,12 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') } label.btn-default { font-size: 14pt !important; - width: 6em !important; + width: 10% !important; padding-right: 30px; background: none !important; color: rgba(0,0,0,0.3) !important; border-color: rgba(0,0,0,0.3) !important; } - .field-directive { - margin-right: 10px !important; margin-left: 10px !important; - } label.btn-default:hover, label.btn-default:visited, label.btn-default:active { color: #000 !important; background: none !important; From 9715088e86ddcc4de06cd71edf82ba1c36c9eec9 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:05:46 +0300 Subject: [PATCH 23/45] Revert "fix styling on form" This reverts commit 9a9c1ae02ec7176c8a38f0556f2f92732d43b077. --- app/views/form.server.view.pug | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index d74a3897..47d0bd88 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -3,8 +3,6 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') head title=title // General META - link(rel='stylesheet', type='text/css', href='https://fonts.googleapis.com/css?family=Raleway') - meta(charset='utf-8') meta(http-equiv='Content-type', content='text/html;charset=UTF-8') meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1') @@ -59,15 +57,6 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') #submit_field { height: auto !important; padding-bottom: 2% !important; } - #submit_field > div.text-left { - background-color: #f8f8f8 !important; - color: #755 !important; - margin-top: 12px; - text-align: center !important; - } - #submit_field > button { - background-color: #755 !important; - } ======= >>>>>>> parent of 45f8fe7a... fix form styling From 01ac456f62f4d449ac64e837124dcae0021932f2 Mon Sep 17 00:00:00 2001 From: Priansh Shah Date: Tue, 24 Apr 2018 23:15:52 +0300 Subject: [PATCH 24/45] fix merge --- README.md | 25 ------------------------- app/views/form.server.view.pug | 28 ---------------------------- 2 files changed, 53 deletions(-) diff --git a/README.md b/README.md index b269cf7a..afa7cd57 100755 --- a/README.md +++ b/README.md @@ -8,32 +8,7 @@ TellForm 2.1.0 > An *opensource alternative to TypeForm* that can create [stunning mobile-ready forms](https://tellform.com/examples) , surveys and questionnaires. -<<<<<<< HEAD -Below you will find a changelog. - -## Changelog - -(newest to oldest) - -<<<<<<< HEAD -<<<<<<< HEAD -- fix responsiveness and mobile design -======= ->>>>>>> parent of 2835280f... fix mobile responsiveness -- fix form styling so it isn't terrible (use Raleway, change bg color) -======= ->>>>>>> parent of 7afc7eef... update changelog -- disable signups (turn on disable flag, hardcode in automatic 400 if the URL contains `signup`) -- build in HTTPS support in `config/express.js` -- fix JSEP import so form appears - - -======== -======== -======== -======= [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/tellform/tellform/tree/master) ->>>>>>> parent of 623cb865... fix readme ## Table of Contents diff --git a/app/views/form.server.view.pug b/app/views/form.server.view.pug index 47d0bd88..61bfffe8 100644 --- a/app/views/form.server.view.pug +++ b/app/views/form.server.view.pug @@ -35,31 +35,6 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') background: url('/static/dist/page-loader.gif') 50% 35% no-repeat rgb(249,249,249); background-size: 50px 50px; } -<<<<<<< HEAD - body { - font-family: 'Raleway' !important; - } - label.btn-default { - font-size: 14pt !important; - width: 10% !important; - padding-right: 30px; - background: none !important; - color: rgba(0,0,0,0.3) !important; - border-color: rgba(0,0,0,0.3) !important; - } - label.btn-default:hover, label.btn-default:visited, label.btn-default:active { - color: #000 !important; - background: none !important; - border-color: #000 !important; - font-weight: 400 !important; - } - .navbar { display: none !important; } - #submit_field { - height: auto !important; padding-bottom: 2% !important; - } - -======= ->>>>>>> parent of 45f8fe7a... fix form styling // Fav Icon link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon') @@ -84,12 +59,9 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') script(type='text/javascript'). socketUrl = "!{socketUrl}" -<<<<<<< HEAD //JSEP script(src='https://cdn.jsdelivr.net/npm/jsep@0.3.4/build/jsep.min.js', type='text/javascript') -======= ->>>>>>> parent of 78082f71... fix jsep import, add fillin for HTTPS server, remove debug flag script(src='/static/lib/jquery/dist/jquery.min.js', type='text/javascript') link(rel='stylesheet', href='/static/lib/font-awesome/css/font-awesome.min.css') link(rel='stylesheet', href='/static/lib/bootstrap/dist/css/bootstrap.min.css') From 3b0dee9ea31ce5d3eea59703f6096196419f47f9 Mon Sep 17 00:00:00 2001 From: Andrew Caldwell Date: Fri, 6 Jul 2018 13:47:44 -0400 Subject: [PATCH 25/45] stored the logos in docs/ folder and added the logos for tellform backers in readme.md --- README.md | 12 ++++++------ docs/readme_logos/digitalOcean.png | Bin 0 -> 3572 bytes docs/readme_logos/sentryIO.png | Bin 0 -> 2680 bytes docs/readme_logos/sparkPost.png | Bin 0 -> 5332 bytes docs/readme_logos/statusPageIO.png | Bin 0 -> 6583 bytes docs/readme_logos/stickerMule.png | Bin 0 -> 3171 bytes docs/readme_logos/theRoostStand.png | Bin 0 -> 107916 bytes 7 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 docs/readme_logos/digitalOcean.png create mode 100644 docs/readme_logos/sentryIO.png create mode 100644 docs/readme_logos/sparkPost.png create mode 100644 docs/readme_logos/statusPageIO.png create mode 100644 docs/readme_logos/stickerMule.png create mode 100644 docs/readme_logos/theRoostStand.png diff --git a/README.md b/README.md index c5d55907..066c87cb 100755 --- a/README.md +++ b/README.md @@ -216,24 +216,24 @@ TellForm's configuration is done with environment variables. To set an option fo Does your company use TellForm? Help keep the project bug-free and feature rich by [sponsoring the project](https://opencollective.com/tellform#sponsor). - + - + - +

- + - + - + ## Backers diff --git a/docs/readme_logos/digitalOcean.png b/docs/readme_logos/digitalOcean.png new file mode 100644 index 0000000000000000000000000000000000000000..7df2be2b0db6170a07baef19164d25288d4ba918 GIT binary patch literal 3572 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 literal 0 HcmV?d00001 diff --git a/docs/readme_logos/stickerMule.png b/docs/readme_logos/stickerMule.png new file mode 100644 index 0000000000000000000000000000000000000000..ee03354e3681a724499b352466e0570a1d9bc02f GIT binary patch literal 3171 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 literal 0 HcmV?d00001 diff --git a/docs/readme_logos/theRoostStand.png b/docs/readme_logos/theRoostStand.png new file mode 100644 index 0000000000000000000000000000000000000000..6e00a8e734e24c33021b85a15ff3cec18fb16e2f GIT binary patch literal 107916 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%0DmTDK$o8N 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 QRT>83on1yS9sl^RXR$8}sdkVi%1t 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 Ef|0y%mH+?% literal 0 HcmV?d00001 From 52a1ab2bffdf1f066751ea6b9609a1031c6d5ded Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Fri, 31 Aug 2018 15:25:43 -0400 Subject: [PATCH 26/45] got form running and fixed swedish translations --- app/views/500.server.view.pug | 2 +- config/express.js | 33 ++++--- .../forms/base/config/i18n/swedish.js | 90 +++++++++---------- public/modules/core/config/i18n/swedish.js | 2 +- 4 files changed, 69 insertions(+), 58 deletions(-) diff --git a/app/views/500.server.view.pug b/app/views/500.server.view.pug index 3c6fc1b1..7739aabc 100644 --- a/app/views/500.server.view.pug +++ b/app/views/500.server.view.pug @@ -9,4 +9,4 @@ block content div.col-md-12.text-center(style="padding-bottom: 50px;") | #{error} else - div.col-md-12.text-center(style="padding-bottom: 50px;")=__('500_BODY') \ No newline at end of file + div.col-md-12.text-center(style="padding-bottom: 50px;")=__('500_BODY') diff --git a/config/express.js b/config/express.js index 902beb6f..d8441b79 100755 --- a/config/express.js +++ b/config/express.js @@ -186,6 +186,24 @@ module.exports = function(db) { level: 9 })); + //Setup i18n + i18n.configure({ + locales: supportedLanguages, + directory: __dirname + '/locales', + defaultLocale: 'en', + cookie: 'userLang' + }); + + app.use(i18n.init); + + app.use(function(req, res, next) { + // express helper for natively supported engines + res.locals.__ = res.__ = function() { + return i18n.__.apply(req, arguments); + }; + + next(); + }); // Set template engine as defined in the config files app.engine('server.view.pug', consolidate.pug); @@ -248,15 +266,6 @@ module.exports = function(db) { app.use(passport.initialize()); app.use(passport.session()); - //Setup i18n - i18n.configure({ - locales: supportedLanguages, - directory: __dirname + '/locales', - defaultLocale: 'en', - cookie: 'userLang' - }); - - app.use(i18n.init); //Visitor Language Detection app.use(function(req, res, next) { @@ -324,7 +333,8 @@ module.exports = function(db) { // Error page res.status(500).render('500', { - error: err.stack + __: i18n.__, + error: err.stack }); }); @@ -333,7 +343,8 @@ module.exports = function(db) { client.captureError(new Error('Page Not Found')); res.status(404).render('404', { url: req.originalUrl, - error: 'Not Found' + error: 'Not Found', + __: i18n.__ }); }); diff --git a/public/form_modules/forms/base/config/i18n/swedish.js b/public/form_modules/forms/base/config/i18n/swedish.js index 7731cd7d..4dcbe05a 100644 --- a/public/form_modules/forms/base/config/i18n/swedish.js +++ b/public/form_modules/forms/base/config/i18n/swedish.js @@ -1,45 +1,45 @@ -+'use strict'; -+ -+angular.module('view-form').config(['$translateProvider', function ($translateProvider) { -+ -+ $translateProvider.translations('en', { -+ FORM_SUCCESS: 'Formulärsvaret skickades framgångsrikt in!', -+ REVIEW: 'Granska', -+ BACK_TO_FORM: 'Gå tillbaka till Formuläret', -+ EDIT_FORM: 'Ändra denna TellForm', -+ CREATE_FORM: 'Skapa denna TellForm', -+ ADVANCEMENT: '{{done}} utav {{total}} svar', -+ CONTINUE_FORM: 'Fortsätt till Form', -+ REQUIRED: 'krävs', -+ COMPLETING_NEEDED: '{{answers_not_completed}} svar behöver färdigställas', -+ OPTIONAL: 'valfri', -+ ERROR_EMAIL_INVALID: 'Vänligen ange en giltig e-postadress', -+ ERROR_NOT_A_NUMBER: 'Vänligen ange endast giltiga nummer', -+ ERROR_URL_INVALID: 'Vänligen en giltig url', -+ OK: 'OK', -+ ENTER: 'tryck ENTER', -+ YES: 'Ja', -+ NO: 'Nej', -+ NEWLINE: 'tryck SHIFT+ENTER för att skapa ny rad', -+ CONTINUE: 'Fortsätt', -+ LEGAL_ACCEPT: 'Jag accepterar', -+ LEGAL_NO_ACCEPT: 'Jag accepterar inte', -+ DELETE: 'Radera', -+ CANCEL: 'Avbryt', -+ SUBMIT: 'Skicka', -+ UPLOAD_FILE: 'Ladda upp din Fil', -+ Y: 'J', -+ N: 'N', -+ OPTION_PLACEHOLDER: 'Skriv eller välj ett alternativ', -+ ADD_NEW_LINE_INSTR: 'Tryck SHIFT+ENTER för att lägga till ny rad', -+ ERROR: 'Fel', -+ -+ FORM_404_HEADER: '404 - Formulär Existerar Inte', -+ FORM_404_BODY: 'Formuläret du försöker besöka till existerar inte. Ursäkta för det!', -+ -+ FORM_UNAUTHORIZED_HEADER: 'Inte Auktoriserad att Tillgå Formulär', -+ FORM_UNAUTHORIZED_BODY1: 'Formuläret du försöker att besöka är för närvarande privat och inte tillgänglig offentligt.', -+ FORM_UNAUTHORIZED_BODY2: 'Om du är ägaren till formuläret kan du ställa in den till "Offentlig" i panelen "Konfiguration" i formulärets administration.', -+ }); -+ -+}]); +'use strict'; + +angular.module('view-form').config(['$translateProvider', function ($translateProvider) { + + $translateProvider.translations('se', { + FORM_SUCCESS: 'Formulärsvaret skickades framgångsrikt in!', + REVIEW: 'Granska', + BACK_TO_FORM: 'Gå tillbaka till Formuläret', + EDIT_FORM: 'Ändra denna TellForm', + CREATE_FORM: 'Skapa denna TellForm', + ADVANCEMENT: '{{done}} utav {{total}} svar', + CONTINUE_FORM: 'Fortsätt till Form', + REQUIRED: 'krävs', + COMPLETING_NEEDED: '{{answers_not_completed}} svar behöver färdigställas', + OPTIONAL: 'valfri', + ERROR_EMAIL_INVALID: 'Vänligen ange en giltig e-postadress', + ERROR_NOT_A_NUMBER: 'Vänligen ange endast giltiga nummer', + ERROR_URL_INVALID: 'Vänligen en giltig url', + OK: 'OK', + ENTER: 'tryck ENTER', + YES: 'Ja', + NO: 'Nej', + NEWLINE: 'tryck SHIFT+ENTER för att skapa ny rad', + CONTINUE: 'Fortsätt', + LEGAL_ACCEPT: 'Jag accepterar', + LEGAL_NO_ACCEPT: 'Jag accepterar inte', + DELETE: 'Radera', + CANCEL: 'Avbryt', + SUBMIT: 'Skicka', + UPLOAD_FILE: 'Ladda upp din Fil', + Y: 'J', + N: 'N', + OPTION_PLACEHOLDER: 'Skriv eller välj ett alternativ', + ADD_NEW_LINE_INSTR: 'Tryck SHIFT+ENTER för att lägga till ny rad', + ERROR: 'Fel', + + FORM_404_HEADER: '404 - Formulär Existerar Inte', + FORM_404_BODY: 'Formuläret du försöker besöka till existerar inte. Ursäkta för det!', + + FORM_UNAUTHORIZED_HEADER: 'Inte Auktoriserad att Tillgå Formulär', + FORM_UNAUTHORIZED_BODY1: 'Formuläret du försöker att besöka är för närvarande privat och inte tillgänglig offentligt.', + FORM_UNAUTHORIZED_BODY2: 'Om du är ägaren till formuläret kan du ställa in den till "Offentlig" i panelen "Konfiguration" i formulärets administration.', + }); + +}]); diff --git a/public/modules/core/config/i18n/swedish.js b/public/modules/core/config/i18n/swedish.js index 62214482..a8ad0085 100644 --- a/public/modules/core/config/i18n/swedish.js +++ b/public/modules/core/config/i18n/swedish.js @@ -2,7 +2,7 @@ angular.module('core').config(['$translateProvider', function ($translateProvider) { - $translateProvider.translations('en', { + $translateProvider.translations('se', { MENU: 'MENY', SIGNUP_TAB: 'Registrera konto', SIGNIN_TAB: 'Logga In', From 386b6be9688d431bd582cf23dc57ac502d062bdd Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Fri, 31 Aug 2018 15:56:49 -0400 Subject: [PATCH 27/45] got stable release to work --- app/controllers/forms.server.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/forms.server.controller.js b/app/controllers/forms.server.controller.js index c511bcf0..00db3b33 100644 --- a/app/controllers/forms.server.controller.js +++ b/app/controllers/forms.server.controller.js @@ -48,7 +48,7 @@ exports.deleteSubmissions = function(req, res) { exports.createSubmission = function(req, res) { var timeElapsed = 0; - + if(typeof req.body.timeElapsed === 'number'){ timeElapsed = req.body.timeElapsed; } From 19c85f9845ec41703be6fa763fe65f94be67b6c4 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Tue, 11 Sep 2018 16:46:59 -0400 Subject: [PATCH 28/45] fixed css aligment for form multi choice questions --- public/form_modules/forms/base/css/form.css | 1 + 1 file changed, 1 insertion(+) diff --git a/public/form_modules/forms/base/css/form.css b/public/form_modules/forms/base/css/form.css index 2a9665bd..f6b8eadc 100644 --- a/public/form_modules/forms/base/css/form.css +++ b/public/form_modules/forms/base/css/form.css @@ -120,6 +120,7 @@ div.form-fields { vertical-align: top; zoom: 1; width: 16px; + margin-top: 1px; padding: 0; height: 17px; font-size: 12px; From 13d9bd9ecea0689f1e7a4e21ef61ae9dee6739d6 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Tue, 11 Sep 2018 13:59:07 -0700 Subject: [PATCH 29/45] fixed bugs with authentication --- public/modules/core/config/core.client.routes.js | 2 +- public/modules/core/controllers/header.client.controller.js | 4 ++-- public/modules/forms/base/css/form.css | 1 + .../users/controllers/authentication.client.controller.js | 4 ++-- public/modules/users/services/auth.client.service.js | 6 +++--- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/public/modules/core/config/core.client.routes.js b/public/modules/core/config/core.client.routes.js index b7d49fa7..a0cc006b 100755 --- a/public/modules/core/config/core.client.routes.js +++ b/public/modules/core/config/core.client.routes.js @@ -48,7 +48,7 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(['$rootScope' var authenticator, permissions, user; permissions = next && next.data && next.data.permissions ? next.data.permissions : null; - Auth.ensureHasCurrentUser(User); + Auth.ensureHasCurrentUser(); user = Auth.currentUser; if(user){ diff --git a/public/modules/core/controllers/header.client.controller.js b/public/modules/core/controllers/header.client.controller.js index a0c9054d..a84f63d5 100755 --- a/public/modules/core/controllers/header.client.controller.js +++ b/public/modules/core/controllers/header.client.controller.js @@ -5,7 +5,7 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', ' $rootScope.signupDisabled = $window.signupDisabled; - $scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User); + $scope.user = $rootScope.user = Auth.ensureHasCurrentUser(); $scope.authentication = $rootScope.authentication = Auth; @@ -23,7 +23,7 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', ' var promise = User.logout(); promise.then(function() { Auth.logout(); - Auth.ensureHasCurrentUser(User); + Auth.ensureHasCurrentUser(); $scope.user = $rootScope.user = null; $state.go('listForms'); diff --git a/public/modules/forms/base/css/form.css b/public/modules/forms/base/css/form.css index 03537d98..b285d2df 100644 --- a/public/modules/forms/base/css/form.css +++ b/public/modules/forms/base/css/form.css @@ -126,6 +126,7 @@ div.form-fields { border: 1px solid #000; border: 1px solid rgba(0,0,0,.2); margin-right: 7px; + margin-top: 1px; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; diff --git a/public/modules/users/controllers/authentication.client.controller.js b/public/modules/users/controllers/authentication.client.controller.js index fffb453c..c0b1d5a3 100755 --- a/public/modules/users/controllers/authentication.client.controller.js +++ b/public/modules/users/controllers/authentication.client.controller.js @@ -15,7 +15,7 @@ angular.module('users').controller('AuthenticationController', ['$scope', '$loca User.login($scope.credentials).then( function(response) { Auth.login(response); - $scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User); + $scope.user = $rootScope.user = Auth.ensureHasCurrentUser(); if(statesToIgnore.indexOf($state.previous.state.name) === -1) { $state.go($state.previous.state.name, $state.previous.params); @@ -24,7 +24,7 @@ angular.module('users').controller('AuthenticationController', ['$scope', '$loca } }, function(error) { - $rootScope.user = Auth.ensureHasCurrentUser(User); + $rootScope.user = Auth.ensureHasCurrentUser(); $scope.user = $rootScope.user; $scope.error = error; diff --git a/public/modules/users/services/auth.client.service.js b/public/modules/users/services/auth.client.service.js index 806db08f..2c315001 100644 --- a/public/modules/users/services/auth.client.service.js +++ b/public/modules/users/services/auth.client.service.js @@ -1,7 +1,7 @@ 'use strict'; -angular.module('users').factory('Auth', ['$window', - function($window) { +angular.module('users').factory('Auth', ['$window', 'User', + function($window, User) { var userState = { isLoggedIn: false @@ -16,7 +16,7 @@ angular.module('users').factory('Auth', ['$window', // Note: we can't make the User a dependency of Auth // because that would create a circular dependency // Auth <- $http <- $resource <- LoopBackResource <- User <- Auth - ensureHasCurrentUser: function(User) { + ensureHasCurrentUser: function() { if (service._currentUser && service._currentUser.username) { return service._currentUser; } else if ($window.user){ From 5bc0d623a55b77b25bb1fc975cc82171293cdcfd Mon Sep 17 00:00:00 2001 From: LoneRifle Date: Sat, 20 Oct 2018 16:33:12 +0800 Subject: [PATCH 30/45] deleteSubmissions - remove spurious condition `FormSubmission.remove` should not use `admin` as a condition: - the field is not present in the schema or in any created submissions - the user is unlikely to be the admin of a submission Remove this field to facilitate deletes Fixes #315 --- app/controllers/forms.server.controller.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/forms.server.controller.js b/app/controllers/forms.server.controller.js index c511bcf0..14198564 100644 --- a/app/controllers/forms.server.controller.js +++ b/app/controllers/forms.server.controller.js @@ -19,7 +19,7 @@ exports.deleteSubmissions = function(req, res) { var submission_id_list = req.body.deleted_submissions, form = req.form; - FormSubmission.remove({ form: req.form, admin: req.user, _id: {$in: submission_id_list} }, function(err){ + FormSubmission.remove({ form: req.form, _id: {$in: submission_id_list} }, function(err){ if(err){ res.status(400).send({ From ad35ae9215370d1de216d90867d2c693adbe4706 Mon Sep 17 00:00:00 2001 From: Jess Sze Date: Sat, 20 Oct 2018 17:03:24 +0800 Subject: [PATCH 31/45] update markdown --- INSTALLATION_INSTRUCTIONS.md | 51 +----------------------------------- 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/INSTALLATION_INSTRUCTIONS.md b/INSTALLATION_INSTRUCTIONS.md index 7734c284..1a871488 100644 --- a/INSTALLATION_INSTRUCTIONS.md +++ b/INSTALLATION_INSTRUCTIONS.md @@ -10,56 +10,7 @@ TellForm Installation Instructions ## Local deployment with Docker -### Prerequisites - -Make you sure have the following packages and versions on your machine: -``` -"node": ">=6.11.2" -"npm": ">=3.3.6" -"bower": ">=1.8.0" -"grunt-cli": ">=1.2.0" -"grunt": ">=0.4.5" -"docker": ">=17.06.0-ce" -"docker-compose": ">=1.14.0" -``` - -### Install dependencies - -``` -$ npm install -``` - -### Prepare .env file: -Create `.env` file at project root folder. Fill in `MAILER_SERVICE_PROVIDER`, `MAILER_EMAIL_ID`, `MAILER_PASSWORD` and `MAILER_FROM`. -``` -APP_NAME=TellForm -BASE_URL=localhost:3000 -PORT=3000 -DB_PORT_27017_TCP_ADDR=tellform-mongo -REDIS_DB_PORT_6379_TCP_ADDR=tellform-redis -MAILER_SERVICE_PROVIDER= -MAILER_EMAIL_ID= -MAILER_PASSWORD= -MAILER_FROM= -SIGNUP_DISABLED=false -SUBDOMAINS_DISABLED=true -DISABLE_CLUSTER_MODE=true -``` - -### Build docker image - -``` -$ docker-compose build -``` - -### Run docker containers with docker-compose - -Create and start mongo & redis docker container: -``` -$ docker-compose up -``` - -Your application should run on port 3000 or the port you specified in your .env file, so in your browser just go to [http://localhost:3000](http://localhost:3000) +Refer to [docker_files](https://github.com/tellform/docker_files). ## AWS AMI Deployment From e8afc9e7e6e95b1dfe642d8debd5f920601e1567 Mon Sep 17 00:00:00 2001 From: Jess Sze Date: Sat, 20 Oct 2018 17:17:29 +0800 Subject: [PATCH 32/45] add registry --- .bowerrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.bowerrc b/.bowerrc index 6a060253..33085090 100755 --- a/.bowerrc +++ b/.bowerrc @@ -1,4 +1,5 @@ { "directory": "public/lib", - "analytics": false + "analytics": false, + "registry": "https://registry.bower.io" } From 1a9e84774113e6db319078e102b60224710b2fdd Mon Sep 17 00:00:00 2001 From: Boris K Date: Wed, 9 Jan 2019 21:05:00 +0100 Subject: [PATCH 33/45] Remove dead link from README --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 0a37673b..9db45080 100755 --- a/README.md +++ b/README.md @@ -245,8 +245,6 @@ Love our work and community? [Become a backer](https://opencollective.com/tellfo ## Mentions on the Web -[Mister Ad](http://start.mister-ad.biz/newsticker/open-source-alternative-zu-typeform-tellform-in-der-kurzvorstellung/) - [t3n.de](http://t3n.de/news/open-source-alternative-typeform-tellform-707295/) [BootCSS Expo](http://expo.bootcss.com/) From 6453716c99d65918f5aa86544c2d80697e7804e1 Mon Sep 17 00:00:00 2001 From: Mattias Date: Thu, 31 Jan 2019 10:15:21 +0100 Subject: [PATCH 34/45] fix translations --- config/locales/sv.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/locales/sv.json b/config/locales/sv.json index a8003255..63c67daf 100644 --- a/config/locales/sv.json +++ b/config/locales/sv.json @@ -1,22 +1,22 @@ { - "500_HEADER": "500 - Internal Server Error", + "500_HEADER": "500 - Internt Serverfel", "404_HEADER": "404 - Sidan hittades inte", - "404_BODY": "%s är inte en giltig väg", - "500_BODY": "Ett oväntad fel verkar ha inträffat. Varför inte pröva med att uppdatera sidan? Eller så kan du kontakta oss om problemet återuppstår.", + "404_BODY": "%s är inte en giltig sökväg", + "500_BODY": "Ett oväntat fel verkar ha inträffat. Kan du prova med att uppdatera sidan? Eller kan du kontakta oss om problemet återuppstår igen?", "EMAIL_GREETING": "Hej där!", - "VERIFICATION_EMAIL_PARAGRAPH_1": "Välkommen till TellForm! Här är en speciell länk för att aktivera ditt nya konto:", + "VERIFICATION_EMAIL_PARAGRAPH_1": "Välkommen till TellForm! Här är en speciell länk till dig för att aktivera ditt nya konto:", "VERIFICATION_EMAIL_LINK_TEXT": "Aktivera mitt konto", "VERIFICATION_EMAIL_PARAGRAPH_2": "Tack så mycket för att du använder våra tjänster! Om du har några frågor eller förslag är du varmt välkommen att e-posta oss här på", "VERIFICATION_EMAIL_SUBJECT": "Aktivera ditt nya TellForm-konto!", "VERIFICATION_EMAIL_TEXT": "Vänligen verifiera ditt konto genom att klicka på den följande länken, eller genom att kopiera och klistra in den i din webbläsare: ${URL}", "EMAIL_SIGNATURE": "- TellForm-gruppen", "WELCOME_EMAIL_PARAGRAPH_1": "Vi skulle vilja välkomna dig som vår nyaste medlem!", - "WELCOME_EMAIL_PARAGRAPH_2": "Vi hoppas att du gillar använda TellForm! Om du stöter på några problem är du varmt välkommen att e-posta oss här på", + "WELCOME_EMAIL_PARAGRAPH_2": "Vi hoppas att du gillar att använda TellForm! Om du stöter på några problem är du varmt välkommen att e-posta oss här på", "WELCOME_EMAIL_SUBJECT": "Välkommen till %s!", "WELCOME_EMAIL_TEXT": "Ditt konto har framgångsrikt blivit verifierat.", "RESET_PASSWORD_CONFIRMATION_EMAIL_PARAGRAPH_1": "Detta är ett artigt meddelande för att bekräfta att ditt lösenord just har ändrats.", "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_1": "Här är en speciell länk som kommer tillåta dig att återställa ditt lösenord. Vänligen notera att det kommer utgå om en timma för din säkerhet:", "RESET_PASSWORD_REQUEST_EMAIL_LINK_TEXT": "Återställ Ditt Lösenord", - "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Om du inte begärde detta, vänligen ignorera detta meddelande och ditt lösenord kommer förbli oförändrat.", + "RESET_PASSWORD_REQUEST_EMAIL_PARAGRAPH_2": "Om du inte begärde detta, vänligen ignorera detta meddelande och ditt lösenord kommer att förbli oförändrat.", "RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1": "RESET_PASSWORD_CONFIRMATION_EMAIL_BODY_1" } From 81e66f0025790a3e623c7be3e1a666d18df13243 Mon Sep 17 00:00:00 2001 From: Arielle Baldwynn <1160417+whitef0x0@users.noreply.github.com> Date: Tue, 19 Feb 2019 10:27:56 -0800 Subject: [PATCH 35/45] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9db45080..f9fe35b9 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ TellForm 2.1.0 ======== +[![Code Shelter](https://www.codeshelter.co/static/badges/badge-flat.svg)](https://www.codeshelter.co/) [![Build Status](https://travis-ci.org/tellform/tellform.svg?branch=master)](https://travis-ci.org/tellform/tellform) ![Project Status](https://img.shields.io/badge/status-2.1.0-green.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3491e86eb7194308b8fc80711d736ede)](https://www.codacy.com/app/david-baldwin/tellform?utm_source=github.com&utm_medium=referral&utm_content=tellform/tellform&utm_campaign=Badge_Grade) From 15a6324a90f1a4075cd2dbd1b8b34eb05cf24417 Mon Sep 17 00:00:00 2001 From: Arielle Baldwynn Date: Mon, 29 Apr 2019 16:02:27 -0700 Subject: [PATCH 36/45] got npm install to work --- package-lock.json | 12314 +++++++++++++++++++++++++------------------- package.json | 24 +- 2 files changed, 6893 insertions(+), 5445 deletions(-) diff --git a/package-lock.json b/package-lock.json index fcb91c18..aad7f380 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,32 +4,66 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@types/babel-types": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", + "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==" + }, + "@types/babylon": { + "version": "6.16.5", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", + "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "requires": { + "@types/babel-types": "*" + } + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.6.tgz", + "integrity": "sha512-QsaoUD2dpVpjENy8JFpQnXP9vyzoZPmAoKrE3S6HtSB7qzSebkJNnmdY4p004FQUSSiHXPueENpoeuUW/7a8Ig==", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.24", "negotiator": "0.6.1" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + } } }, "acorn": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", - "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" }, "acorn-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", - "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", - "optional": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", "requires": { - "acorn": "2.7.0" + "acorn": "^4.0.4" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" + } } }, "after": { @@ -43,8 +77,8 @@ "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", "dev": true, "requires": { - "extend": "3.0.1", - "semver": "5.0.3" + "extend": "~3.0.0", + "semver": "~5.0.1" }, "dependencies": { "semver": { @@ -56,14 +90,14 @@ } }, "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "align-text": { @@ -71,9 +105,9 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "all-contributors-cli": { @@ -82,12 +116,12 @@ "integrity": "sha1-dNEItAiVZRxEPIh6kDjWk1gmMyU=", "dev": true, "requires": { - "async": "2.5.0", - "inquirer": "3.3.0", - "lodash": "4.17.4", - "pify": "2.3.0", - "request": "2.83.0", - "yargs": "4.8.1" + "async": "^2.0.0-rc.1", + "inquirer": "^3.0.1", + "lodash": "^4.11.2", + "pify": "^2.3.0", + "request": "^2.72.0", + "yargs": "^4.7.0" }, "dependencies": { "async": { @@ -96,7 +130,7 @@ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "camelcase": { @@ -111,9 +145,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "os-locale": { @@ -122,7 +156,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "which-module": { @@ -143,20 +177,20 @@ "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", "dev": true, "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "lodash.assign": "4.2.0", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "window-size": "0.2.0", - "y18n": "3.2.1", - "yargs-parser": "2.4.1" + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "lodash.assign": "^4.0.3", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.1", + "which-module": "^1.0.0", + "window-size": "^0.2.0", + "y18n": "^3.2.1", + "yargs-parser": "^2.4.1" } }, "yargs-parser": { @@ -165,8 +199,8 @@ "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", "dev": true, "requires": { - "camelcase": "3.0.0", - "lodash.assign": "4.2.0" + "camelcase": "^3.0.0", + "lodash.assign": "^4.0.6" } } } @@ -176,7 +210,7 @@ "resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz", "integrity": "sha1-x1iICGF1cgNKrmJICvJrHU0cs80=", "requires": { - "stable": "0.1.6" + "stable": "~0.1.3" } }, "ambi": { @@ -184,8 +218,8 @@ "resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz", "integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=", "requires": { - "editions": "1.3.3", - "typechecker": "4.4.1" + "editions": "^1.1.1", + "typechecker": "^4.3.0" }, "dependencies": { "typechecker": { @@ -193,7 +227,7 @@ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.4.1.tgz", "integrity": "sha1-+XuV9RsDhBchLWd9RaNz7nvO1+Y=", "requires": { - "editions": "1.3.3" + "editions": "^1.3.3" } } } @@ -209,7 +243,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -230,8 +264,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -240,7 +274,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -265,9 +299,10 @@ "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" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -275,8 +310,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" }, "dependencies": { "underscore.string": { @@ -291,7 +326,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -299,6 +334,11 @@ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, "array-differ": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", @@ -325,7 +365,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -349,15 +389,17 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" }, "asap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz", - "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=", - "optional": true + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } }, "assert-plus": { "version": "1.0.0", @@ -370,6 +412,11 @@ "integrity": "sha1-x/hUOP3UZrx8oWq5DIFRN5el0js=", "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "ast-types": { "version": "0.9.14", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.14.tgz", @@ -386,11 +433,22 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=" }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -401,6 +459,31 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, "backo2": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", @@ -411,6 +494,71 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "base64-arraybuffer": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", @@ -421,20 +569,25 @@ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=" }, - "base64-url": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-url/-/base64-url-1.2.1.tgz", - "integrity": "sha1-GZ/WYXAqDnt9yubgaYuwicUvbXg=" - }, "base64id": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=" }, "basic-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", - "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } }, "batch": { "version": "0.5.3", @@ -443,12 +596,11 @@ "dev": true }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "benchmark": { @@ -469,37 +621,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=" }, - "bl": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz", - "integrity": "sha1-wGt5evCF6gC8Unr8jvzxHeIjIFQ=", - "requires": { - "readable-stream": "1.0.34" - }, - "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.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, "blob": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", @@ -511,55 +632,51 @@ "integrity": "sha1-AkpVFylTCIV/FPkfEQb8O1VfRGs=" }, "body-parser": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", - "integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=", + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { - "bytes": "2.2.0", - "content-type": "1.0.4", - "debug": "2.2.0", - "depd": "1.1.1", - "http-errors": "1.3.1", - "iconv-lite": "0.4.13", - "on-finished": "2.3.0", - "qs": "5.2.0", - "raw-body": "2.1.7", - "type-is": "1.6.15" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" }, "dependencies": { "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, "iconv-lite": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - }, - "qs": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", - "integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=" + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } } } }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "requires": { - "hoek": "4.2.0" - } - }, "bops": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", @@ -570,2021 +687,37 @@ } }, "bower": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/bower/-/bower-1.6.9.tgz", - "integrity": "sha1-zdfJCPiPjokIqawjfjT1kdcFi5k=", - "requires": { - "abbrev": "1.0.7", - "archy": "1.0.0", - "bower-config": "1.4.1", - "bower-endpoint-parser": "0.2.2", - "bower-json": "0.4.0", - "bower-logger": "0.2.2", - "bower-registry-client": "1.0.0", - "cardinal": "0.4.4", - "chalk": "1.1.1", - "chmodr": "1.0.2", - "configstore": "0.3.2", - "decompress-zip": "0.1.0", - "destroy": "1.0.3", - "fs-write-stream-atomic": "1.0.5", - "fstream": "1.0.8", - "fstream-ignore": "1.0.3", - "github": "0.2.4", - "glob": "4.5.3", - "graceful-fs": "3.0.8", - "handlebars": "2.0.0", - "inquirer": "0.10.0", - "insight": "0.7.0", - "is-root": "1.0.0", - "junk": "1.0.2", - "lockfile": "1.0.1", - "lru-cache": "2.7.3", - "md5-hex": "1.1.0", - "mkdirp": "0.5.0", - "mout": "0.11.1", - "nopt": "3.0.6", - "opn": "1.0.2", - "p-throttler": "0.1.1", - "promptly": "0.2.0", - "q": "1.4.1", - "request": "2.53.0", - "request-progress": "0.3.1", - "retry": "0.6.1", - "rimraf": "2.4.4", - "semver": "2.3.2", - "shell-quote": "1.4.3", - "stringify-object": "1.0.1", - "tar-fs": "1.8.1", - "tmp": "0.0.24", - "update-notifier": "0.3.2", - "user-home": "1.1.1", - "which": "1.2.0" - }, - "dependencies": { - "abbrev": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz", - "integrity": "sha1-W2A1su6dT7XPhZ8Iqb6BsghJGEM=" - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=" - }, - "asn1": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", - "integrity": "sha1-VZvhg3bQik7E2+gId9J4GGObLfc=" - }, - "assert-plus": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", - "integrity": "sha1-7nQAlBMALYTOxyGcasgRgS5yMWA=" - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - }, - "aws-sign2": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", - "integrity": "sha1-xXED96F/wDfwLXwuZLYC6iI/fWM=" - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } - }, - "bower-endpoint-parser": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/bower-endpoint-parser/-/bower-endpoint-parser-0.2.2.tgz", - "integrity": "sha1-ALVlrb+rby01rd3pd+l5Yqy8s/Y=" - }, - "bower-json": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/bower-json/-/bower-json-0.4.0.tgz", - "integrity": "sha1-qZw8z0Fu8FkO0N7SUsdg8cbZN2Y=", - "requires": { - "deep-extend": "0.2.11", - "graceful-fs": "2.0.3", - "intersect": "0.0.3" - }, - "dependencies": { - "deep-extend": { - "version": "0.2.11", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", - "integrity": "sha1-eha6aXKRMjQFBhcElLyD9wdv4I8=" - }, - "graceful-fs": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-2.0.3.tgz", - "integrity": "sha1-fNLNsiiko/Nule+mzBQt59GhNtA=" - }, - "intersect": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/intersect/-/intersect-0.0.3.tgz", - "integrity": "sha1-waSl5erG7eSvdQTMB+Ctp7yfSSA=" - } - } - }, - "bower-logger": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/bower-logger/-/bower-logger-0.2.2.tgz", - "integrity": "sha1-Ob4H6Xmy/I4DqUY0IF7ZQiNz04E=" - }, - "bower-registry-client": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bower-registry-client/-/bower-registry-client-1.0.0.tgz", - "integrity": "sha1-aXw0mQZ1SaEGtJ8m0D5t0QF6kkE=", - "requires": { - "async": "0.2.10", - "graceful-fs": "4.1.2", - "lru-cache": "2.7.3", - "mkdirp": "0.3.5", - "request": "2.53.0", - "request-replay": "0.2.0", - "rimraf": "2.4.4" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" - }, - "graceful-fs": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", - "integrity": "sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc=" - }, - "mkdirp": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc=" - }, - "request-replay": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/request-replay/-/request-replay-0.2.0.tgz", - "integrity": "sha1-m2k6XRGLOfXFlurV7ZGiZEQFf2A=", - "requires": { - "retry": "0.6.1" - } - } - } - }, - "cardinal": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", - "integrity": "sha1-ylu2iltRG5D+k7ms6km97lwyv+I=", - "requires": { - "ansicolors": "0.2.1", - "redeyed": "0.4.4" - }, - "dependencies": { - "ansicolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.2.1.tgz", - "integrity": "sha1-vgiVmQl7dKXJxKhKDNvNtivYeu8=" - }, - "redeyed": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-0.4.4.tgz", - "integrity": "sha1-N+mQpvKyGyoRwuakj9QTVpjLqX8=", - "requires": { - "esprima": "1.0.4" - }, - "dependencies": { - "esprima": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", - "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" - } - } - } - } - }, - "caseless": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz", - "integrity": "sha1-t7Zc5r8UE4hlOc/VM/CzDv+pz4g=" - }, - "chalk": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "integrity": "sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk=", - "requires": { - "ansi-styles": "2.1.0", - "escape-string-regexp": "1.0.3", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.0", - "supports-color": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz", - "integrity": "sha1-mQ90cUaSe1Wakyv5KVkWPWDA0OI=" - }, - "escape-string-regexp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz", - "integrity": "sha1-ni2LJbwlVcMzZyN1DgPwmcJzW7U=" - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "integrity": "sha1-dRC2ZVZ8qRTMtdfgcnY6yWi+NyQ=", - "requires": { - "ansi-regex": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=" - } - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "chmodr": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chmodr/-/chmodr-1.0.2.tgz", - "integrity": "sha1-BGYrky0PAuxm3qorDqQoEZaOPrk=" - }, - "combined-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", - "requires": { - "delayed-stream": "0.0.5" - } - }, - "configstore": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-0.3.2.tgz", - "integrity": "sha1-JeTBbDdoq/dcWmW8YXYfSVBVtFk=", - "requires": { - "graceful-fs": "3.0.8", - "js-yaml": "3.4.6", - "mkdirp": "0.5.0", - "object-assign": "2.1.1", - "osenv": "0.1.3", - "user-home": "1.1.1", - "uuid": "2.0.1", - "xdg-basedir": "1.0.1" - }, - "dependencies": { - "js-yaml": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz", - "integrity": "sha1-a+GyP2JJ9T0pM3D9TRqqY84bTrA=", - "requires": { - "argparse": "1.0.3", - "esprima": "2.7.0", - "inherit": "2.2.2" - }, - "dependencies": { - "argparse": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.3.tgz", - "integrity": "sha1-FDid7rDCj8TNqUBbn1MqTjeFzoQ=", - "requires": { - "lodash": "3.10.1", - "sprintf-js": "1.0.3" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - } - } - }, - "esprima": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.0.tgz", - "integrity": "sha1-dM+w5K5D8LgVQdzDAFD52ssfcH4=" - }, - "inherit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/inherit/-/inherit-2.2.2.tgz", - "integrity": "sha1-O1s0F9Q0+BojTWj3lhJhXkFiRKM=" - } - } - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" - }, - "osenv": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", - "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=", - "requires": { - "os-homedir": "1.0.1", - "os-tmpdir": "1.0.1" - }, - "dependencies": { - "os-homedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" - }, - "os-tmpdir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", - "integrity": "sha1-6bQjoe2vR5iCVi6S7XHXdDoHG24=" - } - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" - }, - "xdg-basedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-1.0.1.tgz", - "integrity": "sha1-FP+PY6T9vLBdW27qIrNvMDO58E4=", - "requires": { - "user-home": "1.1.1" - } - } - } - }, - "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" - } - }, - "decompress-zip": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.1.0.tgz", - "integrity": "sha1-vOYMEWZPLWYPykvPY0r23l1sFMc=", - "requires": { - "binary": "0.3.0", - "graceful-fs": "3.0.8", - "mkpath": "0.1.0", - "nopt": "3.0.6", - "q": "1.4.1", - "readable-stream": "1.1.13", - "touch": "0.0.3" - }, - "dependencies": { - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "requires": { - "buffers": "0.1.1", - "chainsaw": "0.1.0" - }, - "dependencies": { - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "requires": { - "traverse": "0.3.9" - }, - "dependencies": { - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - } - } - } - } - }, - "mkpath": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-0.1.0.tgz", - "integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE=" - }, - "readable-stream": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "integrity": "sha1-9u73ZPUUyJ4rniMUanW6EGdW0j4=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "touch": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/touch/-/touch-0.0.3.tgz", - "integrity": "sha1-Ua7z1ElXHU8oel2Hyci0kYGg2x0=", - "requires": { - "nopt": "1.0.10" - }, - "dependencies": { - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "requires": { - "abbrev": "1.0.7" - } - } - } - } - } - }, - "delayed-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", - "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" - }, - "destroy": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz", - "integrity": "sha1-tDO0ck5x/YVR2YhRdIUcX8N34sk=" - }, - "forever-agent": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz", - "integrity": "sha1-bQ4JxJIflKJ/Y9O0nF/v8epMUTA=" - }, - "form-data": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", - "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", - "requires": { - "async": "0.9.2", - "combined-stream": "0.0.7", - "mime-types": "2.0.14" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.5.tgz", - "integrity": "sha1-hipNq9/8r6v8FkmUWONzEMOZJfY=", - "requires": { - "graceful-fs": "4.1.2", - "imurmurhash": "0.1.4" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", - "integrity": "sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc=" - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - } - } - }, - "fstream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", - "integrity": "sha1-fo16c6uzZH7zbkuKFcqAHboD0Dg=", - "requires": { - "graceful-fs": "4.1.2", - "inherits": "2.0.1", - "mkdirp": "0.5.0", - "rimraf": "2.4.4" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", - "integrity": "sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc=" - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } - } - }, - "fstream-ignore": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", - "integrity": "sha1-THTZH6iLIrQvT4ahiigg3XnY/N0=", - "requires": { - "fstream": "1.0.8", - "inherits": "2.0.1", - "minimatch": "3.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "minimatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "integrity": "sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=", - "requires": { - "brace-expansion": "1.1.2" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", - "integrity": "sha1-8hRF0EiLZY4nce/YcO/1HfKfBO8=", - "requires": { - "balanced-match": "0.3.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz", - "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - } - } - }, - "github": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/github/-/github-0.2.4.tgz", - "integrity": "sha1-JPp/DhP6EblGr5ETTFGYKpHOU4s=", - "requires": { - "mime": "1.3.4" - }, - "dependencies": { - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" - } - } - }, - "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", - "requires": { - "inflight": "1.0.4", - "inherits": "2.0.1", - "minimatch": "2.0.10", - "once": "1.3.3" - }, - "dependencies": { - "inflight": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=", - "requires": { - "once": "1.3.3", - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", - "requires": { - "brace-expansion": "1.1.2" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", - "integrity": "sha1-8hRF0EiLZY4nce/YcO/1HfKfBO8=", - "requires": { - "balanced-match": "0.3.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz", - "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - } - } - }, - "graceful-fs": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz", - "integrity": "sha1-zoE+cl+oL35hR9UcmlymgnBVHCI=" - }, - "handlebars": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-2.0.0.tgz", - "integrity": "sha1-bp1/hRSjRn+l6fgswVjs/B1ax28=", - "requires": { - "optimist": "0.3.7", - "uglify-js": "2.3.6" - }, - "dependencies": { - "optimist": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "requires": { - "wordwrap": "0.0.3" - }, - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=" - } - } - }, - "uglify-js": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", - "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", - "optional": true, - "requires": { - "async": "0.2.10", - "optimist": "0.3.7", - "source-map": "0.1.43" - }, - "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", - "optional": true - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "optional": true, - "requires": { - "amdefine": "1.0.0" - }, - "dependencies": { - "amdefine": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.0.tgz", - "integrity": "sha1-/RdHRwDLXMnCtwnwvp0jzjwZjDM=", - "optional": true - } - } - } - } - } - } - }, - "hawk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz", - "integrity": "sha1-HnMc45RH+h0PbXB/e87r7A/R7B8=", - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "integrity": "sha1-T72sEyVZqoMjEh5UB3nAoBKyfmY=", - "requires": { - "asn1": "0.1.11", - "assert-plus": "0.1.5", - "ctype": "0.5.3" - } - }, - "inquirer": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.10.0.tgz", - "integrity": "sha1-SM0+I/jZiaUtR9xeEOx1MkOH6Qg=", - "requires": { - "ansi-escapes": "1.1.0", - "ansi-regex": "2.0.0", - "chalk": "1.1.1", - "cli-cursor": "1.0.2", - "cli-width": "1.1.0", - "figures": "1.4.0", - "lodash": "3.10.1", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "strip-ansi": "3.0.0", - "through": "2.3.8" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.1.0.tgz", - "integrity": "sha1-IWCO3TpPxaVow7jYPtSswonV7Hc=" - }, - "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=" - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "requires": { - "restore-cursor": "1.0.1" - }, - "dependencies": { - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "requires": { - "exit-hook": "1.1.1", - "onetime": "1.0.0" - }, - "dependencies": { - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" - }, - "onetime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.0.0.tgz", - "integrity": "sha1-Ogio4514Ft9S00iGN0+47YtlH2I=" - } - } - } - } - }, - "cli-width": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.0.tgz", - "integrity": "sha1-32LR4amA72DRJW82TU8mlVlNfss=" - }, - "figures": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.4.0.tgz", - "integrity": "sha1-649WOQ2+MIEESlwqnZCJB1pIQy8=" - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - }, - "readline2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", - "requires": { - "code-point-at": "1.0.0", - "is-fullwidth-code-point": "1.0.0", - "mute-stream": "0.0.5" - }, - "dependencies": { - "code-point-at": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz", - "integrity": "sha1-9psZLT99keOC5Lcb3bd4eGGasMY=", - "requires": { - "number-is-nan": "1.0.0" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", - "integrity": "sha1-wCD1KcUoKt/dIz2R1LGBw9aG3Es=" - } - } - }, - "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": "1.0.0" - }, - "dependencies": { - "number-is-nan": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz", - "integrity": "sha1-wCD1KcUoKt/dIz2R1LGBw9aG3Es=" - } - } - }, - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=" - } - } - }, - "run-async": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", - "requires": { - "once": "1.3.3" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - } - } - }, - "rx-lite": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", - "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=" - }, - "strip-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "integrity": "sha1-dRC2ZVZ8qRTMtdfgcnY6yWi+NyQ=", - "requires": { - "ansi-regex": "2.0.0" - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - } - } - }, - "insight": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.7.0.tgz", - "integrity": "sha1-Bh+RiYNb04qXpgwrduoMazAJn/Y=", - "requires": { - "async": "1.5.0", - "chalk": "1.1.1", - "configstore": "1.3.0", - "inquirer": "0.10.0", - "lodash.debounce": "3.1.1", - "object-assign": "4.0.1", - "os-name": "1.0.3", - "request": "2.53.0", - "tough-cookie": "2.2.1" - }, - "dependencies": { - "async": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz", - "integrity": "sha1-J5ZkJyNXOFlWVjP8YnRES+4vjOM=" - }, - "configstore": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.3.0.tgz", - "integrity": "sha1-/Pmzdul7wwSBfR++EOl4pqxgZB0=", - "requires": { - "graceful-fs": "4.1.2", - "mkdirp": "0.5.0", - "object-assign": "4.0.1", - "os-tmpdir": "1.0.1", - "osenv": "0.1.3", - "uuid": "2.0.1", - "write-file-atomic": "1.1.4", - "xdg-basedir": "2.0.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz", - "integrity": "sha1-/iI5t1dJcuZ+QfgIgj+b+kqZHjc=" - }, - "os-tmpdir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz", - "integrity": "sha1-6bQjoe2vR5iCVi6S7XHXdDoHG24=" - }, - "osenv": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.3.tgz", - "integrity": "sha1-g88FxtZFj8TVrGNi6jJdkvJ1Qhc=", - "requires": { - "os-homedir": "1.0.1", - "os-tmpdir": "1.0.1" - }, - "dependencies": { - "os-homedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" - } - } - }, - "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" - }, - "write-file-atomic": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz", - "integrity": "sha1-sfUtwujcDjywTRh6JfdYo4qQyjs=", - "requires": { - "graceful-fs": "4.1.2", - "imurmurhash": "0.1.4", - "slide": "1.1.6" - }, - "dependencies": { - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "slide": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - } - } - }, - "xdg-basedir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz", - "integrity": "sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I=", - "requires": { - "os-homedir": "1.0.1" - }, - "dependencies": { - "os-homedir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz", - "integrity": "sha1-DWK99EuRb9O73PLKsZGUj7CU8Ac=" - } - } - } - } - }, - "lodash.debounce": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", - "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=", - "requires": { - "lodash._getnative": "3.9.1" - }, - "dependencies": { - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" - } - } - }, - "object-assign": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.0.1.tgz", - "integrity": "sha1-mVBEVsNZi1ytT8WcJuipuxB/4L0=" - }, - "os-name": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz", - "integrity": "sha1-GzefZINa98Wn9JizV8uVIVwVnt8=", - "requires": { - "osx-release": "1.1.0", - "win-release": "1.1.1" - }, - "dependencies": { - "osx-release": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz", - "integrity": "sha1-8heRGigTaUmvG/kwiyQeJzfTzWw=", - "requires": { - "minimist": "1.2.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - } - } - }, - "win-release": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", - "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", - "requires": { - "semver": "5.1.0" - }, - "dependencies": { - "semver": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz", - "integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU=" - } - } - } - } - }, - "tough-cookie": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz", - "integrity": "sha1-OwUWt5nnDoFkQ2oURuflh3/aEY4=" - } - } - }, - "is-root": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" - }, - "junk": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.2.tgz", - "integrity": "sha1-zHHbPAXVOzI40PHeyXqIJnwQcA4=" - }, - "lockfile": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.1.tgz", - "integrity": "sha1-nTU+z+P1TRULtX+J1RdGk1o5xPU=" - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" - }, - "md5-hex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/md5-hex/-/md5-hex-1.1.0.tgz", - "integrity": "sha1-0QcHTE7oHLyn8rYRUGadzjgFgIA=", - "requires": { - "md5-o-matic": "0.1.1" - }, - "dependencies": { - "md5-o-matic": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz", - "integrity": "sha1-givM1l4RfFFPqxdrJZRdVBAKA8M=" - } - } - }, - "mime-db": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", - "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=" - }, - "mime-types": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", - "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", - "requires": { - "mime-db": "1.12.0" - } - }, - "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "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=" - } - } - }, - "mout": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", - "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" - }, - "node-uuid": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz", - "integrity": "sha1-sEDrCSOWivq/jTL7HxfxFn/auQc=" - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1.0.7" - } - }, - "oauth-sign": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz", - "integrity": "sha1-fb6uRPbKRU4fFoRR1jB0ZzWBPOM=" - }, - "opn": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-1.0.2.tgz", - "integrity": "sha1-uQlkM0bQChq8l3qLlvPOPFPVz18=" - }, - "p-throttler": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/p-throttler/-/p-throttler-0.1.1.tgz", - "integrity": "sha1-FSRkCdIl0+78qFxQ3nEKg6eMymo=", - "requires": { - "q": "0.9.7" - }, - "dependencies": { - "q": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz", - "integrity": "sha1-TeLmyzspCIyeTLwDv51C+5bOL3U=" - } - } - }, - "promptly": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/promptly/-/promptly-0.2.0.tgz", - "integrity": "sha1-c+8gD6gynV06jfQXmJULhkbKRtk=", - "requires": { - "read": "1.0.7" - }, - "dependencies": { - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "0.0.5" - }, - "dependencies": { - "mute-stream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", - "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=" - } - } - } - } - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=" - }, - "qs": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz", - "integrity": "sha1-6eha2+ddoLvkyOBHaghikPhjtAQ=" - }, - "request": { - "version": "2.53.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.53.0.tgz", - "integrity": "sha1-GAo66St7Y5gC5PlUXdj83rcddgw=", - "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.3", - "tunnel-agent": "0.4.3" - } - }, - "request-progress": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-0.3.1.tgz", - "integrity": "sha1-ByHBBdipasayzossia4tXs/Pazo=", - "requires": { - "throttleit": "0.0.2" - }, - "dependencies": { - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" - } - } - }, - "retry": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.1.tgz", - "integrity": "sha1-/ckO7ZQ/3hG4k1VLjMY9DombqRg=" - }, - "rimraf": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz", - "integrity": "sha1-tSjOLr4ObYn7A7Jl3hHWHaDbz4I=", - "requires": { - "glob": "5.0.15" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "requires": { - "inflight": "1.0.4", - "inherits": "2.0.1", - "minimatch": "3.0.0", - "once": "1.3.3", - "path-is-absolute": "1.0.0" - }, - "dependencies": { - "inflight": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "integrity": "sha1-bLtFIevVHODsCpNr/XZX736bFyo=", - "requires": { - "once": "1.3.3", - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "minimatch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "integrity": "sha1-UjYVelHk8ATBd/s8Un/33Xjw74M=", - "requires": { - "brace-expansion": "1.1.2" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.2.tgz", - "integrity": "sha1-8hRF0EiLZY4nce/YcO/1HfKfBO8=", - "requires": { - "balanced-match": "0.3.0", - "concat-map": "0.0.1" - }, - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.0.tgz", - "integrity": "sha1-qRzdHr7xqGZZ5w/03vAWJfwtZ1Y=" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - } - } - } - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "integrity": "sha1-Jj2tpmqz8vsQv3+dJN2PPlcO+RI=" - } - } - } - } - }, - "semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=" - }, - "shell-quote": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.4.3.tgz", - "integrity": "sha1-lSxE4LHtkBPvU5WBecxkPod3Rms=", - "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" - }, - "dependencies": { - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - } - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "2.16.3" - } - }, - "stringify-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-1.0.1.tgz", - "integrity": "sha1-htNefb+86apFY31+zdeEfhWduKI=" - }, - "tar-fs": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.8.1.tgz", - "integrity": "sha1-PubPo1FjN3Xqp1469uwwfp6qQDw=", - "requires": { - "mkdirp": "0.5.0", - "pump": "1.0.1", - "tar-stream": "1.3.1" - }, - "dependencies": { - "pump": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.1.tgz", - "integrity": "sha1-8fFAn7m9EIW721drQ7hOxLXq3Bo=", - "requires": { - "end-of-stream": "1.1.0", - "once": "1.3.3" - }, - "dependencies": { - "end-of-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", - "integrity": "sha1-6TUyWLqpEIll78QcsO+K3i88+wc=", - "requires": { - "once": "1.3.3" - } - }, - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - } - } - }, - "tar-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.3.1.tgz", - "integrity": "sha1-SQ7CrR7Fgj/OY/GLuQTHRpzXCJc=", - "requires": { - "bl": "1.0.0", - "end-of-stream": "1.1.0", - "readable-stream": "2.0.4", - "xtend": "4.0.1" - }, - "dependencies": { - "bl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "integrity": "sha1-ramoqJptesYIYvfex9sgeHPgw/U=", - "requires": { - "readable-stream": "2.0.4" - } - }, - "end-of-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", - "integrity": "sha1-6TUyWLqpEIll78QcsO+K3i88+wc=", - "requires": { - "once": "1.3.3" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - } - } - }, - "readable-stream": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", - "integrity": "sha1-JSPvJ/+jOde6nahgPy0FmdBu29g=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", - "isarray": "0.0.1", - "process-nextick-args": "1.0.6", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "process-nextick-args": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", - "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - } - } - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" - } - } - } - } - }, - "tmp": { - "version": "0.0.24", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", - "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=" - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "update-notifier": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.3.2.tgz", - "integrity": "sha1-IqhzW6re8zIOLbko9pPaiY3Id3c=", - "requires": { - "chalk": "1.1.1", - "configstore": "0.3.2", - "is-npm": "1.0.0", - "latest-version": "1.0.1", - "semver-diff": "2.1.0", - "string-length": "1.0.1" - }, - "dependencies": { - "is-npm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", - "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" - }, - "latest-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-1.0.1.tgz", - "integrity": "sha1-cs/Ebj6NG+ZR4eu1Tqn26pbzdLs=", - "requires": { - "package-json": "1.2.0" - }, - "dependencies": { - "package-json": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-1.2.0.tgz", - "integrity": "sha1-yOysCUInzfdqMWh07QXifMk5oOA=", - "requires": { - "got": "3.3.1", - "registry-url": "3.0.3" - }, - "dependencies": { - "got": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/got/-/got-3.3.1.tgz", - "integrity": "sha1-5dDtSvVfw+701WAHdp2YGSvLLso=", - "requires": { - "duplexify": "3.4.2", - "infinity-agent": "2.0.3", - "is-redirect": "1.0.0", - "is-stream": "1.0.1", - "lowercase-keys": "1.0.0", - "nested-error-stacks": "1.0.2", - "object-assign": "3.0.0", - "prepend-http": "1.0.3", - "read-all-stream": "3.0.1", - "timed-out": "2.0.0" - }, - "dependencies": { - "duplexify": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.4.2.tgz", - "integrity": "sha1-caV4rwPg0GPrjxMmr/1eVgAUXhs=", - "requires": { - "end-of-stream": "1.0.0", - "readable-stream": "2.0.4" - }, - "dependencies": { - "end-of-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz", - "integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=", - "requires": { - "once": "1.3.3" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1.0.1" - }, - "dependencies": { - "wrappy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz", - "integrity": "sha1-HmWWmWXMvC20VIxrhKbyxa7dRzk=" - } - } - } - } - }, - "readable-stream": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", - "integrity": "sha1-JSPvJ/+jOde6nahgPy0FmdBu29g=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", - "isarray": "0.0.1", - "process-nextick-args": "1.0.6", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "process-nextick-args": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", - "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - } - } - } - } - }, - "infinity-agent": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/infinity-agent/-/infinity-agent-2.0.3.tgz", - "integrity": "sha1-ReDi/3qesDCyfWK3SzdEt6esQhY=" - }, - "is-redirect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", - "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" - }, - "is-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.0.1.tgz", - "integrity": "sha1-tEzkWx8MPfWD9rXev4Tc+XQ6yLU=" - }, - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - }, - "nested-error-stacks": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-1.0.2.tgz", - "integrity": "sha1-GfYZWRUZ8JZ2mlupqG5u7sgjw88=", - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - } - } - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=" - }, - "prepend-http": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.3.tgz", - "integrity": "sha1-TQ0rb5788RkMI5MTJbTzqduoSGk=" - }, - "read-all-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.0.1.tgz", - "integrity": "sha1-w3Aa7NfJEVFmd1kO7epJaExi+kc=", - "requires": { - "pinkie-promise": "1.0.0", - "readable-stream": "2.0.4" - }, - "dependencies": { - "pinkie-promise": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-1.0.0.tgz", - "integrity": "sha1-0dpn9UglY7t89X8oauKCLs+/NnA=", - "requires": { - "pinkie": "1.0.0" - }, - "dependencies": { - "pinkie": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-1.0.0.tgz", - "integrity": "sha1-Wkfyi6EBXQIBvae/DzWOR77Ix+Q=" - } - } - }, - "readable-stream": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", - "integrity": "sha1-JSPvJ/+jOde6nahgPy0FmdBu29g=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.1", - "isarray": "0.0.1", - "process-nextick-args": "1.0.6", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "process-nextick-args": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz", - "integrity": "sha1-D5awAc6pCxJZLOVm7bl+wR5pvQU=" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - } - } - } - } - }, - "timed-out": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz", - "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=" - } - } - }, - "registry-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.0.3.tgz", - "integrity": "sha1-yfUQLg/ZyfJQUip/GfaGcshMzJY=", - "requires": { - "rc": "1.1.5" - }, - "dependencies": { - "rc": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.5.tgz", - "integrity": "sha1-O64o177YfRzLWGP43OjCfyzu6Jw=", - "requires": { - "deep-extend": "0.4.0", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "1.0.4" - }, - "dependencies": { - "deep-extend": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz", - "integrity": "sha1-9YtG21jrXWQ5zdDy5sr7Rzn8EoM=" - }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=" - } - } - } - } - } - } - } - } - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "requires": { - "semver": "5.1.0" - }, - "dependencies": { - "semver": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz", - "integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU=" - } - } - }, - "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "requires": { - "strip-ansi": "3.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "integrity": "sha1-dRC2ZVZ8qRTMtdfgcnY6yWi+NyQ=", - "requires": { - "ansi-regex": "2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "integrity": "sha1-xQYbbg74qBd15Q9dZhUb9r83EQc=" - } - } - } - } - } - } - }, - "user-home": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", - "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" - }, - "which": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.0.tgz", - "integrity": "sha1-pcjfWrx5L2zpZSyNnKjzqRt35Z0=", - "requires": { - "is-absolute": "0.1.7" - }, - "dependencies": { - "is-absolute": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz", - "integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=", - "requires": { - "is-relative": "0.1.3" - }, - "dependencies": { - "is-relative": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz", - "integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=" - } - } - } - } - } - } + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/bower/-/bower-1.8.8.tgz", + "integrity": "sha512-1SrJnXnkP9soITHptSO+ahx3QKp3cVzn8poI6ujqc5SeOkg5iqM1pK9H+DSc2OQ8SnO0jC/NG4Ur/UIwy7574A==" }, "bower-config": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/bower-config/-/bower-config-1.4.1.tgz", "integrity": "sha1-hf2d82fCuNu9DKpMXyutQM2Ewsw=", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "mout": "1.1.0", - "optimist": "0.6.1", - "osenv": "0.1.4", - "untildify": "2.1.0" + "graceful-fs": "^4.1.3", + "mout": "^1.0.0", + "optimist": "^0.6.1", + "osenv": "^0.1.3", + "untildify": "^2.1.0" }, "dependencies": { "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } } } @@ -2595,13 +728,13 @@ "integrity": "sha1-Px1AMsMP/qnUsCwyLq8up0HcvOU=", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.3.0", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "1.0.0" + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^1.0.0" }, "dependencies": { "ansi-regex": { @@ -2616,7 +749,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "camelcase": { @@ -2631,9 +764,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "is-fullwidth-code-point": { @@ -2648,8 +781,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -2658,7 +791,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -2667,7 +800,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -2677,7 +810,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2686,9 +819,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -2702,7 +835,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "bson": { @@ -2716,9 +849,37 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "bytes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", - "integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } }, "callsite": { "version": "1.0.0", @@ -2730,8 +891,8 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -2744,8 +905,8 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "camelize": { @@ -2769,8 +930,8 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai-nightwatch": { @@ -2788,58 +949,36 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "change-case": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.1.tgz", - "integrity": "sha1-7l9a0EFa0a2egHLPSc1M+nZgpVQ=", - "requires": { - "camel-case": "3.0.0", - "constant-case": "2.0.0", - "dot-case": "2.1.1", - "header-case": "1.0.1", - "is-lower-case": "1.1.3", - "is-upper-case": "1.1.2", - "lower-case": "1.1.4", - "lower-case-first": "1.0.2", - "no-case": "2.3.2", - "param-case": "2.1.1", - "pascal-case": "2.0.1", - "path-case": "2.1.1", - "sentence-case": "2.1.1", - "snake-case": "2.1.0", - "swap-case": "1.1.2", - "title-case": "2.1.1", - "upper-case": "1.1.3", - "upper-case-first": "1.1.2" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "character-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz", - "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY=", - "optional": true + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "requires": { + "is-regex": "^1.0.3" + } }, "chokidar": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.2", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "chromedriver": { @@ -2848,11 +987,11 @@ "integrity": "sha512-etnQeM8Mqiys50ZB4IiuNqeB1WS2/EKFhVXwkPQ1qjzKMMAJUyrLjaRUcoZoHrbjGscnhBrWkRR+p3zcTGMhDg==", "dev": true, "requires": { - "del": "3.0.0", - "extract-zip": "1.6.6", - "kew": "0.7.0", - "mkdirp": "0.5.1", - "request": "2.83.0" + "del": "^3.0.0", + "extract-zip": "^1.6.5", + "kew": "^0.7.0", + "mkdirp": "^0.5.1", + "request": "^2.83.0" }, "dependencies": { "del": { @@ -2861,12 +1000,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.2.8" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -2875,11 +1014,11 @@ "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" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2898,13 +1037,45 @@ } } }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "clean-css": { "version": "3.4.28", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", "requires": { - "commander": "2.8.1", - "source-map": "0.4.4" + "commander": "2.8.x", + "source-map": "0.4.x" } }, "cli": { @@ -2913,7 +1084,7 @@ "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", "requires": { "exit": "0.1.2", - "glob": "7.1.2" + "glob": "^7.1.1" } }, "cli-boxes": { @@ -2928,7 +1099,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -2942,15 +1113,15 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, "clone": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", - "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" }, "clone-stats": { "version": "0.0.1", @@ -2973,13 +1144,22 @@ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz", "integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.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": "^1.1.1" } }, "color-name": { @@ -2998,7 +1178,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -3006,7 +1186,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "component-bind": { @@ -3025,43 +1205,51 @@ "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" }, "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", "requires": { - "mime-db": "1.30.0" + "mime-db": ">= 1.40.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + } } }, "compression": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", - "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "requires": { - "accepts": "1.3.4", - "bytes": "2.3.0", - "compressible": "2.0.12", - "debug": "2.2.0", - "on-headers": "1.0.1", - "vary": "1.1.2" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" }, "dependencies": { "bytes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", - "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -3075,9 +1263,9 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "typedarray": "0.0.6" + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "configstore": { @@ -3086,12 +1274,12 @@ "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.1.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" }, "dependencies": { "graceful-fs": { @@ -3109,7 +1297,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.0.6", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "utils-merge": "1.0.1" }, "dependencies": { @@ -3128,7 +1316,7 @@ "resolved": "https://registry.npmjs.org/connect-mongo/-/connect-mongo-2.0.0.tgz", "integrity": "sha512-2Nj5d4XO55AXSy1GOXDZteSEEUObGm/kvJaXyEQCa8cCHsCiZH+V/+sjk3b+khc4V8oyVi34rCtUxor4TfETLA==", "requires": { - "mongodb": "2.0.55" + "mongodb": "^2.0.36" } }, "console-browserify": { @@ -3136,7 +1324,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "consolidate": { @@ -3144,7 +1332,7 @@ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", "requires": { - "bluebird": "3.5.1" + "bluebird": "^3.1.1" }, "dependencies": { "bluebird": { @@ -3154,35 +1342,26 @@ } } }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "requires": { - "snake-case": "2.1.0", - "upper-case": "1.1.3" - } - }, "constantinople": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz", - "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", "requires": { - "acorn": "2.7.0" + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" } }, "content-disposition": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", - "integrity": "sha1-h0dsamfI2qh+Muh2Ft+IO6f7Bxs=" + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-security-policy-builder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-1.1.0.tgz", - "integrity": "sha1-2R8bB2I2wRmFDH3umSS/VeBXcrM=", - "requires": { - "dashify": "0.2.2" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz", + "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==" }, "content-type": { "version": "1.0.4", @@ -3219,11 +1398,15 @@ "integrity": "sha1-Cr81atANHFohnYjURRgEbdAmrP4=", "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "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 + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" }, "core-util-is": { "version": "1.0.2", @@ -3249,7 +1432,7 @@ "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "assert-plus": { @@ -3270,7 +1453,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -3291,7 +1474,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "esprima": { @@ -3306,9 +1489,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-validator": { @@ -3317,10 +1500,10 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -3329,10 +1512,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -3347,9 +1530,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "js-yaml": { @@ -3358,8 +1541,8 @@ "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" } }, "minimist": { @@ -3380,26 +1563,26 @@ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "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.3", - "tunnel-agent": "0.4.3", - "uuid": "3.1.0" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" } }, "sntp": { @@ -3408,7 +1591,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "sprintf-js": { @@ -3425,18 +1608,13 @@ } } }, - "crc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz", - "integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo=" - }, "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=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "cross-spawn": { @@ -3445,9 +1623,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -3456,8 +1634,8 @@ "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "which": { @@ -3466,25 +1644,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" - } - } - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "requires": { - "hoek": "4.2.0" + "isexe": "^2.0.0" } } } @@ -3500,7 +1660,7 @@ "resolved": "https://registry.npmjs.org/csextends/-/csextends-1.1.1.tgz", "integrity": "sha1-zFPBNJ+vfwrmzfb2xKTZFW08TsE=", "requires": { - "coffee-script": "1.12.7" + "coffee-script": "^1.12.5" }, "dependencies": { "coffee-script": { @@ -3510,47 +1670,20 @@ } } }, - "css": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz", - "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=", - "optional": true, - "requires": { - "css-parse": "1.0.4", - "css-stringify": "1.0.5" - } - }, - "css-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz", - "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90=", - "optional": true - }, - "css-stringify": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz", - "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE=", - "optional": true - }, "csslint": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/csslint/-/csslint-0.10.0.tgz", "integrity": "sha1-OmoE51Zcjp0ZvrSXZ8fslug2WAU=", "requires": { - "parserlib": "0.2.5" + "parserlib": "~0.2.2" } }, - "ctype": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", - "integrity": "sha1-gsGMJGH3QRTvFsE1IkrQuRRMoS8=" - }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "custom-event": { @@ -3569,7 +1702,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dasherize": { @@ -3577,17 +1710,18 @@ "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" }, - "dashify": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dashify/-/dashify-0.2.2.tgz", - "integrity": "sha1-agdBWgHJH69KMuONnfunH2HLIP4=" - }, "data-uri-to-buffer": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", "dev": true }, + "date-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", + "integrity": "sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==", + "dev": true + }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", @@ -3611,6 +1745,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "deep-diff": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", @@ -3637,15 +1776,62 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "degenerator": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "dev": true, "requires": { - "ast-types": "0.9.14", - "escodegen": "1.8.1", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { @@ -3662,13 +1848,13 @@ "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.2.8" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" }, "dependencies": { "globby": { @@ -3677,12 +1863,12 @@ "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" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } } } @@ -3693,9 +1879,9 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { "version": "1.0.4", @@ -3730,10 +1916,10 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, "dom-serializer": { @@ -3741,8 +1927,8 @@ "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" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -3767,7 +1953,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -3775,8 +1961,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dont-sniff-mimetype": { @@ -3784,21 +1970,13 @@ "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "requires": { - "no-case": "2.3.2" - } - }, "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==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "dotenv": { @@ -3827,10 +2005,10 @@ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz", "integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==", "requires": { - "end-of-stream": "1.4.0", - "inherits": "2.0.3", - "readable-stream": "2.3.3", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "eachr": { @@ -3838,16 +2016,16 @@ "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz", "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=", "requires": { - "typechecker": "2.1.0" + "typechecker": "^2.0.8" } }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "editions": { @@ -3868,10 +2046,11 @@ }, "email-verification": { "version": "github:tellform/node-email-verification#8b179f34e0943c389b2058c9ec1e6d2135a72857", + "from": "github:tellform/node-email-verification", "requires": { - "mongoose": "3.8.40", - "nodemailer": "4.0.1", - "rand-token": "0.2.1" + "mongoose": "~3.8.0", + "nodemailer": "^4.0.1", + "rand-token": "^0.2.1" }, "dependencies": { "bson": { @@ -3879,7 +2058,7 @@ "resolved": "https://registry.npmjs.org/bson/-/bson-0.2.22.tgz", "integrity": "sha1-/NoQPybQwHTVpS1Qkn24D9ArSzk=", "requires": { - "nan": "1.8.4" + "nan": "~1.8" } }, "mongodb": { @@ -3887,9 +2066,9 @@ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-1.4.38.tgz", "integrity": "sha1-jP/WGBAK86RkiplUmL/Py07Yq9I=", "requires": { - "bson": "0.2.22", + "bson": "~0.2", "kerberos": "0.0.11", - "readable-stream": "2.3.3" + "readable-stream": "^2.3.3" } }, "mongoose": { @@ -3924,13 +2103,13 @@ "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } } } @@ -3945,7 +2124,7 @@ "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" + "once": "^1.4.0" } }, "engine.io": { @@ -3966,7 +2145,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "requires": { - "mime-types": "2.1.17", + "mime-types": "~2.1.11", "negotiator": "0.6.1" } }, @@ -4027,8 +2206,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } } } @@ -4062,10 +2241,10 @@ "resolved": "https://registry.npmjs.org/envfile/-/envfile-2.1.1.tgz", "integrity": "sha1-jlrmacHyRZ5YkJWdn4obHAXmj50=", "requires": { - "ambi": "2.5.0", - "eachr": "3.2.0", - "editions": "1.3.3", - "typechecker": "4.4.1" + "ambi": "^2.4.0", + "eachr": "^3.1.0", + "editions": "^1.1.1", + "typechecker": "^4.0.1" }, "dependencies": { "eachr": { @@ -4073,8 +2252,8 @@ "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz", "integrity": "sha1-LDXkPqCGUW95l8+At6pk1VpKRIQ=", "requires": { - "editions": "1.3.3", - "typechecker": "4.4.1" + "editions": "^1.1.1", + "typechecker": "^4.3.0" } }, "typechecker": { @@ -4082,7 +2261,7 @@ "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.4.1.tgz", "integrity": "sha1-+XuV9RsDhBchLWd9RaNz7nvO1+Y=", "requires": { - "editions": "1.3.3" + "editions": "^1.3.3" } } } @@ -4092,7 +2271,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es6-promise": { @@ -4116,11 +2295,11 @@ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" }, "dependencies": { "esprima": { @@ -4136,7 +2315,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -4155,28 +2334,12 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "etag": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", - "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg=" - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true, - "requires": { - "duplexer": "0.1.1", - "from": "0.1.7", - "map-stream": "0.1.0", - "pause-stream": "0.0.11", - "split": "0.3.3", - "stream-combiner": "0.0.4", - "through": "2.3.8" - } + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "eventemitter2": { "version": "0.4.14", @@ -4195,13 +2358,13 @@ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exit": { @@ -4215,9 +2378,9 @@ "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", "dev": true, "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" }, "dependencies": { "braces": { @@ -4226,7 +2389,7 @@ "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "expand-range": "0.1.1" + "expand-range": "^0.1.0" } }, "expand-range": { @@ -4235,8 +2398,8 @@ "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" } }, "is-number": { @@ -4258,7 +2421,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -4266,139 +2429,184 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, + "expect-ct": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" + }, "express": { - "version": "4.13.4", - "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", - "integrity": "sha1-PAt288d1kMg0VzkGHsC9O6Bn7CQ=", + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "requires": { - "accepts": "1.2.13", + "accepts": "~1.3.5", "array-flatten": "1.1.1", - "content-disposition": "0.5.1", - "content-type": "1.0.4", - "cookie": "0.1.5", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", "cookie-signature": "1.0.6", - "debug": "2.2.0", - "depd": "1.1.1", - "escape-html": "1.0.3", - "etag": "1.7.0", - "finalhandler": "0.4.1", - "fresh": "0.3.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "1.0.10", - "qs": "4.0.0", - "range-parser": "1.0.3", - "send": "0.13.1", - "serve-static": "1.10.3", - "type-is": "1.6.15", - "utils-merge": "1.0.0", - "vary": "1.0.1" + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" }, "dependencies": { - "accepts": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", - "integrity": "sha1-5fHzkoxtlf2WVYw27D2dDeSm7Oo=", + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { - "mime-types": "2.1.17", - "negotiator": "0.5.3" + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" } }, - "cookie": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", - "integrity": "sha1-armUiksa4hlSzSWIUwpHItQETXw=" + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, "finalhandler": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", - "integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { - "debug": "2.2.0", - "escape-html": "1.0.3", - "on-finished": "2.3.0", + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", "unpipe": "1.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "negotiator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", - "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, - "qs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", - "integrity": "sha1-wx2bdOwn33XlQ6hseHKO2NRiNgc=" - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" - }, - "vary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", - "integrity": "sha1-meSYFWaihhGN+yuBc1ffeZM3bRA=" + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" } } }, "express-session": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.12.1.tgz", - "integrity": "sha1-Q5CXQW2zCia4430YmyablhgLaFk=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.16.1.tgz", + "integrity": "sha512-pWvUL8Tl5jUy1MLH7DhgUlpoKeVPUTe+y6WQD9YhcN0C5qAhsh4a8feVjiUXo3TFhIy191YGZ4tewW9edbl2xQ==", "requires": { - "cookie": "0.2.3", + "cookie": "0.3.1", "cookie-signature": "1.0.6", - "crc": "3.3.0", - "debug": "2.2.0", - "depd": "1.1.1", - "on-headers": "1.0.1", - "parseurl": "1.3.2", - "uid-safe": "2.0.0", - "utils-merge": "1.0.0" + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.0.2", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.2", + "uid-safe": "~2.1.5" }, "dependencies": { - "cookie": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.2.3.tgz", - "integrity": "sha1-GllTavaFN6IReKATRvh8sFnSrlw=" - }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -4407,12 +2615,31 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "extendr": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz", "integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=", "requires": { - "typechecker": "2.0.8" + "typechecker": "~2.0.1" }, "dependencies": { "typechecker": { @@ -4428,9 +2655,9 @@ "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==", "dev": true, "requires": { - "iconv-lite": "0.4.19", - "jschardet": "1.6.0", - "tmp": "0.0.33" + "iconv-lite": "^0.4.17", + "jschardet": "^1.4.2", + "tmp": "^0.0.33" }, "dependencies": { "iconv-lite": { @@ -4446,7 +2673,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-opts": { @@ -4454,7 +2681,7 @@ "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz", "integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=", "requires": { - "typechecker": "2.0.8" + "typechecker": "~2.0.1" }, "dependencies": { "typechecker": { @@ -4507,9 +2734,9 @@ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" }, "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=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -4534,16 +2761,21 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, + "feature-policy": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.2.0.tgz", + "integrity": "sha512-2hGrlv6efG4hscYVZeaYjpzpT6I2OZgYqE2yDUzeAcKj2D1SH0AsEzqJNXzdoglEddcIXQQYop3lD97XpG75Jw==" + }, "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "file-sync-cmp": { @@ -4568,11 +2800,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^1.1.3", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -4581,12 +2813,12 @@ "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -4604,18 +2836,13 @@ } } }, - "find-index": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", - "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=" - }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "findup-sync": { @@ -4623,8 +2850,8 @@ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz", "integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=", "requires": { - "glob": "3.2.11", - "lodash": "2.4.2" + "glob": "~3.2.9", + "lodash": "~2.4.1" }, "dependencies": { "glob": { @@ -4632,8 +2859,8 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", "requires": { - "inherits": "2.0.3", - "minimatch": "0.3.0" + "inherits": "2", + "minimatch": "0.3" } }, "lodash": { @@ -4646,8 +2873,8 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } } } @@ -4657,6 +2884,12 @@ "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=" }, + "flatted": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", + "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", + "dev": true + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -4667,7 +2900,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -4676,13 +2909,23 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + } } }, "formidable": { @@ -4696,21 +2939,23 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, "frameguard": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.0.0.tgz", "integrity": "sha1-e8rUae57lukdEs6zlZx4I1qScuk=" }, "fresh": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", - "integrity": "sha1-ZR+DjiJCTnVm3hYdg1jKoZn4PU8=" - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-access": { "version": "1.0.1", @@ -4718,7 +2963,35 @@ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "null-check": "1.0.0" + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + } } }, "fs.realpath": { @@ -4727,900 +3000,531 @@ "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==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, "optional": true, "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.36" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "version": "1.1.1", + "bundled": true, + "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "bundled": true, + "dev": true }, "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "version": "1.2.0", + "bundled": true, + "dev": true, "optional": true }, "are-we-there-yet": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "version": "1.1.5", + "bundled": true, + "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "requires": { - "hoek": "2.16.3" - } + "version": "1.0.0", + "bundled": true, + "dev": true }, "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "version": "1.1.11", + "bundled": true, + "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, "optional": true }, "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=" - }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "1.0.0" - } + "bundled": true, + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "bundled": true, + "dev": true }, "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=" + "bundled": true, + "dev": true }, "core-util-is": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "optional": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": 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=", - "optional": true - } - } + "bundled": true, + "dev": true, + "optional": true }, "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "version": "4.1.1", + "bundled": true, + "dev": true, "optional": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "version": "0.6.0", + "bundled": true, + "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "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=", + "bundled": true, + "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=", + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "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=", - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "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=", - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "bundled": true, + "dev": true, + "optional": true }, "gauge": { "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "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", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": 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=", - "optional": true - } + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "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", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "version": "7.1.3", + "bundled": true, + "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^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=", + "bundled": true, + "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "safer-buffer": ">= 2.1.2 < 3" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "bundled": true, + "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "bundled": true, + "dev": true }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "bundled": true, + "dev": true, "optional": true }, "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=", + "bundled": true, + "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "optional": true - }, "isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "bundled": true, + "dev": true, "optional": true }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": 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=", - "optional": true, - "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=", - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", - "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", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=" - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "requires": { - "mime-db": "1.27.0" - } - }, "minimatch": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "bundled": true, + "dev": true, "requires": { - "brace-expansion": "1.1.7" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "bundled": true, + "dev": true, "requires": { "minimist": "0.0.8" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "version": "2.1.1", + "bundled": true, + "dev": true, "optional": true }, - "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=", + "needle": { + "version": "2.3.0", + "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" + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "bundled": true, + "dev": true, "optional": true, "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.0.tgz", - "integrity": "sha512-ocolIkZYZt8UveuiDS0yAkkIjid1o7lPG8cYm05yNYzBn8ykQtaiPMEGp8fY9tKdDgm8okpdKzkvu1y9hUYugA==", + "version": "4.1.2", + "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" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "resolved": "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=", - "optional": true + "bundled": true, + "dev": true }, "object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "bundled": true, + "dev": true, "optional": true }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "bundled": true, + "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "bundled": true, + "dev": true, "optional": true }, "os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "bundled": true, + "dev": true, "optional": true }, "osenv": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", - "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "version": "0.1.5", + "bundled": true, + "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "bundled": true, + "dev": true, "optional": true }, "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "optional": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "2.0.0", + "bundled": true, + "dev": true, "optional": true }, "rc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "version": "1.2.8", + "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" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "bundled": true, + "dev": true, "optional": true } } }, "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "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", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "version": "2.3.6", + "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" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.1.3" } }, "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true }, "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "version": "5.7.0", + "bundled": true, + "dev": true, "optional": true }, "set-blocking": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "bundled": true, + "dev": true, "optional": true }, "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "bundled": true, + "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "optional": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "integrity": "sha1-/yo+T9BEl1Vf7Zezmg/YL6+zozw=", - "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", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true - } - } - }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "bundled": true, + "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", - "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "optional": true - }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "bundled": true, + "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "bundled": true, + "dev": true, "optional": true }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.4.0.tgz", - "integrity": "sha1-I74tf2cagzk3bL2wuP4/3r8xeYQ=", + "version": "4.4.8", + "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" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "optional": true - }, "util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", + "bundled": true, + "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "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==", + "version": "1.1.3", + "bundled": true, + "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true } } }, @@ -5630,7 +3534,7 @@ "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dev": true, "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { @@ -5646,10 +3550,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -5669,8 +3573,9 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, "requires": { - "globule": "0.1.0" + "globule": "~0.1.0" } }, "generate-function": { @@ -5685,7 +3590,7 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -5711,12 +3616,12 @@ "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==", "dev": true, "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.1", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.3" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" }, "dependencies": { "debug": { @@ -5730,6 +3635,11 @@ } } }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getobject": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", @@ -5740,7 +3650,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -5748,12 +3658,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "dependencies": { "minimatch": { @@ -5761,7 +3671,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } } } @@ -5771,8 +3681,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -5780,31 +3690,56 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob-stream": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-4.1.1.tgz", - "integrity": "sha1-uELfENaIx+trz869hG84UilrMgA=", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz", + "integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=", "requires": { - "glob": "4.5.3", - "glob2base": "0.0.12", - "minimatch": "2.0.10", - "ordered-read-streams": "0.1.0", - "through2": "0.6.5", - "unique-stream": "2.2.1" + "extend": "^3.0.0", + "glob": "^5.0.3", + "glob-parent": "^3.0.0", + "micromatch": "^2.3.7", + "ordered-read-streams": "^0.3.0", + "through2": "^0.6.0", + "to-absolute-glob": "^0.1.1", + "unique-stream": "^2.0.2" }, "dependencies": { "glob": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", - "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "2.0.10", - "once": "1.4.0" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" } }, "isarray": { @@ -5813,11 +3748,11 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, "minimatch": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "readable-stream": { @@ -5825,10 +3760,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -5841,35 +3776,19 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" } } } }, - "glob-watcher": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.8.tgz", - "integrity": "sha1-aK62Yefizo02NDgbLsQV8AxrwqQ=", - "requires": { - "gaze": "0.5.2" - } - }, - "glob2base": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", - "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", - "requires": { - "find-index": "0.1.1" - } - }, "global-dirs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz", "integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=", "dev": true, "requires": { - "ini": "1.3.4" + "ini": "^1.3.4" } }, "globby": { @@ -5877,10 +3796,10 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-2.1.0.tgz", "integrity": "sha1-npGSvNM/Srak+JTl5+qLcTITxII=", "requires": { - "array-union": "1.0.2", - "async": "1.5.2", - "glob": "5.0.15", - "object-assign": "3.0.0" + "array-union": "^1.0.1", + "async": "^1.2.1", + "glob": "^5.0.3", + "object-assign": "^3.0.0" }, "dependencies": { "glob": { @@ -5888,11 +3807,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "minimatch": { @@ -5900,7 +3819,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "object-assign": { @@ -5914,31 +3833,35 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, "requires": { - "glob": "3.1.21", - "lodash": "1.0.2", - "minimatch": "0.2.14" + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" }, "dependencies": { "glob": { "version": "3.1.21", "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" } }, "inherits": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", - "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=" + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true }, "lodash": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", - "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=" + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true } } }, @@ -5948,17 +3871,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.0", - "safe-buffer": "5.1.1", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" } }, "graceful-fs": { @@ -5982,26 +3905,26 @@ "resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz", "integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=", "requires": { - "async": "0.1.22", - "coffee-script": "1.3.3", - "colors": "0.6.2", + "async": "~0.1.22", + "coffee-script": "~1.3.3", + "colors": "~0.6.2", "dateformat": "1.0.2-1.2.3", - "eventemitter2": "0.4.14", - "exit": "0.1.2", - "findup-sync": "0.1.3", - "getobject": "0.1.0", - "glob": "3.1.21", - "grunt-legacy-log": "0.1.3", - "grunt-legacy-util": "0.2.0", - "hooker": "0.2.3", - "iconv-lite": "0.2.11", - "js-yaml": "2.0.5", - "lodash": "0.9.2", - "minimatch": "0.2.14", - "nopt": "1.0.10", - "rimraf": "2.2.8", - "underscore.string": "2.2.1", - "which": "1.0.9" + "eventemitter2": "~0.4.13", + "exit": "~0.1.1", + "findup-sync": "~0.1.2", + "getobject": "~0.1.0", + "glob": "~3.1.21", + "grunt-legacy-log": "~0.1.0", + "grunt-legacy-util": "~0.2.0", + "hooker": "~0.2.3", + "iconv-lite": "~0.2.11", + "js-yaml": "~2.0.5", + "lodash": "~0.9.2", + "minimatch": "~0.2.12", + "nopt": "~1.0.10", + "rimraf": "~2.2.8", + "underscore.string": "~2.2.1", + "which": "~1.0.5" }, "dependencies": { "async": { @@ -6014,9 +3937,9 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", "requires": { - "graceful-fs": "1.2.3", - "inherits": "1.0.2", - "minimatch": "0.2.14" + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" } }, "inherits": { @@ -6037,9 +3960,9 @@ "integrity": "sha1-6evEBHYx9QEtkidww5N4EzytEPQ=", "dev": true, "requires": { - "findup-sync": "0.1.3", - "nopt": "1.0.10", - "resolve": "0.3.1" + "findup-sync": "~0.1.0", + "nopt": "~1.0.10", + "resolve": "~0.3.1" }, "dependencies": { "resolve": { @@ -6056,7 +3979,7 @@ "integrity": "sha1-3+11eLs9axMmGqTT7MTcG7mR2aA=", "dev": true, "requires": { - "grunt": "0.4.5" + "grunt": "~0.4.0" } }, "grunt-concurrent": { @@ -6064,10 +3987,10 @@ "resolved": "https://registry.npmjs.org/grunt-concurrent/-/grunt-concurrent-2.3.1.tgz", "integrity": "sha1-Hj2zjM71o9oRleYdYx/n4yE0TSM=", "requires": { - "arrify": "1.0.1", - "async": "1.5.2", - "indent-string": "2.1.0", - "pad-stream": "1.2.0" + "arrify": "^1.0.1", + "async": "^1.2.1", + "indent-string": "^2.0.0", + "pad-stream": "^1.0.0" } }, "grunt-contrib-concat": { @@ -6076,8 +3999,8 @@ "integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=", "dev": true, "requires": { - "chalk": "1.1.3", - "source-map": "0.5.7" + "chalk": "^1.0.0", + "source-map": "^0.5.3" }, "dependencies": { "source-map": { @@ -6094,8 +4017,8 @@ "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", "dev": true, "requires": { - "chalk": "1.1.3", - "file-sync-cmp": "0.1.1" + "chalk": "^1.1.1", + "file-sync-cmp": "^0.1.0" } }, "grunt-contrib-csslint": { @@ -6103,10 +4026,10 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-csslint/-/grunt-contrib-csslint-1.0.0.tgz", "integrity": "sha1-0Fk4y6KncYXEppdTwXUdYW6p+pg=", "requires": { - "chalk": "1.1.3", - "csslint": "0.10.0", - "lodash": "3.10.1", - "strip-json-comments": "1.0.4" + "chalk": "^1.0.0", + "csslint": "^0.10.0", + "lodash": "^3.8.0", + "strip-json-comments": "^1.0.2" }, "dependencies": { "lodash": { @@ -6126,9 +4049,9 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-1.0.2.tgz", "integrity": "sha1-FzTL09hMpzZHWLflj/GOUqpgu3Y=", "requires": { - "chalk": "1.1.3", - "clean-css": "3.4.28", - "maxmin": "1.1.0" + "chalk": "^1.0.0", + "clean-css": "~3.4.2", + "maxmin": "^1.1.0" } }, "grunt-contrib-jshint": { @@ -6136,9 +4059,9 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.0.0.tgz", "integrity": "sha1-MPQFpR3mVr+m6wKbmkZLn+AqQCo=", "requires": { - "chalk": "1.1.3", - "hooker": "0.2.3", - "jshint": "2.9.5" + "chalk": "^1.1.1", + "hooker": "^0.2.3", + "jshint": "~2.9.1" } }, "grunt-contrib-uglify": { @@ -6146,11 +4069,11 @@ "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-0.11.1.tgz", "integrity": "sha1-XiKi9nbNEdhx/CoPCKqbKXMEUyU=", "requires": { - "chalk": "1.1.3", - "lodash": "4.17.4", - "maxmin": "2.1.0", - "uglify-js": "2.6.4", - "uri-path": "1.0.0" + "chalk": "^1.0.0", + "lodash": "^4.0.1", + "maxmin": "^2.0.0", + "uglify-js": "~2.6.0", + "uri-path": "^1.0.0" }, "dependencies": { "async": { @@ -6163,7 +4086,7 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", "requires": { - "duplexer": "0.1.1" + "duplexer": "^0.1.1" } }, "maxmin": { @@ -6171,10 +4094,10 @@ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", "requires": { - "chalk": "1.1.3", - "figures": "1.7.0", - "gzip-size": "3.0.0", - "pretty-bytes": "3.0.1" + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^3.0.0", + "pretty-bytes": "^3.0.0" } }, "pretty-bytes": { @@ -6182,7 +4105,7 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "source-map": { @@ -6195,10 +4118,10 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" } } } @@ -6209,9 +4132,9 @@ "integrity": "sha1-ZP3LolpjX1tNobbOb5DaCutuPxU=", "dev": true, "requires": { - "async": "0.2.10", - "gaze": "0.5.2", - "lodash": "2.4.2", + "async": "~0.2.9", + "gaze": "~0.5.1", + "lodash": "~2.4.1", "tiny-lr-fork": "0.0.5" }, "dependencies": { @@ -6234,8 +4157,8 @@ "resolved": "https://registry.npmjs.org/grunt-env/-/grunt-env-0.4.4.tgz", "integrity": "sha1-OziEOo1zcXfdyfiTh5+2nOGgvC8=", "requires": { - "ini": "1.3.4", - "lodash": "2.4.2" + "ini": "~1.3.0", + "lodash": "~2.4.1" }, "dependencies": { "lodash": { @@ -6252,20 +4175,837 @@ "dev": true }, "grunt-html2js": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/grunt-html2js/-/grunt-html2js-0.3.8.tgz", - "integrity": "sha1-/qyPAfDcfAHCZKHLl4zB8viHIA4=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/grunt-html2js/-/grunt-html2js-0.6.0.tgz", + "integrity": "sha512-A6hJjb904r9dQuUKAmYrwwKJonbZeXD0zMCGCBxMZg3ocE2wbNfCaOcorxIZyKi7i/UaiIvEXpDNukQgO663sw==", "requires": { - "chokidar": "1.7.0", - "html-minifier": "3.0.3", - "jade": "1.11.0" + "chokidar": "^2", + "html-minifier": "^3", + "pug": "^2" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "optional": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } } }, "grunt-i18nlint": { "version": "github:jwarby/grunt-i18nlint#6b398f775c8ca881a16f45a3cb94c5b79ee11e20", + "from": "github:jwarby/grunt-i18nlint", "dev": true, "requires": { - "chalk": "1.1.3", + "chalk": "^1.1.0", "i18n-lint": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1" } }, @@ -6275,7 +5015,7 @@ "integrity": "sha1-1SZ2q5R3nksgBStfNRnrMmU9xWY=", "dev": true, "requires": { - "lodash": "3.10.1" + "lodash": "^3.10.1" }, "dependencies": { "lodash": { @@ -6291,11 +5031,11 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz", "integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=", "requires": { - "colors": "0.6.2", - "grunt-legacy-log-utils": "0.1.1", - "hooker": "0.2.3", - "lodash": "2.4.2", - "underscore.string": "2.3.3" + "colors": "~0.6.2", + "grunt-legacy-log-utils": "~0.1.1", + "hooker": "~0.2.3", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -6315,9 +5055,9 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz", "integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=", "requires": { - "colors": "0.6.2", - "lodash": "2.4.2", - "underscore.string": "2.3.3" + "colors": "~0.6.2", + "lodash": "~2.4.1", + "underscore.string": "~2.3.3" }, "dependencies": { "lodash": { @@ -6337,13 +5077,13 @@ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz", "integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=", "requires": { - "async": "0.1.22", - "exit": "0.1.2", - "getobject": "0.1.0", - "hooker": "0.2.3", - "lodash": "0.9.2", - "underscore.string": "2.2.1", - "which": "1.0.9" + "async": "~0.1.22", + "exit": "~0.1.1", + "getobject": "~0.1.0", + "hooker": "~0.2.3", + "lodash": "~0.9.2", + "underscore.string": "~2.2.1", + "which": "~1.0.5" }, "dependencies": { "async": { @@ -6370,8 +5110,8 @@ "integrity": "sha1-xhzfMqZ2KVQRX+cSuYPj3Y4MlVQ=", "dev": true, "requires": { - "hooker": "0.2.3", - "mkdirp": "0.5.1" + "hooker": "~0.2.3", + "mkdirp": "^0.5.0" } }, "grunt-newer": { @@ -6397,8 +5137,8 @@ "resolved": "https://registry.npmjs.org/grunt-ng-annotate/-/grunt-ng-annotate-1.0.1.tgz", "integrity": "sha1-WCnR46dw8kuc2irtA34xp1XkyMU=", "requires": { - "lodash.clonedeep": "3.0.2", - "ng-annotate": "1.2.2" + "lodash.clonedeep": "^3.0.1", + "ng-annotate": "^1.0.0" } }, "grunt-nodemon": { @@ -6407,7 +5147,7 @@ "integrity": "sha1-rrwSq2bXtbOwVM3Yxfgi7BpCPvk=", "dev": true, "requires": { - "nodemon": "1.12.1" + "nodemon": "^1.7.1" } }, "grunt-usemin": { @@ -6416,10 +5156,10 @@ "integrity": "sha1-WrZ5UQ1nLOpWbMcXq+i4oAn2QcI=", "dev": true, "requires": { - "chalk": "1.1.3", - "debug": "2.6.9", - "lodash": "3.10.1", - "path-exists": "1.0.0" + "chalk": "^1.1.1", + "debug": "^2.1.3", + "lodash": "^3.6.0", + "path-exists": "^1.0.0" }, "dependencies": { "debug": { @@ -6451,7 +5191,26 @@ "integrity": "sha1-d+dfpw6c+OxqRnnX15r0Q6MgL1U=", "dev": true, "requires": { - "wiredep": "4.0.0" + "wiredep": "^4.0.0" + } + }, + "gulp-sourcemaps": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz", + "integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=", + "requires": { + "convert-source-map": "^1.1.1", + "graceful-fs": "^4.1.2", + "strip-bom": "^2.0.0", + "through2": "^2.0.0", + "vinyl": "^1.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + } } }, "gzip-size": { @@ -6459,52 +5218,27 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz", "integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=", "requires": { - "browserify-zlib": "0.1.4", - "concat-stream": "1.6.0" + "browserify-zlib": "^0.1.4", + "concat-stream": "^1.4.1" } }, "handlebars": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", - "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz", + "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" }, "dependencies": { - "optimist": { + "source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" - } - }, - "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 - } - } + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -6514,20 +5248,20 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "5.3.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -6535,7 +5269,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary": { @@ -6553,6 +5287,23 @@ } } }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, "has-cors": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", @@ -6564,120 +5315,119 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "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=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "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=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, "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": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.0", - "sntp": "2.1.0" + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" } }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" - } + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true }, "helmet": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.5.0.tgz", - "integrity": "sha1-4dbeJ9LjMX0xguANZy3z0OHhJTk=", + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.16.0.tgz", + "integrity": "sha512-rsTKRogc5OYGlvSHuq5QsmOsOzF6uDoMqpfh+Np8r23+QxDq+SUx90Rf8HyIKQVl7H6NswZEwfcykinbAeZ6UQ==", "requires": { - "connect": "3.6.0", + "depd": "2.0.0", "dns-prefetch-control": "0.1.0", "dont-sniff-mimetype": "1.0.0", + "expect-ct": "0.1.1", + "feature-policy": "0.2.0", "frameguard": "3.0.0", - "helmet-csp": "2.4.0", + "helmet-crossdomain": "0.3.0", + "helmet-csp": "2.7.1", "hide-powered-by": "1.0.0", "hpkp": "2.0.0", - "hsts": "2.0.0", - "ienoopen": "1.0.0", + "hsts": "2.2.0", + "ienoopen": "1.1.0", "nocache": "2.0.0", "referrer-policy": "1.1.0", - "x-xss-protection": "1.0.0" + "x-xss-protection": "1.1.0" }, "dependencies": { - "connect": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.0.tgz", - "integrity": "sha1-8JpPfc0XMktmO3JcgVvbHEFYpG4=", - "requires": { - "debug": "2.6.1", - "finalhandler": "1.0.0", - "parseurl": "1.3.2", - "utils-merge": "1.0.0" - } - }, - "debug": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "integrity": "sha1-eYVQkLosTjEVzH2HaUkdWPBJE1E=", - "requires": { - "ms": "0.7.2" - } - }, - "finalhandler": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz", - "integrity": "sha1-tWkcLAkSCS8YrCPpQWveXNfcZ1U=", - "requires": { - "debug": "2.6.1", - "encodeurl": "1.0.1", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=" - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" } } }, + "helmet-crossdomain": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz", + "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==" + }, "helmet-csp": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.4.0.tgz", - "integrity": "sha1-flOhVxZ6BkWq3XF30SrmxgXBhC4=", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.1.tgz", + "integrity": "sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==", "requires": { "camelize": "1.0.0", - "content-security-policy-builder": "1.1.0", + "content-security-policy-builder": "2.0.0", "dasherize": "2.0.0", - "lodash.reduce": "4.6.0", - "platform": "1.3.3" + "platform": "1.3.5" } }, "hide-powered-by": { @@ -6685,11 +5435,6 @@ "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz", "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" - }, "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", @@ -6716,55 +5461,56 @@ "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" }, "hsts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.0.0.tgz", - "integrity": "sha1-pSI0xgcN7PIUsra3C7FE0H5Hdsc=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz", + "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==", "requires": { - "core-util-is": "1.0.2" + "depd": "2.0.0" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + } } }, "html-minifier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.0.3.tgz", - "integrity": "sha1-IbtUY1GbcQo7Cg6OUKLsCytpDkw=", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "requires": { - "change-case": "3.0.1", - "clean-css": "3.4.28", - "commander": "2.9.0", - "he": "1.1.1", - "ncname": "1.0.0", - "relateurl": "0.2.7", - "uglify-js": "2.7.5" + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" }, "dependencies": { - "async": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", - "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "requires": { + "source-map": "~0.6.0" + } }, "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "1.0.1" - } + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "uglify-js": { - "version": "2.7.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", - "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", - "requires": { - "async": "0.2.10", - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -6773,11 +5519,11 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.5.1", - "entities": "1.0.0", - "readable-stream": "1.1.14" + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" }, "dependencies": { "isarray": { @@ -6790,10 +5536,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -6804,12 +5550,15 @@ } }, "http-errors": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { + "depd": "~1.1.2", "inherits": "2.0.3", - "statuses": "1.4.0" + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" } }, "http-proxy": { @@ -6818,8 +5567,8 @@ "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", "dev": true, "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "1.x.x", + "requires-port": "1.x.x" } }, "http-proxy-agent": { @@ -6828,9 +5577,9 @@ "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" }, "dependencies": { "debug": { @@ -6849,9 +5598,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-proxy-agent": { @@ -6860,9 +5609,9 @@ "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" }, "dependencies": { "debug": { @@ -6881,24 +5630,25 @@ "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.3.tgz", "integrity": "sha1-LYzxwkciYCwgQdAbpq5eqlE4jw4=", "requires": { - "debug": "3.1.0", - "make-plural": "3.0.6", - "math-interval-parser": "1.1.0", - "messageformat": "0.3.1", - "mustache": "2.3.0", - "sprintf-js": "1.1.1" + "debug": "*", + "make-plural": "^3.0.3", + "math-interval-parser": "^1.1.0", + "messageformat": "^0.3.1", + "mustache": "*", + "sprintf-js": ">=1.0.3" } }, "i18n-lint": { "version": "git://github.com/jwarby/i18n-lint.git#0a06373c0d880047ad680239c103d60ed414efc1", + "from": "git://github.com/jwarby/i18n-lint.git", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.8.1", - "glob": "5.0.15", - "htmlparser2": "3.8.3", - "lodash": "3.10.1", - "node.extend": "1.1.6" + "chalk": "^1.0.0", + "commander": "^2.0.0", + "glob": "^5.0.0", + "htmlparser2": "^3.0.0", + "lodash": "^3.0.0", + "node.extend": "^1.0.0" }, "dependencies": { "glob": { @@ -6907,11 +5657,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "lodash": { @@ -6926,7 +5676,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } } } @@ -6937,9 +5687,9 @@ "integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=" }, "ienoopen": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz", - "integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz", + "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==" }, "ignore-by-default": { "version": "1.0.1", @@ -6952,8 +5702,8 @@ "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.2.0.tgz", "integrity": "sha1-2ln7hYl25KXkNwLM0fKC/byeV1Y=", "requires": { - "editions": "1.3.3", - "ignorepatterns": "1.1.0" + "editions": "^1.3.3", + "ignorepatterns": "^1.1.0" } }, "ignorepatterns": { @@ -6978,7 +5728,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -6991,8 +5741,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -7011,20 +5761,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.0", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.0.5", - "figures": "2.0.0", - "lodash": "4.17.4", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -7039,7 +5789,7 @@ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", "dev": true, "requires": { - "color-convert": "1.9.0" + "color-convert": "^1.9.0" } }, "chalk": { @@ -7048,9 +5798,9 @@ "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "figures": { @@ -7059,7 +5809,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "is-fullwidth-code-point": { @@ -7074,8 +5824,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -7084,7 +5834,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -7093,7 +5843,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } } } @@ -7111,9 +5861,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", - "integrity": "sha1-X6eM8wG4JceKvDBC2BJyMEnqI8c=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "is": { "version": "3.2.1", @@ -7121,6 +5871,14 @@ "integrity": "sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=", "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -7131,7 +5889,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.10.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -7144,7 +5902,41 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" + } + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } } }, "is-dotfile": { @@ -7157,7 +5949,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-expression": { @@ -7165,8 +5957,8 @@ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", "requires": { - "acorn": "4.0.13", - "object-assign": "4.1.1" + "acorn": "~4.0.2", + "object-assign": "^4.0.1" }, "dependencies": { "acorn": { @@ -7191,7 +5983,7 @@ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -7200,7 +5992,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -7208,7 +6000,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -7217,16 +6009,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.0", - "is-path-inside": "1.0.0" - } - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "1.1.4" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-my-json-valid": { @@ -7235,10 +6019,10 @@ "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": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-npm": { @@ -7252,7 +6036,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -7273,7 +6057,7 @@ "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", "dev": true, "requires": { - "is-path-inside": "1.0.0" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -7282,7 +6066,22 @@ "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "is-posix-bracket": { @@ -7317,7 +6116,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-retry-allowed": { @@ -7329,27 +6128,28 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "1.1.3" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-valid-glob": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz", + "integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -7386,20 +6186,20 @@ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.11", - "js-yaml": "3.10.0", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.0", - "wordwrap": "1.0.0" + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, "dependencies": { "abbrev": { @@ -7409,12 +6209,12 @@ "dev": true }, "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "esprima": { @@ -7429,11 +6229,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -7443,19 +6243,19 @@ "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==", + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "1.0.9", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "dependencies": { "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true } } @@ -7466,7 +6266,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "nopt": { @@ -7475,7 +6275,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.0.9" + "abbrev": "1" } }, "resolve": { @@ -7496,7 +6296,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "which": { @@ -7505,7 +6305,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "wordwrap": { @@ -7516,49 +6316,6 @@ } } }, - "jade": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz", - "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=", - "optional": true, - "requires": { - "character-parser": "1.2.1", - "clean-css": "3.4.28", - "commander": "2.6.0", - "constantinople": "3.0.2", - "jstransformer": "0.0.2", - "mkdirp": "0.5.1", - "transformers": "2.1.0", - "uglify-js": "2.8.29", - "void-elements": "2.0.1", - "with": "4.0.3" - }, - "dependencies": { - "commander": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz", - "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0=", - "optional": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "optional": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - } - } - }, "jasmine-core": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", @@ -7580,15 +6337,14 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz", "integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=", "requires": { - "argparse": "0.1.16", - "esprima": "1.0.4" + "argparse": "~ 0.1.11", + "esprima": "~ 1.0.2" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jschardet": { "version": "1.6.0", @@ -7597,31 +6353,26 @@ "dev": true }, "jshint": { - "version": "2.9.5", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz", - "integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=", + "version": "2.9.7", + "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.7.tgz", + "integrity": "sha512-Q8XN38hGsVQhdlM+4gd1Xl7OB1VieSuCJf+fEJjpo59JH99bVJhXRXAh26qQ15wfdd1VPMuDWNeSWoNl53T4YA==", "requires": { - "cli": "1.0.1", - "console-browserify": "1.1.0", - "exit": "0.1.2", - "htmlparser2": "3.8.3", - "lodash": "3.7.0", - "minimatch": "3.0.4", - "shelljs": "0.3.0", - "strip-json-comments": "1.0.4" + "cli": "~1.0.0", + "console-browserify": "1.1.x", + "exit": "0.1.x", + "htmlparser2": "3.8.x", + "lodash": "~4.17.10", + "minimatch": "~3.0.2", + "shelljs": "0.3.x", + "strip-json-comments": "1.0.x" }, "dependencies": { - "lodash": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz", - "integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "strip-json-comments": { @@ -7637,18 +6388,23 @@ "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=" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "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" + "jsonify": "~0.0.0" } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -7665,7 +6421,7 @@ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" }, "dependencies": { "graceful-fs": { @@ -7700,13 +6456,12 @@ } }, "jstransformer": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz", - "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=", - "optional": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", "requires": { - "is-promise": "2.1.0", - "promise": "6.1.0" + "is-promise": "^2.0.0", + "promise": "^7.0.1" } }, "kareem": { @@ -7720,47 +6475,41 @@ "integrity": "sha1-B3ULG9Bj1+fnuRvNLmNU2PKqh0Q=", "dev": true, "requires": { - "batch": "0.5.3", - "bluebird": "2.11.0", - "body-parser": "1.14.2", - "chokidar": "1.7.0", - "colors": "1.1.2", - "connect": "3.6.5", - "core-js": "2.5.1", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "http-proxy": "1.16.2", - "isbinaryfile": "3.0.2", - "lodash": "3.10.1", - "log4js": "0.6.38", - "mime": "1.3.4", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "rimraf": "2.6.2", - "socket.io": "1.7.4", - "source-map": "0.5.7", - "useragent": "2.2.1" + "batch": "^0.5.3", + "bluebird": "^2.9.27", + "body-parser": "^1.12.4", + "chokidar": "^1.4.1", + "colors": "^1.1.0", + "connect": "^3.3.5", + "core-js": "^2.1.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "expand-braces": "^0.1.1", + "glob": "^7.0.0", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^3.8.0", + "log4js": "^0.6.31", + "mime": "^1.3.4", + "minimatch": "^3.0.0", + "optimist": "^0.6.1", + "rimraf": "^2.3.3", + "socket.io": "^1.4.5", + "source-map": "^0.5.3", + "useragent": "^2.1.6" }, "dependencies": { - "bluebird": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", - "dev": true - }, "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", "dev": true }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, "lodash": { @@ -7775,26 +6524,32 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" - } - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "brace-expansion": "^1.1.7" } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } } }, "source-map": { @@ -7811,8 +6566,8 @@ "integrity": "sha1-TG1wDRY6nTTGGO/YeRi+SeekqMk=", "dev": true, "requires": { - "fs-access": "1.0.1", - "which": "1.3.0" + "fs-access": "^1.0.0", + "which": "^1.2.1" }, "dependencies": { "which": { @@ -7821,7 +6576,7 @@ "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } } } @@ -7832,10 +6587,10 @@ "integrity": "sha1-sNWLECXVnVxmICYxhvHVj11TSMU=", "dev": true, "requires": { - "dateformat": "1.0.12", - "istanbul": "0.4.5", - "minimatch": "3.0.4", - "source-map": "0.5.7" + "dateformat": "^1.0.6", + "istanbul": "^0.4.0", + "minimatch": "^3.0.0", + "source-map": "^0.5.1" }, "dependencies": { "dateformat": { @@ -7844,8 +6599,8 @@ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.3.0" } }, "minimatch": { @@ -7854,7 +6609,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "source-map": { @@ -7883,7 +6638,7 @@ "integrity": "sha1-Y4T1sY6tsnALB8ixUkFuudZL7aE=", "dev": true, "requires": { - "karma-jasmine": "0.2.3" + "karma-jasmine": "~0.2" }, "dependencies": { "karma-jasmine": { @@ -7901,21 +6656,1287 @@ "dev": true, "requires": { "chalk": "1.1.1", - "karma": "0.13.22" + "karma": ">=0.13" }, "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "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": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "bluebird": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, "chalk": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "integrity": "sha1-UJr7ZwZudJn36zU1x3RFdyri0Bk=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.1.0", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } + }, + "chokidar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "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" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "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, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": 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" + } + }, + "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.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "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.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.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 + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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.0.2" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "karma": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", + "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + } + }, + "log4js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.1.0.tgz", + "integrity": "sha512-eDa+zZPeVEeK6QGJAePyXM6pg4P3n3TO5rX9iZMVY48JshsTyLJZLIL5HipI1kQ2qLsSyOpUqNND/C5H4WhhiA==", + "dev": true, + "requires": { + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.2", + "streamroller": "^1.0.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "mime": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz", + "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true } } }, @@ -7931,8 +7952,59 @@ "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true, "requires": { - "lodash": "4.17.4", - "phantomjs-prebuilt": "2.1.15" + "lodash": "^4.0.1", + "phantomjs-prebuilt": "^2.1.7" + }, + "dependencies": { + "es6-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", + "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.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "phantomjs-prebuilt": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", + "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "kerberos": { @@ -7941,7 +8013,7 @@ "integrity": "sha1-yymJHCHCKsGV8xQLl90SIE/qfcI=", "optional": true, "requires": { - "nan": "1.8.4" + "nan": "~1.8" }, "dependencies": { "nan": { @@ -7963,7 +8035,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -7972,7 +8044,7 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" }, "dependencies": { "graceful-fs": { @@ -7990,7 +8062,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -7998,13 +8070,21 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "requires": { + "readable-stream": "^2.0.5" + } + }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "lcov-parse": { @@ -8019,8 +8099,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -8028,11 +8108,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "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" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "graceful-fs": { @@ -8043,9 +8123,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash._arraycopy": { "version": "3.0.0", @@ -8062,8 +8142,8 @@ "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._baseclone": { @@ -8071,12 +8151,12 @@ "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=", "requires": { - "lodash._arraycopy": "3.0.0", - "lodash._arrayeach": "3.0.0", - "lodash._baseassign": "3.2.0", - "lodash._basefor": "3.0.3", - "lodash.isarray": "3.0.4", - "lodash.keys": "3.1.2" + "lodash._arraycopy": "^3.0.0", + "lodash._arrayeach": "^3.0.0", + "lodash._baseassign": "^3.0.0", + "lodash._basefor": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -8100,17 +8180,6 @@ "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", "integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=" }, - "lodash._createassigner": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", - "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true, - "requires": { - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9", - "lodash.restparam": "3.6.1" - } - }, "lodash._getnative": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", @@ -8140,9 +8209,9 @@ "integrity": "sha1-hGiMc9MrWpDKJWFpY/GJJSqZcEM=", "dev": true, "requires": { - "lodash._baseclone": "3.3.0", - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9" + "lodash._baseclone": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.clonedeep": { @@ -8150,8 +8219,8 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=", "requires": { - "lodash._baseclone": "3.3.0", - "lodash._bindcallback": "3.0.1" + "lodash._baseclone": "^3.0.0", + "lodash._bindcallback": "^3.0.0" } }, "lodash.create": { @@ -8160,32 +8229,9 @@ "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.defaults": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", - "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", - "dev": true, - "requires": { - "lodash.assign": "3.2.0", - "lodash.restparam": "3.6.1" - }, - "dependencies": { - "lodash.assign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", - "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true, - "requires": { - "lodash._baseassign": "3.2.0", - "lodash._createassigner": "3.1.1", - "lodash.keys": "3.1.2" - } - } + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.defaultsdeep": { @@ -8194,12 +8240,12 @@ "integrity": "sha1-bBpYbmxWR7DmTi15gUG4g2FYvoo=", "dev": true, "requires": { - "lodash._baseclone": "4.5.7", - "lodash._stack": "4.1.3", - "lodash.isplainobject": "4.0.6", - "lodash.keysin": "4.2.0", - "lodash.mergewith": "4.6.0", - "lodash.rest": "4.0.5" + "lodash._baseclone": "^4.0.0", + "lodash._stack": "^4.0.0", + "lodash.isplainobject": "^4.0.0", + "lodash.keysin": "^4.0.0", + "lodash.mergewith": "^4.0.0", + "lodash.rest": "^4.0.0" }, "dependencies": { "lodash._baseclone": { @@ -8220,6 +8266,11 @@ "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -8231,9 +8282,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.keysin": { @@ -8248,23 +8299,12 @@ "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", "dev": true }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, "lodash.rest": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz", "integrity": "sha1-lU73UEkmIDjJbR/Jiyj9r58Hcqo=", "dev": true }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, "log-driver": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", @@ -8277,8 +8317,8 @@ "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" + "readable-stream": "~1.0.2", + "semver": "~4.3.3" }, "dependencies": { "isarray": { @@ -8293,10 +8333,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "semver": { @@ -8323,8 +8363,8 @@ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -8332,14 +8372,6 @@ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "requires": { - "lower-case": "1.1.4" - } - }, "lowercase-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", @@ -8357,23 +8389,23 @@ "integrity": "sha1-F+E9ThrpF1DqVlNUjNiecUetAkQ=" }, "main-bower-files": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/main-bower-files/-/main-bower-files-2.9.0.tgz", - "integrity": "sha1-aG2tmSG1yqEXCPVR4hC41OrMPrY=", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/main-bower-files/-/main-bower-files-2.13.1.tgz", + "integrity": "sha1-fhvFxJg1LM7NXfCH8T1fMbwFfT4=", "requires": { - "chalk": "1.1.3", - "extend": "2.0.1", - "globby": "2.1.0", - "multimatch": "2.1.0", - "path-exists": "1.0.0", - "strip-json-comments": "1.0.4", - "vinyl-fs": "1.0.0" + "chalk": "^1.0.0", + "extend": "^2.0.1", + "globby": "^2.0.0", + "multimatch": "^2.0.0", + "path-exists": "^1.0.0", + "strip-json-comments": "^1.0.2", + "vinyl-fs": "^2.4.3" }, "dependencies": { "extend": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.1.tgz", - "integrity": "sha1-HugBBonnOV/5RIJByYZSvHWagmA=" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-2.0.2.tgz", + "integrity": "sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==" }, "path-exists": { "version": "1.0.0", @@ -8393,7 +8425,7 @@ "integrity": "sha512-0Pkui4wLJ7rxvmfUvs87skoEaxmu0hCUApF8nonzpl7q//FWp9zu8W61Scz4sd/kUiqDxvUhtoam2efDyiBzcA==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" }, "dependencies": { "pify": { @@ -8409,7 +8441,7 @@ "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-3.0.6.tgz", "integrity": "sha1-IDOgO6wpC487uRJY9lud9+iwHKc=", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -8420,23 +8452,30 @@ } } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } }, "math-interval-parser": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-1.1.0.tgz", "integrity": "sha1-2+2lsGsySZc8bfYXD94jhvCv2JM=", "requires": { - "xregexp": "2.0.0" + "xregexp": "^2.0.0" } }, "maxmin": { @@ -8444,10 +8483,10 @@ "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz", "integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=", "requires": { - "chalk": "1.1.3", - "figures": "1.7.0", - "gzip-size": "1.0.0", - "pretty-bytes": "1.0.4" + "chalk": "^1.0.0", + "figures": "^1.0.1", + "gzip-size": "^1.0.0", + "pretty-bytes": "^1.0.0" } }, "media-typer": { @@ -8460,16 +8499,16 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "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" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" }, "dependencies": { "minimist": { @@ -8485,43 +8524,11 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-stream": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-0.1.8.tgz", - "integrity": "sha1-SKB7O0oSHXSj7b/c20sIrb8CQLE=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", "requires": { - "through2": "0.6.5" - }, - "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.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - } + "readable-stream": "^2.0.1" } }, "messageformat": { @@ -8529,11 +8536,11 @@ "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-0.3.1.tgz", "integrity": "sha1-5Y//gkXps5cXmeW0PbWLPpQX9aI=", "requires": { - "async": "1.5.2", - "glob": "6.0.4", - "make-plural": "3.0.6", - "nopt": "3.0.6", - "watchr": "2.4.13" + "async": "~1.5.2", + "glob": "~6.0.4", + "make-plural": "~3.0.3", + "nopt": "~3.0.6", + "watchr": "~2.4.13" }, "dependencies": { "glob": { @@ -8541,11 +8548,11 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "minimatch": { @@ -8553,7 +8560,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "nopt": { @@ -8561,7 +8568,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } } } @@ -8572,9 +8579,9 @@ "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", "requires": { "debug": "2.6.9", - "methods": "1.1.2", - "parseurl": "1.3.2", - "vary": "1.1.2" + "methods": "~1.1.2", + "parseurl": "~1.3.2", + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -8597,25 +8604,26 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "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" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true }, "mime-db": { "version": "1.30.0", @@ -8627,7 +8635,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", "requires": { - "mime-db": "1.30.0" + "mime-db": "~1.30.0" } }, "mimic-fn": { @@ -8641,8 +8649,8 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", "requires": { - "lru-cache": "2.7.3", - "sigmund": "1.0.1" + "lru-cache": "2", + "sigmund": "~1.0.0" } }, "minimist": { @@ -8650,6 +8658,25 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -8690,7 +8717,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "debug": { @@ -8708,12 +8735,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -8728,7 +8755,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "supports-color": { @@ -8737,7 +8764,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8773,7 +8800,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "debug": { @@ -8797,12 +8824,12 @@ "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -8817,7 +8844,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } }, "ms": { @@ -8832,7 +8859,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8857,10 +8884,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", "integrity": "sha1-jyUC4LyeOw2huUUgqrtOJgPsr64=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -8875,7 +8902,7 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.2.31.tgz", "integrity": "sha1-8eZAXwPUCEb9uDinAlB6/6PLLDk=", "requires": { - "bson": "0.4.23" + "bson": "~0.4.20" } }, "mongoose": { @@ -8884,7 +8911,7 @@ "integrity": "sha1-6XT/tq6MUPQJgBqEl6mOnztR8t0=", "requires": { "async": "1.5.2", - "bson": "0.4.23", + "bson": "~0.4.23", "hooks-fixed": "1.1.0", "kareem": "1.0.1", "mongodb": "2.1.18", @@ -8935,8 +8962,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.18.tgz", "integrity": "sha1-kGhLO3xzVtZa41Y5HTCw8kiATHo=", "requires": { - "bson": "0.4.23", - "require_optional": "1.0.1" + "bson": "~0.4.23", + "require_optional": "~1.0.0" } }, "mpath": { @@ -8977,10 +9004,10 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", "integrity": "sha1-jyUC4LyeOw2huUUgqrtOJgPsr64=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "sliced": { @@ -8996,21 +9023,21 @@ } }, "morgan": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz", - "integrity": "sha1-eErHc05KRTqcbm6GgKkyknXItoc=", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", "requires": { - "basic-auth": "1.1.0", - "debug": "2.6.8", - "depd": "1.1.1", - "on-finished": "2.3.0", - "on-headers": "1.0.1" + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" }, "dependencies": { "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } @@ -9020,7 +9047,8 @@ "mout": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mout/-/mout-1.1.0.tgz", - "integrity": "sha512-XsP0vf4As6BfqglxZqbqQ8SR6KQot2AgxvR0gG+WtUkf90vUXchMOZQtPf/Hml1rEffJupqL/tIrU6EYhsUQjw==" + "integrity": "sha512-XsP0vf4As6BfqglxZqbqQ8SR6KQot2AgxvR0gG+WtUkf90vUXchMOZQtPf/Hml1rEffJupqL/tIrU6EYhsUQjw==", + "dev": true }, "mpath": { "version": "0.1.1", @@ -9068,7 +9096,7 @@ "resolved": "https://registry.npmjs.org/msgpack-js/-/msgpack-js-0.3.0.tgz", "integrity": "sha1-Aw7AjFlW+cp9F9QKVy1Tlv7BCSM=", "requires": { - "bops": "0.0.7" + "bops": "~0.0.6" } }, "multimatch": { @@ -9076,10 +9104,10 @@ "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", "requires": { - "array-differ": "1.0.0", - "array-union": "1.0.2", - "arrify": "1.0.1", - "minimatch": "3.0.4" + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" }, "dependencies": { "minimatch": { @@ -9087,7 +9115,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" } } } @@ -9109,22 +9137,45 @@ "dev": true }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true, "optional": true }, - "natives": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", - "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=" - }, - "ncname": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "xml-char-classes": "1.0.0" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } } }, "negotiator": { @@ -9132,6 +9183,12 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "dev": true + }, "netmask": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", @@ -9143,18 +9200,18 @@ "resolved": "https://registry.npmjs.org/ng-annotate/-/ng-annotate-1.2.2.tgz", "integrity": "sha1-3D/FG6Cy+LOF2+BH9NoG9YCh/WE=", "requires": { - "acorn": "2.6.4", - "alter": "0.2.0", - "convert-source-map": "1.1.3", - "optimist": "0.6.1", - "ordered-ast-traverse": "1.1.1", - "simple-fmt": "0.1.0", - "simple-is": "0.2.0", - "source-map": "0.5.7", - "stable": "0.1.6", - "stringmap": "0.2.2", - "stringset": "0.2.1", - "tryor": "0.1.2" + "acorn": "~2.6.4", + "alter": "~0.2.0", + "convert-source-map": "~1.1.2", + "optimist": "~0.6.1", + "ordered-ast-traverse": "~1.1.1", + "simple-fmt": "~0.1.0", + "simple-is": "~0.2.0", + "source-map": "~0.5.3", + "stable": "~0.1.5", + "stringmap": "~0.2.2", + "stringset": "~0.2.1", + "tryor": "~0.1.2" }, "dependencies": { "acorn": { @@ -9167,8 +9224,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "source-map": { @@ -9184,7 +9241,7 @@ "integrity": "sha1-xKw+xxGw/wR8PcqcZVc2XuI2UZ8=", "dev": true, "requires": { - "chai-nightwatch": "0.1.1", + "chai-nightwatch": "~0.1.x", "ejs": "0.8.3", "lodash.clone": "3.0.3", "lodash.defaultsdeep": "4.3.2", @@ -9202,7 +9259,7 @@ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.0.0" } }, "optimist": { @@ -9211,8 +9268,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } } } @@ -9222,7 +9279,7 @@ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "nocache": { @@ -9236,7 +9293,7 @@ "integrity": "sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=", "dev": true, "requires": { - "is": "3.2.1" + "is": "^3.1.0" } }, "nodemailer": { @@ -9245,45 +9302,1028 @@ "integrity": "sha1-uVhksH+s7oKH6CMu/9bx1W7HWrI=" }, "nodemon": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.12.1.tgz", - "integrity": "sha1-mWpW3EnZ8Wu/G3ik3gjxNjSzh40=", + "version": "1.18.11", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.18.11.tgz", + "integrity": "sha512-KdN3tm1zkarlqNo4+W9raU3ihM4H15MVMSE/f9rYDZmFgDHAfAJsomYrHhApAkuUemYjFyEeXlpCOQ2v5gtBEw==", "dev": true, "requires": { - "chokidar": "1.7.0", - "debug": "2.6.9", - "es6-promise": "3.3.1", - "ignore-by-default": "1.0.1", - "lodash.defaults": "3.1.2", - "minimatch": "3.0.4", - "ps-tree": "1.1.0", - "touch": "3.1.0", - "undefsafe": "0.0.3", - "update-notifier": "2.3.0" + "chokidar": "^2.1.5", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.6", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "ms": "2.0.0" + "color-convert": "^1.9.0" } }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "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": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.5.tgz", + "integrity": "sha512-i0TprVWp+Kj4WRPtInjexJ8Q+BqTE909VpH8xVhXrJkoc5QC8VO9TryGOqTr+2hljzc1sC62t22h5tZePodM/A==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "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" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "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, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": 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" + } + }, + "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.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "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.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.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 + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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.0.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" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.8" + "brace-expansion": "^1.1.7" + } + }, + "nan": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz", + "integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "requires": { + "debug": "^2.2.0" + }, + "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" + } + } + } + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" } } } @@ -9293,7 +10333,7 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "noptify": { @@ -9302,7 +10342,7 @@ "integrity": "sha1-WPZUpz2XU98MUdlobckhBKZ/S7s=", "dev": true, "requires": { - "nopt": "2.0.0" + "nopt": "~2.0.0" }, "dependencies": { "nopt": { @@ -9311,7 +10351,7 @@ "integrity": "sha1-ynQW8gpeP5w7hhgPlilfo9C1Lg0=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } } } @@ -9321,10 +10361,10 @@ "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==", "requires": { - "hosted-git-info": "2.5.0", - "is-builtin-module": "1.0.0", - "semver": "5.4.1", - "validate-npm-package-license": "3.0.1" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -9332,7 +10372,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "npm-run-path": { @@ -9341,7 +10381,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "null-check": { @@ -9370,13 +10410,63 @@ "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } } }, "on-finished": { @@ -9388,16 +10478,16 @@ } }, "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -9406,16 +10496,17 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.1.0" + "mimic-fn": "^1.0.0" } }, "optimist": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", - "optional": true, + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, "requires": { - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optionator": { @@ -9424,12 +10515,12 @@ "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" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -9450,7 +10541,7 @@ "resolved": "https://registry.npmjs.org/ordered-ast-traverse/-/ordered-ast-traverse-1.1.1.tgz", "integrity": "sha1-aEOhcLwO7otSDMjdwd3TqjD6BXw=", "requires": { - "ordered-esprima-props": "1.1.0" + "ordered-esprima-props": "~1.1.0" } }, "ordered-esprima-props": { @@ -9459,27 +10550,34 @@ "integrity": "sha1-qYJwht9fAQqmDpvQK24DNc6i/8s=" }, "ordered-read-streams": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", - "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz", + "integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=", + "requires": { + "is-stream": "^1.0.1", + "readable-stream": "^2.0.1" + } }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "osenv": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -9500,15 +10598,15 @@ "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "get-uri": "2.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "pac-resolver": "2.0.0", - "raw-body": "2.1.7", - "socks-proxy-agent": "2.1.1" + "agent-base": "2", + "debug": "2", + "extend": "3", + "get-uri": "2", + "http-proxy-agent": "1", + "https-proxy-agent": "1", + "pac-resolver": "~2.0.0", + "raw-body": "2", + "socks-proxy-agent": "2" }, "dependencies": { "debug": { @@ -9528,11 +10626,11 @@ "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", "dev": true, "requires": { - "co": "3.0.6", - "degenerator": "1.0.4", + "co": "~3.0.6", + "degenerator": "~1.0.2", "ip": "1.0.1", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "netmask": "~1.0.4", + "thunkify": "~2.1.1" }, "dependencies": { "co": { @@ -9549,10 +10647,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.1", - "registry-url": "3.1.0", - "semver": "5.4.1" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "pad-stream": { @@ -9560,11 +10658,11 @@ "resolved": "https://registry.npmjs.org/pad-stream/-/pad-stream-1.2.0.tgz", "integrity": "sha1-Yx3Mn3mBC3BZZeid7eps/w/B38k=", "requires": { - "meow": "3.7.0", - "pumpify": "1.3.5", - "repeating": "2.0.1", - "split2": "1.1.1", - "through2": "2.0.3" + "meow": "^3.0.0", + "pumpify": "^1.3.3", + "repeating": "^2.0.0", + "split2": "^1.0.0", + "through2": "^2.0.0" } }, "pako": { @@ -9577,7 +10675,7 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "parse-glob": { @@ -9585,10 +10683,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -9596,7 +10694,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parsejson": { @@ -9604,7 +10702,7 @@ "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseqs": { @@ -9612,7 +10710,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parserlib": { @@ -9625,7 +10723,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -9633,21 +10731,17 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "requires": { - "camel-case": "3.0.0", - "upper-case-first": "1.1.2" - } + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "passport": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/passport/-/passport-0.3.2.tgz", "integrity": "sha1-ndAJ+RXo/glbASSgG4+C2gdRAQI=", "requires": { - "passport-strategy": "1.0.0", + "passport-strategy": "1.x.x", "pause": "0.0.1" } }, @@ -9656,7 +10750,7 @@ "resolved": "https://registry.npmjs.org/passport-anonymous/-/passport-anonymous-1.0.1.tgz", "integrity": "sha1-JB43J07ETft/bK0jS0HEODhrwRc=", "requires": { - "passport-strategy": "1.0.0" + "passport-strategy": "1.x.x" } }, "passport-local": { @@ -9664,7 +10758,7 @@ "resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz", "integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=", "requires": { - "passport-strategy": "1.0.0" + "passport-strategy": "1.x.x" } }, "passport-localapikey-update": { @@ -9672,8 +10766,8 @@ "resolved": "https://registry.npmjs.org/passport-localapikey-update/-/passport-localapikey-update-0.5.0.tgz", "integrity": "sha1-5yA+TnaCd+7oA7cRk8BheoPSYmQ=", "requires": { - "passport-strategy": "1.0.0", - "pkginfo": "0.2.3" + "passport-strategy": "1.x.x", + "pkginfo": "0.2.x" } }, "passport-strategy": { @@ -9681,20 +10775,17 @@ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz", "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ=" }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "requires": { - "no-case": "2.3.2" - } + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -9715,9 +10806,9 @@ "dev": true }, "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "0.1.7", @@ -9729,9 +10820,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "graceful-fs": { @@ -9746,15 +10837,6 @@ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz", "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=" }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true, - "requires": { - "through": "2.3.8" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -9772,14 +10854,14 @@ "integrity": "sha1-RCSsog4U0lXAsIia9va4lz2hDg0=", "dev": true, "requires": { - "extract-zip": "1.5.0", - "fs-extra": "0.26.7", - "hasha": "2.2.0", - "kew": "0.7.0", - "progress": "1.1.8", - "request": "2.67.0", - "request-progress": "2.0.1", - "which": "1.2.14" + "extract-zip": "~1.5.0", + "fs-extra": "~0.26.4", + "hasha": "^2.2.0", + "kew": "~0.7.0", + "progress": "~1.1.8", + "request": "~2.67.0", + "request-progress": "~2.0.1", + "which": "~1.2.2" }, "dependencies": { "assert-plus": { @@ -9794,7 +10876,7 @@ "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "dev": true, "requires": { - "lodash": "4.17.4" + "lodash": "^4.14.0" } }, "aws-sign2": { @@ -9809,7 +10891,7 @@ "integrity": "sha1-/FQhoo/UImA2w7OJGmaiW8ZNIm4=", "dev": true, "requires": { - "readable-stream": "2.0.6" + "readable-stream": "~2.0.5" } }, "boom": { @@ -9818,7 +10900,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "caseless": { @@ -9839,9 +10921,9 @@ "integrity": "sha1-U/fUPFHF5D+ByP3QMyHGMb5o1hE=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" + "inherits": "~2.0.1", + "readable-stream": "~2.0.0", + "typedarray": "~0.0.5" } }, "cryptiles": { @@ -9850,7 +10932,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "debug": { @@ -9877,9 +10959,9 @@ "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "dev": true, "requires": { - "async": "2.5.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } }, "fs-extra": { @@ -9888,11 +10970,11 @@ "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.2.8" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, "graceful-fs": { @@ -9907,10 +10989,10 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.11.0", - "is-my-json-valid": "2.16.1", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "hawk": { @@ -9919,10 +11001,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -9937,9 +11019,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "mkdirp": { @@ -9969,12 +11051,12 @@ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "request": { @@ -9983,26 +11065,26 @@ "integrity": "sha1-ivdHgOK/EeoK6aqWXBHxGv0nJ0I=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "bl": "1.0.3", - "caseless": "0.11.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "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": "5.2.1", - "stringstream": "0.0.5", - "tough-cookie": "2.2.2", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "bl": "~1.0.0", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~1.0.0-rc3", + "har-validator": "~2.0.2", + "hawk": "~3.1.0", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.0", + "qs": "~5.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.2.0", + "tunnel-agent": "~0.4.1" } }, "sntp": { @@ -10011,7 +11093,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "string_decoder": { @@ -10038,205 +11120,7 @@ "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", "dev": true, "requires": { - "isexe": "2.0.0" - } - } - } - }, - "phantomjs-prebuilt": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.15.tgz", - "integrity": "sha1-IPhugtM0nFBZF1J3RbekEeCLOQM=", - "dev": true, - "requires": { - "es6-promise": "4.0.5", - "extract-zip": "1.6.6", - "fs-extra": "1.0.0", - "hasha": "2.2.0", - "kew": "0.7.0", - "progress": "1.1.8", - "request": "2.81.0", - "request-progress": "2.0.1", - "which": "1.2.14" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "requires": { - "boom": "2.10.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 - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" - } - }, - "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" - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "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=", - "dev": true - }, - "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "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=", - "dev": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dev": 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.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } - }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "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" + "isexe": "^2.0.0" } } } @@ -10256,7 +11140,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkginfo": { @@ -10265,9 +11149,14 @@ "integrity": "sha1-cjnEKl72wwuPMoQ52bn/cQQkkPg=" }, "platform": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.3.tgz", - "integrity": "sha1-ZGx3ARiZhwtqCQPnXpl+jlHadGE=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", + "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "prelude-ls": { "version": "1.1.2", @@ -10294,8 +11183,8 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "assert-plus": { @@ -10313,7 +11202,7 @@ "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "cryptiles": { @@ -10321,7 +11210,7 @@ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "form-data": { @@ -10329,9 +11218,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-schema": { @@ -10344,8 +11233,8 @@ "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" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "hawk": { @@ -10353,10 +11242,10 @@ "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" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "hoek": { @@ -10369,9 +11258,9 @@ "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" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "performance-now": { @@ -10389,28 +11278,28 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "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.17", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } }, "sntp": { @@ -10418,7 +11307,7 @@ "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } } } @@ -10433,8 +11322,8 @@ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.1.0" } }, "process-nextick-args": { @@ -10449,12 +11338,11 @@ "dev": true }, "promise": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz", - "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", - "optional": true, + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "1.0.0" + "asap": "~2.0.3" } }, "propprop": { @@ -10464,12 +11352,12 @@ "dev": true }, "proxy-addr": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", - "integrity": "sha1-DUCoL4Afw1VWfS7LZe/j8HfxIcU=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.0.5" + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" } }, "proxy-agent": { @@ -10478,14 +11366,14 @@ "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "lru-cache": "2.6.5", - "pac-proxy-agent": "1.1.0", - "socks-proxy-agent": "2.1.1" + "agent-base": "2", + "debug": "2", + "extend": "3", + "http-proxy-agent": "1", + "https-proxy-agent": "1", + "lru-cache": "~2.6.5", + "pac-proxy-agent": "1", + "socks-proxy-agent": "2" }, "dependencies": { "debug": { @@ -10505,90 +11393,61 @@ } } }, - "ps-tree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", - "integrity": "sha1-tCGyQUDWID8e08dplrRCewjowBQ=", - "dev": true, - "requires": { - "event-stream": "3.3.4" - } - }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + }, + "pstree.remy": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.6.tgz", + "integrity": "sha512-NdF35+QsqD7EgNEI5mkI/X+UwaxVEbQaz9f4IooEmMUv6ZPmlTQYGjBPJGgrlzNdjSvIy4MWMg6Q6vCgBO2K+w==", + "dev": true + }, "pug": { - "version": "2.0.0-rc.4", - "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.0-rc.4.tgz", - "integrity": "sha512-SL7xovj6E2Loq9N0UgV6ynjMLW4urTFY/L/Fprhvz13Xc5vjzkjZjI1QHKq31200+6PSD8PyU6MqrtCTJj6/XA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.3.tgz", + "integrity": "sha1-ccuoJTfJWl6rftBGluQiH1Oqh44=", "requires": { - "pug-code-gen": "2.0.0", - "pug-filters": "2.1.5", - "pug-lexer": "3.1.0", - "pug-linker": "3.0.3", - "pug-load": "2.0.9", - "pug-parser": "4.0.0", - "pug-runtime": "2.0.3", - "pug-strip-comments": "1.0.2" + "pug-code-gen": "^2.0.1", + "pug-filters": "^3.1.0", + "pug-lexer": "^4.0.0", + "pug-linker": "^3.0.5", + "pug-load": "^2.0.11", + "pug-parser": "^5.0.0", + "pug-runtime": "^2.0.4", + "pug-strip-comments": "^1.0.3" } }, "pug-attrs": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.2.tgz", - "integrity": "sha1-i+KyIlVo/6ddG4Zpgr/59BEa/8s=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.3.tgz", + "integrity": "sha1-owlflw5kFR972tlX7vVftdeQXRU=", "requires": { - "constantinople": "3.0.2", - "js-stringify": "1.0.2", - "pug-runtime": "2.0.3" + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.4" } }, "pug-code-gen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.0.tgz", - "integrity": "sha512-E4oiJT+Jn5tyEIloj8dIJQognbiNNp0i0cAJmYtQTFS0soJ917nlIuFtqVss3IXMEyQKUew3F4gIkBpn18KbVg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.1.tgz", + "integrity": "sha1-CVHsgyJddNjPxHan+Zolm199BQw=", "requires": { - "constantinople": "3.0.2", - "doctypes": "1.1.0", - "js-stringify": "1.0.2", - "pug-attrs": "2.0.2", - "pug-error": "1.3.2", - "pug-runtime": "2.0.3", - "void-elements": "2.0.1", - "with": "5.1.1" - }, - "dependencies": { - "acorn": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", - "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=" - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=" - } - } - }, - "with": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", - "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", - "requires": { - "acorn": "3.3.0", - "acorn-globals": "3.1.0" - } - } + "constantinople": "^3.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-runtime": "^2.0.4", + "void-elements": "^2.0.1", + "with": "^5.0.0" } }, "pug-error": { @@ -10597,130 +11456,113 @@ "integrity": "sha1-U659nSm7A89WRJOgJhCfVMR/XyY=" }, "pug-filters": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-2.1.5.tgz", - "integrity": "sha512-xkw71KtrC4sxleKiq+cUlQzsiLn8pM5+vCgkChW2E6oNOzaqTSIBKIQ5cl4oheuDzvJYCTSYzRaVinMUrV4YLQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.0.tgz", + "integrity": "sha1-JxZVVbwEwjbkqisDZiRt+gIbYm4=", "requires": { - "clean-css": "3.4.28", - "constantinople": "3.0.2", + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", "jstransformer": "1.0.0", - "pug-error": "1.3.2", - "pug-walk": "1.1.5", - "resolve": "1.5.0", - "uglify-js": "2.8.29" + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" }, "dependencies": { - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", "requires": { - "is-promise": "2.1.0", - "promise": "7.3.1" - } - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "2.0.6" + "source-map": "~0.6.0" } }, "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "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=" + } } } } }, "pug-lexer": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-3.1.0.tgz", - "integrity": "sha1-/QhzdtSmdbT1n4/vQiiDQ06VgaI=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.0.0.tgz", + "integrity": "sha1-IQwYRX7y4XYCQnQMXmR715TOwng=", "requires": { - "character-parser": "2.2.0", - "is-expression": "3.0.0", - "pug-error": "1.3.2" - }, - "dependencies": { - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "requires": { - "is-regex": "1.0.4" - } - } + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.2" } }, "pug-linker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.3.tgz", - "integrity": "sha512-DCKczglCXOzJ1lr4xUj/lVHYvS+lGmR2+KTCjZjtIpdwaN7lNOoX2SW6KFX5X4ElvW+6ThwB+acSUg08UJFN5A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.5.tgz", + "integrity": "sha1-npp65ABWgtAn3uuWsAD4juuDoC8=", "requires": { - "pug-error": "1.3.2", - "pug-walk": "1.1.5" + "pug-error": "^1.3.2", + "pug-walk": "^1.1.7" } }, "pug-load": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.9.tgz", - "integrity": "sha512-BDdZOCru4mg+1MiZwRQZh25+NTRo/R6/qArrdWIf308rHtWA5N9kpoUskRe4H6FslaQujC+DigH9LqlBA4gf6Q==", + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.11.tgz", + "integrity": "sha1-5kjlftET/iwfRdV4WOorrWvAFSc=", "requires": { - "object-assign": "4.1.1", - "pug-walk": "1.1.5" + "object-assign": "^4.1.0", + "pug-walk": "^1.1.7" } }, "pug-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-4.0.0.tgz", - "integrity": "sha512-ocEUFPdLG9awwFj0sqi1uiZLNvfoodCMULZzkRqILryIWc/UUlDlxqrKhKjAIIGPX/1SNsvxy63+ayEGocGhQg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.0.tgz", + "integrity": "sha1-45Stmz/KkxI5QK/4hcBuRKt+aOQ=", "requires": { - "pug-error": "1.3.2", + "pug-error": "^1.3.2", "token-stream": "0.0.1" } }, "pug-runtime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.3.tgz", - "integrity": "sha1-mBYmB7D86eJU1CfzOYelrucWi9o=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.4.tgz", + "integrity": "sha1-4XjhvaaKsujArPybztLFT9iM61g=" }, "pug-strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.2.tgz", - "integrity": "sha1-0xOvoBvMN0mA4TmeI+vy65vchRM=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.3.tgz", + "integrity": "sha1-8VWVkiBu3G+FMQ2s9K+0igJa9Z8=", "requires": { - "pug-error": "1.3.2" + "pug-error": "^1.3.2" } }, "pug-walk": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.5.tgz", - "integrity": "sha512-rJlH1lXerCIAtImXBze3dtKq/ykZMA4rpO9FnPcIgsWcxZLOvd8zltaoeOVFyBSSqCkhhJWbEbTMga8UxWUUSA==" + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.7.tgz", + "integrity": "sha1-wA1cUSi6xYBr7BXSt+fNq+QlMfM=" }, "pump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", "requires": { - "end-of-stream": "1.4.0", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -10728,9 +11570,9 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz", "integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=", "requires": { - "duplexify": "3.5.1", - "inherits": "2.0.3", - "pump": "1.0.2" + "duplexify": "^3.1.2", + "inherits": "^2.0.1", + "pump": "^1.0.0" } }, "punycode": { @@ -10744,16 +11586,27 @@ "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, "rand-token": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/rand-token/-/rand-token-0.2.1.tgz", "integrity": "sha1-3GfIEjMGyRInstw/W+pz0wE3YiY=" }, + "random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=" + }, "random-js": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/random-js/-/random-js-1.0.8.tgz", @@ -10764,8 +11617,8 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -10773,7 +11626,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -10781,7 +11634,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -10791,15 +11644,15 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, "range-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", - "integrity": "sha1-aHKCNTXGkuLCoBA4Jq/YLC4P8XU=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raven": { "version": "0.9.0", @@ -10807,8 +11660,8 @@ "integrity": "sha1-8khubcHrbz6/QEhgQPMx7/xcSI0=", "requires": { "cookie": "0.1.0", - "lsmod": "0.0.3", - "node-uuid": "1.4.8", + "lsmod": "~0.0.3", + "node-uuid": "~1.4.1", "stack-trace": "0.0.7" }, "dependencies": { @@ -10828,6 +11681,7 @@ "version": "2.1.7", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz", "integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=", + "dev": true, "requires": { "bytes": "2.4.0", "iconv-lite": "0.4.13", @@ -10837,12 +11691,14 @@ "bytes": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=" + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true }, "iconv-lite": { "version": "0.4.13", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", - "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=" + "integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=", + "dev": true } } }, @@ -10852,10 +11708,10 @@ "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -10871,9 +11727,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -10881,8 +11737,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -10890,37 +11746,313 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" } }, "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.3", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" }, "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "requires": { - "brace-expansion": "1.1.8" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "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" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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.0.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" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -10930,8 +12062,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redis": { @@ -10939,8 +12071,8 @@ "resolved": "https://registry.npmjs.org/redis/-/redis-2.4.2.tgz", "integrity": "sha1-L5FgJVompsrSt5vwhH4GcoChRuo=", "requires": { - "double-ended-queue": "2.1.0-0", - "redis-commands": "1.3.1" + "double-ended-queue": "^2.1.0-0", + "redis-commands": "^1.0.1" } }, "redis-commands": { @@ -10959,12 +12091,26 @@ "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.1.0.tgz", "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=" }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexp-clone": { @@ -10978,8 +12124,8 @@ "integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=", "dev": true, "requires": { - "rc": "1.2.2", - "safe-buffer": "5.1.1" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -10988,7 +12134,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.2" + "rc": "^1.0.1" } }, "relateurl": { @@ -11016,36 +12162,101 @@ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=" + }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.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.3.1", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "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", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } } }, "request-progress": { @@ -11054,7 +12265,7 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "1.0.0" + "throttleit": "^1.0.0" } }, "require-directory": { @@ -11074,8 +12285,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.4.1" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "requires-port": { @@ -11085,11 +12296,11 @@ "dev": true }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz", + "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==", "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.6" } }, "resolve-from": { @@ -11097,22 +12308,38 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "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" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "rfdc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz", + "integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA==", + "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=", "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -11126,7 +12353,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -11141,7 +12368,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -11149,22 +12376,35 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, "safefs": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz", "integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=", "requires": { - "graceful-fs": "1.2.3" + "graceful-fs": "*" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, "scandirectory": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz", "integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=", "requires": { - "ignorefs": "1.2.0", - "safefs": "3.2.2", - "taskgroup": "4.3.1" + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "taskgroup": "^4.0.5" } }, "selenium-server": { @@ -11184,103 +12424,85 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.4.1" + "semver": "^5.0.3" } }, "send": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", - "integrity": "sha1-ow1fTILIqbrprQCh2bG9vm8Zntc=", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { - "debug": "2.2.0", - "depd": "1.1.1", - "destroy": "1.0.4", - "escape-html": "1.0.3", - "etag": "1.7.0", - "fresh": "0.3.0", - "http-errors": "1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "2.3.0", - "range-parser": "1.0.3", - "statuses": "1.2.1" + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { - "ms": "0.7.1" + "ms": "2.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "requires": { - "no-case": "2.3.2", - "upper-case-first": "1.1.2" - } - }, "serve-static": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.3.tgz", - "integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.13.2" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" }, "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "requires": { - "ms": "0.7.1" - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" - }, - "send": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.2.tgz", - "integrity": "sha1-dl52B8gFVFK7pvCwUllTUJhgNt4=", - "requires": { - "debug": "2.2.0", - "depd": "1.1.1", - "destroy": "1.0.4", - "escape-html": "1.0.3", - "etag": "1.7.0", - "fresh": "0.3.0", - "http-errors": "1.3.1", - "mime": "1.3.4", - "ms": "0.7.1", - "on-finished": "2.3.0", - "range-parser": "1.0.3", - "statuses": "1.2.1" - } - }, - "statuses": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", - "integrity": "sha1-3e1FzBglbVHtQK7BQkidXGECbSg=" + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" } } }, @@ -11290,10 +12512,31 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "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=" + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "shebang-command": { "version": "1.2.0", @@ -11301,7 +12544,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -11381,20 +12624,114 @@ "integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=", "dev": true }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "no-case": "2.3.2" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } } }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "hoek": "4.2.0" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" } }, "socket.io": { @@ -11403,7 +12740,7 @@ "integrity": "sha1-L37O3DORvy1cc+KR/iM+bjTU3QA=", "requires": { "debug": "2.3.3", - "engine.io": "1.8.4", + "engine.io": "~1.8.4", "has-binary": "0.1.7", "object-assign": "4.1.0", "socket.io-adapter": "0.5.0", @@ -11464,7 +12801,7 @@ "component-bind": "1.0.0", "component-emitter": "1.2.1", "debug": "2.3.3", - "engine.io-client": "1.8.4", + "engine.io-client": "~1.8.4", "has-binary": "0.1.7", "indexof": "0.0.1", "object-component": "0.0.3", @@ -11601,8 +12938,8 @@ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" }, "dependencies": { "ip": { @@ -11619,9 +12956,9 @@ "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", "dev": true, "requires": { - "agent-base": "2.1.1", - "extend": "3.0.1", - "socks": "1.1.10" + "agent-base": "2", + "extend": "3", + "socks": "~1.1.5" } }, "source-map": { @@ -11629,15 +12966,32 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", "requires": { - "spdx-license-ids": "1.2.2" + "spdx-license-ids": "^1.0.2" } }, "spdx-expression-parse": { @@ -11650,13 +13004,12 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "through": "2.3.8" + "extend-shallow": "^3.0.0" } }, "split2": { @@ -11664,7 +13017,7 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz", "integrity": "sha1-Fi2bGIZfAqsvKtlYVSLbm1TEgfk=", "requires": { - "through2": "2.0.3" + "through2": "~2.0.0" } }, "sprintf-js": { @@ -11673,18 +13026,19 @@ "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=" }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "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", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stable": { @@ -11697,34 +13051,68 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.7.tgz", "integrity": "sha1-xy4Il0T8Nln1CM3ONiGvVjTsD/8=" }, - "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" - }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "duplexer": "0.1.1" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } } }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, + "streamroller": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.4.tgz", + "integrity": "sha512-Wc2Gm5ygjSX8ZpW9J7Y9FwiSzTlKSvcl0FTTMd3rn7RoxDXpBW+xD9TY5sWL2n0UR61COB0LG1BQvN6nTUQbLQ==", + "dev": true, + "requires": { + "async": "^2.6.1", + "date-format": "^2.0.0", + "debug": "^3.1.0", + "fs-extra": "^7.0.0", + "lodash": "^4.17.10" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + } + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -11732,7 +13120,7 @@ "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" + "safe-buffer": "~5.1.0" } }, "stringmap": { @@ -11746,16 +13134,16 @@ "integrity": "sha1-7yWcTjSTRDd/zRyRPdLoSMnAQrU=" }, "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==" }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -11763,7 +13151,16 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz", + "integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=", + "requires": { + "first-chunk-stream": "^1.0.0", + "strip-bom": "^2.0.0" } }, "strip-eof": { @@ -11777,7 +13174,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -11792,13 +13189,13 @@ "integrity": "sha1-HA3cOvMOgOuE68BcshItqP6UC1U=", "dev": true, "requires": { - "component-emitter": "1.2.1", + "component-emitter": "~1.2.0", "cookiejar": "2.0.6", - "debug": "2.6.9", + "debug": "2", "extend": "3.0.0", "form-data": "1.0.0-rc3", - "formidable": "1.0.17", - "methods": "1.1.2", + "formidable": "~1.0.14", + "methods": "~1.1.1", "mime": "1.3.4", "qs": "2.3.3", "readable-stream": "1.0.27-1", @@ -11832,9 +13229,9 @@ "integrity": "sha1-01vGLn+8KTeuePlIqqDTjZBgdXc=", "dev": true, "requires": { - "async": "1.5.2", - "combined-stream": "1.0.5", - "mime-types": "2.1.17" + "async": "^1.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.3" } }, "isarray": { @@ -11855,10 +13252,10 @@ "integrity": "sha1-a2eYPCA1fO/QfwFlABoW1xDZEHg=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -11875,8 +13272,8 @@ "integrity": "sha1-hQp5X5Bo0vrxngF5n/CZYuDOQ74=", "dev": true, "requires": { - "methods": "1.1.2", - "superagent": "1.8.5" + "methods": "1.x", + "superagent": "^1.7.2" } }, "supertest-session": { @@ -11885,10 +13282,10 @@ "integrity": "sha1-sxw6/uPLY5mbv9hgdlpSjAApduM=", "dev": true, "requires": { - "cookiejar": "2.0.6", - "methods": "1.1.2", - "object-assign": "4.1.1", - "supertest": "1.2.0" + "cookiejar": "^2.0.1", + "methods": "^1.1.1", + "object-assign": "^4.0.1", + "supertest": "^1.1.0" } }, "supports-color": { @@ -11896,22 +13293,13 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "1.1.4", - "upper-case": "1.1.3" - } - }, "swig": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/swig/-/swig-1.4.2.tgz", "integrity": "sha1-QIXKBFM2kQS11IPihBs5t64aq6U=", "requires": { - "optimist": "0.6.1", - "uglify-js": "2.4.24" + "optimist": "~0.6", + "uglify-js": "~2.4" }, "dependencies": { "async": { @@ -11929,8 +13317,8 @@ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "source-map": { @@ -11938,7 +13326,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.34.tgz", "integrity": "sha1-p8/omux7FoLDsZjQrPtH19CQVms=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "uglify-js": { @@ -11946,10 +13334,10 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.4.24.tgz", "integrity": "sha1-+tV1XB4Vd2WLsG/5q25UjJW+vW4=", "requires": { - "async": "0.2.10", + "async": "~0.2.6", "source-map": "0.1.34", - "uglify-to-browserify": "1.0.2", - "yargs": "3.5.4" + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.5.4" } }, "yargs": { @@ -11957,8 +13345,8 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.5.4.tgz", "integrity": "sha1-2K/49mXpTDS9JZvevRv68N3TU2E=", "requires": { - "camelcase": "1.2.1", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "decamelize": "^1.0.0", "window-size": "0.1.0", "wordwrap": "0.0.2" } @@ -11970,8 +13358,8 @@ "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz", "integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=", "requires": { - "ambi": "2.5.0", - "csextends": "1.1.1" + "ambi": "^2.2.0", + "csextends": "^1.0.3" } }, "term-size": { @@ -11980,7 +13368,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "throttleit": { @@ -12000,8 +13388,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.3", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "through2-filter": { @@ -12009,8 +13397,8 @@ "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz", "integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=", "requires": { - "through2": "2.0.3", - "xtend": "4.0.1" + "through2": "~2.0.0", + "xtend": "~4.0.0" } }, "thunkify": { @@ -12031,10 +13419,10 @@ "integrity": "sha1-Hpnh4qhGm3NquX2X7vqYxx927Qo=", "dev": true, "requires": { - "debug": "0.7.4", - "faye-websocket": "0.4.4", - "noptify": "0.0.3", - "qs": "0.5.6" + "debug": "~0.7.0", + "faye-websocket": "~0.4.3", + "noptify": "~0.0.3", + "qs": "~0.5.2" }, "dependencies": { "debug": { @@ -12051,22 +13439,31 @@ } } }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" - } - }, "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": "1.0.2" + "os-tmpdir": "~1.0.2" + } + }, + "to-absolute-glob": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz", + "integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=", + "requires": { + "extend-shallow": "^2.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } } }, "to-array": { @@ -12074,11 +13471,59 @@ "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, "to-utf8": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=" }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, "token-stream": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", @@ -12090,7 +13535,7 @@ "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "dev": true, "requires": { - "nopt": "1.0.10" + "nopt": "~1.0.10" } }, "tough-cookie": { @@ -12098,54 +13543,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", "requires": { - "punycode": "1.4.1" - } - }, - "transformers": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz", - "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=", - "optional": true, - "requires": { - "css": "1.0.8", - "promise": "2.0.0", - "uglify-js": "2.2.5" - }, - "dependencies": { - "is-promise": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", - "optional": true - }, - "promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz", - "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=", - "optional": true, - "requires": { - "is-promise": "1.0.1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "optional": true, - "requires": { - "amdefine": "1.0.1" - } - }, - "uglify-js": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz", - "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=", - "optional": true, - "requires": { - "optimist": "0.3.7", - "source-map": "0.1.43" - } - } + "punycode": "^1.4.1" } }, "trim-newlines": { @@ -12163,14 +13561,13 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type-check": { "version": "0.3.2", @@ -12178,7 +13575,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -12188,12 +13585,27 @@ "dev": true }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "~2.1.24" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + } } }, "typechecker": { @@ -12206,17 +13618,38 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "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=" }, "uid-safe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.0.0.tgz", - "integrity": "sha1-p/PGymSh9qXQTsDvPkw9U2cxcTc=", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", "requires": { - "base64-url": "1.2.1" + "random-bytes": "~1.0.0" } }, "uid2": { @@ -12229,12 +13662,6 @@ "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=" }, - "undefsafe": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-0.0.3.tgz", - "integrity": "sha1-7Mo6A+VrmvFzhbqsgSrIO5lKli8=", - "dev": true - }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -12245,13 +13672,56 @@ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz", "integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=" }, - "unique-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz", - "integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=", + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "requires": { - "json-stable-stringify": "1.0.1", - "through2-filter": "2.0.0" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + }, + "dependencies": { + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + } } }, "unique-string": { @@ -12260,20 +13730,68 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "untildify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", + "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "unzip-response": { @@ -12282,65 +13800,29 @@ "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, - "update-notifier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", - "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", - "dev": true, - "requires": { - "boxen": "1.2.2", - "chalk": "2.3.0", - "configstore": "3.1.1", - "import-lazy": "2.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.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.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.0.tgz", - "integrity": "sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - } - } + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==" }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "upper-case": "1.1.3" + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } } }, "uri-path": { @@ -12348,30 +13830,44 @@ "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=" }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, "requires": { - "lru-cache": "2.2.4", - "tmp": "0.0.33" + "lru-cache": "4.1.x", + "tmp": "0.0.x" }, "dependencies": { "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", - "dev": true + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } } } }, @@ -12395,7 +13891,7 @@ "resolved": "https://registry.npmjs.org/uuid-token-generator/-/uuid-token-generator-0.5.0.tgz", "integrity": "sha1-ZFlgnc602gyw8pJgx84pOgPB5nw=", "requires": { - "node-uuid": "1.4.8" + "node-uuid": "^1.4.7" }, "dependencies": { "node-uuid": { @@ -12405,13 +13901,18 @@ } } }, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" + }, "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=", "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" } }, "vary": { @@ -12424,88 +13925,49 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vinyl": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", - "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", "requires": { - "clone": "0.2.0", - "clone-stats": "0.0.1" + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" } }, "vinyl-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-1.0.0.tgz", - "integrity": "sha1-0VdS5owtrXQ2Tn6FNHNzU1RpLt8=", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz", + "integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=", "requires": { - "duplexify": "3.5.1", - "glob-stream": "4.1.1", - "glob-watcher": "0.0.8", - "graceful-fs": "3.0.11", - "merge-stream": "0.1.8", - "mkdirp": "0.5.1", - "object-assign": "2.1.1", - "strip-bom": "1.0.0", - "through2": "0.6.5", - "vinyl": "0.4.6" + "duplexify": "^3.2.0", + "glob-stream": "^5.3.2", + "graceful-fs": "^4.0.0", + "gulp-sourcemaps": "1.6.0", + "is-valid-glob": "^0.3.0", + "lazystream": "^1.0.0", + "lodash.isequal": "^4.0.0", + "merge-stream": "^1.0.0", + "mkdirp": "^0.5.0", + "object-assign": "^4.0.0", + "readable-stream": "^2.0.4", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^1.0.0", + "through2": "^2.0.0", + "through2-filter": "^2.0.0", + "vali-date": "^1.0.0", + "vinyl": "^1.0.0" }, "dependencies": { "graceful-fs": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz", - "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", - "requires": { - "natives": "1.1.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "object-assign": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz", - "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "strip-bom": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", - "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", - "requires": { - "first-chunk-stream": "1.0.0", - "is-utf8": "0.2.1" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" } } }, @@ -12519,14 +13981,14 @@ "resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz", "integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=", "requires": { - "eachr": "2.0.4", - "extendr": "2.1.0", - "extract-opts": "2.2.0", - "ignorefs": "1.2.0", - "safefs": "3.2.2", - "scandirectory": "2.5.0", - "taskgroup": "4.3.1", - "typechecker": "2.1.0" + "eachr": "^2.0.2", + "extendr": "^2.1.0", + "extract-opts": "^2.2.0", + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "scandirectory": "^2.5.0", + "taskgroup": "^4.2.0", + "typechecker": "^2.0.8" } }, "which": { @@ -12540,7 +14002,7 @@ "integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.1" } }, "window-size": { @@ -12553,12 +14015,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz", "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.7" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -12579,12 +14041,12 @@ "integrity": "sha1-7pVIqVBN/n6FQBpDXb7SybTqLkQ=", "dev": true, "requires": { - "bower-config": "1.4.1", - "glob": "7.1.2", - "lodash": "4.17.4", - "propprop": "0.3.1", - "through2": "2.0.3", - "wiredep-cli": "0.1.0" + "bower-config": "^1.3.0", + "glob": "^7.0.3", + "lodash": "^4.6.1", + "propprop": "^0.3.0", + "through2": "^2.0.1", + "wiredep-cli": "^0.1.0" } }, "wiredep-cli": { @@ -12593,9 +14055,9 @@ "integrity": "sha1-ZCcr/KKUYfvQdEMVix4FZSb2xzk=", "dev": true, "requires": { - "chalk": "1.1.3", - "minimist": "1.2.0", - "wiredep": "4.0.0" + "chalk": "^1.1.1", + "minimist": "^1.1.0", + "wiredep": "*" }, "dependencies": { "minimist": { @@ -12607,21 +14069,12 @@ } }, "with": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz", - "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=", - "optional": true, + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=", "requires": { - "acorn": "1.2.2", - "acorn-globals": "1.0.9" - }, - "dependencies": { - "acorn": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz", - "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ=", - "optional": true - } + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" } }, "wordwrap": { @@ -12635,8 +14088,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -12650,9 +14103,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" }, "dependencies": { "graceful-fs": { @@ -12668,8 +14121,8 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.4.tgz", "integrity": "sha1-V/QNA2gy5fUFVmKjl8Tedu1mv2E=", "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } }, "wtf-8": { @@ -12678,9 +14131,9 @@ "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=" }, "x-xss-protection": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.0.0.tgz", - "integrity": "sha1-iYr7k4abJGYc+cUvnujbjtB2Tdk=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz", + "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" }, "xdg-basedir": { "version": "3.0.0", @@ -12688,11 +14141,6 @@ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, - "xml-char-classes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=" - }, "xmlhttprequest-ssl": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", @@ -12725,9 +14173,9 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" }, "dependencies": { @@ -12744,7 +14192,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } }, "yeast": { diff --git a/package.json b/package.json index 63c6aa5a..9e0583ed 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,10 @@ }, "dependencies": { "async": "^1.4.2", - "body-parser": "~1.14.1", - "bower": "~1.6.5", + "body-parser": "^1.19.0", + "bower": "^1.8.8", "chalk": "^1.1.3", - "compression": "~1.6.0", + "compression": "^1.7.4", "connect": "^3.4.1", "connect-mongo": "^2.0.0", "consolidate": "~0.14.5", @@ -38,8 +38,8 @@ "dotenv": "^2.0.0", "email-verification": "github:tellform/node-email-verification", "envfile": "^2.1.1", - "express": "~4.13.3", - "express-session": "~1.12.1", + "express": "^4.16.4", + "express-session": "^1.16.1", "glob": "^7.0.3", "grunt": "~0.4.1", "grunt-concurrent": "~2.3.0", @@ -48,17 +48,17 @@ "grunt-contrib-jshint": "~1.0.0", "grunt-contrib-uglify": "~0.11.0", "grunt-env": "~0.4.1", - "grunt-html2js": "~0.3.5", + "grunt-html2js": "^0.6.0", "grunt-ng-annotate": "~1.0.1", - "helmet": "3.5.0", + "helmet": "^3.16.0", "i18n": "^0.8.3", "jit-grunt": "^0.9.1", - "lodash": "^4.17.4", - "main-bower-files": "~2.9.0", + "lodash": "^4.17.11", + "main-bower-files": "^2.13.1", "method-override": "~2.3.0", "mkdirp": "^0.5.1", "mongoose": "~4.4.19", - "morgan": "~1.8.1", + "morgan": "^1.9.1", "nodemailer": "~4.0.0", "passport": "~0.3.0", "passport-anonymous": "^1.0.1", @@ -66,10 +66,10 @@ "passport-localapikey-update": "^0.5.0", "path-exists": "^2.1.0", "prerender-node": "^2.2.1", - "pug": "^2.0.0-rc.4", + "pug": "^2.0.3", "random-js": "^1.0.8", "raven": "^0.9.0", - "request": "^2.83.0", + "request": "^2.88.0", "socket.io": "^1.4.6", "socket.io-redis": "^1.0.0", "swig": "~1.4.1", From 39c656c41e03c4297acf0bc9b09bf20531883340 Mon Sep 17 00:00:00 2001 From: Arielle Baldwynn Date: Mon, 29 Apr 2019 19:09:25 -0700 Subject: [PATCH 37/45] fixed nginx dockerfile --- Dockerfile | 2 +- docker-compose.yml | 57 +++++++++++++++++++++ nginx/Dockerfile | 11 ++++ nginx/conf/nginx.conf | 116 ++++++++++++++++++++++++++++++++++++++++++ nginx/conf/tls.conf | 7 +++ nginx/config.py | 26 ++++++++++ nginx/letsencrypt.py | 29 +++++++++++ nginx/start.py | 25 +++++++++ 8 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 docker-compose.yml create mode 100644 nginx/Dockerfile create mode 100644 nginx/conf/nginx.conf create mode 100644 nginx/conf/tls.conf create mode 100644 nginx/config.py create mode 100644 nginx/letsencrypt.py create mode 100644 nginx/start.py diff --git a/Dockerfile b/Dockerfile index 6b145fd1..97e1855d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ # docker run -it tellform-prod FROM phusion/baseimage:0.9.19 -MAINTAINER David Baldwynn +MAINTAINER Arielle Baldwynn # Install Utilities RUN apt-get update -q \ diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..f51c2573 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,57 @@ +version: "3" +services: + redis: + restart: always + image: redis + volumes: + - "${PWD}/.env:/opt/tellform/.env" + networks: + - back-tier + mongo: + restart: always + image: mongo + volumes: + - "$ROOT/mongo:/data" + networks: + - back-tier + tellform: + build: + context: . + env_file: + - .env + volumes: + # - "${PWD}/.env:/opt/tellform/.env" + - .:/opt/tellform + links: + - mongo + - redis + ports: + - "5000:5000" + # - "20523:20523" + depends_on: + - mongo + - redis + networks: + - back-tier + web: + # image: tellform/nginx:stable + build: + context: ./nginx + # image: nginx:1.13 + restart: always + ports: + - "80:80" + - "443:443" + - "20523:20523" + env_file: + - .env + volumes: + - "$ROOT/certs:/certs" + # - ./nginx/conf.d:/etc/nginx/conf.d + networks: + - back-tier + +networks: + back-tier: + driver: bridge + diff --git a/nginx/Dockerfile b/nginx/Dockerfile new file mode 100644 index 00000000..3184ee05 --- /dev/null +++ b/nginx/Dockerfile @@ -0,0 +1,11 @@ +FROM alpine:edge +RUN apk add --no-cache nginx certbot openssl python py-jinja2 + +COPY *.py / +COPY conf /conf + +RUN chmod +x /start.py +RUN chmod +x /letsencrypt.py +RUN chmod +x /config.py + +CMD /start.py diff --git a/nginx/conf/nginx.conf b/nginx/conf/nginx.conf new file mode 100644 index 00000000..42385be7 --- /dev/null +++ b/nginx/conf/nginx.conf @@ -0,0 +1,116 @@ +# Basic configuration +user nginx; +worker_processes 1; +error_log /dev/stderr info; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + # Standard HTTP configuration with slight hardening + include /etc/nginx/mime.types; + default_type application/octet-stream; + access_log /dev/stdout; + sendfile on; + keepalive_timeout 65; + server_tokens off; + + #Websockets Server + server { + + {% if NODE_ENV == "development" %} + listen {{SOCKET_PORT}}; + {% else %} + listen 80; + listen [::]:80; + server_name {{ SOCKETS_URL }}; + + # Only enable HTTPS if TLS is enabled with no error + {% if TLS and not TLS_ERROR %} + listen 443 ssl; + listen [::]:443 ssl; + + include /etc/nginx/tls.conf; + add_header Strict-Transport-Security max-age=15768000; + + if ($scheme = http) { + return 301 https://$host$request_uri; + } + {% endif %} + + {% endif %} + + location / { + proxy_pass http://tellform:20523; + proxy_read_timeout 90; + + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + # WebSocket support + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + {% if TLS and not TLS_ERROR %} + proxy_set_header X-Forwarded-Proto https; + {% endif %} + } + + {% if TLS_FLAVOR == 'letsencrypt' %} + location ^~ /.well-known/acme-challenge/ { + proxy_pass http://127.0.0.1:8008; + } + {% endif %} + } + + server { + #Add server_name for per-user subdomains + {% if SUBDOMAINS_DISABLED == "FALSE" %} + server_name {{BASE_URL}} {{SUBDOMAIN_URL}}; + {% else %} + server_name {{BASE_URL}}; + {% endif %} + + listen 80; + listen [::]:80; + + # Only enable HTTPS if TLS is enabled with no error + {% if TLS and not TLS_ERROR %} + listen 443 ssl; + listen [::]:443 ssl; + + include /etc/nginx/tls.conf; + add_header Strict-Transport-Security max-age=15768000; + + if ($scheme = http) { + return 301 https://$host$request_uri; + } + {% endif %} + + root /usr/share/nginx/html; + index index.html index.htm; + + location / { + proxy_pass http://tellform:5000; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; + + {% if TLS and not TLS_ERROR %} + proxy_set_header X-Forwarded-Proto https; + {% endif %} + } + + {% if TLS_FLAVOR == 'letsencrypt' %} + location ^~ /.well-known/acme-challenge/ { + proxy_pass http://127.0.0.1:8008; + } + {% endif %} + } +} diff --git a/nginx/conf/tls.conf b/nginx/conf/tls.conf new file mode 100644 index 00000000..af2d9587 --- /dev/null +++ b/nginx/conf/tls.conf @@ -0,0 +1,7 @@ +ssl_protocols TLSv1.1 TLSv1.2; +ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384'; +ssl_prefer_server_ciphers on; +ssl_session_timeout 10m; +ssl_certificate {{ TLS[0] }}; +ssl_certificate_key {{ TLS[1] }}; +ssl_dhparam /certs/dhparam.pem; \ No newline at end of file diff --git a/nginx/config.py b/nginx/config.py new file mode 100644 index 00000000..eca39ce3 --- /dev/null +++ b/nginx/config.py @@ -0,0 +1,26 @@ +#!/usr/bin/python + +import jinja2 +import os + +convert = lambda src, dst, args: open(dst, "w").write(jinja2.Template(open(src).read()).render(**args)) + +args = os.environ.copy() + +# TLS configuration +args["TLS"] = { + "cert": ("/certs/cert.pem", "/certs/key.pem"), + "letsencrypt": ("/certs/letsencrypt/live/mailu/fullchain.pem", + "/certs/letsencrypt/live/mailu/privkey.pem"), + "notls": None +}[args["TLS_FLAVOR"]] + +if args["TLS"] and not all(os.path.exists(file_path) for file_path in args["TLS"]): + print("Missing cert or key file, disabling TLS") + args["TLS_ERROR"] = "yes" + + +# Build final configuration paths +convert("/conf/tls.conf", "/etc/nginx/tls.conf", args) +convert("/conf/nginx.conf", "/etc/nginx/nginx.conf", args) +os.system("nginx -s reload") \ No newline at end of file diff --git a/nginx/letsencrypt.py b/nginx/letsencrypt.py new file mode 100644 index 00000000..cb5a098d --- /dev/null +++ b/nginx/letsencrypt.py @@ -0,0 +1,29 @@ +#!/usr/bin/python + +import os +import time +import subprocess + + +command = [ + "certbot", + "-n", "--agree-tos", # non-interactive + "-d", os.environ["HOSTNAMES"], + "-m", "{}@{}".format(os.environ["POSTMASTER"], os.environ["DOMAIN"]), + "certonly", "--standalone", + "--server", "https://acme-v02.api.letsencrypt.org/directory", + "--cert-name", "tellform", + "--preferred-challenges", "http", "--http-01-port", "8008", + "--keep-until-expiring", + "--rsa-key-size", "4096", + "--config-dir", "/certs/letsencrypt", + "--post-hook", "./config.py" +] + +# Wait for nginx to start +time.sleep(5) + +# Run certbot every hour +while True: + subprocess.call(command) + time.sleep(3600) diff --git a/nginx/start.py b/nginx/start.py new file mode 100644 index 00000000..4a1946b9 --- /dev/null +++ b/nginx/start.py @@ -0,0 +1,25 @@ +#!/usr/bin/python + +import os +import subprocess + +#Set default port +if not os.environ["PORT"]: + os.environ["PORT"] = "5000" + +#Set default sockets port +if not os.environ["SOCKET_PORT"]: + os.environ["SOCKET_PORT"] = "20523" + +# Actual startup script +if not os.path.exists("/certs/dhparam.pem") and os.environ["TLS_FLAVOR"] != "notls": + os.system("openssl dhparam -out /certs/dhparam.pem 2048") + +if os.environ["TLS_FLAVOR"] == "letsencrypt": + subprocess.Popen(["/letsencrypt.py"]) +elif os.environ["TLS_FLAVOR"] == "cert": + if not os.path.exists("/certs/cert.pem"): + os.system("openssl req -newkey rsa:2048 -x509 -keyout /certs/key.pem -out /certs/cert.pem -days 365 -nodes -subj '/C=NA/ST=None/L=None/O=None/CN=" + os.environ["BASE_URL"] + "'") + +subprocess.call(["/config.py"]) +os.execv("/usr/sbin/nginx", ["nginx", "-g", "daemon off;"]) \ No newline at end of file From 4eae4de2ce80b02308b3b2a9c58134f42ad9ab57 Mon Sep 17 00:00:00 2001 From: Arielle Baldwynn Date: Mon, 29 Apr 2019 19:16:36 -0700 Subject: [PATCH 38/45] added countable web productions as sponsor --- README.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index f9fe35b9..f896519d 100755 --- a/README.md +++ b/README.md @@ -120,7 +120,25 @@ Your application should run on port 3000 or the port you specified in your .env To deploy with docker, first install docker [here](https://docs.docker.com/engine/installation/). -Then see this page [here](https://tellform.com/install_docker) for commands on how to deploy your own local TellForm instance. +Then run follow these steps: + +### Step 1: Clone the repo + +`$ git clone https://github.com/tellform/docker_files.git` + +### Step 2: Setup TellForm Configuration + +Create your .env file by copying the .env.dist file included in the repo and changing it to suit your deployment. + +Important: You need to fill out all of the ENV variables in the "Mail Settings" section or your TellForm instance won't work. + +If you want to have https, make sure to change 'TLS_FLAVOR' + +### Step 3: Start your TellForm instance + +`docker-compose up -d` + +TellForm should now be accessible on http://localhost ## Testing Your Application You can run the full test suite included with TellForm with the test task: @@ -204,25 +222,8 @@ TellForm's configuration is done with environment variables. To set an option fo Does your company use TellForm? Help keep the project bug-free and feature rich by [sponsoring the project](https://opencollective.com/tellform#sponsor). - - - - - - - - - -

- - - - - - - - - + + ## Backers From a24f90ce9173787afbc15888f575d98c9fa681a2 Mon Sep 17 00:00:00 2001 From: Arielle Baldwynn Date: Mon, 29 Apr 2019 19:28:21 -0700 Subject: [PATCH 39/45] added example env --- .env.example | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..9d31fe83 --- /dev/null +++ b/.env.example @@ -0,0 +1,124 @@ +# TellForm Configuration File + +################################### +# Common configuration variables +################################### + +# Set this to the path where Mailu data and configuration is stored +# Mac users: Change to a Docker accessible folder +ROOT=/opt/tellform_data + +# Set to what environment you will be running TellForm in (production or development) +NODE_ENV=development + +# Set to a randomly generated 16 bytes string +SECRET_KEY=ChangeMeChangeMe + +# URI of Mongo database that TellForm will connect to +#DO NOT CHANGE +MONGODB_URI=mongodb://mongo/tellform + +# URL Redis server that TellForm will connect to +#DO NOT CHANGE +REDIS_URL=redis://redis:6379 + +# Port that the TellForm Node app will listen on +PORT=5000 + +# Domain that TellForm's admin panel will be hosted at +BASE_URL=tellform.dev + +# Port that SocketIO server (for analytics) will listen on +SOCKET_PORT=20523 + +#Choose what kind of TLS you want. +#Can be either 'cert' (supply your certificates in ./cert/), 'notls' (no https at all) or 'letsencrypt' that autoconfigures your instance with letsencrypt +TLS_FLAVOR=notls + +################################### +# Optional features +################################### + +# Set this to enable coveralls.io support +COVERALLS_REPO_TOKEN= + +# Disable signups for your TellForm instance +SIGNUP_DISABLED=FALSE + +# Disable per-user custom subdomains +SUBDOMAINS_DISABLED=FALSE + +# Url that subdomains will be hosted at (has to have domain name as ADMIN_URL) +# Only used when SUBDOMAINS_DISABLED=FALSE +SUBDOMAIN_URL=*.tellform.dev + +# Enable running TellForm in pm2's 'cluster' mode +ENABLE_CLUSTER_MODE=FALSE + +################################### +# Mail settings +# IMPORTANT: These settings need to be set +# to be set in order for your instance to work +################################### + + + +# Set this to set the username credential of your SMTP service +MAILER_EMAIL_ID= + +# Set this to set the password credential of your SMTP service +MAILER_PASSWORD= + +# Set this to set the email address that all email should be sent from for signup/verification emails +MAILER_FROM= + +# Set this to any services from https://nodemailer.com/smtp/well-known/ to use a 'well-known' email provider +MAILER_SERVICE_PROVIDER= + +# Set these if you are not using a 'MAILER_SERVICE_PROVIDER' and want to specify your SMTP server's address and port +MAILER_SMTP_HOST= +MAILER_SMTP_PORT= + +# Set this if you are using a custom SMTP server that supports SSL +MAILER_SMTP_SECURE + +################################### +# Automatic Admin Creation Settings +################################### + +# Set this to "TRUE" if you wish to automatically create an admin user on startup +CREATE_ADMIN=FALSE + +# Set this to set the email used by your default admin account +ADMIN_EMAIL=admin@admin.com + +# Set this to set the username of your default admin acconut +ADMIN_USERNAME=root + +# Set this to set the password of your default admin account +ADMIN_PASSWORD=root + +################################### +# Advanced settings +################################### + +# Set this to server your websockets server on a seperate URL +SOCKETS_URL= + +# Set this to change the port that TellForm will listen on +PORT=5000 + +# Set this to your Google Analytics ID to enable tracking with GA +GOOGLE_ANALYTICS_ID= + +# Set this to your Sentry.io DSN code to enable front-end JS error tracking with Sentry.io +RAVEN_DSN + +# Set this to set the 'name' meta property in the HTML +APP_NAME= + +# Set this to set the 'keywords' meta property in the HTML +APP_KEYWORDS= + +# Set this to set the 'description' meta property in the HTML head +APP_DESC= \ No newline at end of file From e29742f83a9cf62142006de300b6e519a16d3ccf Mon Sep 17 00:00:00 2001 From: Leopere <1068374+Leopere@users.noreply.github.com> Date: Fri, 7 Jun 2019 19:36:57 -0400 Subject: [PATCH 40/45] Going to update the chat to something I can manage. I have no access to manage Gitter and it seems a slight refocus might not be terrible. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f896519d..59ca07e0 100755 --- a/README.md +++ b/README.md @@ -5,8 +5,11 @@ TellForm 2.1.0 [![Build Status](https://travis-ci.org/tellform/tellform.svg?branch=master)](https://travis-ci.org/tellform/tellform) ![Project Status](https://img.shields.io/badge/status-2.1.0-green.svg) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3491e86eb7194308b8fc80711d736ede)](https://www.codacy.com/app/david-baldwin/tellform?utm_source=github.com&utm_medium=referral&utm_content=tellform/tellform&utm_campaign=Badge_Grade) + +![Discord](https://img.shields.io/discord/586697165980565504.svg?label=Discord%20Chat) > An *opensource alternative to TypeForm* that can create [stunning mobile-ready forms](https://tellform.com/examples) , surveys and questionnaires. [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/tellform/tellform/tree/master) From b3bf791d3c7725e4f7f996180b66d8ce789e4b2f Mon Sep 17 00:00:00 2001 From: wodka Date: Mon, 1 Jul 2019 10:03:29 +0200 Subject: [PATCH 41/45] improve docker images, fix jsep and initial build --- Dockerfile | 63 +++++++++++++++++++++++++++++----------------- bower.json | 2 +- docker-compose.yml | 24 ++++++++---------- nginx/Dockerfile | 8 ++++++ server.js | 5 ++-- 5 files changed, 63 insertions(+), 39 deletions(-) diff --git a/Dockerfile b/Dockerfile index 97e1855d..9bbedc7c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,33 +4,16 @@ # Run: # docker run -it tellform-prod -FROM phusion/baseimage:0.9.19 +FROM node:10-alpine MAINTAINER Arielle Baldwynn -# Install Utilities -RUN apt-get update -q \ - && apt-get install -yqq \ - curl \ - ant \ - git \ - gcc \ - make \ - build-essential \ - libkrb5-dev \ - python \ - sudo \ - apt-utils \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Install nodejs -RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - -RUN sudo apt-get install -yq nodejs \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +# Install some needed packages +RUN apk add --no-cache \ + git \ + && rm -rf /tmp/* # Install NPM Global Libraries -RUN npm install --quiet -g grunt bower pm2 && npm cache clean +RUN npm install --quiet -g grunt bower pm2 && npm cache clean --force WORKDIR /opt/tellform RUN mkdir -p /opt/tellform/public/lib @@ -47,6 +30,39 @@ COPY ./gruntfile.js /opt/tellform/gruntfile.js COPY ./server.js /opt/tellform/server.js COPY ./scripts/create_admin.js /opt/tellform/scripts/create_admin.js +# Set default ENV +ENV NODE_ENV=development +ENV SECRET_KEY=ChangeMeChangeMe +#ENV MONGODB_URI=mongodb://mongo/tellform +#ENV REDIS_URL=redis://redis:6379 +ENV PORT=5000 +ENV BASE_URL=localhost +ENV SOCKET_PORT=20523 +ENV SIGNUP_DISABLED=FALSE +ENV SUBDOMAINS_DISABLED=FALSE +ENV ENABLE_CLUSTER_MODE=FALSE +ENV MAILER_EMAIL_ID=tellform@localhost +ENV MAILER_PASSWORD= +ENV MAILER_FROM=tellform@localhost +ENV MAILER_SERVICE_PROVIDER= +ENV MAILER_SMTP_HOST= +ENV MAILER_SMTP_PORT= +ENV MAILER_SMTP_SECURE= + +ENV CREATE_ADMIN=FALSE +ENV ADMIN_EMAIL=admin@localhost +ENV ADMIN_USERNAME=root +ENV ADMIN_PASSWORD=root + +ENV APP_NAME=Tellform +ENV APP_KEYWORDS= +ENV APP_DESC= + +# optional ENV settings +ENV COVERALLS_REPO_TOKEN= +ENV GOOGLE_ANALYTICS_ID= +ENV RAVEN_DSN= + # Copies the local package.json file to the container # and utilities docker container cache to not needing to rebuild # and install node_modules/ everytime we build the docker, but only @@ -54,6 +70,7 @@ COPY ./scripts/create_admin.js /opt/tellform/scripts/create_admin.js # Add npm package.json COPY ./package.json /opt/tellform/package.json RUN npm install --only=production --quiet +RUN grunt build # Run TellForm server CMD ["node", "server.js"] diff --git a/bower.json b/bower.json index afdaec71..d351e104 100755 --- a/bower.json +++ b/bower.json @@ -37,7 +37,7 @@ "angular-translate": "~2.11.0", "ng-translate": "*", "deep-diff": "^0.3.4", - "jsep": "^0.3.1", + "jsep": "0.3.1", "ngclipboard": "^1.1.1", "mobile-detect": "^1.3.3", "socket.io-client": "^1.7.2", diff --git a/docker-compose.yml b/docker-compose.yml index f51c2573..4b619de0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,31 +3,29 @@ services: redis: restart: always image: redis - volumes: - - "${PWD}/.env:/opt/tellform/.env" networks: - back-tier mongo: restart: always image: mongo volumes: - - "$ROOT/mongo:/data" + - ".data/mongo:/data" networks: - back-tier tellform: build: context: . - env_file: - - .env - volumes: - # - "${PWD}/.env:/opt/tellform/.env" - - .:/opt/tellform + environment: + CREATE_ADMIN: "TRUE" + MONGODB_URI: mongodb://mongo/tellform + REDIS_URL: redis://redis +# volumes: +# - .:/opt/tellform links: - mongo - redis ports: - "5000:5000" - # - "20523:20523" depends_on: - mongo - redis @@ -43,10 +41,10 @@ services: - "80:80" - "443:443" - "20523:20523" - env_file: - - .env - volumes: - - "$ROOT/certs:/certs" + environment: + NODE_ENV: development + #volumes: + # - "$ROOT/certs:/certs" # - ./nginx/conf.d:/etc/nginx/conf.d networks: - back-tier diff --git a/nginx/Dockerfile b/nginx/Dockerfile index 3184ee05..3959a099 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -8,4 +8,12 @@ RUN chmod +x /start.py RUN chmod +x /letsencrypt.py RUN chmod +x /config.py +ENV NODE_ENV=development +ENV PORT=5000 +ENV SOCKET_PORT=20523 +ENV TLS_FLAVOR=notls +ENV BASE_URL=localhost +ENV SUBDOMAIN_URL=*.localhost +ENV SOCKETS_URL=ws.localhost + CMD /start.py diff --git a/server.js b/server.js index 78aeefa6..276531b5 100755 --- a/server.js +++ b/server.js @@ -40,7 +40,8 @@ const smtpTransport = nodemailer.createTransport(config.mailer.options); smtpTransport.verify(function(error, success) { if (error) { console.error(chalk.red('Your mail configuration is incorrect: ' + error)); - process.exit(-1); + // verify but to abort! + // process.exit(-1); } }); @@ -48,7 +49,7 @@ smtpTransport.verify(function(error, success) { var app = require('./config/express')(db); //Create admin account -if (process.env.CREATE_ADMIN_ACCOUNT === 'TRUE') { +if (process.env.CREATE_ADMIN === 'TRUE') { var create_admin = require('./scripts/create_admin'); create_admin.run(app, db, function(err){ From 77cabf15e5099a8434103b49547fba366ad4bcde Mon Sep 17 00:00:00 2001 From: wodka Date: Mon, 1 Jul 2019 11:49:27 +0200 Subject: [PATCH 42/45] attach socket.io to current server if ports are equal --- config/socket.io.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/config/socket.io.js b/config/socket.io.js index 9500d538..7ae1d99e 100644 --- a/config/socket.io.js +++ b/config/socket.io.js @@ -9,7 +9,14 @@ var config = require('./config'), // Define the Socket.io configuration method module.exports = function (app, db) { var server = http.createServer(app); - var io = socketio(config.socketPort, { transports: ['websocket', 'polling'] }); + var io; + + // make it possible to only expose one domain + if (process.env.SOCKET_PORT != process.env.PORT) { + io = socketio(config.socketPort, { transports: ['websocket', 'polling'] }); + } else { + io = socketio(server, { transports: ['websocket', 'polling'] }); + } if(config.enableClusterMode){ var redis = require('socket.io-redis'); From 643954896bf39285b47ad2c930ffe8a5a51d5ae9 Mon Sep 17 00:00:00 2001 From: wodka Date: Mon, 1 Jul 2019 16:13:21 +0200 Subject: [PATCH 43/45] fix user creation --- scripts/create_admin.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/create_admin.js b/scripts/create_admin.js index 6d5ee5c6..b676f92e 100644 --- a/scripts/create_admin.js +++ b/scripts/create_admin.js @@ -5,14 +5,14 @@ var config = require('../config/config'), exports.run = function(app, db, cb) { var User = mongoose.model('User'); - var email = 'admin@admin.com' || config.admin.email; + var email = config.admin.email || 'admin@admin.com'; var newUser = new User({ firstName: 'Admin', lastName: 'Account', email: email, - username: 'root' || config.admin.username, - password: 'root' || config.admin.password, + username: config.admin.username || 'root', + password: config.admin.password || 'root', provider: 'local', roles: ['admin', 'user'] }); From d07063f636376d402853f14fd33f4bcc4ad8007a Mon Sep 17 00:00:00 2001 From: wodka Date: Wed, 3 Jul 2019 09:47:52 +0200 Subject: [PATCH 44/45] fixes for admin creation --- .gitignore | 1 + Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 01fc19d8..c1152952 100755 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +data/ dist .vagrant npm-debug.* diff --git a/Dockerfile b/Dockerfile index 9bbedc7c..6806581f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,7 +50,7 @@ ENV MAILER_SMTP_PORT= ENV MAILER_SMTP_SECURE= ENV CREATE_ADMIN=FALSE -ENV ADMIN_EMAIL=admin@localhost +ENV ADMIN_EMAIL=admin@tellform.com ENV ADMIN_USERNAME=root ENV ADMIN_PASSWORD=root From a9e04b48949c728ec5a15ebf7298f0e4ae207c1c Mon Sep 17 00:00:00 2001 From: wodka Date: Wed, 3 Jul 2019 22:13:28 +0200 Subject: [PATCH 45/45] add missing bower install --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 6806581f..4c957018 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,6 +70,7 @@ ENV RAVEN_DSN= # Add npm package.json COPY ./package.json /opt/tellform/package.json RUN npm install --only=production --quiet +RUN bower install --allow-root RUN grunt build # Run TellForm server